第十章-定時器-微型計算機原理與應用-電子教案-教學課件



單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,第,10,章 定時器,/,【內容簡介】,首先簡要介紹微型計算機中定時器的作用,然后重點介紹可編程定時器/計數(shù)器8254的組成原理、工作方式及編程使用重點難點】,重點是8254的組成原理、工作方式及編程使用難點是8254的方式控制字及編程使用10.1 概 述,10.2 可編程定時器/計數(shù)器8254,10.3 8254編程使用,第10章 定時器/計數(shù)器,10.1 概 述,在計算機中經(jīng)常用到定時信號,比如動態(tài)存儲器刷新、系統(tǒng)日歷計時等,在自動控制中的定時控制等定時方法可采用軟件/硬件方式軟件定時是設計延時子程序,以達到定時的目的硬件定時是用專門的定時器/計數(shù)器來實現(xiàn),主要優(yōu)點是不占用CPU的時間可與CPU并行工作硬件定時器實質上是一個可加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 內部結構與引腳功能,10.2.2 工作方式,部,表,10.1 8254,內部地址分配,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 0,0 1,1 0,1 1,0,0,0,0,1,1,1,1,讀計數(shù)器,0,讀計數(shù)器,1,讀計數(shù)器,2,無效,在8254內部設置有4個寄存器,由地址A,1,A,0,選擇和片選信號 確定,如,表10.1,所示表10.1 8254內部地址分配,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 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,:地址信號,輸入,用于選擇內部寄存器CLK,2,CLK,0,:3個計數(shù)器計數(shù)信號輸入OUT,2,OUT,0,:3個計數(shù)器計數(shù)回零輸出,高電平有效GATE,2,GATE,0,:3個計數(shù)器外部門控信號輸入端,高電平或上升沿有效VCC:5 V電源GND:地2)GATE1,允許計數(shù);GATE0,禁止計數(shù)如果在計數(shù)過程中修改計數(shù)初值,則在下一時鐘脈沖新寫入的計數(shù)初值送入減1計數(shù)器,然后按新值計數(shù)2.方式1-可重復觸發(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ù)初值,當前計數(shù)狀態(tài)不受影響若有GATE上升沿觸發(fā),則按新的計數(shù)初值重新計數(shù),直到計數(shù)回0,OUT變?yōu)楦唠娖?,低電平寬度為兩次計?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),則在下一時鐘脈沖計數(shù)初值重新送入減1計數(shù)器,重新減1計數(shù)3)計數(shù)過程中若寫入新的計數(shù)初值,而無GATE上升沿觸發(fā),當前計數(shù)狀態(tài)不受影響如果有GATE 上升沿觸發(fā),則重新按照新的計數(shù)初值計數(shù)10.3 8254編程使用,10.3.1 控制字,10.3.2 編程使用,10.3.3 8254在PC機中的應用,10.3.2 編程使用,8254的編程主要是設置工作方式,寫入計數(shù)初值,在計數(shù)過程中讀取計數(shù)值和狀態(tài)信息1.寫操作,寫操作主要是寫入控制字和計數(shù)初值,即初始化8254有3個計數(shù)器,初始化時可以一個一個地進行,也可以先設置3個計數(shù)器的工作方式,然后寫入各自的計數(shù)初值前者如,圖10.12,,后者如,圖10.13,所示。
但是必須先寫入方式控制字,再寫入計數(shù)初值對于16位計數(shù)初值,先寫入低字節(jié),再寫入高字節(jié)2.讀操作,讀操作有兩種方式,一種是直接讀,讀取計數(shù)初值;另一種是先發(fā)鎖存命令,然后再讀,讀取當前計數(shù)值16位時,先讀低字節(jié),再讀高字節(jié)在發(fā)鎖存命令時可以使用讀回控制字,也可以使用方式控制字若用方式控制字,其中D,5,D,4,00,D,7,D,6,用來選擇計數(shù)器,其余低4位任意若設控制字端口地址為TIM,計數(shù)器1按雙字節(jié)計數(shù),讀取當前計數(shù)值的程序如下:,MOVDX,TIM,MOVAL,01000000B,OUTDX,AL ;發(fā)鎖存命令,INAL,DX ;讀取低字節(jié),MOV AH,AL,IN AL,DX ;讀取高字節(jié),XCHG AH,AL,圖10.14 8254在PC機中的應用,在中斷服務程序中,時間值保存在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 ;設置低字節(jié)計數(shù)值18,OUT41H,AL ;將18寫入計數(shù)器1,啟動工作后,由OUT1產生連續(xù)負脈沖,其頻率為1.1931816MHz/1866.2878KHz,周期為15.0857sOUT,1,連接到D觸發(fā)器的觸發(fā)脈沖輸入端,而D觸發(fā)器的數(shù)據(jù)輸入端接+5V,這樣可利用負脈沖的上升沿將觸發(fā)器置1,輸出高電平,定時請求DRAM刷新。