这是一个51单片机串口通信代码的代码,请各位大神帮忙注释一下

你给串口发的 1 是ascll码

你可以发送十六进制 1,2 试试

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

需要实现的功能为:开机后通过P0ロ控制8个LED中最低位的LED亮其它LED熄灭;通过电脑向单片机发送数据,单片机接收到数据后通过P0口控制8个LED显示实验现象:开机后,8个LED显示不... 需要实现的功能为:开机后通过P0口控制8个LED中最低位的LED亮其它LED熄灭;通过电脑向单片机发送数据,单片机接收到数据后通过P0口控制8个LED显示
实验现象:开机后,8个LED显示不正常为全亮;串口发送数据后,低4位LED显示正常高4位LED显示不正常。

你这是仿真吧还是实物开发板?要昰仿真程序要改一下。另

外是在P0接一片74HC573吗?因为你的程序中用了LE锁存控制位这些都不说清楚,就问错误在哪按仿真,573锁存修改

峩哭的也不太好亲一个抽另一个洗了毕业玩过忑了课余科目来来来

这个问题你得自己解决啊我也不是特别饿清楚的你说怎么办那把。

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

想来想去不知道要怎么样把232串口通信说清楚想想还是直接把代码分析一遍吧...

重点是“常用波特率与定时器1的参数关系”这张表格!波特率的设置很重要!

1.SM0、SM1:串行口工莋方式控制位

2.SM2:多机通信控制位

3.REN:允许接收位

4.TB8:发送接收数据位8

6.TI:发送中断标志位TI=1表示帧发送结束

7.RI:接收中断标志位RI=1表示帧接收完成

2.C/T:定時器模式和计数器模式选择器C/T=1,计数器C/T=0定时器

3.M1、M0:工作方式选择位

SMOD:是波特率是否加倍的选择位。

SMOD=0时:波特率不加倍

SMOD=1时:波特率加倍。

SBUF:有两个物理上独立的接收、发送缓冲器SBUF它们占用同一地址99H ;接收器是双缓冲结构 ;发送缓冲器,因为发送时CPU是主动的不会产生重疊错误。

TI:发送中断标志位 TI=1表示帧发送结束

Flag=1; //标志位置1表示有新数据进来

RI:接收中断标志位 RI=1表示帧接收完成

Flag=1; //标志位置1表示有新数据进来

if (Flag==1) //判断昰否有数据过来有则进入循环

EA=0; //进入循环之后就把总中断关闭,防止处理过程中又有中断进来

Flag=0; //数据处理完毕后将标志位置0表示没有新数據要处理

EA=1; //打开总中断,允许接收新数据

我要回帖

更多关于 单片机串口通信代码 的文章

 

随机推荐