第8章 計(jì)數(shù)器和定時(shí)器_第1頁
第8章 計(jì)數(shù)器和定時(shí)器_第2頁
第8章 計(jì)數(shù)器和定時(shí)器_第3頁
第8章 計(jì)數(shù)器和定時(shí)器_第4頁
第8章 計(jì)數(shù)器和定時(shí)器_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、定時(shí)器/計(jì)數(shù)器8253 實(shí)現(xiàn)定時(shí)功能的三種方法:(1)軟件定時(shí): 只需運(yùn)行一些指令達(dá)到延時(shí)一段時(shí)間的目的.(2)不可編程的硬件定時(shí): 如 555 芯片,外加電阻和電容即可構(gòu)成定時(shí)電路.(3)可編程定時(shí)器/計(jì)數(shù)器電路: 利用硬件電路和中斷方法控制定時(shí), 定時(shí)時(shí)間和范圍則有軟件來確定和改變, 并有微處理器的時(shí)鐘信號(hào)提供時(shí)間基準(zhǔn). 如INTEL8253,8254.定時(shí)/計(jì)數(shù)概述n軟件定時(shí):節(jié)省硬件,主要缺點(diǎn)是執(zhí)行程序期間,軟件定時(shí):節(jié)省硬件,主要缺點(diǎn)是執(zhí)行程序期間,CPU一直被占用,所以降低了一直被占用,所以降低了CPU的效率,也不容的效率,也不容易提供多作業(yè)環(huán)境。需要用指令去拼湊延時(shí)時(shí)間,易提供多

2、作業(yè)環(huán)境。需要用指令去拼湊延時(shí)時(shí)間,顯得比較麻煩。顯得比較麻煩。n硬件定時(shí):在簡單的軟件控制下,產(chǎn)生準(zhǔn)備的時(shí)間硬件定時(shí):在簡單的軟件控制下,產(chǎn)生準(zhǔn)備的時(shí)間延遲。這種方法的思想是根據(jù)需要定時(shí)的時(shí)間,用延遲。這種方法的思想是根據(jù)需要定時(shí)的時(shí)間,用指令對計(jì)數(shù)器指令對計(jì)數(shù)器/定時(shí)器設(shè)置定時(shí)常數(shù),然后再啟動(dòng)定時(shí)器設(shè)置定時(shí)常數(shù),然后再啟動(dòng)計(jì)數(shù)器計(jì)數(shù)器/定時(shí)器。在計(jì)數(shù)器定時(shí)器。在計(jì)數(shù)器/定時(shí)器開始工作以后,定時(shí)器開始工作以后,CPU不需要管它,而可以做別的工作。優(yōu)點(diǎn)在于計(jì)不需要管它,而可以做別的工作。優(yōu)點(diǎn)在于計(jì)數(shù)時(shí)不占用數(shù)時(shí)不占用CPU的時(shí)間,可以建立起多作業(yè)的環(huán)境,的時(shí)間,可以建立起多作業(yè)的環(huán)境,可以大大

3、提高可以大大提高CPU的效率。的效率??删幊潭〞r(shí)計(jì)數(shù)器的主要用途有:可編程定時(shí)計(jì)數(shù)器的主要用途有:n以均勻分布的時(shí)間間隔中斷分時(shí)操作系統(tǒng),以均勻分布的時(shí)間間隔中斷分時(shí)操作系統(tǒng), 以便切換程序;以便切換程序;n向向IO設(shè)備輸出精確的設(shè)備輸出精確的定時(shí)信號(hào)定時(shí)信號(hào),該信號(hào),該信號(hào) 的周期可由程序控制;的周期可由程序控制;n用作可編程用作可編程波特率或速率波特率或速率發(fā)生器;發(fā)生器;n檢測檢測外部事件發(fā)生的頻率或周期;外部事件發(fā)生的頻率或周期;n統(tǒng)計(jì)統(tǒng)計(jì)外部實(shí)驗(yàn)過程中某一事件發(fā)生的外部實(shí)驗(yàn)過程中某一事件發(fā)生的次數(shù)次數(shù);n在定時(shí)或計(jì)數(shù)達(dá)到編程規(guī)定的值以后,在定時(shí)或計(jì)數(shù)達(dá)到編程規(guī)定的值以后, 產(chǎn)生輸出信

4、號(hào)、也向產(chǎn)生輸出信號(hào)、也向CPU申請申請中斷。中斷。10 10 可編程時(shí)間間隔定時(shí)器芯片可編程時(shí)間間隔定時(shí)器芯片82538253 8253是一種實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能的外圍電路,是一種實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能的外圍電路,擁有擁有3個(gè)獨(dú)立的個(gè)獨(dú)立的16位計(jì)數(shù)器,每個(gè)計(jì)數(shù)器都可通過位計(jì)數(shù)器,每個(gè)計(jì)數(shù)器都可通過程序設(shè)計(jì)的方法設(shè)定為實(shí)現(xiàn)定時(shí)功能的各種操作方程序設(shè)計(jì)的方法設(shè)定為實(shí)現(xiàn)定時(shí)功能的各種操作方式。式。 可編程時(shí)間間隔定時(shí)器芯片可編程時(shí)間間隔定時(shí)器芯片8253有以下幾個(gè)有以下幾個(gè)特點(diǎn)特點(diǎn):n 與與所有所有Intel系列微處理器兼容系列微處理器兼容n 3個(gè)獨(dú)立的個(gè)獨(dú)立的16位的計(jì)數(shù)器位的計(jì)數(shù)器n 最大計(jì)數(shù)范圍

5、為最大計(jì)數(shù)范圍為065535n 6種可編程的計(jì)數(shù)模式種可編程的計(jì)數(shù)模式8253內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu) 8253的內(nèi)部結(jié)的內(nèi)部結(jié)構(gòu)如圖構(gòu)如圖10-1所所示,該芯片內(nèi)示,該芯片內(nèi)部由數(shù)據(jù)總線部由數(shù)據(jù)總線緩沖器、控制緩沖器、控制寄存器、讀寄存器、讀寫控制邏輯以寫控制邏輯以及計(jì)數(shù)器等組及計(jì)數(shù)器等組成成 8253內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)一、數(shù)據(jù)總線緩沖器一、數(shù)據(jù)總線緩沖器 該緩沖器為該緩沖器為8位雙向三態(tài)的緩沖器,可直接掛在數(shù)據(jù)總線位雙向三態(tài)的緩沖器,可直接掛在數(shù)據(jù)總線上。通過它,一方面可以向控制寄存器寫入控制字,向計(jì)數(shù)上。通過它,一方面可以向控制寄存器寫入控制字,向計(jì)數(shù)器寫入計(jì)數(shù)初值;另一方面也可由器寫入計(jì)數(shù)初值;

6、另一方面也可由CPU通過該緩沖器讀取計(jì)通過該緩沖器讀取計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值數(shù)器的當(dāng)前計(jì)數(shù)值 二、讀寫控制邏輯二、讀寫控制邏輯 讀寫邏輯的功能是接收來自讀寫邏輯的功能是接收來自CPUCPU的控制信號(hào),包括讀信的控制信號(hào),包括讀信號(hào)號(hào) 、寫信號(hào)、寫信號(hào) 、片選信號(hào)、片選信號(hào) 和芯片內(nèi)部寄存器的尋址和芯片內(nèi)部寄存器的尋址信號(hào)信號(hào)A A1 1、A A0 0,并完成對,并完成對82538253各計(jì)數(shù)器的讀寫操作各計(jì)數(shù)器的讀寫操作 RDWRCS 8253內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu) 三、三、控制字寄存器控制字寄存器 接收來自接收來自CPU的控制字,并由控制字的控制字,并由控制字D7、D6位的位的編碼決定該控制字寫入哪一

7、個(gè)計(jì)數(shù)器的控制寄存器中編碼決定該控制字寫入哪一個(gè)計(jì)數(shù)器的控制寄存器中 四、四、計(jì)數(shù)器計(jì)數(shù)器 8253有有3個(gè)獨(dú)立的計(jì)數(shù)器通道,每個(gè)通道的結(jié)構(gòu)完個(gè)獨(dú)立的計(jì)數(shù)器通道,每個(gè)通道的結(jié)構(gòu)完全相同。每一個(gè)通道有一個(gè)全相同。每一個(gè)通道有一個(gè)16位減法計(jì)數(shù)器,還有對位減法計(jì)數(shù)器,還有對應(yīng)的應(yīng)的16位初值寄存器和輸出鎖存器。計(jì)數(shù)開始前寫入位初值寄存器和輸出鎖存器。計(jì)數(shù)開始前寫入的計(jì)數(shù)初值存于初值寄存器;計(jì)數(shù)過程中,減法計(jì)數(shù)的計(jì)數(shù)初值存于初值寄存器;計(jì)數(shù)過程中,減法計(jì)數(shù)器的值不斷遞減,而初值寄存器中的初值不變。輸出器的值不斷遞減,而初值寄存器中的初值不變。輸出鎖存器則用于寫入鎖存命令時(shí)鎖定當(dāng)前計(jì)數(shù)值鎖存器則用于寫

8、入鎖存命令時(shí)鎖定當(dāng)前計(jì)數(shù)值 8253每個(gè)計(jì)數(shù)器的內(nèi)部邏輯圖每個(gè)計(jì)數(shù)器的內(nèi)部邏輯圖 9.2.2 8253的引腳信號(hào)的引腳信號(hào) 8253有有24條引腳,雙條引腳,雙列直插式封裝,如圖列直插式封裝,如圖10-2所示所示 一、與一、與CPUCPU一側(cè)的接口信號(hào)一側(cè)的接口信號(hào) nD0D7,三態(tài)雙向數(shù)據(jù)線。,三態(tài)雙向數(shù)據(jù)線。 與與CPU數(shù)據(jù)總線相連,用數(shù)據(jù)總線相連,用于傳遞于傳遞CPU與與8253之間之間的的 數(shù)據(jù)信息、控制信息數(shù)據(jù)信息、控制信息和狀態(tài)信息和狀態(tài)信息 8253的引腳信號(hào)的引腳信號(hào)n 片選信號(hào),輸入,低電平有效。有效時(shí),片選信號(hào),輸入,低電平有效。有效時(shí),表示表示8253被選中,允許被選中,

9、允許CPU 對其進(jìn)行讀對其進(jìn)行讀寫操作。通常連接到寫操作。通常連接到I/O端口地址譯碼電路端口地址譯碼電路的輸出端的輸出端 n ,寫信號(hào),輸入,低電平有效。用于控,寫信號(hào),輸入,低電平有效。用于控制制CPU對對8253的寫操作,可與的寫操作,可與A1、A0信號(hào)信號(hào)配合以決定是寫入控制字還是計(jì)數(shù)初值配合以決定是寫入控制字還是計(jì)數(shù)初值 WRCSn ,讀信號(hào),輸入,低電平有效。用于讀信號(hào),輸入,低電平有效。用于控制控制CPU對對8253的讀操作,可與的讀操作,可與A1、A0信信號(hào)配合讀取某個(gè)計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值號(hào)配合讀取某個(gè)計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值 n A1 、A0,地址輸入線。用于尋址,地址輸入線。用于尋

10、址8253內(nèi)內(nèi)部的部的4個(gè)端口,即個(gè)端口,即3個(gè)計(jì)數(shù)器和一個(gè)控制字。個(gè)計(jì)數(shù)器和一個(gè)控制字。一般與一般與CPU低位的地址線相連,低位的地址線相連,8253的讀的讀寫操作邏輯如表寫操作邏輯如表9-3所示所示 RD 8253的引腳信號(hào)的引腳信號(hào) 表10-1 8253讀/寫操作邏輯 A1 A0 操作功能操作功能 01000計(jì)數(shù)初值裝入計(jì)數(shù)器計(jì)數(shù)初值裝入計(jì)數(shù)器0 01001計(jì)數(shù)初值裝入計(jì)數(shù)器計(jì)數(shù)初值裝入計(jì)數(shù)器101010計(jì)數(shù)初值裝入計(jì)數(shù)器計(jì)數(shù)初值裝入計(jì)數(shù)器2 01011寫控制寄存器寫控制寄存器 00100讀計(jì)數(shù)器讀計(jì)數(shù)器0 00101讀計(jì)數(shù)器讀計(jì)數(shù)器1 00110讀計(jì)數(shù)器讀計(jì)數(shù)器2 CSRDWR 825

11、3的引腳信號(hào)的引腳信號(hào)二、與外部設(shè)備的接口信號(hào)二、與外部設(shè)備的接口信號(hào)nCLK0,1,2,時(shí)鐘脈沖輸入端,用于輸入定時(shí)脈沖,時(shí)鐘脈沖輸入端,用于輸入定時(shí)脈沖或計(jì)數(shù)脈沖信號(hào)?;蛴?jì)數(shù)脈沖信號(hào)。CLK可以是系統(tǒng)時(shí)鐘脈沖,也可可以是系統(tǒng)時(shí)鐘脈沖,也可以由其他脈沖源提供以由其他脈沖源提供 nGATE0,1,2,門控輸入端,用于外部控制計(jì)數(shù)器,門控輸入端,用于外部控制計(jì)數(shù)器的啟動(dòng)計(jì)數(shù)和停止計(jì)數(shù)的操作。兩個(gè)或兩個(gè)以上計(jì)的啟動(dòng)計(jì)數(shù)和停止計(jì)數(shù)的操作。兩個(gè)或兩個(gè)以上計(jì)數(shù)器連用時(shí),可用此信號(hào)來同步,也可用于與外部數(shù)器連用時(shí),可用此信號(hào)來同步,也可用于與外部某信號(hào)的同步某信號(hào)的同步 nOUT0,1,2,,計(jì)數(shù)輸出端。

12、在不同方式的計(jì)數(shù)過,計(jì)數(shù)輸出端。在不同方式的計(jì)數(shù)過程中,程中,OUT引腳上輸出相應(yīng)的信號(hào)引腳上輸出相應(yīng)的信號(hào) 10-2 8253的控制字的控制字一、一、82538253的方式控制字的方式控制字 8253的方式控制字有的方式控制字有4個(gè)主要功能個(gè)主要功能: n從從3個(gè)計(jì)數(shù)器中選擇一個(gè)個(gè)計(jì)數(shù)器中選擇一個(gè) n確確定計(jì)數(shù)器數(shù)據(jù)的讀寫格式定計(jì)數(shù)器數(shù)據(jù)的讀寫格式n確確定計(jì)數(shù)器的工作方式定計(jì)數(shù)器的工作方式n選擇計(jì)數(shù)器的計(jì)數(shù)方式選擇計(jì)數(shù)器的計(jì)數(shù)方式 方式控制字的格式如圖方式控制字的格式如圖9-15所示,其中,所示,其中,X表示沒表示沒有使用位,通常設(shè)置為有使用位,通常設(shè)置為0 8253的控制字格式無效無效 8

13、253的控制字的控制字n計(jì)數(shù)器選擇計(jì)數(shù)器選擇(D7D6) 決定這個(gè)控制字是哪一個(gè)通道的控制決定這個(gè)控制字是哪一個(gè)通道的控制字。由于字。由于3個(gè)通道的工作是完全獨(dú)立的,個(gè)通道的工作是完全獨(dú)立的,所以需要有所以需要有3個(gè)控制字寄存器分別規(guī)定個(gè)控制字寄存器分別規(guī)定相應(yīng)通道的工作方式。但它們的地址是相應(yīng)通道的工作方式。但它們的地址是同一個(gè),即同一個(gè),即A1A011(控制字寄存器的控制字寄存器的地址地址)。所以,需要由這。所以,需要由這2位來決定是哪位來決定是哪一個(gè)通道的控制字一個(gè)通道的控制字 n讀讀/寫格式寫格式(D5D4) CPU向計(jì)數(shù)通道寫入初值和讀取它們的當(dāng)前狀態(tài)向計(jì)數(shù)通道寫入初值和讀取它們的當(dāng)

