#include
unsigned char gRecState=R55; unsigned char gRecLen; unsigned char gRecCount; unsigned char RecBuf[30]; unsigned char gValue;
void isr_UART(void) interrupt 4 using 1 {
unsigned char ch; unsigned char i; unsigned char temp;
if (RI==1) {
ch=SBUF; switch(gRecState) { case R55:
// wait 0x55
if (ch==0x55) break;
gRecState=RAA;
case RAA:
if (ch==0xaa)
gRecState=RLEN;
else if (ch==0x55) else break;
gRecState=R55;
gRecState=RAA;
case RLEN:
gRecLen=ch; gRecCount=0; gRecState=RDATA; break;
case RDATA:
RecBuf[gRecCount]=ch; gRecCount++;
if (gRecCount>=gRecLen) { } break;
gRecState=RCH;
case RCH:
temp=0;
for(i=0;i temp=temp^ RecBuf[i]; if (temp==ch) else gValue=0; gValue=1; // } XBYTE[0xd000]=0x00; gRecState=R55; break; default: gRecState=R55; break; } RI=0; } if (TI==1) { } void initcom() { //8,n.1 SCON=0x50; PCON=0x00; //baud rate TH1=0xfd; TL1=0xfd; //timer1 TMOD=0x20; TR1=1; ES=1; } EA=1; void cmdexecute() { } void main() { } } if (gValue==1) { switch(RecBuf[0]) { case 1: XBYTE[0xd000]=0x00; break; case 2: XBYTE[0xd000]=0xff; break; case 3: break; case 4: break; gValue=0; // } XBYTE[0xd000]=0x00; initcom(); while(1) { } cmdexecute(); ; 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库单片机串口通信协议程序在线全文阅读。
相关推荐: