11.6 通信实例与ASCII码

本文展示了如何使用C语言编程,通过配置定时器T0和串口UART进行通信,并将接收到的串口数据在数码管上以十六进制形式动态显示。配置了定时器T0来实现1ms定时,并使用中断服务函数更新LED显示。同时,配置串口波特率为9600,实现数据接收和发送。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们学习串口通信主要是要实现单片机和电脑之间的信息交互,可以用电脑控制单片机的一些信息,可以把单片机的一些信息状况发给电脑上的软件。下面我们就做一个简单的例程,实现单片机串口调试助手发送的数据,在我们开发板上的数码管上显示出来。
   
   
  1. #include <reg52.h>
  2. sbit ADDR3 = P1^3;
  3. sbit ENLED = P1^4;
  4. unsigned char code LedChar[] = { //数码管显示字符转换表
  5. 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
  6. 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
  7. };
  8. unsigned char LedBuff[7] = { //数码管+独立 LED 显示缓冲区
  9. 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
  10. };
  11. unsigned char T0RH = 0; //T0 重载值的高字节
  12. unsigned char T0RL = 0; //T0 重载值的低字节
  13. unsigned char RxdByte = 0; //串口接收到的字节
  14. void ConfigTimer0(unsigned int ms);
  15. void ConfigUART(unsigned int baud);
  16. void main(){
  17. EA = 1; //使能总中断
  18. ENLED = 0; //选择数码管和独立 LED
  19. ADDR3 = 1;
  20. ConfigTimer0(1); //配置 T0 定时 1ms
  21. ConfigUART(9600); //配置波特率为 9600
  22. while (1){ //将接收字节在数码管上以十六进制形式显示出来
  23. LedBuff
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值