單片機(jī)原理及應(yīng)用:第8章 單片機(jī)IO口擴(kuò)展-鍵盤與顯示器_第1頁
單片機(jī)原理及應(yīng)用:第8章 單片機(jī)IO口擴(kuò)展-鍵盤與顯示器_第2頁
單片機(jī)原理及應(yīng)用:第8章 單片機(jī)IO口擴(kuò)展-鍵盤與顯示器_第3頁
單片機(jī)原理及應(yīng)用:第8章 單片機(jī)IO口擴(kuò)展-鍵盤與顯示器_第4頁
單片機(jī)原理及應(yīng)用:第8章 單片機(jī)IO口擴(kuò)展-鍵盤與顯示器_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第8章單片機(jī)IO口擴(kuò)展[按鍵與顯示器擴(kuò)展]

引言按鍵擴(kuò)展顯示器擴(kuò)展按鍵與顯示器擴(kuò)展引言MCS-51的編址方式I/O口與數(shù)據(jù)存儲(chǔ)器單元同等對(duì)待,統(tǒng)一編址。每一接口芯片中的一個(gè)功能寄存器(端口)的地址就相當(dāng)于一個(gè)RAM單元,不需要專門的I/O指令,直接使用訪問數(shù)據(jù)存儲(chǔ)器的指令進(jìn)行I/O操作,簡(jiǎn)單、方便且功能強(qiáng)。數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器之間是獨(dú)立編址。引言按鍵擴(kuò)展顯示器擴(kuò)展按鍵與顯示器擴(kuò)展鍵盤基本知識(shí)獨(dú)立式鍵盤與應(yīng)用程序設(shè)計(jì)矩陣式鍵盤與應(yīng)用程序設(shè)計(jì)按鍵擴(kuò)展鍵盤基本知識(shí)鍵盤實(shí)現(xiàn)方式的選擇譯碼方式的選擇(硬件)編碼鍵盤(非硬件)編碼鍵盤鍵盤接口形式的選擇獨(dú)立連接鍵盤矩陣連接鍵盤按鍵擴(kuò)展鍵盤實(shí)現(xiàn)方式的選擇譯碼方式的選擇編碼鍵盤:采用硬件編碼電路來實(shí)現(xiàn)鍵的編碼,每按下一個(gè)鍵,鍵盤便能自動(dòng)產(chǎn)生按鍵代碼。編碼鍵盤主要有BCD碼鍵盤、ASCII碼鍵盤等類型。特點(diǎn):使用方便,鍵盤碼產(chǎn)生速度快,占用CPU時(shí)間少,但對(duì)按鍵的檢測(cè)與消除抖動(dòng)干擾是靠硬件電路來完成的,因而硬件電路復(fù)雜、成本高。非編碼鍵盤:僅提供按鍵的通或斷狀態(tài),按鍵代碼的產(chǎn)生與識(shí)別由軟件完成。特點(diǎn):硬件電路簡(jiǎn)單,成本低,但占用CPU的時(shí)間較長(zhǎng)。單片機(jī)系統(tǒng)中多采用非編碼鍵盤。發(fā)展趨勢(shì)為少量按鍵配以菜單的方式。按鍵擴(kuò)展鍵盤實(shí)現(xiàn)方式的選擇按鍵的基本接口形式獨(dú)立式:連線簡(jiǎn)單,適用于按鍵較少的情況行列式(矩陣式):連線較復(fù)雜,適用于按鍵較多的情況按鍵擴(kuò)展鍵盤基本知識(shí)鍵盤輸入應(yīng)解決的基本問題

按鍵檢測(cè):如何識(shí)別有鍵按下;去抖動(dòng):識(shí)別被按鍵與釋放鍵時(shí)必須避開抖動(dòng)狀態(tài),只有處在穩(wěn)定接通或斷開狀態(tài)時(shí),才能保證識(shí)別正確無誤;

