康復(fù)治療師培訓(xùn)指南_第1頁
康復(fù)治療師培訓(xùn)指南_第2頁
康復(fù)治療師培訓(xùn)指南_第3頁
康復(fù)治療師培訓(xùn)指南_第4頁
康復(fù)治療師培訓(xùn)指南_第5頁
已閱讀5頁,還剩116頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第07章可編程接口芯片第07章可編程接口芯片第07章可編程接口芯片可編程接口概術(shù)一個(gè)簡單的具有輸入功能和輸出功能的可編程接口電路如下圖,它包括一個(gè)輸入接口,其組成主要是八位的三態(tài)門;一個(gè)輸出接口,其組成主要是八位的鎖存器;另外還有八位的多路轉(zhuǎn)換開關(guān)及控制這個(gè)開關(guān)的寄存器FF。第07章可編程接口芯片第07章可編程接口芯片第07章可1可編程接口概術(shù)

一個(gè)簡單的具有輸入功能和輸出功能的可編程接口電路如下圖,它包括一個(gè)輸入接口,其組成主要是八位的三態(tài)門;一個(gè)輸出接口,其組成主要是八位的鎖存器;另外還有八位的多路轉(zhuǎn)換開關(guān)及控制這個(gè)開關(guān)的寄存器FF??删幊探涌诟判g(shù)控制信息方式控制字命令寄存器數(shù)據(jù)端口控制端口控制信息方式控制字命令寄存器數(shù)據(jù)端口控制端口用戶對(duì)寄存器FF寫入的內(nèi)容稱為命令字或方式控制字,而寄存器FF稱為命令寄存器,相應(yīng)的端口稱為命令端口或控制端口,對(duì)可編程芯片初始化過程實(shí)際上就是對(duì)芯片的控制端口寫入各種命令字的操作過程。

用戶對(duì)寄存器FF寫入的內(nèi)容稱為命令字或方式控制字,目前常用的可編程芯片有如下幾種:8255A 并行I/O接口8253 計(jì)數(shù)器/定時(shí)器8251 串行I/O8259A 中斷控制器

目前常用的可編程芯片有如下幾種:7.1可編程并行輸入/輸出接口芯片8255A一、功能8255A是一種通用的可編程并行I/O接口芯片,廣泛用于幾乎所有系列的微型機(jī)系統(tǒng)中,如8086、MCS51、Z80CPU系統(tǒng)等。8255A具有3個(gè)帶鎖存或緩沖的數(shù)據(jù)端口,可與外設(shè)并行進(jìn)行數(shù)據(jù)交換。用戶可用程序來選擇多種操作方式,通用性強(qiáng)。使用靈活,可為CPU與外設(shè)之間提供并行輸入/輸出通道。

7.1可編程并行輸入/輸出接口芯片8255A一、功能二、8255A的內(nèi)部結(jié)構(gòu)

A口B口C口二、8255A的內(nèi)部結(jié)構(gòu)A口二、8255A的內(nèi)部結(jié)構(gòu)

并行輸入/輸出端口

A組和B組控制

數(shù)據(jù)總線緩沖器

讀/寫控制電路

二、8255A的內(nèi)部結(jié)構(gòu)并行輸入/輸出端口A組和B組三、8255A的管腳分配

三、8255A的管腳分配康復(fù)治療師培訓(xùn)指南1、與外設(shè)連接的管腳

我們已經(jīng)知道8255A有三個(gè)數(shù)據(jù)端口,每個(gè)端口是8位的,由此可推算與外設(shè)相連接的管腳共有24位。其中A口有PA7—PA0八個(gè)I/O引腳,B口有PB7—PB0八個(gè)I/O引腳,C口有PC7—PC0八個(gè)I/O引腳。特別地對(duì)于PC7—PC0,其中可有若干根復(fù)用線可用于“聯(lián)絡(luò)”信號(hào)或狀態(tài)信號(hào),其具體定義與端口的工作方式有關(guān)。

1、與外設(shè)連接的管腳

我們已經(jīng)知道8255A有三個(gè)PA0…PA7PB0…PB7PC0…PC7PA0…PA72、與CPU連接的管腳

包括數(shù)據(jù)線D7—D0,讀寫控制線和,復(fù)位線RESET,以及和CPU地址線相連接的片選信號(hào)、端口地址控制線A0和A1。2、與CPU連接的管腳

包括數(shù)據(jù)線D7—D0,讀寫D0…D7A0A1/CS/WR/RDRESETD0…D73、電源線和地線

8255A的電源引腳為VCC和GND。VCC為電源線,一般取+5V。GND為電源地線。3、電源線和地線

8255A的電源引腳為VCC和GND。四、8255與8086CPU的接口連接方法同RAM相似,取M/IO=0舉例設(shè)計(jì)8位I/O接口,使8255地址為0300H四、8255與8086CPU的接口連接方法舉例設(shè)計(jì)16位I/O接口,使8255地址為0300H舉例五、8255A的工作方式及編程1、8255A的工作方式

8255A有三種工作方式,它們是:

①方式0——基本輸入/輸出方式;

②方式1——選通輸入/輸出方式;

⑨方式2—一雙向傳送方式。五、8255A的工作方式及編程1、8255A的工作方式

82、8255A編程

所謂8255A編程,就是用戶在使用8255前,用戶可用軟件來定義端口的工作方式,選擇所需要的功能。 8255A復(fù)位時(shí),A、B、C三端口工作在方式0的輸入狀態(tài)。2、8255A編程

