第10章 基本人機(jī)交互設(shè)備接口_第1頁
第10章 基本人機(jī)交互設(shè)備接口_第2頁
第10章 基本人機(jī)交互設(shè)備接口_第3頁
第10章 基本人機(jī)交互設(shè)備接口_第4頁
第10章 基本人機(jī)交互設(shè)備接口_第5頁
已閱讀5頁,還剩61頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2023/2/1計算機(jī)接口技術(shù)1第10章人機(jī)交互設(shè)備接口本章內(nèi)容基本人機(jī)交互設(shè)備鍵盤、LED顯示器、打印機(jī)鍵盤/LED顯示器接口電路的解決方案LED顯示器接口設(shè)計矩陣鍵盤接口設(shè)計并行打印機(jī)接口設(shè)計2023/2/1計算機(jī)接口技術(shù)210.1人機(jī)交互設(shè)備

人機(jī)交互設(shè)備:人和計算機(jī)之間建立聯(lián)系、交流信息的輸入/輸出設(shè)備,是計算機(jī)系統(tǒng)的基本配置。10.2鍵盤10.2.1鍵盤的類型鍵盤是微型計算機(jī)系統(tǒng)中最基本的人機(jī)對話輸入設(shè)備。鍵盤按鍵,有機(jī)械式、電容式、導(dǎo)電橡膠式、薄膜式等多種,但不管何種形式,其作用都是一個使電路接通與斷開的開關(guān)。鍵盤的結(jié)構(gòu)有線性鍵盤和矩陣鍵盤兩種形式。2023/2/1計算機(jī)接口技術(shù)310.2.2線性鍵盤的工作原理與接口電路1.線性鍵盤的工作原理線性鍵盤由若干個獨立的按鍵組成,每個按鍵的兩端,一端接地,另一端通過電阻接+5V電源,并與接口的數(shù)據(jù)線直接連接,如圖10.1所示。當(dāng)無鍵按下時,所有數(shù)據(jù)線的邏輯電平都是高電平,為全1(FFH),即全1表示無鍵按下;當(dāng)其中任意一鍵按下時,它所對應(yīng)的數(shù)據(jù)線接地,其邏輯電平就變成低電平,即邏輯0表示有按鍵按下。2.線性鍵盤的接口電路線性鍵盤的接口是并行接口,采用通用并行接口芯片82C55A與鍵盤開關(guān)連接,如圖10.1所示。2023/2/1計算機(jī)接口技術(shù)42023/2/1計算機(jī)接口技術(shù)53.線性鍵盤接口程序線性鍵盤接口程序是配合線性鍵盤實現(xiàn)鍵盤功能的組成部分,其主要作用有兩點,一是判斷是否有鍵按下,通過查詢接口輸入數(shù)據(jù)是否為全1。若是全1,無鍵按下;若不是全1,則有鍵按下。二是確定按下的是哪一個鍵,根據(jù)哪一個數(shù)據(jù)位是邏輯0,則與此位數(shù)據(jù)線相連的鍵被按下。至于每個按鍵的功能,可由用戶定義,以便當(dāng)按下某個鍵時,就可轉(zhuǎn)去執(zhí)行相應(yīng)的操作。例如,在上圖中要求當(dāng)按下S0鍵時報警,按下S1鍵時解除報警,按下S2鍵時退出。線性鍵盤尋鍵程序流程如圖10.2所示。2023/2/1計算機(jī)接口技術(shù)6圖10.2線性鍵盤的程序流程2023/2/1計算機(jī)接口技術(shù)7線性鍵盤的匯編語言程序段

MOVDX,303H ;初始化82C55A MOVAL,10010000B

;82C55A方式命令 OUTDX,ALKB:MOVDX,300H;查3個鍵(S0S1S2)是否鍵按下

INAL,DX;讀鍵狀態(tài)(閉合/斷開狀態(tài)) ANDAL,07H;查低3位

CMPAL,07H

;查有無鍵按下

JZKB;無鍵按下,返回

CALLDELAY1

;有鍵按下,延時去抖

MOVDX,300H;再讀鍵狀態(tài)

INAL,DXANDAL,07H;查低3位

CMPAL,07H;再查有無鍵按下

JZKB ;無鍵按下,返回2023/2/1計算機(jī)接口技術(shù)8TESTAL,01H

;有鍵按下,是否S0鍵

JZBJ ;是,轉(zhuǎn)報警子程

TESTAL,02H ;是否S1鍵

JZJBJ ;是,轉(zhuǎn)解除報警

TESTAL,03H ;是否S2鍵

JZSTP ;是,停止,退出

JMPKB ;不是,返回DELAY: 延時子程序(略) BJ: 報警子程序(略)JBJ: 解除報警子程序(略)STP: MOVAX,4C00H ;退出

