在proteus之外使用串口軟件和單片機(jī)通信。通過(guò)在proteus設(shè)計(jì)一個(gè)單片機(jī)接收PC發(fā)送的數(shù)據(jù),并將接收的數(shù)據(jù)發(fā)送出去,利用軟件【Configure Virtual Serial Port Driver】創(chuàng)建一對(duì)虛擬串口,利用軟件【串口助手】向單片機(jī)發(fā)送數(shù)據(jù)。
proteus仿真電路圖如下:

COMPIM器件是
COM Port Physical Interface Model串口物理端口模型。proteus中的COMPIM是標(biāo)準(zhǔn)的RS-323端口,可直接使用電腦的物理串口通信,即COMPIM是通過(guò)電腦的物理串口進(jìn)行實(shí)際通信的。也就是說(shuō)proteus仿真利用COMPIM通過(guò)電腦的串口與外界的其它設(shè)備進(jìn)行通信。
需要注意的是COMPIM與單片機(jī)的接法:?jiǎn)纹瑱C(jī)的RXD引腳與COMPIM的RXD引腳連接,單片機(jī)的TXD引腳與COMPIM的TXD引腳連接。
設(shè)置COMPIM的參數(shù),按照需求設(shè)計(jì)。如下,設(shè)置COM端口號(hào)為COM2,波特率為9600bps。要注意單片機(jī)的波特率要和各個(gè)串口波特率一致;串口選擇了COM2表示單片機(jī)在COM2邏輯上是相互的,串口上收到的信息,也就是單片機(jī)收到的信息,單片機(jī)發(fā)送的信息就會(huì)從COM3發(fā)出。

使用軟件【Configure Virtual Serial Port Driver】查看或創(chuàng)建當(dāng)前的端口號(hào),打開(kāi)軟件如下。電腦中只有一個(gè)物理端口COM1,可以添加虛擬端口對(duì),點(diǎn)擊【Add pair】即可。這時(shí)COM2和COM3是相連的,只要在串口助手中監(jiān)視COM3即可。

打開(kāi)【串口調(diào)試助手】,設(shè)置相同的波特率,如下,然后打開(kāi)串口監(jiān)視。

編寫(xiě)單片機(jī)的代碼,單片機(jī)接收PC(即串口助手)發(fā)送的數(shù)據(jù),并將接收到的數(shù)據(jù)發(fā)送出來(lái)。編碼如下:
/*
實(shí)現(xiàn)功能:串口通信,proteus仿真單片機(jī)與串口通信
接收PC機(jī)數(shù)據(jù)
[2024-01-16] zoya
*/
#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
#define GPIO_LED P1
void UsartInit()
{
SCON=0x50; // 串口工作方式1,接收數(shù)據(jù)
TMOD=0x20; // 定時(shí)器T1工作方式2
TH1=TL1=0xFD; // 波特率9600bps,不倍增
PCON=0x00;
ES=1; // 打開(kāi)串口中斷允許位
EA=1; // 打開(kāi)CPU中斷允許位
TR1=1; // 啟動(dòng)計(jì)數(shù)
}
void main()
{
UsartInit();
while(1);
}
void ReceiveDat() interrupt 4
{
u8 tmp;
if(RI)
{
tmp=SBUF;
RI=0;
SBUF=tmp;
while(!TI);
TI=0;
}
}
仿真結(jié)果:
