100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > proteus中使用虚拟串口实现单片机和上位机通讯

proteus中使用虚拟串口实现单片机和上位机通讯

时间:2024-08-03 08:32:14

相关推荐

proteus中使用虚拟串口实现单片机和上位机通讯

祝大家身体健康哈,肺炎愈来愈多,希望看到这篇文章的旁友都能健健康康!

今天写一下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 ” 的现象。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。