#include<reg52.h> char key1=0x80; char key0=0xd8; char pri=0x3f; char bbbb=1; void main (void) {
SCON = 0x50; /* SCON: 模式 1, 8-bit UART, 使能接收 */ TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */ TH1 = 0xFD; /* TH1: reload value for 9600 baud @ 11.0592MHz */ TR1 = 1; /* TR1: timer 1 run */ EA = 1; /*打開總中斷*/ ES = 1; /*打開串口中斷*/
while (1) { P0=pri; P2=bbbb; } } /******************************************************************/ /* 串口中斷程序 */ /******************************************************************/ void UART_SER (void) interrupt 4 //串行中斷服務程序 { unsigned char Temp; //定義臨時變量 if(RI) //判斷是接收中斷產生 { RI=0; //標志位清零 Temp=SBUF; //讀入緩沖區的值 if (Temp==key1){ bbbb++; pri=0x3f; SBUF=Temp; } else if(Temp==key0){ bbbb=3; pri=0x01; SBUF=Temp; } if(bbbb>7){bbbb=0;} } if(TI) //如果是發送標志位,清零 TI=0; }
但是我發送0X80收到的卻是0xdc
請高手們指點下 |