INT21H2023/2/1計算機(jī)接口技術(shù)9線性鍵盤C語言程序段如下 unsignedchartmp;outportb(0x303,0x90); //初始化82C55do{ tmp=inportb(0x300); //讀鍵狀態(tài)

if(tmp&0x07!=0x07){ //查低3位,判斷有無鍵按下

delay(10); //延時去抖

tmp=inportb(0x300); //再讀鍵狀態(tài)

if(tmp&0x07!=0x07){ //查低3位,查有無鍵按下

if(tmp&0x01==0x00) //是否S0鍵

BJ(); //是,轉(zhuǎn)報警子程

if(tmp&0x02==0x00) //是否S1鍵

JBJ(); //是,轉(zhuǎn)解除報警

if(tmp&0x03==0x00) //是否S2鍵

STP(); //是,停止,退出

} }}while(!kbhit());2023/2/1計算機(jī)接口技術(shù)1010.2.3矩陣鍵盤工作的動態(tài)掃描技術(shù)1.矩陣鍵盤的工作原理矩陣鍵盤的結(jié)構(gòu)是將按鍵排成n行m列的矩陣形式,并且在行線或列線上通過電阻接高電平(+5V)。按鍵的行線與列線交叉點互不相通,是通過按鍵來接通的。下面以4×4鍵盤為例說明矩陣鍵盤的工作原理,如圖10.3所示。

圖10.3矩陣鍵盤的結(jié)構(gòu)及接口(列掃描)2023/2/1計算機(jī)接口技術(shù)11

矩陣鍵盤與線性鍵盤一樣,也是首先確定是否有按鍵按下,然后再識別按下的是哪一個鍵。這個工作是采用一種掃描的方法進(jìn)行,掃描分逐行掃描(行掃描)和逐列掃描(列掃描)兩種方式,稱為動態(tài)掃描技術(shù)。行掃描方式的特點是,矩陣鍵盤的列線一頭接輸入端口,另一頭固定接高電平(+5V),矩陣鍵盤的行線接輸出端口,輪流對列線輸出低電平(0V),即對列線進(jìn)行逐列掃描,然后從列線讀取掃描的結(jié)果。列掃描方式的特點是,其行線與列線的連接及方向剛好與行掃描方式的相反,即行線一頭接輸入端口,另一頭固定接高電平(+5V),列線接輸出端口,輪流對行線輸出低電平(0V),即對行線進(jìn)行逐行掃描然后從行線讀取掃描的結(jié)果。

2.矩陣鍵盤的接口電路矩陣鍵盤的接口電路如圖10.3所示。它是采用列掃描方式的并行接口電路,其工作過程分析如下:2023/2/1計算機(jī)接口技術(shù)12圖10.3中,PA0~PA3與0列~3列連接,PB0~PB3與0行~3行連接。采用列掃描方式找出被按下的鍵在矩陣中的位置,其過程是:先從0列開始,通過PA端口,向0列輸出0(PA0=0),向其他列輸出1(PA1=PA2=PA3=1),然后從PB端口讀入,檢測PB0~PB3的電平:若PB0=0,表示是S1鍵按下;若PB1=0,表示是S5鍵按下;...;若PB03=0,表示是S13鍵按下。如果PB0~PB3的電平都為1,則說明這一列沒有鍵按下,就對第二列進(jìn)行掃描,于是向1列輸出0,向其它列輸出1,再檢測PB0~PB3的電平。

依次逐列檢測,直到找出被按下的鍵為止。2023/2/1計算機(jī)接口技術(shù)1310.3LED顯示器

10.3.1LED顯示器工作原理7段數(shù)碼顯示器是將多個LED管組成一定字形的顯示器,因此也可以叫做字形顯示器,有共陰極和共陽極兩種結(jié)構(gòu),如圖10.4所示。共陰極:陰極連在一起,并接地,根據(jù)二極管導(dǎo)通的條件,分別對每只LED管的陽極加不同的電平使其導(dǎo)通(點亮)或截止(熄滅),陽極加高電平點亮,加低電平熄滅,如圖10.4所示。共陽極:陽極連在一起,接高電平,對每只陰極加不同的電平,陰極加低電平點亮,加高電平熄滅。2023/2/1計算機(jī)接口技術(shù)14圖10.4中的電阻是限流電阻,以防發(fā)光二極管燒毀,其阻值一般取為使流經(jīng)LED管的電流在10~20mA。2023/2/1計算機(jī)接口技術(shù)1510.3.2LED顯示器的字形碼7段數(shù)碼顯示器實際為8段,另一段用來顯示小數(shù)點P。字形碼格式如圖10.5所示。由字形碼構(gòu)成的LED顯示器字符如表10.1所示。其中包括共陰極與共陽極兩種不同顯示器所顯示的字符與字形碼,表中的兩種字形碼雖然不同,但所表示的字符則相同。2023/2/1計算機(jī)接口技術(shù)1610.3.3LED顯示器動態(tài)顯示的掃描方式LED顯示器采用掃描的方法使多位顯示器逐位輪流循環(huán)顯示,為此,首先把各位顯示器的8根段線并聯(lián)在一起,作為一組“段控”信號線,同時給每位顯示器分配1根“位控”信號線。在接口電路中設(shè)置兩個端口,一個用于發(fā)送“位控”信號,控制顯示器的哪一位顯示,即顯示哪一位;另一個用于發(fā)送“段控”信號,控制顯示器發(fā)光二極管的那些段點亮,即顯示字形碼。2023/2/1計算機(jī)接口技術(shù)17掃描過程:“段控”端口發(fā)出一個字形碼,送到每個顯示器的段線上,“位控”端口發(fā)出一個控制信號,指定某一位顯示器顯示,該位顯示器就點亮,并持續(xù)1~5ms,然后熄滅所有的顯示器。依次從“段控”端口發(fā)字形碼信息,再從“位控”端口發(fā)位控信號,去點亮某一位顯示器并持續(xù)一段時間,然后熄滅。從第1位到最末位把要顯示的不同字符顯示一遍,即為一個掃描周期。當(dāng)掃描周期符合視覺暫留效應(yīng)的要求時,人們就覺察不出字符的變動與閃爍,而感覺每位顯示器都在同時顯示。顯示器“位控”信號線相當(dāng)于鍵盤的行掃描線。2023/2/1計算機(jī)接口技術(shù)1810.4鍵盤/LED接口電路解決方案

方案采用專用接口芯片構(gòu)成外置式的鍵盤/LED接口。

82C79A是雙功能專用接口芯片,兼有鍵盤輸入接口和字符顯示器輸出接口兩種用途。作為鍵盤輸入接口時,掃描方式,可連接64(8×8)個鍵的矩陣鍵盤,經(jīng)擴(kuò)充可128(8×8×2)個鍵,并具有自動去抖動功能。作為字符顯示器輸出接口時,可連接16個7段數(shù)碼顯示器。數(shù)碼顯示器,采用動態(tài)掃描方式,實現(xiàn)動態(tài)顯示。10.4.182C79A的外部特性82C79A芯片是一種具有40條引腳的雙列直插式芯片,如圖10.6所示。由于82C79A是雙功能接口,可以同時為兩種不同外部設(shè)備的接口提供支持,因此所設(shè)置的外部引腳信號比較多,按功能可分為面向CPU、面向鍵盤和面向顯示器3組,如表10.2所示。2023/2/1計算機(jī)接口技術(shù)19圖10.682C79A芯片引腳功能及引腳信號分類2023/2/1計算機(jī)接口技術(shù)202023/2/1計算機(jī)接口技術(shù)2110.4.282C79A的編程模型1、寄存器功能82C79A內(nèi)部寄存器分為共用寄存器和鍵盤專用及顯示器專用的寄存器3種,分別介紹如下。(1)顯示器/鍵盤共用寄存器共用模塊主要是掃描計數(shù)器,其輸出可同時作為鍵盤的行掃描和顯示器的位掃描(“位控”信號),掃描方式分編碼掃描和譯碼掃描兩種,由編程命令選定。編碼掃描:4位掃描線輸出線SL0~SL3,由外部譯碼器譯碼產(chǎn)生16根掃描信號線,供鍵盤和顯示器使用。故編碼掃描方式能夠掃描16×8的矩陣鍵盤和16位數(shù)碼顯示器。譯碼掃描:由內(nèi)部譯碼器譯碼后,產(chǎn)生的4根掃描線SL0~SL3,直接作為鍵盤和顯示器掃描信號??梢姡g碼掃描方式只能掃描4×8的矩陣鍵盤和4位數(shù)碼顯示器,并且不需要設(shè)置外部譯碼器。2023/2/1計算機(jī)接口技術(shù)22(2)鍵盤專用寄存器鍵盤接口模塊包括返回緩沖器、FIFORAM及狀態(tài)寄存器。返回緩沖器作為鍵盤接口芯片實現(xiàn)行掃描方式。在行掃描時,返回緩沖器用于鎖存來自RL0~RL2的鍵盤列線返回值,即按鍵的列值。另外,行掃描時所搜尋到閉合鍵所在的按鍵行值SL0~SL2,兩者合起來就形成鍵盤上按鍵的行號、列號編碼。如果在加上用于鍵功能擴(kuò)展的兩位CTRL、SHIFT一起組成一個完整的鍵盤按鍵數(shù)據(jù)。鍵盤按鍵的數(shù)據(jù)格式如表10.3所示。2023/2/1計算機(jī)接口技術(shù)23表10.3中各位的含義:SL0~SL2是按鍵的行編碼,由行掃描計數(shù)器的值確定;RL0~RL2是按鍵的列編碼,由返回緩沖器的值確定。從6位行列編碼可知,82C79A支持64個鍵的鍵盤矩陣。再加上CTRL和SHIFT兩位附加按鍵參加編碼,可以擴(kuò)展到128個鍵。2023/2/1計算機(jī)接口技術(shù)24FIFORAM及狀態(tài)寄存器FIFORAM是一個8×8的先進(jìn)先出片內(nèi)存儲器,用于暫存從鍵盤輸入的按鍵數(shù)據(jù),供CPU讀取。

