版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 非編碼鍵盤非編碼鍵盤按組成結(jié)構(gòu)又可分為按組成結(jié)構(gòu)又可分為獨(dú)立式鍵盤獨(dú)立式鍵盤和和矩陣式鍵盤矩陣式鍵盤。獨(dú)立式鍵盤的工作過程與矩陣式鍵盤獨(dú)立式鍵盤的工作過程與矩陣式鍵盤類似,無論是硬件結(jié)構(gòu)還是軟件設(shè)計(jì)都比較簡單,。類似,無論是硬件結(jié)構(gòu)還是軟件設(shè)計(jì)都比較簡單,。 通常,鍵盤有通常,鍵盤有編碼編碼和和非編碼非編碼兩種。編碼鍵盤通兩種。編碼鍵盤通過硬件電路產(chǎn)生被按按鍵的鍵碼和一個(gè)選通脈沖。過硬件電路產(chǎn)生被按按鍵的鍵碼和一個(gè)選通脈沖。選通脈沖可作為選通脈沖可作為CPU的中斷請求信號。這種鍵盤使的中斷請求信號。這種鍵盤使用方便,所需程序簡單,但硬件電路復(fù)雜,常不被用方便,所需程序簡單,但硬件電路復(fù)雜,常
2、不被單片機(jī)采用。單片機(jī)采用。 S1 S1S4S4S3S3S2S2 P1.4 P1.4 P1.5 P1.5 P1.6 P1.6 P1.7 P1.7 89S52 89S52+5V+5V圖圖8.1 獨(dú)立式鍵盤接口獨(dú)立式鍵盤接口特點(diǎn):特點(diǎn):每個(gè)按鍵占用一條每個(gè)按鍵占用一條I/OI/O線,當(dāng)按鍵數(shù)量較多時(shí),線,當(dāng)按鍵數(shù)量較多時(shí),I/OI/O口利用率不高,但程序編制簡口利用率不高,但程序編制簡單。適用于所需按鍵較少的場單。適用于所需按鍵較少的場合。合。特點(diǎn):特點(diǎn):電路連接復(fù)雜,但提電路連接復(fù)雜,但提高了高了I/OI/O口利用率,軟件編程口利用率,軟件編程較復(fù)雜。適用于需使用大量較復(fù)雜。適用于需使用大量按鍵
3、的場合。按鍵的場合。 89s5289s52P1.0P1.0P1.1P1.1P1.2P1.2P1.3P1.3P1.4P1.4P1.5P1.5P1.6P1.6P1.7P1.7+5V+5V圖圖8.2 矩陣式鍵盤接口矩陣式鍵盤接口K99K10AK15FP10P11P12P13P14P15P16P17EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P26
4、27P2728PSEN29ALE/P30TXD11RXD10VCC40GND20U189S52P10P11P12P13P14P15P16P17K00K11K22K33K55K66K77K88K44K11BK12CK13DK14E 89s5289s52P1.0P1.0P1.1P1.1P1.2P1.2P1.3P1.3P1.4P1.4P1.5P1.5P1.6P1.6P1.7P1.7+5V+5V圖圖8.2 矩陣式鍵盤接口矩陣式鍵盤接口鍵盤控制流程鍵盤控制流程 單片機(jī)對矩陣單片機(jī)對矩陣式鍵盤接口處理的式鍵盤接口處理的一般過程如圖一般過程如圖8.3所所示。示。鍵掃描鍵掃描消抖消抖求鍵碼求鍵碼等待釋放等待釋
5、放鍵掃描鍵掃描消除抖動(dòng)消除抖動(dòng)有鍵按下?有鍵按下?鍵掃描鍵掃描確有鍵按下?確有鍵按下?求鍵值求鍵值按鍵處理按鍵處理鍵釋放?鍵釋放?Y YY YY YN NN N等待鍵釋放等待鍵釋放N N開始開始返回返回按鍵處理按鍵處理圖圖8.3 鍵盤處理流程框圖鍵盤處理流程框圖1. 鍵掃描鍵掃描 鍵掃描就是要判斷有無鍵按下,當(dāng)掃描到有鍵鍵掃描就是要判斷有無鍵按下,當(dāng)掃描到有鍵按下時(shí)再進(jìn)行下一步處理,否則退出鍵盤處理程序。按下時(shí)再進(jìn)行下一步處理,否則退出鍵盤處理程序。獨(dú)立式鍵盤掃描只需讀取獨(dú)立式鍵盤掃描只需讀取IO口狀態(tài)口狀態(tài),而矩陣式鍵盤而矩陣式鍵盤描通常有兩種實(shí)現(xiàn)方法:描通常有兩種實(shí)現(xiàn)方法:逐行掃描法逐行掃
6、描法和線反轉(zhuǎn)法。和線反轉(zhuǎn)法。 (1) 逐行掃描法。依次從第一至最末行線上發(fā)逐行掃描法。依次從第一至最末行線上發(fā)出低電平信號出低電平信號, 如果該行線所連接的鍵沒有按下如果該行線所連接的鍵沒有按下的話的話, 則列線所接的端口得到的是全則列線所接的端口得到的是全“1”信號信號, 如如果有鍵按下的話果有鍵按下的話, 則得到非全則得到非全“1”信號。信號。 89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V01111 1 1 110111 1 1 011011 1 1 111101 1 1 1設(shè)第2行第4列鍵按下行線輸出 列線輸入0 1 1 11 1 1 11 0 1 1
7、1 1 1 01 1 0 11 1 1 11 1 1 01 1 1 1 (2 2)線反轉(zhuǎn)法。)線反轉(zhuǎn)法。 線反轉(zhuǎn)法也是識別閉合鍵的一種常用方法線反轉(zhuǎn)法也是識別閉合鍵的一種常用方法, , 該該法比行掃描速度快法比行掃描速度快, , 但在硬件上要求行線與列線外但在硬件上要求行線與列線外接上拉電阻。接上拉電阻。 先將行線作為輸出線先將行線作為輸出線, , 列線作為輸入線列線作為輸入線, , 行線行線輸出全輸出全“0 0”信號信號, , 讀入列線的值讀入列線的值, , 那么在閉合鍵所那么在閉合鍵所在的列線上的值必為在的列線上的值必為0 0;然后從列線輸出全;然后從列線輸出全“0 0”信信號,再讀取行線
8、的輸入值,閉合鍵所在的行線值必號,再讀取行線的輸入值,閉合鍵所在的行線值必為為 0 0。這樣。這樣, ,當(dāng)一個(gè)鍵被按下時(shí)當(dāng)一個(gè)鍵被按下時(shí), , 必定可讀到一對必定可讀到一對唯一的行列值。再由這一對行列值可以求出閉合鍵唯一的行列值。再由這一對行列值可以求出閉合鍵所在的位置。所在的位置。 00001 1 1 00 0 0 01011 89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V設(shè)第2行第4列鍵按下列值:1110行值:1011 由于按鍵按下時(shí)的機(jī)械動(dòng)作,在按鍵被按下或松由于按鍵按下時(shí)的機(jī)械動(dòng)作,在按鍵被按下或松開的瞬間,其輸出電壓會(huì)產(chǎn)生波動(dòng),稱為鍵的抖動(dòng)開的瞬間,
9、其輸出電壓會(huì)產(chǎn)生波動(dòng),稱為鍵的抖動(dòng)。鍵按下鍵按下前沿前沿抖動(dòng)抖動(dòng)后沿后沿抖動(dòng)抖動(dòng) 2.消抖消抖 為確保每按一次鍵單片機(jī)只進(jìn)行一次處理,使為確保每按一次鍵單片機(jī)只進(jìn)行一次處理,使鍵盤可靠地工作,必須消除按鍵抖動(dòng)。消抖方法有鍵盤可靠地工作,必須消除按鍵抖動(dòng)。消抖方法有硬件硬件消抖消抖和和軟件軟件延時(shí)兩種。延時(shí)兩種。 圖圖8.5 鍵閉合及斷開時(shí)的抖動(dòng)鍵閉合及斷開時(shí)的抖動(dòng)+5V& & &Q QQ Q (1 1)硬件消抖法:)硬件消抖法:就是在鍵盤中附加去抖動(dòng)電就是在鍵盤中附加去抖動(dòng)電路,從根上消除抖動(dòng)產(chǎn)生的可能性。右路,從根上消除抖動(dòng)產(chǎn)生的可能性。右圖所示電路圖所示電路實(shí)際上是
10、由實(shí)際上是由R-SR-S觸發(fā)器構(gòu)成的單脈沖電路。當(dāng)按鈕觸發(fā)器構(gòu)成的單脈沖電路。當(dāng)按鈕開關(guān)按下時(shí)開關(guān)按下時(shí)Q Q端輸出低電平,當(dāng)開關(guān)松開時(shí)端輸出低電平,當(dāng)開關(guān)松開時(shí)Q Q端恢復(fù)端恢復(fù)高電平,即輸出一個(gè)負(fù)脈沖,以此消除抖動(dòng)。高電平,即輸出一個(gè)負(fù)脈沖,以此消除抖動(dòng)。圖圖8.6 硬件去抖動(dòng)電路硬件去抖動(dòng)電路 (2 2)軟件消抖法:鍵按下的時(shí)間與操作者的按)軟件消抖法:鍵按下的時(shí)間與操作者的按鍵動(dòng)作有關(guān),約為十分之幾到幾秒不等。而鍵抖動(dòng)鍵動(dòng)作有關(guān),約為十分之幾到幾秒不等。而鍵抖動(dòng)時(shí)間與按鍵的機(jī)械特性有關(guān),一般為時(shí)間與按鍵的機(jī)械特性有關(guān),一般為5 510ms10ms不等。不等。軟件消抖法即是采用延時(shí)(一般
11、延時(shí)軟件消抖法即是采用延時(shí)(一般延時(shí)101020ms20ms)的)的方法,以避開按鍵的抖動(dòng),即在按鍵已穩(wěn)定地閉合方法,以避開按鍵的抖動(dòng),即在按鍵已穩(wěn)定地閉合或斷開時(shí)才讀出其狀態(tài)?;驍嚅_時(shí)才讀出其狀態(tài)。 100ms100ms10ms10ms10ms10ms鍵抖動(dòng)時(shí)間鍵抖動(dòng)時(shí)間 圖圖8.7 軟件消抖法軟件消抖法延時(shí)區(qū)間示意圖延時(shí)區(qū)間示意圖3. 計(jì)算鍵碼計(jì)算鍵碼 鍵碼是每個(gè)按鍵的標(biāo)識。被按鍵確定下來之后,鍵碼是每個(gè)按鍵的標(biāo)識。被按鍵確定下來之后,接下來的工作是計(jì)算閉合鍵的鍵碼,然后才能根據(jù)接下來的工作是計(jì)算閉合鍵的鍵碼,然后才能根據(jù)鍵碼進(jìn)行對應(yīng)的操作。鍵碼進(jìn)行對應(yīng)的操作。 為編程方便,鍵碼通常都是以
12、鍵的排列順序安為編程方便,鍵碼通常都是以鍵的排列順序安排,按照從左到右、從上向下的順序編排。鍵碼可排,按照從左到右、從上向下的順序編排。鍵碼可根據(jù)行號列號以查表求得,也可通過計(jì)算得到。我根據(jù)行號列號以查表求得,也可通過計(jì)算得到。我們將結(jié)合實(shí)例加以介紹。們將結(jié)合實(shí)例加以介紹。 4.等待釋放等待釋放 等待釋放是為了保證鍵的一次閉合僅進(jìn)行一次處等待釋放是為了保證鍵的一次閉合僅進(jìn)行一次處理。求得鍵碼后,然后通過不斷進(jìn)行鍵掃描,如有理。求得鍵碼后,然后通過不斷進(jìn)行鍵掃描,如有鍵按下,則繼續(xù)掃描,否則認(rèn)為鍵已釋放。鍵按下,則繼續(xù)掃描,否則認(rèn)為鍵已釋放。 5.按鍵處理按鍵處理 根據(jù)系統(tǒng)功能要求,利用單片機(jī)控
13、制完成特定操作。根據(jù)系統(tǒng)功能要求,利用單片機(jī)控制完成特定操作。 鍵盤接口的控制方式鍵盤接口的控制方式 在單片機(jī)的運(yùn)行過程中,何時(shí)進(jìn)行鍵盤掃描和在單片機(jī)的運(yùn)行過程中,何時(shí)進(jìn)行鍵盤掃描和處理,可有下列三種情況:處理,可有下列三種情況:1.1.查詢方式:單片機(jī)通過調(diào)用鍵盤掃描子程序,查查詢方式:單片機(jī)通過調(diào)用鍵盤掃描子程序,查詢有無鍵按下。詢有無鍵按下。2.2.定時(shí)掃描方式:每隔一定時(shí)間執(zhí)行一次鍵盤掃描定時(shí)掃描方式:每隔一定時(shí)間執(zhí)行一次鍵盤掃描子程序。子程序。3.3.中斷方式:每當(dāng)有鍵閉合時(shí)才向中斷方式:每當(dāng)有鍵閉合時(shí)才向CPUCPU發(fā)出中斷請求,發(fā)出中斷請求,中斷服務(wù)時(shí)進(jìn)行鍵盤掃描和處理。中斷服務(wù)
14、時(shí)進(jìn)行鍵盤掃描和處理。if語句語句if語句是語句是C51中的一個(gè)基本條件選擇語句,它通常中的一個(gè)基本條件選擇語句,它通常有三種格式:有三種格式:(1)if (表達(dá)式)(表達(dá)式) 語句;語句;(2)if (表達(dá)式)(表達(dá)式) 語句語句1; else 語句語句2;(3)if (表達(dá)式(表達(dá)式1) 語句語句1;else if (表達(dá)式(表達(dá)式2) (語句(語句2;);)else if (表達(dá)式(表達(dá)式3) (語句(語句3;);)else if (表達(dá)式(表達(dá)式n-1) (語句(語句n-1;);)else 語句語句n【例例】 if語句的用法。語句的用法。(1)if (x!=y) printf(“x=%
15、d,y=%dn”,x,y);執(zhí)行上面語句時(shí),如果執(zhí)行上面語句時(shí),如果x不等于不等于y,則輸出,則輸出x的值和的值和y的值。的值。(2)if (xy) max=x;else max=y; 執(zhí)行上面語句時(shí),如執(zhí)行上面語句時(shí),如x大于大于y成立,則把成立,則把x送給最大值變送給最大值變量量max,如,如x大于大于y不成立,則把不成立,則把y送給最大值變量送給最大值變量max。使。使max變量得到變量得到x、y中的大數(shù)。中的大數(shù)。(3)if (score=90) printf(“Your result is an An”);else if (score=80) printf(“Your result
16、is an Bn”);else if (score=70) printf(“Your result is an Cn”);else if (score=60) printf(“Your result is an Dn”);else printf(“Your result is an En”); 執(zhí)行上面語句后,能夠根據(jù)分?jǐn)?shù)執(zhí)行上面語句后,能夠根據(jù)分?jǐn)?shù)score分別打出分別打出A、B、C、D、E五個(gè)等級。五個(gè)等級。switch/case語句語句 if語句通過嵌套可以實(shí)現(xiàn)多分支結(jié)構(gòu),但結(jié)構(gòu)復(fù)雜。語句通過嵌套可以實(shí)現(xiàn)多分支結(jié)構(gòu),但結(jié)構(gòu)復(fù)雜。switch是是C51中提供的專門處理多分支結(jié)構(gòu)的多分支中提
17、供的專門處理多分支結(jié)構(gòu)的多分支選擇語句。它的格式如下:選擇語句。它的格式如下:switch (表達(dá)式)(表達(dá)式)case 常量表達(dá)式常量表達(dá)式1:語句語句1;break;case 常量表達(dá)式常量表達(dá)式2:語句語句2;break;case 常量表達(dá)式常量表達(dá)式n:語句語句n;break;default:語句語句n+1;說明如下:說明如下:(1)switch后面括號內(nèi)的表達(dá)式,可以是整型或字符型表后面括號內(nèi)的表達(dá)式,可以是整型或字符型表達(dá)式。達(dá)式。(2)當(dāng)該表達(dá)式的值與某一當(dāng)該表達(dá)式的值與某一“case”后面的常量表達(dá)式的值后面的常量表達(dá)式的值相等時(shí),就執(zhí)行該相等時(shí),就執(zhí)行該“case”后面的語句
18、,然后遇到后面的語句,然后遇到break語句語句退出退出switch語句。若表達(dá)式的值與所有語句。若表達(dá)式的值與所有case后的常量表達(dá)式后的常量表達(dá)式的值都不相同,則執(zhí)行的值都不相同,則執(zhí)行default后面的語句,然后退出后面的語句,然后退出switch結(jié)構(gòu)。結(jié)構(gòu)。(3)每一個(gè)每一個(gè)case常量表達(dá)式的值必須不同否則會(huì)出現(xiàn)自相常量表達(dá)式的值必須不同否則會(huì)出現(xiàn)自相矛盾的現(xiàn)象。矛盾的現(xiàn)象。(4)case語句和語句和default語句的出現(xiàn)次序?qū)?zhí)行過程沒有影語句的出現(xiàn)次序?qū)?zhí)行過程沒有影響。響。(5)每個(gè)每個(gè)case語句后面可以有語句后面可以有“break”,也可以沒有。有,也可以沒有。有break語句,執(zhí)行到語句,執(zhí)行到break則退出則退出switch結(jié)構(gòu),若沒有,則會(huì)結(jié)構(gòu),若沒有,則會(huì)順次執(zhí)行后面的語句,直到遇到順次執(zhí)行后面的語句,直到遇到break或結(jié)束?;蚪Y(jié)束。【例例】 switch/case語句的用法。語句的用法。 對學(xué)生成績劃分為對學(xué)生成績劃分為A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手房屋買賣合同范本無中介2024年
- 個(gè)人技術(shù)合作協(xié)議書范本
- 2024委托經(jīng)營合同格式
- 環(huán)保無害油菜籽訂購合同
- 2024的區(qū)域代理合同范文
- 工廠房屋租賃合同談判技巧
- 基金交易服務(wù)協(xié)議書模板
- 城市婚姻登記處離婚協(xié)議樣本
- 機(jī)動(dòng)車維修技術(shù)培訓(xùn)協(xié)議
- 個(gè)人承包水利工程協(xié)議
- 教科版五年級科學(xué)上冊(風(fēng)的作用) 教學(xué)課件
- 二年級下冊語文試題 -“詩詞大會(huì)”題庫二 (word版有答案) 人教部編版
- GB/T 7702.20-2008煤質(zhì)顆?;钚蕴吭囼?yàn)方法孔容積和比表面積的測定
- 新歷史主義文藝思潮
- GB/T 40120-2021農(nóng)業(yè)灌溉設(shè)備灌溉用熱塑性可折疊軟管技術(shù)規(guī)范和試驗(yàn)方法
- GB/T 3903.2-1994鞋類通用檢驗(yàn)方法耐磨試驗(yàn)方法
- GB/T 10801.2-2018絕熱用擠塑聚苯乙烯泡沫塑料(XPS)
- 12J5-1 平屋面建筑標(biāo)準(zhǔn)設(shè)計(jì)圖
- 中印邊境爭端
- 《墨梅》課件(省一等獎(jiǎng))
- 招聘與錄用期末考試卷及答案AB卷2套
評論
0/150
提交評論