大神,帮忙看看程序是哪儿的原因??
gaoyang9992006:
你先说说现在什么问题,好不好,那么长的代码,我要一点点的看,多费劲。记得下次提问,先说明原因,如果是程序,说明你的目的,现在的状况。OK?谢谢配合。
另外告诉你,键盘最好使用中断程序,这样,键盘不操作的时候,MCU就不执行这段程序,加快了整体程序的实效性。
建议你,理解矩阵键盘的原理后,重写该程序,记得,别弄那么多返回,一个函数里,就一个返回就行了。
gaoyang9992006:
给你看看我以前写的一个51下的,你参考一下方法。
/***************¼üÅÌɨÃè³ÌÐò*************************/unsigned char key() {
KeyPort=0xf0; if((KeyPort&0xf0)!=0xf0) delaynms(5); if((KeyPort&0xf0)!=0xf0) { KeyPort=0xfe; switch(KeyPort) { case 0xee:KeyVal=0;break; case 0xde:KeyVal=1;break; case 0xbe:KeyVal=2;break; case 0x7e:KeyVal=3;break; } KeyPort=0xfd; switch(KeyPort) { case 0xed:KeyVal=4;break; case 0xdd:KeyVal=5;break; case 0xbd:KeyVal=6;break; case 0x7d:KeyVal=7;break; } KeyPort=0xfb; switch(KeyPort) { case 0xeb:KeyVal=8;break; case 0xdb:KeyVal=9;break; case 0xbb:KeyVal=10;break; case 0x7b:KeyVal=11;break; } KeyPort=0xf7; switch(KeyPort) { case 0xe7:KeyVal=12;break; case 0xd7:KeyVal=13;break; case 0xb7:KeyVal=14;break; case 0x77:KeyVal=15;break; }
} return KeyVal; }