微機(jī)原理-p第11章鍵盤技術(shù)和LED_第1頁
微機(jī)原理-p第11章鍵盤技術(shù)和LED_第2頁
微機(jī)原理-p第11章鍵盤技術(shù)和LED_第3頁
微機(jī)原理-p第11章鍵盤技術(shù)和LED_第4頁
微機(jī)原理-p第11章鍵盤技術(shù)和LED_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

本章重點(diǎn)鍵盤的基本工作原理,包括矩陣結(jié)構(gòu)、行掃描法和行反轉(zhuǎn)法識別原理解決抖動(dòng)和重鍵的連鎖法和巡回法的原理LED顯示原理和多位顯示原理微型機(jī)系統(tǒng)中鍵盤子系統(tǒng)的工作原理擴(kuò)展鍵盤掃描電路的工作原理主機(jī)鍵盤接口的功能和構(gòu)成09H鍵盤中斷處理程序?qū)Ω黝愭I的處理16H鍵盤中斷處理程序的功能鍵盤緩沖區(qū)的工作機(jī)制27011.1鍵盤的基本工作原理370鍵盤矩陣鍵的識別抖動(dòng)和重鍵問題的解決11.1.1鍵盤矩陣最簡單的鍵盤結(jié)構(gòu)470鍵盤的矩陣式結(jié)構(gòu)57067011.1.2

鍵的識別識別閉合鍵的方法行掃描法行反轉(zhuǎn)法7701.行掃描法的原理基本原理:分行掃描檢查是否有鍵按下若有,確定哪個(gè)鍵被按下行線與列線分別接到兩個(gè)并行端口的示意圖870判斷是否有按鍵WAIT:列值MOV

AL,00HMOV

DX,OUTPORTOUT

DX,AL;往所有行線上輸出低電平MOV

DX,INPORTINANDCMPJZAL,DX

;AL,0FFHAL,0FFHWAIT;是否有列線為低電平;否,則循環(huán)等待;是,則延遲去抖動(dòng)DONE:CALL

DELAY…970判斷哪一個(gè)鍵被按下的流程10701170掃描法判斷閉合鍵的程序:;鍵號初值為00FEH

;送掃描初值8

;計(jì)數(shù)值為行數(shù)AL,

CLROWPORT,AL;掃描一行1AL;修改掃描值COLPORT0FFH

;讀進(jìn)列值,并判別是否有哪條列線接地;有列線接地,則轉(zhuǎn)FCOLPROG:

MOV

BL,0MOV

CL,MOV

DL,FROW:

MOVOUTROL

AL,MOV

CL,IN

AL,CMP

AL,JNZ

FCOLMOV

AL,ADD

AL,MOV

BL,DEC

DLJNZ

FROWJMP

DONEAL,1PROCEBL8;如沒有列線接地,則使鍵號=鍵號+列數(shù)/行AL;是否各行都掃完;未掃完,則掃下一行;已掃完,則轉(zhuǎn)DONE;如此列接地,則轉(zhuǎn)PROCEBLFCOL:

RCRJNCINCJMPPROCE:DONE:FCOL;如未找到接地的列線,則轉(zhuǎn)FCOL繼續(xù)尋找;鍵命令處理程序;后續(xù)處理程序12701.行線、列線分別接并行口行線輸出0,列線輸入x列線輸出讀得的值x,行線輸入yyx組合代表按下的鍵查表法識別按鍵重鍵問題2.行反轉(zhuǎn)法的原理行反轉(zhuǎn)法的工作示意圖(a)行線輸出,列線輸入(b)列線輸出,行13線輸入70行反轉(zhuǎn)法的鍵盤連接1470行反轉(zhuǎn)法的流程15701670ST:

MOV

AL,82HOUT

PORT1,AL;PORT1是8255A的控制口地址,設(shè)控制字,A口為輸出,B為輸入WAIT1:MOVAL,0OUTPORTA,AL;往端口A輸出全0INAL,PORTB;輸入列值A(chǔ)NDAL,0FFHCMPAL,0FFH;看是否有鍵閉合JZWAIT1;如無閉合鍵,則等待PUSHAXPUSHAX;保留列值CALLDELAY;延遲20msMOVAL,90HOUTPORT1,AL;將8255A的A口設(shè)置為輸入,B口設(shè)置為輸出POPAXOUTPORTB,AL;將讀得的列值輸出到端口BINAL,PORTA