14、前狀態(tài)時(shí),有幾種不同的格式時(shí),有幾種不同的格式 1.若低若低8位計(jì)數(shù)位計(jì)數(shù),則令則令D5D401, 只寫低只寫低8位,高位,高8位位自動(dòng)置自動(dòng)置0;2.若高若高8位計(jì)數(shù)位計(jì)數(shù),則令則令D5D410, 只寫高只寫高8位,低位,低8位位自動(dòng)為自動(dòng)為0;3.若若16位計(jì)數(shù)位計(jì)數(shù),則令則令D5D411,先寫入低,先寫入低8位,后位,后寫入高寫入高8位;位;4.令令D5D400,則把當(dāng)前計(jì)數(shù)器中的值鎖存到輸,則把當(dāng)前計(jì)數(shù)器中的值鎖存到輸出寄存器中,以便讀取出寄存器中,以便讀取 8253的控制字n工作方式工作方式(D3D2D1) 8253的每個(gè)通道可以有的每個(gè)通道可以有6種不同的工作方式,由種不同的工作方

15、式,由D3D2D1 三三位決定,具體情況在位決定,具體情況在后面后面詳細(xì)介紹詳細(xì)介紹n數(shù)制選擇數(shù)制選擇(D0) 8253的每個(gè)通道都有兩種計(jì)數(shù)制:二進(jìn)制和二的每個(gè)通道都有兩種計(jì)數(shù)制:二進(jìn)制和二十進(jìn)制十進(jìn)制(BCD碼碼),由,由D0位決定。在二進(jìn)制時(shí),寫入初值的范圍為位決定。在二進(jìn)制時(shí),寫入初值的范圍為0000HFFFFH,其中,其中0000H是最大值,表示是最大值,表示65536。在。在二二十進(jìn)制時(shí),寫入初值范圍為十進(jìn)制時(shí),寫入初值范圍為00009999,其中,其中0000表示最大值表示最大值l0000。因?yàn)橛?jì)數(shù)器是先減。因?yàn)橛?jì)數(shù)器是先減1,再判斷是否為再判斷是否為0,所以寫入所以寫入0實(shí)際代

16、表最大計(jì)數(shù)值實(shí)際代表最大計(jì)數(shù)值 8253的控制的控制字字例例【1 1】選用】選用計(jì)數(shù)器計(jì)數(shù)器0計(jì)數(shù),計(jì)數(shù)值為計(jì)數(shù),計(jì)數(shù)值為1000,用,用BCD方式計(jì)數(shù),方式計(jì)數(shù),用方式用方式3計(jì)數(shù),假設(shè)系統(tǒng)安排計(jì)數(shù),假設(shè)系統(tǒng)安排8253計(jì)數(shù)器計(jì)數(shù)器0、1、2和控制和控制端口的地址分別為:端口的地址分別為:220H、221H、222H和和223H,試,試對計(jì)數(shù)器對計(jì)數(shù)器0編程初始化編程初始化 MOV DX,223H MOV AL,00110110H ;二進(jìn)制方式計(jì)數(shù);二進(jìn)制方式計(jì)數(shù) OUT DX,AL ;送計(jì)數(shù)方式控制字;送計(jì)數(shù)方式控制字 MOV DX,220H MOV AX,1000 ;十進(jìn)制數(shù);十進(jìn)制數(shù)1

17、000送給送給AX OUT DX,AL ;先送低;先送低8位位 MOV AL,AH OUT DX,AL ;后送高;后送高8位位 8253的編程邏輯的編程邏輯二、二、8253的編程邏輯的編程邏輯 當(dāng)初始化當(dāng)初始化8253某個(gè)計(jì)數(shù)通道時(shí),首先把相應(yīng)的某個(gè)計(jì)數(shù)通道時(shí),首先把相應(yīng)的方式控制字寫入到控制字寄存器中,再根據(jù)控制字方式控制字寫入到控制字寄存器中,再根據(jù)控制字中數(shù)據(jù)讀中數(shù)據(jù)讀/寫格式寫格式(D5D4)位的規(guī)定,寫入計(jì)數(shù)初值位的規(guī)定,寫入計(jì)數(shù)初值到對應(yīng)的計(jì)數(shù)通道。到對應(yīng)的計(jì)數(shù)通道。8253工作過程中,任一通道工作過程中,任一通道的計(jì)數(shù)值,的計(jì)數(shù)值,CPU可用輸入指令讀取。可用輸入指令讀取。CPU

