微機原理及接口技術 8定時、計數(shù)技術_第1頁
微機原理及接口技術 8定時、計數(shù)技術_第2頁
微機原理及接口技術 8定時、計數(shù)技術_第3頁
微機原理及接口技術 8定時、計數(shù)技術_第4頁
微機原理及接口技術 8定時、計數(shù)技術_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、第八章第八章 定時定時/ /計數(shù)器計數(shù)器825382538.1 定時基本概念定時基本概念8.2 可編程計數(shù)器可編程計數(shù)器/定時器定時器82538.3 8253應用舉例應用舉例 8.3.1 計數(shù)器計數(shù)器/定時器定時器 8253的初始化的初始化 8.3.2 時鐘程序時鐘程序本章小結(jié)本章小結(jié)本章習題本章習題學學 習習 目目 的的通過對本章的學習,您應該能夠達到下列要求:了解定時基本概念了解定時基本概念熟悉可編程計數(shù)器熟悉可編程計數(shù)器/定時器定時器8253的外部特性的外部特性熟悉可編程計數(shù)器熟悉可編程計數(shù)器/定時器定時器8253工作模式工作模式熟悉可編程計數(shù)器熟悉可編程計數(shù)器/定時器定時器8253初始

2、化初始化重重 點點8253的外部特性的外部特性8253工作模式工作模式8253初始化初始化8 8.1 .1 定時基本概念定時基本概念u 定時定時/計數(shù)計數(shù)日時鐘日時鐘-實時鐘;定時采樣實時鐘;定時采樣生產(chǎn)線上零件統(tǒng)計、車流量統(tǒng)計生產(chǎn)線上零件統(tǒng)計、車流量統(tǒng)計-頻率頻率-聲音聲音-音樂音樂u 微機中的定時方法微機中的定時方法軟件定時軟件定時延遲子程序延遲子程序 短時延時,不需要外圍設備;短時延時,不需要外圍設備;CPU等待延等待延時增加開銷,降低時增加開銷,降低CPU效率,受主機頻率效率,受主機頻率的影響,通用性差等的影響,通用性差等硬件定時硬件定時 采用定時采用定時/計數(shù)器或單穩(wěn)延時電路產(chǎn)生定時

3、或延計數(shù)器或單穩(wěn)延時電路產(chǎn)生定時或延時。時。 不占不占CPU時間,定時準確且時間長,不受主機時間,定時準確且時間長,不受主機頻率的影響,使用靈活,通用性好。頻率的影響,使用靈活,通用性好。8 8.1 .1 定時基本概念定時基本概念8253:2MHz8253-5:5MHz8254:8MHz8254-2:10MHz8254-5:5MHz 等等例例8 8.1.1:軟件定時的例子:軟件定時的例子 編寫一個軟件定時程序編寫一個軟件定時程序, ,要求定時要求定時20ms20ms。假設:假設:80868086的時鐘的時鐘=8MHz, =8MHz, 一個時鐘周期一個時鐘周期T=1/8MHz=0.125usT=

4、1/8MHz=0.125us延時延時20ms,20ms,執(zhí)行執(zhí)行PUSHF,POPFPUSHF,POPF指令:指令:需要循環(huán)次數(shù):需要循環(huán)次數(shù): N=20000/(14+12+17)N=20000/(14+12+17)* *0.1250.125 =37209=37209參考程序:參考程序:MOV CX,37209MOV CX,37209L1L1: PUSHFPUSHF; ;時鐘數(shù)時鐘數(shù):14T:14TPOPFPOPF; ;時鐘數(shù)時鐘數(shù):12T:12TLOOP L1LOOP L1; ;時鐘數(shù)時鐘數(shù):17T:17T誤差誤差:(15+12+19):(15+12+19)* *0.125=5.75us0

5、.125=5.75us寫成子程序:寫成子程序:DELAY PROC FAR PUSH CX MOV CX, 37209 L: PUSHF POPF LOOP L POP CX RETPUSH CX PUSH CX ; ;時鐘數(shù)時鐘數(shù): 15T: 15TPOP CX POP CX ; ;時鐘數(shù)時鐘數(shù): 12T: 12TRET RET ; ;時鐘數(shù)時鐘數(shù): 19T : 19T 完成完成09的計數(shù)的計數(shù),主要程序片段,主要程序片段 MOV CX, 10LP: CALL DELAY MOV DL,30H MOV AH,02H ;DOS調(diào)用調(diào)用,顯示一個字符顯示一個字符 INT 21H INC DL L