為了報告FIFORAM中有無數(shù)據(jù)和空、滿等的狀態(tài),設(shè)置FIFORAM狀態(tài)寄存器。只要FIFORAM存儲器有數(shù)據(jù)未取走,狀態(tài)寄存器就產(chǎn)生IRQ信號請求中斷,要求CPU讀取數(shù)據(jù)。(3)用于LED顯示器的寄存器LED顯示器接口模塊包括顯示存儲器RAM、顯示字符寄存器和顯示地址寄存器。顯示存儲器RAM顯示存儲器RAM用來存儲顯示數(shù)據(jù),容量為16×8位,對應(yīng)16個數(shù)碼顯示器。顯示存儲器內(nèi)容在顯示過程中保持不變。2023/2/1計算機(jī)接口技術(shù)25

顯示字符寄存器

顯示字符寄存器用于存放將要顯示的字符的字形碼。顯示字符寄存器的內(nèi)容是動態(tài)變化的,在顯示過程中它與顯示掃描配合,輪流從顯示RAM中讀出要顯示的信息并依次送到被選中的顯示器,循環(huán)不斷地刷新顯示字符,使顯示器件呈現(xiàn)穩(wěn)定的顯示字符。

顯示字符寄存器分為A、B兩組OUTA0~3和OUTB0~3,構(gòu)成一個8段的字形碼,作為“段控”信號送到每位顯示器。2023/2/1計算機(jī)接口技術(shù)26顯示地址寄存器顯示地址寄存器用于存放讀/寫顯示存儲器RAM的地址指針,指出顯示字符從哪一位開始以及每次讀出或?qū)懭胫蟮刂肥欠褡詣蛹?。(4)寄存器端口地址82C79A只分配了兩個端口地址,一個數(shù)據(jù)端口(30CH),一個命令/狀態(tài)端口(30DH)。但它有8個命令字,因此出現(xiàn)端口地址共享的問題。為此,采用在命令字中加特征位的方法識別共享端口中的命令字。2023/2/1計算機(jī)接口技術(shù)272.編程命令與狀態(tài)字82C79A芯片可執(zhí)行的命令共有8條,命令字中的0,1,2,4號命令(帶*號)是必須使用的,它們用于初始化。其中,0號設(shè)置鍵盤及顯示方式,1號設(shè)置掃描頻率,2號指定讀FIFORAM,4號指定寫顯示存儲器RAM。

而初始化后的實際輸入/輸出操作是從(向)82C79A的數(shù)據(jù)口讀(寫)數(shù)據(jù)來實現(xiàn)的。2023/2/1計算機(jī)接口技術(shù)28命令字的一般格式如表10.4所示。其中,高3位為特征位,產(chǎn)生8種編碼對應(yīng)著8個不同的命令字。低5位是命令參數(shù)位,表示不同命令字的含義。(注:標(biāo)有“×”的位無用)2023/2/1計算機(jī)接口技術(shù)29(1)0號命令:設(shè)置鍵盤及顯示器工作方式000:命令特征碼。命令分3個字段,K0,K2K1,DD?!馣0:用來設(shè)定掃描方式,為鍵盤和顯示器共用。其含義:K0=0,為編碼掃描;K0=1,為譯碼掃描。●K2K1:用來設(shè)定鍵盤輸入方式。有4種鍵盤輸入方式,如表10.5所示。2023/2/1計算機(jī)接口技術(shù)30表10.5中,雙鍵鎖定,N鍵輪回,是處理多鍵同時按下的方式。雙鍵鎖定:兩個鍵同時按下時,只把后釋放的鍵當(dāng)作有效鍵N鍵輪回:多個同時按下時,鍵盤掃描能根據(jù)它們被發(fā)現(xiàn)的順序依次將相應(yīng)鍵盤數(shù)據(jù)送入FIFORAM中●DD:用來設(shè)定顯示輸出方式。有4種顯示輸出方式,如表10.6所示。2023/2/1計算機(jī)接口技術(shù)31在表10.6中,左進(jìn)方式是指顯示字符從最左一位(最高位)開始,逐個向右順序輸出,左進(jìn)方式也是手機(jī)撥號的顯示方式;右進(jìn)方式是指顯示字符從最右一位開始,最高位從右邊進(jìn)入,以后逐個左移。右進(jìn)方式也是計算器的顯示方式。例如,要求掃描鍵盤輸入,雙鍵鎖定;8個字符顯示,右進(jìn)方式;鍵盤和LED顯示器的掃描方式為編碼掃描,則82C79A的工作方式命令為00010000B。2023/2/1計算機(jī)接口技術(shù)32(2)1號命令:設(shè)置掃描頻率001:命令特征碼。命令包含5個有效位PPPPP。●PPPPP:用來設(shè)定對外部輸入CLK的分頻系數(shù)N(N值可為2~31),以便獲得82C79A內(nèi)部要求的100kHz的掃描頻率。PPPPP分頻系數(shù)的5位二進(jìn)制數(shù)。例如,外部提供的時鐘LCK為2.5MHz,要求產(chǎn)生100kHz的掃描頻率,則設(shè)置掃描頻率的命令為00111001B。(3)2號命令:讀FIFORAM

010:命令特征碼。命令分2個字段,A2~A0,AI。●A2~A0:用來指定讀取鍵盤FIFORAM中字符的起始地址,A2~A0可有8種編碼,以指定FIFORAM中的8個地址單元任意一個作為讀取的起始地址。2023/2/1計算機(jī)接口技術(shù)33●AI:自動地址增量標(biāo)志位。當(dāng)AI=1時,每次讀出FIFORAM后,地址自動加1指向下一存儲單元;當(dāng)AI=0時,讀出后地址不變(即不自動加1,但可由人工改變地址)。

需要特別指出的是,該命令并不是實際從FIFORAM中讀取數(shù)據(jù),僅僅指定是讀取鍵盤的FIFORAM,而不是讀取顯示器RAM,因此,若要實現(xiàn)讀鍵盤的數(shù)據(jù),還必須接著在該命令后面從數(shù)據(jù)端口讀數(shù)。2023/2/1計算機(jī)接口技術(shù)34例如,要求從鍵盤FIFORAM讀1個字節(jié)數(shù)據(jù),從0位開始讀取,讀數(shù)據(jù)后地址不自動加1,其程序段為如下。MOVDX,30DH;82C79A命令端口MOVAL,01000000B

;2號命令,讀FIFORAMOUTDX,ALMOVDX,30CH;82C79A數(shù)據(jù)端口INAL,DX

;從FIFORAM讀1個字節(jié)數(shù)據(jù)2023/2/1計算機(jī)接口技術(shù)35(4)4號命令:寫顯示RAM

100:命令特征碼。命令字分2個字段,A0~A3,AI?!馎0~A3:用來指定寫顯示RAM中字符的起始地址,A0~A3可有16種編碼,以指定顯示RAM中的16個地址單元任意一個作為寫的起始地址。●AI:自動地址增量標(biāo)志。當(dāng)AI=1時,每次寫后地址自動增1,當(dāng)AI=0時,寫后地址不變。一旦數(shù)據(jù)寫入,82C79A的硬件便自動管理顯示RAM的輸出并同步掃描信號。同樣,需要特別指出的是,該命令并不是實際向顯示器RAM中寫入數(shù)據(jù),僅僅指定是寫入顯示器的RAM,而不是寫入鍵盤的FIFORAM,因此,若要實現(xiàn)寫入顯示器數(shù)據(jù),還必須接著在該命令后面從數(shù)據(jù)端口寫入數(shù)據(jù)。2023/2/1計算機(jī)接口技術(shù)36例如,如果要求向顯示器RAM寫入數(shù)據(jù),并且從0位起,地址自動加1,其程序段如下。

MOVDX,30DH ;82C79A的命令口

MOVAL,10010000B

;4號命令,寫顯示RAM OUTDX,AL MOVSI,OFSETBUF MOVDX,30CH ;82C79A的數(shù)據(jù)口

MOVAL,[SI]

OUTDX,AL

;向顯示RAM寫入數(shù)據(jù)

2023/2/1計算機(jī)接口技術(shù)37(5)狀態(tài)字狀態(tài)字主要用來指示FIFORAM中待取走的字符數(shù)和有無錯誤發(fā)生。格式如圖10.7所示。8位狀態(tài)字中的D0~D45位是常用的,用于查詢方式,其中,D5位表示“超出”,D4位表示“空”,D3位表示“滿”,D2~D0位表示鍵盤存儲區(qū)里是否尚有未取走的字符?!馩:超出標(biāo)志位。當(dāng)向已滿的FIFORAM中寫入,使FIFORAM中的字符個數(shù)n>8而產(chǎn)生重疊時,O被置為1。

