标题:
分享用proteus仿真的两个单片机通信程序
[打印本页]
作者:
jtyhvgc
时间:
2019-2-28 13:45
标题:
分享用proteus仿真的两个单片机通信程序
这个是我用Proteus仿真完成完单片机与单片机进行通信。
就是用单片机U1通过串行口TXD(P3. 1引脚) 细将控制码发至单片机U2的RXD(P3.1脚)端.
U2单片机接收后把控制码送8位LED显示,如图:
4.png
(69.65 KB, 下载次数: 89)
下载附件
2019-2-28 13:33 上传
因为用到了单片机U1和单片机U2,因此需要对单片机U1和单片机U2分别设计两个程序:单片机U1负责完成数据发送任务:单片机U2负责完成数据接收任务对单片机U1编程时,由于使用方式1,所以需要设置串行控制寄存器SCON,使SM0=0,SM1=1,选波特率为9600b/s, SMOD=0,计算出THI=FAH;
对单片机U2编程时,需要设置SM0=0,SM1=1和REN= 1(允许接收)。
5.png
(31.5 KB, 下载次数: 71)
下载附件
2019-2-28 13:33 上传
程序如下:
(I)单片机U1数据发送程序。
# include "reg52.h"
unsigned char code Tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0x7f,0xaa,0x0f,0xf0,0x55};
//????????
void Send (unsigned char dat)
{
SBUF=dat;
while(TI==0);
TI=0;
}
void delay150ms(void) //??? 0us
{
unsigned char a,b,c;
for(c=229;c>0;c--)
for(b=4;b>0;b--)
for(a=80;a>0;a--);
}
void main(void)
{
unsigned char i;
TMOD=0x20;
SCON=0x40;
PCON=0x00;
TH1=0xfa;
TL1=0xfa;
TR1=1;
while(1)
{
for(i=0;i<12;i++)
{
Send(Tab[i]);
delay150ms();
}
}
}
复制代码
单片机U2数据发送程序
# include "reg52.h"
//??????????
unsigned char Receive(void)
{
unsigned char dat;
while(RI==0);
RI=0;
dat=SBUF;
return dat;
}
void main(void)
{
TMOD=0x20;
SCON=0x50;
PCON=0x00;
TH1=0xfa;
TL1=0xfa;
TR1=1;
REN=1;
while(1)
{
P2=Receive();
}
}
复制代码
资料分享:
双单通信.rar
(61.66 KB, 下载次数: 107)
2019-2-28 13:43 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
cr8526
时间:
2019-2-28 17:03
这是2机之间的 通信吗?
作者:
ghbwxt
时间:
2019-5-23 14:41
谢谢,非常感谢
作者:
jiangquancai
时间:
2019-5-23 21:52
2机通信。不错
作者:
木一小哥
时间:
2020-4-18 13:09
非常好的资料,感谢
作者:
木一小哥
时间:
2020-4-18 13:12
很需要这个资料,谢谢分享
作者:
liaoym
时间:
2020-9-23 11:59
文件损坏 打不开 。而且重复扣积分
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1