单片机学习小组
直播中

bozai602

7年用户 211经验值
私信 关注

config.h头文件下载

config.h 430单片机头文件代码最后的复制代码保存到电脑的方式实现下载:
  • /********************************************************************
  • //msp430单片机最小系统板外部资源配置文件Config.h
  • //包含板载各个资源的硬件配置,如果用户使用过程中,对应的硬件发生了更改,可利用该头文件更改使用
  • //SD/MMC卡初始化硬件配置未包含
  • //调试环境:EW430 V5.30
  • //时间:2014.03.01
  • ********************************************************************/
  • //延时函数,IAR自带,经常使用到
  • #define CPU_F ((double)8000000)   //外部高频晶振8MHZ
  • //#define CPU_F ((double)32768)   //外部低频晶振32.768KHZ
  • #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
  • #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
  • //自定义数据结构,方便使用
  • #define uchar unsigned char
  • #define uint  unsigned int
  • #define ulong unsigned long
  • //8个LED灯,连接在P6口,可通过断开电源停止使用,ADC使用时断开电源
  • #define LED8DIR         P6DIR
  • #define LED8            P6OUT                             //P6口接LED灯,8个
  • //4个独立按键连接在P10~P13
  • #define KeyPort         P1IN                              //独立键盘接在P10~P13
  • //串口波特率计算,当BRCLK=CPU_F时用下面的公式可以计算,否则要根据设置加入分频系数
  • #define baud           9600                                //设置波特率的大小
  • #define baud_setting   (uint)((ulong)CPU_F/((ulong)baud))  //波特率计算公式
  • #define baud_h         (uchar)(baud_setting>>8)            //提取高位
  • #define baud_l         (uchar)(baud_setting)               //低位
  • //RS485控制管脚,CTR用于控制RS485处于收或者发状态
  • #define RS485_CTR1      P5OUT |= BIT2;          //控制线置高,RS485发送状态
  • #define RS485_CTR0      P5OUT &= ~BIT2;         //控制线置低,RS485接收状态
  • //2.8寸TFT彩屏显示控制相关硬件配置
  • #define RS_CLR         P5OUT &= ~BIT5           //RS置低
  • #define RS_SET         P5OUT |=  BIT5           //RS置高
  • #define RW_CLR         P5OUT &= ~BIT6           //RW置低
  • #define RW_SET         P5OUT |=  BIT6           //RW置高
  • #define RD_CLR         P5OUT &= ~BIT7           //E置低
  • #define RD_SET         P5OUT |=  BIT7           //E置高
  • #define CS_CLR         P5OUT &= ~BIT0            //CS置低
  • #define CS_SET         P5OUT |=  BIT0            //CS置高
  • #define RST_CLR         P5OUT &= ~BIT3            //RST置低
  • #define RST_SET         P5OUT |=  BIT3            //RST置高
  • #define LE_CLR         P5OUT &= ~BIT1            //LE置低
  • #define LE_SET         P5OUT |=  BIT1            //LE置高
  • //2.8寸TFT彩屏触摸屏控制相关硬件配置
  • #define PEN_CLR         P2OUT &= ~BIT0           //PEN置低,触碰触摸屏时,Penirq引脚由未触摸时的高电平变为低电平
  • #define PEN_SET         P2OUT |=  BIT0           //PEN置高
  • #define PEN             (P2IN & 0x01)            //P2.0输入的值
  • #define TPDO_CLR P2OUT &= ~BIT1           //TPDO置低
  • #define TPDO_SET P2OUT |=  BIT1           //TPDO置高
  • #define TPDOUT          ((P2IN>>1)&0x01)         //P2.1输入的值
  • #define BUSY_CLR P2OUT &= ~BIT3           //BUSY置低
  • #define BUSY_SET P2OUT |=  BIT3           //BUSY置高
  • #define TPDI_CLR P2OUT &= ~BIT4            //TPDI置低
  • #define TPDI_SET P2OUT |=  BIT4            //TPDI置高
  • #define TPCS_CLR P2OUT &= ~BIT5            //TPCS置低
  • #define TPCS_SET P2OUT |=  BIT5            //TPCS置高
  • #define TPCLK_CLR P2OUT &= ~BIT6            //TPCLK置低
  • #define TPCLK_SET P2OUT |=  BIT6            //TPCLK置高
  • //彩屏/12864液晶/1602液晶的数据口,三液晶共用
  • #define DataDIR         P4DIR                     //数据口方向
  • #define DataPort        P4OUT                     //P4口为数据口
  • //12864/1602液晶控制管脚
  • #define RS_CLR         P5OUT &= ~BIT5           //RS置低
  • #define RS_SET         P5OUT |=  BIT5           //RS置高
  • #define RW_CLR         P5OUT &= ~BIT6           //RW置低
  • #define RW_SET         P5OUT |=  BIT6           //RW置高
  • #define EN_CLR         P5OUT &= ~BIT7           //E置低
  • #define EN_SET         P5OUT |=  BIT7           //E置高
  • #define PSB_CLR         P5OUT &= ~BIT0            //PSB置低,串口方式
  • #define PSB_SET         P5OUT |=  BIT0            //PSB置高,并口方式
  • #define RST_CLR         P5OUT &= ~BIT1            //RST置低
  • #define RST_SET         P5OUT |= BIT1             //RST置高
  • //12864应用指令集
  • #define CLEAR_SCREEN 0x01            //清屏指令:清屏且AC值为00H
  • #define AC_INIT  0x02            //将AC设置为00H。且游标移到原点位置
  • #define CURSE_ADD 0x06            //设定游标移到方向及图像整体移动方向(默认游标右移,图像整体不动)
  • #define FUN_MODE 0x30            //工作模式:8位基本指令集
  • #define DISPLAY_ON 0x0c            //显示开,显示游标,且游标位置反白
  • #define DISPLAY_OFF 0x08            //显示关
  • #define CURSE_DIR 0x14            //游标向右移动:AC=AC+1
  • #define SET_CG_AC 0x40            //设置AC,范围为:00H~3FH
  • #define SET_DD_AC 0x80                      //设置DDRAM AC
  • #define FUN_MODEK 0x36            //工作模式:8位扩展指令集
  • //颜色代码,TFT显示用
  • #define White          0xFFFF                        //显示颜色代码
  • #define Black          0x0000
  • #define Blue           0x001F
  • #define Blue2          0x051F
  • #define Red            0xF800
  • #define Magenta        0xF81F
  • #define Green          0x07E0
  • #define Cyan           0x7FFF
  • #define Yellow         0xFFE0
  • //NRF2401模块控制线
  • #define  RF24L01_CE_0        P1OUT &=~BIT5         //CE在P15
  • #define  RF24L01_CE_1        P1OUT |= BIT5
  • #define  RF24L01_CSN_0       P2OUT &=~BIT7         //CS在P27
  • #define  RF24L01_CSN_1       P2OUT |= BIT7
  • #define  RF24L01_SCK_0       P3OUT &=~BIT3         //SCK在P33
  • #define  RF24L01_SCK_1       P3OUT |= BIT3
  • #define  RF24L01_MISO_0      P3OUT &=~BIT2         //MISO在P32
  • #define  RF24L01_MISO_1      P3OUT |= BIT2
  • #define  RF24L01_MOSI_0      P3OUT &=~BIT1         //MOSI在P31
  • #define  RF24L01_MOSI_1      P3OUT |= BIT1
  • #define  RF24L01_IRQ_0       P1OUT &=~BIT4         //IRQ在P14
  • #define  RF24L01_IRQ_1       P1OUT |= BIT4
  • //DS18B20控制脚,单脚控制
  • #define DQ_IN         P1DIR &= ~BIT7    //设置输入,DS18B20接单片机P53口
  • #define DQ_OUT         P1DIR |= BIT7    //设置输出
  • #define DQ_CLR         P1OUT &= ~BIT7           //置低电平
  • #define DQ_SET         P1OUT |= BIT7           //置高电平
  • #define DQ_R         P1IN & BIT7    //读电平
  • //红外接收头H1838控制脚,单脚控制
  • #define RED_IN         P1DIR &= ~BIT6           //设置输入,红外接收头接单片机PE3口
  • #define RED_OUT         P1DIR |=  BIT6           //设置输出
  • #define RED_L         P1OUT &= ~BIT6           //置低电平
  • #define RED_H         P1OUT |= BIT6             //置高电平
  • #define RED_R         (P1IN & BIT6)           //读电平
  • //***********************************************************************
  • //                   系统时钟初始化,外部8M晶振
  • //***********************************************************************
  • void Clock_Init()
  • {
  •   uchar i;
  •   BCSCTL1&=~XT2OFF;                 //打开XT2振荡器
  •   BCSCTL2|=SELM1+SELS;              //MCLK为8MHZ,SMCLK为8MHZ
  •   do{
  •     IFG1&=~OFIFG;                   //清楚振荡器错误标志
  •     for(i=0;i<100;i++)
  •        _NOP();
  •   }
  •   while((IFG1&OFIFG)!=0);           //如果标志位1,则继续循环等待
  •   IFG1&=~OFIFG;
  • }
  • //***********************************************************************
  • //                   系统时钟初始化,内部RC晶振
  • //***********************************************************************
  • void Clock_Init_Inc()
  • {
  •   uchar i;
  • // DCOCTL = DCO0 + DCO1 + DCO2;              // Max DCO
  • // BCSCTL1 = RSEL0 + RSEL1 + RSEL2;          // XT2on, max RSEL
  •   DCOCTL = 0x60 + 0x00;                       //DCO约3MHZ,3030KHZ
  •   BCSCTL1 = DIVA_0 + 0x07;
  •   BCSCTL2 = SELM_2 + DIVM_0 + SELS + DIVS_0;
  • }
  • //***********************************************************************
  • //                   系统时钟初始化,外部32.768K晶振
  • //***********************************************************************
  • void Clock_Init_Ex32768()
  • {
  •   uchar i;
  •   BCSCTL2|=SELM1 + SELM0 + SELS;    //MCLK为32.768KHZ,SMCLK为8MHZ
  •   do{
  •     IFG1&=~OFIFG;                   //清楚振荡器错误标志
  •     for(i=0;i<100;i++)
  •        _NOP();
  •   }
  •   while((IFG1&OFIFG)!=0);           //如果标志位1,则继续循环等待
  •   IFG1&=~OFIFG;
  • }
  • //***********************************************************************
  • //               MSP430内部看门狗初始化
  • //***********************************************************************
  • void WDT_Init()
  • {
  •    WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗
  • }





更多回帖

发帖
×
20
完善资料,
赚取积分