为什么矩阵键盘的数据不能通过串口发到串口调试助手上?
#include#define uchar unsigned charuchar flag,key;void init(){ TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1;}void matrixkeyscan(){ uchar temp; P1=0xfe; temp=13; temp=temp&0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case 0xee: flag=1;key=0; break; case 0xde: flag=1;key=1; break; case 0xbe: flag=1;key=2; break; case 0x7e: flag=1;key=3; break; } while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } } P1=0xfd; temp=P1; temp=temp&0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case 0xed: flag=1;key=4; break; case 0xdd: flag=1;key=5; break; case 0xbd: flag=1;key=6; break; case 0x7d: flag=1;key=7; break; } while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } } P1=0xfb; temp=P1; temp=temp&0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case 0xeb: flag=1;key=8; break; case 0xdb: flag=1;key=9; break; case 0xbb: flag=1;key=10; break; case 0x7b: flag=1;key=11; break; } while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } } P1=0xf7; temp=P1; temp=temp&0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case 0xe7: flag=1;key=12; break; case 0xd7: flag=1;key=13; break; case 0xb7: flag=1;key=14; break; case 0x77: flag=1;key=15; break; } while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } }}void main(){ init(); while(1) { matrixkeyscan(); if(flag==1) { ES=0; SBUF=key; while(!TI); TI=0; ES=1; flag=0; } }}void ser() interrupt 4{ RI=0; key=SBUF; flag=1;}