第6章80C51的中斷系統(tǒng)及定時(shí)計(jì)數(shù)器_第1頁(yè)
第6章80C51的中斷系統(tǒng)及定時(shí)計(jì)數(shù)器_第2頁(yè)
第6章80C51的中斷系統(tǒng)及定時(shí)計(jì)數(shù)器_第3頁(yè)
第6章80C51的中斷系統(tǒng)及定時(shí)計(jì)數(shù)器_第4頁(yè)
第6章80C51的中斷系統(tǒng)及定時(shí)計(jì)數(shù)器_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2023/1/1516.380C51單片機(jī)的定時(shí)/計(jì)數(shù)器結(jié)構(gòu)基本型:T0,定時(shí)、計(jì)數(shù)。

T1,定時(shí)、計(jì)數(shù)、串口波特率發(fā)生器。增強(qiáng)型:增加了T2。見(jiàn)6.4節(jié)。6.3.1定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)和工作原理TH1、TL1TH0、TL0TCONTMOD2023/1/152工作原理---實(shí)質(zhì)是16位加1計(jì)數(shù)器定時(shí)器模式時(shí),對(duì)內(nèi)部機(jī)器周期計(jì)數(shù)。定時(shí)時(shí)間=計(jì)數(shù)值*機(jī)器周期計(jì)數(shù)器模式時(shí),是對(duì)外部脈沖計(jì)數(shù)。脈沖由T0(P3.4)或T1(P3.5)引腳輸入。

注意:(若計(jì)數(shù)值為N,計(jì)數(shù)初值為X)溢出信號(hào)使TF0或TF1置1,并發(fā)出中斷請(qǐng)求,16位時(shí)有:

X=65536-N12MHz晶振時(shí),計(jì)數(shù)頻率低于0.5MHz

2023/1/1536.3.2定時(shí)/計(jì)數(shù)器的控制工作方式寄存器TMOD

76543210TMODGATEC/TM1M0GATEC/TM1M0字節(jié)地址:89HGATE:門控位。GATE=0時(shí),只要TRx為1,就可啟動(dòng)計(jì)數(shù)器工作;GATA=1時(shí),定時(shí)器的啟動(dòng)還要加上INTx引腳為高電平這一條件。

C/T:模式選擇位。清0為定時(shí)模式,置1為計(jì)數(shù)方式。M1M0:工作方式設(shè)置位??稍O(shè)置四種工作方式(見(jiàn)下頁(yè))。2023/1/154M1M0工作方式說(shuō)明00方式013位定時(shí)/計(jì)數(shù)器01方式116位定時(shí)/計(jì)數(shù)器10方式28位自動(dòng)重裝定時(shí)/計(jì)數(shù)器11方式3T0分成兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器;T1此方式停止計(jì)數(shù)注意:TMOD不能進(jìn)行位尋址

2023/1/155控制寄存器TCON

76543210TCONTF1TR1TF0TR0字節(jié)地址:88HTFx:Tx溢出標(biāo)志位。響應(yīng)中斷后TFx有硬件自動(dòng)清0。用軟件設(shè)置TFx可產(chǎn)生同硬件置1或清0同樣的效果。TRx:Tx運(yùn)行控制位。置1時(shí)開(kāi)始工作;清0時(shí)停止工作。TRx要由軟件置1或清0(即啟動(dòng)與停止要由軟件控制)。2023/1/1566.3.3定時(shí)/計(jì)數(shù)器的工作方式T0有方式0、1、2、3;T1有方式0、1、2。以T0為例說(shuō)明。方式0:13位方式

2023/1/157

C/T=1時(shí),則為計(jì)數(shù)模式,有:

X=213-N=8192-NC/T=0時(shí),則為定時(shí)模式,有:

X=213-N=8192-N,N=t/Tcy【例5-3】若計(jì)數(shù)個(gè)數(shù)N為2,求計(jì)數(shù)初值。公式法計(jì)算:X=8192-2=8190=1FFEH求補(bǔ)法計(jì)算:對(duì)0000000000010B取反加1為:

1111111111110B(1FFEH)初值計(jì)算:公式法

求補(bǔ)法:X=對(duì)N求補(bǔ)2023/1/158門控位作用當(dāng)GATE=0時(shí)僅由TR0控制與門的開(kāi)啟。與門輸出1時(shí),控制開(kāi)關(guān)接通,計(jì)數(shù)開(kāi)始;當(dāng)GATE=1時(shí)與門的開(kāi)啟由INT0和TR0共同控制。這種方式可以用來(lái)測(cè)量INT0引腳上正脈沖的寬度。

注意:方式0的計(jì)數(shù)初值高8位和低5位確定麻煩

,實(shí)際應(yīng)用中常由16位的方式1取代。2023/1/159方式1:16位方式

