版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章鍵盤顯示及模擬量通道技術(shù)8.1鍵盤/顯示器接口擴(kuò)展技術(shù)8.2模擬量I/O8.1鍵盤/顯示器接口擴(kuò)展技術(shù)8.1.1顯示器結(jié)構(gòu)與工作原理8.1.2鍵盤接口工作原理8.1.1顯示器結(jié)構(gòu)與工作原理顯示器概述作用顯示單片機(jī)的運(yùn)行結(jié)果與運(yùn)行狀態(tài)分類LED(發(fā)光二極管):亮度清晰、成本低、控制簡(jiǎn)單LCD(液晶):功耗低CRT(陰極射線管):圖形顯示方便使用場(chǎng)合電子顯示屏、工業(yè)測(cè)控領(lǐng)域、儀器儀表、電子鐘、家用電器等LED數(shù)碼管顯示原理與段碼1111110000000011共陽段碼表共陰段碼表3FHC0H顯示代碼表LED數(shù)碼顯示方法靜態(tài)動(dòng)態(tài)典型靜態(tài)顯示接口圖一程序(1):8位顯示,顯示緩沖30H-37H,用串口方式0DIS: MOVSCON,#00H MOVR0,#30H MOVR7,#08H MOVDPTR,#TABLP: MOVA,@R0
MOVC A,@A+DPTR
MOVSBUF,A JNBTI,$
CLRTI INCR0 DJNZR7,LP
RETTAB: DB3FH,06H,…… CLK BITP1.0 DAB BITP1.1DIS: MOV R0,#30H
MOV R7,#08H MOV DPTR,#TABLP: MOV A,@R0 MOVC A,@A+DPTR
MOV R6,#08H程序(2):8位顯示:顯示緩沖30H-37H,用P1.0-CLK,P1.1-DABLP0: CLR CLK RRC A ;循環(huán)右移 MOV DAB,C
SETB CLK DJNZ R6,LP0 INC R0 DJNZ R7,LP RETTAB: DB3FH,06H,……
P1.0P1.1靜態(tài)顯示應(yīng)用靜態(tài)顯示應(yīng)用3.動(dòng)態(tài)掃描顯示法接口設(shè)計(jì)動(dòng)態(tài)掃描顯示對(duì)于一組LED數(shù)碼顯示器需要兩組信號(hào)來控制段碼:字段輸出口輸出的字形代碼位碼:輸出口的控制信號(hào),選擇第幾位顯示器工作一位一位地顯示器數(shù)碼——?jiǎng)討B(tài)掃描顯示利用人的“視覺暫留效應(yīng)”顯示刷新的頻率達(dá)到30Hz以上,否則會(huì)出現(xiàn)閃爍8255的口地址A口:7FFCHB口:7FFDHC口:7FFEH控制寄存器:7FFFH段控位控共陽極MODE: MOV A,#80H ;10000000B=80HA、C口基本輸出 MOV DPTR,#7FFFH ;控制字
MOVX @DPTR,ADISP: MOV R0,#30H ;顯示緩沖 MOV R2,#01H ;6個(gè)顯示器,位選點(diǎn)亮的初始碼程序8255A初始化共陽極 INC R0 ;指向下一個(gè)顯示緩沖 MOV A,R2
JB ACC.5,EXIT ;到第6個(gè)數(shù)碼管了?
RL A MOV R2,A AJMP LOOPEXIT: RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H DB 90H,88H,83H,0C6H,0A1H,86H,8EH,8CH,0BFH,0FFH8.1.2鍵盤接口工作原理鍵盤人機(jī)交互的一個(gè)重要工具兩種基本類型編碼鍵盤除了按鍵以外,還包括產(chǎn)生鍵碼的硬件電路使用方便、價(jià)格較高非編碼鍵盤靠軟件來識(shí)別鍵盤上的閉合鍵,由此計(jì)算出編碼幾乎不需要附加硬件邏輯在單片機(jī)應(yīng)用系統(tǒng)中被普遍使用1.
非編碼鍵盤的工作原理分類硬件編碼式鍵盤、二維直讀式鍵盤獨(dú)立式鍵盤〔簡(jiǎn)單鍵盤〕、行列式鍵盤(矩陣式鍵盤)獨(dú)立式按鍵行列式鍵盤01111011110111103.消除抖動(dòng)不良后果的方法⑴硬件去抖動(dòng)RC濾波電路去抖動(dòng)電路簡(jiǎn)單實(shí)用,效果較好。⑵軟件去抖動(dòng)檢測(cè)到按鍵按下后,執(zhí)行延時(shí)10ms子程序后再確認(rèn)該鍵是否確實(shí)按下,消除抖動(dòng)影響。鍵處理的流程圖
4.獨(dú)立式按鍵處理過程查鍵:掃描有否鍵按下,若無鍵按下,返回有鍵按下軟件去抖:延時(shí)20ms找鍵等鍵釋放軟件去抖:延時(shí)20ms;準(zhǔn)備輸入等放去抖查鍵KE2: MOV B,#0 ;保存鍵值0KE3: ANL A,#3FH RRC A ;(A.0)Cy JNC KE4
INC B SJMP KE3KE4: ORL P1,#3FH MOV A,P1 ANL A,#3FH CJNE A,#3FH,KE4
MOV A,B ;返回鍵值
CJNE A,#06H,KE5KE5: JC KE6 ;Cy=1,(A)<6KE7: MOV A,#0FFH;(A)>=6KE6: RETKE: ORL P1,#3FH
MOV A,P1 ANL A,#3FH ;P1.0~P1.5 CJNE A,#3FH,KE1 SJMP KE7 ;無鍵按下KE1: LCALL DL20 ;延時(shí)去抖
ORL P1,#3FH;修改P1 MOV A,P1 ;讀P1 ANL A,#3FH CJNE A,#3FH,KE2 SJMP KE7 ;誤動(dòng)作返回找鍵5.矩陣式鍵盤工作方式查詢定時(shí)每隔一段時(shí)間對(duì)鍵盤掃描一次利用單片機(jī)內(nèi)部的定時(shí)器的定時(shí)器溢出中斷。中斷中斷方式00001111處理過程鍵掃描確認(rèn)有無按鍵按下去抖動(dòng)延時(shí)按鍵的識(shí)別:確定鍵的行、列號(hào)掃描算法、線反轉(zhuǎn)法鍵號(hào)的確定等待鍵釋放掃描算法:逐行置低電平,其余各行為高電平,檢查各列電平的變化,如果某列線電平為低電平,即可確定此行列線交叉點(diǎn)處的按鍵被按下。交換行列線的輸出讀取關(guān)系也可以實(shí)現(xiàn)。線反轉(zhuǎn)法:首先,將行線編程為輸入線,列線編程為輸出線,然后使列線線全輸出低電平,讀取行線電平,行線從高電平轉(zhuǎn)為低電平的行線為按下按鍵所在行;然后,將列線編程為輸入線,行線編程為輸出線,然后使行線全輸出低電平,讀取列線電平,列線從高電平轉(zhuǎn)為低電平的列線為按下按鍵所在列。[例1]掃描算法用8255A作單片機(jī)鍵盤接口,A口為輸出口接鍵盤列線。C口為輸入口接鍵盤的4條行線8255A地址 A口:7FFCH
B口:7FFDH
C口:7FFEH 控制寄存器:7FFFH子程序KSI:判定有無閉合鍵的KSI: MOV DPTR,#7FFCH
;A口地址 MOV A,#00H MOVX @DPTR,A
;A口送00H INC DPTR INC DPTR
;C口地址 MOVX A,@DPTR
;讀C口 CPL A ANL A,#0FH
;屏蔽高四位 RET00000000有閉合鍵,則(A)≠0無閉合,則(A)=01111KEY1: ACALL KSI
;檢查是否有鍵閉合 JNZ LK1
;A非“0”則轉(zhuǎn)移 ACALL DLY6
;“延時(shí)6ms AJMP KEY1LK1: ACALL DLY6
;有鍵閉合二次延時(shí) ACALL DLY6
;共12ms去抖動(dòng)
ACALL KSI
;再檢查是否有鍵閉合 JNZ LK2
;有鍵閉合轉(zhuǎn)移到LK2 ACALL DLY6 AJMP KEY1
;無鍵閉合,延時(shí)6ms后轉(zhuǎn)KEY1有閉合鍵,則(A)≠0無閉合,則(A)=0LK2: MOV R2,#0FEH
;掃描初值送R2 MOV R4,#00H
;掃描列號(hào)送R4,第0列LK4: MOV DPTR,#7FFCH
;A口地址
MOV A,R2 MOVX @DPTR,A
;掃描初值送A口 INC DPTR INC DPTR
;C口地址 MOVX A,@DPTR
;讀C口有閉合鍵,則(A)≠0無閉合,則(A)=001111111 JB ACC.0,LONE
;ACC.0=1,第0行無鍵閉合,轉(zhuǎn)LONE MOV A,#00H
;裝第0行值 AJMP LKPLONE: JB ACC.1,LTWO
;ACC.1=1,第1行無鍵閉合,轉(zhuǎn)LTWO MOV A,#08H
;裝第1行值 AJMP LKPLTWO: JB ACC.2,LTHR
;ACC.2=1,第2行無鍵閉合,轉(zhuǎn)LTHR MOV A,#10H
;裝第2行值 AJMP LKPLTHR: JB ACC.3,NEXT
;ACC.3=1,第3行無鍵閉合,轉(zhuǎn)NEXT MOV A,#18H
;裝第3行值LKP: ADD A,R4
;計(jì)算鍵碼 PUSH ACC
;保護(hù)鍵碼LK3: ACALL DIR
;延時(shí)6ms ACALL KSI
;檢查是否繼續(xù)閉合,若閉合再延時(shí) JNZ LK3 POP ACC ;若鍵起,則鍵碼送A掃描列號(hào):R4NEXT: INC R4
;掃描列號(hào)加1
MOV A,R2 JNB ACC.7,KEND
;若第7位=0,已掃完最高列則轉(zhuǎn)KND RL A MOV R2,A AJMP LK4
;進(jìn)行下一列掃描KEND: ………
;掃描完畢掃描列號(hào):R4鍵盤/顯示一體8255接口圖小結(jié)鍵盤接口工作原理相應(yīng)的程序設(shè)計(jì)方法實(shí)驗(yàn):鍵盤掃描顯示74LS245雙向總線收發(fā)器74LS273地址鎖存器[例2]靜態(tài)顯示兩位十進(jìn)制數(shù)MOV A,#35H ;將顯示數(shù)的BCD碼送累加器AMOV DPTR,#0FEFFH ;取顯示口地址MOVX@DPTR,A ;送顯示數(shù)0[例3]DIR1: MOV A,30H ;讀顯示數(shù)
MOV B,#100 ;置除數(shù)
DIV AB ;產(chǎn)生百位顯示數(shù)字
MOV DPTR,#TAB
MOVC A,@A+DPTR ;讀百位顯示符(段碼/字型碼)
MOV DPTR,#0DFFFH ;置74377(百位)地址
MOVX @DPTR,A ;輸出百位顯示符(段碼/字型碼)
MOV A,B ;讀余數(shù)
MOV B,#10 ;置除數(shù)
DIV AB ;產(chǎn)生十位顯示數(shù)字
MOV DPTR,#TAB ;置共陽字段碼表首址
MOVCA,@A+DPTR ;讀十位顯示符(段碼/字型碼)
MOV DPTR,#0BFFFH ;置74377(十位)地址
MOVX@DPTR,A ;輸出十位顯示符(段碼/字型碼)
顯示存在內(nèi)RAM中30H開始的數(shù)據(jù)(≤255)
MOV A,B ;讀個(gè)位顯示數(shù)字
MOV DPTR,#TAB ;置共陽字段碼表首址
MOVC A,@A+DPTR ;讀個(gè)位顯示符
MOV DPTR,#7FFFH ;置74377(個(gè)位)地址
MOVX @DPTR,A ;輸出個(gè)位顯示符
RET ;共陽字段碼表TAB: DB0C0H,0F9H,0A4H,0B0H,99H DB92H,82H,0F8H,80H,90H;[例2]線反轉(zhuǎn)法KEY: MOV P1,#0F0H ;行線置低電平,列線置輸入態(tài)KEY0: MOV A,P1 ;讀列線數(shù)據(jù)
CPL A ;數(shù)據(jù)取反,“1”有效
ANL A,#0F0H ;屏蔽行線,保留列線數(shù)據(jù)
MOV R1,A ;存列線數(shù)據(jù)(R1高4位) JZ GRET ;全0,無鍵按下,返回KEY1: MOV P1,#0FH ;行線置輸入態(tài),列線置低電平
MOV A,P1 ;讀行線數(shù)據(jù)
CPL A ;數(shù)據(jù)取反,“1”有效
ANL A,#0FH ;屏蔽列線,保留行線數(shù)據(jù)
MOV R2,A ;存行線數(shù)據(jù)(R2低4位) JZ GRET ;全0,無鍵按下,返回
JBC F0,WAIT ;已有消抖標(biāo)志,轉(zhuǎn)
SETB F0 ;無消抖標(biāo)志,置消抖標(biāo)志
LCALL DY10ms ;調(diào)用10ms延時(shí)子程序消抖
SJMP KEY0 ;重讀行線列線數(shù)據(jù)GRET: RET參考程序:WAIT: MOV A,P1 ;等待按鍵釋放
CPL A ANL A,#0FH
JNZ WAIT ;按鍵未釋放,繼續(xù)等待KEY2: MOV A,R1 ;取列線數(shù)據(jù)(高4位) MOV R1,#03H ;取列線編號(hào)初值
MOV R3,#03H ;置循環(huán)數(shù)
CLR CKEY3: RLC A ;依次左移入C中
JC KEY4 ;C=1,該列有鍵按下,(列線編號(hào)存R1) DEC R1 ;C=0,無鍵按下,修正列編號(hào)
DJNZ R3,KEY3 ;判
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級(jí)英語教學(xué)計(jì)劃模板
- 體育教研工作計(jì)劃模板匯編
- 初一上學(xué)期班主任工作計(jì)劃024年
- 2025年社區(qū)關(guān)愛殘疾人工作計(jì)劃模板新編
- 學(xué)校檔案管理年度工作計(jì)劃范文
- 計(jì)劃標(biāo)段生產(chǎn)建議計(jì)劃
- 初一學(xué)期的班級(jí)工作計(jì)劃
- 《食品風(fēng)險(xiǎn)分析框架》課件
- 《骨科常規(guī)護(hù)理技術(shù)》課件
- 土地承包合同中糧食補(bǔ)貼協(xié)議備注書面書寫
- 新教材北師大版數(shù)學(xué)一年級(jí)上冊(cè)教學(xué)反思全冊(cè)
- 駕駛員安全駕駛知識(shí)培訓(xùn)與評(píng)估
- 食品安全事故流行病學(xué)調(diào)查表格
- 住宅排氣管道系統(tǒng)工程技術(shù)標(biāo)準(zhǔn)
- 標(biāo)識(shí)標(biāo)牌售后服務(wù)方案
- 人教版高中地理必修一全冊(cè)測(cè)試題(16份含答案)
- 基于單片機(jī)數(shù)字秒表的設(shè)計(jì)
- 基于LabVIEW的溫濕度監(jiān)測(cè)系統(tǒng)
- 人?!独碣r工作聘請(qǐng)保險(xiǎn)公估機(jī)構(gòu)管理辦法》實(shí)施細(xì)則
- GB/T 40636-2021掛面
- GB 18383-2007絮用纖維制品通用技術(shù)要求
評(píng)論
0/150
提交評(píng)論