永发信息网

用单片机仿真器进行串口通讯仿真,接收的数据不对。

答案:3  悬赏:80  手机版
解决时间 2021-03-01 01:47
  • 提问者网友:謫仙
  • 2021-02-28 01:37
程序如下:
ORG 00H
START: MOV SP,#60H
MOV SCON,#01010000B ;设定串行方式,8位异步,允许接收

MOV TMOD,#20H ;设定计数器1为模式2
MOV TH1,#0FDH ;设定波特率为9600
MOV TL1,#0FDH
SETB TR1 ;计数器开始计数
AGAIN: MOV SBUF,#31H ;发送接收到的数据
JNB TI,$ ;等待发送完成
CLR TI
SJMP AGAIN
END
应该接受到1,但实际上是1,LLLLLLLLLL,等许多。
波特率是9600,仿真器设置完全按规定所设的。笔记本电脑带串口的,经过232转485 转换器后接MAX487,连单片机串口。
最佳答案
  • 五星知识达人网友:由着我着迷
  • 2021-02-28 02:23
在笔记本上用串口调试助手看嘛
你接485?那怎么在代码中看不到你怎么控制485的控制端的?
注意232线接485转换器别接反
还有二楼说得对
实在不行用示波器看485的AB线
全部回答
  • 1楼网友:酒者煙囻
  • 2021-02-28 03:42
你的程序一直在重复的发送1这个数据,所以接受到得就是换一片单片机试试看,你用的什么单片机阿。 你在仿真器里面的cpu选择应该是p89c58,还有就是看看这个单片机的串口是否和标准的51一样,还是有哪个寄存器没有设置。 仿真器和真实的单片机运行是有一定的差异的,这是仿真器的局限。 你干脆写一段单片机不断的响计算机发数据的程序,先检查一下硬件是不是完好的,然后再看看这个单片机的特殊功能寄存器设置有什么特殊的。
  • 2楼网友:动情书生
  • 2021-02-28 02:36
串口通信最好不要用仿真啊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