2023/2/1計算機(jī)接口技術(shù)38●U:“空”標(biāo)志位。當(dāng)FIFORAM中的字符個數(shù)n=0時U被置為1。

●F:“滿”標(biāo)志位。當(dāng)FIFORAM中的字符個數(shù)n=8時,F(xiàn)被置為1。●NNN:表示FIFORAM中待CPU取走的字符個數(shù)為n。例如,當(dāng)要求采用查詢方式從鍵盤FIFORAM讀取數(shù)據(jù)時,先應(yīng)該查狀態(tài)寄存器是否有數(shù)據(jù)可讀。這可以查標(biāo)志位“空”、“滿”或者查待CPU取走的字符個數(shù)n,其程序段為。LOOP1: MOVDX,30DH;狀態(tài)口

INAL,DX;讀狀態(tài)字

TESTAL,00000111B

;檢查是否有待取走的字符

JZLOOP1;無,再查2023/2/1計算機(jī)接口技術(shù)3910.5LED顯示器接口設(shè)計例10.1LED顯示器接口設(shè)計1.要求設(shè)計一個8位LED顯示器,要求從0位開始顯示13579H六個字符,顯示方式為左進(jìn),采用編碼掃描。2.分析

采用82C79A作為LED顯示器接口可以實現(xiàn)上述要求。另外,為了實現(xiàn)編碼掃描要外加掃描譯碼器和提供LED顯示器的驅(qū)動電路。2023/2/1計算機(jī)接口技術(shù)403.設(shè)計(1)硬件設(shè)計

接口電路由82C79A芯片、掃描譯碼器7445和段驅(qū)動器7406組成,如圖10.8所示。圖中的82C79A為接口的核心,主管顯示器與CPU之間的連接,執(zhí)行控制命令;掃描譯碼器7445負(fù)責(zé)LED顯示器的動態(tài)掃描,作為“位控”信號控制8位顯示器的哪一位點亮;反向器驅(qū)動器7406為LED的8段字型碼提供電流驅(qū)動,作為“段控”信號控制8段顯示器的哪一段發(fā)光。2023/2/1計算機(jī)接口技術(shù)41圖10.8LED接口電路2023/2/1計算機(jī)接口技術(shù)42圖10.8中,8個LED顯示器相同的段連到一起,由7406驅(qū)動,實現(xiàn)段控。LED顯示器為共陽極,每個陽極通過開關(guān)三極管及限流電阻與+5V連接,三極管的導(dǎo)通與截止由7445的8個輸出端控制,實現(xiàn)8位顯示器的位控。當(dāng)82C79A的掃描信號SL0~3經(jīng)7445譯碼所產(chǎn)生的輸出信號循環(huán)變化時,就可以使各位顯示器輪流點亮或熄滅,實現(xiàn)LED顯示器的動態(tài)掃描。(2)軟件設(shè)計下面是從0位開始顯示13579H六個字符的程序,六個字符的字形碼存放在內(nèi)存的BUF區(qū)。2023/2/1計算機(jī)接口技術(shù)43LED顯示器的匯編語言程序段如下。CODESEGMENT ASSUMECS:CODE,DS:CODE ORG100HBEGIN: JMPSTART BUFDB06H,4FH,6DH,07H,67H,76H ;六個字符的字形碼START: MOVAX,CODE MOVCS,AX MOVDS,AX ;82C79A初始化

MOVDX,30DH;82C79A的命令口

MOVAL,00000000B

;0號命令,顯示方式命令

MOVDX,AL MOVAL,001110001B

;1號命令,設(shè)置分頻系數(shù)252023/2/1計算機(jī)接口技術(shù)44OUTDX,AL MOVAL,10010000B

;4號命令,寫顯示RAM命令 OUTDX,AL

MOVSI,OFSETBUF;顯示字符首址

MOVCX,06H ;顯示字符數(shù)

L: MOVDX,30CH;82C79A的數(shù)據(jù)口

MOVAL,[SI]

OUTDX,AL

;向顯示RAM寫數(shù)據(jù) INCSI ;緩存地址加1 DECCX ;字?jǐn)?shù)減1 JNZL ;未完,繼續(xù)

MOVAX,4C00H ;已完,返回

INT21HCODEENDS ENDBEGIN2023/2/1計算機(jī)接口技術(shù)45//LED顯示器的C語言程序如下。

