仿真图用了DB9接口,那个DB9是对应电脑硬件的串口的,即仿真时,数据从DB9收/发,对应的电脑实际串口数据收发。所以,两个DB9是不能用导线连接起通信片,你那三条线画了也没用。
DB9是直接与单片机的RXD,TXD连接的,不能加MAX232,加了反倒不对了。
要仿真双机通信,很简单,两个单片机的TXD,RXD直接交叉连接就行,而你这么画,又加MAX232,又用DB9反倒不行了。要用MAX232也可以,但不能用DB9了,两个单片机的MAX232对接。
/\
接收与发送 串口初始化与中断程序
\/
unsigned char reciv;
void Uart0_int(void)
{
TMOD = 0x20;
TH1 = 0xfd;
TR1 = 1;
SCON = 0x50;
EA =1;
ES =1;
}
void Uart0_inpt(void) interrupt 4
{
if(TI)
{
TI=0;
}
if(RI)
{
RI=0;
reciv = SBUF; //接收数据赋值给reciv
}
}
/\
数码管显示
\/
void display(unsigned int dat)
{
P2=0xfe;
P0=tab[dat/1000];
delay(7);
P2=0xfd;
P0=tab[dat/100%10];
delay(7);
P2=0xfb;
P0=tab[dat/10%10];
delay(7);
P2=0xf7;
P0=tab[dat%10];
delay(7);
}
void main()
{
Uart0_int();
while(1)
{
SBUF = 1; //发送数据1
display(reciv);//显示接收数据
}
}
要加入数码管动态显示程序,必须要与实际的数码管电路相符才能显示出来,可是没有具体电路,怎么写程序。这不能随便瞎写,瞎写的程序没有什么用,等于没写。是实物开发板,还是仿真。数码管显示什么,是几个数码管,你自己都一律不知,别人更不知道了,怎么可能写程序。
以上就是关于双机通信(8051单片机)全部的内容,包括:双机通信(8051单片机)、单片机at89c51双机通信、spi双机通信中,加入数码管动态显示的程序,应该怎么加等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)