;讀進(jìn)行值POPBXMOVAH,BL

;使AH中為列值,而AL中為行值MOVSI,TABLE+3FH;取鍵碼表末地址MOVCX,40H

;CX作為鍵計(jì)數(shù)器LOOP1:CMPAX,〔SI+0〕;行值列值與鍵碼表比較JZKEYPRO;如相等,則轉(zhuǎn)鍵命令處理DECSIDECSI;修改表指針和鍵計(jì)數(shù)器DECCXJNZLOOP1;未比較完,則再比JMPKEYPRO:ST…;如已比較完,但沒有在鍵碼表中找到相同碼,則重新開始找;鍵命令處理TABLE:DW0FEFEH

;鍵碼表開始,K0鍵DW0FEFDH;K1鍵DW0FEFBH;K2鍵DW0FEF7H;K3鍵7011.1.3抖動(dòng)和重鍵問題的解決抖動(dòng):用延遲來解決重鍵:A鍵先按后放,B鍵后按先放A鍵先按先放,B鍵后按后放A鍵、B鍵同時(shí)按下,但A鍵先放1870重鍵識別方法連鎖法巡回法連鎖法在所有的鍵后,只承認(rèn)此后閉合的第一個(gè)鍵,此鍵閉合時(shí)按下的其他鍵均不作識別一個(gè)鍵按下,識別A識別A舍棄1970連鎖法程序流程圖在所有的鍵后,只承認(rèn)此后閉合的第一個(gè)鍵2070巡回法后,等前面所識別的鍵就可對其他鍵識別檢測一個(gè)鍵按下,識別a.

識別A鍵b1.

A,B同一行,識別Ab2.A,B不 ,識別A,Bc1.B處于小行號,識別Bc2.B初始大行號,識別A,B2170巡回法的流程圖后,等前面所識別的鍵就可對其他鍵識別2270237011.2

LED數(shù)字顯示LED的工作原理

多位顯示問題11.2.1

LED的工作原理七段式LED顯示部件(a)典型的七段式LED器件

(b)共陽極LED

(c)共陰極LED24702570共陽級結(jié)構(gòu):數(shù)碼顯示端低電平有效共陰極結(jié)構(gòu):數(shù)碼顯示端高電平有效LED的外部連接電路(共陰極)2670數(shù)據(jù)用LED顯示的譯碼方法:譯碼譯碼2770用完成段譯碼的示意(共陽極)2870譯碼舉例(顯示1位數(shù)字)LEDADD:DB40H;0的顯示代碼DB79H;1的顯示代碼DB…24H;2的顯示代碼DISP:MOV BX,OFFSETDATAMOV

AL,[BX]

;要顯示的數(shù)字MOV BX,OFFSET

LEDADD;代碼表首址XLAT

;將數(shù)字轉(zhuǎn)換成顯示代碼MOV

ORTOUT

DX,AL

;將顯示代碼送顯示,…297011.2.2多位顯示問題的解決硬件:公用的驅(qū)動(dòng)電路:掃描方法3070多位顯示的掃描和驅(qū)動(dòng)電路3170LED32708位顯示的流程圖337011.3鍵盤和LED設(shè)計(jì)實(shí)例設(shè)計(jì)要求:連接7×8=56鍵的鍵盤連接6個(gè)LED設(shè)計(jì)1個(gè)定時(shí)裝置,顯示分和秒按下某些特定鍵時(shí),實(shí)現(xiàn)指定的功能計(jì)時(shí)器的顯示部分3470計(jì)時(shí)器的鍵盤部分35703670本系統(tǒng)直接使用的端口地址計(jì)數(shù)器8253:控制口地址

計(jì)數(shù)器0的地址計(jì)數(shù)器1的地址計(jì)數(shù)器2的地址00D6H00D0H00D2H00D4H3770中斷控制器8259A:ICW1、OCW2、OCW3寫入地址ICW2、ICW3、ICW4、OCW1寫入地址OCW1的讀出地址并行接口8255A:控制口地址

A端口地址

B端口地址

C端口地址00C0H00C2H00C2H00E6H00E0H00E2H00E4H計(jì)時(shí)器