18、讀到的是讀到的是執(zhí)行輸入指令瞬間計(jì)數(shù)器的當(dāng)前值,但執(zhí)行輸入指令瞬間計(jì)數(shù)器的當(dāng)前值,但8253的計(jì)的計(jì)數(shù)器是數(shù)器是16位的,所以要分位的,所以要分2次讀至次讀至CPU,因此,若,因此,若不鎖存的話,在前后兩次執(zhí)行輸入指令的過程中,不鎖存的話,在前后兩次執(zhí)行輸入指令的過程中,計(jì)數(shù)值可能已經(jīng)發(fā)生變化了計(jì)數(shù)值可能已經(jīng)發(fā)生變化了 8253的編程邏輯的編程邏輯 鎖存當(dāng)前計(jì)數(shù)值有下面鎖存當(dāng)前計(jì)數(shù)值有下面3種方法:種方法: n利用利用GATE信號(hào)使計(jì)數(shù)過程暫停信號(hào)使計(jì)數(shù)過程暫停 n向向8253寫入一個(gè)方式控制字,令寫入一個(gè)方式控制字,令8253通道的輸出通道的輸出鎖存器鎖存。鎖存器鎖存。8253的每個(gè)通道都有

19、一個(gè)的每個(gè)通道都有一個(gè)16位輸出位輸出鎖存器,平時(shí)它的值隨著通道計(jì)數(shù)器的值變化。當(dāng)鎖存器,平時(shí)它的值隨著通道計(jì)數(shù)器的值變化。當(dāng)向通道寫入鎖存的控制字時(shí),它把計(jì)數(shù)器的當(dāng)前值向通道寫入鎖存的控制字時(shí),它把計(jì)數(shù)器的當(dāng)前值鎖存鎖存(計(jì)數(shù)器可繼續(xù)計(jì)數(shù)計(jì)數(shù)器可繼續(xù)計(jì)數(shù)),于是,于是CPU讀取的就是輸讀取的就是輸出鎖存器的值。當(dāng)對計(jì)數(shù)器重新編程,或讀取計(jì)數(shù)出鎖存器的值。當(dāng)對計(jì)數(shù)器重新編程,或讀取計(jì)數(shù)值后,自動(dòng)解除鎖存狀態(tài),它的值又隨減法計(jì)數(shù)器值后,自動(dòng)解除鎖存狀態(tài),它的值又隨減法計(jì)數(shù)器變化變化 n寫讀回命令鎖存寫讀回命令鎖存 10.3 8253的六種工作方式的六種工作方式 8253的每一個(gè)計(jì)數(shù)器都可以按照控

20、的每一個(gè)計(jì)數(shù)器都可以按照控制字的規(guī)定有制字的規(guī)定有6種不同的工作方式。下種不同的工作方式。下面結(jié)合時(shí)序波形圖介紹各種工作方式的面結(jié)合時(shí)序波形圖介紹各種工作方式的計(jì)數(shù)過程計(jì)數(shù)過程: : 五. 8253-PIT的工作方式* CW寫入,OUT=0;* 寫入時(shí)常LSB,通道開始計(jì)數(shù);* 計(jì)數(shù)到零,OUT=1;* 計(jì)數(shù)器只計(jì)數(shù)一遍;* OUT是N+1個(gè)CLK后變高;* 計(jì)數(shù)過程中,GATE=0, 計(jì)數(shù)暫停;* 計(jì)數(shù)過程中可改變計(jì)數(shù)值;* 8253無中斷控制,可用OUT信號(hào)作為中斷請求。1. 方式043210FFOUTGATE=1CLKWRCW=10LSB=432220FFOUTGATECLKWRCW=1

21、0LSB=31 置時(shí)常方式1(可編程單穩(wěn))* 寫入控制字OUT=1,寫入常數(shù)不計(jì)數(shù);* GATE啟動(dòng)計(jì)數(shù),OUT=0;* 計(jì)數(shù)到,OUT=1。*單拍脈沖寬度為N;*由GATE重新啟動(dòng);*計(jì)數(shù)中,可重新啟動(dòng);*計(jì)數(shù)中,可改變計(jì)數(shù)值,再次啟動(dòng)有效。二. 8253-PIT的工作方式3230FFOUTGATECLKWRCW=12LSB=31二. 8253-PIT的工作方式3230OUTGATECLKWRCW=12LSB=312132OUTGATECLKWRCW=14LSB=332132方式2(速率發(fā)生器)* 寫入控制字OUT=1;* 寫入常數(shù)立即對CLK計(jì)數(shù);* 計(jì)數(shù)到1,OUT=0;* 一個(gè)CLK周

22、期后,OUT=1,重新計(jì)數(shù)。* 通道連續(xù)工作不需重置時(shí)常;* 計(jì)數(shù)過程中,GATE=0,計(jì)數(shù)暫停,GATE變高后重新計(jì)數(shù);* 計(jì)數(shù)過程中可改變計(jì)數(shù)值;新的計(jì)數(shù)值在下一次有效。321OUTGATE=1CLKWRCW=14LSB=33213542OUTGATE=1CLKWRCW=16LSB=52545252方式3(方波速率發(fā)生器)* 與方式2的區(qū)別在于:輸出為周期是N個(gè)CLK脈沖的方波。* 若計(jì)數(shù)值為偶數(shù),每個(gè)CLK使計(jì)數(shù)值減2,計(jì)到0,OUT改變狀態(tài),重裝計(jì)數(shù)值開始新的計(jì)數(shù)。*若計(jì)數(shù)值為奇數(shù),第一個(gè)脈沖先減1,以后,每個(gè)CLK使計(jì)數(shù)值減2,計(jì)到0 時(shí),OUT改變狀態(tài),重裝計(jì)數(shù)值后,第一個(gè)脈沖減3

