单片机
返回首页

MSP430串口接收控制LED

2019-04-11 来源:eefocus

/**********************************************    

*程序描述:单片机的P3.4、P3.5作为串口接收字符,将接受到的字符再发送出去

*并且根据接受到的字符‘1’‘2’‘3’‘4’分别点亮LED1、LED2、LED3、LED4

P2.0->LED1 ,P2.1->LED2, P2.2->LED3 ,P2.3->LED4

***********************************************/  

#include 

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  

  

}  


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 如何构建一个触摸传感器电路

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章