标题:
MSP430单片机字符解析程序实例
[打印本页]
作者:
51hei单片
时间:
2016-3-14 20:17
标题:
MSP430单片机字符解析程序实例
本程序是《MSP430系列单片机系统工程设计与实践》书里面的源码,(包含工程文件 (例3.2.5))完整例程下载:
http://www.51hei.com/bbs/dpj-46245-1.html
关于本程序的详细解说大家可以点击上图下载电子书
#include <msp430x42x.h>
unsigned char RedState=0;
unsigned char GreenState=0;
unsigned char BlackState=0;
#define RED_ON P1OUT |= BIT3
#define GREEN_ON P1OUT |= BIT1
#define LED_OFF P1OUT =0
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; // 停止看门狗
FLL_CTL0 |= XCAP18PF; // 配置晶振负载电容
P1OUT=0;
P1DIR|=(BIT1+BIT3);
U0CTL = CHAR; // 异步通讯模式,8位数据,无校验,1位停止位。
ME1 |= UTXE0 + URXE0; // 开启串口0收发模块
U0TCTL |= SSEL0; // 选择ACLK作为串口波特率时钟源。
U0BR1 = 0; //
U0BR0 = 13; // 分频系数整数部分=13
U0MCTL = 0x6B; // 分频系数小数部分调制=5/8。(2400bps)
P2SEL |= BIT4 + BIT5; // P2.4,5 开启第二功能,作为串口收发引脚(不同单片机有差别)
IE1 |= URXIE0; // 允许UART0的接收中断
_EINT(); // 总中断允许
while(1)
{
LPM3;
}
}
/********************************************************************
* 名 称:UART_RX()
* 功 能:串口接收中断,每接收到1字节会发生一次中断
********************************************************************/
#pragma vector=UART0RX_VECTOR
__interrupt void UART0_RX (void)
{
switch(RedState)
{
case 0 : if (U0RXBUF=='r')RedState=1;
else RedState=0;
break;
case 1 : if (U0RXBUF=='e')RedState=2;
else RedState=0;
break;
case 2 : if (U0RXBUF=='d'){RedState=0; RED_ON;}
else RedState=0;
break;
}
switch(GreenState)
{
case 0 : if (U0RXBUF=='g')GreenState=1;
else GreenState=0;
break;
case 1 : if (U0RXBUF=='r')GreenState=2;
else GreenState=0;
break;
case 2 : if (U0RXBUF=='e')GreenState=3;
else GreenState=0;
break;
case 3 : if (U0RXBUF=='e')GreenState=4;
else GreenState=0;
break;
case 4 : if (U0RXBUF=='n'){GreenState=0;GREEN_ON;}
else GreenState=0;
break;
}
switch(BlackState)
{
case 0 : if (U0RXBUF=='b')BlackState=1;
else BlackState=0;
break;
case 1 : if (U0RXBUF=='l')BlackState=2;
else BlackState=0;
break;
case 2 : if (U0RXBUF=='a')BlackState=3;
else BlackState=0;
break;
case 3 : if (U0RXBUF=='c')BlackState=4;
else BlackState=0;
break;
case 4 : if (U0RXBUF=='k'){BlackState=0;LED_OFF;}
else BlackState=0;
break;
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1