?? 點(diǎn)對點(diǎn)串行通信.c
字號:
#include<reg.51>
#define uchar unsingned char
#define TR1
uchar idata buf[10];
uchar pf ;
void init (void)
{ TMOD=0x20;
TH1=0xe8;
TL1=0xe8;
PCON=0x00;
TR1=1;
SCON=0x50;
}
void send (uchar idata *d)
{ uchar i;
do{
SBUF=0xaa;
while (TI==0);
TI=0;
while (RI==0);
RI=0;
}while((SUBF^0xbb)!=0);
do {
pf=0;
for (i=0;i,16;i++){
SUBF=d[i];
pf+=d[i];
while (TI==0);TI=0;
}
SUBF=pf;
while(TI==0);TI=0;
while(RI==0);RI=0;
} while (SUBF!=0);
}
void receive(uchar idata *d)
{ uchar i;
do {
while(PI==0);RI=0;
}while((SUBF^oxaa)!=0);
SUBF=0xbb;
while(TI==0);TI=0;
while (1){
pf=0;
for (i=0;i<16;i==){
while (RI==0);RI=0;
d[i]=SUBF;
pf+=d[i];
}
while (RI==0);RI=0;
if((SUBF^pf)==0){
SUBF=0x00;break;}
else{
SUBF=0xff;
while(TI==0);TI=0;
}
}
}
void mian (void){
init ():
if (TR==0){
send (buf);
}
else {
receive (buf);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -