历史上的今天
返回首页

历史上的今天

今天是:2024年11月20日(星期三)

正在发生

2019年11月20日 | UART接口控制LED灯

2019-11-20 来源:51hei

1、串口以查询方式接收数据,并分别将数据显示的PB口和返回。
2、内部1 M晶振,程序采用单任务方式,软件延时。
3、进行此实验请插上JP1的所有8个短路块,JP7(LED_EN)短路块。
4、通过此实验,可以对串口通信有个初步认识。
5、从JATG上拔下线,连载COM1口上,也就是AVRISP 的COM2口边上那个,具体可看说明书

AVR  mega16学习板

*/
#include "iom16v.h"
#include "macros.h"
/*串口初始化函数*/
void Uart_Init(void) {
UCSRA = 0x02;  /*倍速*/
UCSRB = 0x18;  /*允许接收和发送*/
UCSRC = 0x06;  /*8位数据*/
UBRRH = 0x00;
UBRRL = 12;  /*9600*/
}

/*数据发送,查询方式*/
void Uart_Transmit(unsigned char i) {
while (!(UCSRA & (1<UDR = i;    /* 发送数据*/
//while(!(USR&0x20));
/* start transmittion many datas */
while(!(UCSRA&0x40));/*判断TXC是否发完*/
UCSRA|=0x40;//关TXC

}

/*数据接收,查询方式*/
unsigned char Uart_Receive( void ) {
while (!(UCSRA & (1<return UDR;    /* 获取并返回数据*/
}

/*延时函数*/
void delay_ms(unsigned char i) {
unsigned char a, b;
for (a = 1; a < i; a++) { 
  for (b = 1; b; b++) { 
   ;
   } 
  } 
}


/*主函数*/
void main(void) {
unsigned char temp;
DDRA = 0x00;    /*方向输入*/
PORTA = 0xFF;    /*打开上拉*/
DDRB = 0xFF;    /*方向输出*/
PORTB = 0xFF;    /*电平设置*/
DDRC = 0x00;
PORTC = 0xFF;
DDRD = 0x02;
PORTD = 0xFF;  
Uart_Init();
   SEI();                         //允许全局中断    

while(1) {
   
  temp = Uart_Receive();  /*等待接收数据*/
  
  if  (temp== 0x6E )    // n
  {PORTB = 0xfe; }    /*显示低电平有效*/
  if (temp== 0x66)    //f 利用scomv21串口助手 发送f 后得到十六进制数0x66
    {PORTB = 0xff;}
     
  if  (temp== 0x65 )    // e
  {PORTB = 0xfd; }    /*显示低电平有效*/
    
  Uart_Transmit(temp);  /*发送收到的数据*/
  }
}

推荐阅读

史海拾趣

Helium公司的发展小趣事

随着Helium商业模式的成功实施,其热点数量迅速增长。据数据显示,Helium的热点数量从最初的少数几个发展到数十万乃至数百万个,覆盖了全球169个国家和地区。这一成就不仅彰显了Helium在物联网领域的领先地位,也为其带来了巨大的市场影响力和商业价值。通过广泛的网络覆盖,Helium为物联网设备提供了稳定、可靠的连接服务,促进了物联网技术的普及和应用。

ETL [E-Tech Electronics LTD]公司的发展小趣事

在追求经济效益的同时,ETL也积极履行社会责任。公司注重环保和可持续发展,采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。此外,ETL还积极参与公益事业,为社会做出了积极贡献。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了基础。

德崧电子(D-SWITCH)公司的发展小趣事

在电子开关行业,防水性能一直是重要的技术指标。德崧电子(D-SWITCH)公司在成立初期就意识到了这一点,并投入大量资源进行研发。经过数年的努力,公司成功研发出了具有TUV IP67/IP68防水等级认证的防水型开关。这一突破性的技术不仅解决了市场上防水开关性能不稳定的问题,还大大提高了产品的可靠性和使用寿命。凭借这一技术优势,德崧电子在市场上迅速崭露头角,赢得了客户的广泛认可。

Diotec Electronics Corp公司的发展小趣事

Diotec Electronics Corp公司成立于XXXX年,由一群富有激情的工程师和技术专家创立。在初创期,公司专注于研发高性能的电子元器件,以应对当时市场上对高效率和可靠性元件的迫切需求。通过不断的技术创新,Diotec成功开发出了一款具有革命性的整流二极管,该产品以其卓越的性能和稳定性迅速赢得了市场的认可,为公司的发展奠定了坚实的基础。

EECO Switch公司的发展小趣事

EECO Switch公司成立于1947年,最初作为加利福尼亚州的一家电子工程公司,致力于电子产品的设计与制造。随着技术的不断进步和市场需求的变化,公司逐渐将业务重心转向人机界面产品的设计与开发。在这个过程中,EECO Switch凭借其深厚的技术积累和创新精神,成功开发出了一系列具有领先技术的人机界面产品,从而确立了其在该领域的领先地位。

CETC公司的发展小趣事

为了进一步提升公司的国际影响力,CETC开始积极布局海外市场。公司先后在美国、欧洲等地设立了研发中心和分支机构,与当地企业开展深度合作,共同研发适应市场需求的产品。同时,CETC还积极参加国际电子展会和论坛,展示公司的最新技术和产品,吸引了众多国际客户的关注。通过这些努力,CETC成功打开了海外市场的大门,为公司的长远发展注入了新的动力。

问答坊 | AI 解惑

楼道广告机资料

• 人体感应功能;• 感应器感应方向 180 度可调;• 感应到人体信号即点亮灯泡并播放当前时间和广告语音;• 即时报时功能;• 可存储 4 段广告语音,广告语音触发后循环播报;• 广告语音播放声音清晰; ...…

查看全部问答>

交警执法用测速设备的工作原理和检定方法详述

一、测速设备综述:     交警执法用的测速设备包括流动式的雷达测速仪和固定安装在道路上的机动车超速自动监测系统。本文所称测速设备,主要指固定安装于道路上的机动车超速自动监测系统。     (一)流动式雷达测速仪: &n ...…

查看全部问答>

分享LM3S8962系统时钟设置函数学习心得

LM3S8962 DATASHEET 介绍多种可以使用LM3S8962系统时钟源。LM3S8962的时钟来源如下: 1. 片上时钟源,12M+-30%,  作为主时钟需要上电完成后软件设置; 2. 主时钟(可以使用晶振或晶体)(对于OSC0,OSC1)。使用内部PLL,主时钟允许范围3 ...…

查看全部问答>

VS2005上函数的下拉列表中的函数变灰怎么搞?

我在用VS2005的时候,有时候做着做着就发现在右上区域的哪个函数的下拉列表中的一些函数变灰了,本来好好的应该都是黑色的,点它一下就可以跳到相应的函数里去.但现在变灰了,点了就跳不去了,跑道*.h文件的函数定义那里去了,自己跑到哪个函数的里面 ...…

查看全部问答>

IAR的安装问题

我安装了IAR,下载了一个LM3S系列的例程,编译的时候总是提示错误,好像是说头文件找不到 就像这样的错误,是怎么回事啊,请高手指教一下啊…

查看全部问答>

等精度测频 FPGA实现。

通过了实际的验证,测量精度达千分之一以上。内有工程的各种文件,也包含仿真文件,欢迎下载。…

查看全部问答>

DDS资料~

本帖最后由 paulhyde 于 2014-9-15 04:18 编辑 此为本人收集的有关DDS的资料~ [ 本帖最后由 贰雨儿 于 2011-8-30 17:11 编辑 ]  …

查看全部问答>

求430中主要语句的时钟周期

想请问一下430中主要语句的时钟周期是多少啊?(+、-、*,以及while语句)以前以为都是在430中都是但周期指令,但今天发现不是,所以请知道的高手不吝赐教,谢谢!…

查看全部问答>

FPGA死机

自从昨天把采样频率倍频到200M后,就出现死机问题。谁知道这是什么原因引起的啊?电源问题吗?…

查看全部问答>