voiddelay_ms(intn)//延時函數(shù),延時n毫秒{inti,">
51單片機(jī)_矩陣按鍵檢測

51單片機(jī)_矩陣按鍵檢測

ID:11540907

大?。?0.50 KB

頁數(shù):3頁

時間:2018-07-12

51單片機(jī)_矩陣按鍵檢測_第1頁
51單片機(jī)_矩陣按鍵檢測_第2頁
51單片機(jī)_矩陣按鍵檢測_第3頁
資源描述:

《51單片機(jī)_矩陣按鍵檢測》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、《51系列單片機(jī)_矩陣按鍵檢測》此程序使用單片機(jī)89SC52//1、此程序?qū)崿F(xiàn)矩陣按鍵的檢測功能,按下按鍵時,數(shù)碼管顯示按鍵的相應(yīng)鍵值#includevoiddelay_ms(intn)//延時函數(shù),延時n毫秒{inti,j;for(i=0;i

2、電平位選)數(shù)碼管的位選信號,從低到高對應(yīng)8個數(shù)碼管charNumberCode[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,};//用于設(shè)置(共陰極)數(shù)碼管的段選信號,從0~f共16個數(shù)值intn=num,i=0;while(n>=0){P0=0xff;//關(guān)閉數(shù)碼管當(dāng)前位的顯示,共陽極關(guān)閉顯示段選信號P2=BitSet[i];//選中數(shù)碼管對應(yīng)的位P0=~NumberCode[n%10];

3、//向數(shù)碼管的對應(yīng)位中送入該位數(shù)值對應(yīng)的段選信號delay_ms(2);//每一位延時顯示2msP2=0xff;//關(guān)閉所有位選i++;//位標(biāo)記n=n/10;//取數(shù)值n的商if(n==0)break;//當(dāng)取得的商為0時退出while循環(huán)}}intMatrixKeyscan()//4*4矩陣鍵盤鍵值掃描函數(shù),返回按下的第一個按鍵對應(yīng)的鍵值{charkey[16]=//行掃描對應(yīng)的鍵值數(shù)組{0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0x

4、e7,0xd7,0xb7,0x77};charline[4]={0xfe,0xfd,0xfb,0xf7};//行掃描值,將各行信號分別置0,列值全1chartmp;inti,j,k=-1;for(i=0;i<4;i++){P1=line[i];//將行掃描值逐個送至P1端口tmp=P1;//再讀取P1口的值if(tmp!=line[i])//若讀取的數(shù)值不等于送入的行掃描值,表示有按鍵被按下{delay_ms(10);//延時,重新讀取判斷,確認(rèn)有鍵按下tmp=P1;if(tmp!=line[i]){for(j=0

5、;j<4;j++)//當(dāng)有鍵按下時,根據(jù)變化后的P1端口值確定對應(yīng)的行列值i和j,并給k賦予鍵值{if(tmp==key[4*i+j]){k=4*i+j;returnk;}}}while(tmp!=line[i])tmp=P1;//(等待按鍵釋放)循環(huán)直到讀取的P1端口值與行掃描值相同,此時按鍵釋放}}returnk;//返回掃描到的鍵值}voidmain(){intnum=0,tmp;while(1){tmp=MatrixKeyscan();//掃描鍵盤判斷是否有按鍵按下if(tmp!=-1)num=tmp;//

6、當(dāng)有按鍵按下時,將鍵值賦給num(無鍵按下時掃描鍵盤返回值-1)display(num);//數(shù)碼管顯示按下按鍵對應(yīng)的數(shù)值}}

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。