的兩個(gè)主要部分:顯示程序鍵盤掃描程序38703970設(shè)計(jì)方案將鍵盤掃描程序、鍵命令的識別和處理程序作為主程序?qū)⒂?jì)時(shí)程序和顯示程序作為中斷服務(wù)程序計(jì)時(shí)器主程序的流程圖4070計(jì)時(shí)器中斷處理程序的流程圖417011.4微型機(jī)的鍵盤子系統(tǒng)兩部分:鍵盤本身主機(jī)的鍵盤接口鍵盤子系統(tǒng)的示意圖4270437011.4.1擴(kuò)展鍵盤和鍵盤控制器擴(kuò)展鍵盤、鍵盤掃描碼和系統(tǒng)掃描碼

擴(kuò)展鍵盤的工作原理擴(kuò)展鍵盤的連接信號1.擴(kuò)展鍵盤、鍵盤掃描碼和系統(tǒng)掃描碼擴(kuò)展鍵盤(

有單片機(jī))鍵盤掃描碼(簡稱“掃描碼”)接通掃描碼斷開掃描碼83鍵盤接通掃描碼=位置碼斷開掃描碼=接通掃描碼+80H84/101/102/104接通掃描碼與位置碼不同,另一種編碼斷開掃描碼,兩字節(jié),前一個(gè):F0H,后一個(gè):接通掃描碼掃描碼送給計(jì)算機(jī):先接通后斷開掃描碼(3)系統(tǒng)掃描碼(鍵盤掃描碼轉(zhuǎn)換為系統(tǒng)掃描碼,以兼容)83鍵盤已有的鍵,相同83鍵盤擴(kuò)展的鍵,擴(kuò)展編碼44702.擴(kuò)展鍵盤的工作原理×7016行8列的鍵盤掃描電路46703.擴(kuò)展鍵盤的連接信號鍵盤通過五芯插頭和主機(jī)板上的鍵盤接口相連鍵盤和主機(jī)串行傳輸鍵盤不直接接電源477011.4.2主機(jī)的鍵盤接口電路主機(jī)鍵盤接口電路的功能:接收鍵盤的串行掃描碼將串行掃描碼轉(zhuǎn)為并行掃描碼,再轉(zhuǎn)為系統(tǒng)掃描碼向CPU發(fā)中斷請求接收CPU的鍵盤自檢命令或復(fù)位命令,并傳輸?shù)芥I盤4870主機(jī)的鍵盤接口(早期)鍵盤接口串并轉(zhuǎn)換74LS322825580868259主機(jī)的鍵盤接口497011.5鍵盤中斷處理程序09H鍵盤中斷處理程序有鍵按下時(shí),發(fā)生中斷,執(zhí)行09H中斷服務(wù)處理程序,處理按鍵,把鍵碼

到鍵盤緩沖區(qū)中16H鍵盤中斷處理程序應(yīng)用程序或操作系統(tǒng)調(diào)用int

16h507009H鍵盤中斷處理程序鍵的分類及 和處理->detailed特殊鍵設(shè)置標(biāo)志位(右shift,左shift…)->第一類ASCII碼鍵0-127,低ASCII,高系統(tǒng)掃描碼第二類ASCII碼鍵128-255,低ASCII,高0不能用ASCII碼表示的組合鍵和功能鍵組合/功能鍵,低0,高擴(kuò)展碼特殊命令鍵(ctrl+a

el…)執(zhí)行命令517052701.對特殊鍵設(shè)置標(biāo)志位09H中斷處理程序?qū)μ厥怄I(在系統(tǒng)RAM中的標(biāo)志單元)設(shè)置如下:D0右Shift鍵按下為1,否則為0D1左Shift鍵按下為1,否則為0D2Ctrl鍵按下為1,否則為0D3Alt鍵按下為1,否則為0D4ScrollLock鍵按奇數(shù)次為1,否則為0D5Num

Lock鍵按奇數(shù)次為1,否則為0D6Caps

Lock鍵按奇數(shù)次為1,否則為0D7Ins鍵按奇數(shù)次為1,否則為02.對第一類ASCII碼鍵第一類鍵——ASCII碼0~127處理方法:將系統(tǒng)掃描碼轉(zhuǎn)換為ASCII碼低位字節(jié)為ASCII碼,

字節(jié)為系統(tǒng)掃描碼53703.對第二類ASCII碼鍵第二類鍵——對應(yīng)ASCII碼128~255處理方法:直接將數(shù)字作為ASCII碼低位字節(jié)為ASCII碼,

字節(jié)為054704.對于不能用ASCII碼表示的組合鍵和功能鍵第三類鍵——組合鍵和功能鍵處理方法:用0作為低位字節(jié),擴(kuò)展碼作為字節(jié)ctrl+home,

