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

下載本文檔

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

文檔簡(jiǎn)介

第6章常用輸入輸出接口芯片應(yīng)用6.4計(jì)數(shù)器/定時(shí)器8253教學(xué)重點(diǎn)可編程計(jì)數(shù)器/定時(shí)器的原理8253的工作方式和編程8253的應(yīng)用教學(xué)內(nèi)容1概述2可編程計(jì)數(shù)器/定時(shí)器的工作原理3可編程計(jì)數(shù)器/定時(shí)器82531概述定時(shí)器/計(jì)數(shù)器的應(yīng)用舉例:定時(shí)信號(hào)的獲得: (1)軟件方法 使用延遲子程序 MOVCX,1000

L1: LOOPL1

(2)硬件方法 使用計(jì)數(shù)器/定時(shí)器

2可編程計(jì)數(shù)器/定時(shí)器的工作原理定時(shí)器由數(shù)字電路中的計(jì)數(shù)電路構(gòu)成,通過(guò)記錄高精度晶振脈沖信號(hào)的個(gè)數(shù),輸出準(zhǔn)確的時(shí)間間隔。計(jì)數(shù)值=定時(shí)時(shí)間/時(shí)鐘脈沖周期計(jì)數(shù)電路如果記錄外設(shè)提供的具有一定隨機(jī)性的脈沖信號(hào)時(shí),它主要反映脈沖的個(gè)數(shù)(進(jìn)而獲知外設(shè)的某種狀態(tài)),又稱為計(jì)數(shù)器。定時(shí)器和計(jì)數(shù)器當(dāng)作為計(jì)數(shù)器時(shí):

設(shè)置計(jì)數(shù)初值后,計(jì)數(shù)執(zhí)行單元隨著時(shí)鐘CLK開始減1計(jì)數(shù),減到零時(shí),從OUT輸出端輸出一個(gè)結(jié)束信號(hào);當(dāng)作為定時(shí)器時(shí):設(shè)置好定時(shí)常數(shù)后,計(jì)數(shù)執(zhí)行單元隨著時(shí)鐘CLK開始減1計(jì)數(shù),減到零時(shí),從OUT輸出端輸出信號(hào),并按定時(shí)常數(shù)重復(fù)進(jìn)行,這樣不斷輸出定時(shí)間隔的信號(hào)。高8位低8位GATECLKOUT輸出鎖存器OL計(jì)數(shù)初值寄存器CR高8位低8位計(jì)數(shù)執(zhí)行部件CE高8位低8位計(jì)數(shù)器/定時(shí)器結(jié)構(gòu)示意圖計(jì)數(shù)器/定時(shí)器的用處①在多任務(wù)的分時(shí)系統(tǒng)中用來(lái)作為中斷信號(hào)實(shí)現(xiàn)程序的切換;②可以向I/O設(shè)備輸出精確的定時(shí)信號(hào);③作為可編程的波特率發(fā)生器;④實(shí)現(xiàn)時(shí)間延遲。3可編程計(jì)數(shù)器/定時(shí)器8253①.8253的內(nèi)部結(jié)構(gòu)②.8253的引腳分配③.8253的工作模式④.8253的控制寄存器的格式⑤.8253的應(yīng)用舉例①.8253的內(nèi)部結(jié)構(gòu)數(shù)據(jù)總線緩沖器是一個(gè)三態(tài)、雙向8位緩沖器,用于將8253與系統(tǒng)數(shù)據(jù)總線D0~D7相連。CPU通過(guò)數(shù)據(jù)總線緩沖器向8253寫入數(shù)據(jù)和命令,或從數(shù)據(jù)總線緩沖器讀取數(shù)據(jù)和狀態(tài)信息。

數(shù)據(jù)總線緩沖器有三個(gè)基本功能:通過(guò)編程向8253寫入工作方式命令字;向計(jì)數(shù)寄存器裝入計(jì)數(shù)值;讀出計(jì)數(shù)值。數(shù)據(jù)總線緩沖器這是8253內(nèi)部操作的控制部分。按CPU發(fā)來(lái)的讀、寫信號(hào)和地址信號(hào),選擇讀出或?qū)懭爰拇嫫?,并且確定數(shù)據(jù)傳輸?shù)姆较?,即是讀出還是寫入。讀/寫邏輯電路控制字寄存器在8253的初始化編程時(shí),由CPU寫入控制字以決定通道的工作方式。此寄存器只能寫入而不能讀出。這是三個(gè)獨(dú)立的定時(shí)/計(jì)數(shù)通道,每個(gè)通道的結(jié)構(gòu)完全相同,每個(gè)通道都有一個(gè)16位的可預(yù)置數(shù)值的減法計(jì)數(shù)器,還有一個(gè)對(duì)應(yīng)的鎖存寄存器構(gòu)成。在編程控制下可以把預(yù)置的數(shù)值鎖存到鎖存寄存器內(nèi)。計(jì)數(shù)器#0、#1、#2在工作過(guò)程中,計(jì)數(shù)器的值不斷遞減,而鎖存寄存器的內(nèi)容不變。

