基于proteus的RS232物理接口仿真
RS232接口以其简捷的通信协议在电子系统中得到了广泛的使用,proteus下的RS232接口模型的索引号为COMPIM,在仿真电路运行时,该模型会与计算机对应的RS232 9针物理接口建立起联系。在电子技术中,RS232接口的每个针脚都有其特殊的定义。以计算机端的RS232 9针接口为例,其中TXD为串行数据发送线,RXD为串行数据接收线,DTR、RTS为控制信号发送线,D C D、DSR、CTS、RI为控制信号接收线,GND为信号地。在proteus下,COMPIM模型中信号发送引脚的电平(+5V逻辑电平)改变会直接映射到计算机R S 2 3 2物理接口的对应针脚上,COMPIM模型中信号接收引脚的电平改变是无效的。而对于计算机的物理COM口来说,信号接收针脚的电平(必须为RS232电平)改变会映射到COMPIM模型的对应针脚上。注意,对物理COM口信号接收引脚的强制性电平改变可能会损坏接N。下面以一个简单的实例来进一步说明proteus下对计算机RS232物理接口的仿真。
一.绘制电路在proteus中绘制下如图所示的电路。关q~proteus的基本使用在本刊中已经做过介绍,在此不再重复。电路中COMPIMl的PhysICal port项设为COM 1,COMPIM2的Physical Dort项设为COM2,虚拟终端TERMINAL和两个COMPIM模型的波特率均设为2400,仿真模型的其他属性必须保持默认。
二、为盯89C2051编写程序
在keil中建立一个工程,然后编写如下程序(仅供参考)。
#include
#include
VOid init()
//串口初始化函数
{
SCON=0x50;//串口工作在
方式1
TMOD=0x20;//T1作为波特
率发生器
TH1=0xf3;
TL1=0xf3;//波特率设为
2400
TI=1://置位TI才可以使用
STdio.h函数
TRl=1://启动波特率发生器
IT0=1;//外部中断0为边沿
触发
P3_3=0;//熄灭发光二极管
D
EX0=1;//打开外部中断0
EA=1;//总中断允许
}
VOid intr0()interupt 0
//外部中断0响应函数
{
P3_3=1;//点发光二极管D
}
VOid main()
{
char*buf=”www.17adiO.
Com.Cn”;
unsigned ink i ;
init();//初始化串口
while(*buf)
{
pugchar(*bur);//发送一
个字符
bur++;//buf指向下个字符
for(i=0;i<20000;i++);/
/延时
}
while(1);//进入等待状态
}
三.建立RS232物理接口连接
为了在一台计算机上实现两个RS232接口之间的通信仿真,需要在物理接口COM1和COM2之间建立电气连接。由于我们只用到了接口的一条串行数据传输线和一条控制信号传输线,因此只需将COM1的TXD、CTS线与COM2的RXD、RTS线对应连接即可。取四段2厘米左右的圆珠笔芯和两段没有绝缘层的裸线,将裸线插入圆珠笔芯中,然后再套在COM口的对应针脚上,只要保证裸线的直径与COM口的针脚直径之和略大于圆珠笔芯的内径,即可在COM口之间建立起可靠的电气连接。由于是裸线,一定要小心,不能使两条导线之间短路。
在完成上述三步后就可以开始仿真了。点击运行按钮后buf所指向的符串“.radio.com.cn”就会通过COMI 和COM2之间的串行数据线(TXD和RXD之间的连线)传送到虚拟终端TERMINAL 中。点击LOGICSTATE,使COMPIM2的RTS引脚的电平产生下跳,该下跳会通过COM1和COM2的控制信号线传输线(CTS 和RTS 之间的连线)传送到COMPIMI 的CTS引脚)进而引起AT89C2O5l的INTO引脚向单片机申请中断,单片机响应中断后会点发光二极管VD。
总结:本文以一个简单的实例说明了如何用proteus中的COMPIM模型仿真计算机的物理RS232接口,旨在帮助读者举一反三,给工作或学习带来方便。
相关文章
发表评论