版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
計算機(jī)控制技術(shù)
第三章人機(jī)交互接口技術(shù)一、鍵盤接口(一)概述
鍵盤是由一組按鈕開關(guān)——鍵(一般為常開型)的組合,是計算機(jī)的輸入設(shè)備,為計算機(jī)系統(tǒng)普遍使用的人機(jī)交互設(shè)備。用戶通過鍵盤可以向CPU輸入數(shù)據(jù)、地址和命令等。鍵盤按其結(jié)構(gòu)形式可分為:獨(dú)立式和矩陣式。鍵盤按功能可分為:編碼式鍵盤和非編碼式鍵盤兩類。編碼鍵盤能自動識別按下的鍵和提供該鍵所代表的信息代碼,并以并行或串行信號輸給CPU。鍵盤電路中設(shè)有專用的鍵盤編碼器,并具有防抖和解決重鍵的功能。功能強(qiáng),響應(yīng)快,結(jié)構(gòu)復(fù)雜。非編碼鍵盤是一種便宜而廣泛用于單片機(jī)系統(tǒng)的輸入設(shè)備。這種鍵盤通常采用軟件的方法,掃描鍵盤是否有鍵被按下,并用計算或查表的方式得到該鍵的鍵值,然后再送給CPU。鍵的功能分為字符鍵和控制鍵。鍵盤設(shè)計時需主要解決的以下幾個問題:①按鍵的識別(按鍵的有無和位置);②重鍵和連擊的處理;按鍵抖動信號波形③如何消除鍵的抖動(硬件和軟件消抖方法):主程序如下:ORG0000HAJMPMAIN;上電后自動轉(zhuǎn)向主程序ORG0003H;外部中斷0入口地址AJMPKEYJMP;指向鍵處理中斷服務(wù)程序ORG0100HMAIN:SETBIT0;選擇邊沿觸發(fā)方式SETBEX0;允許外部中斷0SETBEA;允許CPU中斷MOVDPTR,#0EF00H;指向8155命令口MOVA,#02H;控制字MOVX@DPTR,A;控制字寫入命令寄存器HERE:AJMPHERE;模擬主程序中斷服務(wù)程序?yàn)椋篛RG0200HKEYJMP:MOVR3,#08H;設(shè)循環(huán)次數(shù)MOVDPTR,#0EF01H;指向8155A口MOVR4,#00H;計數(shù)寄存器清零MOVXA,@DPTR;讀入狀態(tài)字KYAD1:RRCAJNCKYAD2;PA0=0,轉(zhuǎn)向KYAD2INCR4;計數(shù)器加1DJNZR3,KYAD1RETIKYAD2:MOVDPTR,#JMPTABLMOVA,R4RLAJMP@A+DPTR;轉(zhuǎn)到響應(yīng)功能鍵入口地址表指針JMPTABL:AJMPSB0;分別轉(zhuǎn)到8個功能鍵響應(yīng)入口地址AJMPSB1………AJMPSB7
矩陣鍵盤與微機(jī)的連接,常采用I/O接口芯片,如8255、8155等。非編碼式鍵盤處理程序,關(guān)鍵是如何識別按鍵鍵碼。采用“掃描”的方法,過程步驟是:(1)測試有無鍵按下,包括消抖;(2)行(列)掃描法尋找按鍵位置,計算鍵值;(3)等待鍵釋放,運(yùn)行相應(yīng)的鍵處理程序。掃描方法又分為幾種,主要有行掃描法,線反轉(zhuǎn)法1。程控掃描法 下圖用8255A連接的4×8鍵盤。通過某行線發(fā)出低電平信號,如果該行線所連接的鍵沒有按下的話,則列線所接的端口得到的是全“1”信號,如果有鍵按下的話,則得到非全“1”信號。為了防止雙鍵或多鍵同時按下,往往從第0行一直掃描到最后1行,若只發(fā)現(xiàn)1個閉合鍵,則為有效鍵,否則全部作廢。找到閉合鍵后,讀入相應(yīng)的鍵值,再轉(zhuǎn)至相應(yīng)的鍵處理程序。軟件程序流程圖見后面。程控掃描法程序流程圖下面的程序是用行掃描法進(jìn)行鍵掃描的程序,其中KS1為判鍵閉合的子程序。有鍵閉合時(A)=0。DIR為數(shù)碼顯示器掃描顯示子程序,執(zhí)行一遍的時間約6ms。程序執(zhí)行后,若鍵閉合,鍵值存入A中,鍵值的計算公式是:鍵值=行號×8+列號;若無鍵閉合,則A中存入標(biāo)志FFH。KEY1:LCALLKS1;檢查有無閉合鍵JNZLK1;(A)=0,有鍵閉合則轉(zhuǎn)LJMPKEY1;無閉合鍵則返回LK1:LCALLT12MS;延時12msLCALLKS1;清抖,再檢查有鍵閉合否?JNZLK2;有鍵閉合則轉(zhuǎn)LJMPKEY1;無鍵閉合則返回LK2:MOVR4,#00H;首列號初值送R4MOVR2,#0FEH;首行掃描初值字送R2LK4:MOVDPTR,#0101H;指向8155口AMOVA,R2;行掃描值送AMOVX@DPTR,A;掃描1行INCDPTRINCDPTR;指向8155口CMOVXA,@DPTR;讀入列值JBACC.0,LONEMOVA,#00HLJMPLKPLONE:JBACC.1,LTWO MOVA,#08H;(A)為行號值 LJMPLKPLTWO:JBACC.2,LTHR MOVA,#10H LJMPLKPLTHR:JBACC.3,NEXT MOVA,#18HLKP:ADDA,R4;行號和列號值相加和得到鍵值 PUSHACCLK3:LCALLKS1 JNZLK3 POPACC RETKS1:MOVDPTR,#0101H;判鍵子程序MOVA,#00H;全掃描信號MOVX@DPTR,A;發(fā)全掃描信號INCDPTRINCDPTR;指向8155口CMOVXA,@DPTR;讀入列值A(chǔ)NLA,#0FHORLA,#0F0H;高4位取“1”保持低4位CPLA ;取反,無鍵按下則(A)=全“0”RET2、定時掃描法由CPU隔一定時間執(zhí)行鍵盤掃描程序一次。3、中斷掃描法中斷掃描方式原理圖見下圖按鍵時由外部中斷0向CPU中斷申請,CPU開始執(zhí)行鍵盤掃描程序一次,大大提高計算機(jī)的工作效率。4、線反轉(zhuǎn)法(二)LED數(shù)碼管的結(jié)構(gòu)及顯示原理七段LED數(shù)碼顯示器各段碼位的對應(yīng)關(guān)系如下:(a段為最低位,dp點(diǎn)為最高位)LED顯示字形編碼表:(當(dāng)然還能顯示其它一些字母、符號等)單片機(jī)與1位LED數(shù)碼管的連接,有位選線和段選線之分2、動態(tài)顯示的串行接口電路串行口工作于方式0,用了串入并出的移位寄存器74LS1643、動態(tài)顯示及其接口電路目前國內(nèi)的許多單片機(jī)開發(fā)系統(tǒng)和仿真器均采用LED的動態(tài)顯示。以下著重講解并行接口動態(tài)顯示電路及程序設(shè)計。一個典型實(shí)例見下圖,它為常用的并行6位動態(tài)顯示電路,6位LED均連接為共陰顯示方式。74LS07為6位驅(qū)動器,七段LED數(shù)碼管需用2片進(jìn)行驅(qū)動。75452為2位緩沖器/驅(qū)動器,有反相驅(qū)動作用,6位LED需用3片提供位選信號。動態(tài)顯示亮度除與導(dǎo)通電流有關(guān)外,還與點(diǎn)亮?xí)r間占空比例有關(guān)(如位數(shù)多時亮度降低)。用8155的PA口輸出8位字型碼,6位PB口線輸出位選碼。設(shè)顯示緩沖區(qū)為地址30H~35H。用軟件譯碼的方式查表字型碼。讀后面的程序流程圖和相應(yīng)的程序動態(tài)顯示子程序清單如下:ORG3000HDISPLY:MOVA,#03H;設(shè)置8155A、B口均為輸出方式MOVDPTR,#0FD00HMOVX@DPTR,AMOVR0,#30H;顯示緩沖區(qū)地址送R0MOVR2,#20H;位選碼指向最左一位DISPY1:MOVA,@R0;取出要顯示的數(shù)MOVDPTR,#SEGTAB;指向換碼表首址MOVCA,@A+DPTR;取出顯示碼MOVDPTR,#0FD01H;從8155A口輸出顯示碼MOVX@DPTR,AMOVA,R2;從8155B口輸出位選碼INCDPTRMOVX@DPTR,AACALLD1MS;延時1msMOVA,R2JNBACC.0,DISPY2;6位都顯示完了嗎?未完,繼續(xù)顯示RETDISPY2:INCR0;求下一位待顯示的數(shù)的存放地址 MOVA,R2:求下一個位選碼 RRCA MOVR2,A AJMPDISPY1D1MS:MOVR3,#7DH;延時1msDL1:NOPNOP DJNZR3,DL1RETSEGTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DHDB07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H該動態(tài)顯示子程序DISPLY僅是一次掃描而已,欲使字符穩(wěn)定顯示,需不斷連續(xù)調(diào)用該子程序.4、靜態(tài)顯示及其接口電路一個典型實(shí)例見下圖,它為常用的6位BCD碼的靜態(tài)并行顯示電路。(圖中省略了RAM和EPROM的擴(kuò)展)6位LED均連接為共陰顯示方式。74LS144為總線驅(qū)動器,6位數(shù)字顯示公用同一組總線。WR和P2.7同時為低電平時由P0口傳送出數(shù)據(jù)。每位LED配用一個鎖存器74LS377,鎖存待顯示數(shù)據(jù),受控于譯碼器74LS138的輸出。讀圖知6位LED顯示器從左到右的地址為:4000H,4100H,4200H,4300H,4400H,4500H靜態(tài)顯示方式,只有送來新的數(shù)據(jù)時,顯示值才更新。與動態(tài)顯示方式相比,節(jié)省CPU的機(jī)時。讀后面的靜態(tài)顯示程序說明:顯示緩沖區(qū)單元中為壓縮BCD碼數(shù),一個字節(jié)單元中為兩位BCD碼數(shù),需用兩位LED數(shù)碼管顯示。每個377相當(dāng)于擴(kuò)展的一個簡單輸出接口。ORG8000HSIXDPY:MOVR0,#30HMOV33H,#03HMOVDPTR,#4000HLOOP:MOVA,@R0ANLA,#0F0HRRARRARRARRAADDA,#10HMOVCA,@A+PCMOVX@DPTR,AMOVA,@R0ANLA,#0FHINCDPHADDA,#08HMOVCA,@A+PCMOVX@DPTR,AINCR0INC.DPHDJNZ33H,LOOPRETSEGTAB:DB3FH,06H,5BH,4FH,66H,6D,7DH,07HD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 音樂啟蒙班游戲課程設(shè)計
- 自然風(fēng)力游戲課程設(shè)計
- 運(yùn)動副 課程設(shè)計
- 足球課程設(shè)計的思路
- 網(wǎng)絡(luò)流行圖像符號研究-洞察分析
- 銅壓延產(chǎn)品質(zhì)量控制-洞察分析
- 隧道地質(zhì)風(fēng)險防控技術(shù)-洞察分析
- 通信原理matlab實(shí)驗(yàn)課程設(shè)計
- 插齒機(jī)機(jī)械原理課程設(shè)計
- 語言障礙生物標(biāo)記-洞察分析
- 新教材人教版高中物理選擇性必修第二冊全冊各章節(jié)課時練習(xí)題及章末測驗(yàn)含答案解析(安培力洛倫茲力電磁感應(yīng)交變電流等)
- 初級養(yǎng)老護(hù)理員培訓(xùn)全套
- 集中供熱管網(wǎng)系統(tǒng)一次網(wǎng)的調(diào)節(jié)方法
- GB/T 41095-2021機(jī)械振動選擇適當(dāng)?shù)臋C(jī)器振動標(biāo)準(zhǔn)的方法
- MRP、MPS計劃文檔教材
- 甲狀腺疾病護(hù)理查房課件
- 安全安全帶檢查記錄表
- GB∕T 26520-2021 工業(yè)氯化鈣-行業(yè)標(biāo)準(zhǔn)
- 2022年浙江省紹興市中考數(shù)學(xué)試題及參考答案
- Listen-to-this-3-英語高級聽力-(整理版)
- 生活垃圾焚燒處理建設(shè)項(xiàng)目評價導(dǎo)則(2022)
評論
0/150
提交評論