| 
 
| | #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
 请高手们指点下
 
 
 | 
 | 
 |