《第十章-定時器-微型計算機原理與應(yīng)用-電子教案-教學(xué)課件》由會員分享,可在線閱讀,更多相關(guān)《第十章-定時器-微型計算機原理與應(yīng)用-電子教案-教學(xué)課件(28頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,第,10,章 定時器,/,【內(nèi)容簡介】,首先簡要介紹微型計算機中定時器的作用,然后重點介紹可編程定時器/計數(shù)器8254的組成原理、工作方式及編程使用。,【重點難點】,重點是8254的組成原理、工作方式及編程使用。難點是8254的方式控制字及編程使用。,10.1 概 述,10.2 可編程定時器/計數(shù)器8254,10.3 8254編程使用,第10章 定時器/計數(shù)器,10.1 概 述,在計算機中經(jīng)常用到定時信號,比如動態(tài)存儲器刷新、系統(tǒng)日歷計時等,在自動控制中的定時控制等。定時方法可采用軟件/硬件方式。軟件定時是
2、設(shè)計延時子程序,以達到定時的目的。硬件定時是用專門的定時器/計數(shù)器來實現(xiàn),主要優(yōu)點是不占用CPU的時間。可與CPU并行工作。,硬件定時器實質(zhì)上是一個可加1或者減1的計數(shù)器,可上升沿或者下降沿計數(shù)。,在早期的PC機中使用8253作為定時器/計數(shù)器,以后的PC/AT使用的是8254。,另外在PC/AT及以后的一些兼容機中,使用MC146818作為定時芯片。,10.2 可編程定時器/計數(shù)器8254,8254包含有3個16位計數(shù)器,可按二進制或十進制計數(shù),有6種工作方式。,10.2.1 內(nèi)部結(jié)構(gòu)與引腳功能,10.2.2 工作方式,部,表,10.1 8254,內(nèi)部地址分配,CS,A,1,A,0,RD,W
3、R,功,能,0,0,0,0,0 0,0 1,1 0,1 1,1,1,1,1,0,0,0,0,寫計數(shù)器,0,寫計數(shù)器,1,寫計數(shù)器,2,寫方式控制字,0,0,0,0,0 0,0 1,1 0,1 1,0,0,0,0,1,1,1,1,讀計數(shù)器,0,讀計數(shù)器,1,讀計數(shù)器,2,無效,在8254內(nèi)部設(shè)置有4個寄存器,由地址A,1,A,0,選擇和片選信號 確定,如,表10.1,所示。,表10.1 8254內(nèi)部地址分配,CS,A,1,A,0,RD,WR,功能,0,0,0,0,0 0,0 1,1 0,1 1,1,1,1,1,0,0,0,0,寫計數(shù)器0,寫計數(shù)器1,寫計數(shù)器2,寫方式控制字,0,0,0,0,0
4、0,0 1,1 0,1 1,0,0,0,0,1,1,1,1,讀計數(shù)器0,讀計數(shù)器1,讀計數(shù)器2,無效,2.引腳信號,8254有24個引腳,采用雙列直插式封裝,其信號分布如,圖10.1(b),所示,功能如下:,D,7,-D,0,:數(shù)據(jù)總線,雙向,8位,與外部數(shù)據(jù)總線連接。,WR:寫信號輸入,低電平有效。,RD:讀信號,輸入,低電平有效。,CS:片選信號,輸入,低電平有效。,A,1,A,0,:地址信號,輸入,用于選擇內(nèi)部寄存器。,CLK,2,CLK,0,:3個計數(shù)器計數(shù)信號輸入。,OUT,2,OUT,0,:3個計數(shù)器計數(shù)回零輸出,高電平有效。,GATE,2,GATE,0,:3個計數(shù)器外部門控信號輸
5、入端,高電平或上升沿有效。,VCC:5 V電源。,GND:地。,(2)GATE1,允許計數(shù);GATE0,禁止計數(shù)。如果在計數(shù)過程中修改計數(shù)初值,則在下一時鐘脈沖新寫入的計數(shù)初值送入減1計數(shù)器,然后按新值計數(shù)。,2.方式1-可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器,(1)寫入控制字后OUT輸出高電平,寫入計數(shù)初值后必須由GATE的上升沿觸發(fā)計數(shù)。計數(shù)開始OUT變?yōu)榈碗娖?,直到計?shù)回0時再輸出高電平。若要再次計數(shù),必須用GATE上升沿重新觸發(fā)。方式1時序如,圖10.4,所示。,(2)在計數(shù)過程中寫入新的計數(shù)初值,當(dāng)前計數(shù)狀態(tài)不受影響。若有GATE上升沿觸發(fā),則按新的計數(shù)初值重新計數(shù),直到計數(shù)回0,OUT變?yōu)楦唠娖?/p>
6、,低電平寬度為兩次計數(shù)值之和。,3.方式2-分頻器,是一種(n-1):1的分頻器工作方式,特點如下:,(3)GATE1時,允許計數(shù);GATE0時,停止計數(shù)。GATE的上升沿啟動重新計數(shù)。若在計數(shù)過程中寫入新的計數(shù)初值,則在下一時鐘周期按新值計數(shù)。,5.方式4-軟件觸發(fā)的選通信號發(fā)生器,(1)寫入控制字后OUT輸出高電平,寫入計數(shù)初值后的下一時鐘送入減1計數(shù)器,減1計數(shù)。計數(shù)回0時輸出低電平,持續(xù)1個時鐘周期后又變?yōu)楦唠娖剑匆粋€負脈沖信號,如,圖10.7,所示。,由于需要GATE的上升沿觸發(fā),故稱硬件觸發(fā)的脈沖發(fā)生器,時序如,圖10.8,所示。,(2)計數(shù)過程中若GATE 有上升沿出現(xiàn),則在下
7、一時鐘脈沖計數(shù)初值重新送入減1計數(shù)器,重新減1計數(shù)。,(3)計數(shù)過程中若寫入新的計數(shù)初值,而無GATE上升沿觸發(fā),當(dāng)前計數(shù)狀態(tài)不受影響。如果有GATE 上升沿觸發(fā),則重新按照新的計數(shù)初值計數(shù)。,10.3 8254編程使用,10.3.1 控制字,10.3.2 編程使用,10.3.3 8254在PC機中的應(yīng)用,10.3.2 編程使用,8254的編程主要是設(shè)置工作方式,寫入計數(shù)初值,在計數(shù)過程中讀取計數(shù)值和狀態(tài)信息。,1.寫操作,寫操作主要是寫入控制字和計數(shù)初值,即初始化。8254有3個計數(shù)器,初始化時可以一個一個地進行,也可以先設(shè)置3個計數(shù)器的工作方式,然后寫入各自的計數(shù)初值。前者如,圖10.12
8、,,后者如,圖10.13,所示。但是必須先寫入方式控制字,再寫入計數(shù)初值。對于16位計數(shù)初值,先寫入低字節(jié),再寫入高字節(jié)。,2.讀操作,讀操作有兩種方式,一種是直接讀,讀取計數(shù)初值;另一種是先發(fā)鎖存命令,然后再讀,讀取當(dāng)前計數(shù)值。16位時,先讀低字節(jié),再讀高字節(jié)。,在發(fā)鎖存命令時可以使用讀回控制字,也可以使用方式控制字。若用方式控制字,其中D,5,D,4,00,D,7,D,6,用來選擇計數(shù)器,其余低4位任意。若設(shè)控制字端口地址為TIM,計數(shù)器1按雙字節(jié)計數(shù),讀取當(dāng)前計數(shù)值的程序如下:,MOVDX,TIM,MOVAL,01000000B,OUTDX,AL ;發(fā)鎖存命令,INAL,DX ;讀取低字
9、節(jié),MOV AH,AL,IN AL,DX ;讀取高字節(jié),XCHG AH,AL,圖10.14 8254在PC機中的應(yīng)用,在中斷服務(wù)程序中,時間值保存在BIOS數(shù)據(jù)區(qū)的兩個變量TIMER-LO和TIMER-HI中。計數(shù)器0初始化程序如下:,MOV AL,36H ;計數(shù)器0雙字節(jié),方式3,二進制計數(shù),OUT 43H,AL ;寫入控制寄存器,MOVAL,0,OUT40H,AL ;寫低字節(jié),OUT40H,AL ;寫高字節(jié),(2)計數(shù)器1,計數(shù)器1用來向主機定時提出動態(tài)RAM刷新請求,GATE,1,接5V,處于常啟狀態(tài)。選擇工作方式2,以字節(jié)計數(shù),初始化程序如下:,MOVAL,54H ;計數(shù)器1寫入低字節(jié),方式2,,;二進制計數(shù),OUT43H,AL ;寫入控制寄存器,MOVAL,18 ;設(shè)置低字節(jié)計數(shù)值18,OUT41H,AL ;將18寫入計數(shù)器1,啟動工作后,由OUT1產(chǎn)生連續(xù)負脈沖,其頻率為1.1931816MHz/1866.2878KHz,周期為15.0857s。OUT,1,連接到D觸發(fā)器的觸發(fā)脈沖輸入端,而D觸發(fā)器的數(shù)據(jù)輸入端接+5V,這樣可利用負脈沖的上升沿將觸發(fā)器置1,輸出高電平,定時請求DRAM刷新。,