版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第6 6章章 80C5180C51單片機(jī)的單片機(jī)的CTCCTC與中斷系統(tǒng)與中斷系統(tǒng) 6.1 80C516.1 80C51單片機(jī)的單片機(jī)的CTCCTC及其應(yīng)用及其應(yīng)用 6.2 80C516.2 80C51單片機(jī)的中斷系統(tǒng)及其應(yīng)用單片機(jī)的中斷系統(tǒng)及其應(yīng)用 6.1 80C516.1 80C51單片機(jī)的單片機(jī)的CTCCTC及其應(yīng)用及其應(yīng)用一、一、 80C5180C51單片機(jī)的定時(shí)器單片機(jī)的定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器二、二、 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的應(yīng)用舉例計(jì)數(shù)器的應(yīng)用舉例概述概述 在測、控領(lǐng)域往往需要定時(shí)檢測某個(gè)參數(shù),或按一定的時(shí)間間隔來進(jìn)行某種控制。還有一些控制是根據(jù)對某種事件的計(jì)數(shù)結(jié)果進(jìn)行的。因
2、此幾乎所有單片機(jī)內(nèi)部都集成了定時(shí)/計(jì)數(shù)器,以簡化微機(jī)測控系統(tǒng)的設(shè)計(jì)。一、一、80C5180C51單片機(jī)的定時(shí)器單片機(jī)的定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器 80C51系列單片機(jī)典型產(chǎn)品中80C51等有兩個(gè)16位定時(shí)器/計(jì)數(shù)器T0,T1;80C52等有三個(gè)16位定時(shí)器/計(jì)數(shù)器T0、T1和T2。 它們都可以用作定時(shí)器或外部事件計(jì)數(shù)器。概述概述一、一、80C5180C51單片機(jī)的定時(shí)器單片機(jī)的定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器( (一一) ) 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的結(jié)構(gòu)原理的結(jié)構(gòu)原理( (二二) ) 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式( (三三
3、) ) 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2( (四四) ) 看門狗看門狗(WTD)(WTD)一、一、80C5180C51單片機(jī)的定時(shí)器單片機(jī)的定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器1 1、結(jié)構(gòu)框圖、結(jié)構(gòu)框圖 8 80C51單片機(jī)內(nèi)部有2 2個(gè)個(gè)可編程的1616位定時(shí)器位定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1,結(jié)構(gòu)框圖如下圖所示。它是由由6 6個(gè)專用寄存器構(gòu)成個(gè)專用寄存器構(gòu)成的: TH0、TL0構(gòu)成16位計(jì)數(shù)器T0, TH1、TL1構(gòu)成16位計(jì)數(shù)器T1, TMODTMOD、TCONTCON為兩個(gè)定時(shí)器共用為兩個(gè)定時(shí)器共用,用來選擇工作方式和控制啟停。( (一一) ) 定時(shí)器定時(shí)器/ /計(jì)數(shù)
4、器計(jì)數(shù)器T T0 0、T T1 1的結(jié)構(gòu)原理的結(jié)構(gòu)原理1 1、結(jié)構(gòu)框圖、結(jié)構(gòu)框圖( (一一) ) 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的結(jié)構(gòu)原理的結(jié)構(gòu)原理 T0、T1是加1計(jì)數(shù)器,每當(dāng)輸入信號有一個(gè)負(fù)跳變時(shí),計(jì)數(shù)器加1,它們可用于計(jì)數(shù)也可用于定時(shí)。 1 1、結(jié)構(gòu)框圖、結(jié)構(gòu)框圖( (一一) ) 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的結(jié)構(gòu)原理的結(jié)構(gòu)原理 當(dāng)用作計(jì)數(shù)時(shí)計(jì)數(shù)時(shí),它對外部對外部輸入(自引腳T0、T1)的脈沖信號計(jì)數(shù)脈沖信號計(jì)數(shù)。每個(gè)機(jī)器周期的S S5 5P P2 2采樣采樣引腳電平,若前一個(gè)機(jī)器周期采樣值為1,后一個(gè)機(jī)器周期采樣值為0,則計(jì)數(shù)器加加
5、1 1。對輸入計(jì)數(shù)信號的要求: 由于識別一個(gè)從1到0的負(fù)跳變信號需要兩個(gè)機(jī)器周期(24個(gè)振蕩周期),所以最高的計(jì)數(shù)頻最高的計(jì)數(shù)頻率為系統(tǒng)時(shí)鐘頻率的率為系統(tǒng)時(shí)鐘頻率的1/241/24; 又因?yàn)橐粋€(gè)機(jī)器周期對信號采樣一次,因此輸入信號的電平至少應(yīng)持續(xù)一個(gè)機(jī)器周期輸入信號的電平至少應(yīng)持續(xù)一個(gè)機(jī)器周期。1 1、結(jié)構(gòu)框圖、結(jié)構(gòu)框圖( (一一) ) 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的結(jié)構(gòu)原理的結(jié)構(gòu)原理 當(dāng)用作定時(shí)定時(shí)時(shí),它對內(nèi)部時(shí)鐘計(jì)數(shù)對內(nèi)部時(shí)鐘計(jì)數(shù),每個(gè)機(jī)器周期,計(jì)數(shù)器加1。1個(gè)機(jī)器周期為12個(gè)振蕩周期,因此定時(shí)時(shí)間由計(jì)數(shù)長度和時(shí)鐘頻率共同決定。1 1、結(jié)構(gòu)框圖、結(jié)構(gòu)框圖( (一
6、一) ) 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的結(jié)構(gòu)原理的結(jié)構(gòu)原理2 2、定時(shí)器方式寄存器定時(shí)器方式寄存器TMODTMOD TMOD用來選擇定時(shí)器的工作方式,各位定義如下圖所示:( (一一) ) 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的結(jié)構(gòu)原理的結(jié)構(gòu)原理2 2、定時(shí)器方式寄存器、定時(shí)器方式寄存器TMODTMOD( (一一) ) 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的結(jié)構(gòu)原理的結(jié)構(gòu)原理功能選擇功能選擇方式選擇方式選擇門控方式選擇門控方式選擇3 3、定時(shí)器控制寄存器、定時(shí)器控制寄存器TCON TCON TCON的高4位分別作為T0、T1的溢
7、出標(biāo)志和運(yùn)行控制位,低4位用于外部中斷,如下圖所示:( (一一) ) 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的結(jié)構(gòu)原理的結(jié)構(gòu)原理3 3、定時(shí)器控制寄存器、定時(shí)器控制寄存器TCON TCON ( (一一) ) 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的結(jié)構(gòu)原理的結(jié)構(gòu)原理 (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式簡述簡述 80C51單片機(jī)定時(shí)器T T0 0有四種工作方式有四種工作方式: 方式0、方式1、方式2和方式3。定時(shí)器T T1 1有三種工作方式有三種工作方式: 方式0、方式1、方式2。1 1、工作方式、工作方式
8、0 0 當(dāng)M1M0兩位為00時(shí),定時(shí)器/計(jì)數(shù)器選為工作方式0。 它是一個(gè)1313位位的計(jì)數(shù)器,由TLX的低5位和THX組成。結(jié)構(gòu)如下圖所示: (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式1 1、工作方式、工作方式0 0 (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式1 1、工作方式、工作方式0 0 當(dāng)TLX的低5位計(jì)數(shù)溢出時(shí)即向THX進(jìn)位,而THX計(jì)數(shù)溢出時(shí)向中斷標(biāo)志位溢出時(shí)向中斷標(biāo)志位TFTFX X進(jìn)位進(jìn)位。 在開中斷的情況下,會向CPU發(fā)出中斷請求;CPU響應(yīng)中斷后,硬件自動(dòng)清除TFX標(biāo)志。 TFX也可供
9、CPU讀寫,CPUCPU寫入狀態(tài)與硬件寫入狀態(tài)與硬件置置“1”1”或清或清“0”0”的效果相同的效果相同。 (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式1 1、工作方式、工作方式0 0 由結(jié)構(gòu)圖可見, 當(dāng)C/T=1時(shí),多路開關(guān)接通引腳TX,計(jì)數(shù)器對外部時(shí)鐘計(jì)數(shù); (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式 當(dāng)C/T=0時(shí),多路開關(guān)接振蕩器經(jīng)12分頻后的輸出,計(jì)數(shù)器對機(jī)器周期計(jì)數(shù),即工作于定時(shí)方式。1 1、工作方式、工作方式0 0 當(dāng)門控位GATE=0時(shí),定時(shí)器的啟停僅由TRX控制,而當(dāng)GATE=1時(shí),定時(shí)
10、器的啟停還受到INTX引腳電平的控制。 (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式1 1、工作方式、工作方式0 0 在方式在方式0 0應(yīng)用時(shí)應(yīng)注意以下幾點(diǎn)應(yīng)用時(shí)應(yīng)注意以下幾點(diǎn): 因計(jì)數(shù)器是做加1計(jì)數(shù)的,所以時(shí)間常數(shù)初值應(yīng)用 補(bǔ)碼裝入。 方式0為13位計(jì)數(shù)器,應(yīng)正確安排13位二進(jìn)制碼。 如果要重復(fù)定時(shí)或計(jì)數(shù),則須重新設(shè)置時(shí)間常數(shù) 初值。 (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式 當(dāng)M1M0兩位為01時(shí),定時(shí)器/計(jì)數(shù)器選為工作方式1,它是一個(gè)1616位位的計(jì)數(shù)器,結(jié)構(gòu)如下圖所示。 方式1和方式0唯一不同的
11、就是位數(shù),其它控制方式和用法均相同。 (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式2 2、工作方式、工作方式1 1 (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式2 2、工作方式、工作方式1 1 當(dāng)M1M0兩位為10時(shí),定時(shí)器/計(jì)數(shù)器選為工作方式2,為8 8位時(shí)間常數(shù)可自動(dòng)位時(shí)間常數(shù)可自動(dòng)再裝入再裝入的計(jì)數(shù)器,結(jié)構(gòu)如下圖所示。 (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式3 3、工作方式、工作方式2 2 (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T
12、1 1的工作方式的工作方式3 3、工作方式、工作方式2 2 這時(shí)TLX為8位計(jì)數(shù)器,THX為時(shí)間常數(shù)時(shí)間常數(shù)初值寄存器。初值寄存器。 當(dāng)TLX計(jì)滿溢出時(shí),置位TFX,并將THX的內(nèi)容(即時(shí)間常數(shù)初值)重新裝入TLX中。方式2特別適合于需要重復(fù)定時(shí)/計(jì)數(shù)的場合。 (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式3 3、工作方式、工作方式2 2 當(dāng)M1M0兩位為11時(shí),選擇工作方式3。方式3只適用于T0,如果企圖將T1置為方式3,則將使T1停止計(jì)數(shù),與清“0”TR1的效果相同。 T0工作于方式3時(shí),變成兩個(gè)獨(dú)立的變成兩個(gè)獨(dú)立的8 8位位計(jì)數(shù)器計(jì)數(shù)器TL0和T
13、H0,結(jié)構(gòu)如下圖所示。 (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式4 4、工作方式、工作方式3 3 (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式4 4、工作方式、工作方式3 3 TL0占用了原T0的所有資源; TH0占用了原T1的部分資源TR1和TF1,且THTH0 0只能只能作為定時(shí)器用作為定時(shí)器用。 這種情況下,T1仍可工作于方式0、1或2的定時(shí)或計(jì)數(shù),但TR1、TF1被TH0占用。 該方式一般用在一般用在T T1 1作為串口的波特率發(fā)生器,作為串口的波特率發(fā)生器,或不需要中斷的場合。或不需要中斷的場
14、合。 (二)定時(shí)器(二)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0、T T1 1的工作方式的工作方式4 4、工作方式、工作方式3 3 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2 T2內(nèi)部除了兩個(gè)8位計(jì)數(shù)器TH2、TL2和控制寄存器T2CON及方式控制寄存器T2MOD外,還設(shè)置了捕捉寄存器RCAP2L(低字節(jié))和RCAP2H(高字節(jié))。概述概述 80C52中有一個(gè)功能較強(qiáng)的定時(shí)器/計(jì)數(shù)器T2,它是一個(gè)16位的、具有自動(dòng)重裝載自動(dòng)重裝載和捕捕捉能力捉能力的定時(shí)器/計(jì)數(shù)器。 T2的計(jì)數(shù)脈沖源有兩個(gè):內(nèi)部機(jī)器周期和外部計(jì)數(shù)脈沖(從T2即P1.0端輸入) 此時(shí)P P1.11.1 作為外部控制信號輸
15、入端作為外部控制信號輸入端T T2 2EXEX。 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2概述概述 捕捉/重裝載選擇1,選擇捕捉0.選擇重裝載計(jì)數(shù)定時(shí)方式選擇1,計(jì)數(shù)0,定時(shí)運(yùn)行控制位1,啟動(dòng)T20,關(guān)閉T2允許/禁止外部信號觸發(fā)捕捉或重裝載1,允許0,禁止1 1、T T2 2中的特殊功能寄存器中的特殊功能寄存器 (1 1)T T2 2控制寄存器控制寄存器T T2 2CONCON(字節(jié)地址(字節(jié)地址C8HC8H):): (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 21 1、T T2 2中的特殊功能寄存器中的特殊功能寄存器 串行口發(fā)送波特率發(fā)生器選擇1,選擇T20,選擇T1
16、串行口接收波特率發(fā)生器選擇1,選擇T20,選擇T1T2外部標(biāo)志1,T2EX引腳(P1.1 )上出現(xiàn),造成捕捉/重裝載,0,CPU響應(yīng)中斷,應(yīng)由軟件清除該標(biāo)志。(EXEN2=1)T2溢出標(biāo)志,T2溢出時(shí)置位(在波特率發(fā)生器方式下不置位)并申請中斷,只能靠軟件清除。該位置1,申請中斷。(1 1)T T2 2控制寄存器控制寄存器T T2 2CONCON(字節(jié)地址(字節(jié)地址C8HC8H):): (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2(2 2)T T2 2方式控制寄存器方式控制寄存器T T2 2MODMOD:1,向下計(jì)數(shù)向下計(jì)數(shù)允許位0,向上計(jì)數(shù)T2輸出允許位(僅對80C54/58)1,
17、允許時(shí)鐘輸 出至T2(P1.0)0,不允許輸出T2MOD的復(fù)位值為:0 0 B1 1、T T2 2中的特殊功能寄存器中的特殊功能寄存器 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2(3 3)數(shù)據(jù)寄存器:)數(shù)據(jù)寄存器:THTH2 2,TLTL2 2 兩個(gè)8位寄存器構(gòu)成16位計(jì)數(shù)器,可供CPU以字節(jié)方式讀寫。(4 4)捕捉寄存器:)捕捉寄存器:RCAPRCAP2 2H H、RCAPRCAP2 2L L 用于捕捉計(jì)數(shù)器TH2、TL2的計(jì)數(shù)狀態(tài)或預(yù)置計(jì)數(shù)初值。1 1、T T2 2中的特殊功能寄存器中的特殊功能寄存器 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 22 2、T T2 2的
18、功能選擇:定時(shí)的功能選擇:定時(shí)/ /計(jì)數(shù)計(jì)數(shù) (1)C/T2=0,選擇定時(shí)方式。每個(gè)機(jī)器周期,T2的 內(nèi)容增1。(2)C/T2=1,選擇計(jì)數(shù)方式,當(dāng)T2(P1.0)引腳有一 個(gè)負(fù)跳變,T2內(nèi)容增1。注意計(jì)數(shù)脈沖頻率不得 超過振蕩器頻率的1/24。 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 23 3、T T2 2的工作方式選擇的工作方式選擇 包括捕捉、自動(dòng)重裝載和波特率發(fā)生器三種。由T2CON中的CP/RL2和RCLKTCLK來選擇,見下表: (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2T T2 2的工作方式選擇表的工作方式選擇表 捕捉方式:捕捉方式: 即在一定條件下,自動(dòng)將
19、計(jì)數(shù)器TH2和TL2中的數(shù)據(jù)讀入RCAP2H和RCAP2L。捕捉方式的原理圖如下:3 3、T T2 2的工作方式選擇的工作方式選擇 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2(P1.0) )(P1.1)T2外部標(biāo)志(在T2CON中)允許/禁止外部觸發(fā)(在T2CON中) 捕捉方式:捕捉方式:3 3、T T2 2的工作方式選擇的工作方式選擇 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2 當(dāng)CP/RL2=1,選擇捕捉方式。下述情況下將發(fā)生捕捉操作: 當(dāng)EXEN2=1,且引腳T2EX(P1.1)出現(xiàn)負(fù)跳變時(shí),發(fā)生捕捉,同時(shí)標(biāo)志EXF2置1,申請中斷。 捕捉方式:捕捉方式:3 3、
20、T T2 2的工作方式選擇的工作方式選擇 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2 如果T2的中斷開放,CPU響應(yīng)后轉(zhuǎn)到002BH執(zhí)行中斷服務(wù)程序。 注意:注意:在中斷返回之前,必須用軟件來清除TF2/EXF2。 捕捉方式:捕捉方式:3 3、T T2 2的工作方式選擇的工作方式選擇 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2自動(dòng)重裝載方式:自動(dòng)重裝載方式: 即在一定條件下,自動(dòng)將RCAP2H和RCAP2L中的數(shù)據(jù)裝入計(jì)數(shù)器TH2和TL2中。一般RCAP2H和RCAP2L中預(yù)置了T2的計(jì)數(shù)初值。 自動(dòng)重裝載方式的原理圖如下:3 3、T T2 2的工作方式選擇的工作方式選
21、擇 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2自動(dòng)重裝載方式:自動(dòng)重裝載方式:3 3、T T2 2的工作方式選擇的工作方式選擇 (P1.0)(P1.1)T2的自動(dòng)重裝載方式 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2 當(dāng)CP/RL2=0時(shí),選擇自動(dòng)重裝載方式,以下兩種情況下發(fā)生自動(dòng)重裝載操作: T T2 2溢出時(shí),溢出時(shí),打開重裝載三態(tài)緩沖器,發(fā)生重裝載操作,同時(shí)置位TF2,申請中斷。自動(dòng)重裝載方式:自動(dòng)重裝載方式:3 3、T T2 2的工作方式選擇的工作方式選擇 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2 當(dāng)CP/RL2=0時(shí),選擇自動(dòng)重裝載方式,以下兩種
22、情況下發(fā)生自動(dòng)重裝載操作:當(dāng)當(dāng)EXENEXEN2 2=1=1,且引腳T2EX(P1.1)有負(fù)跳變時(shí),發(fā)生重裝載操作,同時(shí)置位EXF2標(biāo)志,申請中斷。自動(dòng)重裝載方式:自動(dòng)重裝載方式:3 3、T T2 2的工作方式選擇的工作方式選擇 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2 如果T2中斷允許,CPU響應(yīng)后轉(zhuǎn)到002BH執(zhí)行中斷服務(wù)程序。注意注意:在返回之前,應(yīng)該用軟件清除TF2/EXF2 標(biāo)志。自動(dòng)重裝載方式:自動(dòng)重裝載方式:3 3、T T2 2的工作方式選擇的工作方式選擇 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2波特率發(fā)生器方式:波特率發(fā)生器方式: 當(dāng)T2CON中RC
23、LK+TCLK=1時(shí),T2作為串行口的波特率發(fā)生器,其結(jié)構(gòu)原理如下圖所示:3 3、T T2 2的工作方式選擇的工作方式選擇 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2波特率發(fā)生器方式:波特率發(fā)生器方式:3 3、T T2 2的工作方式選擇的工作方式選擇 T2的波特率發(fā)生器方式結(jié)構(gòu)圖 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2 當(dāng)T2用作波特率發(fā)生器時(shí),TH2的溢出不使TF2置位,不產(chǎn)生中斷,所以此時(shí)T2不必禁止中斷。 計(jì)數(shù)時(shí)鐘可以是內(nèi)部,也可以是外部,由C/T狀態(tài)決定,波特率的值決定于RCAP2H和RCAP2L裝載的初值。波特率發(fā)生器方式:波特率發(fā)生器方式:3 3、T T
24、2 2的工作方式選擇的工作方式選擇 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2 該方式下,在T2計(jì)數(shù)過程中,不能再讀寫TH2和TL2;可以讀但不能改寫RCAP2H和RCAP2L;如果要訪問RCAP2H和RCAP2L,應(yīng)先關(guān)閉定時(shí)器。 上圖可見,當(dāng)T2用作波特率發(fā)生器時(shí),若T2CON中EXEN2位置1,引腳T2EX(P1.1)可作為一個(gè)外部中斷源。波特率發(fā)生器方式:波特率發(fā)生器方式:3 3、T T2 2的工作方式選擇的工作方式選擇 (三)定時(shí)器(三)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T T2 2 (四)看門狗(四)看門狗(WTD)(WTD)概述概述 看門狗亦稱監(jiān)視定時(shí)器T T3 3,它的作用是
25、強(qiáng)作用是強(qiáng)迫單片機(jī)進(jìn)入復(fù)位狀態(tài),使之從硬件或軟件故迫單片機(jī)進(jìn)入復(fù)位狀態(tài),使之從硬件或軟件故障中解脫出來障中解脫出來。即單片機(jī)的程序進(jìn)入了錯(cuò)誤狀態(tài)后,在一個(gè)指定的時(shí)間內(nèi),用戶程序沒有重裝定時(shí)器T3,將產(chǎn)生一個(gè)系統(tǒng)復(fù)位。 80C55280C552中WTD是由一個(gè)11位的分頻器和8位定時(shí)器T3(加1計(jì)數(shù))組成。結(jié)構(gòu)結(jié)構(gòu) 其結(jié)構(gòu)如下圖所示:看門狗T3結(jié)構(gòu)圖 (四)看門狗(四)看門狗(WTD)(WTD)結(jié)構(gòu)結(jié)構(gòu) T3由外部引腳 及PCON.4 (WLE)和PCON.1 (PD)控制。EW低電平, 允許WTD工作,禁止掉電方式, 也不能置位掉電位PCON.1。高電平, 禁止WTD工作,允許掉電方式。引腳E
26、W 在軟件調(diào)試階段,通過將 接高電平來禁止T3工作,待調(diào)試結(jié)束后,再將 接低電平。EWEW (四)看門狗(四)看門狗(WTD)(WTD)WLE (PCON.4)看門狗定時(shí)器允許重裝標(biāo)志1:允許定時(shí)器T3重裝。0:T3裝入后WLE自動(dòng)清除,若該位為0,說 明T3已被重裝。 T3的重裝和溢出,產(chǎn)生復(fù)位的時(shí)間間隔,由裝入T3的值決定。結(jié)構(gòu)結(jié)構(gòu) 對對T T3 3的裝入分兩步:的裝入分兩步:先置位PCON.4 (WLE),然后裝入T3。T3裝入后,PCON.4自動(dòng)復(fù)位。 如果PCON.4=0,則T3不能被裝入。 (四)看門狗(四)看門狗(WTD)(WTD)工作過程工作過程 定時(shí)器定時(shí)器T T3 3的工作
27、原理:的工作原理:在T3溢出時(shí),復(fù)位8X552并產(chǎn)生復(fù)位脈沖輸出至復(fù)位引腳RST。 為防止系統(tǒng)復(fù)位,必須在定時(shí)器T3溢出前,通過軟件對其進(jìn)行重裝。 如果發(fā)生軟件或硬件故障,將使軟件對定時(shí)器T3的重裝失敗,從而T3溢出導(dǎo)致復(fù)位信號的產(chǎn)生。用這樣的方法可以在軟件失控時(shí),恢復(fù)程序的正常運(yùn)行。 (四)看門狗(四)看門狗(WTD)(WTD)編程實(shí)例編程實(shí)例 例如:watchdog使用的一段程序如下: T3 EQU 0FFH ;定時(shí)器T3的地址 PCON EQU 87H ;PCON的地址 WATCH_INTV EQU 156 ;看門狗的時(shí)間間隔 LCALL WATCHDOG 看門狗服務(wù)程序WATCHDOG
28、:ORL PCON,#10H ;允許定時(shí)器T3重裝 MOV T3,#WATCH_INTV ;裝載定時(shí)器T3 RET (四)看門狗(四)看門狗(WTD)(WTD)二、(一)定時(shí)器(一)定時(shí)器/ /計(jì)數(shù)器編程步驟計(jì)數(shù)器編程步驟(二)(1 1) 確定工作方式確定工作方式,把方式字寫入TMOD寄存器。(2 2) 計(jì)算定時(shí)計(jì)算定時(shí)/ /計(jì)數(shù)初值計(jì)數(shù)初值,并將初值寫入寄存器TH0、TL0或TH1、TL1。計(jì)數(shù)初值應(yīng)用補(bǔ)碼寫入應(yīng)用補(bǔ)碼寫入。 作計(jì)數(shù)器:計(jì)數(shù)初值X=2n-C, 作定時(shí)器:時(shí)間常數(shù)初值X=2n-T/TC , 式中n為計(jì)數(shù)器位數(shù),C是實(shí)際計(jì)數(shù)值,TC是機(jī)器周期,T是設(shè)定的時(shí)間。(一)(一)定時(shí)器定
29、時(shí)器/ /計(jì)數(shù)器編程步驟計(jì)數(shù)器編程步驟(3 3)將中斷控制字和中斷優(yōu)先級別分別寫入中斷允 許寄存器IEIE和中斷優(yōu)先級寄存器IPIP。(4 4)向TCONTCON寫入適當(dāng)命令字,控制定時(shí)器/計(jì)數(shù)器 的運(yùn)行。(一)(一)定時(shí)器定時(shí)器/ /計(jì)數(shù)器編程步驟計(jì)數(shù)器編程步驟例例 1 1 利用利用T T0 0方式方式0 0產(chǎn)生產(chǎn)生1ms1ms的定時(shí),在的定時(shí),在P P1.01.0引腳上輸出引腳上輸出周期為周期為2ms2ms的方波。設(shè)單片機(jī)晶振頻率的方波。設(shè)單片機(jī)晶振頻率f foscosc=12MHz=12MHz 解:要在P1.0輸出周期為2ms的方波,只要使P1.0每隔1ms取反一次即可。T0的方式字為:
30、TMOD=00H計(jì)算要定時(shí)1ms,T0的初值:機(jī)器周期Tc=(1/fosc)12=1/(12106)12=1s(二)(二)(二)(二) 利用利用T T0 0方式方式0 0產(chǎn)生產(chǎn)生1ms1ms的定時(shí),在的定時(shí),在P P1.01.0引腳上輸出周期引腳上輸出周期為為2ms2ms的方波。設(shè)單片機(jī)晶振頻率的方波。設(shè)單片機(jī)晶振頻率f foscosc=12MHz=12MHz 例例 1 1設(shè)T0的計(jì)數(shù)初值為X,則(213-X)110-6=110-3 X=213-110-3/(110-6) =8192-1000 =7192 =11100000 11000 B高8位 E0H 低5位 18H 利用利用T T0 0方
31、式方式0 0產(chǎn)生產(chǎn)生1ms1ms的定時(shí),在的定時(shí),在P P1.01.0引腳上輸出周期為引腳上輸出周期為2ms2ms的方波。設(shè)單片機(jī)晶振頻的方波。設(shè)單片機(jī)晶振頻f foscosc=12MHz=12MHz。那么:TH0初值為E0H,TL0初值為18H。采用查詢查詢TF0的狀態(tài)來控制P1.0輸出。程序清單:程序清單:MOV TMOD,#00H ;置T0為方式0MOV TL0,#18H ;送計(jì)數(shù)初值MOV TH0,#0E0HSETB TR0 ;啟動(dòng)T0例例 1 1(二)(二) 利用利用T T0 0方式方式0 0產(chǎn)生產(chǎn)生1ms1ms的定時(shí),在的定時(shí),在P P1.01.0引腳上輸出周期為引腳上輸出周期為2
32、ms2ms的方波。設(shè)單片機(jī)晶振頻率的方波。設(shè)單片機(jī)晶振頻率f foscosc=12MHz=12MHz。 LOOP:JBC TF0,NEX ;查詢定時(shí)時(shí)間到否SJMP LOOPNEX:MOV TL0 #18H ;重賦計(jì)數(shù)初值 MOV TH0 #0E0H CPL P1.0 ;輸出取反 SJMP LOOP ;重復(fù)循環(huán)例例 1 1(二)(二) 利用利用T T0 0方式方式0 0產(chǎn)生產(chǎn)生1ms1ms的定時(shí),在的定時(shí),在P P1.01.0引腳上輸出引腳上輸出周期為周期為2ms2ms的方波。設(shè)單片機(jī)晶振頻率的方波。設(shè)單片機(jī)晶振頻率f foscosc=12MHz=12MHz。 采用查詢方式查詢方式的程序很簡單
33、,但CPU要不斷地查詢溢出標(biāo)志TF0的狀態(tài),這就占用了占用了CPUCPU工作時(shí)間工作時(shí)間,以致CPU的效率不高。采用定時(shí)溢出中斷方式,可采用定時(shí)溢出中斷方式,可以提高以提高CPUCPU的效率的效率。例例 1 1(二)(二)采用定時(shí)溢出中斷方式產(chǎn)生前例所要求的方波。采用定時(shí)溢出中斷方式產(chǎn)生前例所要求的方波。 解解:方式字和初值與上例一樣。程序清單:程序清單:主程序:ORG 0000HAJMP MAIORG 000BH ;T0中斷入口AJMP IST0 ;轉(zhuǎn)中斷服務(wù)程序例例 2 2(二)(二)采用定時(shí)溢出中斷方式產(chǎn)生前例所要求的方波。采用定時(shí)溢出中斷方式產(chǎn)生前例所要求的方波。MAI:MOV SP,
34、#53H ;設(shè)置堆棧MOV TMOD,#00H ;置T0為方式0MOV TL0,#18H ;送初值MOV TH0,#OE0HSETB EA ;CPU開中斷SETB ET0 ;T0中斷允許SETB TR0 ;啟動(dòng)T0HERE:SJMP HERE ;等待中斷例例 2 2(二)(二)采用定時(shí)溢出中斷方式產(chǎn)生前例所要求的方波。采用定時(shí)溢出中斷方式產(chǎn)生前例所要求的方波。中斷服務(wù)程序:中斷服務(wù)程序:IST0:MOV TL0,#18H ;重裝初值 MOV TH0,#0E0H CPL P1.0 ; 輸出方波 RETI ; 中斷返回例例 2 2(二)(二) 采用定時(shí)器控制輸出一方波信號,要求方波的采用定時(shí)器控制
35、輸出一方波信號,要求方波的周期為周期為1s1s。設(shè)單片機(jī)晶振頻率為。設(shè)單片機(jī)晶振頻率為12MHz12MHz。解:輸出周期為1s的方波要求定時(shí)值為500ms,在時(shí)鐘為12MHz的情況下,即使采用方式1(16位計(jì)數(shù)器),這個(gè)值也超過超過了方式1可能提供的最大定時(shí)值(65.536ms)。 如果采用降低單片機(jī)時(shí)鐘頻率降低單片機(jī)時(shí)鐘頻率來延長定時(shí)時(shí)間,在一定的范圍內(nèi)可以,但會降低CPU運(yùn)行速度,而且定時(shí)誤差也會加大。例例 3 3(二)(二) 采用定時(shí)器控制輸出一方波信號,要求方波的采用定時(shí)器控制輸出一方波信號,要求方波的周期為周期為1s1s。設(shè)單片機(jī)晶振頻率為。設(shè)單片機(jī)晶振頻率為12MHz12MHz。
36、要獲得500ms的定時(shí),可選用定時(shí)器T0方式1,定時(shí)時(shí)間為50ms。另設(shè)一個(gè)軟件計(jì)數(shù)器,初始值為10。每隔50ms定時(shí)時(shí)間到,產(chǎn)生溢出中斷,在中斷服務(wù)程序中使軟件計(jì)數(shù)器減1,當(dāng)軟件計(jì)數(shù)器減到0時(shí),就獲得500ms定時(shí)。 下面介紹一種利用定時(shí)器定時(shí)定時(shí)器定時(shí)和軟件計(jì)數(shù)軟件計(jì)數(shù)來延長定時(shí)時(shí)間的復(fù)合方法復(fù)合方法。例例 3 3(二)(二) 采用定時(shí)器控制輸出一方波信號,要求方波的周期為采用定時(shí)器控制輸出一方波信號,要求方波的周期為1s1s。設(shè)單片機(jī)晶振頻率為設(shè)單片機(jī)晶振頻率為12MHz12MHz。若時(shí)鐘頻率f=12MHz,50ms定時(shí)的計(jì)數(shù)初值為: X=216-5010-3/(110-6) =6553
37、6-50000 =15536 D =00111100 10110000 B 3CH B0H 例例 3 3(二)(二)即X=3CB0H,因此TH0初值為3CH,TL0初值為B0H。 采用定時(shí)器控制輸出一方波信號,要求方波的周期為采用定時(shí)器控制輸出一方波信號,要求方波的周期為1s1s。設(shè)單片機(jī)晶振頻率為設(shè)單片機(jī)晶振頻率為12MHz12MHz。程序清單:程序清單:ORG 0000HAJMP MAI ; 轉(zhuǎn)主程序ORG 000BHAJMP TIS ;轉(zhuǎn)定時(shí)器T0中斷服務(wù)程序例例 3 3(二)(二) 采用定時(shí)器控制輸出一方波信號,要求方波的周期為采用定時(shí)器控制輸出一方波信號,要求方波的周期為1s1s。設(shè)
38、單片機(jī)晶振頻率為設(shè)單片機(jī)晶振頻率為12MHz12MHz。MAI:MOV SP,#53HMOV TMOD,#01H ; 定時(shí)器T0方式1MOV TL0,#0B0H ; T0低8位初值MOV TH0,#3CH ; T0高8位初值MOV IE,#82H ; T0開中斷SETB TR0 ; 啟動(dòng)T0MOV R1,#10 ; 軟件計(jì)數(shù)器初值DEFG:SJMP DEFG ; 等待中斷例例 3 3(二)(二) 采用定時(shí)器控制輸出一方波信號,要求方波的周期為采用定時(shí)器控制輸出一方波信號,要求方波的周期為1s1s。設(shè)單片機(jī)晶振頻率為設(shè)單片機(jī)晶振頻率為12MHz12MHz。中斷服務(wù)程序中斷服務(wù)程序:TIS:DJN
39、Z R1,NEXT ;(R1)=0,則不對P1.0取反 CPL P1.0 ; 輸出方波MOV R1, #10 ;重裝軟件計(jì)數(shù)器初值NEXT:MOV TL0,#0B0H ;重裝定時(shí)器初值MOV TH0,#3CHRETI ;中斷返回例例 3 3(二)(二) 利用定時(shí)器方式利用定時(shí)器方式2 2對外部脈沖計(jì)數(shù),要求每計(jì)滿對外部脈沖計(jì)數(shù),要求每計(jì)滿110110次,將次,將P P1.01.0端取反。端取反。解:外部信號由T1引腳輸入,每發(fā)生一次負(fù)跳變計(jì)數(shù)器加1,每輸入110個(gè)脈沖,計(jì)數(shù)器發(fā)生溢出中斷,中斷服務(wù)程序?qū)1.0取反一次。 T1為計(jì)數(shù)方式2的方式字為:TMOD=60H。設(shè)T0不用,TMOD的低4
40、位可任意,但不能使T0進(jìn)入方式3,一般取0。 例例 4 4(二)(二) 利用定時(shí)器方式利用定時(shí)器方式2 2對外部脈沖計(jì)數(shù),要求每計(jì)滿對外部脈沖計(jì)數(shù),要求每計(jì)滿110110次,將次,將P P1.01.0端取反。端取反。計(jì)算T1的計(jì)數(shù)初值:X=28-110=146=92H則TL1的初值為92H,重裝初值寄存器TH1=92H。例例 4 4(二)(二) 利用定時(shí)器方式利用定時(shí)器方式2 2對外部脈沖計(jì)數(shù),要求每計(jì)滿對外部脈沖計(jì)數(shù),要求每計(jì)滿110110次,將次,將P P1.01.0端取反。端取反。程序清單:程序清單:MAI:MOV TMOD,#60H ;置T1方式2計(jì)數(shù)MOV TL1,#92H ;賦初值
41、MOV TH1,#92HMOV IE, #88H ;定時(shí)器T1開中斷SETB TR1 ;啟動(dòng)計(jì)數(shù)器HERE:SJMP HERE ;等待中斷例例 4 4(二)(二) 利用定時(shí)器方式利用定時(shí)器方式2 2對外部脈沖計(jì)數(shù),要求每計(jì)滿對外部脈沖計(jì)數(shù),要求每計(jì)滿110110次,將次,將P P1.01.0端取反。端取反。ORG 001BH ;中斷服務(wù)程序入口CPL P1.0 ;對P1.0取反RETI ;中斷返回例例 4 4(二)(二) 利用利用T T0 0門控位測試引腳上出現(xiàn)的正脈沖的寬度,并以門控位測試引腳上出現(xiàn)的正脈沖的寬度,并以機(jī)器周期數(shù)的形式顯示在顯示器上。機(jī)器周期數(shù)的形式顯示在顯示器上。解:根據(jù)要
42、求,解題思路為:將T0設(shè)為定時(shí)器方式1,計(jì)數(shù)初值為0,GATE程控為1,置TR0為1。一旦P3.2引腳出現(xiàn)高電平即開始計(jì)數(shù),直到出現(xiàn)低電平為止,然后讀取T0的計(jì)數(shù)值并顯示。測試過程如下圖所示:例例 5 5(二)(二)對T0初始化,09HTMOD,GATE=1T0從0開始計(jì)數(shù),測量脈沖寬度0TR0,停止計(jì)數(shù)讀T0值,送顯示 利用利用T T0 0門控位測試引腳上出現(xiàn)的正脈沖的寬度,并以機(jī)門控位測試引腳上出現(xiàn)的正脈沖的寬度,并以機(jī)器周期數(shù)的形式顯示在顯示器上。器周期數(shù)的形式顯示在顯示器上。程序清單:START:MOV TMOD,#09H ;T0定時(shí)方式1,GATE置1MOV TL0,#00HMOV
43、TH0,#00HSETB TR0 ;啟動(dòng)定時(shí)器計(jì)數(shù)WAIT1:JB P3.2,WAIT1 ;等待INT0變低例例 5 5(二)(二) 利用利用T T0 0門控位測試引腳上出現(xiàn)的正脈沖的寬度,并以機(jī)門控位測試引腳上出現(xiàn)的正脈沖的寬度,并以機(jī)器周期數(shù)的形式顯示在顯示器上器周期數(shù)的形式顯示在顯示器上CLR TR0 ;停止T0計(jì)數(shù)MOV R0,#DISBUF ;顯示緩沖器首址送R0MOV A ,TL0 ;機(jī)器周期存放格式為低位占低地址WAIT2:JNB P3.2 ,WAIT2 ;等待INT0升高WAIT3:JB P3.2 ,WAIT3 ;等待INTO變低例例 5 5(二)(二) 利用利用T T0 0門
44、控位測試引腳上出現(xiàn)的正脈沖的寬度,并以機(jī)門控位測試引腳上出現(xiàn)的正脈沖的寬度,并以機(jī)器周期數(shù)的形式顯示在顯示器上。器周期數(shù)的形式顯示在顯示器上。XCHD A, R0 ;高位為占高地址。連續(xù)4個(gè)顯示緩沖單元INC R0SWAP AXCHD A,R0INC R0MOV A, TH0XCHD A, R0INC R0例例 5 5(二)(二) 利用利用T T0 0門控位測試引腳上出現(xiàn)的正脈沖的寬度,并以機(jī)門控位測試引腳上出現(xiàn)的正脈沖的寬度,并以機(jī)器周期數(shù)的形式顯示在顯示器上。器周期數(shù)的形式顯示在顯示器上。SWAP AXCHD A,R0DIS:LCALL DISUP ;長調(diào)用顯示子程序AJMP DIS ;重
45、復(fù)顯示脈寬機(jī)器周期數(shù) 由于定時(shí)器方式1的16位計(jì)數(shù)長度有限,被測脈沖高電平寬度必須小于65536個(gè)機(jī)器周期。例例 5 5(二)(二)利用定時(shí)器測定下圖所示波形的一個(gè)周期的長度。例例 6 6(二)(二) 解:設(shè)T0為定時(shí)、門控方式,當(dāng)INT0為高電平時(shí),啟動(dòng)定時(shí)器,之后應(yīng)改為非門控方式;T1為計(jì)數(shù)方式。信號波形及連接方式如上圖(b)所示。 定時(shí)器設(shè)置:定時(shí)器設(shè)置: 當(dāng)脈沖速率低于每秒3個(gè)時(shí),每個(gè)脈沖周期為330ms左右,且設(shè)脈沖寬度小于100ms,故設(shè)置定時(shí)器的基本定時(shí)為100 ms,可滿足測時(shí)的精度要求。例例 6 6利用定時(shí)器測定下圖所示波形的一個(gè)周期的長度。(二)(二)T T0 0的的TMO
46、DTMOD的設(shè)置:的設(shè)置:采用門控方式啟動(dòng)定時(shí)器,按方式1定時(shí),故方式字為09H。例例 6 6 門控 定時(shí)器 方式1利用定時(shí)器測定下圖所示波形的一個(gè)周期的長度。(二)(二)時(shí)間常數(shù)計(jì)算:時(shí)間常數(shù)計(jì)算:振蕩頻率6 MHz,機(jī)器周期Tc為Tc=12/6106=210-6 s,設(shè)置初值為x:基本定時(shí)時(shí)間為100 ms,于是 (216-x)*(210-6)=10010-3 x=216-50103=15 536=3CB0H 預(yù)置:(TH0)=3CH,(TL0)=0B0H例例 6 6利用定時(shí)器測定下圖所示波形的一個(gè)周期的長度。(二)(二) 計(jì)數(shù)器設(shè)置:計(jì)數(shù)器設(shè)置: T1設(shè)為計(jì)數(shù)器,計(jì)數(shù)值為2。當(dāng)計(jì)數(shù)1時(shí),
47、啟動(dòng)定時(shí)器;當(dāng)計(jì)數(shù)2時(shí),中斷計(jì)數(shù)器T1,并停止T0的定時(shí); T1的中斷優(yōu)先級高于定時(shí)器T0。 T1的方式字為 5H;計(jì)數(shù)初值為0FFFEH。 預(yù)置:(TH1)=0FFH,(TL1)=0FEH。例例 6 6利用定時(shí)器測定下圖所示波形的一個(gè)周期的長度。(二)(二) 編程:編程: ORG 000BH ;定時(shí)器T0中斷入口 AJMP TIME0 ORG 001BH ;定時(shí)器T1中斷入口 AJMP TIME1 ORG H MOV R3,#0 ;清T0定時(shí)次數(shù)計(jì)數(shù)器 SETB P3. .2 ;置P3. .2 、P3. .5為輸入狀態(tài) SETB P3. .5 例例 6 6利用定時(shí)器測定下圖所示波形的一個(gè)周期
48、的長度。(二)(二) MOV TMOD,#59H MOV TH0,#3CH ;置定時(shí)器初值 MOV TL0,#0B0H MOV TH1,#0FFH ;置計(jì)數(shù)器初值 MOV TL1,#0FEH SETB TR0 ;啟動(dòng)定時(shí)器、計(jì)數(shù)器 SETB TR1 MOV IP,#08H ;T1中斷優(yōu)先于T0例例 6 6利用定時(shí)器測定下圖所示波形的一個(gè)周期的長度。 編程:續(xù)編程:續(xù)1 1(二)(二) SETB ET0 ; 允許T0、T1中斷 SETB ET1 CLR 20H.0 ;清T0、T1中斷軟標(biāo)志 CLR 20H.1 SETB EA ;CPU開中斷 JNB 20H.0,$ ;T0若未中斷,則踏步等待 J
49、NB 20H.1 , $ ;T1若未中斷,則踏步等待 RET 例例 6 6利用定時(shí)器測定下圖所示波形的一個(gè)周期的長度。 編程:續(xù)編程:續(xù)2 2(二)(二) TIME0:JB 20H.0,LP ;T0非初次中斷,轉(zhuǎn) MOV TMOD,#51H ;取消門控方式 SYTB 20H.0 ;置T0中斷軟標(biāo)志 LP:MOV TH0,#3CH ;重置定時(shí)器初值 MOV TL0,#0B0H INC R3 ;軟件計(jì)數(shù)器加1 RETI 例例 6 6利用定時(shí)器測定下圖所示波形的一個(gè)周期的長度。 編程:續(xù)編程:續(xù)3 3(二)(二)TIME1:CLR 20H.0 ;清除T0、T1中斷軟標(biāo)志 CLR 20H.1 CLR
50、ET0 ;禁止T0、T1中斷 CLR ET1 CLR EA ;CPU關(guān)中斷 CLR TR0 ;關(guān)定時(shí)器,計(jì)數(shù)器 CLR TR1 RETI 注:注:結(jié)果(R3)100 ms即為所測波形的周期。嚴(yán)格地講 還應(yīng)加上T0中的內(nèi)容,即(T0)3CB0H)2us例例 6 6利用定時(shí)器測定下圖所示波形的一個(gè)周期的長度。 編程:續(xù)編程:續(xù)4 4(二)(二) 6.2 80C516.2 80C51單片機(jī)的中斷系統(tǒng)及其應(yīng)用單片機(jī)的中斷系統(tǒng)及其應(yīng)用一、一、 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)二、二、80C5180C51單片機(jī)的中斷系統(tǒng)應(yīng)用舉例單片機(jī)的中斷系統(tǒng)應(yīng)用舉例中斷:中斷:程序在執(zhí)行過程中,允許
51、外部或內(nèi)部事件打斷它,使其轉(zhuǎn)向?yàn)樘幚硗獠炕騼?nèi)部事件的中斷服務(wù)程序中去;完成中斷服務(wù)程序后,CPU繼續(xù)執(zhí)行原來被打斷的程序。這樣的過程稱為中斷。 如下圖所示:概述一、一、 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)中斷源:能產(chǎn)生中斷的外部和內(nèi)部事件。概述概述一、一、 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng) 中斷優(yōu)先級:中斷優(yōu)先級:當(dāng)幾個(gè)中斷源同時(shí)申請中斷,CPU必須區(qū)分哪個(gè)中斷源更重要,從而確定優(yōu)先處理哪個(gè)事件,這就是中斷優(yōu)先級問題。 當(dāng)CPU正在處理某中斷事件時(shí),又有另一事件申請中斷,CPU是否相應(yīng)? 約定約定:高優(yōu)先級的中斷源可以中斷CPU正在處理的低級的中斷服務(wù)程序
52、,這就是中斷嵌套問題。 概述概述一、一、 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng) 80C51單片機(jī)有5 5個(gè)中斷源,個(gè)中斷源,2 2個(gè)中斷優(yōu)先個(gè)中斷優(yōu)先級級,它的中斷處理程序可實(shí)現(xiàn)兩級嵌套,有較強(qiáng)的中斷處理能力。 單片機(jī)對中斷系統(tǒng)的管理是通過相關(guān)的專用寄存器來實(shí)現(xiàn)的。概述概述一、一、 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)(一)中斷源及相關(guān)的專用寄存器(一)中斷源及相關(guān)的專用寄存器(二)單片機(jī)對中斷請求的控制(二)單片機(jī)對中斷請求的控制(三)單片機(jī)對中斷的響應(yīng)(三)單片機(jī)對中斷的響應(yīng)一、一、 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)1 1、80C5180
53、C51單片機(jī)的中斷源單片機(jī)的中斷源80C51(一)中斷源及相關(guān)的專用寄存器(一)中斷源及相關(guān)的專用寄存器中斷源及相應(yīng)的中斷矢量和中斷標(biāo)志1 1、80C5180C51單片機(jī)的中斷源單片機(jī)的中斷源(一)中斷源及相關(guān)的專用寄存器(一)中斷源及相關(guān)的專用寄存器INT0INT12 2、定時(shí)器控制寄存器、定時(shí)器控制寄存器TCONTCON定時(shí)器控制寄存器定時(shí)器控制寄存器TCONTCON的結(jié)構(gòu)如下圖所示的結(jié)構(gòu)如下圖所示復(fù)位復(fù)位/ /未溢出未溢出:0:0T T1 1溢出中斷:溢出中斷:1 1T T1 1中斷中斷標(biāo)志位標(biāo)志位停停T T1 1 計(jì)數(shù):計(jì)數(shù): 0 0啟啟T T1 1計(jì)數(shù):計(jì)數(shù):1 1T T1 1啟停位
54、啟停位復(fù)位復(fù)位/ /未溢出:未溢出:0 0T T0 0溢出中斷:溢出中斷:1 1停停T T0 0計(jì)數(shù):計(jì)數(shù):0 0啟啟T T0 0計(jì)數(shù):計(jì)數(shù):1 1T T0 0中斷標(biāo)志位中斷標(biāo)志位T T0 0 啟停位啟停位0:INT0:INT1 1無中斷請求無中斷請求1:INT1:INT1 1有中斷請求有中斷請求0:INT0:INT1 1為電平觸發(fā)為電平觸發(fā)1:INT1:INT1 1為邊沿觸發(fā)為邊沿觸發(fā)0:INT0:INT0 0無中斷請求無中斷請求1:INT1:INT0 0有中斷請求有中斷請求0:INT0:INT0 0為電平觸發(fā)為電平觸發(fā)1:INT1:INT0 0為邊沿觸發(fā)為邊沿觸發(fā)(一)中斷源及相關(guān)的專用寄
55、存器(一)中斷源及相關(guān)的專用寄存器2 2、定時(shí)器控制寄存器、定時(shí)器控制寄存器TCONTCON 當(dāng)定時(shí)器T0或T1定時(shí)到或計(jì)數(shù)滿時(shí)(即由全“1”變?yōu)槿?”),溢出標(biāo)志TF0或TF1被硬件置位,若中斷是開放的,即可向CPU發(fā)出中斷請求。 CPU響應(yīng)此中斷時(shí)由內(nèi)部硬件自動(dòng)將標(biāo)志TF0或TF1清“0”,控制轉(zhuǎn)到相應(yīng)中斷入口。注意:注意:TFTF0 0或或TFTF1 1可由軟件讀寫,軟件寫入與硬件可由軟件讀寫,軟件寫入與硬件 置位、復(fù)位效果相同。置位、復(fù)位效果相同。定時(shí)器T0、T1中斷(一)中斷源及相關(guān)的專用寄存器(一)中斷源及相關(guān)的專用寄存器(一)中斷源及相關(guān)的專用寄存器(一)中斷源及相關(guān)的專用寄存
56、器2 2、定時(shí)器控制寄存器、定時(shí)器控制寄存器TCONTCON外部中斷INT0、INT1外部中斷有兩種觸發(fā)方式有兩種觸發(fā)方式: 在邊沿觸發(fā)方式下,有專門的中斷請求標(biāo)在邊沿觸發(fā)方式下,有專門的中斷請求標(biāo)志志IEIE0 0、IEIE1 1,當(dāng),當(dāng)CPUCPU響應(yīng)時(shí),內(nèi)部硬件自動(dòng)將響應(yīng)時(shí),內(nèi)部硬件自動(dòng)將IEIE0 0或或IEIE1 1清清“0”0”,控制轉(zhuǎn)到相應(yīng)的中斷入口。沿沿(一)中斷源及相關(guān)的專用寄存器(一)中斷源及相關(guān)的專用寄存器3 3、串行口控制寄存器、串行口控制寄存器SCONSCON SCON的結(jié)構(gòu)如下圖所示,其中RI/TI是串行口接收/發(fā)送中斷標(biāo)志 0:無接收中斷1:有接收中斷0:無發(fā)送中
57、斷1:有發(fā)送中斷在串行口一節(jié)中介紹(一)中斷源及相關(guān)的專用寄存器(一)中斷源及相關(guān)的專用寄存器3 3、串行口控制寄存器、串行口控制寄存器SCONSCON R I R I 接接收中斷標(biāo)志。 當(dāng)串行口接收完一幀數(shù)據(jù),該標(biāo)志置“1”, CPU響應(yīng)串行口中斷后內(nèi)部硬件不清除,必須通必須通過軟件清過軟件清“0”0”。(一)中斷源及相關(guān)的專用寄存器(一)中斷源及相關(guān)的專用寄存器3 3、串行口控制寄存器、串行口控制寄存器SCONSCON T I T I 發(fā)發(fā)送中斷標(biāo)志。 當(dāng)串行口發(fā)送完一幀數(shù)據(jù),該標(biāo)志置“1”,CPU響應(yīng)串行口中斷后內(nèi)部硬件不清除,必須通必須通過軟件清過軟件清“0”0”。(一)中斷源及相關(guān)的
58、專用寄存器(一)中斷源及相關(guān)的專用寄存器3 3、串行口控制寄存器、串行口控制寄存器SCONSCON注意注意:RI、TI的中斷入口都是0023H,故CPU響應(yīng)后轉(zhuǎn)入0023H開始執(zhí)行服務(wù)程序,首先必須判斷是RI中斷還是TI中斷,然后進(jìn)行相應(yīng)服務(wù)。 在返回主程序之前需用軟件在返回主程序之前需用軟件清除清除RIRI或或TITI,否則會出現(xiàn)一次請求多次響應(yīng)的錯(cuò)誤。(一)中斷源及相關(guān)的專用寄存器(一)中斷源及相關(guān)的專用寄存器4 4、關(guān)于外部中斷觸發(fā)方式的說明、關(guān)于外部中斷觸發(fā)方式的說明 電平觸發(fā)方式電平觸發(fā)方式 CPU在每個(gè)機(jī)器周期的S5P2采樣INT0和INT1的輸入電平,在電平觸發(fā)方式下,單片機(jī)中在
59、電平觸發(fā)方式下,單片機(jī)中沒有專門的中斷請求標(biāo)志沒有專門的中斷請求標(biāo)志,外部中斷申請觸發(fā)器的狀態(tài)隨著CPU在每個(gè)機(jī)器周期采樣到的外部中斷輸入線的電平變化而變化,同時(shí)單片機(jī)響應(yīng)中斷后,也不能自動(dòng)清除請求信號。(一)中斷源及相關(guān)的專用寄存器(一)中斷源及相關(guān)的專用寄存器4 4、關(guān)于外部中斷觸發(fā)方式的說明、關(guān)于外部中斷觸發(fā)方式的說明對觸發(fā)信號的要求對觸發(fā)信號的要求: 觸發(fā)信號低電平必須保持足夠長足夠長的時(shí)間,直到CPU響應(yīng)為止; 但持續(xù)時(shí)間亦不能太長不能太長,在中斷返回之前必須撤去。 電平觸發(fā)方式電平觸發(fā)方式(一)中斷源及相關(guān)的專用寄存器(一)中斷源及相關(guān)的專用寄存器4 4、關(guān)于外部中斷觸發(fā)方式的說明
60、、關(guān)于外部中斷觸發(fā)方式的說明 電平觸發(fā)方式電平觸發(fā)方式 解決這個(gè)問題的方法有兩種解決這個(gè)問題的方法有兩種: 一是用具有相應(yīng)功能的接口芯片一是用具有相應(yīng)功能的接口芯片,如8255在選通輸入方式時(shí),當(dāng)外部數(shù)據(jù)被選通到其數(shù)據(jù)輸入寄存器時(shí),INTR變高,向80C51單片機(jī)發(fā)中斷請求,當(dāng)單片機(jī)讀取8255輸入數(shù)據(jù)寄存器中的內(nèi)容后,INTR自動(dòng)變低,INTX變高,撤消中斷請求。80C51(一)中斷源及相關(guān)的專用寄存器(一)中斷源及相關(guān)的專用寄存器4 4、關(guān)于外部中斷觸發(fā)方式的說明、關(guān)于外部中斷觸發(fā)方式的說明 另一種方法是在單片機(jī)之外增設(shè)一個(gè)請求標(biāo)志另一種方法是在單片機(jī)之外增設(shè)一個(gè)請求標(biāo)志(使用觸發(fā)器),如
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《科匠企業(yè)號介紹》課件
- DBJ51-T 190-2022 四川省裝配式支吊架抗震技術(shù)標(biāo)準(zhǔn)
- 2024年大學(xué)創(chuàng)新創(chuàng)業(yè)工作總結(jié)
- 《我的時(shí)間管理分享》課件
- 《村鎮(zhèn)銀行介紹》課件
- 新媒體春分營銷策略
- 酒店前臺話務(wù)員工作總結(jié)
- 企業(yè)生涯規(guī)劃圖譜
- 2023-2024年項(xiàng)目部安全培訓(xùn)考試題及答案往年題考
- 2023年-2024年項(xiàng)目部管理人員安全教育培訓(xùn)試題及答案(各地真題)
- 用人單位職業(yè)病危害現(xiàn)狀評價(jià)技術(shù)導(dǎo)則
- 中建一局質(zhì)量考核評價(jià)辦法
- 民辦非企業(yè)單位會計(jì)報(bào)表(會民非表010203)
- 口腔頜面系統(tǒng)解剖骨
- 川骨香-川古香手撕鴨配方及制作方法
- 深圳市排水管網(wǎng)維護(hù)管理質(zhì)量
- 變電站二次設(shè)計(jì)規(guī)范
- 能見度不良時(shí)船舶航行須知
- 實(shí)習(xí)證明、實(shí)習(xí)證明表(模板)2頁
- 目視化管理實(shí)施計(jì)劃方案
- 晉城煤業(yè)集團(tuán)寺河礦井東區(qū)開采設(shè)計(jì)(學(xué)校要求版本)
評論
0/150
提交評論