6、OOP LP MOV AH,4CH INT 21H DELAY PROC NEAR ;軟件延時子程序軟件延時子程序 PUSH AX MOV CX,0FFFFH L: PUSHF POPF LOOP L POP AX RETDELAY ENDP8 8.2 .2 可編程計數(shù)器可編程計數(shù)器/ /定時器定時器82538253PIT(Programmable Interval Timer)PIT(Programmable Interval Timer)8086CPUD07A2A1A9A382538253端口地址為偶地址端口地址為偶地址82538253內(nèi)部結(jié)構(gòu)框圖內(nèi)部結(jié)構(gòu)框圖CLKiCLKi:不大于:不大

7、于2MHZ2MHZ1).數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器(8位位) 往計數(shù)器設置計數(shù)初值;往計數(shù)器設置計數(shù)初值; 從計數(shù)器讀取計數(shù)值;從計數(shù)器讀取計數(shù)值; 往控制寄存器設置控制字。往控制寄存器設置控制字。2).讀讀/寫邏輯電路寫邏輯電路 A1 A0:端口選擇:端口選擇 0 0:通道:通道0(0號計數(shù)器)號計數(shù)器) 0 1:通道:通道1(1號計數(shù)器)號計數(shù)器) 1 0:通道:通道2(2號計數(shù)器)號計數(shù)器) 1 1:控制字寄存器:控制字寄存器3).控制寄存器控制寄存器(8位位) 接收接收CPU送來的控制字,用來選擇計數(shù)器和工作送來的控制字,用來選擇計數(shù)器和工作 方式,方式,只能寫不能讀只能寫不能讀。4

8、).計數(shù)器計數(shù)器: 三個獨立通道三個獨立通道:計數(shù)器計數(shù)器0, 計數(shù)器計數(shù)器1, 計數(shù)器計數(shù)器2 每個計數(shù)器包含每個計數(shù)器包含: 計數(shù)初值寄存器計數(shù)初值寄存器(16位,位,65536個數(shù),個數(shù),64KB) 減一寄存器減一寄存器(16位位) 當前計數(shù)初值鎖存器當前計數(shù)初值鎖存器(16位位)計數(shù):計數(shù):CLK脈沖間隔可以不相等;脈沖間隔可以不相等;定時:定時:CLK脈沖間隔相等,精確的時鐘脈沖脈沖間隔相等,精確的時鐘脈沖提問:提問:計數(shù)初值計數(shù)初值n =時鐘頻率時鐘頻率fc/輸出頻率輸出頻率fout =定時時間定時時間Tout/時鐘脈沖周期時鐘脈沖周期Tc方式命令字方式命令字對對8253初始化初始

9、化 SC1 SC0 RW1 RW0 M2 M1 M0 BCD1-計數(shù)值為計數(shù)值為BCD碼格式碼格式0-計數(shù)值為二進制格式計數(shù)值為二進制格式M2 M1 M0 模式選擇模式選擇 0 0 0 模式模式0 0 0 1 模式模式1 0 1 0 模式模式2 0 1 1 模式模式3 1 0 0 模式模式4 1 0 1 模式模式50 0-對計數(shù)器進行鎖存對計數(shù)器進行鎖存0 1-只讀只讀/寫低寫低8位字節(jié)位字節(jié) 1 0-只讀只讀/寫高寫高8位字節(jié)位字節(jié)1 1-先讀先讀/寫低寫低8位字節(jié)位字節(jié), 再讀再讀/寫高寫高8位字節(jié)位字節(jié).0 0-選計數(shù)器選計數(shù)器00 1-選計數(shù)器選計數(shù)器11 0-選計數(shù)器選計數(shù)器21 1

10、-無意義無意義82538253初始化方法初始化方法: :設置控制字;確定計數(shù)初值設置控制字;確定計數(shù)初值。例例8.2:8.2:使使2 2號定時器號定時器, ,工作在方式工作在方式3,3,計數(shù)初值計數(shù)初值=533H,=533H,二進制計數(shù)二進制計數(shù). .試寫出試寫出82538253初始化程序段。已知初始化程序段。已知82538253的端口地址的端口地址:40H,41H,42H,43H:40H,41H,42H,43HMOV AL,MOV AL,101011110110110B ;0B ;2 2號定時器號定時器, ,方式方式3 3OUT 43H,ALOUT 43H,ALMOV AX,0533H MO

11、V AX,0533H OUT 42H,AL ;2OUT 42H,AL ;2號數(shù)據(jù)口號數(shù)據(jù)口 MOV AL,AHMOV AL,AHOUT 42H,ALOUT 42H,AL讀當前計數(shù)值:先寫鎖存控制字,再讀計數(shù)值讀當前計數(shù)值:先寫鎖存控制字,再讀計數(shù)值例例8.3:8.3: 計數(shù)器計數(shù)器1 1已經(jīng)初始化為已經(jīng)初始化為8 8位二進制計數(shù)方式,位二進制計數(shù)方式,要求讀出并檢查要求讀出并檢查1 1號計數(shù)器的當前值是否全為號計數(shù)器的當前值是否全為”1 1”。已知已知82538253的端口地址的端口地址:40H,41H,42H,43H:40H,41H,42H,43HL L: MOV AL,MOV AL,010

12、100000000B ;0000B ;1 1號計數(shù)器號計數(shù)器鎖存鎖存命令命令OUT 43H,ALOUT 43H,ALIN AL,41H ;IN AL,41H ;讀讀1 1號計數(shù)器計數(shù)值號計數(shù)器計數(shù)值 CMP ALCMP AL,0FFH0FFHJNE LJNE LHLTHLT方式方式0 0計數(shù)結(jié)束產(chǎn)生中斷計數(shù)結(jié)束產(chǎn)生中斷一次定時或計數(shù)一次定時或計數(shù), ,重寫初值重寫初值, ,啟動新一輪的計數(shù)啟動新一輪的計數(shù) 方式方式1 1可編程的單脈沖可編程的單脈沖( (單穩(wěn)單穩(wěn)) )觸發(fā)器觸發(fā)器 GATEGATE邊沿觸發(fā)邊沿觸發(fā), ,啟動新一輪計數(shù)啟動新一輪計數(shù)方式方式2 2分頻器分頻器( (速度波形發(fā)生器速

13、度波形發(fā)生器) )具有計數(shù)初值重裝能力具有計數(shù)初值重裝能力方式方式3 3方波發(fā)生器方波發(fā)生器具有計數(shù)初值重裝能力具有計數(shù)初值重裝能力 方式方式4 4軟件觸發(fā)的選通信號發(fā)生器軟件觸發(fā)的選通信號發(fā)生器 一次定時一次定時, ,重寫初值重寫初值, ,啟動新一輪的計數(shù)啟動新一輪的計數(shù) 方式方式5 5硬件觸發(fā)的選通信號發(fā)生器硬件觸發(fā)的選通信號發(fā)生器 GATEGATE邊沿觸發(fā)邊沿觸發(fā), ,新一輪計數(shù)新一輪計數(shù)1.方式方式0計數(shù)結(jié)束產(chǎn)生中斷計數(shù)結(jié)束產(chǎn)生中斷(一次定時或計數(shù)一次定時或計數(shù),若重新計數(shù),則需若重新計數(shù),則需重寫初值重寫初值,啟動新一輪的計數(shù),啟動新一輪的計數(shù))例例8.4:使使1號定時器工作在方式號

14、定時器工作在方式0,計數(shù)初值計數(shù)初值 0FF5H,二進制計數(shù)二進制計數(shù).試寫出試寫出8253初始化程序段。已知初始化程序段。已知8253端口地址端口地址:40H,41H,42H,43HMOV AL,MOV AL,010111110000000B ;0B ;1 1號定時器號定時器, ,方式方式0 0OUT 43H,ALOUT 43H,ALMOV AX,0FF5H MOV AX,0FF5H OUT 41H,AL ; 1OUT 41H,AL ; 1號數(shù)據(jù)口號數(shù)據(jù)口 MOV AL,AHMOV AL,AHOUT 41H,ALOUT 41H,AL高高2.方式方式1單脈沖觸發(fā)器單脈沖觸發(fā)器(GATE邊沿觸發(fā)

15、邊沿觸發(fā),硬件觸發(fā)硬件觸發(fā),啟動新一輪計數(shù))啟動新一輪計數(shù))3.方式方式2-分頻器分頻器(具有計數(shù)具有計數(shù)初值自動重裝初值自動重裝能力能力)3 34.方式方式3-方波發(fā)生器方波發(fā)生器(具有計數(shù)具有計數(shù)初值自動重裝初值自動重裝能力能力) 由由OUTOUT指令對指令對CRCR置初值觸發(fā)!置初值觸發(fā)!例例8.5: 使使2號定時器號定時器,工作在方式工作在方式3,計數(shù)初值計數(shù)初值N=1000H, 二進制計數(shù)二進制計數(shù).試寫出試寫出8253初始化初始化程序段程序段. 8253端口地址端口地址:40H,41H,42H,43HMOV AL,MOV AL,101010100110110B ;0B ;2 2號定

16、時器號定時器, ,方式方式3 3OUT 43H,ALOUT 43H,ALMOV AX,1000HMOV AX,1000HOUT 42H,ALOUT 42H,ALMOV AL,AHMOV AL,AHOUT 42H,AL OUT 42H,AL ; ;送送2 2號數(shù)據(jù)口高號數(shù)據(jù)口高8 8位,低位,低8 8位自動為位自動為0 04.方式方式4-軟件觸發(fā)的選通信號發(fā)生器軟件觸發(fā)的選通信號發(fā)生器5.方式方式5-硬件觸發(fā)的選通信號發(fā)生器硬件觸發(fā)的選通信號發(fā)生器提問:方式方式2,4,52,4,5波形相同,均輸出一個波形相同,均輸出一個CLKCLK負脈沖。負脈沖。方式方式1,51,5工作方式同工作方式同( (硬

17、件觸發(fā)硬件觸發(fā)) ),波形不同。,波形不同。方式方式0,2,3,40,2,3,4在寫入計數(shù)值后開始計數(shù);在寫入計數(shù)值后開始計數(shù);1,51,5還需外部觸發(fā)。還需外部觸發(fā)。只有方式只有方式2,32,3是連續(xù)計數(shù),其它需重啟。是連續(xù)計數(shù),其它需重啟。置控制字和計數(shù)初值。置控制字和計數(shù)初值。已知已知:CLK:CLK的頻率的頻率f fclkclk與定時的時間與定時的時間T Toutout計數(shù)初值計數(shù)初值: : N N = =定時時間定時時間T Toutout/ /時鐘脈沖周期時鐘脈沖周期T Tclkclk = =時鐘頻率時鐘頻率f fclkclk/ /輸出頻率輸出頻率f fout out = f = f

18、clkclk T Toutout 8.3 8253應用舉例應用舉例例例:設:設82538253的的f fclkclk=1MHZ=1MHZ,最大計數(shù)初值為:,最大計數(shù)初值為: N=65536N=65536,則:,則:一個定時器最大定時時間:一個定時器最大定時時間: T Tmaxmax= N/f= N/fclkclk=65536/10=65536/106 6 =0.065536s =0.065536s例:例:設置定時設置定時/ /計數(shù)器,使得計數(shù)器,使得OUT0OUT0輸出周期為輸出周期為10ms10ms的脈沖信號。的脈沖信號。定時常數(shù)定時常數(shù)N =TN =Toutout* *f fclkclk

19、=10=10* *1010-3-3* *1.193181.19318* *10106 6 =11931.8=2E9BH=11931.8=2E9BH解:解:MOVAL,00110100BOUT43H,ALMOVAL,9BHOUT40H,ALMOVAL,2EHOUT40H,AL工作方式工作方式的選擇?的選擇?方式方式2 2!8.3 82538.3 8253應用舉例應用舉例例例8.68.6:設定時器設定時器0 0、定時器、定時器1 1工作于方式工作于方式2 2,外部提,外部提供一個時鐘供一個時鐘, ,頻率頻率f=2MHZf=2MHZ。要求定時器。要求定時器1 1每每5 ms5 ms產(chǎn)生產(chǎn)生一個脈沖,

20、定時器一個脈沖,定時器0 0每每5s5s產(chǎn)生一個脈沖。產(chǎn)生一個脈沖。10005200520010510030sfnHZmsf1000010256111msftn2). 2). 將定時器將定時器1 1的的CLK1CLK1接接2MHZ2MHZ時鐘,計數(shù)初值:時鐘,計數(shù)初值:3).3).將定時器將定時器1 1的的OUTOUT1 1端接到定時器端接到定時器0 0的的CLKCLK0 0端端, ,定時定時器器0 0的計數(shù)初值的計數(shù)初值: :1). 1). 一個定時器的最大定時時間:一個定時器的最大定時時間: 65536/65536/(2 2* *10106 6)=0.032768 s=32.768ms=0

