?? 點對點通信 (從單片機).c
字號:
#include<reg51.h>
unsigned char data Rdata[10];
unsigned char data cnt=0,sum=0,CM;
unsigned char data linksignal,resendsignal;
void delay1s(void)
{
unsigned char i,j,k;
for(k=100;k>0;k--)
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
void main(void)
{
TH1=0xf4;
TL1=0xf4;
EA=0;
TR1=1;
TMOD=0x20;
PCON=0x00;
SCON=0x50;
//等待從單片機聯系信號0xE0,并返回應答信號0xE1
do
{
while(RI==0);
RI=0;
linksignal=SBUF;
}
while(linksignal!=0xE0);
SBUF=0xE1;
while(TI==0);
TI=0;
//從單片機接收數據,并驗證校驗和
do
{
do
{
while(RI==0);
RI=0;
Rdata[cnt]=SBUF;
sum=sum+Rdata[cnt];
cnt++;
}
while(cnt<10);
while(RI==0);
RI=0;
CM=SBUF;
if(sum!=CM)
{
resendsignal=1;
}
else
{
resendsignal=0;
}
SBUF=resendsignal;
while(TI==0);
TI=0;
if(resendsignal==1)
{
sum=0;
cnt=0;
}
}
while(resendsignal==1);
while(1)
{
for(cnt=0;cnt<10;cnt++)
{
P2=Rdata[cnt];
delay1s();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -