




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1第六章 定時/計數(shù)技術(shù) 華北電力大學(xué) 計算機系 2一、問題的提出一、問題的提出定時和計數(shù)是最常見和最普遍的問題。定時和計數(shù)是最常見和最普遍的問題。1.1.定時定時例如例如 一天一天2424小時的計時小時的計時( (稱為日時鐘稱為日時鐘) )。 在監(jiān)測系統(tǒng)中,對被測點的定時取樣。在監(jiān)測系統(tǒng)中,對被測點的定時取樣。 在讀鍵盤時,為去抖,一般延遲一段時間,再讀。在讀鍵盤時,為去抖,一般延遲一段時間,再讀。 在步進電機速度控制程序中,利用時間間隔來控制在步進電機速度控制程序中,利用時間間隔來控制步進電機的轉(zhuǎn)速。步進電機的轉(zhuǎn)速。2.2.計數(shù)計數(shù) 例如例如 在生產(chǎn)線上對零件和產(chǎn)品的計數(shù);在生產(chǎn)線上對零件
2、和產(chǎn)品的計數(shù); 對大橋和高速公路上車流量的統(tǒng)計,等等。對大橋和高速公路上車流量的統(tǒng)計,等等。6.1 基本概念3問題問題: 某產(chǎn)品的包裝流水線中,一個包裝箱能裝2424罐飲料。裝箱時希望流水線上每通過2424罐飲料,流水線要停4 4秒以等待裝箱完畢,然后繼續(xù)通過下面的罐。43、定時與計數(shù)的關(guān)系&定時的本質(zhì)就是計數(shù),只不過這里的“數(shù)”的單位是時間單位。&如果把一小片一小片計時單位累加起來,就可獲得一段時間。q例如,以秒為單位來計數(shù),計滿60秒為1分,計滿60分為1小時,計滿24小時即為1天。&因此,定時的本質(zhì)就是計數(shù),我們把計數(shù)作為定時的基礎(chǔ)來討論。 5二、定時的方法二、定
3、時的方法 為獲得所需要的定時,要求有準(zhǔn)確而穩(wěn)定的時間基準(zhǔn),產(chǎn)生這種時間基準(zhǔn)通常采用兩種方法-軟件定時軟件定時和硬件定時硬件定時。1.軟件定時軟件定時 運用軟件編程,循環(huán)執(zhí)行一段程序而產(chǎn)生的等待延時。優(yōu)點: 不需增加硬設(shè)備,只需編制相應(yīng)的延時程序以備調(diào)用。缺點: 增加了CPU的時間開銷,延時時間越長,這種等待開銷越大,降低了CPU的效率,浪費了CPU的資源。定時精度不高,隨系統(tǒng)時鐘頻率改變,通用性差。62.不可編程的硬件定時 采用分頻器、單穩(wěn)電路或簡易定時電路由外接RC電阻、電容電路控制定時時間。優(yōu)點:不占用CPU的時間,定時時間長,定時準(zhǔn)確。缺點:改變定時要改變硬件,所以使用不方便3.可編程的
4、硬件定時 采用可編程的定時/計數(shù)器或單穩(wěn)延時電路產(chǎn)生定時或延時。優(yōu)點: 不占用CPU的時間,定時時間長,使用靈活。 定時準(zhǔn)確,定時時間不受主機頻率影響,定時程序具有通用性,故得到廣泛應(yīng)用。 如Intel8253/8254,Zilog的CTC等。7三、微機系統(tǒng)中的定時&微機系統(tǒng)常常需要為處理器和外設(shè)提供時間標(biāo)記,或?qū)ν獠渴录M行計數(shù)。&微型系統(tǒng)中的定時分為內(nèi)部定時內(nèi)部定時和外部定時外部定時兩類。&內(nèi)部定時:內(nèi)部定時:計算機本身運行的時間基準(zhǔn)或時序關(guān)系,由計算機硬件決定,用戶無法更改。無法更改。q計算機的每個操作都嚴格按照時間節(jié)拍執(zhí)行。計算機的每個操作都嚴格按照時間節(jié)拍執(zhí)行
5、。&外部定時外部定時:外設(shè)實現(xiàn)某種功能時,本身所需的時序關(guān)系,需要用戶根據(jù)I/O設(shè)備的要求進行安排。q如打印機接口標(biāo)準(zhǔn)就規(guī)定了打印機和CPU間傳送信息應(yīng)遵守的工作時序。&時序配合:時序配合:考慮外設(shè)與CPU連接時,以計算機的時序關(guān)系為依據(jù),來設(shè)計外部定時機構(gòu),以滿足計算機的時序要求。86.2可編程定時/計數(shù)器8253一、外部特性與內(nèi)部邏輯1.性能特點&定時/計數(shù)器8253是24腳雙列直插式芯片,+5V電源供電。&每個芯片內(nèi)部有3個獨立的計數(shù)器,通過編程選擇計數(shù)器和設(shè)置工作方式,計數(shù)器既可作計數(shù)器用,也可作定時器用,故稱定時/計數(shù)器,記作T/C。&每個計數(shù)
6、器有6種工作方式。&按二進制或BCD碼計數(shù)。8254是是8253的改進型,的改進型,內(nèi)部工作方式和外部引腳與內(nèi)部工作方式和外部引腳與8253完全相同,只是增加了一個讀回命令和狀態(tài)字完全相同,只是增加了一個讀回命令和狀態(tài)字 92.引腳功能定義面向面向CPU的信號線的信號線 數(shù)據(jù)總線數(shù)據(jù)總線D0D7:為三態(tài)輸出:為三態(tài)輸出/輸入線。輸入線。用于將用于將8253與系統(tǒng)數(shù)據(jù)總線相連。與系統(tǒng)數(shù)據(jù)總線相連。 片選線片選線CS*:為輸入信號,低電平有效。:為輸入信號,低電平有效。 讀信號讀信號RD* :為輸入信號,低電平有效。:為輸入信號,低電平有效。 寫信號寫信號WR* :為輸入信號,低電平有效。
7、:為輸入信號,低電平有效。 地址線地址線A1A0:接地址總線的:接地址總線的A1A0。面向面向I/O設(shè)備的信號線:設(shè)備的信號線: 計數(shù)器時鐘信號計數(shù)器時鐘信號CLK0-2:CLK為輸入信為輸入信號。在定時號。在定時/計數(shù)時,使計數(shù)值減計數(shù)時,使計數(shù)值減1。 計數(shù)器門控選通信號計數(shù)器門控選通信號GATE0-2:為輸入信:為輸入信號。用來禁止、允許或開始計數(shù)過程的。號。用來禁止、允許或開始計數(shù)過程的。 計數(shù)器輸出信號計數(shù)器輸出信號OUT0-2:為輸出信號。:為輸出信號。當(dāng)計數(shù)值減為終值,在輸出線上輸出當(dāng)計數(shù)值減為終值,在輸出線上輸出OUT信號,以表示定時信號,以表示定時/計數(shù)已到。計數(shù)已到。 10
8、8253/8254 讀寫操作及端口地址CS RD WR A1A0操 作PC微機01000向計數(shù)器0寫入“計數(shù)初值”40H01001向計數(shù)器1寫入“計數(shù)初值”41H01010向計數(shù)器2寫入“計數(shù)初值”42H01011向控制器寄存器寫“方式控制字”43H00100從計數(shù)器0讀出“當(dāng)前計數(shù)值”40H00101從計數(shù)器1讀出“當(dāng)前計數(shù)值”41H00110從計數(shù)器2讀出“當(dāng)前計數(shù)值”42H00111無操作三態(tài) 1 禁止三態(tài)011 無操作三態(tài)113.內(nèi)部結(jié)構(gòu)D7D0計數(shù)器計數(shù)器0 0控制命令寄存器計數(shù)器計數(shù)器1 1計數(shù)器計數(shù)器2 2內(nèi)部數(shù)據(jù)總線數(shù)據(jù)總線緩沖器讀寫控制邏輯RDWRA0A1CSCLK0GATE
9、0OUT0CLK1GATE1OUT1CLK2GATE2OUT2123.內(nèi)部結(jié)構(gòu)&數(shù)據(jù)總線緩沖器q是一個三態(tài)、雙向8位寄存器,用于將8253與系統(tǒng)數(shù)據(jù)總線D0D7 相連。q向8253寫入確定其工作方式的命令;向計數(shù)寄存器裝入初值;讀出計數(shù)器的初值或當(dāng)前值。&讀/寫邏輯q根據(jù)CPU發(fā)來的讀/寫 信號和地址信號選擇讀出或?qū)懭爰拇嫫?,并確定數(shù)據(jù)傳輸?shù)姆较颉?amp;控制命令寄存器q它接受CPU送來的控制字選擇計數(shù)器及工作方式,只能寫入,不能讀出&計數(shù)器:q8253有3個獨立的計數(shù)器(計數(shù)通道)1316位當(dāng)前計數(shù)值鎖存器位當(dāng)前計數(shù)值鎖存器16位減位減1計數(shù)器計數(shù)器16位計數(shù)初值寄
10、存器位計數(shù)初值寄存器鎖存后讀出當(dāng)前值鎖存后讀出當(dāng)前值LSBMSB&CLKGATE裝入裝入/讀出初值讀出初值LSBOUT計數(shù)初值存于計數(shù)初值存于計數(shù)初值寄存器計數(shù)初值寄存器;計數(shù)過程中,計數(shù)過程中,減減1計數(shù)器計數(shù)器的值不斷遞減,而計數(shù)初值寄存器中的的值不斷遞減,而計數(shù)初值寄存器中的初值初值不變。不變。當(dāng)前計數(shù)值鎖存器當(dāng)前計數(shù)值鎖存器用于寫入鎖存命令時,鎖定當(dāng)前計數(shù)值用于寫入鎖存命令時,鎖定當(dāng)前計數(shù)值計數(shù)器內(nèi)部邏輯14計數(shù)器的3個引腳&CLK時鐘輸入信號時鐘輸入信號q在計數(shù)過程中,此引腳上每輸入一個時鐘信號(在計數(shù)過程中,此引腳上每輸入一個時鐘信號(下降下降沿沿),計數(shù)器的計數(shù)值
11、減),計數(shù)器的計數(shù)值減1&GATE門控輸入信號門控輸入信號q控制計數(shù)器工作,可分成控制計數(shù)器工作,可分成電平控制電平控制和和上升沿上升沿控制兩種控制兩種類型類型&OUT計數(shù)器輸出信號計數(shù)器輸出信號q當(dāng)一次計數(shù)過程結(jié)束(計數(shù)值減為當(dāng)一次計數(shù)過程結(jié)束(計數(shù)值減為0),),OUT引腳上引腳上將產(chǎn)生一個輸出信號將產(chǎn)生一個輸出信號15二、 計數(shù)初值:決定定時長短&8253是減是減1計數(shù)器,計數(shù)初值送計數(shù)初值寄存器,計數(shù)器,計數(shù)初值送計數(shù)初值寄存器,&在門控信號在門控信號GATE下,由下,由CLK對減對減1計數(shù)器進行減計數(shù)器進行減1計數(shù)計數(shù)&計數(shù)初值減為計數(shù)初值減為
12、0時,計數(shù)結(jié)束,輸出端時,計數(shù)結(jié)束,輸出端OUT產(chǎn)生波形變化產(chǎn)生波形變化&計數(shù)初值計數(shù)初值Ci與輸入脈沖頻率(與輸入脈沖頻率(CLK)及輸出波形()及輸出波形(OUT)頻率之間的關(guān)系:頻率之間的關(guān)系: Ci=CLK/OUT 或或 TC=CLK/OUT=定時時間定時時間/時鐘脈沖周期時鐘脈沖周期&給定頻率給定頻率CLK,可求出所輸出波形頻率為某值的計數(shù)初值,可求出所輸出波形頻率為某值的計數(shù)初值例例1:已知:已知CLK=1.193MHz ,OUT=18.2HZ, 則則 計數(shù)初值計數(shù)初值 Tc=65549例例2:已知系統(tǒng)晶振為已知系統(tǒng)晶振為2MHz,要求定時的時間為,要求定時的時間為
13、10毫秒,毫秒,計算計數(shù)器的預(yù)置值計算計數(shù)器的預(yù)置值。計數(shù)初值計數(shù)初值=(1010-3)/1/(2106)=2000016三、 8253/8254的編程&8253加電后的工作方式不確定加電后的工作方式不確定&8253必須初始化編程,才能正常工作。初始化必須初始化編程,才能正常工作。初始化有兩點:有兩點:q一是向命令寄存器寫入方式命令,即一是向命令寄存器寫入方式命令,即寫入控制字寫入控制字u選擇計數(shù)器、確定工作方式,指定計數(shù)器計數(shù)初值的長度選擇計數(shù)器、確定工作方式,指定計數(shù)器計數(shù)初值的長度和裝入順序以及計數(shù)值的碼制。和裝入順序以及計數(shù)值的碼制。q二是向已選定的計數(shù)器按方式命令的要
14、求二是向已選定的計數(shù)器按方式命令的要求寫入計數(shù)寫入計數(shù)初值。初值。D7D6D5D4D3D2D1D017初始化流程 先寫入工作方式控制字,接著寫入計數(shù)初始值先寫入工作方式控制字,接著寫入計數(shù)初始值 單個計數(shù)器初始化單個計數(shù)器初始化寫方式控制字寫方式控制字寫計數(shù)低字節(jié)寫計數(shù)低字節(jié)寫計數(shù)高字節(jié)寫計數(shù)高字節(jié)寫方式控制字(計數(shù)器寫方式控制字(計數(shù)器0)寫方式控制字(計數(shù)器寫方式控制字(計數(shù)器1)寫方式控制字(計數(shù)器寫方式控制字(計數(shù)器2)寫計數(shù)低字節(jié)(計數(shù)器寫計數(shù)低字節(jié)(計數(shù)器0)寫計數(shù)高字節(jié)(計數(shù)器寫計數(shù)高字節(jié)(計數(shù)器0)寫計數(shù)低字節(jié)(計數(shù)器寫計數(shù)低字節(jié)(計數(shù)器1)寫計數(shù)高字節(jié)(計數(shù)器寫計數(shù)高字節(jié)(計
15、數(shù)器1)寫計數(shù)低字節(jié)(計數(shù)器寫計數(shù)低字節(jié)(計數(shù)器2)寫計數(shù)高字節(jié)(計數(shù)器寫計數(shù)高字節(jié)(計數(shù)器2)多個計數(shù)器初始化多個計數(shù)器初始化計數(shù)器的順序是任意計數(shù)器的順序是任意的,不必一定按照計的,不必一定按照計數(shù)器數(shù)器0、l、2的順序初的順序初始化;始化;但先寫所有計數(shù)器的但先寫所有計數(shù)器的工作方式控制字,再工作方式控制字,再裝入各計數(shù)器的計數(shù)裝入各計數(shù)器的計數(shù)值(即先控制字再計值(即先控制字再計數(shù)值)的順序不能錯數(shù)值)的順序不能錯計數(shù)值先寫低再寫高計數(shù)值先寫低再寫高的順序不能錯;的順序不能錯;其他順序無關(guān)緊要其他順序無關(guān)緊要 18方式命令控制字格式計數(shù)器選擇讀寫格式工作方式數(shù)制D7D6D5D4D3D2
16、D1D000 計數(shù)器計數(shù)器001 計數(shù)器計數(shù)器110 計數(shù)器計數(shù)器211 不用不用00 計數(shù)器鎖存命計數(shù)器鎖存命令令 01 只讀只讀/寫低字節(jié)寫低字節(jié)10 只讀只讀/寫高字節(jié)寫高字節(jié)11 先讀先讀/寫低字節(jié)寫低字節(jié) 后讀后讀/寫高字節(jié)寫高字節(jié)000 方式方式0001 方式方式1010 方式方式2011 方式方式3100 方式方式4101 方式方式5110和和111不用不用0 二進制二進制1 BCD碼碼198253的控制字編程例:例:某個某個8253的計數(shù)器的計數(shù)器0、1、2端口和控制端口地址依次是端口和控制端口地址依次是40H43H。要求:要求: 設(shè)置其中計數(shù)器設(shè)置其中計數(shù)器0為方式為方式0,
17、采用二進制計數(shù),先低后高,采用二進制計數(shù),先低后高寫入計數(shù)值寫入計數(shù)值.分析:分析: 方式控制字:方式控制字:00 11 000 0B 30Hmov al,30h out 43h,al ;寫入控制端口:寫入控制端口:43H20寫入計數(shù)值&選擇二進制時選擇二進制時q計數(shù)值范圍:計數(shù)值范圍:0000HFFFFHq0000H是最大值,代表是最大值,代表65536&選擇選擇BCD碼碼q計數(shù)值范圍:計數(shù)值范圍:00009999q0000代表最大值代表最大值10000&寫入方式寫入方式qD5D4=01,寫入計數(shù)器的低,寫入計數(shù)器的低8位,高位,高8位自動置位自動置0;qD5D4=1
18、0,寫入計數(shù)器的高,寫入計數(shù)器的高8位,低位,低8位會自動置位會自動置0;qD5D4=11,分兩次寫入初值,先寫低,分兩次寫入初值,先寫低8位、再寫入高位、再寫入高8位位qD5D4=00,先鎖存,后讀取,先鎖存,后讀取21 例:選擇例:選擇2號計數(shù)器,工作在號計數(shù)器,工作在3方式,計數(shù)初值為方式,計數(shù)初值為533H(2個字節(jié)),采用二進制計數(shù)。個字節(jié)),采用二進制計數(shù)。(設(shè)(設(shè)8253的的0#、1#、2#、控、控制字寄存器的地址分別為:制字寄存器的地址分別為:40H、41H、42H、43H) 其初始化程序段為其初始化程序段為: MOV DX,43H ;命令口;命令口 MOV AL,101101
19、10 B ;2號計數(shù)器的初始化命令字號計數(shù)器的初始化命令字 OUT DX,AL ;寫入命令寄存器;寫入命令寄存器 MOV DX,42H ;2號計數(shù)器數(shù)據(jù)口號計數(shù)器數(shù)據(jù)口 MOV AX,533H ;計數(shù)初值;計數(shù)初值 OUT DX,AL ;選送低字節(jié)到;選送低字節(jié)到2號計數(shù)器號計數(shù)器 MOV AL,AH ;取高字節(jié)送;取高字節(jié)送AL OUT DX,AL ;后送高字節(jié)到;后送高字節(jié)到2號計數(shù)器號計數(shù)器22讀取當(dāng)前計數(shù)值&對對8位數(shù)據(jù)線,讀取位數(shù)據(jù)線,讀取16位計數(shù)值需分兩次位計數(shù)值需分兩次&計數(shù)在不斷進行,應(yīng)該將當(dāng)前計數(shù)值先行鎖存,然后讀?。河嫈?shù)在不斷進行,應(yīng)該將當(dāng)前計數(shù)值先行鎖存
20、,然后讀?。簈(1)向控制字向控制字I/O地址:給地址:給8253寫入鎖存命令寫入鎖存命令q(2)從計數(shù)器從計數(shù)器I/O地址:讀取鎖存的計數(shù)值地址:讀取鎖存的計數(shù)值&讀取計數(shù)值后,或?qū)τ嫈?shù)器重新編程,將自動解除鎖存狀讀取計數(shù)值后,或?qū)τ嫈?shù)器重新編程,將自動解除鎖存狀態(tài)態(tài)計數(shù)器選擇0 0 D7D6D5D4D3D2D1D000:選擇計數(shù)器選擇計數(shù)器001:選擇計數(shù)器選擇計數(shù)器110:選擇計數(shù)器選擇計數(shù)器2未用未用 鎖存計數(shù)器的當(dāng)前計數(shù)值控制字23例:要求讀出并檢查例:要求讀出并檢查1號計數(shù)器的當(dāng)前計數(shù)值是否是全號計數(shù)器的當(dāng)前計數(shù)值是否是全“1”(假定計數(shù)值只有低(假定計數(shù)值只有低8位),其
21、程序段為:位),其程序段為: MOV DX, 43H ;命令口L: MOV AL,01000000B ;1號計數(shù)器的鎖存命令 OUT DX,AL ;寫入命令寄存器 MOV DX,41H ;1號計數(shù)器數(shù)據(jù)口 IN AL,DX ;讀1號計數(shù)器的當(dāng)前計數(shù)值 CMP AL,0FFH ;比較 JNE L ;非全“1”,再讀 HLT ;是全“1”,暫停248254的讀回命令&8254比比8253多了讀回命令,可以令多了讀回命令,可以令3個通道的計數(shù)值和狀個通道的計數(shù)值和狀態(tài)鎖存,向態(tài)鎖存,向CPU返回一個狀態(tài)字返回一個狀態(tài)字&讀回命令寫入控制端口,狀態(tài)字和計數(shù)值都通過計數(shù)器端讀回命令寫入控
22、制端口,狀態(tài)字和計數(shù)值都通過計數(shù)器端口讀取口讀取 25練習(xí)與思考& 8253與系統(tǒng)總線的連接電路如圖所示,若用計數(shù)器與系統(tǒng)總線的連接電路如圖所示,若用計數(shù)器0工作工作在方式在方式1,計數(shù)值為,計數(shù)值為32079,二進制計數(shù),要求進行初始化,二進制計數(shù),要求進行初始化編程。編程。74LS13826四、 8253/8254的工作方式&8253有有6種工作方式,由方式控制字確定種工作方式,由方式控制字確定&熟悉每種工作方式的特點才能根據(jù)實際應(yīng)用問題,選擇正確熟悉每種工作方式的特點才能根據(jù)實際應(yīng)用問題,選擇正確的工作方式的工作方式&每種工作方式的過程類似:每種工作方式的
23、過程類似: 設(shè)定工作方式設(shè)定工作方式 設(shè)定計數(shù)初值設(shè)定計數(shù)初值 硬件啟動硬件啟動 ,方式,方式1和方式和方式5必須必須GATE端出現(xiàn)上升沿端出現(xiàn)上升沿 計數(shù)初值進入減計數(shù)初值進入減1計數(shù)器計數(shù)器 每輸入一個時鐘信號,計數(shù)器減每輸入一個時鐘信號,計數(shù)器減1的計數(shù)過程的計數(shù)過程 計數(shù)過程結(jié)束計數(shù)過程結(jié)束區(qū)分六種工作方式的主要標(biāo)志有區(qū)分六種工作方式的主要標(biāo)志有3 3點:即點:即輸出波形不同輸出波形不同;啟啟動計數(shù)器的觸發(fā)方式不同動計數(shù)器的觸發(fā)方式不同;計數(shù)過程中門控信號;計數(shù)過程中門控信號GATEGATE對計對計數(shù)操作的控制不同。數(shù)操作的控制不同。27(2)寫入計數(shù)初值只是寫入了計數(shù)初值寄存器,之后
24、到來的)寫入計數(shù)初值只是寫入了計數(shù)初值寄存器,之后到來的第一個第一個CLK脈沖(需先由低電平變高,再由高變低)才將計脈沖(需先由低電平變高,再由高變低)才將計數(shù)初值寄存器的初值送到減數(shù)初值寄存器的初值送到減1計數(shù)器計數(shù)器(3)在)在CLK的上升沿時,計數(shù)器對門控信號的上升沿時,計數(shù)器對門控信號GATE進行采樣,進行采樣,來決定工作狀態(tài)(計數(shù)、觸發(fā)、停止、重新置初值);來決定工作狀態(tài)(計數(shù)、觸發(fā)、停止、重新置初值);(4)從第二個)從第二個CLK的下降沿,計數(shù)器才真正從初值開始作減的下降沿,計數(shù)器才真正從初值開始作減1計數(shù);計數(shù);(1)先寫入控制字,此時,全部控制邏輯電路復(fù)位,輸出)先寫入控制字
25、,此時,全部控制邏輯電路復(fù)位,輸出OUT為初始狀態(tài)(高電平或低電平);為初始狀態(tài)(高電平或低電平);計數(shù)的開始281.方式0:計數(shù)結(jié)束中斷GATEOUTCLK 031244方式方式0WR設(shè)設(shè)定定工工作作方方式式設(shè)設(shè)定定計計數(shù)數(shù)初初值值計計數(shù)數(shù)值值送送入入計計數(shù)數(shù)器器計計數(shù)數(shù)過過程程 計計數(shù)數(shù)結(jié)結(jié)束束29特點&當(dāng)任一計數(shù)器被定義為方式0時, OUTi輸出為低電平;并在計數(shù)過程中一直保持低電平,當(dāng)計數(shù)器減到零時,OUT立即變成高電平。&一次計數(shù)&GATE為高,計數(shù)器工作q當(dāng)GATE=0時,計數(shù)暫停q當(dāng)GATE=1時,接著計數(shù)&計數(shù)過程中允許改變計數(shù)值q重新寫入計數(shù)值
26、后,下一時鐘脈沖,計數(shù)值送減一計數(shù)器,按新值重新開始計數(shù)&8253內(nèi)部沒有中斷控制電路q若要用于中斷,可用OUT作為中斷請求信號,但需要外接中斷排隊電路與向量產(chǎn)生電路30改變計數(shù)值31 例:使計數(shù)器例:使計數(shù)器T1工作在工作在0方式,進行方式,進行16位二進制計數(shù),計位二進制計數(shù),計數(shù)初值的高低字節(jié)分別為數(shù)初值的高低字節(jié)分別為BYTEH和和BYTEL。 初始化程序段:初始化程序段: MOV AL,01110000B ;方式字;方式字 OUT 43H,AL ;命令口;命令口 MOV AL,BYTEL ;寫計數(shù)值低字節(jié);寫計數(shù)值低字節(jié) OUT 41H,AL ;T1數(shù)據(jù)口數(shù)據(jù)口 MOV AL
27、,BYTEH ;寫計數(shù)值高字節(jié);寫計數(shù)值高字節(jié) OUT 41H ,AL 322.方式1:可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器(輸出:N時鐘周期的單穩(wěn)負脈沖)設(shè)設(shè)定定工工作作方方式式設(shè)設(shè)定定計計數(shù)數(shù)初初值值硬硬件件啟啟動動計計數(shù)數(shù)值值送送入入計計數(shù)數(shù)器器計計數(shù)數(shù)過過程程計計數(shù)數(shù)結(jié)結(jié)束束GATEOUTCLK 031244方式方式1WR計數(shù)過程中寫入新的計數(shù)值,將不影響當(dāng)前計數(shù)若有GATE上升沿觸發(fā)啟動,則按照新值開始計數(shù)計數(shù)過程結(jié)束前,GATE再次觸發(fā),則計數(shù)器重新裝入計數(shù)值,從頭開始計數(shù) 33&設(shè)定方式設(shè)定方式1后,輸出端變?yōu)楦唠娖?;寫入計?shù)初值后,后,輸出端變?yōu)楦唠娖?;寫入計?shù)初值后,計數(shù)器并不立
28、即開始工作;門控信號計數(shù)器并不立即開始工作;門控信號GATE有效(變?yōu)橛行Вㄗ優(yōu)楦唠娖剑?,才開始工作,使輸出高電平),才開始工作,使輸出OUT變成低電平;直到變成低電平;直到計數(shù)器值減到零后,輸出才變高電平。計數(shù)器值減到零后,輸出才變高電平。&在計數(shù)器工作期間,當(dāng)在計數(shù)器工作期間,當(dāng)GATE又出現(xiàn)一個上升沿時,計又出現(xiàn)一個上升沿時,計數(shù)器重新裝入原計數(shù)初值并重新開始計數(shù)。數(shù)器重新裝入原計數(shù)初值并重新開始計數(shù)。&如果工作期間對計數(shù)器寫入新的計數(shù)初值,則要等到當(dāng)如果工作期間對計數(shù)器寫入新的計數(shù)初值,則要等到當(dāng)前的前的計數(shù)值計滿回零計數(shù)值計滿回零且且門控信號再次出現(xiàn)上升沿門控信號再次
29、出現(xiàn)上升沿后,才后,才按新寫入的計數(shù)初值開始工作。按新寫入的計數(shù)初值開始工作。方式1特點34圖3.5 8253的1方式時序波形n=4n=3CLKGATEWROUTOUTWROUT 43210432132n=210210GATE40GATE35例:使計數(shù)器例:使計數(shù)器T2 工作在工作在1方式,進行方式,進行8位二進制計數(shù),并設(shè)位二進制計數(shù),并設(shè)計數(shù)初值的低計數(shù)初值的低8位為位為BYTEL。8253的的3個計數(shù)器及控制字個計數(shù)器及控制字寄存器的端口地址分別是寄存器的端口地址分別是304H,305H,306H,307H。 初始化程序段:初始化程序段: MOV DX,307H ;命令口;命令口 MOV
30、 AL,10010010B ;方式字;方式字 OUT DX,AL MOV DX,306H ;T2數(shù)據(jù)口數(shù)據(jù)口 MOV AL,BYTEL ;低;低8位計數(shù)值位計數(shù)值 OUT DX,AL363.方式2:頻率發(fā)生器(分頻器)自動裝入計數(shù)初值的自動裝入計數(shù)初值的N分頻器分頻器03124GATEOUTCLK n=4方式方式2031240312403124WR37方式2特點與時序方式字裝入后,OUT將為高。寫入計數(shù)初值后,開始計數(shù)。計數(shù)過程中,OUT為高,直到計數(shù)器減為1,OUT為低,并保持一個CLK周期,OUT恢復(fù)為高,開始下一個新的計數(shù)周期,使輸出為CLK時鐘的1/N分頻信號,占空比q=(N-1)/N
31、。計數(shù)過程中裝入新值,不影響現(xiàn)行計數(shù);但從下個周期開始按新的計數(shù)值計數(shù)門控GATE的作用:高電平時計數(shù),低電平停止計數(shù),并使輸出為高; 用GATE的上升沿可以觸發(fā)分頻重新開始稱為硬同步; 而在GATE=1時,用裝初值的方法啟動分頻開始稱為軟同步。38例:使計數(shù)器例:使計數(shù)器T T0 0 工作在工作在2 2方式,進行方式,進行1616位二進制計數(shù)。設(shè)位二進制計數(shù)。設(shè)8253的的3個計數(shù)器及控制字寄存器的端口地址分別是個計數(shù)器及控制字寄存器的端口地址分別是304H,305H,306H,307H。 其初始化程序段為其初始化程序段為 MOV DXMOV DX,307H 307H ;命令口;命令口 MO
32、V ALMOV AL,000011110100100B0B ;方式字;方式字 OUT DXOUT DX,ALAL MOV DX MOV DX,304H 304H ;T T2 2數(shù)據(jù)口數(shù)據(jù)口 MOV ALMOV AL,BYTEL BYTEL ;寫低;寫低8 8位計數(shù)值位計數(shù)值 OUT DXOUT DX,ALAL MOV AL MOV AL,BYTEH BYTEH ;寫高;寫高8 8位計數(shù)值位計數(shù)值 OUT DXOUT DX,ALAL394.方式3:方波發(fā)生器03124GATEOUTCLK n=4方式方式3031240312403124WR自動重裝計數(shù)初值自動重裝計數(shù)初值40方式3時序q GATE
33、為高電平,允許計數(shù);為高電平,允許計數(shù);GATE為低電平,停止計數(shù),為低電平,停止計數(shù),GATE的上升的上升沿啟動重新計數(shù)。沿啟動重新計數(shù)。q 具有自動重裝計數(shù)初值的功能具有自動重裝計數(shù)初值的功能q 方式方式3特點與方式特點與方式2類似,主要區(qū)別:輸出為方波,類似,主要區(qū)別:輸出為方波,q計數(shù)值為偶數(shù),前一半輸出為高,后一半輸出為低,占空比計數(shù)值為偶數(shù),前一半輸出為高,后一半輸出為低,占空比q=0.5。q計數(shù)值為奇數(shù),前一半比后一半多一個時鐘脈沖的高電平,隨后輸計數(shù)值為奇數(shù),前一半比后一半多一個時鐘脈沖的高電平,隨后輸出低,占空比出低,占空比q=(N+1)/2N。415.方式4:軟件觸發(fā)的選通
34、信號發(fā)生器GATEOUTCLK031244方式方式4223331 0WRq計數(shù)是一次性的。寫入方式后,計數(shù)是一次性的。寫入方式后,OUT輸出為高;初值裝入后,經(jīng)過輸出為高;初值裝入后,經(jīng)過1個個CLK的的周期,計數(shù)器開始從初值減周期,計數(shù)器開始從初值減1計數(shù),計數(shù)為計數(shù),計數(shù)為0時,使時,使OUT端輸出一個端輸出一個CLK周期的周期的負脈沖負脈沖選通信號。選通信號。q在計數(shù)過程中,改變計數(shù)值是立即有效的,它將立即按新的計數(shù)值繼續(xù)重新開在計數(shù)過程中,改變計數(shù)值是立即有效的,它將立即按新的計數(shù)值繼續(xù)重新開始計數(shù)。如果計數(shù)值是雙字節(jié),則在寫入第始計數(shù)。如果計數(shù)值是雙字節(jié),則在寫入第1個字節(jié)時停止計數(shù)
35、,在寫入第個字節(jié)時停止計數(shù),在寫入第2個字個字節(jié)以后,按照新計數(shù)值開始計數(shù)。節(jié)以后,按照新計數(shù)值開始計數(shù)。 qGATE為高,允許計數(shù)器工作,為低禁止計數(shù),上升沿則計數(shù)器重新裝入計數(shù)為高,允許計數(shù)器工作,為低禁止計數(shù),上升沿則計數(shù)器重新裝入計數(shù)初值,開始計數(shù)初值,開始計數(shù) 。軟件觸發(fā):即由寫入計數(shù)初值來觸發(fā)計數(shù)器開始工作軟件觸發(fā):即由寫入計數(shù)初值來觸發(fā)計數(shù)器開始工作426.方式5:硬件觸發(fā)的選通信號發(fā)生器GATEOUTCLK031244方式方式52233311 0WRq初值裝入后,在初值裝入后,在GATEGATE的上升沿的觸發(fā)下,經(jīng)過的上升沿的觸發(fā)下,經(jīng)過1 1個個CLKCLK的周期,計數(shù)器開始
36、的周期,計數(shù)器開始從初值減從初值減1 1計數(shù),計數(shù)結(jié)束(歸計數(shù),計數(shù)結(jié)束(歸0 0)時,使)時,使OUTOUT輸出一個寬度為輸出一個寬度為1 1個個CLKCLK周期的周期的負脈沖負脈沖選通信號。選通信號。q計數(shù)過程中重新裝入新值,無計數(shù)過程中重新裝入新值,無GATEGATE上升沿觸發(fā),不影響當(dāng)前計數(shù)狀態(tài)上升沿觸發(fā),不影響當(dāng)前計數(shù)狀態(tài)q計數(shù)過程中,計數(shù)過程中,GATEGATE又有上升沿觸發(fā),下一時鐘脈沖計數(shù)器重新裝入計數(shù)初又有上升沿觸發(fā),下一時鐘脈沖計數(shù)器重新裝入計數(shù)初值,從頭開始計數(shù)值,從頭開始計數(shù) 硬件觸發(fā):即由硬件觸發(fā):即由GATE上升沿觸發(fā)計數(shù)器開始工作上升沿觸發(fā)計數(shù)器開始工作437.各
37、種工作方式的輸出波形&每種工作方式寫入計數(shù)值每種工作方式寫入計數(shù)值N開始計數(shù)后,開始計數(shù)后,OUT輸出的信號輸出的信號不盡相同。不盡相同。&計數(shù)過程中寫入新計數(shù)值,也將引起輸出波形的改變計數(shù)過程中寫入新計數(shù)值,也將引起輸出波形的改變&總的來說,總的來說,GATE信號為低禁止計數(shù),為高允許計數(shù),上信號為低禁止計數(shù),為高允許計數(shù),上升沿啟動計數(shù)。升沿啟動計數(shù)。OUT44六種工作方式的比較&觸發(fā)方式 q方式1和方式5為硬件觸發(fā);其余為軟件觸發(fā)&輸出波形 q方式2和方式3輸出重復(fù)波形其余為單次波形q方式0、1基本相同;方式4、5基本相同45六種工作方式的比較-共
38、同點&控制字寫入計數(shù)器控制字寫入計數(shù)器時,所有的控制邏輯電路立即復(fù)位,時,所有的控制邏輯電路立即復(fù)位,輸輸出端出端OUT進入初始狀態(tài)進入初始狀態(tài)(高電平或低電平)。(高電平或低電平)。&初始值寫入后,要初始值寫入后,要經(jīng)過一個時鐘上升沿和一個時鐘下降沿經(jīng)過一個時鐘上升沿和一個時鐘下降沿,計數(shù)執(zhí)行部件才開始進行計數(shù)。計數(shù)執(zhí)行部件才開始進行計數(shù)。&通常,通常,在時鐘脈沖在時鐘脈沖CLK的上升沿時,門控信號的上升沿時,門控信號GATE被采被采樣樣。對于一種給定的方式,對門控信號的觸發(fā)方式是有具。對于一種給定的方式,對門控信號的觸發(fā)方式是有具體規(guī)定的,即或者用電平觸發(fā),或者用邊
39、沿觸發(fā),在有的體規(guī)定的,即或者用電平觸發(fā),或者用邊沿觸發(fā),在有的模式中,兩種方式都允許。模式中,兩種方式都允許。&在脈沖的下降沿,計數(shù)器作減在脈沖的下降沿,計數(shù)器作減1計數(shù)計數(shù)。0是計數(shù)器所能容納是計數(shù)器所能容納的最大初始值,因為用二進制時,的最大初始值,因為用二進制時,0相當(dāng)于相當(dāng)于216,用,用BCD碼碼時,相當(dāng)于時,相當(dāng)于104。46&方式方式0和方式和方式1q輸出波形類似,均無自動重裝能力。輸出波形類似,均無自動重裝能力。q它們的不同點在于門控信號它們的不同點在于門控信號GATE上升沿對計數(shù)的影響及啟動計上升沿對計數(shù)的影響及啟動計數(shù)器的觸發(fā)信號不同。數(shù)器的觸發(fā)信號不同。
40、&方式方式 2和方式和方式3q共同點是具有自動再加載功能(裝入)能力。共同點是具有自動再加載功能(裝入)能力。q區(qū)別:方式區(qū)別:方式2在計數(shù)過程中輸出高電平,而每當(dāng)減在計數(shù)過程中輸出高電平,而每當(dāng)減1至至0時輸出寬度時輸出寬度為為1個個TCLK的負脈沖。的負脈沖。q方式方式3是在計數(shù)過程中,是在計數(shù)過程中,OUT的信號是占空比為的信號是占空比為1:1的方波或近似的方波或近似方波。方波。&方式方式4和方式和方式5qOUT輸出波形相同,無自動重裝能力。輸出波形相同,無自動重裝能力。q兩者的區(qū)別是計數(shù)啟動的觸發(fā)信號不同,前者由寫信號啟動計數(shù),兩者的區(qū)別是計數(shù)啟動的觸發(fā)信號不同,前者由
41、寫信號啟動計數(shù),后者從后者從GATE的上升沿開始計數(shù)。的上升沿開始計數(shù)。工作方式總結(jié)-不同點47481.1.分頻器設(shè)計分頻器設(shè)計 用8253(8253(地址40H43H)40H43H)將5MHz5MHz的脈沖變?yōu)?Hz1Hz的脈沖。分析: 初值= =fCLK/fOUT=5=51061066553665536,需要2 2個T/CT/C串聯(lián),采用方式3 3產(chǎn)生連續(xù)脈沖,T/CT/C的GATEGATE統(tǒng)一控制。6.3 8253的應(yīng)用MOV AL,00110111BOUT 43H,ALMOV AX,5000OUT 40H,ALMOV AL,AHOUT 40H,ALMOV AL,01110111BOUT
42、 43H,ALMOV AX,1000OUT 41H,ALMOV AL,AHOUT 41H,AL49思路:用用82538253的的計數(shù)器計數(shù)器1 1作為計數(shù)器作為計數(shù)器,用于用于2424個罐的計數(shù),個罐的計數(shù),工作在方式工作在方式2 2,計數(shù),計數(shù)初值初值24;24;計數(shù)器計數(shù)器2 2作為定時器作為定時器,定時為,定時為4S4S。工工作在方式作在方式1 1,計數(shù)初值,計數(shù)初值8000;8000;1. 1.當(dāng)計數(shù)器當(dāng)計數(shù)器1 1的的OUT1OUT1腳出現(xiàn)腳出現(xiàn)0 0到到1 1的跳的跳變的時候,將啟動計數(shù)器變的時候,將啟動計數(shù)器2 2開始定時,開始定時,而計數(shù)器而計數(shù)器2 2定時階段將控制計數(shù)器定時
43、階段將控制計數(shù)器1 1停止計數(shù),只有其定時結(jié)束并停止停止計數(shù),只有其定時結(jié)束并停止計數(shù)階段才可再次啟動計數(shù)器計數(shù)階段才可再次啟動計數(shù)器1 1開始開始計數(shù)。計數(shù)。2. 2. 包裝流水線控制包裝流水線控制某產(chǎn)品的包裝流水線中,一個包裝箱能裝某產(chǎn)品的包裝流水線中,一個包裝箱能裝2424罐飲料。裝箱時罐飲料。裝箱時希望流水線上希望流水線上每通過每通過2424罐飲料罐飲料,流水線要,流水線要停停4 4秒秒以等待裝箱以等待裝箱完畢,然后繼續(xù)裝后面的罐。試利用一片完畢,然后繼續(xù)裝后面的罐。試利用一片82538253來完成流水線來完成流水線控制中的定時和計數(shù)功能。假設(shè)控制中的定時和計數(shù)功能。假設(shè)8253825
44、3的端口地址為的端口地址為8CH8FH8CH8FH,采用的時鐘頻率是采用的時鐘頻率是2KHz。流水線信號流水線信號計數(shù)計數(shù)信號信號停止停止/ /啟動啟動50D08OUT010D17GATE011D26CLK09D35D44D53D62OUT113D71GATE114CLK115CS21RD22WR23OUT217A019GATE216A120CLK218U48253OUT2CLK1流水線信號流水線信號流水線信號流水線信號2KHz;初始化計數(shù)器1,方式2MOV AL,01010100BOUT 8FH,ALMOV AL,24OUT 8DH,AL;初始化計數(shù)器2,方式1MOV AL,10110010
45、BOUT 8FH,ALMOV AX,8000OUT 8EH,ALMOV AL,AHOUT 8EH,AL513.波特率時鐘發(fā)生器1)要求 設(shè)計一個波特率時鐘發(fā)生器,其輸入時鐘CLK=1.19318MHz,波特率因子factor=16,輸出的波特率為8檔,它們分別是110b/s、 150b/s、 300b/s、 600b/s、1200 b/s、2400b/s、4800b/s、9600b/s。要求利用人-機對話方式選擇波特率。按Esc鍵,退出。2)分析波特率是每秒鐘傳輸?shù)臄?shù)據(jù)位數(shù)。波特率是每秒鐘傳輸?shù)臄?shù)據(jù)位數(shù)。每傳輸每傳輸1位數(shù)據(jù)所需要的時鐘脈沖個數(shù),叫做波特率因子。位數(shù)據(jù)所需要的時鐘脈沖個數(shù),叫做
46、波特率因子。輸出時鐘頻率: OUT=BaudFactor 定時常數(shù)定時常數(shù): Tc=CLK/OUT=CLK/(BaudFactor)=CLK/(BF ) 例如,若要求串行通信傳輸率為1200b/s,而波特率因子為16,8253的輸入時鐘為1.19318MHz,則8253的定時常數(shù)可利用關(guān)系式求得: (CLK=1.19M,B=1200,F=16) Tc=(1.19318106次/秒)/(1200位/秒16次/位) =62 52 要求實現(xiàn)波特率任選,就是實現(xiàn)8253定時常數(shù)的任選,其方法有二: 一是查表法:預(yù)先算出一是查表法:預(yù)先算出8 8種波特率的定時常數(shù),制成表,種波特率的定時常數(shù),制成表,存
47、放在數(shù)據(jù)區(qū),通過查表,選取不同的定時常數(shù)。存放在數(shù)據(jù)區(qū),通過查表,選取不同的定時常數(shù)。 二是現(xiàn)場計算法:在程序中計算相應(yīng)的定時常數(shù)。二是現(xiàn)場計算法:在程序中計算相應(yīng)的定時常數(shù)。 這里使用選查表法。假設(shè)8253、8255端口地址都是304H307H、 300H303H 。 3)設(shè)計(1)硬件設(shè)計 波特率時鐘發(fā)生器的硬件包括定時/計數(shù)器8253、并行接口芯片8255A及I/O端口地址譯碼電路等。53通過8255的PC6與8253A計數(shù)器2的門控信號GATE相連,來控制該計數(shù)器的工作。54波特率時鐘發(fā)生器程序流程圖波特率時鐘發(fā)生器程序流程圖開始開始8253初始化初始化8255初始化初始化關(guān)閉關(guān)閉82
48、53 提示選擇波特率提示選擇波特率選擇波特率選擇波特率選擇有錯?選擇有錯?YN波特率代號波特率代號temp查表獲取計數(shù)初值,并查表獲取計數(shù)初值,并裝入裝入8253(CALL Load)有有ESC鍵按下?鍵按下?關(guān)關(guān)8253返回返回DOS結(jié)束結(jié)束NY(2)軟件編程 計算出題目中要求的8檔波特率的定時常數(shù),分別為678、497、249、124、62、31、16、8。其次,設(shè)計查表法的波特率時鐘發(fā)生器程序流程圖。55產(chǎn)生不同波特率的程序如下: DATA SEGNENT TC-TABLE DW 678 ;0=110b/s ,定時常數(shù)表 DW 497 ;1= 150b/s DW 249 ;2= 300b
49、/s DW 124 ;3= 600b/s DW 62 ;4= 1200b/s DW 31 ;5= 2400b/s DW 16 ;6= 4800b/s DW 8 ;7= 9600b/s TEMP DB (?) ;存放波特率代號 MES DB NOW BEGIN TO GENERATE BAUD-RATES CLK!,0DH,0AH DB HIT ESC TO QUIT !,0DH,OAH,$ INPUR-MES DB 0:110 1:150 2:300 3:600 4:1200,0DH,0AH DB 5:2400 6:4800 7:9600 ,0DH,0AH, $ DB PLEASE TAKE
50、A CHOICE(0-7) OF BAUD-RATE:, 0DH,0AH, $ ERROR-MES DB INPUT ERROR! TRY AGAIN PLEASE!,0DH,0AH, $ DATA ENDS56CODE SEGMENT ASSUME CS:CODE,DS:DATAMAIN:MOV AX,CODE MOV CS,AX MOV DX,307H ;8253命令口 MOV AL,0B6H ;8253方式命令(10110110B=0B6H) OUT DX,AL ; 計數(shù)器2,工作方式3 MOV DX,303H ;8255命令口 MOV AL,0CH ;使PC6=0,關(guān)8253 OUT
51、DX, AL MOV AX,DATA MOV DS,AX LEA DX,INPUT-MES ;提示選擇波特率 MOV AH,09H INT 21HINPUT:MOV AH,08H ;等待鍵盤輸入 INT 21H CMP AL,0 ; 選擇波特率是否正確? JB ERROR ; 輸入0或7則不正確,則轉(zhuǎn)出錯處理 CMP AL,7 8253初始化初始化8255初始化初始化57 JA ERROR SUB AL,30H ;正確 MOV TEMP,AL ;則保存波特率代號 CALL LOAD ;裝入計數(shù)初值 JMP BEGIN ;啟動8253波特率時鐘發(fā)生器ERROR:MOV AH,9H ;出錯處理 L
52、EA DX,ERROR-MES INT 21H JMP INPUT ;重新選擇波特率BEGIN:LEA DX,MES ;顯示提示信息 MOV AH,09H INT 21HSTART:MOV DX,303H ;8255命令口 MOV AL,0DH ;使PC6=1,啟動8253, 產(chǎn)生波特率時鐘 OUT DX,AL NOPLOP: MOV AH,0BH ;檢測有鍵按下? INT 21H58 CMP AL,00 ;AL=00H有輸入,AL=FFH無輸入 JNE LOP ;無,等待 MOV AH,08H ;有,檢測是否是Esc鍵 INT 21H CMP AL,1BH JE QUIT;是,則退出 JMP
53、 LOP ;不是,循環(huán)查Esc鍵QUIT:MOV DX,303H MOV AL,0CH;置PC6=0,關(guān)閉8253 OUT DX,AL MOV AX,4C00H;退出,返回DOS INT 21H LOAD PROC NEAR;裝入計數(shù)初值子程序 PUSH AX PUSH DX PUSH SI59 MOV DL,TEMP ;TEMP=017 SHL DL,1;波形代號乘2,存放在DX中 AND DX,0FH ;只取DX的低4位 MOV SI,OFFSET TC-TABLE ;取定時常數(shù)表的首址SI ADD SI,DX ;SI為定時常數(shù)表指針(首址+偏移量) MOV DX,306H ;計數(shù)器2的數(shù)
54、據(jù)口 MOV AL,SI ;裝入計數(shù)初值低字節(jié) OUT DX,AL MOV AL,SI+1 ;裝入計數(shù)初值高字節(jié) OUT DX,AL POP SI POP DX POP AX RETLOAD ENDPCODE ENDS END MAIN 計算定時常計算定時常數(shù)在表中的數(shù)在表中的偏移量偏移量定時常數(shù)裝定時常數(shù)裝入入8253計數(shù)計數(shù)器器2604. 計數(shù)器應(yīng)用-日時鐘1)要求 設(shè)計一個計一天時間的日計時器-日時鐘。2)分析q新計時單位的建立q統(tǒng)計計時單位的計數(shù)單元 利用8253工作在方式3下,其輸出為一系列方波,這種方波的周期是準(zhǔn)確的,可以作為定時單位。比如,選用8253的計數(shù)器0,讓其工作在3方式
55、,計數(shù)初值設(shè)置為0(計數(shù)次數(shù)65536)。61新計時單位的建立&系統(tǒng)提供的時鐘即輸入時鐘CLK0=1.1931816MHz,則輸出方波的頻率為 fout0=1.1931816MHz/65536=18.2Hz& 輸出方波的周期為: Tout0=1/18.21000ms=54.945ms(新計時單位)& 則q1天 2460601000ms/54.945ms=1573040(計時單位) 若以十六進制表示,則為001800B0H個計時單位q1小時包含65543個計時單位q1分鐘包含1092 個計時單位q1秒鐘包含18.2個計時單位62統(tǒng)計計時單位的計數(shù)單元&將8253輸
56、出方波OUT0接中斷控制器8259的IR0上,定時申請中斷,每次中斷將計數(shù)值加1 ,實現(xiàn)新計時單位的累加,完成一天內(nèi)計時( 001800B0H個計時單位)&設(shè)置兩個字變量分別為:TIMER-LO(40H:6CH)和TIME-HI(40H:6EH),存放計數(shù)值。在服務(wù)程序中對雙字單元加1,若TIME-HI=0018H且TIMER-LO=00B0H,說明已計滿24小時,雙字單元清0,再開始第二天的計時。633)設(shè)計)設(shè)計(1)硬件設(shè)計)硬件設(shè)計 日時鐘的硬件主要由定時日時鐘的硬件主要由定時/ /計數(shù)器計數(shù)器82538253和中斷控制器和中斷控制器8259A8259A構(gòu)成,構(gòu)成,工作原理框圖
57、如圖所示。該圖還畫出了在日時鐘運行時對內(nèi)存工作原理框圖如圖所示。該圖還畫出了在日時鐘運行時對內(nèi)存RAMRAM的使用情況。的使用情況。64(2) 軟件設(shè)計:中斷服務(wù)程序流程軟件設(shè)計:中斷服務(wù)程序流程655. 實現(xiàn)穩(wěn)定定時實現(xiàn)穩(wěn)定定時1)要求)要求實現(xiàn)5秒鐘的穩(wěn)定定時(不依賴于機器速度)2)分析)分析 思路思路 軟中斷軟中斷 INT 1AHINT 1AH的的0 0號功能,號功能,讀取日時鐘讀取日時鐘日時鐘的計時單位是穩(wěn)定的,雙字單元的內(nèi)容若增加了91,就說明5s到了讀取日時鐘雙字單元的內(nèi)容TIMER_HICX;TIMER_LODX&中斷調(diào)用指令:INT 1AH&子功能號:AH=00H 出口參數(shù):CX.DX=計時變量值(以55ms為單位,CX為高字,DX為低字);AL=0,未超過24小時 66延時5s的程序 ;延時開始mov ah,0;讀取日時鐘功能調(diào)用int 1ahadd dx,91;加5秒(518.291)mov bx,dx; 期望值送bx repeat:mov ah,0 int 1ah ;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年Delphi程序結(jié)構(gòu)設(shè)計題型及答案
- 數(shù)據(jù)完整性約束與實現(xiàn)試題及答案
- 高效學(xué)習(xí)策略軟件設(shè)計師試題及答案
- 漢語文化中的語言特色解析試題及答案
- C++數(shù)組與指針應(yīng)用試題及答案
- 編程邏輯訓(xùn)練計算機二級Python試題及答案
- 財務(wù)決策中邏輯推理的實踐試題及答案
- 2025年計算機二級Delphi考試難點預(yù)測試題及答案
- 2025年Web考試目標(biāo)任務(wù)試題及答案
- 數(shù)據(jù)庫索引使用方式試題及答案
- 心血管-腎臟-代謝綜合征患者的綜合管理中國專家共識2025解讀
- 學(xué)院“十五五”大學(xué)文化建設(shè)規(guī)劃
- GB/T 45545-2025廚房家具配合尺寸
- 安全生產(chǎn)管理和培訓(xùn)制度
- 2025山東濟南先行投資集團有限責(zé)任公司及權(quán)屬公司社會招聘169人筆試參考題庫附帶答案詳解
- 【MOOC期末】《大學(xué)生計算與信息化素養(yǎng)》(北京林業(yè)大學(xué))期末中國大學(xué)慕課MOOC答案
- 1.2.3《相反數(shù)》教學(xué)設(shè)計2024-2025學(xué)年人教版數(shù)學(xué)七年級上冊
- 2024年重慶市初中學(xué)業(yè)水平考試地理試卷試題真題(含答案詳解)
- 公路水運工程施工企業(yè)(主要負責(zé)人和安全生產(chǎn)管理人員)考核大綱及模擬題庫
- 幼兒園繪本故事:《媽媽買綠豆》 PPT課件
- 乘法運算定律復(fù)習(xí)課(1)
評論
0/150
提交評論