1、#include /函数声明 void InitSys();int main( void ) WDTCTL = WDTPW + WDTHOLD; /关闭看门狗InitSys(); /初始化start:/以下填充用户代码LPM3; /进入低功耗模式n,n:04。若不希望进入低功耗模式,屏蔽本句goto start;/*系统初始化*/void InitSys()unsigned int iq0;/使用XT2振荡器BCSCTL1&=XT2OFF;/打开XT2振荡器doIFG1 &= OFIFG; / 清除振荡器失效标志for (iq0 = 0xFF; iq0 0; iq0-);/ 延时,等待XT2起
2、振while (IFG1 & OFIFG) != 0);/ 判断XT2是否起振BCSCTL2 =SELM_2+SELS; /选择MCLK、SMCLK为XT2/以下填充用户代码,对各种模块、中断、外围设备等进行初始化_EINT(); /打开全局中断控制,若不需要打开,可以屏蔽本句端口2中断函数#pragma vector=PORT2_VECTOR_interrupt void Port2()/以下为参考处理程序,不使用的端口应当删除其对于中断源的判断。if(P2IFG&BIT0) = BIT0)/处理P2IN.0中断P2IFG &= BIT0; /清除中断标志else if(P2IFG&BIT1
3、) =BIT1)/处理P2IN.1中断= BIT1;BIT2) =BIT2)/处理P2IN.2中断= BIT2;BIT3) =BIT3)/处理P2IN.3中断= BIT3;BIT4) =BIT4)/处理P2IN.4中断= BIT4;BIT5) =BIT5)/处理P2IN.5中断= BIT5;BIT6) =BIT6)/处理P2IN.6中断= BIT6;else/处理P2IN.7中断= BIT7;LPM3_EXIT; /退出中断后退出低功耗模式。若退出中断后要保留低功耗模式,将本句屏蔽USART1发送中断函数#pragma vector=USART1TX_VECTOR_interrupt void
4、 Usart1Tx()USART1接收中断函数#pragma vector=USART1RX_VECTOR_interrupt void Ustra1Rx()端口1中断函数多中断中断源:P1IFG.0P1IFG7进入中断后应首先判断中断源,退出中断前应清除中断标志,否则将再次引发中断#pragma vector=PORT1_VECTOR_interrupt void Port1()if(P1IFG&/处理P1IN.0中断P1IFG &else if(P1IFG&/处理P1IN.1中断/处理P1IN.2中断/处理P1IN.3中断/处理P1IN.4中断/处理P1IN.5中断/处理P1IN.6中断/
5、处理P1IN.7中断定时器A中断函数CC12 TA#pragma vector=TIMERA1_VECTOR_interrupt void TimerA1()/以下为参考处理程序,不使用的中断源应当删除switch (_even_in_range(TAIV, 10)case 2:/捕获/比较1中断break;case 4:/捕获/比较2中断case 10:/TAIFG定时器溢出中断中断源:CC0#pragma vector=TIMERA0_VECTOR_interrupt void TimerA0()AD转换器中断函数多中断源:摸拟07、VeREF+、VREF-/VeREF-、(AVcc-AV
6、ss)/2没有处理ADC12TOV和ADC12OV中断标志#pragma vector=ADC_VECTOR_interrupt void Adc()if(ADC12IFG&BIT0)=BIT0)/通道0else if(ADC12IFG&BIT1)=BIT1)/通道1BIT2)=BIT2)/通道2BIT3)=BIT3)/通道3BIT4)=BIT4)/通道4BIT5)=BIT5)/通道5BIT6)=BIT6)/通道6BIT7)=BIT7)/通道7BIT8)=BIT8)/VeREF+BIT9)=BIT9)/VREF-/VeREF-BITA)=BITA)/温度BITB)=BITB)/(AVcc-AV
7、ss)/2USART0发送中断函数#pragma vector=USART0TX_VECTOR_interrupt void Usart0Tx()USART0接收中断函数#pragma vector=USART0RX_VECTOR_interrupt void Usart0Rx()看门狗定时器中断函数#pragma vector=WDT_VECTOR_interrupt void WatchDog()比较器A中断函数#pragma vector=COMPARATORA_VECTOR_interrupt void ComparatorA()定时器B中断函数CC16 TB#pragma vector=TIMERB1_VECTOR_interrupt void TimerB1()switch (_even_in_range(TBIV, 14)case 6:/捕获/比较3中断case 8:/捕获/比较4中断/捕获/比较5中断case 12:/捕获/比较6中断case 14:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1