//发送方,识别按键开关,text1.c
//串口通信,接收、发送数据
//U2发送数据给U1,U控制LED显示
//根据U2的P1端口开关闭合情况,发送相应数据
//开关1,2,3,4控制LED1。5,6,7,8控制LED2
#include <reg51.h>
unsigned char temp=0;
void main()
{
//设置定时器1
TMOD=0x20;//8位自动重装在
TH1=0xFD;
TL1=0xFD;//波特率为9600
SCON=0x50;//1位启动位,8位数据位,1位停止位,REN开启,可以接收
TR1=1;//启动定时器,开始产生波特率
while(1)
{
if(temp!=P1)//如果P1口开关发生变化
{
temp=P1;//赋值
SBUF=P1;//写入数据
while(0==TI);//等待发送完成
TI=0;//清除中断标志
}
}
}
//接收方,接收到数据后再发送给LED灯,Tect2.c
//串口通信,接收、发送数据
//U2发送数据给U1,U控制LED显示
//根据U2的P1端口开关闭合情况,发送相应数据
//开关1,2,3,4控制LED1。5,6,7,8控制LED2
#include <reg51.h>
unsigned char temp=0;
void main()
{
ES=1;//开串口中断
EA=1;//开总中断
TMOD=0x20;//8位自动重装在
TH1=0xFD;
TL1=0xFD;//波特率为9600
SCON=0x50;//1位启动位,8位数据位,1位停止位,REN开启,可以接收
TR1=1;//启动定时器,开始产生波特率
while(1);
}
//中断函数
void es_ISR(void) interrupt 4
{
temp=SBUF;//接收数据
P2=temp;//赋值P2口
RI=0;//清空中断标志位
}
// 结果