所謂8255A編程,就是用戶在使1.方式控制字

這是一個(gè)八位的控制字,代表的信息非常豐富。上面提到8255A內(nèi)部的3個(gè)端口分為A、B兩組,因此方式控制字也就相應(yīng)地分成兩個(gè)部分,分別控制A組和B組,其格式如下:1.方式控制字

這是一個(gè)八位的控制字,代表的信息非常豐1D6D5D4D3D2D1D0方式選擇控制字標(biāo)識(shí)位A組方式選擇00方式001方式11x方式2端口A1輸入0輸出PC3~PC0:1輸入(方式0時(shí))0輸出端口B:1輸入0輸出B組方式選擇:0方式01方式1PC7~PC4:1輸入(方式0時(shí))0輸出1D6D5D4D3D2D1D0方式選擇控A組方式選擇端口A2.C口置“1”/清“0”控制字置“1”又稱為置位操作,而清“0”稱為復(fù)位操作。

2.C口置“1”/清“0”控制字0D6D5D4D3D2D1D0xxx無關(guān)1:置10:置000001111端口C按位置1/置0控制字標(biāo)識(shí)位位選擇PC0PC1PC2PC3PC4PC5PC6PC700110011010101010D6D5D4D3D2D1D0xxx無關(guān)1:置10端口3.讀入狀態(tài)字

當(dāng)8255A由程序設(shè)定在方式1或方式2工作時(shí),C口就根據(jù)不同的情況,產(chǎn)生或接收“聯(lián)絡(luò)”信號(hào)。如果這時(shí)我們對(duì)C口進(jìn)行讀操作,則讀出的內(nèi)容就包含兩部分內(nèi)容,一部分是那些作為I/O線上的內(nèi)容,另一部分是與“聯(lián)絡(luò)”狀態(tài)有關(guān)的內(nèi)容。

3.讀入狀態(tài)字

當(dāng)8255A由程序設(shè)定在方式1或方式2方式1的輸入狀態(tài)字

康復(fù)治療師培訓(xùn)指南六、8255A的三種工作方式

1、8255A工作在方式0方式0也叫基本輸入/輸出方式。在這種方式下,端口A和端口B可以通過方式選擇控制字規(guī)定為輸入口或者輸出口;端口C分為高4位(PC7~PC4)和低4位(PC3~PC0)兩個(gè)4位端口,這兩個(gè)4位端口也可由方式選擇控制字分別規(guī)定為輸入口或輸出口。這四個(gè)并行口共可構(gòu)成16種不同的使用組態(tài)。利用8255A的方式0進(jìn)行數(shù)據(jù)傳輸時(shí),由于沒有規(guī)定專門的應(yīng)答信號(hào),所以這種方式常用于與簡單外設(shè)之間的數(shù)據(jù)傳送,如向LED顯示器的輸出,從二進(jìn)制開關(guān)裝置的輸入等。六、8255A的三種工作方式1、8255A工作在方式08255工作過程1、8255編程(初始化)2、程序?qū)Χ丝诘脑L問8255工作過程例:8255A的A口和B口工作在方式0,A口為輸入端口,接有四個(gè)開關(guān)。B口為輸出端,接有一個(gè)七段發(fā)光二極管,連接電路如圖所示。試編一程序要求七段發(fā)光二班管顯示開關(guān)所撥通的數(shù)字。

例:8255A的A口和B口工作在方式0,A口為輸入端口,接有電路LED數(shù)碼管段碼表

電路LED數(shù)碼管段碼表地址

A口:8020H,B口:8022H, C口:8024H,控制口:8026H.方式控制字 10011001B=99H

地址a_portequ8000hb_portequ8002hctrl_portequ8006h……moval,99h ;設(shè)置8255方式字movdx,ctrl_portoutdx,almovdx,a_portinal,dx ;取鍵盤信息andal,0fh ;屏蔽高4位movbx,offsettab1 ;取段碼表首地址xlat ;查表得段碼movdx,b_port ;輸出顯示outdx,ala_portequ8000hA口的選通信號(hào),當(dāng)其有效時(shí),外設(shè)把數(shù)據(jù)打入A口的輸入緩沖器A口的輸入緩沖器“滿”信號(hào),當(dāng)其有效時(shí)表示A口的輸入緩沖器已暫存一個(gè)有效數(shù)據(jù)。A口的中斷請(qǐng)求信號(hào)。當(dāng)其有效時(shí),8255A的A口向CPU申請(qǐng)中斷,要求CPU從A口取數(shù)中斷允許信號(hào)。2、8255A工作在方式1——輸入(以A口為例)A口的選通信號(hào),當(dāng)其有效時(shí),外設(shè)把數(shù)據(jù)打入A口的輸入緩沖器C口特點(diǎn)1、C3-5作為A口的聯(lián)絡(luò)線,C4-/STB;

C4-IBF;C5-INTR2、C6-7可工作在基本的I/O3、C0-2由B組決定C口特點(diǎn)8255A工作在方式1(輸入)時(shí)序圖12341、/STB有效,外設(shè)數(shù)據(jù)->A口鎖存器2、IBF有效,告訴外設(shè)數(shù)據(jù)未被CPU取走3、INTA有效,申請(qǐng)中斷(告訴CPUA口有新數(shù)據(jù))4、CPU從A口取數(shù),清除IBF和INTA,使之無效8255A工作在方式1(輸入)時(shí)序圖12341、/STB有效8255A工作在方式1(輸入)

當(dāng)A口已接受外設(shè)數(shù)據(jù)后,有兩種方式通知CPU取數(shù):其一用條件查詢方式,通過查詢緩沖器是否“滿”,即IBFA是否為高電平來取數(shù)。其二用中斷方式。

8255A工作在方式1(輸入)在條件傳送中,一般要有所謂的“握手”信號(hào)來協(xié)調(diào)數(shù)據(jù)的傳送?!拔帐帧毙盘?hào)至少要有兩位信號(hào)線,其中一位是由接口電路發(fā)給外設(shè),功能是向外設(shè)提供接口電路的信息。另一位是由外設(shè)發(fā)給接口,功能是向接口提供外設(shè)的信息。顯然在8255A的選通輸入方式中STBA和IBFA是一對(duì)“握手”信號(hào)。

康復(fù)治療師培訓(xùn)指南例:8255A的A口和B口分別工作在方式1和方式0,A口為輸入端口,接有8個(gè)開關(guān)。B口為輸出端,接有8個(gè)發(fā)光二極管,連接電路如圖所示。現(xiàn)要求用方式1把改變后的鍵信息輸入到CPU并通過B口顯示。

康復(fù)治療師培訓(xùn)指南例題電路圖這個(gè)系統(tǒng)的工作過程如下:

1、用戶通過改變K0~K7,產(chǎn)生新的鍵信息;

2、按下開關(guān)K,產(chǎn)生選通信號(hào),數(shù)據(jù)進(jìn)入A口的緩沖器,

此步驟實(shí)際上告訴CPU,8255的A口來了一個(gè)新數(shù)據(jù);

例題電路圖這個(gè)系統(tǒng)的工作過程如下:

1、用戶通過改變K0~K例題電路圖3、IBFA有效使LED點(diǎn)亮。這里含有兩個(gè)信息,一個(gè)是

8255A通知CPU其A口來了一個(gè)新數(shù)據(jù),另一個(gè)是告

訴用戶CPU尚未取走這個(gè)這個(gè)數(shù)據(jù),用戶不得再送其

他數(shù)據(jù);

4、CPU取走這個(gè)數(shù)據(jù),LED熄滅;

5、轉(zhuǎn)步驟1。例題電路圖3、IBFA有效使LED點(diǎn)亮。這里含有兩個(gè)信息,一這個(gè)系統(tǒng)的工作過程如下:

1、用戶通過改變K0~K7,產(chǎn)生新的鍵信息;

2、按下開關(guān)K,產(chǎn)生選通信號(hào),數(shù)據(jù)進(jìn)入A口的緩沖器,

此步驟實(shí)際上告訴CPU,8255的A口來了一個(gè)新數(shù)據(jù);

3、IBFA有效使LED點(diǎn)亮。這里含有兩個(gè)信息,一個(gè)是

8255A通知CPU其A口來了一個(gè)新數(shù)據(jù),另一個(gè)是告

訴用戶CPU尚未取走這個(gè)這個(gè)數(shù)據(jù),用戶不得再送其

他數(shù)據(jù);

4、CPU取走這個(gè)數(shù)據(jù),LED熄滅;

5、轉(zhuǎn)步驟1。

這個(gè)系統(tǒng)的工作過程如下:

1、用戶通過改變K0~K7,產(chǎn)生新設(shè)8255的I/O地址分布為88H—8EH,相應(yīng)的程序段如下: moval,10111001b ;設(shè)置A口為方式1的輸入,loop1:inal,8ch ;取C口的狀態(tài)線 testal,00100000b ;測(cè)試IBFA信息 jzloop1 ;等待用戶設(shè)定新的鍵值 inal,80h ;取數(shù)。LED燈滅(相對(duì)于步驟4) out82h,al ;更新B口的顯示 jmploop1 ;重復(fù)設(shè)8255的I/O地址分布為88H—8EH,相應(yīng)的程序段如下3、8255A工作在方式1——輸出(以A口為例)外設(shè)回答信號(hào)。由外設(shè)發(fā)出。當(dāng)其有效時(shí),表示外設(shè)已接收數(shù)據(jù)。A口的輸出緩沖器“滿”信號(hào),當(dāng)其有效時(shí)表示A口的輸出緩沖器已暫存一個(gè)有效數(shù)據(jù)。A口的中斷請(qǐng)求信號(hào)。當(dāng)其有效時(shí),8255A的A口向CPU申請(qǐng)中斷,要求CPU送數(shù)給A口中斷允許信號(hào)。3、8255A工作在方式1——輸出外設(shè)回答信號(hào)。由外設(shè)發(fā)出。C口特點(diǎn)1、C3,C6,C7作為A口的聯(lián)絡(luò)線,

C3-/INTR;

C7-/ACK;C5-/OBF2、C4-5可工作在基本的I/O3、C0-2由B組決定C口特點(diǎn)8255A工作在方式1(輸出)時(shí)序圖12341、CPU對(duì)A口寫數(shù)據(jù),/OBF有效,表示A口鎖存器中有新數(shù)據(jù);2、外設(shè)取走新數(shù)據(jù),向8255發(fā)/ACK信號(hào),告訴8255A口數(shù)據(jù)取走;3、A口的/OBF無效,表示A口數(shù)據(jù)鎖存器為空4、INTA有效,發(fā)中斷信號(hào)給CPU,請(qǐng)求新數(shù)據(jù)18255A工作在方式1(輸出)時(shí)序圖12341、CPU對(duì)A口

