在Proteus中使用虚拟串口的详细资料汇总.docx
《在Proteus中使用虚拟串口的详细资料汇总.docx》由会员分享,可在线阅读,更多相关《在Proteus中使用虚拟串口的详细资料汇总.docx(12页珍藏版)》请在冰豆网上搜索。
在Proteus中使用虚拟串口的详细资料汇总
【转】虚拟串口以及在Proteus中的使用
一,虚拟串口
虚拟串口是计算机通过软件模拟的串口,当其它设计软件使用到串口的时候,可以通过调用虚拟串口
仿真模拟,以查看所设计的正确性。
首先要安装虚拟串口设置的软件,网上有很多设置虚拟串口的软件,
我用的是VSPD,可试用1个月,试用期过后,该软件将不能使用,但不用担心,所设置的虚拟串口不会消失,
可以继续使用。
设置界面:
我设置的是COM3和COM4,软件只能成对设置,主要是因为通信时,一方可以监视另一方,如果仅设置1个
虚拟串口的话,如你用COM3发送接收数据,但发送了什么接收到什么,你无法验证其正确与来源。
这是人家编写软件的高明之处。
软件设置时将所设置的两个虚拟串口对接,这样就可实现发送与接收的监视。
从设备管理器中可以看到
两个虚拟串口对接方式:
这样可以用串口调试助手调试串口通信了,从下图可以看到COM3发送的数据到达了COM4的接收区域,
COM4发送的数据到达了COM3的接收区域,从而实现了COM3与COM4之间的互联互通。
到这虚拟串口已经设置好,对其它设计软件而言,虚拟串口和普通串口没有区别,如串口调试助手对
虚拟串口的使用和普通串口的使用方法一样。
二,虚拟串口在Proteus中的使用
下一步介绍一下虚拟串口在Proteus中的使用,更准确的应该说是“串口在Proteus中的使用”,
只不过我们用软件实现仿真,虚拟串口在这使用的比较频繁。
先在Proteus中将环境建立起来,很简单,先需要两个元器件就可以建立连接VIRTUALTERMINAL
和COMPIM,如图VIRTUALTERMINAL的TXD与COMPIM的TXD相连,RXD与RXD相连,后面有图分析为什么
这样相连:
VIRTUALTERMINAL是串口监视仪器,可以通过它将数据线上的符合RS232协议的波形捕捉到,
并显示出来,也可以往数据线上发送RS232协议的波形;COMPIM为串口元件,可设置占用计算机上哪一个
串口,可以是“实际串口”,也可以是“虚拟串口”,对Proteus而言,是分不清虚拟串口还是实际串口的
。
下一步就要设置通信速率以及通信格式了,在属性框中实现设置相同的就行了。
这样就可实现数据的通信了。
图为本人的VIRTUALTERMINAL和COMPIM的设置:
下一步就是实现Proteus与串口调试助手之间的通信了。
在VIRTUALTERMINAL中可直接键盘输入
想要发送的数据,但界面中无任何显示,可以通过串口调试助手看到相应的输入数据。
这样的的话即实现数据从Proteus中传送到串口调试助手中了,其相应的数据流向关系为
现在大家知道为什么在Proteus中VIRTUALTERMINAL的TXD与COMPIM的TXD相连接,
而RXD与RXD相连接的原因了吧。
三,在Proteus中实现单片机的串口调试功能
这个做起来就比较简单了,我编写了一个工作在9600bps的8051的串口程序,程序的功能就是将
串口接收到的数据发送出来,Proteus中的连线为:
数据传输的图示为:
这样就模拟实现了单片机与串口之间的通信,可以实现两者之间的仿真设计。
同样实现该通信的数据流为:
四,总结
以上为虚拟串口的设置以及在Proteus中的使用过程,将过程写下来与大家相互学习,
同时利用网络的服务器永久保留下来,方便自己查阅,呵呵。
五,单片机实验
这里讲解一个简单的串口例子。
在自己电脑上用串口小助手发送一个字符X给单片机,单片机接收到之后,回复"shoudaole"。
先看电路图
需要用到的元件很简单,就三个。
单片机、串口可以直接输入元件名称AT89C52,COMPIM找到。
虚拟终端如下图可以找到。
然后是程序。
#include
voidinit()
{
SCON=0X50;//串口的工作在方式1,允许串口接收数据
TMOD=0x20;//设置T1工作方式为方式2
TH1=0xfd;//定时器1置复位数据
TL1=0xfd;//定时器1位装初值
TR1=1;//开定时器1
TI=0;//接收标志位清0
RI=0;//接收标志位清0
}
voidmain()
{
charsen='a';
init();
SBUF=sen;//将单片机要发送的字符'a'送到串口的发送缓冲器SBUF中
while(!
TI);//当发送结束后,SCON寄存器中的TI位会被置1,跳出while执行语句
TI=0;//将TI软件复位置0
while(!
RI);//利用RI是否为1,判断是否接受数据成功
RI=0;//接收成功之后,RI复位
while
(1);
}
运行结果
结果分析:
我们可以看到,当proteus运行的时候,串口调试小助手的接收区会显示一个a,说明单片机发送的字符已经通过串口传送到电脑的串口中。
然后在小助手发送区中输入“shoudaole”,连接在单片机接收线上的虚拟终端会显示这一个信息。
注意:
proteus运行的时候,不要自己关掉虚拟终端的界面,不然下次运行的时候它就不会出现了。
需要你删除再点击新建一个终端。