(上、下、左、右)箭頭,Del55705.對于特殊命令鍵(1)第四類鍵——特殊命令鍵ctrl+a

elctrl+breakPause,

ctrl+numlockprint

screen(2)處理方法:不形成代碼,而直接完成相應(yīng)操作567016H鍵盤中斷處理程序16H中斷處理程序的功能調(diào)用5770例1:

鍵mov

ah,0int

16h…;處理AH(系統(tǒng)掃描碼或擴(kuò)展碼),AL(ASCII碼)5870,則例2:檢查是否有鍵按下,處理按下的鍵mov

ah,1int

16hjzkey_pressed;…;沒有鍵按下key_pressed:mov

ah,0int

16h…;處理AH(系統(tǒng)掃描碼或擴(kuò)展碼),AL(ASCII碼)597011.6鍵盤緩沖區(qū)32字節(jié)的鍵盤緩沖區(qū)及指針6070首指針尾指針I(yè)NT09HINT

16H鍵盤緩沖區(qū)主機(jī)的鍵盤接口應(yīng)用程序6170627011.8.1

鼠標(biāo)的工作原理按鼠標(biāo)鍵分類雙鍵式三鍵式按照工作原理機(jī)械式光電式光機(jī)式637011.8.1

鼠標(biāo)的工作原理鼠標(biāo)與主機(jī)的連接方式有三種:用RS-232-C串行接口用USB接口用PS/2接口11.8.1

鼠標(biāo)的工作原理鼠標(biāo)的性能指標(biāo)和數(shù)據(jù)格式圖11.15

鼠標(biāo)3字節(jié)數(shù)據(jù)組的格式6470鼠標(biāo)功能中斷INT

33H,不同的功能號對應(yīng)不同功能。00H—初始化鼠標(biāo)01H—顯示鼠標(biāo)指針02H—隱藏鼠標(biāo)指針03H—

鼠標(biāo)位置及其按鈕狀態(tài)04H—設(shè)置鼠標(biāo)指針位置05H—

鼠標(biāo)按鍵信息06H

鼠標(biāo)按鈕 信息07H—設(shè)置鼠標(biāo)水平邊界08H—設(shè)置鼠標(biāo)垂直邊界09H—設(shè)置圖形鼠標(biāo)形狀0AH—設(shè)置本文鼠標(biāo)形狀0BH—

鼠標(biāo)移動(dòng)計(jì)數(shù)0CH—為鼠標(biāo)事件設(shè)置處理程序0DH—允許光筆仿真0EH—關(guān)閉光筆仿真0FH—設(shè)置鼠標(biāo)計(jì)數(shù)與象素比10H—設(shè)置鼠標(biāo)指針隱

域13H—設(shè)置倍速的閾值14H—替換鼠標(biāo)事件中斷15H—

鼠標(biāo)驅(qū)動(dòng)器狀態(tài)的緩沖區(qū)大小16H—

鼠標(biāo)驅(qū)動(dòng)器狀態(tài)17H—重裝鼠標(biāo)驅(qū)動(dòng)器狀態(tài)18H—為鼠標(biāo)事件設(shè)置替換處理程序19H—

替換處理程序的地址1AH—設(shè)置鼠標(biāo)的靈敏度1BH

—鼠標(biāo)的靈敏度1CH—設(shè)置鼠標(biāo)中斷速率1DH—為鼠標(biāo)指針選擇顯示頁1EH

—鼠標(biāo)指針的顯示頁1FH—

鼠標(biāo)驅(qū)動(dòng)程序20H—啟動(dòng)鼠標(biāo)驅(qū)動(dòng)程序21H—鼠標(biāo)驅(qū)動(dòng)程序復(fù)位22H—設(shè)置鼠標(biāo)驅(qū)動(dòng)程序信息語言23H

—24H

—25H

—26H

—語種鼠標(biāo)信息鼠標(biāo)驅(qū)動(dòng)程序信息最大有效坐標(biāo)6570667011.8.2

鼠標(biāo)的驅(qū)動(dòng)程序及其功能調(diào)用例1

AX=00,鼠標(biāo)檢測和初始化如下指令MOV

AX,00INT

33H677011.8.2

鼠標(biāo)的驅(qū)動(dòng)程序及其功能調(diào)用例2

AX=01,打開鼠標(biāo)光標(biāo)如下指令MO

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論