




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
SingleChipMicrocomputer第
章
鍵盤和顯示
接口
7.2鍵盤接口常見的按鍵開關彈性按鍵自鎖按鍵撥動開關撥碼開關電源開關鍵盤按照接口原理可分為編碼鍵盤和非編碼鍵盤。編碼鍵盤:指鍵盤上閉合鍵的識別由專用的硬件編碼器實現,來產生鍵編碼號或鍵值,如計算機鍵盤。非編碼鍵盤:是指靠軟件編程來識別的鍵盤。在單片機組成的系統中,用的較多的是非編碼鍵盤。非編碼鍵盤又分為獨立式鍵盤和矩陣式(行列式)鍵盤。鍵盤接口需要解決的問題1.是否有鍵按下按鍵識別:按鍵抖動及消除:機械按鍵抖動時間在5ms~10ms之間軟件方案——延時10ms~20ms后再次判斷消除方法:2.求鍵號獨立式按鍵接口電路:特點:一線一鍵,按鍵識別(編程)簡單;但占用較多口線,適合8鍵以下使用。例1:用P1口檢測8個按鍵的狀態并完成相應的功能解:鍵盤檢測流程圖#include<reg51.h>voidmain(){P1=0xff;while(1){while(P1==0xff);delayms(10);
voiddelayms(unsignedintt){ unsignedinti,j; for(i=0;i<t;i++) for(j=0;j<120;j++);}
while(P1==0xff);switch(P1){case0xfe:key1();break;case0xfd;key2();break;case0xfb:key3();break;case0xf7;key4();break;case0xef:key5();break;case0xdf;key6();break;case0xbf:key7();break;case0x7f;key8();break;default:break;}while(P1!=0xff);//等待鍵釋放}}矩陣式鍵盤每個按鍵有它的行值和列值,行值和列值的組合就是識別這個按鍵的編碼。矩陣鍵盤掃描子程序包括以下幾個步驟:
1.判別有無鍵按下;
2.掃描獲取閉合鍵的行、列值,確定哪一個鍵按下;
3.保存閉合鍵號;
4.確定鍵的功能是什么。判斷有無鍵按下:行線輸出,列線輸入。向所有的行線上輸出低電平,再讀入所有的列線信號。如果列線電平有變化,說明有鍵按下;如果列線電平沒有變化,說明無鍵按下。判斷具體的按鍵:@逐行送低電平,檢查列線電平的變化。@先送第0行為“0”,第1、2、3行為“1”,再讀列狀態值,若讀入的列值全為“1”,表示第0行無鍵按下。若讀入的列值不全為“1”,表示第0行有鍵按下,并根據列值判斷具體的按鍵。@再送第1行為“0”,第0、2、3行為“1”,再讀列狀態值,依次類推,直至4行全部掃描完,再重新從第0行開始。unsignedcharscan_key(){P1=0xf0;if(P1!=0xf0){delayms(10);if(P1!=0xf0){
P1=0xfe;switch(P1){case0xee:key=0;break;case0xde:key=1;break;case0xbe:key=2;break;case0x7e:key=3;break;}
矩陣鍵盤識別方法1:掃描法
P1=0xfd;switch(P1){case0xed:key=4;break;case0xdd:key=5;break;case0xbd:key=6;break;case0x7d:key=7;break;}unsignedcharkey;
P1=0xfb;switch(P1){case0xeb:key=8;break;case0xdb:key=9;break;case0xbb:key=10;break;case0x7b:key=11;break;}
P1=0xf0;while(P1!=0xf0);//等待按鍵釋放}}return(key);}
P1=0xf7;switch(P1){case0xe7:key=12;break;case0xd7:key=13;break;case0xb7:key=14;break;case0x77:key=15;break;}unsignedcharscan_key()//鍵盤掃描
{ unsignedcharhang,lie;P1=0x0f;//列線輸出低電平 if(P1!=0x0f) delay(10); if(P1!=0x0f) { switch(P1&0x0f)//檢測行號 { case0x0e:hang=0;break; case0x0d:hang=1;break; case0x0b:hang=2;break; case0x07:hang=3;break; }矩陣鍵盤識別方法2:掃描法unsignedcharkey; P1=0xf0;//行線輸出低電平,檢測列號switch(P1&0xf0) { case0xe0:lie=0;break; case0xd0:lie=1;break; case0xb0:lie=2;break; case0x70:lie=3;break; }P1=0x0f; while(P1!=0x0f);//等待按鍵釋放 key=hang*4+lie; } return(key); }要求按下某個按鍵時,數碼管上顯示對應的按鍵字符(“0-F”)。#include<reg51.h>unsignedcharscan_key();voiddisplay(unsignedchari);voiddelayms(unsignedintt);unsignedcharkey;unsignedchara[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voidmain(){while(1){scan_key();display(key);}}voiddisplay(unsignedchari){P2=a[i];}voiddelayms(unsignedintt){ unsignedinti,j; for(i=0;i<t;i++) for(j=0;j<120;j++);}unsignedcharscan_key(){
參考前面}要求在最右端數碼管上顯示每個按鍵的“0-F”字符。#include<reg51.h>unsignedcharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};unsignedcharkey;voiddelay(unsignedchara){ unsignedchari; while(a--) for(i=120;i>0;i--) ;}unsignedcharscan_key(){
參考前面}
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長沙市K郡雙語實驗中學2025年高二化學第二學期期末經典試題含解析
- 重慶西南大學附屬中學2025年數學高二下期末學業質量監測模擬試題含解析
- 云南省瀘水五中2024-2025學年高二下化學期末復習檢測模擬試題含解析
- 特色火鍋店承包經營合同模板
- 產城融合廠房出租居間服務合同
- 車輛轉讓附帶原廠保養及救援服務合同
- 橋梁工程-畢業設計開題報告
- 評選新時代好少年的主要事跡(27篇)
- 2024年河北省政務服務管理辦公室下屬事業單位真題
- 員工語言規范管理制度
- SL631水利水電工程單元工程施工質量驗收標準第1部分:土石方工程
- 2025年湖南出版中南傳媒招聘筆試參考題庫含答案解析
- GB/T 44880-2024因果矩陣
- (高清版)TDT 1075-2023 光伏發電站工程項目用地控制指標
- 談談如何做好科研工作課件
- 新高考理解性默寫之意象關鍵詞類題目60練
- 新生入學報到證明(新生)
- XMT溫度控制儀說明書
- 教學能力比賽國賽一等獎教案設計模板
- 19QAKE質量保證關鍵要素(Quality Assurance Key Elements)稽核手冊
- 人教版英語(一年級起點)1-3年級單詞表【完整版】
評論
0/150
提交評論