三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態判斷哪個按鍵被按下。 本實驗採用中斷式實現使用者鍵盤介面。 掃描法 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應列的鍵被按下。否則掃描下一行。 反轉法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結構。按鍵按下將會使行列連成通路,這也是見的使用者鍵盤設計電路。 //-----------4X4键盘程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按键按下 {delayms(1); //延时去抖动 if((PINC&0x0f)!=0x0f) //有按下则判断 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //复位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按键是否放开 { display(data); } i=4; //计算返回码 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的键盘码 } } else return 17; //没有按键按下 }
上传时间: 2013-11-12
上传用户:a673761058
8051的鍵盤實習程式!可以透過鍵盤的按鍵來控制led
上传时间: 2015-05-16
上传用户:ruixue198909
利用此源碼可以使用ALTERA DE2開發板將鍵盤變成一部電子琴
上传时间: 2016-03-23
上传用户:cc1015285075
螢幕小鍵盤,可在Windows/linux上或其他嵌入式系統如手機上使用
上传时间: 2016-05-08
上传用户:hullow
前置處理器指令 #include 指示前置處理器包含指定檔案提供的函數。它的作用跟 Turbo Pascal 中的uses 語句相似。 如果一個 C++ 程序都需要從鍵盤讀取數據及/或在螢幕顯示數據,此程序必須包含以下前置處理器指令
上传时间: 2016-07-19
上传用户:小草123
鍵盤掃描verilog硬體驗證可以將開發版鍵盤功能使用
标签: 鍵盤
上传时间: 2013-12-24
上传用户:kjl
8*18標準鍵盤應用程式, 其中包含: 按鍵輸入 固定時間輸出按鍵值給主機. 燈號輸出 主機會送出燈號資料 給裝置, 有變化才有輸出.
上传时间: 2013-12-15
上传用户:hj_18
有關鍵盤,接上ps/2鍵盤,按鍵後,會將scancode和breadcode顯示在led燈
标签: 鍵盤
上传时间: 2014-01-05
上传用户:zhangyigenius
本文介紹了一種在單片機應用中實現高效、多功能鍵盤掃描分析的設計思想、方法和原理。該演算法可以實現組合鍵、自動連續等功能,並具有軟、硬體開銷小,效率高等特點。該演算法已應用於實際產品中。 關鍵字:鍵盤掃描;單片機
上传时间: 2013-12-13
上传用户:fredguo
電源供應器設計利用鍵盤介面輸入電源電壓值以SPI界面傳至另一顆CPU做前端之運算結果傳回做LED顯示
上传时间: 2017-03-19
上传用户:二驱蚊器