单片机发送端
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
unsigned char num; //全局变量 发送的就是num数据
sbit k1=P3^4; //按键定义 定义四个按键
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;
void delay(void) //延时函数 这里用不到 加上去以防万一
{
unsigned char m,n;
for(m=0;m<200;m++)
for(n=0;n<250;n++)
;
}
void Send(unsigned char dat) //发送数据函数
{
SBUF=dat; //发送的数据放进sbuf寄存器中
while(TI==0) //如果TI等于0 则在此处一直等待
;
TI=0; //发送完之后 手动清零 防止影响下次发送
}
void charnum ()
{
if(k1==0) //对要发送的数据进行赋值
{
num=1;
while(!k1);
}
else if(k2==0)
{
num=2;
while(!k2);
}
else if(k3==0)
{
num=3;
while(!k1);
}
else if(k4==0)
{
num=4;
while(!k2);
}
}
void main(void)
{
TMOD=0X20; //
SCON=0X40;
PCON=0X00; //波特率不加倍
TH1=0Xfd; //波特率设置为9600
TL1=0xfd;
EA=1; //打开总中断
ES=1; //打开串口中断
TR1=1; //打开计时器
while(1)
{
charnum ();
Send(num);
}
}
单片机接收端
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
unsigned char dat,num;
unsigned char Receive(void)
{
while(RI==0);
RI=0;
dat=SBUF;
return dat;
}
void main(void)
{
TMOD=0X20;
SCON=0X50;
PCON=0X00;
TH1=0Xfd;
TL1=0xfd;
TR1=1;
REN=1;
while(1)
{
num=Receive();
switch(num)
{
case 1:P1=0xfe; break;
case 2:P1=0xfc; break;
case 3:P1=0xfd; break;
case 4:P1=0xff; break;
}
}
}
|