Proteus的51单片机串口通信

首先需要在Proteus中将环境建立起来。我这里使用的版本是8.8。
Proteus的51单片机串口通信_第1张图片

利用两个元器件就可以建立VIRTUAL TERMINAL和COMPIM的连接。如上图所示,两个VIRTUAL TERMINAL的RXD与COMPIM的RXD与TXD相连。单片机的RXD与TXD与COMPIM的TXD与RXD对应相连接。
VIRTUAL TERMINAL是串口监视仪器,可以通过它将数据线上的符合RS232协议的波形捕捉到,并显示出来,也可以往数据线上发送RS232协议的波形;COMPIM为串口元件,可设置占用计算机上哪一个串口。然后就要设置通信速率以及通信格式了,在属性框中实现设置相同的就行了。这样就可实现数据的通信了。下图为VIRTUAL TERMINAL和COMPIM的设置。

Proteus的51单片机串口通信_第2张图片
Proteus的51单片机串口通信_第3张图片
接下来要安装虚拟串口。运行虚拟串口程序,配置虚拟串口,这里我增加COM2,COM4两个虚拟串口。

Proteus的51单片机串口通信_第4张图片
增加之后,左边会出现COM2,COM4,并且在设备管理器的端口中也可以看到这两个相互连接的端口,此时我们的虚拟串口就配置好了。

Proteus的51单片机串口通信_第5张图片
Proteus的51单片机串口通信_第6张图片
之后可以打开串口调试助手调试测试串口是否正常工作。打开两个串口调试助手窗口,一个将端口设置为COM2,另一个将端口设置为COM4,相互之间发送信息。信息接收正常,则表示虚拟串口已经可以正常工作了。

Proteus的51单片机串口通信_第7张图片
然后将Proteus中晶振的频率与单片机的频率设置为11.0592MHz。

Proteus的51单片机串口通信_第8张图片
Proteus的51单片机串口通信_第9张图片
在导入相应的hex文件后点击运行仿真。此时Proteus的单片机串口为COM2,设置串口调试助手为COM4。以16进制的发送方式发送AA,则可点亮相应的LED灯。虚拟终端在十六进制的显示下也可接收到。

Proteus的51单片机串口通信_第10张图片
Proteus的51单片机串口通信_第11张图片

测试代码:/*控制LED的亮灭*/
#include  
#define uchar unsigned char
uchar a; 
void uart_init();
void main() 

{ 

    uart_init();
    while(1)  { 		
            	 } 

} 

void serial() interrupt 4   // 串口中断服务函数
{ 
    if(RI)
		{
 		   a=SBUF; // 读出接收到的数据
   		   RI=0; // 清零接收标志位 
           P0=a;  //将接受到的数据给P0端口	
		}

} 

void uart_init()

{

	  SCON = 0x50;//配置SM0/1,并允许接收
     TMOD=0x20; // 设置定时器1 为方式2
     TH1=0xfd;  //装入初值 对应波特率9600
     TL1=0xfd; 
    TR1=1; //启动定时器1 
    EA=1; // 打开总中断开关
    ES=1; // 打开串口中断开关 

}

你可能感兴趣的:(单片机仿真)