X=216-N=65536-N計(jì)數(shù)范圍:1~65536

計(jì)數(shù)初值要分成2個(gè)字節(jié)分別送入TH0、TL02023/1/1510【例6-4】若要求定時(shí)器T0工作于方式1,定時(shí)時(shí)間為1ms,當(dāng)晶振為6MHz時(shí),求送入TH0和TL0的計(jì)數(shù)初值各為多少?應(yīng)怎樣送入TH0和TL0?由于晶振為6MHz,所以機(jī)器周期Tcy為2μS,因此:N=t/Tcy=1×10-3/2×10-6=500X=216-N=65536-500=65036=FE0CH也可以利用以下2條語(yǔ)句完成:

TH0=(65536-500)/256;

商為計(jì)數(shù)初值的高字節(jié)

TL0=(65536-500)%256;余數(shù)為計(jì)數(shù)初值的低字節(jié)分別將FEH送入TH0中,0CH送入TL0中即可。2023/1/1511方式2:8位自動(dòng)重裝方式

X=28-N=256-N計(jì)數(shù)范圍:1~256

特別適合與脈沖信號(hào)發(fā)生器2023/1/1512方式3:(僅T0有此方式,T1的方式3將停止計(jì)數(shù))

TL0進(jìn)行8位定時(shí)/計(jì)數(shù)

TH0進(jìn)行8位定時(shí)(T1方式2時(shí),可出借TR1、TF1)2023/1/15136.3.4定時(shí)/計(jì)數(shù)器應(yīng)用舉例初始化程序應(yīng)完成:對(duì)TMOD賦值,以確定T0和T1的工作方式;求初值,并寫入TH0、TL0或TH1、TL1;中斷方式時(shí),要對(duì)IE賦值,開(kāi)放中斷;使TR0或TR1置位,啟動(dòng)定時(shí)/計(jì)數(shù)器工作。2023/1/1514計(jì)數(shù)應(yīng)用【例6-3】有一包裝流水線,產(chǎn)品每計(jì)數(shù)24瓶時(shí)發(fā)出一個(gè)包裝控制信號(hào)。試編寫程序完成這一計(jì)數(shù)任務(wù)。用T0完成計(jì)數(shù),用P1.0發(fā)出控制信號(hào)。確定方式字:T0在計(jì)數(shù)的方式2時(shí):M1M0=10,GATE=0,C/T=1方式控制字為06H

求計(jì)數(shù)初值X:N=24X=256-24=232=E8H應(yīng)將E8H送入TH0和TL0中2023/1/1515while(1){

if(Flag==1){Flag=0;P37=0;P0=SegCode[Counter];DelayMs(20);P37=1; }}主程序(部分)

中斷服務(wù)程序

voidC0Isr()interrupt1{Flag=1;Counter++;

if(Counter==13)Counter=0;}2023/1/1516定時(shí)應(yīng)用定時(shí)時(shí)間較小時(shí)(小于70ms)。晶振為11.0592MHz時(shí),Tcy為1.085μS。可直接采用方式1完成定時(shí)任務(wù)。

【例6-4】利用定時(shí)/計(jì)數(shù)器T0的方式1,產(chǎn)生10ms的定時(shí),并使P2.7引腳上輸出周期為20ms的方波,采用中斷方式,設(shè)系統(tǒng)的晶振頻率為11.0592MHz。確定方式字:T0在定時(shí)的方式1時(shí):M1M0=01,GATE=0,C/T=0方式控制字為01H

求計(jì)數(shù)初值X:Tcy為1.085μSN=10ms/1.085μS=9216X=65536-9216=DC00H應(yīng)將DC送TH0,00H送TL0

2023/1/1517voidmain(void){TMOD=0x01;TL0=0xDC;TH0=0x00;IE=0x82;TR0=1;while(1); }主程序

中斷服務(wù)程序

voidT0Isr()interrupt1{P27=~P27;TL0=0xDC;TH0=0x00;}2023/1/1518定時(shí)時(shí)間較大時(shí)(大于70ms)。實(shí)現(xiàn)方法:一是采用1個(gè)定時(shí)器定時(shí)一定的間隔(如20ms),然后用軟件進(jìn)行計(jì)數(shù);二是采用2個(gè)定時(shí)器級(jí)聯(lián),其中一個(gè)定時(shí)器用來(lái)產(chǎn)生周期信號(hào)(如20ms為周期),然后將該信號(hào)送入另一個(gè)計(jì)數(shù)器的外部脈沖輸入端進(jìn)行脈沖計(jì)數(shù)。

【例6-5】編寫程序,實(shí)現(xiàn)用定時(shí)/計(jì)數(shù)器T0定時(shí),使P2.7引腳輸出周期為1s的方波。設(shè)系統(tǒng)的晶振頻率為11.0592MHz。確定方式字:T0在定時(shí)的方式1時(shí):M1M0=01,GATE=0,C/T=0方式控制字為01H