當(dāng)A口已接受外設(shè)數(shù)據(jù)后,有兩種方式通知CPU取數(shù):其一用條件查詢方式,通過查詢緩沖器是否“滿”,即IBFA是否為高電平來取數(shù)。其二用中斷方式。

康復(fù)治療師培訓(xùn)指南在這種方式下,OBFA和ACKA是一對(duì)“握手”信號(hào)。OBFA是8255A產(chǎn)生,當(dāng)其有效時(shí),告訴外設(shè)A口已有一個(gè)新數(shù)據(jù)。ACKA是外設(shè)產(chǎn)生,當(dāng)其有效時(shí),通知A口外設(shè)已把數(shù)據(jù)取走??祻?fù)治療師培訓(xùn)指南例:8255A的A口工作在方式1的輸出,接有8個(gè)發(fā)光二極管,現(xiàn)要求把內(nèi)存中的10個(gè)數(shù),通過A口發(fā)送給發(fā)光二極管以二進(jìn)制的形式供用戶抄錄。康復(fù)治療師培訓(xùn)指南例題電路圖這個(gè)系統(tǒng)的工作過程如下:

CPU把內(nèi)存中的一個(gè)數(shù)據(jù)寫入A口;LED燈亮,告訴用戶LED顯示的是新數(shù)據(jù);

用戶抄錄數(shù)據(jù);用戶按下開關(guān)K,發(fā)ACK信號(hào),告訴CPU數(shù)據(jù)已取走;轉(zhuǎn)第一步。例題電路圖這個(gè)系統(tǒng)的工作過程如下:

這個(gè)系統(tǒng)的工作過程如下:

1、

CPU把內(nèi)存中的一個(gè)數(shù)據(jù)寫入A口;

2、

LED燈亮,告訴用戶LED顯示的是新數(shù)據(jù);

3、

用戶抄錄數(shù)據(jù);

4、

用戶按下開關(guān)K,發(fā)ACK信號(hào),告訴CPU數(shù)

據(jù)已取走;

5、轉(zhuǎn)第一步。

這個(gè)系統(tǒng)的工作過程如下:

1、

CPU把內(nèi)存中的一個(gè)數(shù)據(jù)寫 movcx,10 ;送10個(gè)數(shù) movbx,offsetxx ;數(shù)組指針?biāo)蚥x loop1: moval,[bx] ;取數(shù) out88h,al ;送數(shù)到A口 loop2: inal,8ch ;取C口狀態(tài)線 anlal,80h ;測(cè)試IBOA jnzloop2 ;用戶尚未抄錄數(shù)據(jù),檢測(cè);等待, ;此時(shí);LED燈亮(對(duì)應(yīng)步驟2) calldelay ;用戶已抄錄數(shù)據(jù),LED燈滅(對(duì) ;應(yīng)步驟4) incbx ;準(zhǔn)備送下一個(gè)數(shù) looploop1 ;循環(huán)10次 movcx,10 ;送10個(gè)數(shù)4、8255A工作在方式2——雙向

外設(shè)回答信號(hào)。由外設(shè)發(fā)出。當(dāng)其有效時(shí),表示外設(shè)已接收數(shù)據(jù)。A口的輸出緩沖器“滿”信號(hào),當(dāng)其有效時(shí)表示A口的輸出緩沖器已暫存一個(gè)有效數(shù)據(jù)。A口的中斷請(qǐng)求信號(hào)。當(dāng)其有效時(shí),8255A的A口向CPU申請(qǐng)中斷,要求CPU訪問A口中斷允許信號(hào)。中斷允許信號(hào)。A口的輸入緩沖器“滿”信號(hào),當(dāng)其有效時(shí)表示A口的輸入緩沖器已暫存一個(gè)有效數(shù)據(jù)A口的選通信號(hào),當(dāng)其有效時(shí),外設(shè)把數(shù)據(jù)打入A口的輸入緩沖器4、8255A工作在方式2——雙向外設(shè)回答信號(hào)。由外設(shè)發(fā)出如果設(shè)定某個(gè)8255A的A口和B口分別工作在方式2和方式1下,則這個(gè)8255A的C口的I/O功能將不在存在。當(dāng)然如果B口是工作在方式0下,則C口還有3根線可作I/O線用??祻?fù)治療師培訓(xùn)指南七、8255應(yīng)用舉例1、與打印機(jī)接口例:在某一8086系統(tǒng)中接有一個(gè)打印機(jī),8255A作為輸出接口。工作在方式0,試編一程序?qū)⒕彌_區(qū)BUFF內(nèi)的400H個(gè)字節(jié)的ACK碼送打印機(jī)打印??偩€式接口的缺點(diǎn)8255接口的優(yōu)點(diǎn)七、8255應(yīng)用舉例1、與打印機(jī)接口打印機(jī)具體工作過程如下:1、數(shù)據(jù)線D7—D0出現(xiàn)有效數(shù)據(jù);2、STB有效,通知打印機(jī),接口給打印機(jī)一個(gè)數(shù)據(jù),數(shù)據(jù)從數(shù)據(jù)線進(jìn)入打印機(jī);3、BUSY有效,告訴接口,打印機(jī)正在打印數(shù)據(jù)。打印完畢,BUSY變?yōu)闊o效,表示打印結(jié)束。

123打印機(jī)具體工作過程如下:123 …… ;打印主程序 moval,10001010B ;方式控制字 outctrl_port,al moval,00000001B ;置位/復(fù)位控制字 outctrl_port,al …… movbx,offsetbuff ;打印400個(gè)ASCII碼 movcx,400 again: movdl,[bx] callprint_data incbx loopagain ……

…… ;打印主程序print_data proc ;打印子程序,入口在dl中print1: inal,c_port ;無條件讀C口數(shù)據(jù) testal,00010000b ;測(cè)試busy線 jnzprint1 ;busy有效,循環(huán)測(cè)試 moval,dl outa_port,al ;打印數(shù)據(jù)進(jìn)入A口 moval,00000000b ;發(fā)選通信號(hào) outctrl_port,al moval,00000001b outctrl_port,al ret ;返回主程序print_datA endpprint_data proc ;打印子程序,2、人機(jī)交互接口——?jiǎng)討B(tài)顯示例:常用的顯示稱為動(dòng)態(tài)顯示,它采用掃描顯示技術(shù),可以使硬件開銷降低很多。對(duì)于一個(gè)8位數(shù)據(jù)顯示,它就需要兩個(gè)輸出端口就可以了。其電路如圖所示。在兩個(gè)輸出端口中,一個(gè)稱為段信號(hào)通道,它用來輸出要顯示數(shù)據(jù)的段碼;另一個(gè)稱為位信號(hào)通道,用來決定當(dāng)前要顯示數(shù)據(jù)的位置。

2、人機(jī)交互接口——?jiǎng)討B(tài)顯示動(dòng)態(tài)顯示電路圖動(dòng)態(tài)顯示電路圖顯示系統(tǒng)的具體工作步驟如下:

a、

設(shè)要顯示的初始位碼i=0;

b、

送第i位的段信號(hào);

c、

送第i位的位信號(hào);

d、

延時(shí);

e、

i+1->i

f、

如果i小于8,轉(zhuǎn)b

g、

8位數(shù)據(jù)顯示結(jié)束。

康復(fù)治療師培訓(xùn)指南程序如下: a_port equ80h ;定義8255A的四個(gè)端口 b_port equ82h c_port equ84h ctrl_port equ86h …… data segment ;定義數(shù)據(jù)段 tab1 db3FH,06H,5BH,4FH,…, ;定義段碼表 dispbuff db2,0,0,7,1,0,1,5 ;定義顯示緩沖區(qū) data ends ……康復(fù)治療師培訓(xùn)指南 ;顯示子程序,數(shù)據(jù)在dispbuff中display proc ….. ;保護(hù)現(xiàn)場(chǎng) movbx,offsettab1 movsi,offsetdispbuff ;步驟a movcx,8 movah,80h disp1: moval,[si] ;步驟b xlat outa_port,al moval,ah ;步驟c outb_port,al calldelay5ms ;步驟d,延時(shí)5ms shrah,1 ;步驟e incsi loopdisp1 …… ;恢復(fù)現(xiàn)場(chǎng) retdisplay endp ;顯示子程序,數(shù)據(jù)在dispbuff中3、人機(jī)交互接口——鍵盤掃描例:方案一。矩陣式鍵盤電路,其特點(diǎn)是由按鍵組成一個(gè)矩陣,矩陣的行線和列線分別作為兩個(gè)傳輸方向相反的I/O接口信號(hào)線,比如行線作為輸入接口信號(hào)線,列線作為輸出接口信號(hào)線。

3、人機(jī)交互接口——鍵盤掃描康復(fù)治療師培訓(xùn)指南程序流程如下:a、

設(shè)定行為輸出,列為輸入;b、

行輸出為0,輸入列信號(hào);c、

檢查列信號(hào)是否全為1,

若是,無鍵按下,轉(zhuǎn)b; 如果不全為1,表明有鍵按下,執(zhí)行下步;d、

延時(shí)10ms,消除抖動(dòng)。e、取i=0(用寄存器dh)f、置i行為0,其他行為1(用寄存器ah);g、輸入列信號(hào);h、

逐列檢測(cè),找出為0的列信號(hào)(用寄存器dl);

未找到:i=i+1;轉(zhuǎn)f; 若找到:執(zhí)行下步;

i、

計(jì)算鍵號(hào)key_num

程序流程如下:例:方案二——翻轉(zhuǎn)法。圖所示為矩陣式鍵盤電路,其特點(diǎn)是由按鍵組成一個(gè)矩陣,矩陣的行線和列線在不同時(shí)刻分別作為兩個(gè)傳輸方向相反的I/O接口信號(hào)線,比如行線作為輸入接口信號(hào)線,列線作為輸出接口信號(hào)線,或反之。

康復(fù)治療師培訓(xùn)指南鍵盤掃描電路圖鍵盤掃描電路圖在翻轉(zhuǎn)法中,行列線交換輸入、輸出,兩步就可獲取鍵位置信息。可見這種方法要比掃描法效率高。康復(fù)治療師培訓(xùn)指南翻轉(zhuǎn)法程序流程如下:a、

設(shè)定行為輸出,列為輸入;b、

行輸出為0,輸入列信號(hào);c、