23、,以后,每個(gè)CLK使計(jì)數(shù)值減2,計(jì)到0時(shí),OUT改變狀態(tài)。*GATE信號(hào)控制計(jì)數(shù)過程;*計(jì)數(shù)過程中寫入新的計(jì)數(shù)值將在半周期結(jié)束時(shí)裝入計(jì)數(shù)器。424OUTGATE=1CLKWRCW=16LSB=424242例:要求計(jì)數(shù)器0工作于方式3,輸出方波的頻率為2KHz,計(jì)數(shù)脈沖的頻率為2.5MHz,采用BCD計(jì)數(shù),試寫出初始化程序段。2. 常數(shù)計(jì)算:TC = 2.5MHz/2KHz=1250MOV AL,37HOUT 83H,ALMOV AL,50HOUT 80H,ALMOV AL,12HOUT 80H,AL1. 8253的端口地址為:80H,81H,82H,83H。000111113. 8253的方式

24、控制字為:4. 初始化程序段:方式4(軟件觸發(fā)選通)321OUTGATE=1CLKWRCW=18LSB=30FFFEFD321OUTGATE=1CLKWRCW=18LSB=301FF2LSB=2* 寫入控制字OUT=1;* 寫入常數(shù)立即對CLK計(jì)數(shù);* 計(jì)數(shù)到0,OUT=0;* 一個(gè)CLK周期后,OUT=1,計(jì)數(shù)器停止計(jì)數(shù)。* 計(jì)數(shù)器只計(jì)數(shù)一遍;* OUT是N+1個(gè)CLK后變低;* 計(jì)數(shù)過程中,GATE=0,計(jì)數(shù)暫停;* 若在計(jì)數(shù)過程中,改變計(jì)數(shù)值,則按新的計(jì)數(shù)值重新開始計(jì)數(shù)。方式5(硬件觸發(fā)選通)321OUTGATECLKWRCW=1ALSB=30FF3321OUTGATECLKWRCW=1

25、ALSB=30FF32* 寫入控制字OUT=1;* 寫入常數(shù)后,由GATE的上升沿啟動(dòng)計(jì)數(shù);* 計(jì)數(shù)到0,OUT=0;* 一個(gè)CLK周期后,OUT=1,計(jì)數(shù)器停止計(jì)數(shù)。* 計(jì)數(shù)器只計(jì)數(shù)一次;* OUT是N+1個(gè)CLK后變低;* 在 計(jì)數(shù)過程中出現(xiàn)的GATE脈沖,將使 計(jì)數(shù)器重新開始計(jì)數(shù),對輸出狀態(tài)沒有影響;* 若在計(jì)數(shù)過程中改變計(jì)數(shù)值,只要沒有GATE信號(hào)觸發(fā),不影響計(jì)數(shù)過程。有新的GATE信號(hào)觸發(fā)則按新的計(jì)數(shù)值開始計(jì)數(shù)。 9.2.5 8253幾種工作方式的比較幾種工作方式的比較一、計(jì)數(shù)值一、計(jì)數(shù)值N與輸入與輸入CLK 和輸出和輸出OUT的關(guān)系的關(guān)系 8253在不同工作方式下,計(jì)數(shù)值在不同工作

26、方式下,計(jì)數(shù)值N與輸入與輸入CLK時(shí)鐘脈沖和輸出時(shí)鐘脈沖和輸出OUT的關(guān)系是不同的,的關(guān)系是不同的,如表如表9-4所示所示 表10-2計(jì)數(shù)值N與輸入CLK 和輸出OUT的關(guān)系 方式方式功能功能N與與CLK 和和OUT的關(guān)系的關(guān)系 0計(jì)完最后一個(gè)數(shù)中斷計(jì)完最后一個(gè)數(shù)中斷 寫入寫入N后,過后,過N+1個(gè)個(gè)CLK輸出變高輸出變高 1硬件再觸發(fā)單拍脈沖硬件再觸發(fā)單拍脈沖 寬度為寬度為N-1個(gè)個(gè)CLK的正脈沖的正脈沖 2速率發(fā)生器速率發(fā)生器 每每N個(gè)個(gè)CLK,輸出,輸出N-1個(gè)個(gè)CLK高高, 1個(gè)個(gè)CLK低低 3方波速率發(fā)生器方波速率發(fā)生器 N為偶數(shù):輸出為為偶數(shù):輸出為N/2個(gè)個(gè)CLK高,高,N/2個(gè)

27、個(gè)CLK低的方波;低的方波;N為奇數(shù):輸為奇數(shù):輸出為出為(N+1)/2個(gè)個(gè)CLK高,高,(N-1)/2個(gè)個(gè)CLK低的方波低的方波 4軟件觸發(fā)選通軟件觸發(fā)選通 寫入寫入N后過后過N+1個(gè)個(gè)CLK,輸出一個(gè),輸出一個(gè)CLK寬度的負(fù)脈沖寬度的負(fù)脈沖 5硬件觸發(fā)選通硬件觸發(fā)選通 門控觸發(fā)后過門控觸發(fā)后過N+1個(gè)個(gè)CLK, 輸出一個(gè)輸出一個(gè)CLK寬度的負(fù)脈沖寬度的負(fù)脈沖 8253幾種工作方式的比較幾種工作方式的比較二、啟動(dòng)計(jì)數(shù)和重復(fù)計(jì)數(shù)的條件二、啟動(dòng)計(jì)數(shù)和重復(fù)計(jì)數(shù)的條件 所有工作方式都必須設(shè)置計(jì)數(shù)值才能夠開所有工作方式都必須設(shè)置計(jì)數(shù)值才能夠開始工作,但不是所有的方式一經(jīng)設(shè)置計(jì)數(shù)值始工作,但不是所有的方

28、式一經(jīng)設(shè)置計(jì)數(shù)值就馬上開始計(jì)數(shù),需要有一定的條件才能工就馬上開始計(jì)數(shù),需要有一定的條件才能工作。有些方式一經(jīng)啟動(dòng),計(jì)數(shù)器就永無休止作。有些方式一經(jīng)啟動(dòng),計(jì)數(shù)器就永無休止的工作下去,而有些方式只能計(jì)數(shù)一次。如的工作下去,而有些方式只能計(jì)數(shù)一次。如果要重復(fù)計(jì)數(shù)同樣需要某些條件,這些條件果要重復(fù)計(jì)數(shù)同樣需要某些條件,這些條件如表如表10-3所示所示 表 10-3 啟動(dòng)計(jì)數(shù)和重復(fù)計(jì)數(shù)的條件啟動(dòng)計(jì)數(shù)和重復(fù)計(jì)數(shù)的條件 方方 式式 功功 能能啟動(dòng)條件啟動(dòng)條件 重復(fù)條件重復(fù)條件 0計(jì)完最后一個(gè)數(shù)中斷計(jì)完最后一個(gè)數(shù)中斷 寫計(jì)數(shù)值寫計(jì)數(shù)值 寫計(jì)數(shù)值寫計(jì)數(shù)值 1硬件再觸發(fā)單拍脈沖硬件再觸發(fā)單拍脈沖 外部觸發(fā)外部觸發(fā)

29、 外部觸發(fā)外部觸發(fā) 2速率發(fā)生器速率發(fā)生器 寫計(jì)數(shù)值寫計(jì)數(shù)值 自動(dòng)自動(dòng) 3方波速率發(fā)生器方波速率發(fā)生器 寫計(jì)數(shù)值寫計(jì)數(shù)值 自動(dòng)自動(dòng) 4軟件觸發(fā)選通軟件觸發(fā)選通 寫計(jì)數(shù)值寫計(jì)數(shù)值 寫計(jì)數(shù)值寫計(jì)數(shù)值 5硬件觸發(fā)選通硬件觸發(fā)選通 外部觸發(fā)外部觸發(fā) 外部觸發(fā)外部觸發(fā) 8253幾種工作方式的比較幾種工作方式的比較三、門控信號(hào)的作用三、門控信號(hào)的作用8253在不同的工作方式下,門控信號(hào)在不同的工作方式下,門控信號(hào)GATE的作用如的作用如 表表 10-3所示所示 表表 10-3 門控信號(hào)的作用門控信號(hào)的作用 方方 式式 功功 能能 GATE低或變?yōu)榈偷突蜃優(yōu)榈?上升沿上升沿 高高 0計(jì)完最后一個(gè)數(shù)中斷計(jì)完最

30、后一個(gè)數(shù)中斷 禁止計(jì)數(shù)禁止計(jì)數(shù) - 允許計(jì)數(shù)允許計(jì)數(shù) 1硬件再觸發(fā)單拍脈沖硬件再觸發(fā)單拍脈沖 - (1)啟動(dòng)計(jì)數(shù)啟動(dòng)計(jì)數(shù)(2)下一下一CLK后后使輸出變低使輸出變低 - 2速率發(fā)生器速率發(fā)生器 (1)禁止計(jì)數(shù)禁止計(jì)數(shù)(2)立即使輸出為立即使輸出為高高 (1)重新裝入計(jì)重新裝入計(jì)數(shù)值數(shù)值(2)啟動(dòng)計(jì)數(shù)啟動(dòng)計(jì)數(shù)允許計(jì)數(shù)允許計(jì)數(shù) 3方波速率發(fā)生器方波速率發(fā)生器 (1)禁止計(jì)數(shù)禁止計(jì)數(shù)(2)立即使輸出為立即使輸出為高高 啟動(dòng)計(jì)數(shù)啟動(dòng)計(jì)數(shù) 允許計(jì)數(shù)允許計(jì)數(shù) 4軟件觸發(fā)選通軟件觸發(fā)選通禁止計(jì)數(shù)禁止計(jì)數(shù) -允許計(jì)數(shù)允許計(jì)數(shù) 5硬件觸發(fā)選通硬件觸發(fā)選通 -啟動(dòng)計(jì)數(shù)啟動(dòng)計(jì)數(shù) - 8253幾種工作方式的比較幾種工