鍵碼產(chǎn)生:為了從鍵的行列坐標(biāo)編碼得到反映鍵功能的鍵碼,一般在程序存儲(chǔ)器中建立了一個(gè)鍵盤編碼表,通過查表獲得鍵碼。防串鍵:防串鍵是為了解決多個(gè)鍵同時(shí)按下或者前一鍵沒有釋放而又有新鍵按下時(shí)產(chǎn)生的問題;按鍵擴(kuò)展鍵輸入的基本處理過程按鍵擴(kuò)展按鍵抖動(dòng)與按鍵消抖抖動(dòng)時(shí)間:10ms左右,與按鍵的機(jī)械特性有關(guān)。按鍵抖動(dòng)按鍵消抖硬件消抖(利用RS觸發(fā)器)軟件消抖按鍵擴(kuò)展按鍵抖動(dòng)與按鍵消抖按鍵消抖硬件消抖(利用RS觸發(fā)器)按鍵擴(kuò)展按鍵抖動(dòng)與按鍵消抖按鍵消抖軟件消抖按鍵擴(kuò)展基本思想:檢測(cè)到有鍵按下,鍵對(duì)應(yīng)的輸入線為低,軟件延時(shí)10ms后,輸入線如仍為低,則確認(rèn)該行有鍵按下;當(dāng)鍵松開時(shí),輸入線變高,軟件延時(shí)10ms后,輸入線仍為高,說明按鍵已松開。按鍵抖動(dòng)與按鍵消抖按鍵消抖軟件消抖(定時(shí))按鍵擴(kuò)展利用定時(shí)器如何實(shí)現(xiàn)軟件消抖?定時(shí)器定時(shí)10ms中斷服務(wù)程序中定義兩個(gè)標(biāo)志,K1和K2第一次檢測(cè)到按鍵,置標(biāo)志K1第二次檢測(cè)到按鍵,置標(biāo)志K2兩個(gè)標(biāo)志都置位表示按鍵檢測(cè)完畢鍵盤驅(qū)動(dòng)程序的主要功能監(jiān)測(cè)有無鍵按下保證可靠性:采取軟件消抖不管按鍵過程持續(xù)多長(zhǎng)時(shí)間,僅執(zhí)行一次按鍵功能程序。輸出確定的鍵號(hào)(鍵值)按鍵擴(kuò)展

鍵盤監(jiān)測(cè)方法程序掃描方式

當(dāng)CPU空閑時(shí),掃描鍵盤,判斷有無鍵按下。定時(shí)掃描方式

利用CPU的定時(shí)器,每隔一定時(shí)間掃描一次鍵盤。中斷方式

有鍵按下時(shí)產(chǎn)生中斷,由中斷服務(wù)程序來處理。按鍵擴(kuò)展

按鍵的基本接口方法獨(dú)立式:連線簡(jiǎn)單,適用于按鍵較少的情況。行列式(矩陣式):連線較復(fù)雜,適用于按鍵較多的情況。

按鍵擴(kuò)展獨(dú)立式鍵盤與應(yīng)用程序設(shè)計(jì)接口方式查詢方式中斷方式應(yīng)用程序設(shè)計(jì)按鍵擴(kuò)展獨(dú)立式按鍵檢測(cè)方法

查詢方式:按鍵擴(kuò)展KEY:JNBP1.0,PLAY;逐鍵判別

JNBP1.1,STOPJNBP1.2,PAUSEJNBP1.3,STEPRET;其他情況由此返回PLAY:……;實(shí)現(xiàn)播放功能

RETSTOP:……;停止功能

RETPAUSE:……;暫停功能

RETSTEP:……;步進(jìn)功能

RET獨(dú)立式按鍵檢測(cè)方法

中斷方式:在硬件上采用中斷,有鍵按下時(shí),產(chǎn)生中斷,由中斷服務(wù)程序來處理。按鍵擴(kuò)展ORG0013HCLREX1;關(guān)外部中斷1LJMPKEYSCAN….KEYSCAN:JNBP1.0,PLAY;逐按鍵查詢判別

JNBP1.1,STOPJNBP1.2,PAUSEJNBP1.3,STEPSETBEX1;開外部中斷1

RETIPLAY:….SETBEX1;開外部中斷1

RETISTOP:….SETBEX1;開外部中斷1

RETIPAUSE:….

SETBEX1;開外部中斷1

RETISTEP:….SETBEX1;開外部中斷1

RETI按鍵擴(kuò)展鍵值編碼:將按鍵的輸入狀態(tài)信息轉(zhuǎn)換為對(duì)應(yīng)鍵值的過程,稱為對(duì)按鍵的編碼。有8個(gè)按鍵怎么辦?如何快速做到識(shí)別?按鍵擴(kuò)展KCODE: MOV R3,#8;循環(huán)8次

