祝大家身体健康哈,肺炎愈来愈多,希望看到这篇文章的旁友都能健健康康!
今天写一下proteus里如何使用虚拟串口仿真单片机和上位机通讯,所需要的软件有:(1)Virtual Serial Port Driver Pro(Pro不Pro都行);(2)keil 4/5;(3)Proteus 8 Professional;(4)猫猫串口网络调试助手。这些软件网络上都有,但是还是希望大家尽可能支持正版软件。
首先配置虚拟串口,打开Virtual Serial Port Driver Pro,我们会发现有以下界面,第一步先选择串口名称,因为我的电脑com1,com2,有时候会被占用,所以我选择了com3和com4作为虚拟串口;第二步,选择完成后,点击右下角add virtual pair即可,随后会出现第三步所示的两个串口。
检验方法也很简单,方案一,打开电脑里的设备管理器,会发现多出来两个串口;方案二,打开两个猫猫调试助手,一个选择com3,一个选择com4,使用相同的波特率,在一个窗口发送另一个可以成功接收即可。
完成串口配置后,第二步就是画原理图,我画的原理图是郭天祥的TX-1C开发板,AT89C51,原理图如下(有部分bug,但是在文件中已经修改,欢迎继续指正),下载链接:/download/toyjis/12123752 亲测可用!!!!!
第三步就是代码,代码实现了数据的收发和单片机与上位机之间的通讯(注释没写,想了解的旁友可以看一下郭天祥《新概念51单片机教程》第137页),代码写在keil里,在keil中选择编译时生成hex文件。
#include <REG51.H>#define uchar unsigned char#define uint unsigned intunsigned char flag,a,i;uchar code table[]="I get";void xvnicuankou_init(){TMOD=0x20;TH1=0xfd;TL1=0xfd;TR1=1;REN=1;SM0=0;SM1=1;EA=1;ES=1;}void main(){xvnicuankou_init();while(1){if(flag==1){ES=0;for(i=0;i<6;i++){SBUF=table[i];while(!TI);TI=0;}SBUF=a;while(!TI);TI=0;ES=1;flag=0;}}}void ser() interrupt 4{RI=0;a=SBUF;flag=1;}
第四步,将hex文件导入proteus的仿真里,具体方法右击左击原理图的C51芯片,在program file里找到hex文件的位置。
开始仿真,同时打开猫猫串口调试助手,选择9600bps,com3,在发送栏中输入任意字符,会有单片机返回 “I get ” 的现象。