




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2022-5-271 在工業(yè)檢測(cè)與控制中,許多場(chǎng)合都要用到在工業(yè)檢測(cè)與控制中,許多場(chǎng)合都要用到計(jì)數(shù)計(jì)數(shù)或或定時(shí)定時(shí)功能。功能。例如:例如: 1、計(jì)數(shù)計(jì)數(shù):在包裝流水線上,當(dāng)裝入規(guī)定個(gè)數(shù)的物品后才啟:在包裝流水線上,當(dāng)裝入規(guī)定個(gè)數(shù)的物品后才啟動(dòng)打包機(jī)進(jìn)行打包,因此,打包之前需要對(duì)裝入物品的個(gè)數(shù)進(jìn)動(dòng)打包機(jī)進(jìn)行打包,因此,打包之前需要對(duì)裝入物品的個(gè)數(shù)進(jìn)行計(jì)數(shù)。行計(jì)數(shù)。 2、定時(shí)定時(shí):通過(guò)產(chǎn)生精確的定時(shí)時(shí)間,可以設(shè)計(jì)電子時(shí)鐘、:通過(guò)產(chǎn)生精確的定時(shí)時(shí)間,可以設(shè)計(jì)電子時(shí)鐘、設(shè)定設(shè)備在何時(shí)開(kāi)始動(dòng)作、動(dòng)作執(zhí)行的時(shí)間等。設(shè)定設(shè)備在何時(shí)開(kāi)始動(dòng)作、動(dòng)作執(zhí)行的時(shí)間等。第第6章章 89S51的定時(shí)的定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)
2、器 AT89S51單片機(jī)內(nèi)部單片機(jī)內(nèi)部有兩個(gè)可編程的定時(shí)器有兩個(gè)可編程的定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0、 T1,可滿足對(duì)定時(shí)、計(jì)數(shù)的需求。,可滿足對(duì)定時(shí)、計(jì)數(shù)的需求。2022-5-272第第6章章 89S51的定時(shí)的定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器定時(shí)定時(shí)/計(jì)數(shù)器的計(jì)數(shù)器的結(jié)構(gòu)和控制結(jié)構(gòu)和控制6.1定時(shí)定時(shí)/ /計(jì)數(shù)器的計(jì)數(shù)器的工作模式工作模式6.2定時(shí)定時(shí)/ /計(jì)數(shù)器的計(jì)數(shù)器的工作方式工作方式6.3定時(shí)定時(shí)/ /計(jì)數(shù)器的計(jì)數(shù)器的應(yīng)用和程序設(shè)計(jì)應(yīng)用和程序設(shè)計(jì)6.42022-5-273定時(shí)定時(shí)/ /計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu)6.1 6.1 定時(shí)定時(shí)/ /計(jì)數(shù)器的結(jié)構(gòu)和控制計(jì)數(shù)器的結(jié)構(gòu)和控制 2022-5-274工
3、作方式寄存器工作方式寄存器TMOD 76543210TMODGATEC/TM1M0GATEC/TM1M0字節(jié)地址:字節(jié)地址:89HTMOD字節(jié)地址字節(jié)地址89H,不能進(jìn)行位尋址。,不能進(jìn)行位尋址。低低4位,控制位,控制T0;高;高4位,控制位,控制T1。對(duì)定時(shí)對(duì)定時(shí)/ /計(jì)數(shù)器的控制,是通過(guò)計(jì)數(shù)器的控制,是通過(guò)TMOD、TCON實(shí)現(xiàn)的。實(shí)現(xiàn)的。2022-5-275工作方式寄存器工作方式寄存器TMOD 76543210TMODGATEC/TM1M0GATEC/TM1M0字節(jié)地址:字節(jié)地址:89HGATEGATE:門控位。:門控位。GATEGATE0 0時(shí),只要時(shí),只要TRxTRx為為1 1,就可
4、啟動(dòng)計(jì)數(shù)器工作;,就可啟動(dòng)計(jì)數(shù)器工作;GATEGATE1 1時(shí),除了時(shí),除了TRxTRx為為1 1,定時(shí)器的啟動(dòng)還要加上,定時(shí)器的啟動(dòng)還要加上INTxINTx引腳為高電平這一條件。引腳為高電平這一條件。 v C/TC/T:模式選擇位。清:模式選擇位。清0 0為定時(shí)模式,置為定時(shí)模式,置1 1為計(jì)數(shù)模式。為計(jì)數(shù)模式。v M1M0M1M0:工作方式選擇位。可設(shè)置四種工作方式。:工作方式選擇位??稍O(shè)置四種工作方式。2022-5-276M1M0M1M0 工作方式工作方式說(shuō)說(shuō) 明明0000方式方式0 01313位定時(shí)位定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器0101方式方式1 11616位定時(shí)位定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器10
5、10方式方式2 28 8位自動(dòng)重裝定時(shí)位自動(dòng)重裝定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器1111方式方式3 3TL0TL0:8 8位定時(shí)位定時(shí)/ /計(jì)數(shù)器;計(jì)數(shù)器;TH0TH0:8 8位定時(shí)器;位定時(shí)器;T1T1停止計(jì)數(shù),用作波特率發(fā)生器。停止計(jì)數(shù),用作波特率發(fā)生器。2022-5-277控制寄存器控制寄存器TCON 76543210TCONTF1TR1TF0TR0字節(jié)地址:字節(jié)地址:88HTFxTFx:TxTx的中斷溢出標(biāo)志位。的中斷溢出標(biāo)志位。 響應(yīng)中斷后,響應(yīng)中斷后,TFxTFx由硬件自動(dòng)清由硬件自動(dòng)清0 0。TRxTRx:TxTx的計(jì)數(shù)啟??刂莆?。的計(jì)數(shù)啟??刂莆?。 置置1 1,啟動(dòng)計(jì)數(shù);,啟動(dòng)計(jì)數(shù); 清
6、清0 0,停止計(jì)數(shù)。,停止計(jì)數(shù)。 TRxTRx要由軟件置要由軟件置1 1或清或清0 0(不是自動(dòng)的)。(不是自動(dòng)的)。2022-5-278T0T0,T1T1:既可以用作定時(shí)器,也可以用作計(jì)數(shù)器。:既可以用作定時(shí)器,也可以用作計(jì)數(shù)器。定時(shí)器定時(shí)器:對(duì)內(nèi)部時(shí)鐘進(jìn)行計(jì)數(shù)對(duì)內(nèi)部時(shí)鐘進(jìn)行計(jì)數(shù)。(關(guān)注:定時(shí)的時(shí)間關(guān)注:定時(shí)的時(shí)間)計(jì)數(shù)器計(jì)數(shù)器:對(duì)外部脈沖進(jìn)行計(jì)數(shù)對(duì)外部脈沖進(jìn)行計(jì)數(shù)。(關(guān)注:事件的個(gè)數(shù)關(guān)注:事件的個(gè)數(shù))6.2 6.2 定時(shí)定時(shí)/ /計(jì)數(shù)器的工作模式計(jì)數(shù)器的工作模式不論是定時(shí)器,還是計(jì)數(shù)器,都需要對(duì)脈沖信號(hào)進(jìn)行計(jì)數(shù)。不論是定時(shí)器,還是計(jì)數(shù)器,都需要對(duì)脈沖信號(hào)進(jìn)行計(jì)數(shù)。但是,計(jì)數(shù)的信號(hào)源不同。但
7、是,計(jì)數(shù)的信號(hào)源不同。2022-5-279定時(shí)器模式:對(duì)內(nèi)部定時(shí)器模式:對(duì)內(nèi)部機(jī)器周期信號(hào)機(jī)器周期信號(hào)計(jì)數(shù)。計(jì)數(shù)。 信號(hào)來(lái)自單片機(jī)內(nèi)部。信號(hào)來(lái)自單片機(jī)內(nèi)部。( (晶振晶振1212分頻分頻) ) 計(jì)數(shù)值乘以機(jī)器周期就是定時(shí)時(shí)間。計(jì)數(shù)值乘以機(jī)器周期就是定時(shí)時(shí)間。 t = t = TcyTcy * * N N 通過(guò)通過(guò)設(shè)置設(shè)置TMOD,可選擇,可選擇T0、T1的工作的工作模式:模式:計(jì)數(shù)器模式:對(duì)計(jì)數(shù)器模式:對(duì)外部事件外部事件計(jì)數(shù)。計(jì)數(shù)。 信號(hào)由信號(hào)由T0T0(P3.4P3.4)或)或T1(P3.5)T1(P3.5)引腳輸入。引腳輸入。 2022-5-27106.3 6.3 定時(shí)定時(shí)/ /計(jì)數(shù)器的工
8、作方式計(jì)數(shù)器的工作方式方式方式0 0:13位定時(shí)位定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器2022-5-2711 方式方式0:13位的定時(shí)位的定時(shí)/計(jì)數(shù)器,它是計(jì)數(shù)器,它是AT89S51為了兼容為了兼容MCS-48單片機(jī)而保留下來(lái)的。單片機(jī)而保留下來(lái)的。 而在而在AT89S51單片機(jī)中,具有功能更為強(qiáng)大的單片機(jī)中,具有功能更為強(qiáng)大的16位定時(shí)位定時(shí)/計(jì)數(shù)器,使用非常方便,因此,在計(jì)數(shù)器,使用非常方便,因此,在AT89S51單片機(jī)中,方單片機(jī)中,方式式0已基本不用,而是使用方式已基本不用,而是使用方式1,即,即16位的工作方式。位的工作方式。2022-5-2712方式方式1 1:16位定時(shí)位定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器
9、2022-5-2713門控位門控位GATE的作用的作用當(dāng)當(dāng)GATE=0=0時(shí)時(shí)僅由僅由TR0TR0控制計(jì)數(shù)的啟動(dòng)。與門輸出控制計(jì)數(shù)的啟動(dòng)。與門輸出1 1時(shí),控制開(kāi)關(guān)時(shí),控制開(kāi)關(guān)接通,計(jì)數(shù)開(kāi)始。接通,計(jì)數(shù)開(kāi)始。 當(dāng)當(dāng)GATE=1=1時(shí)時(shí)由由INT0INT0和和TR0TR0共同控制計(jì)數(shù)的啟動(dòng)。這種方式可以用共同控制計(jì)數(shù)的啟動(dòng)。這種方式可以用來(lái)測(cè)量來(lái)測(cè)量INT0INT0引腳上正脈沖的寬度。引腳上正脈沖的寬度。 2022-5-2714方式方式1 1:初值的計(jì)算與裝入初值的計(jì)算與裝入 確定計(jì)數(shù)值確定計(jì)數(shù)值N N。例如:在定時(shí)器中,。例如:在定時(shí)器中,N=t/Tcy。 計(jì)數(shù)初值計(jì)數(shù)初值X=216-N=65
10、536-N。 計(jì)數(shù)初值要計(jì)數(shù)初值要分成分成2個(gè)字節(jié)個(gè)字節(jié)分別送入分別送入TH0、TL0 。 MOV TL0,#初值的低字節(jié)初值的低字節(jié) MOV TH0,#初值的高字節(jié)初值的高字節(jié)2022-5-2715【例例5-4】若要求定時(shí)器若要求定時(shí)器T0T0工作于方式工作于方式1 1,定時(shí)時(shí)間為,定時(shí)時(shí)間為1ms,當(dāng)晶振為當(dāng)晶振為6MHz時(shí),求送入時(shí),求送入TH0TH0和和TL0TL0的計(jì)數(shù)初值各為多少?的計(jì)數(shù)初值各為多少?應(yīng)怎樣送入應(yīng)怎樣送入TH0TH0和和TL0TL0?解:由于晶振為解:由于晶振為6MHz6MHz,所以機(jī)器周期,所以機(jī)器周期TcyTcy為為2 2S S,因此:,因此: 計(jì)數(shù)值計(jì)數(shù)值 N
11、=N=t/Tcyt/Tcy=1=11010-3-3/2/21010-6-6500500 計(jì)數(shù)初值計(jì)數(shù)初值 X X2 21616-N-N65536-50065536-5006503665036FE0CH FE0CH 也可以利用以下也可以利用以下2 2條指令完成:條指令完成:v MOV TL0, #(65536-500) MOV TL0, #(65536-500)%256 ; 256 ; 余數(shù)余數(shù)為計(jì)數(shù)初值的為計(jì)數(shù)初值的低字節(jié)低字節(jié)v MOV TH0, #(65536-500) MOV TH0, #(65536-500)/ /256 ; 256 ; 商商為計(jì)數(shù)初值的為計(jì)數(shù)初值的高字節(jié)高字節(jié)用傳送指
12、令分別將用傳送指令分別將FEHFEH送入送入TH0TH0中,中,0CH0CH送入送入TL0TL0中即可。中即可。2022-5-2716 方式方式0 0和方式和方式1 1的最大特點(diǎn)是計(jì)數(shù)溢出后,計(jì)數(shù)的最大特點(diǎn)是計(jì)數(shù)溢出后,計(jì)數(shù)器為全器為全0 0。因此在循環(huán)定時(shí)或循環(huán)計(jì)數(shù)時(shí)就存在用指。因此在循環(huán)定時(shí)或循環(huán)計(jì)數(shù)時(shí)就存在用指令反復(fù)裝入計(jì)數(shù)初值的問(wèn)題。這不僅影響定時(shí)精度,令反復(fù)裝入計(jì)數(shù)初值的問(wèn)題。這不僅影響定時(shí)精度,也給程序設(shè)計(jì)帶來(lái)麻煩。也給程序設(shè)計(jì)帶來(lái)麻煩。 方式方式2 2就是針對(duì)此問(wèn)題而設(shè)置的。就是針對(duì)此問(wèn)題而設(shè)置的。2022-5-2717方式方式2 2:8 8位自動(dòng)重裝初值的定時(shí)位自動(dòng)重裝初值的定
13、時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器 計(jì)數(shù)初值計(jì)數(shù)初值X=2X=28 8-N=256-N -N=256-N 計(jì)數(shù)范圍:計(jì)數(shù)范圍:1 1256256 自動(dòng)重裝,無(wú)耽擱,常用于精確定時(shí)。自動(dòng)重裝,無(wú)耽擱,常用于精確定時(shí)。2022-5-2718方式方式3 3:T0T0分成獨(dú)立的分成獨(dú)立的TL0TL0和和TH0TH0,T1T1停止計(jì)數(shù)。停止計(jì)數(shù)。 TL0 TL0:8 8位定時(shí)位定時(shí)/ /計(jì)數(shù)器,使用計(jì)數(shù)器,使用TR0TR0和和TF0TF0。 TH0 TH0:8 8位定時(shí)器(位定時(shí)器(借用借用TR1TR1、TF1TF1)。)。 T1 T1:用作波特率發(fā)生器。:用作波特率發(fā)生器。( (不觸發(fā)中斷不觸發(fā)中斷) )2022-
14、5-2719 T0 T0工作在方式工作在方式3 3時(shí),時(shí),T1T1的各種工作方式的各種工作方式 圖6-9 T0工作在方式3時(shí),T1為方式0的工作示意圖2022-5-2720 T0 T0工作在方式工作在方式3 3時(shí),時(shí),T1T1的各種工作方式的各種工作方式 圖圖6-10 T0工作在方式3時(shí),T1為方式1的工作示意圖2022-5-2721 T0 T0工作在方式工作在方式3 3時(shí),時(shí),T1T1的各種工作方式的各種工作方式 圖圖6-11 T0工作在方式3時(shí),T1為方式2的工作示意圖2022-5-2722注意:注意:對(duì)比,是為了將來(lái)使用時(shí)合理的選擇。對(duì)比,是為了將來(lái)使用時(shí)合理的選擇。 定時(shí)定時(shí)/ /計(jì)數(shù)
15、器計(jì)數(shù)器4 4種工作方式的比較種工作方式的比較方式方式0 0:13位位,為兼容,為兼容MCS-48而設(shè)置,計(jì)數(shù)范圍而設(shè)置,計(jì)數(shù)范圍1213 。方式方式1 1:16位位,計(jì)數(shù)范圍計(jì)數(shù)范圍 1216,即,即165536 。( (計(jì)數(shù)范圍大計(jì)數(shù)范圍大) )方式方式2 2:8位位,自動(dòng)重裝。計(jì)數(shù)范圍,自動(dòng)重裝。計(jì)數(shù)范圍1256。 (最大優(yōu)勢(shì):自動(dòng)重新裝入計(jì)數(shù)初值,精確定時(shí))(最大優(yōu)勢(shì):自動(dòng)重新裝入計(jì)數(shù)初值,精確定時(shí))方式方式3 3:TL0,8位定時(shí)位定時(shí)/計(jì)數(shù)器;計(jì)數(shù)器; TH0,8位定時(shí)器。位定時(shí)器。 T1用作用作波特率發(fā)生器。波特率發(fā)生器。 2022-5-2723n 對(duì)外部輸入的計(jì)數(shù)信號(hào)的要求對(duì)外
16、部輸入的計(jì)數(shù)信號(hào)的要求 當(dāng)定時(shí)器/計(jì)數(shù)器工作在計(jì)數(shù)器模式時(shí),計(jì)數(shù)脈沖來(lái)自外部輸入引腳T0或T1。 當(dāng)輸入信號(hào)產(chǎn)生負(fù)跳變時(shí),計(jì)數(shù)器的值增1。 每個(gè)機(jī)器周期的S5P2期間,都對(duì)外部輸入引腳T0或T1進(jìn)行采樣。如在第一個(gè)機(jī)器周期采樣的值為1,而在下一個(gè)機(jī)器周期采樣的值為0,則在緊跟著的再下一個(gè)機(jī)器周期S3P1期間,計(jì)數(shù)器加1。由于確認(rèn)一次負(fù)跳變要花2個(gè)機(jī)器周期,因此外部輸入的計(jì)數(shù)脈沖的最高頻率為系統(tǒng)振蕩器頻率的1/24。 例如,選用6MHz頻率的晶體,允許輸入的脈沖頻率最高為250kHz。如果選用12MHz頻率的晶體,則可輸入最高頻率為500kHz的外部脈沖。 2022-5-2724 對(duì)于外部輸入信
17、號(hào)的占空比并沒(méi)有什么限制,但為了確保某一電平在變化之前能被采樣一次,則這一電平至少要保持一個(gè)機(jī)器周期。 故對(duì)外部輸入信號(hào)的要求如下圖所示,Tcy為機(jī)器周期。2022-5-2725定時(shí)定時(shí)/ /計(jì)數(shù)器的使用方法:計(jì)數(shù)器的使用方法: 1 1、設(shè)置定時(shí)、設(shè)置定時(shí)/ /計(jì)數(shù)器的工作模式和工作方式。計(jì)數(shù)器的工作模式和工作方式。 2 2、計(jì)算并裝入初值。、計(jì)算并裝入初值。 3 3、啟動(dòng)計(jì)數(shù)。、啟動(dòng)計(jì)數(shù)。 4 4、計(jì)數(shù)溢出時(shí),使、計(jì)數(shù)溢出時(shí),使TF0TF0或或TF1TF1置置1 1,向,向CPUCPU發(fā)出中斷請(qǐng)求。發(fā)出中斷請(qǐng)求。6.4 6.4 定時(shí)定時(shí)/ /計(jì)數(shù)器的應(yīng)用和程序設(shè)計(jì)計(jì)數(shù)器的應(yīng)用和程序設(shè)計(jì)202
18、2-5-2726初始化程序應(yīng)完成的工作:初始化程序應(yīng)完成的工作:v1、對(duì)、對(duì)TMOD賦值,以確定賦值,以確定T0和和T1的工作方式;的工作方式; (具體包括哪些內(nèi)容?)(具體包括哪些內(nèi)容?)v2、求初值,并裝入、求初值,并裝入TH0、TL0或或TH1、TL1;v3、中斷方式時(shí),要對(duì)、中斷方式時(shí),要對(duì)IE賦值,開(kāi)放中斷;賦值,開(kāi)放中斷;v4、使、使TR0或或TR1置置1,啟動(dòng)定時(shí),啟動(dòng)定時(shí)/計(jì)數(shù)器工作。計(jì)數(shù)器工作。2022-5-2727計(jì)數(shù)器的應(yīng)用計(jì)數(shù)器的應(yīng)用【例例】有一包裝流水線,產(chǎn)品每計(jì)數(shù)有一包裝流水線,產(chǎn)品每計(jì)數(shù)2424瓶時(shí)發(fā)出一個(gè)包裝控瓶時(shí)發(fā)出一個(gè)包裝控制信號(hào)。試編寫(xiě)程序完成這一計(jì)數(shù)任務(wù)
19、。用制信號(hào)。試編寫(xiě)程序完成這一計(jì)數(shù)任務(wù)。用T0T0完成計(jì)數(shù),用完成計(jì)數(shù),用P1.0P1.0發(fā)出控制信號(hào)。發(fā)出控制信號(hào)。確定工作方式:確定工作方式:T0T0工作在何種方式?工作在何種方式?GATE=0GATE=0, C/T=C/T=?,?,M1M0=M1M0=?求計(jì)數(shù)初值求計(jì)數(shù)初值X:X: N= N=? X= X=?2022-5-2728【例例】有一包裝流水線,產(chǎn)品每計(jì)數(shù)有一包裝流水線,產(chǎn)品每計(jì)數(shù)2424瓶時(shí)發(fā)出一個(gè)包裝控瓶時(shí)發(fā)出一個(gè)包裝控制信號(hào)。試編寫(xiě)程序完成這一計(jì)數(shù)任務(wù)。用制信號(hào)。試編寫(xiě)程序完成這一計(jì)數(shù)任務(wù)。用T0T0完成計(jì)數(shù),用完成計(jì)數(shù),用P1.0P1.0發(fā)出控制信號(hào)。發(fā)出控制信號(hào)。確定方
20、式字:確定方式字:T0T0工作在計(jì)數(shù)器方式工作在計(jì)數(shù)器方式2 2 :GATE=0 GATE=0 ,C/T=1C/T=1,M1M0=10M1M0=10方式控制字為方式控制字為06H06H 求計(jì)數(shù)初值求計(jì)數(shù)初值X:X:N=24N=24X=256-24=232=E8HX=256-24=232=E8H應(yīng)將應(yīng)將E8HE8H送入送入TH0TH0和和TL0TL0中中 2022-5-2729 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ;T0ORG 000BH ;T0中斷入口中斷入口 LJMP DVT0 LJMP DVT0 ORG 0100HORG 01
21、00HMAIN:MOV TMOD,#06H ;MAIN:MOV TMOD,#06H ;置置T0T0計(jì)數(shù)方式計(jì)數(shù)方式2 2 MOV TL0,#0E8H ; MOV TL0,#0E8H ;裝入計(jì)數(shù)初值裝入計(jì)數(shù)初值 MOV TH0,#0E8H ; MOV TH0,#0E8H ;備份,自動(dòng)重裝備份,自動(dòng)重裝 SETB EA ;CPU SETB EA ;CPU開(kāi)中斷開(kāi)中斷 SETB ET0 ;T0 SETB ET0 ;T0開(kāi)中斷開(kāi)中斷 SETB TR0 ;SETB TR0 ;啟動(dòng)啟動(dòng)T0T0 SJMP $ ; SJMP $ ;等待中斷到來(lái)等待中斷到來(lái)DVT0:SETB P1.0 DVT0:SETB P1
22、.0 NOP NOP NOP NOP CLR P1.0 CLR P1.0 RETI RETI END END主程序主程序 中斷服務(wù)程序中斷服務(wù)程序 中斷如何產(chǎn)生?中斷如何產(chǎn)生? 2022-5-2730定時(shí)器的應(yīng)用定時(shí)器的應(yīng)用 1、定時(shí)時(shí)間較小時(shí)(小于定時(shí)時(shí)間較小時(shí)(小于65ms65ms)。 晶振為晶振為12MHz12MHz時(shí),時(shí),TcyTcy為為1 1S S。可直接采用方式??芍苯硬捎梅绞? 1完成定時(shí)任務(wù)。完成定時(shí)任務(wù)。 【例例5-6】利用定時(shí)利用定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T0T0的方式的方式1 1,產(chǎn)生,產(chǎn)生10ms10ms的定時(shí),并的定時(shí),并使使P1.0P1.0引腳上輸出周期為引腳上輸出周期
23、為20ms20ms的方波,采用中斷方式,設(shè)系的方波,采用中斷方式,設(shè)系統(tǒng)的晶振頻率為統(tǒng)的晶振頻率為12 MHz12 MHz。 確定方式字:確定方式字:T0T0的工作方式?的工作方式?GATE=0 GATE=0 ,C/T=C/T=?,?,M1M0=M1M0=?求計(jì)數(shù)初值求計(jì)數(shù)初值X:X: TcyTcy= =? N= N=? X= X=? 定時(shí)器的最大計(jì)數(shù)值是定時(shí)器的最大計(jì)數(shù)值是2 216 16 = = 65536。(方式方式1 1:1616位)位) 晶振為晶振為12MHz12MHz時(shí),時(shí),TcyTcy為為1 1S S,則最大定時(shí)時(shí)間為,則最大定時(shí)時(shí)間為65.536ms65.536ms。 2022
24、-5-2731【例例】利用定時(shí)利用定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T0T0的方式的方式1 1,產(chǎn)生,產(chǎn)生10ms10ms的定時(shí),并使的定時(shí),并使P1.0P1.0引腳上輸出周期為引腳上輸出周期為20ms20ms的方波,采用中斷方式,設(shè)系統(tǒng)的方波,采用中斷方式,設(shè)系統(tǒng)的晶振頻率為的晶振頻率為12 MHz12 MHz。 確定方式字:確定方式字:T0T0工作在定時(shí)器方式工作在定時(shí)器方式1 1:GATE=0 GATE=0 ,C/T=0C/T=0,M1M0=01M1M0=01方式控制字為方式控制字為0101H H 求計(jì)數(shù)初值求計(jì)數(shù)初值X:X: TcyTcy為為1 1S S N=10ms/1 N=10ms/1S=10
25、S=10 000000 X=65536-10000=D8F0H X=65536-10000=D8F0H 應(yīng)將應(yīng)將D8D8送送TH0, F0HTH0, F0H送送TL0TL0 2022-5-2732 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ;T0ORG 000BH ;T0中斷入口中斷入口 LJMP DVT0 LJMP DVT0 ORG 0100HORG 0100HMAIN:MOV TMOD,#01H ;MAIN:MOV TMOD,#01H ;置置T0T0方式方式1 1 MOV TH0,#0D8H ; MOV TH0,#0D8H ;裝入計(jì)
26、數(shù)初值裝入計(jì)數(shù)初值 MOV TL0,#0F0H MOV TL0,#0F0H SETB EA ;CPU SETB EA ;CPU開(kāi)中斷開(kāi)中斷 SETB ET0 ;T0 SETB ET0 ;T0開(kāi)中斷開(kāi)中斷 SETB TR0 ;SETB TR0 ;啟動(dòng)啟動(dòng)T0T0 SJMP $ ; SJMP $ ;等待中斷到來(lái)等待中斷到來(lái)DVT0:CPL P1.0 DVT0:CPL P1.0 MOV TH0,#0D8H MOV TH0,#0D8H MOV TL0,#0F0H MOV TL0,#0F0H RETI RETI END END主程序主程序 中斷服務(wù)程序中斷服務(wù)程序 中斷過(guò)程:中斷過(guò)程: T0溢出溢出 置
27、置TF0為為1 向向CPU申請(qǐng)中斷申請(qǐng)中斷 2022-5-2733采用軟件查詢方式完成的源程序如下:采用軟件查詢方式完成的源程序如下: ORG 0000H ORG 0000H LJMP MAIN ; LJMP MAIN ;跳轉(zhuǎn)到主程序跳轉(zhuǎn)到主程序 ORG 0100H ORG 0100H MAIN:MOV TMOD,#01H ;T0MAIN:MOV TMOD,#01H ;T0工作于計(jì)數(shù)器方式工作于計(jì)數(shù)器方式1 1 LOOP:MOV TH0,#0D8H ; LOOP:MOV TH0,#0D8H ;裝入計(jì)數(shù)初值裝入計(jì)數(shù)初值 MOV TL0,#0F0H MOV TL0,#0F0H SETB TR0 ;
28、 SETB TR0 ;啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器T0T0 JNB TF0,$ ;JNB TF0,$ ;查詢查詢TF0TF0 CLR TF0 ;TF0CLR TF0 ;TF0清清0 0 CPL P1.0 ;P1.0 CPL P1.0 ;P1.0取反輸出取反輸出 SJMP LOOP SJMP LOOP END END2022-5-2734 2、定時(shí)時(shí)間較大時(shí)(大于定時(shí)時(shí)間較大時(shí)(大于65ms65ms)。)。 定時(shí)時(shí)間長(zhǎng)度定時(shí)時(shí)間長(zhǎng)度t=t=TcyTcy * * N N 定時(shí)時(shí)間太長(zhǎng),超過(guò)了定時(shí)時(shí)間太長(zhǎng),超過(guò)了1616位的最大定時(shí)長(zhǎng)度。位的最大定時(shí)長(zhǎng)度。 實(shí)現(xiàn)方法:實(shí)現(xiàn)方法: 方法方法1 1:采用:采用1
29、 1個(gè)定時(shí)器定時(shí)一定的間隔(如個(gè)定時(shí)器定時(shí)一定的間隔(如20ms20ms),然后),然后 用軟件進(jìn)行循環(huán)計(jì)數(shù);用軟件進(jìn)行循環(huán)計(jì)數(shù); 方法方法2 2:采用:采用2 2個(gè)定時(shí)器級(jí)聯(lián),兩個(gè)定時(shí)器用來(lái)分別定時(shí)一個(gè)定時(shí)器級(jí)聯(lián),兩個(gè)定時(shí)器用來(lái)分別定時(shí)一段時(shí)間(如段時(shí)間(如20ms20ms為周期),一個(gè)定時(shí)到,則啟動(dòng)另一個(gè)開(kāi)始定為周期),一個(gè)定時(shí)到,則啟動(dòng)另一個(gè)開(kāi)始定時(shí)。時(shí)。 2022-5-2735【例例】編寫(xiě)程序,實(shí)現(xiàn)用定時(shí)編寫(xiě)程序,實(shí)現(xiàn)用定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T0T0定時(shí),使定時(shí),使P1.7P1.7引腳引腳輸出周期為輸出周期為2s2s的方波。設(shè)系統(tǒng)的晶振頻率為的方波。設(shè)系統(tǒng)的晶振頻率為12MHz12MH
30、z。確定方式字:確定方式字:T0T0工作在定時(shí)器方式工作在定時(shí)器方式1 1:GATE=0GATE=0,C/T=0C/T=0,M1M0=01M1M0=01方式控制字為方式控制字為0101H H 求計(jì)數(shù)初值求計(jì)數(shù)初值X:X: TcyTcy為為1 1S S N=20ms/1 N=20ms/1S=20000S=20000 X=65536-20000=4E20H X=65536-20000=4E20H 應(yīng)將應(yīng)將4E4E送送TH0, 20HTH0, 20H送送TL0TL0 采用定時(shí)采用定時(shí)20ms20ms,然后再計(jì)數(shù),然后再計(jì)數(shù)5050次的方法實(shí)現(xiàn)。次的方法實(shí)現(xiàn)。2022-5-2736 ORG 0000H
31、 ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH LJMP DVT0 LJMP DVT0 ORG 0030HORG 0030HMAIN:MOV TMOD,#01H ;T0MAIN:MOV TMOD,#01H ;T0定時(shí)器方式定時(shí)器方式1 1 MOV TH0,#4EH ; MOV TH0,#4EH ;裝入計(jì)數(shù)初值裝入計(jì)數(shù)初值 MOV TL0,#20H MOV TL0,#20H MOV R7,#50MOV R7,#50 ; ;計(jì)數(shù)計(jì)數(shù)5050次次 SETB ET0 ;T0 SETB ET0 ;T0開(kāi)中斷開(kāi)中斷 SETB EA ;CPUSETB E
32、A ;CPU開(kāi)中斷開(kāi)中斷 SETB TR0 ;SETB TR0 ;啟動(dòng)啟動(dòng)T0T0 SJMP $ ; SJMP $ ;等待中斷等待中斷DVT0:DJNZ R7,NT0DVT0:DJNZ R7,NT0 CPL P1.7 CPL P1.7 MOV R7,#50 MOV R7,#50 NT0:MOV TH0,#4EH NT0:MOV TH0,#4EH MOV TL0,#20H MOV TL0,#20H RETI RETI END END主程序主程序 中斷服務(wù)程序中斷服務(wù)程序 2022-5-2737n 方式方式3 3的應(yīng)用的應(yīng)用 T0 T0工作在方式工作在方式3 3時(shí),分為獨(dú)立的時(shí),分為獨(dú)立的TL0T
33、L0和和TH0TH0。其中,。其中,TL0TL0可作為可作為8 8位的定時(shí)器位的定時(shí)器/ /計(jì)數(shù)器,而計(jì)數(shù)器,而TH0TH0只能作為只能作為8 8位的定時(shí)器。位的定時(shí)器。此時(shí)此時(shí)T1T1可工作在方式可工作在方式0 0、1 1或或2 2。 一般情況下,當(dāng)一般情況下,當(dāng)T1T1用作串行口波特率發(fā)生器時(shí),用作串行口波特率發(fā)生器時(shí),T0T0才才設(shè)置為方式設(shè)置為方式3 3。此時(shí),常把。此時(shí),常把T1T1設(shè)置為方式設(shè)置為方式2 2,用作波特率發(fā),用作波特率發(fā)生器。生器。2022-5-2738【例例6-6】假設(shè)某假設(shè)某AT89S51AT89S51單片機(jī)應(yīng)用系統(tǒng)的兩個(gè)外部中斷源已單片機(jī)應(yīng)用系統(tǒng)的兩個(gè)外部中斷源
34、已被占用,設(shè)置被占用,設(shè)置T1T1工作在方式工作在方式2 2,用作波特率發(fā)生器?,F(xiàn)要求增,用作波特率發(fā)生器。現(xiàn)要求增加一個(gè)外部中斷源,并控制加一個(gè)外部中斷源,并控制P1.0P1.0引腳輸出一個(gè)引腳輸出一個(gè)5kHz5kHz(周期為(周期為200200 s s)的方波。設(shè)時(shí)鐘為)的方波。設(shè)時(shí)鐘為12MHz12MHz?;舅枷牖舅枷耄?設(shè)置設(shè)置T0T0工作在方式工作在方式3 3:TL0TL0計(jì)數(shù)模式,初值為計(jì)數(shù)模式,初值為0FFH0FFH,當(dāng)檢,當(dāng)檢測(cè)到測(cè)到T0T0腳信號(hào)出現(xiàn)負(fù)跳變時(shí),腳信號(hào)出現(xiàn)負(fù)跳變時(shí),TL0TL0溢出,同時(shí)向溢出,同時(shí)向CPUCPU申請(qǐng)中斷,申請(qǐng)中斷,即此時(shí)即此時(shí)T0T0腳相當(dāng)
35、于一個(gè)下降沿觸發(fā)的外部中斷請(qǐng)求輸入端。腳相當(dāng)于一個(gè)下降沿觸發(fā)的外部中斷請(qǐng)求輸入端。 在中斷處理子程序中,啟動(dòng)在中斷處理子程序中,啟動(dòng)TH0TH0,TH0TH0定時(shí)定時(shí)100100 s s,從而控,從而控制制P1.0P1.0輸出周期為輸出周期為200200 s s的方波信號(hào)。的方波信號(hào)。2022-5-2739(1 1)初值)初值X X計(jì)算計(jì)算 TL0 TL0的初值設(shè)為的初值設(shè)為0FFH0FFH。 5kHz 5kHz方波的周期為方波的周期為200200 s s,因此,因此TH0TH0的定時(shí)時(shí)間為的定時(shí)時(shí)間為100100 s s。 初值初值X X計(jì)算:計(jì)算:(2(28 8 X)X) 1 1 1010
36、6 6 = = 1 1 10104 4 X X = = 2 28 8 100100 = = 156156 = = 9CH9CH(2 2)程序設(shè)計(jì))程序設(shè)計(jì) ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH;TL0TL0中斷入口,中斷入口,TL0TL0使用使用T0T0的中斷的中斷 LJMP TL0INT LJMP TL0INT;跳向跳向TL0TL0中斷服務(wù)程序,中斷服務(wù)程序,TL0TL0占用占用T0T0中斷中斷2022-5-2740 ORG 001BH ORG 001BH ;TH0TH0中斷入口,中斷入口,T1T1為方式為方式
37、3 3時(shí),時(shí), ;TH0TH0使用了使用了T1T1的中斷的中斷 LJMP TH0INT LJMP TH0INT ;跳向;跳向TH0TH0中斷服務(wù)程序中斷服務(wù)程序 ORG 0100H ORG 0100H ;主程序入口;主程序入口MAINMAIN:MOVMOVTMODTMOD,#27H #27H ;T0T0方式方式3 3,T1T1方式方式2 2定時(shí)作串定時(shí)作串 ;行口波特率發(fā)生器;行口波特率發(fā)生器 MOV MOVTL0TL0,#0FFH #0FFH ;置;置TL0TL0初值初值 MOV MOVTH0TH0,#9CH#9CH ;置;置TH0TH0初值初值 MOV MOVTL1TL1,# #datal
38、datal ;TL1TL1裝入串口波特率常數(shù)裝入串口波特率常數(shù)MOV MOV TH1TH1,# #datahdatah ;TH1TH1裝入串口波特率常數(shù)裝入串口波特率常數(shù) MOV MOV TCONTCON,#15H#15H ;允許;允許T0T0中斷中斷2022-5-2741 MOV IEMOV IE,#9FH#9FH;設(shè)置中斷允許,總中斷允許設(shè)置中斷允許,總中斷允許 ;TH0TH0、TL0TL0中斷允許中斷允許HEREHERE:AJMP HERE AJMP HERE ;循環(huán)等待;循環(huán)等待TL0INTTL0INT:MOV TL0MOV TL0,#0FFH#0FFH ;TL0TL0中斷服務(wù)處理子程
39、序中斷服務(wù)處理子程序;TL0TL0重新裝入初值重新裝入初值 SETB TR1SETB TR1 ;開(kāi)始啟動(dòng);開(kāi)始啟動(dòng)TH0TH0定時(shí)定時(shí) RETI RETITH0INTTH0INT:MOV TH0MOV TH0,#9CH#9CH;TH0TH0中斷服務(wù)程序中斷服務(wù)程序 ;TH0TH0重新裝入初值重新裝入初值 CPL CPLP1.0P1.0 ;P1.0P1.0位取反輸出位取反輸出 RETI RETI2022-5-2742門控位的應(yīng)用門控位的應(yīng)用【例例】 測(cè)量測(cè)量INT0INT0引腳上出現(xiàn)的引腳上出現(xiàn)的正脈沖寬度正脈沖寬度( (時(shí)間長(zhǎng)度時(shí)間長(zhǎng)度) ),并將,并將結(jié)果(以機(jī)器周期的形式)存結(jié)果(以機(jī)器周
40、期的形式)存放在放在30H30H和和31H31H兩個(gè)單元中。兩個(gè)單元中。如何測(cè)量正脈沖的寬度?如何測(cè)量正脈沖的寬度?1 1、脈沖寬度、脈沖寬度= =TcyTcy * * N N,所以只需求出正脈沖對(duì)應(yīng)所以只需求出正脈沖對(duì)應(yīng)的計(jì)數(shù)值,再乘以的計(jì)數(shù)值,再乘以TcyTcy。2 2、GATE=1GATE=1時(shí),時(shí),INT0INT0引腳引腳對(duì)計(jì)數(shù)器的控制作用。對(duì)計(jì)數(shù)器的控制作用。 2022-5-27431 1、將、將T0T0設(shè)置為定時(shí)器方式設(shè)置為定時(shí)器方式1 1,GATE=1GATE=1,計(jì)數(shù)器初值為,計(jì)數(shù)器初值為0 0,將將TR0TR0置置1 1。 2 2、INT0INT0引腳上出現(xiàn)高電平時(shí),計(jì)數(shù)器開(kāi)始對(duì)機(jī)器周期引腳上出現(xiàn)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國(guó)自動(dòng)果凍條包裝機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 山東裝修房子防潮施工方案
- 2025至2031年中國(guó)溫度補(bǔ)償衰減器行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國(guó)鋁并溝線夾數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)鋪路用材料數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)鐵鋅鈣口服液數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)超白內(nèi)墻工程乳膠漆數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)縮丁醛數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 北平異景 憂國(guó)同思-品析《故都的秋》與《荷塘月色》 教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版高中語(yǔ)文必修上冊(cè)
- 2025至2030年中國(guó)程控消振電液模鍛錘數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 神經(jīng)外科患者臥位管理
- 2024年高頻脈沖電源項(xiàng)目可行性研究報(bào)告
- 部編人教版三年級(jí)下冊(cè)語(yǔ)文教案(表格版)
- 2024年北京二中高一(上)段考一化學(xué)試題及答案
- 民航服務(wù)心理學(xué)教案
- cnc加工崗前培訓(xùn)
- 2024年海南省公務(wù)員錄用考試《行測(cè)》真題卷及答案解析
- 2025年中國(guó)汽車車燈行業(yè)市場(chǎng)現(xiàn)狀、前景分析研究報(bào)告(智研咨詢發(fā)布)
- 2024年天津市公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 起重作業(yè)安全教育培訓(xùn)
- DB15T3127-2023釀酒葡萄氣候品質(zhì)評(píng)價(jià)
評(píng)論
0/150
提交評(píng)論