标题:
单片机双机串行口主从机通讯仿真+接受与发送代码
[打印本页]
作者:
yiling1
时间:
2018-11-29 14:09
标题:
单片机双机串行口主从机通讯仿真+接受与发送代码
单片机双机通讯,就是直接单片机的串口RX和TX直接连接,然后通过串口命令完成通讯
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(13.33 KB, 下载次数: 42)
下载附件
2018-12-2 01:42 上传
0.png
(13.54 KB, 下载次数: 41)
下载附件
2018-12-2 01:42 上传
单片机源程序如下:
#include <reg51.h>
#define uchar unsigned char
sbit key0=P1^0;
sbit key1=P1^1;
sbit key2=P1^2;
uchar i;
uchar code tb[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void delay(int z) //延时子函数
{
int i,j;
for(i=0;i<z;i++)
for(j=0;j<500;j++);
}
void init() //串口初始化
{
SCON=0x50;
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
TR1=1;
}
void main()
{
i = 0;
init();
P1=0xff;
P2=0xff;
while(1)
{
if(key0==0)
{
i++;
//if(i>=10)
// i=0;
SBUF=~tb[i%10]; //送缓冲区
P0=~tb[i%10]; //数据送P0口
while(TI==0); //判断是否发送完成
TI=0;
delay(200);
}
if(key1==0)
{
i--;
// if(i<=0)
// i=9;
SBUF=~tb[i%10]; //送缓冲区
P0=~tb[i%10]; //数据送P0口
while(TI==0); //判断是否发送完成
TI=0;
delay(200);
}
/* for(i=7;i<10;i++) //连续发送数组数据
{
SBUF=~tb[i]; //送缓冲区
P0=~tb[i]; //数据送P0口
while(TI==0); //判断是否发送完成
TI=0;
delay(50);
}
*/
}
}
复制代码
所有资料51hei提供下载:
双机串行.zip
(56.79 KB, 下载次数: 49)
2018-11-29 14:08 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
yiling1
时间:
2018-11-29 14:34
可以的
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1