計(jì)數(shù)器內(nèi)容減為0時(shí),還可控制鎖存寄存器自動(dòng)將其數(shù)值填入計(jì)數(shù)器內(nèi)。還可用工作方式字控制計(jì)數(shù)器將其當(dāng)前數(shù)值鎖存到鎖存寄存器內(nèi),以便讀出當(dāng)前計(jì)數(shù)值。每個(gè)計(jì)數(shù)器都有六種工作方式。2.8253的引腳分配8253的內(nèi)部端口地址引腳A1、A0計(jì)數(shù)器的三個(gè)引腳CLK時(shí)鐘輸入信號(hào)——計(jì)數(shù)器對(duì)該引腳輸入的脈沖進(jìn)行計(jì)數(shù),在計(jì)數(shù)過(guò)程中,此引腳上每輸入一個(gè)時(shí)鐘信號(hào)(下降沿),計(jì)數(shù)器的計(jì)數(shù)值減1。8253的基本工作方式是對(duì)CLK端輸入的脈沖進(jìn)行計(jì)數(shù),CLK端輸入的脈沖可以是任何脈沖源提供的脈沖(只要它的周期不小于380ns即可)。GATE門控輸入信號(hào)——通過(guò)外部控制計(jì)數(shù)器工作,可分成電平控制和上升沿控制兩種類型,類型由工作方式?jīng)Q定。OUT計(jì)數(shù)器輸出信號(hào)——當(dāng)一次計(jì)數(shù)過(guò)程結(jié)束(計(jì)數(shù)值減為0),OUT引腳上將產(chǎn)生一個(gè)輸出信號(hào)?;疽?guī)則①.控制字寫入計(jì)數(shù)器時(shí),所有的控制邏輯電路立即復(fù)位,輸出端OUT為初始狀態(tài)(高電平或低電平);②.初值寫入后,要經(jīng)過(guò)1個(gè)時(shí)鐘CLK的上升沿和1個(gè)下降沿后,計(jì)數(shù)執(zhí)行部件才開始計(jì)數(shù);3.8253的工作模式③.在CLK的上升沿時(shí),計(jì)數(shù)器對(duì)門控信號(hào)GATE進(jìn)行采樣,來(lái)決定工作狀態(tài)(計(jì)數(shù)、觸發(fā)、停止、重新置初值);④.在CLK的下降沿時(shí),計(jì)數(shù)器執(zhí)行部件從初值開始作減1計(jì)數(shù);其中0是最大初值,1是最小初值。注意:?jiǎn)?dòng)方式(軟件啟動(dòng)、硬件啟動(dòng));GATE信號(hào)的作用,可以啟動(dòng)計(jì)數(shù)的有效GATE信號(hào)(高電平、上升沿),GATE信號(hào)的變化導(dǎo)致計(jì)數(shù)發(fā)生的變化;OUT輸出波形;計(jì)數(shù)期間向計(jì)數(shù)器寫入新的計(jì)數(shù)值,計(jì)數(shù)的變化;是否自動(dòng)重新裝入

CWN=4WRCLKGATEOUTNN43210FF裝控制字裝初值計(jì)數(shù)開始計(jì)數(shù)結(jié)束

作用是用戶可在設(shè)定時(shí)間上產(chǎn)生中斷信號(hào)模式0:計(jì)數(shù)結(jié)束產(chǎn)生中斷模式0的工作特點(diǎn):①門控電路GATE信號(hào)必須為1,計(jì)數(shù)器才能計(jì)數(shù);②計(jì)數(shù)時(shí)通道輸出端OUT一直為0;③通道計(jì)數(shù)器計(jì)數(shù)到0后,OUT由0到1,同時(shí)計(jì)數(shù)器停止工作;作用是輸出一個(gè)用戶事先設(shè)定寬度的脈沖,脈沖寬度PW=NTCLK模式1:可編程的單穩(wěn)態(tài)觸發(fā)器模式1的工作特點(diǎn):①門控電路GATE是觸發(fā)信號(hào),上升沿有效,即開始計(jì)數(shù)是由GATE的上升沿觸發(fā)的;②觸發(fā)后,通道計(jì)數(shù)器開始計(jì)數(shù),輸出端OUT由高變低;③計(jì)數(shù)器計(jì)數(shù)到0,OUT再由低變高。工作模式2:分頻器CWN=3NN3213213213WRCLKGATEOUT作用是把輸入信號(hào)分頻后以脈沖的形式輸出,而分頻系數(shù)就是用戶事先對(duì)通道計(jì)數(shù)器寫入的初始計(jì)數(shù)值。模式2的工作特點(diǎn):①門控電路GATE信號(hào)必須為1,計(jì)數(shù)器才能對(duì)CLK端上的脈沖進(jìn)行計(jì)數(shù);②當(dāng)計(jì)數(shù)器計(jì)數(shù)到1時(shí),輸出端由高變低,再經(jīng)過(guò)一個(gè)CLK周期,即計(jì)數(shù)器計(jì)數(shù)到0時(shí),輸出端OUT又跳變?yōu)楦?;③通道?jì)數(shù)器計(jì)數(shù)到0后,自動(dòng)重新裝入計(jì)數(shù)初值,實(shí)現(xiàn)循環(huán)計(jì)數(shù);工作模式3:方波發(fā)生器說(shuō)明:特點(diǎn)與方式2類似,主要區(qū)別:輸出方波,其占空比q為①當(dāng)N為偶數(shù)時(shí),q=0.5;②當(dāng)N為奇數(shù)時(shí),q=(N+1)/2N。

CWN=4

NN43214321432

WRCLKGATEOUT模式3的工作特點(diǎn):①門控電路GATE信號(hào)必須為1,計(jì)數(shù)器才能對(duì)CLK端上的脈沖進(jìn)行計(jì)數(shù);②當(dāng)計(jì)數(shù)器計(jì)數(shù)到一半時(shí),輸出端由高變低,計(jì)數(shù)器計(jì)數(shù)到0時(shí),輸出端OUT又跳變?yōu)楦?;③通道?jì)數(shù)器計(jì)數(shù)到0后,自動(dòng)重新裝入計(jì)數(shù)初值,實(shí)現(xiàn)循環(huán)計(jì)數(shù);模式4:軟件觸發(fā)的選通信號(hào)發(fā)生器

CWN=3

NN3210FFFE3210FF

N=3WRCLKGATEOUT作用是CPU通過(guò)指令觸發(fā)一個(gè)選通信號(hào)給外設(shè),選通信號(hào)在觸發(fā)后設(shè)定時(shí)間點(diǎn)上觸發(fā)。模式4的工作特點(diǎn):①門控電路GATE信號(hào)必須為1,計(jì)數(shù)器才能計(jì)數(shù);②當(dāng)計(jì)數(shù)器計(jì)數(shù)到0后,需要重新裝入計(jì)數(shù)值。模式5:硬件觸發(fā)的選通信號(hào)發(fā)生器

CWN=3

NN3210FFFE3210FFWRCLKGATEOUT作用是外部通過(guò)一個(gè)有效沿觸發(fā)信號(hào),啟動(dòng)一個(gè)選通信號(hào)給外設(shè),選通信號(hào)在觸發(fā)后設(shè)定時(shí)間點(diǎn)上發(fā)出。模式5的工作特點(diǎn):①門控電路GATE信號(hào)為上升沿觸發(fā),計(jì)數(shù)器才能計(jì)數(shù);②計(jì)數(shù)時(shí)通道輸出端OUT一直為1;③通道計(jì)數(shù)器計(jì)數(shù)到0后,OUT由1到0,同時(shí)計(jì)數(shù)器停止工作;8253工作方式小結(jié)①.方式2、4、5的輸出波形是相同的,都是寬度為一個(gè)CLK周期的負(fù)脈沖。但方式2是連續(xù)工作,方式4由軟件(設(shè)置計(jì)數(shù)值)觸發(fā)啟動(dòng)方式5由門控脈沖觸發(fā)啟動(dòng)②.寫入計(jì)數(shù)值后才能開始計(jì)數(shù)方式0、2、3、4在寫入計(jì)數(shù)值后,計(jì)數(shù)過(guò)程就開始了方式1、5需要外部觸發(fā)啟動(dòng),才開始計(jì)數(shù)③.6種方式中只有方式2、3是連續(xù)計(jì)數(shù),其他4種方式都是一次計(jì)數(shù),要繼續(xù)工作需要重新啟動(dòng),方式0、4由寫入計(jì)數(shù)值(軟件)啟動(dòng),方式1、5要由外部信號(hào)(硬件)啟動(dòng)。4.8253的控制寄存器的格式00計(jì)數(shù)器001計(jì)數(shù)器110計(jì)數(shù)器211不用00計(jì)數(shù)器鎖存命令01只讀寫低字節(jié)10只讀寫高字節(jié)11先讀寫低字節(jié)后讀寫高字節(jié)(讀寫16位)000模式0001模式1×10模式2×11模式3100模式4101模式50二進(jìn)制1BCD計(jì)數(shù)值寫入計(jì)數(shù)器各自的I/O地址計(jì)數(shù)值范圍選擇二進(jìn)制時(shí)計(jì)數(shù)值范圍:0000H~0FFFFH0000H是最大值,代表65536選擇十進(jìn)制(BCD碼)計(jì)數(shù)值范圍:0000~99990000代表最大值10000設(shè)置控制字命令設(shè)置初始值命令鎖存命令讀出命令寫入命令1.初始化命令2.讀取計(jì)數(shù)值命令8253的編程命令初始化命令(1)對(duì)計(jì)數(shù)器設(shè)置初值前必須先寫入控制字,用來(lái)選擇計(jì)數(shù)器、設(shè)定工作模式和計(jì)數(shù)格式;(2)設(shè)置初值命令用來(lái)給出計(jì)數(shù)的初始值,初值可以是8位,也可以是16位;計(jì)數(shù)初值為8位,則控制字中的RW1、RW0應(yīng)取01,初值只寫入CR的低8位,高8位會(huì)自動(dòng)置0;若是16位初值,而低8位是0,則RW1、RW0應(yīng)取10,初值高8位寫入CR的高8位,CR的低8位會(huì)自動(dòng)置0;若是一般16位初值,則RW1、RW0應(yīng)取11,應(yīng)分兩次寫入初值,先寫低8位、再寫入高8位(此順序不能反)計(jì)數(shù)初始值寫入對(duì)應(yīng)計(jì)數(shù)器的計(jì)數(shù)初值寄存器;設(shè)置計(jì)數(shù)初始值的說(shuō)明單個(gè)計(jì)數(shù)器初始化寫模式控制字寫計(jì)數(shù)低字節(jié)寫計(jì)數(shù)高字節(jié)寫模式控制字(計(jì)數(shù)器0)寫模式控制字(計(jì)數(shù)器1)寫模式控制字(計(jì)數(shù)器2)寫計(jì)數(shù)低字節(jié)(計(jì)數(shù)器0)寫計(jì)數(shù)高字節(jié)(計(jì)數(shù)器0)寫計(jì)數(shù)低字節(jié)(計(jì)數(shù)器1)寫計(jì)數(shù)高字節(jié)(計(jì)數(shù)器1)寫計(jì)數(shù)低字節(jié)(計(jì)數(shù)器2)寫計(jì)數(shù)高字節(jié)(計(jì)數(shù)器2)多個(gè)計(jì)數(shù)器初始化初始化流程先寫入工作模式控制字,接著寫入計(jì)數(shù)初始值計(jì)數(shù)器的順序是任意的,不必一定按照計(jì)數(shù)器0、l、2的順序初始化;可先寫所有計(jì)數(shù)器的工作模式控制字,再裝入各計(jì)數(shù)器的計(jì)數(shù)值(但先控制字再計(jì)數(shù)值的順序不能錯(cuò));計(jì)數(shù)值先寫低再寫高的順序不能錯(cuò);其他順序無(wú)關(guān)緊要初始化流程的注意問(wèn)題例1對(duì)8253計(jì)數(shù)器1編程,讓其工作在方式2,計(jì)數(shù)值是二進(jìn)制的2000H。(思考題)計(jì)數(shù)器1二進(jìn)制數(shù)方式2先寫低8位,后寫高8位

控制字為:01

11

010

0B=74H設(shè)端口地址為120H~123H,則初始化程序段為:

MOVAL,74H;控制字MOVDX,123H;控制字寄存器地址OUTDX,ALMOVDX,121H;計(jì)數(shù)器1地址MOVAL,00H;低8位字節(jié)送ALOUTDX,AL;輸出到計(jì)數(shù)器MOVAL,20H;高8位字節(jié)送ALOUTDX,AL;輸出到計(jì)數(shù)器例2