31、作方式的比較四、在計(jì)數(shù)過程中改變計(jì)數(shù)值四、在計(jì)數(shù)過程中改變計(jì)數(shù)值 8253的六種工作方式都可以在計(jì)數(shù)器計(jì)數(shù)的六種工作方式都可以在計(jì)數(shù)器計(jì)數(shù)過程中改變計(jì)數(shù)值。新的計(jì)數(shù)值什么時(shí)候起過程中改變計(jì)數(shù)值。新的計(jì)數(shù)值什么時(shí)候起作用,隨工作方式不同而有差異,具體區(qū)別作用,隨工作方式不同而有差異,具體區(qū)別如表如表10-4所示所示 表表 10-4在計(jì)數(shù)過程中改變計(jì)數(shù)值在計(jì)數(shù)過程中改變計(jì)數(shù)值方式方式 功功 能能改變計(jì)數(shù)值改變計(jì)數(shù)值 0計(jì)完最后一個(gè)數(shù)中斷計(jì)完最后一個(gè)數(shù)中斷 立即有效立即有效 1硬件再觸發(fā)單拍脈沖硬件再觸發(fā)單拍脈沖 外部觸發(fā)后有效外部觸發(fā)后有效 2速率發(fā)生器速率發(fā)生器 計(jì)數(shù)到計(jì)數(shù)到1后有效后有效 3方

32、波速率發(fā)生器方波速率發(fā)生器 (1) 外部觸發(fā)后有效外部觸發(fā)后有效(2) 計(jì)數(shù)到計(jì)數(shù)到0后有效后有效 4軟件觸發(fā)選通軟件觸發(fā)選通立即有效立即有效 5硬件觸發(fā)選通硬件觸發(fā)選通 外部觸發(fā)后有效外部觸發(fā)后有效 8253幾種工作方式的比較幾種工作方式的比較 五、8253應(yīng)用舉例例 設(shè)一片8253接在系統(tǒng)中,如圖9-23所示。計(jì)數(shù)器0、1、2及控制口地址分別為320H、321H、322H以及323H,用計(jì)數(shù)器0與計(jì)數(shù)器1級(jí)聯(lián)定時(shí),在OUT1輸出對稱方波,使LED點(diǎn)亮0.5S,熄燈0.5S,周而復(fù)始,試對計(jì)數(shù)器0和計(jì)數(shù)器1初始化編程 分析:由于CLK0輸入f=1MHz,所以周期t0=1s,而定時(shí)時(shí) 間 間

33、隔 為 1 S , 那 么 計(jì) 數(shù) 初 始 值 :1000ms1s=1000000,分配為10001000,即計(jì)數(shù)器0與1分別送初始值1000,均選用二進(jìn)制計(jì)數(shù),并采用方式3計(jì)數(shù),編程如下: 8253應(yīng)用舉例 8253應(yīng)用舉例MOV DX,323H;控制端口地址給DXMOV AL,00110110B ;計(jì)數(shù)器0控制字OUT DX,ALMOV AX,1000MOV DX,320HOUT DX,AL;先送低8位MOV AL,AHOUT DX,AL;后送高8位MOV DX,323HMOV AL,01110110B ;計(jì)數(shù)器1控制字 OUT DX,ALMOV DX,321HMOV AX,1000OUT

34、 DX,AL;先送低8位MOV AL,AHOUT DX,AL;后送高8位 8253應(yīng)用舉例 計(jì)數(shù)器計(jì)數(shù)器0輸出周期為輸出周期為1ms的方波,計(jì)數(shù)器的方波,計(jì)數(shù)器1輸輸出周期為出周期為1000ms的方波,低電平使的方波,低電平使LED導(dǎo)通發(fā)亮。導(dǎo)通發(fā)亮。 當(dāng)每個(gè)計(jì)數(shù)器送完初始值后,要等到下一個(gè)完當(dāng)每個(gè)計(jì)數(shù)器送完初始值后,要等到下一個(gè)完整的整的CLK時(shí)鐘到來時(shí),減法計(jì)數(shù)器才獲得計(jì)數(shù)初始時(shí)鐘到來時(shí),減法計(jì)數(shù)器才獲得計(jì)數(shù)初始值,并開始作減值,并開始作減1計(jì)數(shù)。只要計(jì)數(shù)。只要8253不掉電,它將不掉電,它將不停頓地對外部脈沖進(jìn)行計(jì)數(shù)。不停頓地對外部脈沖進(jìn)行計(jì)數(shù)。 8253應(yīng)用舉例 例例:假如一片假如一片8253的的3個(gè)計(jì)數(shù)器全部級(jí)聯(lián)起來,外部計(jì)個(gè)計(jì)數(shù)器全部級(jí)聯(lián)起來,外部計(jì)數(shù)脈沖的頻率為數(shù)脈沖的頻率為2MHz,采用二進(jìn)制方式計(jì)數(shù),最長的,采用二進(jìn)制方式計(jì)數(shù),最長的定時(shí)間隔是多少?定時(shí)間隔是多少? 解:解: 輸入輸入f=2MHz,所以周期,所以周期t=0.5s 每個(gè)計(jì)數(shù)器的初值為每個(gè)計(jì)數(shù)器的初值為0時(shí)時(shí), , 實(shí)際初值相當(dāng)于實(shí)際初值相當(dāng)于65536,則第一級(jí)定時(shí)間隔為則第一級(jí)定時(shí)間隔為655360.5s=32.768ms 3個(gè)計(jì)數(shù)器全部級(jí)聯(lián),個(gè)計(jì)數(shù)器全部級(jí)聯(lián),定時(shí)間

溫馨提示

  • 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

提交評論