檢查列信號(hào)是否全為1, 若是,無鍵按下,轉(zhuǎn)b; 如果不全為1,表明有鍵按下,執(zhí)行下步;d、

延時(shí)10ms,消除抖動(dòng)。e、

逐列檢測(cè),找出為0的列信號(hào)j;f、

設(shè)定列為輸出,行為輸入;g、

列輸出為0,輸入行信號(hào);h、

逐行檢測(cè),找出為0的行信號(hào)i;i、

計(jì)算鍵號(hào)key_num翻轉(zhuǎn)法程序流程如下:7.2可編程定時(shí)/計(jì)數(shù)器接口芯片8253

定時(shí)和脈沖信號(hào)的處理與接口是完全有別于并行信號(hào)的,其特點(diǎn)是信號(hào)形式簡單但需要連續(xù)檢測(cè)。7.2可編程定時(shí)/計(jì)數(shù)器接口芯片8253康復(fù)治療師培訓(xùn)指南并行接口計(jì)數(shù)器脈沖控制計(jì)數(shù)器溢出并行接口計(jì)數(shù)器脈沖控制計(jì)數(shù)器溢出7.2可編程定時(shí)/計(jì)數(shù)器接口芯片8253一、功能下面介紹的INTEL8253可編程定時(shí)/計(jì)數(shù)器就是可以實(shí)現(xiàn)所要求這方面功能。8253內(nèi)部有3個(gè)獨(dú)立的16位定時(shí)/計(jì)數(shù)器通道。計(jì)數(shù)器可按照二進(jìn)制或十進(jìn)制計(jì)數(shù),計(jì)數(shù)和定時(shí)范圍可在1—65535之間改變,每個(gè)通道有6種工作方式,計(jì)數(shù)頻率可高達(dá)2MHz以上。7.2可編程定時(shí)/計(jì)數(shù)器接口芯片8253一、功能二、8253的內(nèi)部結(jié)構(gòu)

計(jì)數(shù)通道

數(shù)據(jù)總線緩沖器

讀/寫控制電路

通道控制寄存器二、8253的內(nèi)部結(jié)構(gòu)計(jì)數(shù)通道數(shù)據(jù)總線緩沖器讀/寫控制1、四個(gè)端口計(jì)數(shù)器0計(jì)數(shù)器1計(jì)數(shù)器2控制端口1、四個(gè)端口計(jì)數(shù)器0計(jì)數(shù)器1計(jì)數(shù)器2控制2、每個(gè)計(jì)數(shù)端口有三根線與外界聯(lián)系CLK:計(jì)數(shù)器脈沖輸入GATE:門控信號(hào)OUT:計(jì)數(shù)器輸出計(jì)數(shù)器2、每個(gè)計(jì)數(shù)端口有三根線與外界聯(lián)系CLK:計(jì)數(shù)器脈沖輸入三、8253的管腳分配與8086接口

通道管腳數(shù)據(jù)線通道選擇控制線1、管腳定義2、接口三、8253的管腳分配與8086接口通道管腳數(shù)據(jù)線通道選四、8253的編程

8253只有一個(gè)控制字,8253的一個(gè)方式控制字只決定一個(gè)計(jì)數(shù)通道的工作模式。8253的控制字格式如圖所示。共分為4部分,通道選擇、計(jì)數(shù)器讀/寫方式、工作方式和計(jì)數(shù)碼的選擇。四、8253的編程8253只有一個(gè)控制字,<一>、計(jì)數(shù)器選擇(SC1、SC0)

SC1SC0對(duì)應(yīng)的通道00通道001通道110通道211不用<一>、計(jì)數(shù)器選擇(SC1、SC0)SC1SC0對(duì)應(yīng)<二>、計(jì)數(shù)器讀/寫方式(RLl、RL0)

RL1RL0通道讀寫操作00計(jì)數(shù)器鎖存01只讀寫低八位字節(jié)10只讀寫高八位字節(jié)11讀寫16位<二>、計(jì)數(shù)器讀/寫方式(RLl、RL0)RL1RLSTB計(jì)數(shù)器L計(jì)數(shù)器HSTB計(jì)數(shù)器L計(jì)數(shù)器H<三>、工作方式選擇(M2、M1、M0)

M2M1M0工作方式選擇000工作方式0001工作方式1X10工作方式2X11工作方式3100工作方式4101工作方式5<三>、工作方式選擇(M2、M1、M0)M2M1M<四>、計(jì)數(shù)碼選擇(BCD)

BCD計(jì)數(shù)制式選擇0二進(jìn)制計(jì)數(shù)制1BCD計(jì)數(shù)制<四>、計(jì)數(shù)碼選擇(BCD)BCD計(jì)數(shù)制式選擇0二進(jìn)制計(jì)數(shù)五、8253的工作方式1、方式0——計(jì)數(shù)結(jié)束產(chǎn)生中斷方式

