




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、5.2 定時定時/計數(shù)器控制接口計數(shù)器控制接口技術(shù)技術(shù)定時控制在微機(jī)系統(tǒng)中極為重要定時器由數(shù)字電路中的計數(shù)電路構(gòu)成,通過記錄高精度晶振脈沖信號的個數(shù),輸出準(zhǔn)確的時間間隔計數(shù)電路如果記錄外設(shè)提供的具有一定隨機(jī)性的脈沖信號時,它主要反映脈沖的個數(shù)(進(jìn)而獲知外設(shè)的某種狀態(tài)),常又稱為計數(shù)器定時功能的實(shí)現(xiàn)方法在微機(jī)應(yīng)用系統(tǒng)中,經(jīng)常會有這樣的應(yīng)用要求:一種是要求有一些外部實(shí)時時鐘,以實(shí)現(xiàn)延時控制或定時;另一種是要求能對外部事件計數(shù)的計數(shù)器。在微機(jī)系統(tǒng)中,常采用一下三種方法實(shí)現(xiàn):軟件定時,不可編程硬件定時和可編程硬件定時。軟件延時利用微處理器執(zhí)行一個延時程序段實(shí)現(xiàn)不可編程的硬件定時采用分頻器、單穩(wěn)電路或簡
2、易定時電路控制定時時間可編程的硬件定時軟件硬件相結(jié)合、用可編程定時器芯片構(gòu)成一個方便靈活的定時電路5.2.1 8253/8254定時計定時計數(shù)器數(shù)器3個獨(dú)立的16位計數(shù)器通道每個計數(shù)器有6種工作方式按二進(jìn)制或十進(jìn)制(BCD碼)計數(shù)8254是是8253的改進(jìn)型的改進(jìn)型1. 8253/8254的內(nèi)部結(jié)構(gòu)和引腳D7D0計數(shù)器0控制字寄存器計數(shù)器1計數(shù)器2內(nèi)部數(shù)據(jù)總線數(shù)據(jù)總線緩沖器讀寫控制邏輯RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2計數(shù)器結(jié)構(gòu)示意圖預(yù)置寄存器預(yù)置寄存器GATECLKOUT減減1計數(shù)器計數(shù)器輸出鎖存器輸出鎖存器計數(shù)初值存于計數(shù)初值
3、存于預(yù)置寄存器預(yù)置寄存器;在計數(shù)過程中,在計數(shù)過程中,減法計數(shù)器減法計數(shù)器的值不斷遞減,的值不斷遞減,而預(yù)置寄存器中的預(yù)置不變。而預(yù)置寄存器中的預(yù)置不變。輸出鎖存器輸出鎖存器用于寫入鎖存命令時,用于寫入鎖存命令時,鎖定當(dāng)前計數(shù)值鎖定當(dāng)前計數(shù)值計數(shù)器的3個引腳CLK時鐘輸入信號在計數(shù)過程中,此引腳上每輸入一個時鐘信號(下降沿),計數(shù)器的計數(shù)值減1GATE門控輸入信號控制計數(shù)器工作,可分成電平控制和上升沿控制兩種類型OUT計數(shù)器輸出信號當(dāng)一次計數(shù)過程結(jié)束(計數(shù)值減為0),OUT引腳上將產(chǎn)生一個輸出信號2. 與處理器接口D0 D7數(shù)據(jù)線A0 A1地址線RD*讀信號WR*寫信號CS*片選信號CS* A
4、1 A0I/O地址地址讀操作讀操作RD*寫操作寫操作WR*0 0 00 0 10 1 00 1 140H41H42H43H讀計數(shù)器讀計數(shù)器0讀計數(shù)器讀計數(shù)器1讀計數(shù)器讀計數(shù)器2無操作無操作寫計數(shù)器寫計數(shù)器0寫計數(shù)器寫計數(shù)器1寫計數(shù)器寫計數(shù)器2寫控制字寫控制字5.2.2 8253/8254的工作的工作方式方式8253有6種工作方式,由方式控制字確定熟悉每種工作方式的特點(diǎn)才能根據(jù)實(shí)際應(yīng)用問題,選擇正確的工作方式每種工作方式的過程類似: 設(shè)定工作方式 設(shè)定計數(shù)初值 硬件啟動 計數(shù)初值進(jìn)入減1計數(shù)器 每輸入一個時鐘計數(shù)器減1的計數(shù)過程 計數(shù)過程結(jié)束方式0 計數(shù)結(jié)束產(chǎn)生中斷GATEOUTCLK 0312
5、44方式方式0WR設(shè)設(shè)定定工工作作方方式式設(shè)設(shè)定定計計數(shù)數(shù)初初值值計計數(shù)數(shù)值值送送入入計計數(shù)數(shù)器器計計數(shù)數(shù)過過程程計計數(shù)數(shù)結(jié)結(jié)束束方式1可編程單穩(wěn)態(tài)觸發(fā)器設(shè)設(shè)定定工工作作方方式式設(shè)設(shè)定定計計數(shù)數(shù)初初值值硬硬件件啟啟動動計計數(shù)數(shù)值值送送入入計計數(shù)數(shù)器器計計數(shù)數(shù)過過程程計計數(shù)數(shù)結(jié)結(jié)束束GATEOUTCLK 031244方式方式1WR方式2 頻率發(fā)生器(分頻器)03124GATEOUTCLK 4方式方式2031240312403124WR方式3 方波發(fā)生器03124GATEOUTCLK 4方式方式3031240312403124WR方式4 軟件觸發(fā)選通脈沖GATEOUTCLK031244方式方式42
6、23331 0WR方式5 硬件觸發(fā)選通脈沖GATEOUTCLK031244方式方式52233311 0WR工作方式GATE引腳輸入狀態(tài)所起的作用OUT引腳輸出狀態(tài)低電平下降沿上升沿高電平方式0禁止計數(shù)暫停計數(shù)置入初值后WR上升沿開始計數(shù),由GATE的上升沿繼續(xù)計數(shù) (軟觸發(fā) 單次)允許計數(shù)計數(shù)過程中輸出低電平。計數(shù)至0輸出高電平方式1不影響不影響置入初值后,GATE的上升沿開始計數(shù),或重新開始計數(shù)。 (硬觸發(fā) 單次)不影響計數(shù)輸出寬度為n個CLK的低電平(單次)方式2禁止計數(shù)停 止 計數(shù)置入初值后,WR上升沿開始計數(shù),由GATE的上升沿重新開始計數(shù)(軟觸發(fā) 循環(huán))允許計數(shù)輸出寬度為n個CLK寬
7、度為1個CLK的負(fù)脈沖方式3禁止計數(shù)停 止 計數(shù)置入初值后,WR上升沿開始計數(shù),由GATE的上升沿重新開始計數(shù)(軟觸發(fā)循環(huán))允許計數(shù)輸出寬度為n個CLK的方波(重復(fù)波形)方式4禁止計數(shù)停 止 計數(shù)置入初值后,WR上升沿開始計數(shù),由GATE的上升沿重新開始計數(shù)(軟觸發(fā) 單次)允許計數(shù)計數(shù)至0,輸出寬度為1個CLK的負(fù)脈沖(單次)方式5不影響不影響置入初值后,GATE的上升沿開始計數(shù),或重新開始計數(shù)。 (硬觸發(fā) 單次)不影響計數(shù)計數(shù)至0,輸出寬度為1個CLK的負(fù)脈沖(單次)各種工作方式的輸出波形方式方式 0方式方式 1方式方式 2方式方式 3方式方式 4方式方式 50N0N0N0/N110NN/2
8、 N/2 0/N0N0 1N0 1N0 1討論:討論:計數(shù)開始的時刻計數(shù)開始的時刻計數(shù)開始的時刻需要注意:處理器寫入8253的計數(shù)初值只是寫入了預(yù)置寄存器,之后到來的第一個CLK輸入脈沖(需先由低電平變高,再由高變低)才將預(yù)置寄存器的初值送到減1計數(shù)器。從第二個CLK信號的下降沿,計數(shù)器才真正開始減1計數(shù)。5.1.3 8253/8254的編程的編程8253加電后的工作方式不確定8253必須初始化編程,才能正常工作寫入控制字寫入計數(shù)初值讀取計數(shù)值8254新增讀回命令D7D6D5D4D3D2D1D01 寫入方式控制字計數(shù)器計數(shù)器讀寫格式讀寫格式工作方式工作方式數(shù)制數(shù)制D7D6D5D4D3D2D1D
9、000 計數(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 方式方式50 二進(jìn)制二進(jìn)制1 十進(jìn)制十進(jìn)制控制字寫入控制字控制字寫入控制字I/O地址(地址(A1A011)示例示例2 寫入計數(shù)值選擇二進(jìn)制時計數(shù)值范圍:0000HFFFFH0000H是最大值,代表65536選擇十進(jìn)制(BCD碼)計數(shù)值范圍:000099990000代表最大值
10、10000計數(shù)值寫入計數(shù)器各自的計數(shù)值寫入計數(shù)器各自的I/O地址地址示例示例3 讀取計數(shù)值對8位數(shù)據(jù)線,讀取16位計數(shù)值需分兩次計數(shù)在不斷進(jìn)行,應(yīng)該將當(dāng)前計數(shù)值先行鎖存,然后讀?。合蚩刂谱諭/O地址:給8253寫入鎖存命令從計數(shù)器I/O地址:讀取鎖存的計數(shù)值讀取計數(shù)值,要注意讀寫格式和計數(shù)數(shù)制讀取計數(shù)值,要注意讀寫格式和計數(shù)數(shù)制4. 8253應(yīng)用舉例在PC系列機(jī)中,使用了1片8253/8254,其內(nèi)部3個計數(shù)器分別用于:日歷時鐘,包括年月日、時分秒,精確到0.01s;動態(tài)存儲器刷新;聲音,根據(jù)不同的音頻產(chǎn)生不同的頻率信號,驅(qū)動揚(yáng)聲器。其連接如圖所示。4. 8253應(yīng)用舉例 續(xù)8253/8254
11、的I/O地址范圍是040H05FH,計數(shù)器0、計數(shù)器1、計數(shù)器2的計數(shù)器端口地址分別為40H、41H和42H,控制字的端口地址為43H。3個計數(shù)器的時鐘信號CLK0CLK2由系統(tǒng)時鐘分頻后得到1.19318MHz提供。(1) 計數(shù)器0計數(shù)器0是一個產(chǎn)生實(shí)時時鐘信號的系統(tǒng)計時器。利用它系統(tǒng)可以完成日歷時鐘計數(shù)、寫操作后的電動機(jī)的自動延遲停機(jī)以及為用戶提供定時中斷調(diào)用。用戶可以使用這個中斷調(diào)用運(yùn)行自己的中斷處理程序。以下為系統(tǒng)ROM-BIOS對計數(shù)器0的初始化編程:MOV AL, 36h ;計數(shù)器0為方式3,采用二進(jìn)制計數(shù),先低后高寫入計數(shù)值OUT 43H, AL ;寫入方式控制字MOV AX,
12、0 ;計數(shù)初值0OUT 40H, AL ;寫入低字節(jié)計數(shù)初值MOV AL, AH OUT 40H, AL ;寫入高字節(jié)計數(shù)初值(2) 計數(shù)器1計數(shù)器1專門用作DRAM定時刷新請求。PC/XT機(jī)要求在2ms內(nèi)進(jìn)行128此刷新操作,PC/AT機(jī)要求在4ms內(nèi)進(jìn)行256次刷新操作,由此可知,每隔2ms/128 = 15.6s必須進(jìn)行一次刷新。這樣計數(shù)器1的GATE1接+5V,CLK1輸入為1.19318MHz方波,采用工作方式2,減“1”計數(shù)器CE的預(yù)置計數(shù)初值為18,因此在OUT2端輸出一負(fù)脈沖,周期為18/1.19318 = 15.084s,該信號作為D觸發(fā)器的觸發(fā)時鐘信號,使每隔15.084s
13、產(chǎn)生一個正脈沖,周期性地對DRAM進(jìn)行刷新,滿足刷新要求,初始化程序如下:MOV AL, 54H ;計數(shù)器1采用工作方式2,二進(jìn)制計數(shù),寫入低8位OUT 43H, AL MOV AL, 18 ;計數(shù)初值為48OUT 41H, AL(3) 計數(shù)器2PC系列機(jī)利用計數(shù)器2的輸出控制揚(yáng)聲器的發(fā)聲,作為機(jī)器的報警信號或伴音信號。計數(shù)器2的時鐘輸入CLK2輸入為1.19318MHz方波,采用工作方式3,系統(tǒng)中初值寄存器的內(nèi)容預(yù)置為0533H(十進(jìn)制1331),當(dāng)GATE2為高電平時,OUT2輸出頻率為1.19318MHz/1331 = 900Hz的方波,該方波信號經(jīng)放大和濾波后可以推動揚(yáng)聲器發(fā)聲。實(shí)現(xiàn)揚(yáng)
14、聲器發(fā)聲的程序如下:SpeakerPROCPUSH AXMOV AL, 0B6H ;計數(shù)器2采用工作方式3,先低后高寫入16為計數(shù)初值OUT 43H, ALPOP AXOUT 42H, AL ;寫入計數(shù)初值MOV AL, aHOUT 42, ALRETSpeakerENDP(3) 計數(shù)器2 續(xù);揚(yáng)聲器打開子程序SpeakerOnPROCPUSH AXIN AL, 61H ;讀取61H端口的控制信息OR AL, 03H ;D1D0 = PB1PB0 = 11BOUT 61H, AL ;控制打開發(fā)聲POP AXRETSpeakerOnENDP;揚(yáng)聲器關(guān)閉子程序SpeakerOffPROCPUSH
15、AXIN AL, 61HAND AL, 0FCH ;D1D0 = PB1PB0 = 00BOUT 61H, AL ;控制關(guān)閉發(fā)聲POP AXRETSpeakerOffENDP(4) 軟件延時BIOS的15H號中斷調(diào)用的86號子功能,該中斷調(diào)用可以使用戶很好的實(shí)現(xiàn)較短時間的延時。中斷調(diào)用命令:INT 15H,子功能號:AH = 86H;入口參數(shù):CX.DX = 延時時間的微秒值(CX是高16位、DX是低16位),出口參數(shù):標(biāo)志位CF = 0,表示成功,執(zhí)行了延時,CF = 1,表示不成功,未執(zhí)行延時。雖然以微妙為單位,但因?yàn)閷?shí)時時鐘的最小單位是976.5625s(1/1024Hz),所以,實(shí)際上
16、該功能調(diào)用的實(shí)際延時是976s的整數(shù)倍。例如要延時 1s,可以用以下程序:MOV AH, 86H MOV CX, 15 ;1000000 微秒的高 16位 MOV DX, 16960 ;1000000微秒的低 16 位 INT 15H4. 8253應(yīng)用舉例 續(xù)例:用8254作為某數(shù)據(jù)采集系統(tǒng)的定時器,每隔10ms用中斷方式采集一次數(shù)據(jù),已知輸入時鐘頻率為10kHz,8259端口地址為2021H,中斷類型號為13H,8254端口地址為4043H,請為8259和8254編制初始化程序。程序源代碼:INT0 EQU 20HINT1 EQU 21HD8254 EQU 43HD8254A EQU 40H
17、 STACK SEGMENT STACK STA DW 50 DUP(?) TOP EQU LENGTH STASTACK ENDS ;初始化8254 MOV AL, 00110001B;82540號計數(shù)器,工作方式0,16位數(shù),10進(jìn)制 OUT D8254, AL MOV AX, 100 ;為計數(shù)器0送計數(shù)初值,先送低8位 OUT D8254A, AL MOV AL, AH OUT D8254A, AL ;為計數(shù)器0送計數(shù)初值高8位4. 8253應(yīng)用舉例 續(xù) CODE SEGMENT ORG 1000H ASSUME CS:CODE,DS:CODE,SS:STACKSTART: ;初始化 ;
18、設(shè)置中斷的入口地址 XOR BX,BX PUSH BX POP DS ;將DS清零 CLI ;關(guān)中斷;如果設(shè)置8259的起始中斷向量號為10;以下6個中斷向量分別分配給IRQ0、IRQ1、IRQ2、IRQ3. LEA AX,IRQ0_INTERRUPT ;中斷向量10H MOV DS:WORD PTR64,AX MOV DS:WORD PTR66,CS NOPn LEA AX,IRQ1_INTERRUPT n ;中斷向量中斷向量11Hn MOV DS:WORD PTR68,AXn MOV DS:WORD PTR70,CSn NOPn LEA AX,IRQ2_INTERRUPT n ;中斷向量中
19、斷向量12Hn MOV DS:WORD PTR72,AXn MOV DS:WORD PTR74,CSn NOPn LEA AX,IRQ3_INTERRUPT n ;中斷向量中斷向量13Hn MOV DS:WORD PTR76,AXn MOV DS:WORD PTR78,CSn NOPn PUSH CS n ;將將CS中的內(nèi)容傳到中的內(nèi)容傳到DSn POP DS4. 8253應(yīng)用舉例 續(xù);初始化8259 CLI ;關(guān)中斷 ;ICW1: 特征 A0 = 0 , D4 = 1 ;邊沿觸發(fā)要求上升沿后保持高電平, MOV AL, 00010011B ;邊沿觸發(fā),單片使用,需要ICW4 OUT INT0
20、, AL JMP $+2 ;延時 ;ICW2: 特征 A0 = 1 按順序判斷 MOV AL, 00010000B ;中斷矢量從10H號開始 OUT INT1, AL JMP $+2 ;ICW4: 特征 A0 = 1 按順序判斷,ICW1設(shè)置要ICW4 ;EOI,全嵌套方式,非緩沖,86/88系統(tǒng) MOV AL, 00000001 ;采用全嵌套,非緩沖,非自動結(jié)束,16位微機(jī)處理 OUT INT1, AL JMP $+24. 8253應(yīng)用舉例 續(xù) ;8259操作命令;*;OCW1: 特征 A0 = 1 按順序判斷; 初始化結(jié)束后,只有OCW1要求A0=1; 其它操作命令OCW2,OCW3 都要
21、求A0=0;* MOV DX,INT1 MOV AL,0F0H ;假設(shè)只用4個可屏蔽中斷,四個中斷全部開放 OUT DX,AL MOV CX,0FFFH LOOP $4. 8253應(yīng)用舉例 續(xù);中斷服務(wù)程序IRQ0_INTERRUPT PROC NEAR PUSH AX PUSH DX STI ;開中斷;.不處理返回CLI ;關(guān)中斷 POP DX POP AX IRETIRQ0_INTERRUPT ENDPnIRQ1_INTERRUPT PROC NEARn PUSH AXn PUSH DXn STI ;開中斷開中斷n;.不處理返回不處理返回nCLI ;關(guān)中斷關(guān)中斷n POP DXn POP
22、AXn IRETnIRQ1_INTERRUPT ENDP4. 8253應(yīng)用舉例 續(xù)IRQ2_INTERRUPT PROC NEAR PUSH AX PUSH DX STI ;開中斷;.不處理返回CLI ;關(guān)中斷 POP DX POP AX IRETIRQ2_INTERRUPT ENDPnIRQ3_INTERRUPT PROC NEARn PUSH AXn PUSH DXn STI ;開中斷開中斷n?n MOV DX,INT0n MOV AL,20Hn OUT DX,ALn CLI ;關(guān)中斷關(guān)中斷n POP DXn POP AXn IRETnIRQ3_INTERRUPT ENDPnCODE ENDSnEND
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家具托管協(xié)議書范本
- 餐飲加盟店選址評估合同范本
- 環(huán)保產(chǎn)業(yè)項目投資與運(yùn)營合作協(xié)議范本
- 倉儲物流倉儲管理員及貨物保險合同
- 瓷磚設(shè)計與生產(chǎn)定制服務(wù)協(xié)議
- 餐飲加盟店加盟店品牌管理與市場拓展合同
- 擔(dān)保合同法律風(fēng)險及應(yīng)對措施
- 草原草原土地流轉(zhuǎn)及承包經(jīng)營合同樣本
- 峽谷橋梁風(fēng)振響應(yīng)監(jiān)測
- ERAS快速康復(fù)之護(hù)理運(yùn)用
- 公寓股權(quán)合伙協(xié)議書
- 土壤酸化耕地治理方案(技術(shù)方案)
- 小學(xué)國學(xué)小名士題庫含答案
- 2023-2024學(xué)年度第一學(xué)期蘇科版初中數(shù)學(xué)九年級上冊教學(xué)計劃附教學(xué)進(jìn)度表
- 2023年7月國家開放大學(xué)??啤斗ɡ韺W(xué)》期末紙質(zhì)考試試題及答案
- 郭慶光《傳播學(xué)教程》第二版超詳細(xì)筆記新聞及傳播學(xué)考研
- 浙江省杭州市拱墅區(qū)部分校2023-2024學(xué)年六年級下冊期末練習(xí)卷科學(xué)試題
- 廣西壯族自治區(qū)南寧市2023-2024學(xué)年八年級下學(xué)期7月期末歷史試題(無答案)
- DL-T5344-2018電力光纖通信工程驗(yàn)收規(guī)范
- 赴日簽證填寫表格及模板
- 2024年人教版小學(xué)語文一年級下冊期末測試卷(含答案)
評論
0/150
提交評論