Proteus 串口发送与接收仿真
我的Proteus版本是8.13,最近在学习使用proteus仿真串口通信时出现一点问题,慢慢解决完成了串口仿真。
问题:
1. COMPIM和Virtual terminal这两个器件怎么用
2. 单片机只能发送不能接收
Virtual terminal不能像串口助手一样给单片机发数据,只能显示单片机发送的数据或者显示串口助手发来的数据。总之就是,只能显示。
COMPIM用于你需要使用串口助手和单片机通信的时候。
先来看一下Virtual terminal。

图:Virtual terminal不在元件库里,要到虚拟仪器里面去找

图:连线图
双击配置Virtual terminal:如下图,我的波特率设置为4800,点ok

图:Virtual terminal 配置
我在程序中写的是上电后单片机发送AA

图:Keil程序
Proteus运行仿真,如果没跳出Virtual terminal的窗口,手动去debug里打开


图:显示单片机发送了AA
如果你的Virtual Terminal界面什么都没显示,右键打开16进制显示

停止仿真,重新运行一次

出现上图,没关系,停止仿真,再运行一次,就正常了

由于Virtual Terminal只能用来显示,我们实现串口发送和接收的仿真还是要使用COMPIM
先设置一对虚拟串口,我使用的是VSPD,设置了COM1和COM2
VSPD下载参考:
你可以在设备管理器里查看虚拟串口COM1和COM2是否设置成功

在元件库里搜索“COMPIM”,放置连线

图:连线图
双击配置COMPIM,端口为COM1,波特率为4800

图:配置COMPIM
打开串口助手,我使用的是XCOM。配置串口为COM2,波特率为4800,打开串口

图:串口助手的配置
在Proteus运行仿真后,我们发现串口助手接收区接收到AA,说明单片机发送没问题

图:单片机发送测试
我的程序中写了中断函数来作为接收,当串口助手向单片机发送一个数据时,单片机会回传这个数据,也就是在串口助手的接收区能看见我发给单片机的数据

图:Keil中断程序
但当我在串口助手向单片机发送“FF”时并没有收到单片机的回传。我使用Virtual terminal发现COMPIM确实给单片机发送了“FF”。如下图。名为Recieve的Virtual terminal检测到我发送的数据“FF”。所以应该是Proteus单片机的模型有问题。

在Proteus8.13中,MCS8051.DLL这个文件需要替换。
下载替换文件,解压
替换文件百度网盘链接: https://pan.baidu.com/s/12hCPWBBYO-xaPRw1nGzjUw?pwd=wmyy
提取码: wmyy
找到D:\Proteus8.13\Proteus 8 Professional\DATA\MODELS\MCS8051.DLL,将其替换掉
替换后,运行Proteus仿真,得到回传数据“FF”。

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)