工作方式0有如下特點(diǎn):a、門控信號(hào)GATE必須為1,計(jì)數(shù)器才能計(jì)數(shù);b、計(jì)數(shù)時(shí)通道輸出端OUT一直為0;c、通道計(jì)數(shù)器計(jì)數(shù)到0后,OUT由0到1,同時(shí)計(jì)數(shù)器停止工作。abc五、8253的工作方式1、方式0——計(jì)數(shù)結(jié)束產(chǎn)生中斷方式工康復(fù)治療師培訓(xùn)指南時(shí)間常數(shù)=(秒)=3840H(秒)相應(yīng)的程序段如下:……moval,10011010B ;置8255A方式控制字out8255控制口,al moval,00h ;8255A置位/復(fù)位控制字,使PC0=0out8255控制口,almoval,30h ;置8253通道0方式控制字out8253控制口,al moval,40H ;置8253通道0時(shí)間常數(shù)out通道0端口,almoval,38Hout通道0端口,al…… 中斷程序中有關(guān)程序段如下:……moval,00000001B ;8255置位/復(fù)位控制字,使PC0=1out8255控制口,al ……時(shí)間常數(shù)=(秒)=3840H(秒)2、方式1——可編程序的單獨(dú)負(fù)脈沖

方式1工作過程如下:

b、

觸發(fā)后,通道計(jì)數(shù)器開始計(jì)數(shù),輸出端OUT由高變低;c、

計(jì)數(shù)器計(jì)數(shù)到0,OUT再由低變高。abca、門控信號(hào)GATE是觸發(fā)信號(hào),上升沿有效。即開始計(jì)數(shù)是由GATE的上升沿觸發(fā)的;d、

計(jì)數(shù)器過程中,如果又被觸發(fā),則計(jì)數(shù)器重新工作d2、方式1——可編程序的單獨(dú)負(fù)脈沖方式1工作過程康復(fù)治療師培訓(xùn)指南康復(fù)治療師培訓(xùn)指南康復(fù)治療師培訓(xùn)指南3、方式2——速率發(fā)生器方式2的特點(diǎn)如下:a、

GATE門為1,計(jì)數(shù)器才能工作,對(duì)CLK端上的脈沖進(jìn)行計(jì)數(shù);b、

當(dāng)計(jì)數(shù)器“減”計(jì)數(shù)到1時(shí),輸出端由高變低,再經(jīng)過一個(gè)CLK周期,即計(jì)數(shù)器計(jì)數(shù)到0時(shí),輸出端OUT又跳變?yōu)楦?。所以方?輸出周期性負(fù)脈沖信號(hào),其寬度固定為一個(gè)CLK周期;c、

當(dāng)計(jì)數(shù)器的值減為0時(shí),自動(dòng)重新裝入計(jì)數(shù)初值,實(shí)現(xiàn)循環(huán)計(jì)數(shù)。3、方式2——速率發(fā)生器abcabc4、方式3——方波發(fā)生器

方式2雖然可以作分頻電路,但其輸出是窄脈沖,如果是方波,就只有選方式34、方式3——方波發(fā)生器①8253的通道0,實(shí)時(shí)中斷。用于產(chǎn)生固定頻率的時(shí)鐘節(jié)拍,故設(shè)定工作在方式3,初值為0,所以從OUT0管腳的輸出方波頻率為1.19MHz/216=18.2Hz,通道0的控制字為36H;②8253的通道l,動(dòng)態(tài)RAM刷新。用于固定頻率的刷新信號(hào),故設(shè)定工作在方式2,計(jì)數(shù)值為12H=18,速率輸出頻率為1.19M/18=66.1kHz,即定時(shí)時(shí)間為15.13μs,通道1的控制字為54H;③8253的通道2,用于產(chǎn)生頻率信號(hào)。故取工作在方式3,計(jì)數(shù)值為6A4H=1190,方波輸出頻率為1.19MHz/1190=1kHz。此信號(hào)頻率決定揚(yáng)聲器的音調(diào),通道2的控制宇為0B6H。①8253的通道0,實(shí)時(shí)中斷。用于產(chǎn)生固定頻率的時(shí)鐘節(jié)拍,①8253的通道0,實(shí)時(shí)中斷。用于產(chǎn)生固定頻率的時(shí)鐘節(jié)拍,故設(shè)定工作在方式3,初值為0,所以從OUT0管腳的輸出方波頻率為1.19MHz/216=18.2Hz,通道0的控制字為36H;②8253的通道l,動(dòng)態(tài)RAM刷新。用于固定頻率的刷新信號(hào),故設(shè)定工作在方式2,計(jì)數(shù)值為12H=18,速率輸出頻率為1.19M/18=66.1kHz,即定時(shí)時(shí)間為15.13μs,通道1的控制字為54H;③8253的通道2,用于產(chǎn)生頻率信號(hào)。故取工作在方式3,計(jì)數(shù)值為6A4H=1190,方波輸出頻率為1.19MHz/1190=1kHz。此信號(hào)頻率決定揚(yáng)聲器的音調(diào),通道2的控制宇為0B6H。①8253的通道0,實(shí)時(shí)中斷。用于產(chǎn)生固定頻率的時(shí)鐘節(jié)拍,方式4——軟件觸發(fā)方式軟件觸發(fā)方式實(shí)際上就是CPU通過指令觸發(fā)一個(gè)選通信號(hào)給外部設(shè)備,選通信號(hào)在觸發(fā)后設(shè)定時(shí)間點(diǎn)上發(fā)出。

方式4在工作過程中有以下特點(diǎn): 1、門控信號(hào)GATE為高電平,計(jì)數(shù)器開始減1計(jì)數(shù),OUT維持高電平;ab 2、當(dāng)計(jì)數(shù)器減到0,輸出端OUT變低,再經(jīng)過一個(gè)CLK輸入時(shí)鐘周期,OUT輸出又變高。