MOV R4,#0;初始鍵值=0 MOV A,P1NEXT: RRCA ;C=ACC.0 JNCFIND

INCR4 ;鍵值加1

DJNZR3,NEXTFIND: RET

獨(dú)立式按鍵的鍵編碼方法按鍵擴(kuò)展典型按鍵應(yīng)用程序設(shè)計(jì)按鍵擴(kuò)展矩陣式鍵盤與應(yīng)用程序設(shè)計(jì)接口方式工作原理按鍵擴(kuò)展矩陣式鍵盤與應(yīng)用程序設(shè)計(jì)接口方式

當(dāng)要擴(kuò)展的按鍵較多時(shí),一般采用行列式非編碼鍵盤。

如擴(kuò)展4×4鍵盤,16個(gè)按鍵。行線:四根,接P1.0—P1.3(輸出狀態(tài))列線:四根,接P1.4—P1.7(輸入狀態(tài))按鍵擴(kuò)展矩陣式鍵盤與應(yīng)用程序設(shè)計(jì)工作原理程序掃描法原理:①

行線(P1.0—P1.3)同時(shí)輸出低電平,讀列線(P1.4—P1.7)的狀態(tài),若全為1,則無鍵按下;若不全為1,則有鍵按下。

行列32103210P1.3P1.2P1.1P1.0P1.7P1.6P1.5P1.40000111100001110按下的按鍵可能是誰?S1、S5、S9、S13按鍵擴(kuò)展矩陣式鍵盤與應(yīng)用程序設(shè)計(jì)工作原理程序掃描法原理:②

在有鍵按下的情況下,進(jìn)一步判斷是哪個(gè)鍵按下。

使P1.0—P1.3依次輸出低電平,讀出P1.4—P1.7的狀態(tài)。按鍵位置:1行,0列,“S5”鍵按鍵擴(kuò)展矩陣式鍵盤與應(yīng)用程序設(shè)計(jì)工作原理程序掃描法原理:③依據(jù)行號(hào)和列號(hào),求取該鍵的鍵值NN=行首鍵號(hào)+列號(hào)×列增量

行首鍵號(hào):0,1,2,3(S5)N=1+0×4思考:擴(kuò)展16個(gè)按鍵至少需要多少根I/O線?按鍵擴(kuò)展引言按鍵擴(kuò)展顯示器擴(kuò)展按鍵與顯示器擴(kuò)展顯示器分類LED顯示器LED顯示器接口設(shè)計(jì)顯示器擴(kuò)展顯示器的作用和地位人機(jī)對(duì)話窗口顯示工作狀態(tài)和參數(shù)顯示測(cè)量結(jié)果顯示器擴(kuò)展顯示器分類LED(LightEmittingdiode):發(fā)光二極管顯示器LCD(LiquidcrystalDisplay):液晶顯示器CRT(Cathode-rayTube):陰極射線管顯示器顯示器擴(kuò)展LED顯示器又分有字符型和點(diǎn)陣型顯示器擴(kuò)展LED顯示器LED顯示器的結(jié)構(gòu)常用的LED顯示器為8段(或7段,8段比7段多了一個(gè)小數(shù)點(diǎn)“dp”段)。有共陽極和共陰極兩種。共陰極共陽極顯示器擴(kuò)展字模(段碼)

為使LED顯示不同的符號(hào)或數(shù)字,要為L(zhǎng)ED的段提供適當(dāng)?shù)倪壿嬰娖?。該組邏輯電平稱為段碼(或字模)。要顯示數(shù)字“3”,各段的電平如下:dpgfedcba共陰極01001111共陽極10110000如果a~dp,依次連接P1.0~P1.7,則段碼值為:4FH(共陰極),B0H(共陽極)顯示器擴(kuò)展LED段碼(8段)顯示字符共陰極共陽極03FH(00111111)C0H(11000000)106H(00000110)F9H(11111001)25BH(01011011)A4H(10100100)34FH(01001111)B0H(10110000)466H(01100110)99H(10011001)56DH(01101101)92H(10010010)67DH(01111101)82H(10000010)707H(00000111)F8H(11111000)87FH(01111111)80H(10000000)96FH(01101111)90H(10010000)滅00H(00000000)FFH(11111111)顯示器擴(kuò)展inch0.30.512mm7.6212.525.450.8★公共端(接法):共陰、共陽★亮度:普亮、高亮、超高亮★尺寸(高度):★顏色:紅、綠、黃、紫、白LED的種類顯示器擴(kuò)展VF:正向壓降IF:正向工作電流主要電氣參數(shù)參數(shù)高亮管普亮管白光LEDVF1.7V-1.8V2.2V-2.5V3.0V-3.6VIF5mA10-20mA

