#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delayms(uchar n)
{
uchar m,s;
for(m=n;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
void main()
{
Init_Com(); //初始化
delayms(40); //延时等待
while(1)
{
do{
SBUF=0XAA; //发送AAH
while(!TI);
TI=0;
while(!RI);
RI=0;
}
while(SBUF!=0XBB); //等待接收乙发送的BBH
do{ //发送P1口状态
SBUF=P1;
while(!TI);
TI=0;
SBUF=0XFF;
while(!TI);
TI=0;
while(!RI);
RI=0;
}
while(SBUF!=0XFF);
}
}这个是发送程序
#include<reg52.h> //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int //宏定义无符号整型
void delayms(uchar n)
{
uchar m,s;
for(m=n;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
void main()
{
Init_Com(); //初始化
delayms(40); //延时等待
while(1)
{
do{
while(!RI);//等待接收中断置位
RI=0; //中断清零
}
while(SBUF!=0XAA);
do{
SBUF=0XBB; //向甲发送BBH
while(!TI);
TI=0;
while(!RI);
RI=0;
P2=SBUF;
while(!RI);
RI=0;
}
while(SBUF!=0XFF);
SBUF=0xFF;
while(!TI);
TI=0;
}
}这个是接收程序
这个是电路图
|