proteus单片机双机通信如何共同接地

proteus单片机双机通信如何共同接地,第1张

proteus单片机双机通信如何共同接地步骤如下。

1、首先,打开proteus9.5软件。

2、点击P字按钮。

3、输入AT89C51就会出现各种51单片专机。

4、用鼠标双击。

5、然后快捷小窗就会出现选好的单片机,选中放置到编辑区即可。

仿真图用了DB9接口,那个DB9是对应电脑硬件的串口的,即仿真时,数据从DB9收/发,对应的电脑实际串口数据收发。所以,两个DB9是不能用导线连接起通信片,你那三条线画了也没用。

DB9是直接与单片机的RXD,TXD连接的,不能姿衫加MAX232,加了反倒不对了。

要仿真双机通信,很简单,两迹郑腔个单片机的TXD,RXD直接交叉连接就行,而你这么画,又加MAX232,又用DB9反倒不行了。要用MAX232也可以,但丛昌不能用DB9了,两个单片机的MAX232对接。

双机通信不需要安装明蠢虚拟端口软件 ,两机通过TXD <==>RXD 直接通信。

#include<reg51.h>

#define uchar unsigned char

#define uint unsigneed int

uchar a0,a1,a2,a3,temp,i

uchar code tab[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}

sbit P2_0=P2^0

sbit P2_1=P2^1

sbit P2_2=P2^2

sbit P2_3=P2^3

void delay(int ms)

{

while(ms--)

for(i=0i<123i++)

}

void initUART()

{

TMOD=0x20 //M1=1,M0=0 定时器1工作方式2(定时常数重装,慎槐宴8 位)

SCON=0x50 //SM0=0,SM1=1,REN=1 串口工作方式1,允宽银许接收

TH1=0xfd //晶振11.0592时,波特率9600

TL1=TH1//TL1计数,溢出后,TH1值送入TL1

EA=1 //开总中断

ES=1 //允许串口中断

TR1=1 //启动定时器1

}

void disp()

{

a0=temp%2

a1=temp/2%2

a2=temp/2/2%2

a3=temp/2/2/2%2

P2_0=0

P0=tab[a0]

delay(1)

P2_0=1

P2_1=0

P0=tab[a1]

delay(1)

P2_1=1

P2_2=0

P0=tab[a2]

delay(1)

P2_2=1

P2_3=0

P0=tab[a3]

delay(1)

P2_3=1

}

void main()

{

initUART() //调用串口初始化子程序

while(1)

{

disp()

SBUF=P1

while(TI==0)

TI=0

}

}

void UARTinterrupt( ) interrupt 4

{

if(RI)

{

RI=0

temp=SBUF

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12392643.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存