MSP430串口接收控制LED

/**********************************************    
*程序描述:单片机的P3.4、P3.5作为串口接收字符,将接受到的字符再发送出去
*并且根据接受到的字符‘1’‘2’‘3’‘4’分别点亮LED1、LED2、LED3、LED4
P2.0->LED1 ,P2.1->LED2, P2.2->LED3 ,P2.3->LED4
*作者    :Zhenhua Liu    
*时间    :2017.11.02  18:00    
***********************************************/  
#include  <msp430x14x.h>  
void usartInit(void);                           //串口初始化  
void main(void)  
{  
  WDTCTL = WDTPW + WDTHOLD;                     // Stop WDT  
  P2DIR |= BIT0+BIT1+BIT2+BIT3;
  P2OUT |= BIT0+BIT1+BIT2+BIT3;
  usartInit();                                  //初始化串口
  while(1){  
  _BIS_SR(LPM3_bits + GIE);                     // Enter LPM3 w/ interrupt  
  while((UTCTL0&TXEPT)==0);                     //等待数据发送完毕     
   TXBUF0 = RXBUF0;                             // RXBUF0 to TXBUF0  
   switch(RXBUF0){
     case'1':P2OUT&=~BIT0;break;                //打开LED1
     case'2':P2OUT&=~BIT1;break;                //打开LED2
     case'3':P2OUT&=~BIT2;break;                //打开LED3
     case'4':P2OUT&=~BIT3;break;                //打开LED4
     default:P2OUT|=BIT0+BIT1+BIT2+BIT3;break;  //熄灭所有的LED
  }  
  }
}  
  
#pragma vector=UART0RX_VECTOR  
__interrupt void usart0_rx (void)  
{  
   LPM3_EXIT;  
}  
/****************************************************************************    
*函数名: uartInit()                                                          /    
*作用  :USART0的初始化配置,使用P3.4和P3.5,使用接收中断                    /    
*返回值:无                                                                  /    
*参数  :无                                                                  /    
*作者  :Zhenhua Liu                                                         /     
*时间  :2017.11.02                                                          /     
*****************************************************************************/    
void usartInit(){  
  P3SEL |= 0x30;                            // P3.4,5 = USART0 TXD/RXD  
  ME1 |= UTXE0 + URXE0;                     // Enable USART0 TXD/RXD  
  UCTL0 |= CHAR;                            // 8-bit character  
  UTCTL0 |= SSEL0;                          // UCLK = ACLK  
  UBR00 = 0x03;                             // 32k/9600 - 3.41  
  UBR10 = 0x00;                             //  
  UMCTL0 = 0x4A;                            // Modulation  
  UCTL0 &= ~SWRST;                          // Initialize USART state machine  
  IE1 |= URXIE0;                            // Enable USART0 RX interrupt  
  
}  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nwsuaf_huasir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值