unsignedchardisplay[6]={0x06,0x4f,0x6d,0x07,0x67,0x76};outportb(0x30d,0x00); //顯示方式:8字符顯示,左端輸入,編碼掃描outportb(0x30d,0x39); //分頻系數(shù)25,產(chǎn)生100kHz掃描頻率outportb(0x30d,0x90); //指定寫顯示RAM命令,從0位起,地址自動加1for(i=0;i<6;i++){ outportb(0x30c,display[i]); //從內(nèi)存單元中取顯示代碼送顯示RAM delay(50); //延時}2023/2/1計算機(jī)接口技術(shù)4610.6矩陣鍵盤接口設(shè)計例10.2鍵盤接口電路設(shè)計1.要求設(shè)計一個24鍵的鍵盤接口。要求鍵盤采用編碼掃描、雙鍵鎖定工作方式。從鍵盤讀取10個字符代碼。外部時鐘CLK=2.5MHz。2.分析為了實現(xiàn)24鍵的鍵盤矩陣,采用3行8列的結(jié)構(gòu)形式。同時為了滿足編碼掃描工作方式,故使用82C79A的3根掃描輸出信號SL0~SL2,接至譯碼器74LS156的輸入端,經(jīng)譯碼后,產(chǎn)生低電平有效的3根輸出線Y0~Y2,作為鍵盤矩陣的3個行掃描信號。鍵盤矩陣的8個列線的一端與82C79A的返回信號RL0~RL7相連接,另一端通過電阻接高電平(+5V)。2023/2/1計算機(jī)接口技術(shù)473.設(shè)計(1)硬件設(shè)計

根據(jù)上述分析,24鍵的鍵盤矩陣接口電路原理如圖10.9所示。圖10.9鍵盤接口電路2023/2/1計算機(jī)接口技術(shù)48(2)軟件設(shè)計鍵盤輸入?yún)R編語言程序段如下。CODESEGMENT ASSUMECS:CODE,DS:CODE ORG100HSTART: JMPBEGIN ;從0100H處執(zhí)行第一條指令

BUFDB10DUP(0)BEGIN: MOVAX,CODE MOVDS,AX ;設(shè)置數(shù)據(jù)段的段地

MOVDX,30DH ;82C79A初始化

MOVAL,00000000B

;0號命令,鍵盤輸入工作方式

OUTDX,AL MOVAL,00111001B

;1號命令,設(shè)置分頻系數(shù)為25, OUTDX,AL2023/2/1計算機(jī)接口技術(shù)49MOVDI,OFSETBUF MOVCX,10LOOP1: MOVDX,30DH ;讀狀態(tài)字

INAL,DX TESTAL,00000111B

;檢查是否有待取走的字符

JZLOOP1 ;無,再查

MOVAL,01000000B

;2號命令,讀FIFORAM OUTDX,AL MOVDX,30CH ;讀數(shù)據(jù)

INAL,DX

;從鍵盤讀取數(shù)據(jù)

MOV[DI],AL ;存入內(nèi)存BUF INCDI DECCX JNZLOOP1MOVAX,4C00H ;退出

INT21H2023/2/1計算機(jī)接口技術(shù)50CODEENDS ENDSTART//鍵盤輸入C語言程序段如下。unsignedcharbuf[10];unsignedchari;outportb(0x30d,0x00); //設(shè)定鍵盤輸入工作方式(編碼掃描、雙鍵鎖定)outportb(0x30d,0x39); //設(shè)置分頻系數(shù)為25,產(chǎn)生100kHz掃描頻率for(i=0;i<10;i++){ while(inportb(0x30d)&0x07==0x00);//檢查是否有待CPU取走的字符

outportb(0x30d,0x40); //有,指定讀FIFORAM buf[i]=inportb(0x30c); //讀鍵盤,并存入內(nèi)存BUF}2023/2/1計算機(jī)接口技術(shù)514.討論①HELLO五個字符的字形碼在內(nèi)存區(qū)的存放順序與在顯示器上的順序相反,這是什么原因?②如果顯示的字符不是從第0位,而是從第2位或第3位開始顯示,程序要如何修改?2023/2/1計算機(jī)接口技術(shù)5210.7打印機(jī)接口

打印機(jī)是微型計算機(jī)系統(tǒng)中一種常用的輸出設(shè)。目前打印機(jī)技術(shù)正朝著高速度、低噪聲、美觀清晰和彩色打印的方向發(fā)展。打印機(jī)的種類很多,性能差別也很大。當(dāng)前流行的有針式打印機(jī)、激光打印機(jī)、噴墨式打印機(jī)等。10.7.1并行打印機(jī)接口標(biāo)準(zhǔn)1.信號線定義