21、.032768 s=32.768ms地址地址譯碼譯碼CPUD7D0AB8253兩個定時器串連使用兩個定時器串連使用8253初始化程序初始化程序:MOV AL,00110100B ;0;0號定時器號定時器, ,方式方式2 2OUT 43H,ALMOV AX,1000OUT 40H,ALMOV AL,AHOUT 40H,AL MOV AL,01110100B ; ;1 1號定時器號定時器, ,方式方式2 2OUT 43H,ALMOV AX,10000OUT 41H,ALMOV AL,AHOUT 41H,AL究竟如何究竟如何執(zhí)行得到執(zhí)行得到計數(shù)?計數(shù)?通過時序,通過時序,電路控制電路控制例例8.78

22、.7:有一個頻率發(fā)生器,其頻率為有一個頻率發(fā)生器,其頻率為 1MHZ1MHZ,要求,要求用用82538253產(chǎn)生產(chǎn)生每秒一次每秒一次的信號,的信號,82538253如何連接?寫出如何連接?寫出初始化程序。初始化程序。82538253端口地址端口地址:40H,41H,42H,43H:40H,41H,42H,43H解:解: 1MHZ1MHZ變?yōu)槊棵胱優(yōu)槊棵? 1次,需要經(jīng)過次,需要經(jīng)過10106 6分頻,一個通分頻,一個通道的計數(shù)值最大為道的計數(shù)值最大為 6553665536,故需兩個通道級連,每,故需兩個通道級連,每個通道計數(shù)為個通道計數(shù)為10001000次。次。 可選擇通道可選擇通道0 0和通

23、道和通道1 1級連,都工作在方式級連,都工作在方式2 2。MOV ALMOV AL,0000110100B110100BOUT 43HOUT 43H,ALALMOV AX,1000MOV AX,1000OUT 40H,ALOUT 40H,ALMOV AL,AHMOV AL,AHOUT 40H,ALOUT 40H,ALMOV ALMOV AL,0101110100B110100BOUT 43HOUT 43H,ALALMOV AX,1000MOV AX,1000OUT 41H,ALOUT 41H,ALMOV AL,AHMOV AL,AHOUT 41H,ALOUT 41H,AL82538253初始化

24、程序:初始化程序:通道通道0 0初始化初始化通道通道1 1初始化初始化8.3 82538.3 8253應用舉例應用舉例例:例:利用利用82538253發(fā)發(fā)600Hz600Hz的聲音。按任意鍵,的聲音。按任意鍵,開始發(fā)聲;按開始發(fā)聲;按ESCESC鍵,停止發(fā)聲。鍵,停止發(fā)聲。解:解: 根據(jù)題意,有根據(jù)題意,有三項工作:三項工作:一是發(fā)聲的頻率應滿足一是發(fā)聲的頻率應滿足600Hz600Hz;二是揚聲器的開和關。二是揚聲器的開和關。 計數(shù)初值:計數(shù)初值:N=1.19318N=1.19318* *10106 6/600=1983/600=1983揚聲器開關控制:揚聲器開關控制:設置一個與門來控制。設置

25、一個與門來控制。CLK2 OUT2GATE2PB0 PB182538255&濾濾波波功功放放1.19MHz圖圖1 1 發(fā)聲器電路原理發(fā)聲器電路原理DATA SEGMENT M1 DB HELLO!,0DH,0AH,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,OFFSET M1 MOV AL,09H INT 21HW1: MOV AH,0BH INT 21H CMP AL,0 JZ W1 MOV AH,08H INT 21H CMP AL,1BH JZ STOP CALL SOU

26、ND JMP W1STOP: MOV AH,4CH INT 21HSOUND PROC MOV AL,10110110B OUT 43H,AL MOV AX,1983 OUT 42H,AL MOV AL,AH OUT 42H,AL IN AL,61H ;讀入讀入PB端口值端口值 MOV AH,AL OR AL,03H ;使得使得PB0/PB1為為1 OUT 61H,AL MOV CX,07FFFHDELAY: LOOP DELAY MOV AL,AH OUT 61H,AL RETSOUND ENDPCODE ENDS END START1 1、設、設82538253計數(shù)器計數(shù)器0 0 2 2和控制字的和控制字的I/OI/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論