历史上的今天
返回首页

历史上的今天

今天是:2025年04月11日(星期五)

正在发生

2019年04月11日 | 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  

  

}  


推荐阅读

史海拾趣

ETC2公司的发展小趣事

随着环保意识的日益增强,ETC2公司也积极响应国家环保政策,致力于推动ETC技术的绿色环保应用。他们研发了低能耗、低排放的ETC设备,并推广使用电子发票等环保支付方式。这些举措不仅减少了能源消耗和环境污染,也为ETC2公司树立了绿色环保的企业形象。

Dau Semiconductor Inc公司的发展小趣事

在成立初期,Dau Semiconductor Inc公司面临着诸多技术挑战。其中,如何实现芯片的低功耗设计是困扰公司发展的一个难题。为了解决这个问题,公司投入大量研发资源,不断探索新的技术和材料。经过数年的努力,公司终于成功突破了技术瓶颈,研发出了一款具有超低功耗的半导体芯片。这款芯片的推出,不仅为公司赢得了市场认可,也为公司在行业中树立了技术领先的形象。

E-Mark Inc公司的发展小趣事

GHI公司一直致力于提升产品品质和安全性。为了进入欧洲高端市场,GHI公司决定对其核心产品进行E-Mark认证。在认证过程中,GHI公司不断完善质量管理体系,提升生产工艺水平,确保产品质量的稳定性和可靠性。最终,GHI公司的产品成功获得了E-Mark认证,并在欧洲市场获得了良好的口碑和市场份额。

Concurrent Logic公司的发展小趣事

面对日新月异的市场需求和不断变化的技术趋势,Concurrent Logic始终坚持创新驱动的发展战略。他们投入大量资源在研发上,不断探索新的并行计算技术和应用。通过持续的创新和市场的不断拓展,Concurrent Logic逐渐巩固了其在电子行业中的领导地位,成为了并行计算领域的一面旗帜。他们的产品被广泛应用于云计算、大数据分析、人工智能等多个前沿领域,为整个电子行业的发展注入了新的活力。

以上是关于电子行业里Concurrent Logic公司发展起来的相关故事,每个故事都反映了该公司在不同发展阶段所面临的关键节点和决策。

AirBorn公司的发展小趣事

随着业务的发展,AirBorn开始将目光投向全球市场。公司积极参与国际电子展会,与全球各地的客户建立合作关系。同时,AirBorn还加大了对研发和生产设备的投入,提升产品质量和生产效率。这些举措使得AirBorn的产品在全球范围内赢得了良好的声誉,公司也逐渐成长为一家具有全球影响力的电子连接器制造商。

GS Yuasa Battery Sales UK Ltd.公司的发展小趣事

在航空航天领域,AirBorn的产品广泛应用于飞机、导弹系统、通信设备等关键领域。为了满足航空航天领域对连接器的严苛要求,AirBorn不断投入研发力量,推出了一系列具有高性能、高可靠性的连接器产品。这些产品不仅满足了航空航天领域的需求,还为公司带来了可观的收益。

问答坊 | AI 解惑

讲述中国工程师自己的创业故事 转

从全球来看,无数技术专才选择在美国硅谷开创新的事业,众多风险投资机构则成为支撑他们发展的重要力量。多种因素作用之下,美国硅谷仍然是全球科技产业的“圣地”,散发着技术创新和成就梦想的夺目光环。 而在中国大陆来看,上海、北京和深圳等地 ...…

查看全部问答>

第二届ARM中国微控制器技术研讨会详细资料无私奉献

为方便坛友下载,打包成一个附件,内容丰富,要求置顶或加精! 包括内容: pdf1、第二届ARM MCU研讨会 谭军 : 会议开幕,ARM使用领域 pdf2、TSB ARM MCU PR 090612 CN: TOSHIBA ARM内核微控制器 - TX03 和 TX09 介绍 pdf3、ST_ARM_MCU_Sem ...…

查看全部问答>

图片按钮背景点击后消失

   自己重载的CButton,类,捕获OnLButtonUp和OnLButtonDown消息,实现点击时切换背景图片,发现点击之后,绘制完背景之后,按钮背景又回复为默认的无背景的(默认的颜色和问题)。在事件处理时,的确已经将背景画成图片,感觉好像系统的 ...…

查看全部问答>

wince下驱动程序开发

我们用SAMSUNG公司ARM芯片S3C2440设计的板子,硬件原理图参照了朗成公司的同款芯片开发板,加了个FPGA,FPGA以类似SRAM的方式挂在ARM的总线上,ARM可以寻址到FPGA,要求我写个驱动能够快速寻址FPGA,现在没有头绪,请问应该学习哪些知识完成开发?…

查看全部问答>

wince5.0关于生成NK.nbo的问题

在WINCE5.0下无法生成NK.nbo,后来在网上看到相关文章,才知道需要修改config.bib这个文件,需要添加如下参数: ROMSTART ROMWIDTH ROMSIZE ROMSIZE比较好理解,根据操作系统大小直接设定,可ROMSTART 和 ROMWIDTH 代表什么含义呢?如何给它们 ...…

查看全部问答>

VHDL问题

在PROCESS中,这个PROCESS是 TYPE state IS (s0,s1,s2); SIGNAL current_state,next_state,pro:state; process(current_state) 在case语句中为pro赋值(值为state0或1或2),可是到了下一个上升沿,这个值就不存在了,无法持续,这是为什么? ...…

查看全部问答>

wince串口通信时的程序问题。

我用C#编制程序,参考别人的经验,使用CREATEFILE函数,有下面三个参数: private const uint GENERIC_READ = 0x80000000; private const uint GENERIC_WRITE = 0x40000000; private const int OPEN_EXISTING = 3; GENERIC_READ参数是只读, ...…

查看全部问答>

【征文】从疯狂下载到自己动手

                                              【征文】从疯狂下载到自己动手     我学单片机完全是出于 ...…

查看全部问答>

51单片机数码管不用锁存器显示时程序怎么写

我的程序:#include <reg52.h>unsigned int ms;unsigned char shumaguan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//sbit wei1=P2^4;sbit wei2=P2^5;sbit wei3=P2^6;sbit wei4=P2^7;void delay ( ...…

查看全部问答>