proteus串口通信仿真关于矩阵键盘数据的发送
为什么矩阵键盘的数据不能通过串口发到串口调试助手上?
#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;}
相似问题
-
RS485串口通信
回答 7 浏览 3882 -
串口发送数据的程序vc实现
回答 0 浏览 3070 -
最新版本mplayer移植pxa270成功
回答 0 浏览 3022 -
mplayer在S3C2410上的移植
回答 1 浏览 3017 -
WinCE 下 Xmodem及串口编程问题
回答 1 浏览 2272 -
RS232的串口通信
回答 0 浏览 1995
最新问题
-
新百胜实体公司经理服务热线微w3344896
回答 0 浏览 9 -
新锦江娱乐在线客服官网微w3344896
回答 0 浏览 12 -
新锦江官网客服电话微w3344896
回答 0 浏览 7 -
老街新百胜现场经理联系方式微w3344896
回答 0 浏览 8 -
新百胜现场经理联系电话微w3344896
回答 0 浏览 7 -
果敢新百胜娱乐公司负责人联系电话微w3344896
回答 0 浏览 9
自媒体

海思讨论群

新唐科技交流群
联系我们