Centronics標(biāo)準(zhǔn)定義了36芯插頭/座,其信號線如表10.7所示。最主要的是8根并行數(shù)據(jù)線DATA1~DATA8,2根握手聯(lián)絡(luò)信號線、及1根狀態(tài)線BUSY,應(yīng)重點了解。2023/2/1計算機(jī)接口技術(shù)532023/2/1計算機(jī)接口技術(shù)542.工作時序Centronics標(biāo)準(zhǔn)對打印機(jī)接口的工作時序,即打印機(jī)與CPU之間傳送數(shù)據(jù)的過程作了規(guī)定,如圖10.10所示。圖10.10并行打印機(jī)接口標(biāo)準(zhǔn)工作時序2023/2/1計算機(jī)接口技術(shù)55打印機(jī)與CPU之間傳送數(shù)據(jù)的過程:是按照Centronics打印機(jī)接口標(biāo)準(zhǔn)的工作時序進(jìn)行的,以查詢方式為例,其工作步驟如下。①當(dāng)CPU要求打印機(jī)打印數(shù)據(jù)時,CPU首先查詢BUSY。若BUSY=1,打印機(jī)忙,則等待;當(dāng)BUSY=0,打印不忙時,才送數(shù)據(jù)。②

CPU通過并行接口,把數(shù)據(jù)送到DATA1~DATA8數(shù)據(jù)線上,此時數(shù)據(jù)并未進(jìn)入打印機(jī)。③

CPU再送出一個數(shù)據(jù)選通信號(負(fù)脈沖),把數(shù)據(jù)線上的數(shù)據(jù)打入到打印機(jī)的內(nèi)部緩沖器。④打印機(jī)在收到數(shù)據(jù)后,向CPU發(fā)出“忙”信號,表明打印機(jī)正在處理輸入的數(shù)據(jù)。等到輸入的數(shù)據(jù)處理完畢,打印機(jī)撤銷“忙”信號,置BUSY=0。⑤接著,打印機(jī)送出一個回答信號

給CPU,表示一個字符已經(jīng)處理完畢。2023/2/1計算機(jī)接口技術(shù)563.打印機(jī)連接器

Centronics接口標(biāo)準(zhǔn)對打印機(jī)連接器規(guī)定為D-36芯插頭/插座。而臺式PC機(jī)配置的打印機(jī)接口插座簡化為D-25芯,去掉了Centronics中的一些未使用信號和地線。很明顯,打印機(jī)接口標(biāo)準(zhǔn)的連接器與PC機(jī)的打印機(jī)接口插座不兼容,因此要對兩者信號線的排列作一些調(diào)整,要特別注意兩者相應(yīng)信號線的對接,按照圖10.11所示的信號線連接。2023/2/1計算機(jī)接口技術(shù)57圖10.11打印機(jī)與PC機(jī)并口信號線連接圖2023/2/1計算機(jī)接口技術(shù)5810.7.2并行打印機(jī)接口設(shè)計例10.3并行打印機(jī)接口電路設(shè)計1.要求

要求為某應(yīng)用系統(tǒng)配置一個并行打印機(jī)接口,通過接口采用查詢方式把存放在BUF緩沖區(qū)的256個字符(ASCII碼)送去打印。2.分析由于打印機(jī)接口面向的對象是打印機(jī)接口標(biāo)準(zhǔn)而不是打印機(jī)本身,因此打印機(jī)接口硬件電路設(shè)計要以標(biāo)準(zhǔn)所定義的信號線為依據(jù),而軟件設(shè)計應(yīng)以接口標(biāo)準(zhǔn)所規(guī)定的工作時序為依據(jù)。3.設(shè)計(1)打印機(jī)接口電路設(shè)計打印機(jī)接口電路原理框圖如圖10.12所示。2023/2/1計算機(jī)接口技術(shù)59圖10.12并行打印機(jī)接口電路框圖2023/2/1計算機(jī)接口技術(shù)60該電路的設(shè)計思路是:按照Centronics標(biāo)準(zhǔn)對打印機(jī)接口信號線的定義,最基本的信號線需要8根數(shù)據(jù)線(DATA1~DATA8),1根控制線(STROBE,),1根狀態(tài)線(BUSY)和1根地線。為此,采用82C55A作打印機(jī)的接口比較合適。

分配A端口作為數(shù)據(jù)口,輸出8位打印數(shù)據(jù),工作方式為0方式。

分配PC7作為控制信號,輸出1個選通信號STROBE,將數(shù)據(jù)線上的數(shù)據(jù)輸入打印機(jī)緩沖器。

分配PC2作為狀態(tài)線來接收打印機(jī)的狀態(tài)信號BUSY,這樣就滿足了打印機(jī)Centronics接口標(biāo)準(zhǔn)中主要信號線的要求。2023/2/1計算機(jī)接口技術(shù)61圖10.13打印控制程序流程圖(2)打印機(jī)接口控制程序設(shè)計打印機(jī)接口控制程序流程如圖10.13所示。2023/2/1計算機(jī)接口技術(shù)62打印機(jī)接口控制匯編語言程序段如下。DATASEGMENT CTL55EQU303H;82C55A的控制口

PA55EQU300H

溫馨提示

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

評論

0/150

提交評論