矩阵按键之行列式扫描
生活随笔
收集整理的這篇文章主要介紹了
矩阵按键之行列式扫描
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
4×4行列式掃描:
每個按鍵都由兩根線共同控制,兩者都為低電平時按鍵才能發(fā)揮作用,如上圖所示,P10-P13稱為列線,P14-P17稱為行線,使其中一條行線(或列線)為低電平,分別去檢測另外的列線(或行線)即可。
如上圖所示的行列式掃描程序如下:
//定義一個掃描函數(shù)typedfe unsigned char u8;u8 key_scan() {u8 key_value=0;K=0x7f; //第一行為0即P17=0if (K!=0x7f){delay_10us(1000);switch(K) //保證第一行為0{ case 0x77:key_value=0; break; //如果第一列為0.P13=0case 0x7b:key_value=1; break;case 0x7d:key_value=2; break;case 0x7e:key_value=3; break;}}while (K!=0x7f); //按鍵松開K=0xbf;if (K!=0xbf){delay_10us(1000);switch(K){case 0xb7:key_value=4; break;case 0xbb:key_value=5; break;case 0xbd:key_value=6; break;case 0xbe: key_value=7; break;}}while(K!=0Xbf);K=0xdf;if (K!=0xdf){delay_10us(1000);switch(K){case 0xd7:key_value=8; break;case 0xdb:key_value=9; break;case 0xdd:key_value=10; break;case 0xde: key_value=11; break;}}while(K!=0xdf);K=0xef;if (K!=0xef){delay_10us(1000);switch(K){case 0xe7:key_value=12; break;case 0xeb:key_value=13; break;case 0xed:key_value=14; break;case 0xee: key_value=15; break;}}while(K!=0xef) ;return key_value;}//主函數(shù) void main() {while(1) { //要執(zhí)行的程序 } }?
總結(jié)
以上是生活随笔為你收集整理的矩阵按键之行列式扫描的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 仓库无证如何处罚_“非现场执法”查处无证
- 下一篇: Appium——api常用函数