方式4——軟件觸發(fā)方式 1、門控信號(hào)GATE為高電平,計(jì)數(shù)器康復(fù)治療師培訓(xùn)指南6、方式5——硬件觸發(fā)方式這種工作方式同方式4很相似,當(dāng)控制字寫入控制寄存器后,輸出端OUT變高。同方式4不同的一點(diǎn)是當(dāng)計(jì)數(shù)值寫入通道計(jì)數(shù)器后,通道并未被觸發(fā),也就是計(jì)數(shù)器并不立即開始計(jì)數(shù)。只有當(dāng)GATE信號(hào)的上升沿觸發(fā)通道后,通道計(jì)數(shù)器才開始計(jì)數(shù)。6、方式5——硬件觸發(fā)方式方式5——硬件觸發(fā)方式方式5——硬件觸發(fā)方式康復(fù)治療師培訓(xùn)指南

8253的工作方式小結(jié)8253的六種工作方式可歸為兩類,一個(gè)是充當(dāng)頻率發(fā)生器,另一類主要是作計(jì)數(shù)器來使用。下面我們就從這個(gè)角度來討論總結(jié)OUT和GATE門的作用。

8253的工作方式小結(jié)8253的六種工作方式可歸為兩與頻率發(fā)生器有關(guān)的工作方式

8253有兩種方式與頻率發(fā)生器有關(guān),即方式2和發(fā)生3。對(duì)OUT端,方式2提供給用戶的是負(fù)脈沖,方式3提供給用戶的是方波。在這個(gè)兩種方式下,GATE信號(hào)要始終保持為高。與頻率發(fā)生器有關(guān)的工作方式

8253有兩種方式與頻率發(fā)生器有與計(jì)數(shù)器有關(guān)的工作方式

對(duì)于計(jì)數(shù)器類,有方式0、1和方式4、5。啟動(dòng)計(jì)數(shù)器的方式有兩種。一種是CPU把時(shí)間常數(shù)寫入相應(yīng)通道后,計(jì)數(shù)器就開始工作,我們可以稱之為軟件啟動(dòng)方式,在這種啟動(dòng)方式下,GATE要始終保持為高電平,所以方式0和方式4可以稱為軟件啟動(dòng)方式。另一種是硬件啟動(dòng)計(jì)數(shù)器,即CPU把時(shí)間常數(shù)寫入計(jì)數(shù)器后,即使GATE為高電平,計(jì)數(shù)器并不工作。只有GATE發(fā)生跳變,其上升沿啟動(dòng)計(jì)數(shù)器工作,所以方式1和方式5就可以稱為硬件啟動(dòng)方式與計(jì)數(shù)器有關(guān)的工作方式

對(duì)于計(jì)數(shù)器類,有方式0、1和計(jì)數(shù)器溢出時(shí),OUT有兩種輸出形式,要么是電平,要么是負(fù)脈沖。前者有方式0方式1,后者有方式4和方式5。

計(jì)數(shù)器溢出時(shí),OUT有兩種輸出形式,要么是電六、8253應(yīng)用舉例例1:現(xiàn)有一個(gè)高精密晶體振蕩電路,輸出信號(hào)是脈沖波,頻率為1MHz。要求利用8253做一個(gè)秒信號(hào)發(fā)生器,其輸出接一發(fā)光二極管,以0.5秒點(diǎn)亮,0.5秒熄滅的方式閃爍指示。設(shè)8253的通道地址為80H~86H(偶地址)六、8253應(yīng)用舉例例1:現(xiàn)有一個(gè)高精密晶體振蕩電解:1、時(shí)間常數(shù)計(jì)算這個(gè)例子要求用8253作一個(gè)分頻電路,而且其輸出應(yīng)該是方波,否則發(fā)光二極管不可能等間隔閃爍指示。頻率為1MHz信號(hào)的周期為1微妙,而1Hz信號(hào)的周期為1秒,所以分頻系數(shù)N可按下式進(jìn)行計(jì)算:解:1、時(shí)間常數(shù)計(jì)算

由于8253一個(gè)通道最大的計(jì)數(shù)值是65536,所以對(duì)于N=1000000這樣的大數(shù),一個(gè)通道是不可能完成上述分頻要求的。由于

即取兩個(gè)計(jì)數(shù)器,采用級(jí)聯(lián)方式。2、電路由于8253一個(gè)通道最大的計(jì)數(shù)值是65536,所以對(duì)

3、工作方式選擇由于通道1要輸出方波信號(hào)推動(dòng)發(fā)光二極管,所以通道1應(yīng)選工作方式3。對(duì)于通道0,只要能起分頻作用就行,對(duì)輸出波形不做要求,所以方式2和方式3都可以選用。

這樣對(duì)于通道0,我們?nèi)」ぷ鞣绞?,BCD計(jì)數(shù);對(duì)于通道1,我們?nèi)」ぷ鞣绞?,二進(jìn)制計(jì)數(shù)(當(dāng)然也可選BCD計(jì)數(shù))3、工作方式選擇4、程序 moval,00110101b ;通道0控制字 out86h,al moval,00 ;通道0初始計(jì)數(shù)值 out80h,al moval,10h out80h,al moval,01110110b ;通道1控制字 out86h,almoval,0e8h ;通道1初始計(jì)數(shù)值,03E8H=1000BCD out82h,al moval,03h out82h,al4、程序例2:延時(shí)程序,設(shè)8253的通道地址為80H~86H,8255的

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論