設(shè)8253的端口地址為8030~8036H(偶地址),要求設(shè)定計(jì)數(shù)器0的工作在模式0下,采用二進(jìn)制計(jì)數(shù)方式,計(jì)數(shù)初值為1000;計(jì)數(shù)器1的工作在模式2下,采用BCD碼計(jì)數(shù)方式,計(jì)數(shù)初值為1000;試寫出8253初始化程序。MOVDX,8036HMOV AL,30HOUTDX,ALMOVDX,8030HMOV AL,0E8HOUT DX,ALMOV AL,03HOUT DX,ALMOVDX,8036HMOV AL,

75HOUTDX,ALMOVDX,

8032HMOV AL,

00HOUT DX,ALMOV AL,10HOUT DX,AL初始化程序讀到的是執(zhí)行輸入指令瞬間計(jì)數(shù)器的現(xiàn)行值。16位計(jì)數(shù)值要分兩次讀至CPU,故必須將數(shù)據(jù)鎖存。有兩種辦法:利用外加控制信號(hào)GATE使計(jì)數(shù)器暫停計(jì)數(shù),然后按照工作方式控制字中RL1RL0的規(guī)定讀取規(guī)定字節(jié)讀取計(jì)數(shù)值命令

CPU向8253發(fā)出鎖存命令字(SC1SC0)鎖存計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值(當(dāng)前計(jì)數(shù)值鎖存在輸出鎖存器,而減1計(jì)數(shù)器可以繼續(xù)計(jì)數(shù)),再讀取輸出鎖存器的計(jì)數(shù)值。當(dāng)CPU讀取了規(guī)定的字節(jié)數(shù)后,輸出鎖存器自動(dòng)解除鎖存狀態(tài),其值又跟隨計(jì)數(shù)器而變化。MOVDX,8036HMOV AL,80HOUT DX,ALMOVDX,8034HINAL,DXMOV CL,ALINAL,DXMOV CH,AL例38253的端口地址為8030~8036H,要求將計(jì)數(shù)器2的當(dāng)前計(jì)數(shù)值讀出并送到CX中。例:現(xiàn)有一個(gè)高精密晶體振蕩電路,輸出信號(hào)是脈沖信號(hào),頻率為1MHz。要求利用8253做一個(gè)秒信號(hào)發(fā)生器,其輸出接一發(fā)光二極管,以0.5秒點(diǎn)亮,0.5秒熄滅的方式閃爍指示。設(shè)8253的通道地址為80H~86H(偶地址)。5.8253的應(yīng)用舉例確定分頻系數(shù)

經(jīng)過(guò)分析可知:要求用8253做一個(gè)分頻電路,而且其輸出應(yīng)該是方波,否則二極管不可能等間隔閃爍指示,則分頻系數(shù)為:分析步驟由于8253一個(gè)通道最大的計(jì)數(shù)值是65536,而對(duì)于N=1000000這樣一個(gè)數(shù),一個(gè)通道顯然是不可能完成上述分頻要求,故本題采用了如圖所示的通道計(jì)數(shù)器級(jí)聯(lián)的方法來(lái)實(shí)現(xiàn)分頻系數(shù)超過(guò)65536的分頻要求。分析電路圖可知:通道0首先將1MHz信號(hào)1000分頻,產(chǎn)生1KHz信號(hào);通道1再把1KHz信號(hào)1000分頻,得到1Hz的方波信號(hào)來(lái)控制二極管的輸出。2.確定通道0和通道1的工作方式

經(jīng)過(guò)分析可知:通道1要輸出方波信號(hào)推動(dòng)發(fā)光二極管,所以通道1應(yīng)選工作方式3;對(duì)于通道0,它只要能起分頻作用就行,對(duì)輸出波形不作要求,所以方式2和方式3都可以選用。3.確定控制字①通道0的控制字為00110101B,即16位讀寫方式,BCD碼計(jì)數(shù);②通道1的控制字為01110110B,即16位讀寫方式,二進(jìn)制碼計(jì)數(shù);MOV AL,00110101B(35H)OUT 86H,ALMOV AL,00HOUT 80H,ALMOV AL,10HOUT 80H,AL4.編寫子程序MOV AL,01110110B(76H)OUT 86H,ALMOV AL,0E8HOUT 82H,ALM

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論