限流電阻的計(jì)算顯示器擴(kuò)展LED顯示器接口設(shè)計(jì)靜態(tài)驅(qū)動(dòng)持續(xù)驅(qū)動(dòng)LED顯示器的共公端。在顯示器工作過程中,系統(tǒng)為每個(gè)顯示器的公共端都一個(gè)有效電平。軟件編程簡(jiǎn)單,但占用I/O口線多,功耗大。軟件代碼實(shí)現(xiàn):

MOVP1,#0C0H;送‘0’的字模MOVP2,#0F9H;送‘1’的字模顯示器擴(kuò)展LED顯示器接口設(shè)計(jì)多位LED顯示驅(qū)動(dòng)段選:控制顯示的字型位選:控制該顯示位的亮或暗顯示驅(qū)動(dòng)方式靜態(tài)顯示控制簡(jiǎn)單,占用硬件資源多,亮度高,占用軟件資源少動(dòng)態(tài)顯示控制稍復(fù)雜,占用硬件資源少,亮度稍低,占用軟件資源多顯示器擴(kuò)展LED顯示器接口設(shè)計(jì)靜態(tài)顯示驅(qū)動(dòng)持續(xù)驅(qū)動(dòng)LED顯示器的共公端。在顯示器工作過程中,系統(tǒng)為每個(gè)顯示器的公共端都一個(gè)有效電平。軟件編程簡(jiǎn)單,但占用I/O口線多,功耗大。軟件代碼實(shí)現(xiàn):

MOVP1,#0C0H;送‘0’的字模MOVP2,#0F9H;送‘1’的字模顯示器擴(kuò)展LED顯示器接口設(shè)計(jì)動(dòng)態(tài)顯示驅(qū)動(dòng)單片機(jī)定時(shí)掃描顯示器,采用分時(shí)驅(qū)動(dòng)的方法,輪流控制各個(gè)顯示器的COM端,使各個(gè)顯示管輪流點(diǎn)亮。該驅(qū)動(dòng)方式利用了人的視覺暫留現(xiàn)象。動(dòng)態(tài)掃描驅(qū)動(dòng)方式中,顯示管分時(shí)工作,每次只有一個(gè)LED管顯示。在輪流點(diǎn)亮掃描過程中,每位顯示管的點(diǎn)亮?xí)r間是極為短暫的(約1ms)。顯示器擴(kuò)展動(dòng)態(tài)顯示6位動(dòng)態(tài)LED顯示器電路,各位輪流驅(qū)動(dòng)顯示。特點(diǎn):

硬件連線少,功耗低;

軟件復(fù)雜,需要不停地掃描。

顯示亮度既與導(dǎo)通電流有關(guān),也與點(diǎn)亮?xí)r間和間隔有關(guān)。所有位的段碼線相應(yīng)段并在一起,由一個(gè)8位I/O口控制,形成段碼線的多路復(fù)用。各位的公共端分別由相應(yīng)的I/O線控制,形成各位的分時(shí)選通。單片機(jī)定時(shí)掃描顯示器件。顯示器件分時(shí)工作,每次只有一個(gè)LED顯示。顯示器擴(kuò)展動(dòng)態(tài)顯示

硬件實(shí)現(xiàn)顯示器擴(kuò)展動(dòng)態(tài)顯示

軟件實(shí)現(xiàn)在LED顯示器上顯示

“123456”基本思路:1)設(shè)置顯示緩沖區(qū):7EH-79H(6個(gè)單元)2)通過查表法,求取字模。數(shù)碼管序號(hào)543210顯示信息123456緩沖區(qū)地址7EH7DH7CH7BH7AH79H緩沖區(qū)單元內(nèi)容(非壓縮BCD碼)01H02H03H04H05H06H對(duì)應(yīng)字模值06H5BH4FH66H6DH7DH顯示器擴(kuò)展動(dòng)態(tài)顯示

軟件實(shí)現(xiàn)基本思路:3)逐位輸出位選信號(hào)和段碼資源分配:R0:顯示緩沖區(qū)指針,初值為79HR3:掃描位選擇器,

初值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論