




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2021-9-211第9章 并行接口及定時(shí)/計(jì)數(shù)技術(shù)2主要內(nèi)容n并行通信與并行接口n可編程并行通信接口芯片8255An可編程定時(shí)/計(jì)數(shù)器825339.1 并行通信與并行接口把一個(gè)字符的各數(shù)位用幾條線同時(shí)進(jìn)行傳輸,傳輸速把一個(gè)字符的各數(shù)位用幾條線同時(shí)進(jìn)行傳輸,傳輸速度快,信息率高。但它比串行通信所用的電纜多,因度快,信息率高。但它比串行通信所用的電纜多,因此,并行通信常用在傳輸距離較短此,并行通信常用在傳輸距離較短(幾米至幾十米幾米至幾十米)和數(shù)和數(shù)據(jù)傳輸率較高的場合。據(jù)傳輸率較高的場合。n并行通信n并行接口實(shí)現(xiàn)并行通信的接口就是并行接口。實(shí)現(xiàn)并行通信的接口就是并行接口。4 典型的并行接口和外部
2、設(shè)備連接典型的并行接口和外部設(shè)備連接:并行接口的輸入過程并行接口的輸入過程并行接口的輸出過程并行接口的輸出過程5并行接口的輸入過程:并行接口的輸入過程: 外部設(shè)備首先將數(shù)據(jù)送給接口,并使?fàn)顟B(tài)線外部設(shè)備首先將數(shù)據(jù)送給接口,并使?fàn)顟B(tài)線“數(shù)據(jù)數(shù)據(jù)輸入準(zhǔn)備好輸入準(zhǔn)備好”成為高電平。接口把數(shù)據(jù)接收到數(shù)據(jù)輸入成為高電平。接口把數(shù)據(jù)接收到數(shù)據(jù)輸入緩沖寄存器的同時(shí),使緩沖寄存器的同時(shí),使“數(shù)據(jù)輸入回答數(shù)據(jù)輸入回答”線變?yōu)楦唠娖剑€變?yōu)楦唠娖?,作為?duì)外部設(shè)備的響應(yīng)。外部設(shè)備接到此信號(hào),便撤除作為對(duì)外部設(shè)備的響應(yīng)。外部設(shè)備接到此信號(hào),便撤除數(shù)據(jù)和數(shù)據(jù)和“數(shù)據(jù)輸入準(zhǔn)備好數(shù)據(jù)輸入準(zhǔn)備好”信號(hào)。數(shù)據(jù)到達(dá)接口中后,信號(hào)。
3、數(shù)據(jù)到達(dá)接口中后,接口會(huì)在狀態(tài)寄存器中設(shè)置接口會(huì)在狀態(tài)寄存器中設(shè)置“輸入準(zhǔn)備好輸入準(zhǔn)備好”狀態(tài)位,以狀態(tài)位,以便便CPUCPU對(duì)其進(jìn)行查詢,接口也可以在此時(shí)向?qū)ζ溥M(jìn)行查詢,接口也可以在此時(shí)向CPUCPU發(fā)一個(gè)中發(fā)一個(gè)中斷請(qǐng)求。所以,斷請(qǐng)求。所以,CPUCPU既可以用軟件查詢方式,也可以用中既可以用軟件查詢方式,也可以用中斷方式來設(shè)法讀取接口中的數(shù)據(jù)。斷方式來設(shè)法讀取接口中的數(shù)據(jù)。CPUCPU從并行接口中讀取從并行接口中讀取數(shù)據(jù)后,接口會(huì)自動(dòng)清除狀態(tài)寄存器中的數(shù)據(jù)后,接口會(huì)自動(dòng)清除狀態(tài)寄存器中的“輸入準(zhǔn)備好輸入準(zhǔn)備好”狀態(tài)位,并且使數(shù)據(jù)總線處于高阻狀態(tài)。此后,又可以狀態(tài)位,并且使數(shù)據(jù)總線處于高阻
4、狀態(tài)。此后,又可以開始下一個(gè)輸入過程。開始下一個(gè)輸入過程。6并行接口的輸出過程:并行接口的輸出過程: 每當(dāng)外部設(shè)備從接口取走一個(gè)數(shù)據(jù)之后,接口就會(huì)每當(dāng)外部設(shè)備從接口取走一個(gè)數(shù)據(jù)之后,接口就會(huì)將狀態(tài)寄存器中的將狀態(tài)寄存器中的“輸出準(zhǔn)備好輸出準(zhǔn)備好”狀態(tài)位置狀態(tài)位置“1”1”,以表,以表示示CPUCPU當(dāng)前可以往接口中輸出數(shù)據(jù),這個(gè)狀態(tài)位可供當(dāng)前可以往接口中輸出數(shù)據(jù),這個(gè)狀態(tài)位可供CPUCPU進(jìn)行查詢。此時(shí),接口也可以向進(jìn)行查詢。此時(shí),接口也可以向CPUCPU發(fā)一個(gè)中斷請(qǐng)求。所發(fā)一個(gè)中斷請(qǐng)求。所以,以,CPUCPU既可以用軟件查詢方式,也可以用中斷方式設(shè)法既可以用軟件查詢方式,也可以用中斷方式設(shè)法
5、往接口中輸出一個(gè)數(shù)據(jù)。當(dāng)往接口中輸出一個(gè)數(shù)據(jù)。當(dāng)CPUCPU輸出的數(shù)據(jù)到達(dá)接口的輸輸出的數(shù)據(jù)到達(dá)接口的輸出緩沖寄存器中后,接口會(huì)自動(dòng)清除出緩沖寄存器中后,接口會(huì)自動(dòng)清除“輸出準(zhǔn)備好輸出準(zhǔn)備好”狀狀態(tài)位,并且將數(shù)據(jù)送往外部設(shè)備,同時(shí),接口往外部設(shè)態(tài)位,并且將數(shù)據(jù)送往外部設(shè)備,同時(shí),接口往外部設(shè)備發(fā)送一個(gè)備發(fā)送一個(gè)“驅(qū)動(dòng)信號(hào)驅(qū)動(dòng)信號(hào)”來啟動(dòng)外部設(shè)備接收數(shù)據(jù)。外來啟動(dòng)外部設(shè)備接收數(shù)據(jù)。外部設(shè)備被啟動(dòng)后,開始接收數(shù)據(jù),并往接口發(fā)一個(gè)部設(shè)備被啟動(dòng)后,開始接收數(shù)據(jù),并往接口發(fā)一個(gè)“數(shù)數(shù)據(jù)輸出回答據(jù)輸出回答”信號(hào)。接口收到此信號(hào),便將狀態(tài)寄存器信號(hào)。接口收到此信號(hào),便將狀態(tài)寄存器中的中的“輸出準(zhǔn)備好輸出準(zhǔn)備
6、好”狀態(tài)位重新置狀態(tài)位重新置“1”1”,以便,以便CPUCPU輸出輸出下一個(gè)數(shù)據(jù)。下一個(gè)數(shù)據(jù)。79.2 可編程并行通信接口芯片8255An8255A是是Intel86系列微處理機(jī)的配套并行接系列微處理機(jī)的配套并行接口芯片,它可為口芯片,它可為86系列系列CPU與外部設(shè)備之間提與外部設(shè)備之間提供并行輸入供并行輸入/輸出的通道。輸出的通道。n可編程的可編程的n可以通過軟件來設(shè)置芯片的工作方式,所以,用可以通過軟件來設(shè)置芯片的工作方式,所以,用8255A連接外部設(shè)備時(shí),通常不用再附加外部電路,連接外部設(shè)備時(shí),通常不用再附加外部電路,給使用者帶來很大方便。給使用者帶來很大方便。88255A芯片內(nèi)部結(jié)構(gòu)
7、及其功能數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器內(nèi)部控制線內(nèi)部控制線內(nèi)部數(shù)據(jù)線內(nèi)部數(shù)據(jù)線D0D7A組組控制控制A組組端口端口AA組組端口端口C上部上部B組組控制控制B組組端口端口BB組組端口端口C下部下部讀寫讀寫控制控制邏輯邏輯PC0PC3PB0PB7PC4PC7PA0PA7RDWRA0A1CSRESET9101. 并行輸入并行輸入/輸出端口輸出端口A,B,Cn8255A芯片內(nèi)部包含芯片內(nèi)部包含3個(gè)個(gè)8位端口,其中:位端口,其中:端口端口A包含一個(gè)包含一個(gè)8位數(shù)據(jù)輸出鎖存位數(shù)據(jù)輸出鎖存/緩沖存儲(chǔ)器和一個(gè)緩沖存儲(chǔ)器和一個(gè)8位數(shù)據(jù)輸入鎖存器位數(shù)據(jù)輸入鎖存器端口端口B包含一個(gè)包含一個(gè)8位數(shù)據(jù)輸入位數(shù)據(jù)輸入/輸出
8、、鎖存輸出、鎖存/緩沖存儲(chǔ)器和緩沖存儲(chǔ)器和一個(gè)一個(gè)8位數(shù)據(jù)輸入緩沖存儲(chǔ)器;位數(shù)據(jù)輸入緩沖存儲(chǔ)器;端口端口C包含一個(gè)輸出鎖存包含一個(gè)輸出鎖存/緩沖存儲(chǔ)器和一個(gè)輸入緩沖存緩沖存儲(chǔ)器和一個(gè)輸入緩沖存儲(chǔ)器。儲(chǔ)器。必要時(shí)端口必要時(shí)端口C可分成兩個(gè)可分成兩個(gè)4位端口,分別與端口位端口,分別與端口A和端口和端口B配配合工作,通常將端口合工作,通常將端口A和端口和端口B定義為輸入定義為輸入/輸出的數(shù)據(jù)端輸出的數(shù)據(jù)端口,而端口口,而端口C可作為狀態(tài)或控制信息的傳送端口。可作為狀態(tài)或控制信息的傳送端口。112. A組和組和B組控制部件組控制部件nA組和組和B組各有一個(gè)控制單元,可接收來自讀組各有一個(gè)控制單元,可接
9、收來自讀/寫控制部件的命令寫控制部件的命令和和CPU通過數(shù)據(jù)總線通過數(shù)據(jù)總線(D7D0)送來的控制字,并根據(jù)它們來定送來的控制字,并根據(jù)它們來定義各個(gè)端口的操作方式。義各個(gè)端口的操作方式。n端口端口A與端口與端口C的高的高4位位(PC7PC4)構(gòu)成構(gòu)成A組,由組,由A組控制部件組控制部件實(shí)現(xiàn)控制功能實(shí)現(xiàn)控制功能n端口端口B與端口與端口C的低的低4位位(PC3PC0)構(gòu)成構(gòu)成B組,由組,由B組控制部組控制部件實(shí)現(xiàn)控制功能件實(shí)現(xiàn)控制功能3. 數(shù)據(jù)總線緩沖存儲(chǔ)器數(shù)據(jù)總線緩沖存儲(chǔ)器n這是一個(gè)三態(tài)雙向這是一個(gè)三態(tài)雙向8位數(shù)據(jù)緩沖存儲(chǔ)器,它是位數(shù)據(jù)緩沖存儲(chǔ)器,它是8255A與與8086CPU之間的數(shù)據(jù)接口
10、。之間的數(shù)據(jù)接口。CPU執(zhí)行輸出指令時(shí),可將控制執(zhí)行輸出指令時(shí),可將控制字或數(shù)據(jù)通過數(shù)據(jù)總線緩沖存儲(chǔ)器傳送給字或數(shù)據(jù)通過數(shù)據(jù)總線緩沖存儲(chǔ)器傳送給8255A。CPU執(zhí)行執(zhí)行輸入指令時(shí),輸入指令時(shí),8255A可將狀態(tài)信息或數(shù)據(jù)通過總線緩沖存儲(chǔ)可將狀態(tài)信息或數(shù)據(jù)通過總線緩沖存儲(chǔ)器向器向CPU輸入。輸入。124. 讀讀/寫控制部件寫控制部件n這是這是8255A內(nèi)部完成讀內(nèi)部完成讀/寫控制功能的部件,它能接收寫控制功能的部件,它能接收CPU的控制命令,并根據(jù)它們向片內(nèi)各功能部件發(fā)出的控制命令,并根據(jù)它們向片內(nèi)各功能部件發(fā)出操作命令??山邮盏目刂泼钊缦拢翰僮髅???山邮盏目刂泼钊缦拢?1) CS片選信
11、號(hào)片選信號(hào)。由。由CPU輸入,通常由端口的高輸入,通常由端口的高位地址碼位地址碼(A15A2)譯碼得到,譯碼得到,CS有效,表示該有效,表示該8255A被選中。被選中。(2) RD,WR讀、寫控制信號(hào)讀、寫控制信號(hào)。由。由CPU輸入,輸入,RD有效,表示有效,表示CPU讀讀8255A,應(yīng)由,應(yīng)由8255A向向CPU傳傳送數(shù)據(jù)或狀態(tài)信息。送數(shù)據(jù)或狀態(tài)信息。WR有效,表示有效,表示CPU寫寫8255A,應(yīng)由應(yīng)由CPU將控制字或數(shù)據(jù)寫入將控制字或數(shù)據(jù)寫入8255A。13(3) RESET復(fù)位信號(hào)復(fù)位信號(hào)。由由CPU輸入。輸入。RESET有效時(shí),有效時(shí),清除清除8255A中所有控制字寄存器內(nèi)容,并將各
12、端口置中所有控制字寄存器內(nèi)容,并將各端口置成輸入方式。成輸入方式。(4) A1和和A0端口選擇信號(hào)端口選擇信號(hào)。當(dāng)當(dāng)A1A000,選擇端口,選擇端口A;當(dāng)當(dāng)A1A001,選擇端口,選擇端口B;當(dāng)當(dāng)A1A010,選擇端口,選擇端口C;當(dāng)當(dāng)A1A011,選擇控制字寄存器。,選擇控制字寄存器。14與處理器接口CS* A1 A0I/O地址讀操作RD*寫操作WR*0 0 00 0 10 1 00 1 160H61H62H63H讀端口A讀端口B讀端口C非法寫端口A寫端口B寫端口C寫控制字158255A芯片的控制字及其工作方式芯片的控制字及其工作方式n8255A中各端口可有中各端口可有3種基本工作方式:種基
13、本工作方式:n方式方式0:基本輸入輸出方式基本輸入輸出方式n適用于無條件傳送和查詢方式的接口電路適用于無條件傳送和查詢方式的接口電路n方式方式1:選通輸入輸出方式選通輸入輸出方式n適用于查詢和中斷方式的接口電路適用于查詢和中斷方式的接口電路n方式方式2:雙向選通傳送方式雙向選通傳送方式n適用于與雙向傳送數(shù)據(jù)的外設(shè)適用于與雙向傳送數(shù)據(jù)的外設(shè)n適用于查詢和中斷方式的接口電路適用于查詢和中斷方式的接口電路n端口端口A A可處于可處于3 3種工作方式種工作方式( (方式方式0 0,方式,方式1 1和方式和方式2)2)n端口端口B B只可處于兩種方式只可處于兩種方式( (方式方式0 0和方式和方式1)1
14、)n端口端口C C常常被分成高常常被分成高4 4位和低位和低4 4位兩部分,可分別用來傳位兩部分,可分別用來傳送數(shù)據(jù)或控制信息送數(shù)據(jù)或控制信息. .n用戶可用軟件來分別定義用戶可用軟件來分別定義3 3個(gè)端口的工作方式,可使用個(gè)端口的工作方式,可使用的控制字有定義的控制字有定義工作方式控制字工作方式控制字和和置位置位/ /復(fù)位控制字復(fù)位控制字。16控制字控制字n(1) 定義工作方式控制字:定義工作方式控制字: 通過定義工作方式控制字可將通過定義工作方式控制字可將3個(gè)端口分別定義為個(gè)端口分別定義為3種不同方式的組合,當(dāng)將端口種不同方式的組合,當(dāng)將端口A定義為方式定義為方式1或方式或方式2或?qū)⒍丝诨?/p>
15、將端口B定義為方式定義為方式1時(shí),要求使用端口時(shí),要求使用端口C的某些位作控的某些位作控制用,這時(shí)需要使用一個(gè)專門的置位制用,這時(shí)需要使用一個(gè)專門的置位/復(fù)位控制字來對(duì)控制端口復(fù)位控制字來對(duì)控制端口C的各位分別進(jìn)行置位的各位分別進(jìn)行置位/復(fù)位操作。復(fù)位操作。17n(2) 置位置位/復(fù)位控制字復(fù)位控制字: 只對(duì)端口只對(duì)端口C有效,其使用格式如下有效,其使用格式如下圖所示圖所示18工作方式工作方式0n這是這是8255A中各端口的基本輸入中各端口的基本輸入/輸出方式。它只完成輸出方式。它只完成簡單的并行輸入簡單的并行輸入/輸出操作,輸出操作,CPU可從指定端口輸入信息,可從指定端口輸入信息,也可向指
16、定端口輸出信息。也可向指定端口輸出信息。19方式1輸入引腳:A端口數(shù)據(jù)選通信號(hào)表示外設(shè)已經(jīng)準(zhǔn)備好數(shù)據(jù)輸入緩沖器滿信號(hào)表示A口已經(jīng)接收數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU接收數(shù)據(jù)PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA中斷允許觸發(fā)器PC6、72I/O20方式1輸入引腳:B端口PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB數(shù)據(jù)選通信號(hào)表示外設(shè)已經(jīng)準(zhǔn)備好數(shù)據(jù)輸入緩沖器滿信號(hào)表示B口已經(jīng)接收數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU接收數(shù)據(jù)中斷允許觸發(fā)器方式方式1 1需借用端口需借用端口C C用做聯(lián)絡(luò)信號(hào)用做聯(lián)絡(luò)信號(hào)同時(shí)還具有中斷請(qǐng)求和屏蔽功能同時(shí)還具有中斷請(qǐng)求和屏蔽功能21方式1
17、輸入聯(lián)絡(luò)信號(hào)nSTB*選通信號(hào),低電平有效n由外設(shè)提供的輸入信號(hào),當(dāng)其有效時(shí),將輸入設(shè)備送來的數(shù)據(jù)鎖存至8255A的輸入鎖存器nIBF輸入緩沖器滿信號(hào),高電平有效n8255A輸出的聯(lián)絡(luò)信號(hào)。當(dāng)其有效時(shí),表示數(shù)據(jù)已鎖存在輸入鎖存器nINTR中斷請(qǐng)求信號(hào),高電平有效n8255A輸出的信號(hào),可用于向CPU提出中斷請(qǐng)求,要求CPU讀取外設(shè)數(shù)據(jù)22方式1中斷控制n8255A的中斷由中斷允許觸發(fā)器INTE控制n置位允許中斷,復(fù)位禁止中斷n對(duì)INTE的操作通過寫入端口C的對(duì)應(yīng)位實(shí)現(xiàn),INTE觸發(fā)器對(duì)應(yīng)端口C的位是作應(yīng)答聯(lián)絡(luò)信號(hào)的輸入信號(hào)的那一位,只要對(duì)那一位置位/復(fù)位就可以控制INTE觸發(fā)器n選通輸入方式下
18、n端口A的INTEA對(duì)應(yīng)PC4n端口B的INTEB對(duì)應(yīng)PC223方式1輸出引腳:A端口外設(shè)響應(yīng)信號(hào)表示外設(shè)已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿信號(hào)表示CPU已經(jīng)輸出了數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU再次輸出數(shù)據(jù)PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中斷允許觸發(fā)器24方式1輸出引腳:B端口PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外設(shè)響應(yīng)信號(hào)表示外設(shè)已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿信號(hào)表示CPU已經(jīng)輸出了數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU再次輸出數(shù)據(jù)中斷允許觸發(fā)器25方式1輸出聯(lián)絡(luò)信號(hào)nOBF*輸出緩沖器滿信號(hào),低有效n8255A輸出給外設(shè)的一個(gè)控制信號(hào),當(dāng)其有效時(shí),表示C
19、PU已把數(shù)據(jù)輸出給指定的端口,外設(shè)可以取走nACK*響應(yīng)信號(hào),低有效n外設(shè)的響應(yīng)信號(hào),指示8255A的端口數(shù)據(jù)已由外設(shè)接受nINTR中斷請(qǐng)求信號(hào),高有效n當(dāng)輸出設(shè)備已接受數(shù)據(jù)后,8255A輸出此信號(hào)向CPU提出中斷請(qǐng)求,要求CPU繼續(xù)提供數(shù)據(jù)端口端口A A的的INTEAINTEA對(duì)應(yīng)對(duì)應(yīng)PCPC6 6端口端口B B的的INTEBINTEB對(duì)應(yīng)對(duì)應(yīng)PCPC2 226方式1的應(yīng)用n端口A和端口B均工作于工作方式1nA、B都完成輸入操作功能nA、B都完成輸出操作功能nA、B其中一個(gè)輸入,另一個(gè)輸出27n端口A、B都為方式1輸入操作n工作方式控制字可設(shè)置如下28n端口狀態(tài)如下圖所示29n當(dāng)端口A和端口
20、B同時(shí)被定義為工作方式1完成輸入操作時(shí),端口C的PC5PC0被用作控制信號(hào),只有PC7和PC6位可完成數(shù)據(jù)輸入或輸出操作。n因此這實(shí)際上可構(gòu)成兩種組合狀態(tài):n端口A,B輸入,PC7,PC6輸入n端口A,B輸入,PC7,PC6輸出。n當(dāng)A、B同時(shí)完成輸出或其中一個(gè)輸入、一個(gè)輸出情況類似,只是使用信號(hào)和控制字不同。30方式2-雙向方式n8255A中只允許端口A處于工作方式2,方式2將方式1的選通輸入輸出功能組合成一個(gè)雙向數(shù)據(jù)端口,可以發(fā)送數(shù)據(jù)和接收數(shù)據(jù),可用來在兩臺(tái)處理機(jī)之間實(shí)現(xiàn)雙向并行通信。其有關(guān)的控制信號(hào)由端口C提供,并可向CPU發(fā)出中斷請(qǐng)求信號(hào)。n當(dāng)端口A工作于方式2時(shí),允許端口B工作方式0
21、或方式1完成輸入/輸出功能。n方式2的數(shù)據(jù)輸入過程與方式1的輸入方式一樣n方式2的數(shù)據(jù)輸出過程與方式1的輸出方式有一點(diǎn)不同:數(shù)據(jù)輸出時(shí)8255A不是在OBF*有效時(shí)向外設(shè)輸出數(shù)據(jù),而是在外設(shè)提供響應(yīng)信號(hào)ACK*時(shí)才送出數(shù)據(jù)31方式2雙向引腳PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6設(shè)置INTE1(輸出)用PC4設(shè)置INTE2(輸入)輸入和輸出中斷通過或門輸出INTRA信號(hào)n端口A工作于方式2所需要的5個(gè)控制信號(hào)分別由端口C的PC7PC3來提供。如果端口B工作于方式0,那么PC2PC0可用作數(shù)據(jù)輸入/輸出;如果端口B工作于方式
22、1,那么PC2PC0用來作端口B的控制信號(hào)32n當(dāng)端口A工作于方式2時(shí),允許端口B工作方式0或方式1完成輸入/輸出功能,其方式控制字格式如下圖所示。33例題:例題:8255A8255A作為連接打印機(jī)的接口,工作于方式作為連接打印機(jī)的接口,工作于方式0 0,如下圖,如下圖所示:所示: 工作過程為:當(dāng)主機(jī)要往打印機(jī)輸出字符時(shí),先查詢工作過程為:當(dāng)主機(jī)要往打印機(jī)輸出字符時(shí),先查詢BUSYBUSY信信號(hào),如為零,則可通過號(hào),如為零,則可通過8255A8255A向打印機(jī)輸出一個(gè)字符,同時(shí)向打印機(jī)輸出一個(gè)字符,同時(shí)給出選通信號(hào)給出選通信號(hào)STB(STB(負(fù)脈沖負(fù)脈沖) )。8255A并行接口應(yīng)用舉例808
23、6D7D0PA7PA0D7D0STBPC28255ABUSY打印機(jī)打印機(jī)PC634現(xiàn)將現(xiàn)將A A端口作為傳送字符的通道,工作于方式端口作為傳送字符的通道,工作于方式0 0、輸出方式;、輸出方式;B B端口未用;端端口未用;端口口C C也工作于方式也工作于方式0 0,PC2PC2作為作為BUSYBUSY信號(hào)輸入端,故信號(hào)輸入端,故PC3PC0PC3PC0為輸入方式,為輸入方式,PC6PC6作為作為STBSTB信號(hào)輸出端,故信號(hào)輸出端,故PC7PC4PC7PC4為輸出方式。為輸出方式。設(shè)設(shè)8255A8255A的端口地址為:的端口地址為:A A端口:端口:00D0H, B00D0H, B端口端口:
24、00D2H, : 00D2H, C C端口端口: 00D4H, : 00D4H, 控制端口:控制端口:00D6H00D6H具體程序段如下:具體程序段如下:PP: MOV AL,81H ;PP: MOV AL,81H ;控制字,使控制字,使A,B,CA,B,C三個(gè)端口均工作于方式三個(gè)端口均工作于方式0 0, A A端口端口 OUT 0D6H,AL ;OUT 0D6H,AL ;為輸出,為輸出, PC7PC4PC7PC4為輸出,為輸出,PC3PC0PC3PC0為輸入。為輸入。 MOV AL,0DH ;MOV AL,0DH ;用置用置0 0置置1 1方式使方式使PC6PC6為為1 1,即,即STBST
25、B為高電平。為高電平。 OUT 0D6H,ALOUT 0D6H,ALLPST: IN AL,0D4H ;LPST: IN AL,0D4H ;讀端口讀端口C C的值的值 AND AL,04HAND AL,04H JNZ LPST ; JNZ LPST ;如不為如不為0 0,說明打印機(jī)忙,故等待。,說明打印機(jī)忙,故等待。 35 MOV AL,CL OUT 0D0H,AL ;如不忙,則把如不忙,則把CL中字符送端口中字符送端口A。 MOV AL,0CH OUT 0D6H,AL ;使使STB為為0 INC AL OUT 0D6H,AL ;再使再使STB為為1 ;后續(xù)程序段后續(xù)程序段 369.3 可編程
26、計(jì)數(shù)/定時(shí)控制器8253定時(shí)控制在微機(jī)系統(tǒng)中極為重要n定時(shí)器由數(shù)字電路中的計(jì)數(shù)電路構(gòu)成,通過記錄高精度晶振脈沖信號(hào)的個(gè)數(shù),輸出準(zhǔn)確的時(shí)間間隔n計(jì)數(shù)電路記錄外設(shè)提供的具有一定隨機(jī)性的脈沖信號(hào)時(shí),主要反映脈沖的個(gè)數(shù),又稱為計(jì)數(shù)器定時(shí)功能的實(shí)現(xiàn)方法n軟件延時(shí)利用微處理器執(zhí)行一個(gè)延時(shí)程序段實(shí)現(xiàn)n不可編程的硬件定時(shí)采用分頻器、單穩(wěn)電路或簡易定時(shí)電路控制定時(shí)時(shí)間n可編程的硬件定時(shí)軟件硬件相結(jié)合、用可編程定時(shí)器芯片構(gòu)成一個(gè)方便靈活的定時(shí)電路378253/8254定時(shí)計(jì)數(shù)器n8253可與8086/8088CPU相連構(gòu)成完整的定時(shí)、計(jì)數(shù)或脈沖發(fā)生器系統(tǒng)。n3個(gè)獨(dú)立的16位計(jì)數(shù)器通道n每個(gè)計(jì)數(shù)器有6種工作方式n按
27、二進(jìn)制或十進(jìn)制(BCD碼)計(jì)數(shù)388253的內(nèi)部結(jié)構(gòu)和引腳D7D0計(jì)數(shù)器0控制字寄存器計(jì)數(shù)器1計(jì)數(shù)器2內(nèi)部數(shù)據(jù)總線數(shù)據(jù)總線緩沖器讀寫控制邏輯RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT239是8253與CPU之間的數(shù)據(jù)接口,由8位雙向三態(tài)緩沖存儲(chǔ)器構(gòu)成,是CPU與8253之間交換信息的必經(jīng)之路。接收CPU送入的讀/寫控制信號(hào),并完成對(duì)芯片內(nèi)部各功能部件的控制功能,因此,它實(shí)際上是8253芯片內(nèi)部的控制器??山邮盏目刂菩盘?hào)如下:可接收的控制信號(hào)如下: (1) A1A0端口選擇信號(hào),由CPU輸入。8253內(nèi)部有3個(gè)獨(dú)立的通道和一個(gè)控制字寄存器,它
28、們構(gòu)成8253芯片的4個(gè)端口,CPU可對(duì)3個(gè)通道進(jìn)行讀/寫操作,對(duì)控制字寄存器進(jìn)行寫操作。這4個(gè)端口地址由最低2位地址碼A10來選擇。nA1A0 = 00 通道0nA1A0 = 01 通道1nA1A0 = 10 通道2nA1A0 = 11 控制字寄存器40 (2) CS*片選信號(hào),由CPU輸入,低電平有效,通常由端口地址的高位地址譯碼形成。 CS* A1 A0I/O地址讀操作RD*寫操作WR*0 0 00 0 10 1 00 1 140H41H42H43H讀計(jì)數(shù)器0讀計(jì)數(shù)器1讀計(jì)數(shù)器2無操作寫計(jì)數(shù)器0寫計(jì)數(shù)器1寫計(jì)數(shù)器2寫控制字(3) RD*、WR*讀/寫控制命令,由CPU輸入,低電平有效。R
29、D*有效時(shí),CPU讀取由A10所選定的通道內(nèi)計(jì)數(shù)器的內(nèi)容。WR*有效時(shí),CPU將計(jì)數(shù)值寫入各個(gè)通道的計(jì)數(shù)器中,或者是將方式控制字寫入控制字寄存器中。 41n8253內(nèi)部包含3個(gè)功能完全相同的通道,每個(gè)通道內(nèi)部設(shè)有一個(gè)16位計(jì)數(shù)器,可進(jìn)行二進(jìn)制或十進(jìn)制(BCD碼)計(jì)數(shù)。n采用二進(jìn)制計(jì)數(shù)時(shí),最大計(jì)數(shù)值是FFFFHn采用BCD碼計(jì)數(shù)時(shí),最大計(jì)數(shù)值是9999n每個(gè)通道內(nèi)設(shè)有一個(gè)16位計(jì)數(shù)值鎖存器,可用來鎖存計(jì)數(shù)值。n當(dāng)某通道用作計(jì)數(shù)器時(shí),應(yīng)將要求計(jì)數(shù)的次數(shù)預(yù)置到該通道的計(jì)數(shù)器中,被計(jì)數(shù)的事件應(yīng)以脈沖方式從CLKi端輸入,每輸入一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器內(nèi)容減“1”,待計(jì)數(shù)值計(jì)到“0”,OUTi端將有輸出,表
30、示計(jì)數(shù)次數(shù)到。n當(dāng)某通道用作定時(shí)器時(shí),由CLKi輸入一定頻率的時(shí)鐘脈沖。根據(jù)要求定時(shí)的時(shí)間長短確定所需的計(jì)數(shù)值,并預(yù)置到計(jì)數(shù)器中,每輸入一個(gè)時(shí)鐘脈沖,計(jì)數(shù)器內(nèi)容減“1”,待計(jì)數(shù)值計(jì)到“0”,OUTi將有輸出,表示定時(shí)時(shí)間到。允許從CLKi輸入的時(shí)鐘頻率在12MHz范圍內(nèi)。42n任一通道作計(jì)數(shù)器用或作定時(shí)器用,其內(nèi)部操作完全相同,區(qū)別在于前者是由計(jì)數(shù)脈沖進(jìn)行減“1”計(jì)數(shù),而后者是由時(shí)鐘脈沖進(jìn)行減“1”計(jì)數(shù)。作計(jì)數(shù)器時(shí),要求計(jì)數(shù)的次數(shù)可直接作為計(jì)數(shù)器的初值預(yù)置到減“1”計(jì)數(shù)器中。作定時(shí)器時(shí),計(jì)數(shù)器的初值即定時(shí)系數(shù)應(yīng)根據(jù)要求定時(shí)的時(shí)間進(jìn)行如下運(yùn)算才能得到:控制字寄存器用來存放由CPU寫入8253的方
31、式選擇控制字,由它來定義8253中各通道的工作方式,其使用格式如下圖所示。4344nSC1,SC0位用來選擇通道。nRL1,RL0位用來定義對(duì)所選通道中的計(jì)數(shù)器的操作nRL1RL0=00時(shí),將該通道中當(dāng)前計(jì)數(shù)器的內(nèi)容鎖存到鎖存器中,為CPU讀取當(dāng)前計(jì)數(shù)值作準(zhǔn)備。nRL1RL0=01時(shí),表示只讀/寫計(jì)數(shù)器低字節(jié),這是因?yàn)橹皇褂糜?jì)數(shù)器的低字節(jié)作計(jì)數(shù)用。nRL1RL0=10時(shí),表示只讀/寫計(jì)數(shù)器高字節(jié),這是因?yàn)橹皇褂糜?jì)數(shù)器的高字節(jié)作計(jì)數(shù)用。nRL1RL0=11時(shí),表示先讀/寫計(jì)數(shù)器低字節(jié),后讀/寫計(jì)數(shù)器高字節(jié)。nBCD位用來定義是采用二進(jìn)制計(jì)數(shù)還是十進(jìn)制計(jì)數(shù)nM2M1M0位用來定義所選通道的6種工作
32、方式。45計(jì)數(shù)器結(jié)構(gòu)示意圖預(yù)置寄存器預(yù)置寄存器GATECLKOUT減減1計(jì)數(shù)器計(jì)數(shù)器輸出鎖存器輸出鎖存器計(jì)數(shù)初值存于計(jì)數(shù)初值存于預(yù)置寄存器預(yù)置寄存器;在計(jì)數(shù)過程中,在計(jì)數(shù)過程中,減法計(jì)數(shù)器減法計(jì)數(shù)器的值不斷遞減,的值不斷遞減,而預(yù)置寄存器中的預(yù)置不變。而預(yù)置寄存器中的預(yù)置不變。輸出鎖存器輸出鎖存器用于寫入鎖存命令時(shí),用于寫入鎖存命令時(shí),鎖定當(dāng)前計(jì)數(shù)值鎖定當(dāng)前計(jì)數(shù)值46計(jì)數(shù)器的3個(gè)引腳nCLK時(shí)鐘輸入信號(hào)在計(jì)數(shù)過程中,此引腳上每輸入一個(gè)時(shí)鐘信號(hào)(下降沿),計(jì)數(shù)器的計(jì)數(shù)值減1nGATE門控輸入信號(hào)控制計(jì)數(shù)器工作,可分成電平控制和上升沿控制兩種類型GATE作為各通道的門控信號(hào),對(duì)于各種不同的工作方式
33、,它所起的作用各不相同。在8253的應(yīng)用中,必須正確使用GATE信號(hào),才能保證各通道的正常操作。nOUT計(jì)數(shù)器輸出信號(hào)當(dāng)一次計(jì)數(shù)過程結(jié)束(計(jì)數(shù)值減為0),OUT引腳上將產(chǎn)生一個(gè)輸出信號(hào)47讀寫操作及編程命令讀寫操作及編程命令 1.方式命令的作用方式命令的作用 主要是對(duì)主要是對(duì)82538253進(jìn)行初始化,初始化的工作有兩點(diǎn):進(jìn)行初始化,初始化的工作有兩點(diǎn):(1 1)向命令寄存器寫入方式命令,以選擇計(jì)數(shù)器()向命令寄存器寫入方式命令,以選擇計(jì)數(shù)器(3 3個(gè)計(jì)個(gè)計(jì)數(shù)器之一),確定工作方式(數(shù)器之一),確定工作方式(6 6種方式之一),指定計(jì)種方式之一),指定計(jì)數(shù)器計(jì)數(shù)初值的長度和裝入順序以及計(jì)數(shù)值的
34、碼制數(shù)器計(jì)數(shù)初值的長度和裝入順序以及計(jì)數(shù)值的碼制(BCDBCD或二進(jìn)制碼)?;蚨M(jìn)制碼)。(2 2)向已選定的計(jì)數(shù)器按方式命令的要求寫入計(jì)數(shù)初值。)向已選定的計(jì)數(shù)器按方式命令的要求寫入計(jì)數(shù)初值。 48D7D6D5D4D3D2D1D0計(jì)數(shù)器選擇讀寫字節(jié)數(shù)工作方式碼制2. 方式命令的格式 方式命令的格式如下所示:D7D6(SC1SC0): 用于選擇計(jì)數(shù)器SC1SC0=00 選擇0號(hào)計(jì)數(shù)器SC1SC0=01 選擇1號(hào)計(jì)數(shù)器SC1SC0=10 選擇2號(hào)計(jì)數(shù)器SC1SC0=11 不用D5D4(RL1RL0): 用來控制計(jì)數(shù)器讀/寫的字節(jié)數(shù)(1或2個(gè)字節(jié))及讀/寫高低字節(jié)的順序。RL1RL0=00 為鎖存
35、命令RL1RL0=01 僅讀/寫一個(gè)低字節(jié)RL1RL0=10 僅讀/寫一個(gè)高字節(jié)RL1RL0=11 讀/寫2個(gè)字節(jié), 先是低字節(jié),后是高字節(jié)49D7D6D5D4D3D2D1D0計(jì)數(shù)器選擇讀寫字節(jié)數(shù)工作方式碼制 D0(BCD):用來指定計(jì)數(shù)器的碼制,是按二進(jìn)還是按二十進(jìn)制數(shù)計(jì)數(shù)。BCD=0 二進(jìn)制 BCD=1 二十進(jìn)制 DD(): 用來選擇計(jì)數(shù)器的工作方式。10= 000 0方式10= 001 1方式 10= 010 2方式10= 011 3方式10= 100 4方式10= 101 5方式(110和111不用)50例:選擇例:選擇2號(hào)計(jì)數(shù)器,工作在號(hào)計(jì)數(shù)器,工作在3方式,計(jì)數(shù)初值為方式,計(jì)數(shù)初值
36、為533H(2個(gè)字個(gè)字節(jié)),采用二進(jìn)制計(jì)數(shù)。其初始化程序段為節(jié)),采用二進(jìn)制計(jì)數(shù)。其初始化程序段為: MOV DX,307H ;命令口;命令口 MOV AL,10110110 B ;2號(hào)計(jì)數(shù)器的初始化命令號(hào)計(jì)數(shù)器的初始化命令字字 OUT DX,AL ;寫入命令寄存器;寫入命令寄存器 MOV DX,306H ;2號(hào)計(jì)數(shù)器數(shù)據(jù)口號(hào)計(jì)數(shù)器數(shù)據(jù)口 MOV AX,533H ;計(jì)數(shù)初值;計(jì)數(shù)初值 OUT DX,AL ;選送低字節(jié)到;選送低字節(jié)到2號(hào)計(jì)數(shù)器號(hào)計(jì)數(shù)器 MOV AL,AH ;取高字節(jié)送;取高字節(jié)送AL OUT DX,AL ;后送高字節(jié)到;后送高字節(jié)到2號(hào)計(jì)數(shù)器號(hào)計(jì)數(shù)器方波發(fā)生器51 3. 讀當(dāng)前
37、計(jì)數(shù)值讀當(dāng)前計(jì)數(shù)值 在事件計(jì)數(shù)器的應(yīng)用中,需要讀出計(jì)數(shù)過程中的當(dāng)在事件計(jì)數(shù)器的應(yīng)用中,需要讀出計(jì)數(shù)過程中的當(dāng)前計(jì)數(shù)值,以便根據(jù)這個(gè)值做計(jì)數(shù)判斷。前計(jì)數(shù)值,以便根據(jù)這個(gè)值做計(jì)數(shù)判斷。 例:要求讀出并檢查例:要求讀出并檢查1 1號(hào)計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值是否是全號(hào)計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值是否是全“1”1”(假定計(jì)數(shù)值只有低(假定計(jì)數(shù)值只有低8 8位),其程序段為位),其程序段為 MOV DX, 307H ;命令口;命令口L: MOV AL,01000000B ;1號(hào)計(jì)數(shù)器的鎖存命令號(hào)計(jì)數(shù)器的鎖存命令 OUT DX,AL ;寫入命令寄存器;寫入命令寄存器 MOV DX,305H ;1號(hào)計(jì)數(shù)器數(shù)據(jù)口號(hào)計(jì)數(shù)器數(shù)據(jù)口
38、 IN AL,DX ;讀;讀1號(hào)計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值號(hào)計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值 CMP AL,0FFH ;比較;比較 JNE L ;非全;非全“1”,再讀,再讀 HLT ;是全;是全“1”,暫停,暫停52 8253芯片的工作方式及特點(diǎn):芯片的工作方式及特點(diǎn):方式名稱初值自動(dòng)重裝GATE(電平/上升沿) OUT波形0計(jì)數(shù)結(jié)束中斷方式否高電平低電平1單脈沖發(fā)生器否上升沿低電平2速率發(fā)生器是高電平單個(gè)負(fù)脈沖3方波發(fā)生器是高電平方波4軟件觸發(fā)方式否高電平單個(gè)負(fù)脈沖5硬件觸發(fā)方式是上升沿單個(gè)負(fù)脈沖53 工作方式及特點(diǎn)工作方式及特點(diǎn) 8253/8254芯片的每個(gè)計(jì)數(shù)器通道都有芯片的每個(gè)計(jì)數(shù)器通道都有6種工作方式可
39、供選用。種工作方式可供選用。 1. 方式方式0-計(jì)數(shù)結(jié)束中斷方式計(jì)數(shù)結(jié)束中斷方式 低電平輸出低電平輸出(GATE信號(hào)上升沿繼續(xù)計(jì)數(shù))信號(hào)上升沿繼續(xù)計(jì)數(shù)) 54 方式方式0有如下有如下3個(gè)特點(diǎn)個(gè)特點(diǎn):n當(dāng)向計(jì)數(shù)器寫完計(jì)數(shù)值后,開始計(jì)數(shù),計(jì)數(shù)一旦當(dāng)向計(jì)數(shù)器寫完計(jì)數(shù)值后,開始計(jì)數(shù),計(jì)數(shù)一旦開始,輸出端開始,輸出端OUTOUT就變成低電平,并在計(jì)數(shù)過程就變成低電平,并在計(jì)數(shù)過程中一直保持低電平,當(dāng)計(jì)數(shù)器減到零時(shí),中一直保持低電平,當(dāng)計(jì)數(shù)器減到零時(shí),OUTOUT立立即變成高電平。即變成高電平。n門控信號(hào)門控信號(hào)GATEGATE為高電平時(shí),計(jì)數(shù)器工作;當(dāng)為高電平時(shí),計(jì)數(shù)器工作;當(dāng)GATEGATE為低電平時(shí)
40、,計(jì)數(shù)器停止了工作,其計(jì)數(shù)值保持為低電平時(shí),計(jì)數(shù)器停止了工作,其計(jì)數(shù)值保持不變。如果門控信號(hào)不變。如果門控信號(hào)GATEGATE再次變高時(shí),計(jì)數(shù)器從再次變高時(shí),計(jì)數(shù)器從中止處繼續(xù)計(jì)數(shù)。中止處繼續(xù)計(jì)數(shù)。n在計(jì)數(shù)器工作期間,如果重新寫入新的計(jì)數(shù)值,在計(jì)數(shù)器工作期間,如果重新寫入新的計(jì)數(shù)值,計(jì)數(shù)器將按新寫入的計(jì)數(shù)初值重新工作。計(jì)數(shù)器將按新寫入的計(jì)數(shù)初值重新工作。55n利用工作方式利用工作方式0既可完成計(jì)數(shù)功能,也可完成定時(shí)功既可完成計(jì)數(shù)功能,也可完成定時(shí)功能。能。n當(dāng)用作當(dāng)用作計(jì)數(shù)器計(jì)數(shù)器時(shí),應(yīng)將要求計(jì)數(shù)的次數(shù)預(yù)置到計(jì)數(shù)器時(shí),應(yīng)將要求計(jì)數(shù)的次數(shù)預(yù)置到計(jì)數(shù)器中,將要求計(jì)數(shù)的事件以脈沖方式從中,將要求計(jì)數(shù)
41、的事件以脈沖方式從CLKi端輸入,由端輸入,由它對(duì)計(jì)數(shù)器進(jìn)行減它對(duì)計(jì)數(shù)器進(jìn)行減“1”計(jì)數(shù),直到計(jì)數(shù)值為計(jì)數(shù),直到計(jì)數(shù)值為0,此刻,此刻OUTi輸出正跳變,表示計(jì)數(shù)次數(shù)到。輸出正跳變,表示計(jì)數(shù)次數(shù)到。n當(dāng)用作當(dāng)用作定時(shí)器定時(shí)器時(shí),應(yīng)把根據(jù)要求定時(shí)的時(shí)間和時(shí),應(yīng)把根據(jù)要求定時(shí)的時(shí)間和CLKi的的周期計(jì)算出定時(shí)系數(shù),預(yù)置到計(jì)數(shù)器中。從周期計(jì)算出定時(shí)系數(shù),預(yù)置到計(jì)數(shù)器中。從CLKi輸入輸入的應(yīng)是一定頻率的時(shí)鐘脈沖,由它對(duì)計(jì)數(shù)器進(jìn)行減的應(yīng)是一定頻率的時(shí)鐘脈沖,由它對(duì)計(jì)數(shù)器進(jìn)行減“1”計(jì)數(shù),定時(shí)時(shí)間從寫入計(jì)數(shù)值開始,到計(jì)數(shù)值計(jì)計(jì)數(shù),定時(shí)時(shí)間從寫入計(jì)數(shù)值開始,到計(jì)數(shù)值計(jì)到到“0”為止,為止,OUTi輸出正跳
42、變,表示定時(shí)時(shí)間到。輸出正跳變,表示定時(shí)時(shí)間到。56例:例:使計(jì)數(shù)器使計(jì)數(shù)器T T1 1工作在工作在0 0方式,進(jìn)行方式,進(jìn)行1616位二進(jìn)制計(jì)數(shù),位二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值的高低字節(jié)分別為計(jì)數(shù)初值的高低字節(jié)分別為BYTEHBYTEH和和BYTELBYTEL。 其初始化程序段為其初始化程序段為: : MOV DX,307H MOV DX,307H ;命令口;命令口 MOV ALMOV AL,01110000B01110000B ;方式字;方式字 OUT DXOUT DX,AL AL MOV DX MOV DX,305H 305H ;T T1 1數(shù)據(jù)口數(shù)據(jù)口 MOV ALMOV AL,BYTEL B
43、YTEL ;計(jì)數(shù)值低字節(jié);計(jì)數(shù)值低字節(jié) OUT DXOUT DX,ALAL MOV AL MOV AL,BYTEH BYTEH ;計(jì)數(shù)值高字節(jié);計(jì)數(shù)值高字節(jié) OUT DXOUT DX,AL AL 57 2. 方式方式1-單脈沖發(fā)生器單脈沖發(fā)生器低電平輸出低電平輸出(GATE信號(hào)上升沿重新計(jì)數(shù))信號(hào)上升沿重新計(jì)數(shù)) 方式方式1為可編程的單穩(wěn)態(tài)工作方式。為可編程的單穩(wěn)態(tài)工作方式。58n情況一:情況一:寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開始工作;寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開始工作;門控信號(hào)門控信號(hào)GATEGATE有效,才開始工作,使輸出有效,才開始工作,使輸出OUTOUT變成低電變成低電平;平;直到
44、計(jì)數(shù)器值減到零后,輸出才變高電平。直到計(jì)數(shù)器值減到零后,輸出才變高電平。n情況二:情況二: 在計(jì)數(shù)器工作期間,當(dāng)在計(jì)數(shù)器工作期間,當(dāng)GATEGATE又出現(xiàn)一個(gè)上升沿時(shí),計(jì)又出現(xiàn)一個(gè)上升沿時(shí),計(jì)數(shù)器重新裝入原計(jì)數(shù)初值并重新開始計(jì)數(shù),見圖中數(shù)器重新裝入原計(jì)數(shù)初值并重新開始計(jì)數(shù),見圖中。1.1. 如果工作期間對(duì)計(jì)數(shù)器寫入新的計(jì)數(shù)初值,則要等到如果工作期間對(duì)計(jì)數(shù)器寫入新的計(jì)數(shù)初值,則要等到當(dāng)前的計(jì)數(shù)值計(jì)滿回零且門控信號(hào)再次出現(xiàn)上升沿后,當(dāng)前的計(jì)數(shù)值計(jì)滿回零且門控信號(hào)再次出現(xiàn)上升沿后,才按新寫入的計(jì)數(shù)初值開始工作,見圖所示才按新寫入的計(jì)數(shù)初值開始工作,見圖所示。59例:例: 使計(jì)數(shù)器使計(jì)數(shù)器T T2 2
45、 工作在工作在1 1方式,進(jìn)行方式,進(jìn)行8 8位二進(jìn)位二進(jìn)制計(jì)數(shù),并設(shè)計(jì)數(shù)初值的低制計(jì)數(shù),并設(shè)計(jì)數(shù)初值的低8 8位為位為BYTELBYTEL。 其初始化程序段為其初始化程序段為 MOV DX,307H ;命令口;命令口 MOV AL,10010010B ;方式字;方式字 OUT DX,AL MOV DX,306H ;T2數(shù)據(jù)口數(shù)據(jù)口 MOV AL,BYTEL ;低;低8位計(jì)數(shù)值位計(jì)數(shù)值 OUT DX,AL603. 方式方式2-頻率發(fā)生器(分頻器)頻率發(fā)生器(分頻器) 周期性負(fù)脈沖輸出周期性負(fù)脈沖輸出 方式方式2 2是一種具有自動(dòng)裝入時(shí)間常數(shù)(計(jì)數(shù)初值)是一種具有自動(dòng)裝入時(shí)間常數(shù)(計(jì)數(shù)初值)的的
46、N N分頻器。分頻器。61n進(jìn)入工作方式進(jìn)入工作方式2,OUTi輸出高電平,輸出高電平,裝入計(jì)數(shù)值裝入計(jì)數(shù)值n后如果后如果GATE為高電平,則立即開始計(jì)數(shù)為高電平,則立即開始計(jì)數(shù),OUTi保持為高電平不保持為高電平不變;待計(jì)數(shù)值減到變;待計(jì)數(shù)值減到“1”和和“0”之間,之間,OUTi將輸出寬度為將輸出寬度為一個(gè)一個(gè)CLKi周期的周期的負(fù)脈沖負(fù)脈沖n計(jì)數(shù)值為計(jì)數(shù)值為“0”時(shí),自動(dòng)重新裝入計(jì)數(shù)初值時(shí),自動(dòng)重新裝入計(jì)數(shù)初值n,實(shí)現(xiàn),實(shí)現(xiàn)循環(huán)計(jì)循環(huán)計(jì)數(shù)數(shù)nOUTi將輸出一定頻率的負(fù)脈沖序列,其脈沖寬度固定為將輸出一定頻率的負(fù)脈沖序列,其脈沖寬度固定為一個(gè)一個(gè)CLKi周期,重復(fù)周期為周期,重復(fù)周期為CL
47、Ki周期的周期的n倍。倍。62n如果在減如果在減“1”計(jì)數(shù)過程中,計(jì)數(shù)過程中,GATE變?yōu)闊o效變?yōu)闊o效(輸輸入入0電平電平),則暫停減,則暫停減“1”計(jì)數(shù),待計(jì)數(shù),待GATE恢復(fù)有恢復(fù)有效后,從初值效后,從初值n開始重新計(jì)數(shù)。開始重新計(jì)數(shù)。n如果在操作過程中要求改變輸出脈沖的速率,如果在操作過程中要求改變輸出脈沖的速率,CPU可可在任何時(shí)候,重新寫入新的計(jì)數(shù)值,它不會(huì)影響正在在任何時(shí)候,重新寫入新的計(jì)數(shù)值,它不會(huì)影響正在進(jìn)行的減進(jìn)行的減“1”計(jì)數(shù)過程,而是從下一個(gè)計(jì)數(shù)操作周期計(jì)數(shù)過程,而是從下一個(gè)計(jì)數(shù)操作周期開始按新的計(jì)數(shù)值改變輸出脈沖的速率。開始按新的計(jì)數(shù)值改變輸出脈沖的速率。63例:例:使
48、計(jì)數(shù)器使計(jì)數(shù)器T T0 0 工作在方式工作在方式2 2,進(jìn)行,進(jìn)行1616位二進(jìn)制計(jì)數(shù)。位二進(jìn)制計(jì)數(shù)。 其初始化程序段為其初始化程序段為 MOV DXMOV DX,307H 307H ;命令口;命令口 MOV ALMOV AL,00110100B00110100B ;方式字;方式字 OUT DXOUT DX,ALAL MOV DX MOV DX,304H 304H ;T T2 2數(shù)據(jù)口數(shù)據(jù)口 MOV ALMOV AL,BYTEL BYTEL ;低;低8 8位計(jì)數(shù)值位計(jì)數(shù)值 OUT DXOUT DX,ALAL MOV AL MOV AL,BYTEL BYTEL ;高;高8 8位計(jì)數(shù)值位計(jì)數(shù)值 O
49、UT DXOUT DX,ALAL64 方式方式3-方波發(fā)生器方波發(fā)生器周期性方波輸出周期性方波輸出 方式方式3工作方式與方式工作方式與方式2基本相同,也具有自動(dòng)裝基本相同,也具有自動(dòng)裝入時(shí)間常數(shù)(計(jì)數(shù)初值)的功能。入時(shí)間常數(shù)(計(jì)數(shù)初值)的功能。65n 工作在方式工作在方式3 3,引腳,引腳OUTOUT輸出的不是一個(gè)時(shí)鐘周輸出的不是一個(gè)時(shí)鐘周期的負(fù)脈沖,而是占空比為期的負(fù)脈沖,而是占空比為1 1:1 1或近似或近似1 1:1 1的的方波;當(dāng)計(jì)數(shù)初值為偶數(shù)時(shí),輸出在前一半的方波;當(dāng)計(jì)數(shù)初值為偶數(shù)時(shí),輸出在前一半的計(jì)數(shù)過程中為高電平,在后一半的計(jì)數(shù)過程中計(jì)數(shù)過程中為高電平,在后一半的計(jì)數(shù)過程中為低電
50、平。為低電平。n 由于方式由于方式3 3輸出的波形是方波,并且具有自動(dòng)輸出的波形是方波,并且具有自動(dòng)重裝計(jì)數(shù)初值的功能,因此,重裝計(jì)數(shù)初值的功能,因此,82538253一旦計(jì)數(shù)開一旦計(jì)數(shù)開始,就會(huì)在輸出端始,就會(huì)在輸出端OUTOUT輸出連續(xù)不斷的方波。輸出連續(xù)不斷的方波。66n如果在操作過程中,如果在操作過程中,GATEGATE變?yōu)闊o效,則暫停減變?yōu)闊o效,則暫停減“1”1”計(jì)數(shù)過程,直到計(jì)數(shù)過程,直到GATEGATE再次有效,重新從再次有效,重新從初值初值n n開始減開始減“1”1”計(jì)數(shù)。計(jì)數(shù)。n如果要求改變輸出方波的速率,則如果要求改變輸出方波的速率,則CPUCPU可在任可在任何時(shí)候重新裝入
51、新的計(jì)數(shù)初值何時(shí)候重新裝入新的計(jì)數(shù)初值n n,并從下一個(gè),并從下一個(gè)計(jì)數(shù)操作周期開始改變輸出方波的速率。計(jì)數(shù)操作周期開始改變輸出方波的速率。675. 方式方式4-軟件觸發(fā)方式軟件觸發(fā)方式 單次負(fù)脈沖輸出單次負(fù)脈沖輸出 方式方式4工作方式是一種由軟件啟動(dòng)的閘門式計(jì)數(shù)方式,即工作方式是一種由軟件啟動(dòng)的閘門式計(jì)數(shù)方式,即由寫入計(jì)數(shù)初值來觸發(fā)計(jì)數(shù)器開始工作。門控信號(hào)由寫入計(jì)數(shù)初值來觸發(fā)計(jì)數(shù)器開始工作。門控信號(hào)GATE為為高電平時(shí),允許計(jì)數(shù)器工作。高電平時(shí),允許計(jì)數(shù)器工作。例:例:使計(jì)數(shù)器使計(jì)數(shù)器T1T1工作在方式工作在方式4 4,進(jìn)行,進(jìn)行8 8位二進(jìn)制計(jì)數(shù),并且只裝位二進(jìn)制計(jì)數(shù),并且只裝入高入高8
52、8位計(jì)數(shù)值。其初始化程序段為:位計(jì)數(shù)值。其初始化程序段為: MOV DX,307H ;命令口;命令口 MOV AL,00110100B ;方式字;方式字 OUT DX,AL MOV DX,304H ;T2數(shù)據(jù)口數(shù)據(jù)口 MOV AL,BYTEL ;低;低8位計(jì)數(shù)值位計(jì)數(shù)值 OUT DX,AL68圖3.8 8253的4方式時(shí)序波形CLKWROUTOUTWR5n=54201321GATE554320OUTn=3310210n=269n進(jìn)入工作方式進(jìn)入工作方式4,OUTi輸出高電平。輸出高電平。n裝入計(jì)數(shù)值裝入計(jì)數(shù)值n后,如果后,如果GATE為高電平,則立即開始減為高電平,則立即開始減“1”計(jì)數(shù),直到
53、計(jì)數(shù)值減到計(jì)數(shù),直到計(jì)數(shù)值減到“0”為止,為止,OUTi輸出寬度輸出寬度為一個(gè)為一個(gè)CLKi周期的負(fù)脈沖。周期的負(fù)脈沖。n由軟件裝入的計(jì)數(shù)值只一次有效由軟件裝入的計(jì)數(shù)值只一次有效,如果要繼續(xù)操作,必,如果要繼續(xù)操作,必須重新置入計(jì)數(shù)初值須重新置入計(jì)數(shù)初值n。n如果在操作過程中,如果在操作過程中,GATE變?yōu)闊o效,則停止減變?yōu)闊o效,則停止減“1”計(jì)計(jì)數(shù),到數(shù),到GATE再次有效時(shí),重新從初值開始減再次有效時(shí),重新從初值開始減“1”計(jì)數(shù)。計(jì)數(shù)。70n利用這種工作方式可以完成利用這種工作方式可以完成定時(shí)功能定時(shí)功能,定時(shí)時(shí)間從裝入,定時(shí)時(shí)間從裝入計(jì)數(shù)值計(jì)數(shù)值n開始,開始,OUTi輸出負(fù)脈沖表示定時(shí)時(shí)
54、間到,其定輸出負(fù)脈沖表示定時(shí)時(shí)間到,其定時(shí)時(shí)間時(shí)時(shí)間=nCLK周期。周期。n這種工作方式也可完成這種工作方式也可完成計(jì)數(shù)功能計(jì)數(shù)功能,它要求計(jì)數(shù)的事件以,它要求計(jì)數(shù)的事件以脈沖的方式從脈沖的方式從CLKi輸入,將計(jì)數(shù)次數(shù)作為計(jì)數(shù)初值裝入輸入,將計(jì)數(shù)次數(shù)作為計(jì)數(shù)初值裝入后,由后,由CLKi端輸入的計(jì)數(shù)脈沖進(jìn)行減端輸入的計(jì)數(shù)脈沖進(jìn)行減“1”計(jì)數(shù),直到計(jì)計(jì)數(shù),直到計(jì)數(shù)值為數(shù)值為“0”,由,由OUTi端輸出負(fù)脈沖端輸出負(fù)脈沖(表示計(jì)數(shù)次數(shù)到表示計(jì)數(shù)次數(shù)到)。當(dāng)然也可利用當(dāng)然也可利用OUTi向向CPU發(fā)出中斷請(qǐng)求。發(fā)出中斷請(qǐng)求。n因此工作方式因此工作方式4與工作方式與工作方式0很相似,只是方式很相似,只
55、是方式0在在OUTi端輸出正階躍信號(hào)、方式端輸出正階躍信號(hào)、方式4在在OUTi端輸出負(fù)脈沖信號(hào)。端輸出負(fù)脈沖信號(hào)。716. 方式方式5-硬件觸發(fā)方式硬件觸發(fā)方式 單次負(fù)脈沖輸出()單次負(fù)脈沖輸出() 方式方式5工作特點(diǎn)是由工作特點(diǎn)是由GATE上升沿觸發(fā)計(jì)數(shù)器開始工作。上升沿觸發(fā)計(jì)數(shù)器開始工作。n在方式在方式5 5工作方式下,當(dāng)寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即工作方式下,當(dāng)寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開始計(jì)數(shù),而要由門控信號(hào)的上升沿啟動(dòng)計(jì)數(shù)。開始計(jì)數(shù),而要由門控信號(hào)的上升沿啟動(dòng)計(jì)數(shù)。n 在計(jì)數(shù)過程中(或者計(jì)數(shù)結(jié)束后),如果門控再次出現(xiàn)上在計(jì)數(shù)過程中(或者計(jì)數(shù)結(jié)束后),如果門控再次出現(xiàn)上升沿,計(jì)數(shù)器將從原裝入的計(jì)數(shù)初值重新計(jì)數(shù)。升沿,計(jì)數(shù)器將從原裝入的計(jì)數(shù)初值重新計(jì)數(shù)。72 小結(jié):小結(jié):6 6 種工作方式的比較種工作方式的比較n0 0方式(門控單穩(wěn))和方式(門控單穩(wěn))和
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 階段性工作完成情況統(tǒng)計(jì)表
- 耐高壓潔凈管道施工方案
- 個(gè)性化服裝定制設(shè)計(jì)與生產(chǎn)管理方案
- 針對(duì)未來工作安排的安排計(jì)劃
- 2025年奧沙利鉑合作協(xié)議書
- 網(wǎng)絡(luò)安全協(xié)議與數(shù)據(jù)加密技術(shù)試題集
- 德州公路標(biāo)志桿施工方案
- 場地借用協(xié)議書
- 刮瓷工程承包合同
- 1.1 等腰三角形(1) 等腰三角形的性質(zhì)-八年級(jí)數(shù)學(xué)下冊(cè)10分鐘課前預(yù)習(xí)練(北師大版)(原卷版)
- 《急性胰腺炎與妊娠》課件
- 1.北京的春節(jié) 練習(xí)題(含答案)
- (一模)渭南市2025屆高三教學(xué)質(zhì)量檢測(I)語文試卷(含答案解析)
- (二模)2025年新疆普通高考適應(yīng)性檢測分學(xué)科第二次模擬考試 生物試卷(含答案詳解)
- 精神科護(hù)理知識(shí)考試題庫300題及答案
- 2025年支部工作計(jì)劃
- 精神病老人藥物護(hù)理
- ISO27001信息安全管理體系全套文件(手冊(cè)+程序文件+作業(yè)規(guī)范)
- 完全植入式輸液港維護(hù)及并發(fā)癥處置專家共識(shí)解讀
- 抖音矩陣規(guī)劃方案
- 《焊接檢驗(yàn)員培訓(xùn)》課件
評(píng)論
0/150
提交評(píng)論