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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第8章單片機IO口擴展[按鍵與顯示器擴展]

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

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

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

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

當CPU空閑時,掃描鍵盤,判斷有無鍵按下。定時掃描方式

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

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

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

按鍵擴展獨立式鍵盤與應用程序設計接口方式查詢方式中斷方式應用程序設計按鍵擴展獨立式按鍵檢測方法

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

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

RETSTOP:……;停止功能

RETPAUSE:……;暫停功能

RETSTEP:……;步進功能

RET獨立式按鍵檢測方法

中斷方式:在硬件上采用中斷,有鍵按下時,產(chǎn)生中斷,由中斷服務程序來處理。按鍵擴展ORG0013HCLREX1;關外部中斷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按鍵擴展鍵值編碼:將按鍵的輸入狀態(tài)信息轉(zhuǎn)換為對應鍵值的過程,稱為對按鍵的編碼。有8個按鍵怎么辦?如何快速做到識別?按鍵擴展KCODE: MOV R3,#8;循環(huán)8次

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

INCR4 ;鍵值加1

DJNZR3,NEXTFIND: RET

獨立式按鍵的鍵編碼方法按鍵擴展典型按鍵應用程序設計按鍵擴展矩陣式鍵盤與應用程序設計接口方式工作原理按鍵擴展矩陣式鍵盤與應用程序設計接口方式

當要擴展的按鍵較多時,一般采用行列式非編碼鍵盤。

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

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

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

在有鍵按下的情況下,進一步判斷是哪個鍵按下。

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

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

為使LED顯示不同的符號或數(shù)字,要為LED的段提供適當?shù)倪壿嬰娖?。該組邏輯電平稱為段碼(或字模)。要顯示數(shù)字“3”,各段的電平如下:dpgfedcba共陰極01001111共陽極10110000如果a~dp,依次連接P1.0~P1.7,則段碼值為:4FH(共陰極),B0H(共陽極)顯示器擴展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)顯示器擴展inch0.30.512mm7.6212.525.450.8★公共端(接法):共陰、共陽★亮度:普亮、高亮、超高亮★尺寸(高度):★顏色:紅、綠、黃、紫、白LED的種類顯示器擴展VF:正向壓降IF:正向工作電流主要電氣參數(shù)參數(shù)高亮管普亮管白光LEDVF1.7V-1.8V2.2V-2.5V3.0V-3.6VIF5mA10-20mA

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

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

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

硬件連線少,功耗低;

軟件復雜,需要不停地掃描。

顯示亮度既與導通電流有關,也與點亮時間和間隔有關。所有位的段碼線相應段并在一起,由一個8位I/O口控制,形成段碼線的多路復用。各位的公共端分別由相應的I/O線控制,形成各位的分時選通。單片機定時掃描顯示器件。顯示器件分時工作,每次只有一個LED顯示。顯示器擴展動態(tài)顯示

硬件實現(xiàn)顯示器擴展動態(tài)顯示

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

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

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

初值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論