Proteus8.9使用虚拟串口VSPD仿真51单片机的串口通信【详细教程-2025】
作者相关信息github主页https://github.com/snqx-lqhVX公众号小离的嵌入式笔记 欢迎交流 如果对你有帮助希望可以帮我点个赞和收藏谢谢软件下载链接仿真软件版本Proteus8.9下载链接链接:https://pan.baidu.com/s/1kkgFmRBlh268m_ESl83weg 提取码:9bde 复制这段内容后打开百度网盘手机App操作更方便哦虚拟串口工具VSPD链接:https://pan.baidu.com/s/1uQ5f_6TjwxREZCwp7Pk99A?pwd6rmk 提取码:6rmk 复制这段内容后打开百度网盘手机App操作更方便哦本文的原工程我也放在了CSDN下载但是我觉得可能用不上因为我的全部内容都在博客中叙述了应该比较容易自己复现。虚拟串口安装和使用安装步骤1、双击安装应用程序按钮。2、只能选English3、直接Next4 、选择同意5、选择安装路径不要在C盘即可6、直接Next7、取消全部勾选然后NEXT8、点击install下载9、不要勾选直接关闭10、将安装包中Crack的文件夹中的内容复制11、将其粘贴到安装目录下直接12、直接替换文件中目标至此安装完毕。配置虚拟串口对1、打开软件可以看到当前系统已占用的端口1处是物理端口就是实际拥有的端口40和41就是我创建的虚拟串口对你往串口40发东西串口41能收到往串口41发东西串口40能收到。2、我们新创建一个串口对比如使用20和21配对记得一定选择未使用的端口点击添加端口即可。3、创建完成后左边会有一对新的串口对4、然后你就可以在系统的设备管理器也能找到这两个端口了。有的时候在上面显示有的时候在下面不管了反正有。5、如果要删除的话选中串口对点击删除即可。虚拟串口使用测试串口上位机相互发送打开两个正点原子的XCOM也可以是其他的上位机测试软件然后设置好波特率什么的一个选择刚刚设置的串口20一个选择刚刚设置的串口21。然后就能发现左边发送的右边能接到右边发送的左边能接到。Proteus仿真首先我们先绘制一个51单片机带上串口的电路图。重点是COMPIM这个元器件的配置还有注意连线P30接RXDP31接TXD。然后我们右键选中编辑这个元器件。也可以直接双击打开。在编辑界面我们输入这个串口的设备信息主要是他代表的串口号有可能下拉框没有你能选的这时候你就需要自己输入了。比如我的COM20就没有是我自己输的然后其他配置根据实际情况来什么停止位呀啥的。然后设置完成后点击右上角的OK。我们写一个测试程序放在单片机中测试程序如下#includereg52.h#defineu8unsignedchar#defineu16unsignedintsbit LEDP2^0;voidUartInit(void)//9600bps11.0592MHz{PCON0x7F;//波特率不倍速SCON0x50;//8位数据,可变波特率TMOD0x0F;//设置定时器模式TMOD|0x20;//设置定时器模式TL10xFD;//设置定时初始值TH10xFD;//设置定时重载值ET10;//禁止定时器中断TR11;//定时器1开始计时ES1;//打开串口中断EA1;//打开全部中断}voidSendBuffLen(u8*str,u8 len){while(len!0){SBUF*str;while(!TI);TI0;str;len--;}}charstr[]hello world\r\n;intmain(){UartInit();SendBuffLen(str,sizeof(str));while(1){}}voidUartRoutine(void)interrupt4{u8 res;if(RI){resSBUF;if(res0x01){LED0;SendBuffLen(hello world\r\n,sizeof(hello world\r\n));}else{LED1;SendBuffLen(中文字符测试\r\n,sizeof(中文字符测试\r\n));}RI0;}}将代码通过Keil编译后生成HEX文件双击单片机后插入文件同时记得代码配置的单片机使用的是11.0592MHz的时候。然后打开一个串口调试助手选择COM21因为仿真中用的COM20运行仿真一开始单片机会发送一个Helloworld。发送1个01使用HEX模式会发现单片机会反一个helloworld同时LED被点亮这是代码逻辑就不细讲了主要是验证串口可以收发。发送1个02使用HEX模式会发现单片机会反一个中文字符测试同时LED被熄灭这是代码逻辑就不细讲了主要是验证串口可以收发。