51单片机双机通信
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
/*******************************************************************/ unsigned char string[]={"hello ChengDu college!\n"};
unsigned char temp;
/*******************************************************************/ void Init_URAT(void)
{
TMOD |= 0x20; //定时器1定时方式2,初值自动重装
TH1 = 0xfd; //波特率9600bps @ 11,0592M
TL1 = 0xfd;
EA=1;
ES=1;
SCON = 0x50; //串口方式1,允许接收
TR1 = 1; //启动定时器
}
/*******************************************************************/ void send_string(unsigned char str[])
{
unsigned char i;
for(i=0;str[i]!='\0';i++)
{
SBUF = str[i]; //输出字符
while(TI==0); //等价while(TI==0);
TI=0; //清TI
}
}
/*******************************************************************/ void main()
{
P2=0XFE; //选通1位LED
P0=0xFF; //开机LED不显示
Init_URAT(); //串口初始化设置
send_string(string); //发送字符串
while(1); //等待接收中断
}
void URAT_ISR() interrupt 4
{
if(RI==1)
{
temp=SBUF;
P0=temp;
SBUF = temp; //输出字符
while(TI==0); //等价while(TI==0);
TI=0; //清TI
RI=0;
}
}
/*******************************************************************/