求計(jì)數(shù)初值X:Tcy為1μSN=20ms/12/11.0592=18432X=65536-18432=B800H應(yīng)將B8送TH0,00H送TL0

采用定時(shí)20ms,然后再計(jì)數(shù)25次的方法實(shí)現(xiàn)2023/1/1519voidmain(void){TMOD=0x01; TL0=0x00;TH0=0xB8;IE=0x82;TR0=1;while(1); }voidT0Isr()interrupt1{staticucharCounter;Counter++;

if(Counter==25){P27=~P27;Counter=0; } TL0=0x00;TH0=0xB8;}主程序

中斷服務(wù)程序

2023/1/1520門控位的應(yīng)用【例6-6】測(cè)量INT0引腳上出現(xiàn)的正脈沖寬度,并將結(jié)果(以機(jī)器周期的形式)存放在30H和31H兩個(gè)單元中。將T0設(shè)置為方式1的定時(shí)方式,且GATE=1,計(jì)數(shù)器初值為0,將TR0置1。INT0引腳上出現(xiàn)高電平時(shí),加1計(jì)數(shù)器開(kāi)始對(duì)機(jī)器周期計(jì)數(shù)。INT0引腳上信號(hào)變?yōu)榈碗娖綍r(shí),停止計(jì)數(shù)然后讀出TH0、TL0的值

單定時(shí)器產(chǎn)生多定時(shí)間隔(略)2023/1/1521while(1){TMOD=0x09;TL0=0;TH0=0;while(P32);TR0=1;while(!P32);while(P32);TR0=0;Low=TL0;High=TH0;}

主程序(部分)

6.480C52的定時(shí)/計(jì)數(shù)器T2T2矢量地址002BH;T2還增加了16位自動(dòng)重裝、捕獲及加減計(jì)數(shù)方式;1.0為計(jì)數(shù)輸入(T2),還可輸出脈沖;P1.1(EXT2)有捕獲/重裝方式觸發(fā)和檢測(cè)功能。6.4.1T2的相關(guān)控制寄存器工作方式寄存器T2MOD

76543210T2MODT2OEDCEN字節(jié)地址:C9HT2OE:輸出允許位。為1時(shí),允許定時(shí)時(shí)鐘從P1.0輸出。DCEN:計(jì)數(shù)方向控制使能位。為1時(shí),計(jì)數(shù)方向與P1.1有關(guān),P1.1為1時(shí),為減計(jì)數(shù),P1.1為0時(shí),為加計(jì)數(shù)??刂萍拇嫫鱐2CONTF2:溢出標(biāo)志位。不自動(dòng)清0(與TF0和TF1不同)。EXF2:T2外部中斷標(biāo)志位。在捕捉和自動(dòng)重裝方式下,當(dāng)EXEN2=1時(shí),在T2EX引腳發(fā)生負(fù)跳變會(huì)使EXF2置位(軟件清0)。RCLK:串行口接收時(shí)鐘選擇。TCLK:串行口發(fā)送時(shí)鐘選擇。EXEN2:外部觸發(fā)使能位。TR2:T2的運(yùn)行控制位。C/T2:T2的定時(shí)或計(jì)數(shù)功能選擇位。CP/RL2:捕捉或重裝選擇位。6.4.2T2的工作方式

捕捉方式EXEN2=1時(shí),捕捉方式。在引腳T2EX(P1.1)發(fā)生有效負(fù)跳變時(shí),會(huì)把TH2和TL2的內(nèi)容鎖入捕捉寄存器RCAP2H和RCAP2L中。并使EXF2置位,向CPU申請(qǐng)中斷。

自動(dòng)重裝方式

DCEN=0時(shí),向上計(jì)數(shù)EXEN2=0時(shí),計(jì)數(shù)溢出使RCAP2H和RCAP2L的值重裝到TH2和TL2中,并使TF2置位,向CPU申請(qǐng)中斷。EXEN2=1時(shí),T2EX(P1.1)引腳負(fù)跳變會(huì)使RCAP2H和RCAP2L的值重裝到TH2和TL2中,并使EXF2置位,并向CPU申請(qǐng)中斷。

DCEN=1

時(shí),計(jì)數(shù)方向可選的計(jì)數(shù)重裝當(dāng)P1.1=0時(shí),減計(jì)數(shù),當(dāng)TH2和TL2與RCAP2H和RCAP2L的值對(duì)應(yīng)相等時(shí),計(jì)數(shù)器溢出,并將FFH加載到TH2和TL2。當(dāng)P

溫馨提示

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

評(píng)論

0/150

提交評(píng)論