![n第四章80C51單片機(jī)的功能_第1頁](http://file4.renrendoc.com/view/9e63ac41f158f577c38ce69c06adaf62/9e63ac41f158f577c38ce69c06adaf621.gif)
![n第四章80C51單片機(jī)的功能_第2頁](http://file4.renrendoc.com/view/9e63ac41f158f577c38ce69c06adaf62/9e63ac41f158f577c38ce69c06adaf622.gif)
![n第四章80C51單片機(jī)的功能_第3頁](http://file4.renrendoc.com/view/9e63ac41f158f577c38ce69c06adaf62/9e63ac41f158f577c38ce69c06adaf623.gif)
![n第四章80C51單片機(jī)的功能_第4頁](http://file4.renrendoc.com/view/9e63ac41f158f577c38ce69c06adaf62/9e63ac41f158f577c38ce69c06adaf624.gif)
![n第四章80C51單片機(jī)的功能_第5頁](http://file4.renrendoc.com/view/9e63ac41f158f577c38ce69c06adaf62/9e63ac41f158f577c38ce69c06adaf625.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第四章80C51單片機(jī)的功能單元
基本內(nèi)容4.1 并行I/O接口4.1.1P1口4.1.2P3口4.1.3P2口4.1.4P0口4.2 定時(shí)器/計(jì)數(shù)器4.2.1概述4.2.2定時(shí)器/計(jì)數(shù)器T0、T1第四章80C51單片機(jī)的功能單元
4.2.3定時(shí)器/計(jì)數(shù)器T24.2.4看門狗4.2.5定時(shí)器/計(jì)數(shù)器的編程和使用4.3 串行接口4.4 中斷系統(tǒng)4.4.1中斷、中斷源及中斷優(yōu)先級(jí)4.4.2中斷的控制和操作4.4.3中斷的響應(yīng)過程和中斷矢量地址
第四章80C51單片機(jī)的功能單元
4.1并行I/O接口80C51共有四個(gè)8位的并行雙向口,計(jì)有32根輸入/輸出(I/O)口線。各口的每一位均由鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器所組成。由于它們在結(jié)構(gòu)上的一些差異,故各口的性質(zhì)和功能也就有了差異。它們之間的異同列于表4--1。表4—180C51并行I/O接口的比較I/O口P0口P1口P2口P3口位數(shù)8888性質(zhì)真正雙向口準(zhǔn)雙向口準(zhǔn)雙向口準(zhǔn)雙向口功能I/O口替代功能I/O口替代功能I/O口替代功能I/O口替代功能SFR字節(jié)地址80H90HA0HB0H地址范圍80H~87H90H~97HA0H~A7HB0H~B7H驅(qū)動(dòng)能力8個(gè)TTL負(fù)載4個(gè)TTL負(fù)載4個(gè)TTL負(fù)載4個(gè)TTL負(fù)載
I/O口
P0口P1口P2口P3口替代功能程序存儲(chǔ)器、片外數(shù)據(jù)存儲(chǔ)器低8位地址及8位數(shù)據(jù)CTC2T2、T2EX(CTC2僅80C52中有)串行口程序存儲(chǔ)器、片外數(shù)據(jù)存儲(chǔ)器高8位地址串行口:RXDTXD中斷:INT0INT1CTC0、1:T0、T1片外數(shù)據(jù)存儲(chǔ)器:WRRD第四章80C51單片機(jī)的功能單元
下面按照各口的結(jié)構(gòu)由簡而繁的順序加以介紹。4.1.1P1口P1口是一個(gè)8位口,可以字節(jié)訪問也可位訪問,其字節(jié)訪問地址為90H,位訪問地址為90H~97H。位結(jié)構(gòu)與工作過程分P1口的位結(jié)構(gòu)如圖4--1所示,內(nèi)包含:輸出鎖存器、輸入緩沖器BUF1(讀引腳)、BUF2(讀鎖存器)以及由FET晶體管Q0與上拉電阻組成的輸出/輸入驅(qū)動(dòng)器。第四章80C51單片機(jī)的功能單元
圖4---1P1口的位結(jié)構(gòu)原理圖第四章80C51單片機(jī)的功能單元
P1口的工作過程分析如下:①P1.i位作輸出口用時(shí):CPU輸出0時(shí),D=0,Q=0,Q=1,晶體管Q0導(dǎo)通,A點(diǎn)被下拉為低電平,即輸出0;CPU輸出1時(shí),D=1,Q=1,Q=0,晶體管Q0截止,A點(diǎn)被上拉為高電平,即輸出1。②P1.i位作輸入口用時(shí):先向P1.i位輸出高電平,使A點(diǎn)提升為高電平,此操作稱為設(shè)置P1.i為輸入線。若外設(shè)輸入為1時(shí),A點(diǎn)為高電平,由BUF1讀入總線后,B點(diǎn)也為高電平;若外設(shè)輸入為0時(shí),A點(diǎn)為低電平,由BUF1讀入總線后,B點(diǎn)也為低電平。第四章80C51單片機(jī)的功能單元
2P1口的特點(diǎn)①輸出鎖存,輸出時(shí)沒有條件;②輸入緩沖,輸入時(shí)有條件,即需要先將該口設(shè)為輸入狀態(tài),先輸出1;③工作過程中無高阻懸浮狀態(tài),也就是該口不是輸入態(tài)就是輸出態(tài)。具有這種特性的口不屬于“真正”的雙向口,而被稱為“準(zhǔn)”雙向口。第四章80C51單片機(jī)的功能單元
這里需要注意的是,若在輸入操作之前不將A點(diǎn)設(shè)置為高電平(即先向該口線輸出1),如果A點(diǎn)電平為低電平時(shí),則外設(shè)輸入的任何信號(hào)均被A點(diǎn)拉為低電平,亦即此時(shí)外設(shè)的任何信號(hào)都輸不進(jìn)來。更為嚴(yán)重的是,A點(diǎn)為低電平,而外設(shè)為高電平時(shí),外設(shè)的高電平通過Q0強(qiáng)迫下拉為低電平,將可能有很大的電流流過Q0而將它燒壞。P1口能驅(qū)動(dòng)4個(gè)TTL負(fù)載。第四章80C51單片機(jī)的功能單元
3P1口的操作字節(jié)操作和位操作CPU對于P1口不僅可以作為一個(gè)8位口(字節(jié))來操作,也可以按位來操作。有關(guān)字節(jié)操作的指令有:輸出MOVP1,A;(P1)←(A)MOVP1,#data;(P1)←#dataMOVP1,direct;(P1)←(direct)
輸入MOVA,P1;(A)←(P1)MOVdirect,P1;(direct)←(P1)第四章80C51單片機(jī)的功能單元
有關(guān)位操作的指令有:置位、清除SETBP1.i;P1.i←1CLRP1.i;P1.i←0輸入、輸出MOVP1.i,C;P1.i←CYMOVC,P1.i;CY←P1.I判跳JBP1.i,rel;P1.i=1,跳轉(zhuǎn)JBCP1.i,rel;P1.i=0,跳轉(zhuǎn)且P1.i←0邏輯運(yùn)算ANLC,P1.i;CY←(P1.i·CY)ORLC,P1.i;CY←(P1.i+CY)其中:P1.i中的i=0,…,7。第四章80C51單片機(jī)的功能單元
因此,P1口不僅可以以8位一組進(jìn)行輸入、輸出操作,還可以逐位分別定義各口線為輸入線或輸出線。例如:ORLP1,#0000,0010B可以使P1.1位口線輸出1,而使其余各位不變。ANLP1,#1111,1101B可以使P1.1位口線輸出0,而使其余各位不變。讀引腳操作和讀鎖存器操作
從P1口的位結(jié)構(gòu)圖中可以看出,有兩種讀口的操作:一種是讀引腳操作,一種是讀鎖存器操作。第四章80C51單片機(jī)的功能單元
在響應(yīng)CPU輸出的讀引腳信號(hào)時(shí),端口本身引腳的電平值通過緩沖器BUF1進(jìn)入內(nèi)部總線。這種類型的指令,執(zhí)行之前必須先將端口鎖存器置1,使A點(diǎn)處于高電平,否則會(huì)損壞引腳,而且也使信號(hào)無法讀出,已于前述。這種類型的指令有:MOVA,P1;(A)←(P1)MOVdirect,P1;(direct)←(P1)第四章80C51單片機(jī)的功能單元
在執(zhí)行讀鎖存器的指令時(shí),CPU首先完成將鎖存器的值通過緩沖器BUF2讀入內(nèi)部,進(jìn)行修改,然后重新寫到鎖存器中去,這就是“讀-修改-寫”指令。這種類型的指令包含所有的口的邏輯操作(ANL、ORL、XRL)和位操作(JBC、CPL、MOV、SETB、CLR等)指令。第四章80C51單片機(jī)的功能單元
讀鎖存器操作可以避免一些錯(cuò)誤,如用P1.i去驅(qū)動(dòng)晶體管的基極。當(dāng)對P1.i寫入一個(gè)1之后,晶體管導(dǎo)通。若此時(shí)CPU接著讀該位引腳的值,即晶體管基極的值時(shí),為0;但是正確的值應(yīng)該是1,這可從讀鎖存器得到。第四章80C51單片機(jī)的功能單元
4關(guān)于口操作的時(shí)序在執(zhí)行改變端口鎖存器內(nèi)容的指令時(shí),新的內(nèi)容在指令執(zhí)行的最后一個(gè)周期的S6P2時(shí)傳送到口的鎖存器內(nèi)。然而口鎖存器僅在任何周期的P1時(shí)才采樣端口鎖存器(緩沖器),在P2時(shí)輸出鎖存器的值并保持P1時(shí)所采樣到的內(nèi)容。第四章80C51單片機(jī)的功能單元
因此,S6P2時(shí)寫入端口鎖存器的新數(shù)值直到下一個(gè)周期的P1時(shí)被采樣到,即只有在下一個(gè)機(jī)器周期的S1P1時(shí),才真正出現(xiàn)在引腳上。5P1口的多功能線在80C52中,P1.0和P1.1口線是多功能的,即除作一般雙向I/O口線之外,這兩根口線還具有下列功能:第四章80C51單片機(jī)的功能單元
P1.0——定時(shí)器/計(jì)數(shù)器2的外部輸入端T2;P1.1——定時(shí)器/計(jì)數(shù)器2的外部控制端T2EX。這時(shí),該兩位的結(jié)構(gòu)與P3口的位結(jié)構(gòu)相當(dāng)。關(guān)于P1.0和P1.1的功能在定時(shí)器/計(jì)數(shù)器2中敘述。第四章80C51單片機(jī)的功能單元
4.1.2P3口P3口是一個(gè)多功能的8位口,可以字節(jié)訪問也可位訪問,其字節(jié)訪問地址為B0H,位訪問地址為B0H~B7H。1位結(jié)構(gòu)與工作過程分析
位結(jié)構(gòu)P3口的位結(jié)構(gòu)如圖4---2所示。從P3口的位結(jié)構(gòu)圖中可以看出,它與P1的口位結(jié)構(gòu)之間的區(qū)別在于:第四章80C51單片機(jī)的功能單元
圖4--2P3口的位結(jié)構(gòu)原理圖第四章80C51單片機(jī)的功能單元
P3口中增加了一個(gè)與非門。與非門有兩個(gè)輸入端:一個(gè)為口輸出鎖存器的Q端,另一個(gè)為替代功能的控制輸出。與非門的輸出端控制輸出FET管Q0。
輸出鎖存器不是從端而是從Q端引出。有兩個(gè)輸入緩沖器,替代輸入功能取自第一個(gè)緩沖器的輸出端;I/O口的通用輸入信號(hào)取自第二個(gè)緩沖器的輸出端。第四章80C51單片機(jī)的功能單元
(2)輸出工作過程分析①當(dāng)替代輸出功能B點(diǎn)置1時(shí),輸出鎖存器的輸出可以順利通到引腳P3.i。其工作狀況與P1口相類似。這時(shí)P3口的工作狀態(tài)為一I/O口,顯然此時(shí)該口具有準(zhǔn)雙向口的性質(zhì)。第四章80C51單片機(jī)的功能單元
②當(dāng)輸出鎖存器的輸出置1時(shí),替代輸出功能可以順利通到引腳P3.i。若替代輸出為0時(shí),因與非門的C點(diǎn)已置1,現(xiàn)B點(diǎn)為0,故與非門的輸出為1,使Q0導(dǎo)通,從而使A點(diǎn)也為0。若替代輸出為1時(shí),與非門的輸出為1,Q0截止,從而使A點(diǎn)也為高電平。這時(shí)P3口的工作狀態(tài)處于替代輸出功能狀態(tài)。第四章80C51單片機(jī)的功能單元
從上述分析可以看出,不論是替代輸出還是替代輸入功能時(shí),輸出鎖存器的輸出置1是必需的。因此,P3口不論作替代功能輸入,還是作替代功能輸出,甚至作一般I/O的輸入功能時(shí),都需要向該口位輸出1。這一點(diǎn)特別應(yīng)該引起注意。
第四章80C51單片機(jī)的功能單元
2
P3口的功能和特點(diǎn)與P1口不同,P3口是一個(gè)多功能口。可作I/O口使用,為準(zhǔn)雙向口。這方面的功能與P1口一樣。既可以字節(jié)操作,也可以位操作;既可以8位口操作,也可以逐位定義口線為輸入線或輸出線;既可以讀引腳,也可以讀鎖存器,實(shí)現(xiàn)“讀—修改—輸出”操作。
可以作為替代功能的輸入、輸出。替代輸入功能:P3.0——RXD,
串行輸入口。第四章80C51單片機(jī)的功能單元
P3.2——INT0,
外部中斷0的請求。P3.3——INT1,
外部中斷1的請求。P3.4——T0,
定時(shí)器/計(jì)數(shù)器0外部計(jì)數(shù)脈沖輸入。P3.5——T1,
定時(shí)器/計(jì)數(shù)器1外部計(jì)數(shù)脈沖輸入。替代輸出功能:第四章80C51單片機(jī)的功能單元
P3.1——TXD,
串行輸出口。P3.6——WR,
外部數(shù)據(jù)存儲(chǔ)器寫選通,輸出,低電平有效。P3.7——RD,
外部數(shù)據(jù)存儲(chǔ)器讀選通,輸出,低電平有效。
(3)P3口能驅(qū)動(dòng)4個(gè)TTL負(fù)載。
第四章80C51單片機(jī)的功能單元
4.1.3P2口P2口是一個(gè)多功能的8位口,可以字節(jié)訪問也可位訪問,其字節(jié)訪問地址為A0H,位訪問地址為A0H~A7H。1位結(jié)構(gòu)與工作過程分析位結(jié)構(gòu)與工作過程
P2口位結(jié)構(gòu)示于圖4--3。第四章80C51單片機(jī)的功能單元
它與P1口位結(jié)構(gòu)之間的區(qū)別在于:①P2口的位結(jié)構(gòu)中增加了一個(gè)多路開關(guān)。多路開關(guān)的輸入有兩個(gè):一個(gè)是口輸出鎖存器的輸出端Q;一個(gè)是地址寄存器(PC或DPTR)的高位輸出端。多路開關(guān)的輸出經(jīng)反相器反相后去控制輸出FETQ0。多路開關(guān)的切換由內(nèi)部控制信號(hào)控制。②輸出鎖存器的輸出端是Q而不是,這樣多路開關(guān)之后接反相器就很好理解了。第四章80C51單片機(jī)的功能單元
圖4---3P2口的位結(jié)構(gòu)原理圖第四章80C51單片機(jī)的功能單元
(2)工作過程分析①
在內(nèi)部控制信號(hào)的作用下,多路開關(guān)的輸入投向輸出鎖存器的輸出(C點(diǎn))側(cè),這樣多路開關(guān)將接通輸出鎖存器。若經(jīng)由內(nèi)部總線輸出0,輸出鎖存器的Q端為0,信號(hào)經(jīng)多路開關(guān)和反相器后輸出1,Q0導(dǎo)通,A點(diǎn)為0,輸出低電平;若經(jīng)由內(nèi)部總線輸出1,輸出鎖存器的Q端為1,反相器后輸出0,Q0截止,A點(diǎn)為1,輸出高電平。
這時(shí)P2口的工作狀態(tài)是I/O口狀態(tài)。第四章80C51單片機(jī)的功能單元
②
在內(nèi)部控制信號(hào)的作用下,多路開關(guān)的輸入投向地址輸出(B點(diǎn))側(cè),這樣多路開關(guān)將接通地址寄存器輸出。同樣可以知道,A點(diǎn)的電平將隨地址輸出的0、1而1、0地變化。
這時(shí)P2口的工作狀態(tài)是輸出高8位地址。
第四章80C51單片機(jī)的功能單元
2
P2口的功能和特點(diǎn)從上述工作過程的分析中可以看出,P2口是一個(gè)雙功能的口:(1)作I/O口使用時(shí),P2口為一準(zhǔn)雙向口,功能與P1口一樣。(2)作地址輸出時(shí),P2口可以輸出程序存儲(chǔ)器或片外數(shù)據(jù)存儲(chǔ)器的高8位地址,與P0口輸出的低地址一起構(gòu)成16位地址線,從而可分別尋址64KB的程序存儲(chǔ)器或片外數(shù)據(jù)存儲(chǔ)器。地址線是8位一起自動(dòng)輸出的,不能像I/O口線逐位定義。(3)P2口能驅(qū)動(dòng)4個(gè)TTL負(fù)載。第四章80C51單片機(jī)的功能單元
3
P2口使用中注意的問題(1)由于P2口的輸出鎖存功能,在取指周期內(nèi)或外部數(shù)據(jù)存儲(chǔ)器讀、寫選通期間,輸出的高8位地址是鎖存的,故無需外加地址鎖存器。(2)在系統(tǒng)中如果外接有程序存儲(chǔ)器,由于訪問片外程序存儲(chǔ)器的連續(xù)不斷的取指操作,P2口需要不斷送出高位地址,這時(shí)P2口的全部口線均不宜再作I/O口使用。(3)在無外接程序存儲(chǔ)器而有片外數(shù)據(jù)存儲(chǔ)器的系統(tǒng)中,P2口使用可分為兩種情況:第四章80C51單片機(jī)的功能單元
①
若片外數(shù)據(jù)存儲(chǔ)器的容量≤256B:可使用“MOVXA,@Ri”及“MOVX@Ri,A”類指令訪問片外數(shù)據(jù)存儲(chǔ)器,這時(shí)P2口不輸出地址,P2口仍可作為I/O口使用;②
若片外數(shù)據(jù)存儲(chǔ)器的容量≥256B:
這時(shí)使用“MOVXA,@DPTR”及“MOVX@DPTR,A”類指令訪問片外數(shù)據(jù)存儲(chǔ)器,P2口需輸出高8位地址。在片外數(shù)據(jù)存儲(chǔ)器讀、寫選通期間,P2口引腳上鎖存高8位地址信息,但是在選通結(jié)束后,P2口內(nèi)原來鎖存的內(nèi)容又重新出現(xiàn)在引腳上。
第四章80C51單片機(jī)的功能單元
此時(shí)可以根據(jù)片外數(shù)據(jù)存儲(chǔ)器讀、寫選通的頻繁程度,有限制地將P2口作I/O口使用。
在片外數(shù)據(jù)存儲(chǔ)器容量不太大的情況下,也可從軟件上設(shè)法,只利用P1、P3甚至P2口中的某幾根口線送高位地址,從而保留P2口的全部或部分口線作I/O口用。注意,這時(shí)使用的是“MOVXA,@Ri”及“MOVX@Ri,A”類訪問指令,高位地址不再是自動(dòng)送出的,而要通過程序設(shè)定。
第四章80C51單片機(jī)的功能單元
4.1.4P0口P0口是一個(gè)多功能的8位口,可以字節(jié)訪問也可位訪問,其字節(jié)訪問地址為80H,位訪問地址為80H~87H。1位結(jié)構(gòu)與工作過程分析位結(jié)構(gòu)P0口位結(jié)構(gòu)示于圖4--4。第四章80C51單片機(jī)的功能單元
圖4—4P0口的位結(jié)構(gòu)原理圖第四章80C51單片機(jī)的功能單元
P0口的位結(jié)構(gòu)與P1口有明顯區(qū)別:①P0口中增加了一個(gè)多路開關(guān):多路開關(guān)的輸入有兩個(gè),地址/數(shù)據(jù)輸出;輸出鎖存器的輸出。多路開關(guān)的輸出用于控制輸出FETQ0的導(dǎo)通和截止。多路開關(guān)的切換由內(nèi)部控制信號(hào)控制。②P0口的輸出上拉電路與P1口完全不同:P0口的上拉電路導(dǎo)通和截止受內(nèi)部控制信號(hào)和地址/數(shù)據(jù)信號(hào)共同(相“與”)來控制。第四章80C51單片機(jī)的功能單元
(2)工作過程分析①當(dāng)內(nèi)部控制信號(hào)置1時(shí),多路開關(guān)接通地址/數(shù)據(jù)輸出端。當(dāng)?shù)刂?數(shù)據(jù)輸出線置1時(shí),控制上拉電路的“與”門輸出為1,上拉FET導(dǎo)通,同時(shí)地址/數(shù)據(jù)輸出通過反相器輸出0,控制下拉FET截止,這樣A點(diǎn)電位上拉,地址/數(shù)據(jù)輸出線為1。第四章80C51單片機(jī)的功能單元
當(dāng)?shù)刂?數(shù)據(jù)輸出線置0時(shí),“與”門輸出為0,上拉FET截止,同時(shí)地址/數(shù)據(jù)輸出通過反相器輸出1,控制下拉FET導(dǎo)通,這樣A點(diǎn)電位下拉,地址/數(shù)據(jù)輸出線為0。第四章80C51單片機(jī)的功能單元
通過上述分析可以看出,此時(shí)的輸出狀態(tài)隨地址/數(shù)據(jù)線而變。因此,P0口可以作為地址/數(shù)據(jù)復(fù)用總線使用。這時(shí)上下兩個(gè)FET處于反相,構(gòu)成了推拉式的輸出電路,其負(fù)載能力大大增加。此時(shí)的P0口相當(dāng)一個(gè)雙向口。第四章80C51單片機(jī)的功能單元
②當(dāng)內(nèi)部控制信號(hào)置0時(shí),多路開關(guān)接通輸出鎖存器的端。這時(shí)明顯地可以看出兩點(diǎn):·由于內(nèi)部控制信號(hào)為0,與門關(guān)閉,上拉FET截止,形成P0口的輸出電路為漏極開路輸出;·輸出鎖存器的端引至下拉FET柵極,因此P0口的輸出狀態(tài)由下拉電路決定。在P0口作輸出口用時(shí),若P0i輸出1,輸出鎖存器的端為0,下拉FET截止,這時(shí)P0i為漏極開路輸出;若P0.i輸出0,輸出鎖存器的端為1,下拉FET導(dǎo)通,P0.i輸出低電平。第四章80C51單片機(jī)的功能單元
在P0口作輸入口用時(shí),為了使P0.i能正確讀入數(shù)據(jù),必須先使P0i鎖存器置1。這樣,下拉FET也截止,P0.i處于懸浮狀態(tài)。A點(diǎn)的電平由外設(shè)的電平而定,通過輸入緩沖器讀入CPU。這時(shí)P0口相當(dāng)于一個(gè)高阻抗的輸入口。2P0口的功能和特點(diǎn)(1)作I/O口使用。相當(dāng)于一個(gè)真正的雙向口:輸出鎖存、輸入緩沖,但輸入時(shí)需先將口置1;每根口線可以獨(dú)立定義為輸入或輸出。它具有雙向口的一切特點(diǎn)。第四章80C51單片機(jī)的功能單元
與P1及其它口的區(qū)別是,輸出時(shí)為漏極開路輸出,與NMOS的電路接口時(shí)要用電阻上拉;輸入時(shí)為懸浮狀態(tài),為一個(gè)高阻抗的輸入口。(2)作地址/數(shù)據(jù)復(fù)用總線用。此時(shí)P0口為一個(gè)準(zhǔn)雙向口。但是沒有上拉電阻,作數(shù)據(jù)輸入時(shí),口也不是懸浮狀態(tài)。作地址/數(shù)據(jù)復(fù)用總線用時(shí),口不能逐位定義為輸入/輸出。作數(shù)據(jù)總線用,輸入/輸出8位數(shù)據(jù);作地址總線用,輸出低8位地址。當(dāng)P0口作地址/數(shù)據(jù)復(fù)用總線用之后,就再也不能作I/O口使用了。第四章80C51單片機(jī)的功能單元
現(xiàn)時(shí)的許多仿真系統(tǒng)中,均以P0口作地址/數(shù)據(jù)復(fù)用總線使用,因而仿真I/O口的功能喪失。這一點(diǎn)特別應(yīng)該注意。(3)P0口能驅(qū)動(dòng)8個(gè)TTL負(fù)載。第四章80C51單片機(jī)的功能單元
4.2定時(shí)器/計(jì)數(shù)器4.2.1概述定時(shí)器/計(jì)數(shù)器(timer/counter)是單片機(jī)中重要部件,其工作方式靈活、編程簡單,使用它對減輕CPU的負(fù)擔(dān)和簡化外圍電路都有很大好處。80C51包含有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器:定時(shí)器/計(jì)數(shù)器T0和定時(shí)器/計(jì)數(shù)器T1;80C52包含有三個(gè)16位的定時(shí)器/計(jì)數(shù)器:定時(shí)器/計(jì)數(shù)器T0、定時(shí)器/計(jì)數(shù)器T1和定時(shí)/計(jì)數(shù)器T2;在80C51系列的部分產(chǎn)品(80C552)中,還包含有一個(gè)用做看門狗的8位定時(shí)器(T3)。第四章80C51單片機(jī)的功能單元
定時(shí)器/計(jì)數(shù)器的核心是一個(gè)加一計(jì)數(shù)器,其基本功能是加1功能。①在單片機(jī)的T0、T1或T2引腳上施加一個(gè)1到0的跳變,計(jì)數(shù)器增1,即是計(jì)數(shù)功能;②在單片機(jī)內(nèi)部對機(jī)器周期或其分頻進(jìn)行計(jì)數(shù),從而得到定時(shí),這就是定時(shí)功能。在單片機(jī)中,定時(shí)功能和計(jì)數(shù)功能的設(shè)定和控制都是通過軟件來進(jìn)行的。第四章80C51單片機(jī)的功能單元
4.2.2定時(shí)器/計(jì)數(shù)器T0、T11定時(shí)器/計(jì)數(shù)器T0、T1的內(nèi)部結(jié)構(gòu)定時(shí)器/計(jì)數(shù)器T0、T1的內(nèi)部結(jié)構(gòu)簡圖示于圖4--5中。從圖中可以看出,定時(shí)器/計(jì)數(shù)器T0、T1由以下幾部分組成:①計(jì)數(shù)器TH0、TL0和TH1、TL1;②特殊功能寄存器TMOD、TCON;③時(shí)鐘分頻器;④輸入引腳T0、T1、INT0、INT1。第四章80C51單片機(jī)的功能單元
圖4---5定時(shí)器/計(jì)數(shù)器T0、T1的內(nèi)部結(jié)構(gòu)簡圖第四章80C51單片機(jī)的功能單元
2定時(shí)器/計(jì)數(shù)器T0、T1的特殊功能寄存器(1)定時(shí)器/計(jì)數(shù)器T0、T1的方式寄存器——TMOD方式寄存器TMOD是一個(gè)逐位定義的8位寄存器,是只能字節(jié)尋址的寄存器,字節(jié)地址為89H。其格式如下
D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0第四章80C51單片機(jī)的功能單元
其中低4位定義定時(shí)器/計(jì)數(shù)器T0,高4位定義定時(shí)器/計(jì)數(shù)器T1,各位的意義如下:GATE——門控位。GATE=1時(shí),由外部中斷引腳INT0、INT1和TR0、TR1來啟動(dòng)定時(shí)器。當(dāng)INT0引腳為高電平時(shí),TR0置位,啟動(dòng)定時(shí)器T0;當(dāng)INT1引腳為高電平時(shí),TR1置位,啟動(dòng)定時(shí)器T1。GATE=0時(shí),僅由TR0和TR1置位來啟動(dòng)定時(shí)器T0和T1。第四章80C51單片機(jī)的功能單元
C/T——功能選擇位。C/T=1時(shí),選擇計(jì)數(shù)功能;C/T=0時(shí),選擇定時(shí)功能。M1、M0——方式選擇位。由于有M1和M0兩位,可以有四種工作方式,如表4--2所示。第四章80C51單片機(jī)的功能單元
表4--2定時(shí)器/計(jì)數(shù)器T0、T1的四種工作方式M1M0工作方式計(jì)數(shù)器配置00方式013位計(jì)數(shù)器01方式116位計(jì)數(shù)器10方式2自動(dòng)再裝入的8位計(jì)數(shù)器11方式3T0分為兩個(gè)8位計(jì)數(shù)器,T1作波特率發(fā)生器第四章80C51單片機(jī)的功能單元
將定時(shí)器/計(jì)數(shù)器T0、T1的方式寄存器——TMOD各位的功能綜合列入表4--3中。表4--3方式寄存器——TMOD各位的功能第四章80C51單片機(jī)的功能單元
位名稱功能D7GATE定時(shí)器/計(jì)數(shù)器T1門控位D6C/T定時(shí)/計(jì)數(shù)器T1功能選擇位C/T=1計(jì)數(shù)器,C/T=0定時(shí)器D5M1定時(shí)器/計(jì)數(shù)器T1方式選擇位D4M0定時(shí)器/計(jì)數(shù)器T1方式選擇位D3GATE定時(shí)器/計(jì)數(shù)器T0門控位D2C/T定時(shí)器/計(jì)數(shù)器T0功能選擇位C/T=1計(jì)數(shù)器,C/T=0定時(shí)器D1M1定時(shí)器/計(jì)數(shù)器T0方式選擇位D0M0定時(shí)器/計(jì)數(shù)器T0方式選擇位第四章80C51單片機(jī)的功能單元
(2)定時(shí)器/計(jì)數(shù)器T0、T1的控制寄存器——TCON控制寄存器TCON是一個(gè)逐位定義的8位寄存器,既可字節(jié)尋址也可位尋址,字節(jié)地址為88H,位尋址的地址為88H~8FH。其格式如下:位地址8FH8EH8DH8CH8BH8AH89H88H位功能TF1TR1TF0TR0IE1IT1IE0IT0第四章80C51單片機(jī)的功能單元
其中各位的意義如下:①TF1(TCON.7)——定時(shí)器/計(jì)數(shù)器T1的溢出標(biāo)志。定時(shí)器/計(jì)數(shù)器T1溢出時(shí),該位由內(nèi)部硬件置位。若中斷開放,即響應(yīng)中斷,進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清0;若中斷禁止,可用于判跳,用軟件清0。第四章80C51單片機(jī)的功能單元
②TR1(TCON.6)——定時(shí)器/計(jì)數(shù)器T1的運(yùn)行控制位。用軟件控制,置1時(shí),啟動(dòng)T1;清0時(shí),停止T1。③TF0(TCON.5)——定時(shí)器/計(jì)數(shù)器T0的溢出標(biāo)志。其意義與TF1相同。④TR0(TCON.4)——定時(shí)器/計(jì)數(shù)器T0的運(yùn)行控制位。用軟件控制,置1時(shí),啟動(dòng)T0;清0時(shí),停止T0。第四章80C51單片機(jī)的功能單元
⑤IE1(TCON.3)——外部中斷1請求標(biāo)志位。⑥IT1(TCON.2)——外部中斷1觸發(fā)類型選擇位。⑦IE0(TCON.1)——外部中斷0請求標(biāo)志位。⑧IT0(TCON.0)——外部中斷0觸發(fā)類型選擇位。TCON的低4位與中斷有關(guān),將在“中斷系統(tǒng)”一節(jié)中詳細(xì)討論。第四章80C51單片機(jī)的功能單元
復(fù)位后,TCON的所有位均清0。將定時(shí)器/計(jì)數(shù)器T0、T1的控制寄存器——TCON各位的功能綜合列入表4--4中。
第四章80C51單片機(jī)的功能單元
表4---4控制寄存器——TCON各位的功能位名稱功能D7
TF1(TCON.7)計(jì)數(shù)器T1的溢出標(biāo)志D6TR1(TCON.6)定時(shí)器/計(jì)數(shù)器T1的運(yùn)行控制位D5TF0(TCON.5)定時(shí)器/計(jì)數(shù)器T0的溢出標(biāo)志D4TR0(TCON.4)定時(shí)器/計(jì)數(shù)器T0的運(yùn)行控制位D3IE1(TCON.3)外部中斷1請求標(biāo)志位D2IT1(TCON.2)外部中斷1觸發(fā)類型選擇位D1IE0(TCON.1)外部中斷0請求標(biāo)志位D0IT0(TCON.0)外部中斷0觸發(fā)類型選擇位第四章80C51單片機(jī)的功能單元
(3)定時(shí)器/計(jì)數(shù)器T0、T1的數(shù)據(jù)寄存器——TH1、TL1和TH0、TL0定時(shí)器/計(jì)數(shù)器T0、T1各有一個(gè)16位的數(shù)據(jù)寄存器,它們都是由高8位寄存器和低8位寄存器所組成。這些寄存器不經(jīng)過緩沖,直接顯示當(dāng)前的計(jì)數(shù)值。所有這四個(gè)寄存器都是讀/寫寄存器,任何時(shí)候都可對它們進(jìn)行讀/寫操作。復(fù)位后,所有這四個(gè)寄存器全部清零。它們都只能字節(jié)尋址,相應(yīng)的字節(jié)地址見表4---5。第四章80C51單片機(jī)的功能單元
3定時(shí)器/計(jì)數(shù)器T0、T1的功能選擇定時(shí)器/計(jì)數(shù)器T0、T1的功能是通過TMOD中的C/T來選擇的。(1)定時(shí)器,設(shè)置C/T=0此時(shí),計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘脈沖,每個(gè)機(jī)器周期使寄存器的值增1。每個(gè)機(jī)器周期等于12個(gè)振蕩周期,故計(jì)數(shù)速率為振蕩周期的1/12。當(dāng)采用12MHz的晶體時(shí),計(jì)數(shù)速率為1MHz。第四章80C51單片機(jī)的功能單元
表4--5定時(shí)器/計(jì)數(shù)器T0、T1的數(shù)據(jù)寄存器的字節(jié)地址寄存器名稱字節(jié)地址TH1T1的高8位數(shù)據(jù)寄存器8DHTL1T1的低8位數(shù)據(jù)寄存器8BHTH0T0的高8位數(shù)據(jù)寄存器8CHTL0T0的低8位數(shù)據(jù)寄存器8AH第四章80C51單片機(jī)的功能單元
定時(shí)器的定時(shí)時(shí)間,與系統(tǒng)的振蕩頻率有關(guān),與計(jì)數(shù)器的長度和初值有關(guān)。(2)計(jì)數(shù)器,設(shè)置C/T=1這時(shí),通過引腳T0(P3.4)和T1(P3.5)對外部信號(hào)進(jìn)行計(jì)數(shù)。在每個(gè)機(jī)器周期的S5P2期間,CPU采樣引腳的輸入電平。若前一機(jī)器周期采樣值為1,下一機(jī)器周期采樣值為0,則計(jì)數(shù)器增1,此后的機(jī)器周期S3P1期間,新的計(jì)數(shù)值裝入計(jì)數(shù)器。所以檢測一個(gè)1到0的跳變需要兩個(gè)機(jī)器周期,故最高計(jì)數(shù)頻率為振蕩頻率的1/24。第四章80C51單片機(jī)的功能單元
4定時(shí)器/計(jì)數(shù)器T0、T1的工作方式根據(jù)對M1和M0的設(shè)定,定時(shí)器/計(jì)數(shù)器T0、T1可選擇四種不同的工作方式。定時(shí)器/計(jì)數(shù)器T0、T1的前三種工作方式(即方式0、方式1和方式2)相同,方式3的設(shè)置稍有不同,需要注意。(1)方式0當(dāng)TMOD中的M1=0、M0=0時(shí),選定方式0工作。方式0時(shí)的結(jié)構(gòu)如圖4--6所示。這種方式下,計(jì)數(shù)寄存器由13位組成,即TLx的高3位未用。第四章80C51單片機(jī)的功能單元
圖4---6方式0時(shí),定時(shí)器/計(jì)數(shù)器T0、T1的結(jié)構(gòu)簡圖第四章80C51單片機(jī)的功能單元
計(jì)數(shù)時(shí),TLx的低5位溢出后向THx進(jìn)位,THx溢出后將TFx置位,并向CPU申請中斷。當(dāng)GATE=0時(shí),A點(diǎn)為高電平,定時(shí)器/計(jì)數(shù)器的啟動(dòng)/停止由TRx決定。TRx=1,定時(shí)器/計(jì)數(shù)器啟動(dòng);TRx=0,定時(shí)器/計(jì)數(shù)器停止。當(dāng)GATE=1時(shí),A點(diǎn)的電位由INTx決定,因而B點(diǎn)的電位就由TRx和INTx決定,即定時(shí)器/計(jì)數(shù)器的啟動(dòng)/停止由TRx和INTx兩個(gè)條件決定。第四章80C51單片機(jī)的功能單元
計(jì)數(shù)溢出時(shí),TFx置位。如果,中斷允許,CPU響應(yīng)中斷并轉(zhuǎn)入中斷服務(wù)程序,由內(nèi)部硬件清TFx。TFx也可以由程序查詢和清零。(2)方式1當(dāng)TMOD中的M1=0、M0=1時(shí),選定方式1工作。方式1時(shí)的結(jié)構(gòu)如圖4--7所示。這種方式下,計(jì)數(shù)寄存器由16位組成。第四章80C51單片機(jī)的功能單元
圖4--7方式1時(shí),定時(shí)器/計(jì)數(shù)器T0、T1的結(jié)構(gòu)簡圖第四章80C51單片機(jī)的功能單元
計(jì)數(shù)時(shí),TLx溢出后向THx進(jìn)位,THx溢出后將TFx置位,并向CPU申請中斷。其它與方式0完全相同。(3)方式2當(dāng)TMOD中的M1=1、M0=0時(shí),選定方式2工作。這種方式是將16位計(jì)數(shù)寄存器分為兩個(gè)8位寄存器,組成一個(gè)可重裝入的8位計(jì)數(shù)寄存器。方式2時(shí)的結(jié)構(gòu)如圖4--8所示。第四章80C51單片機(jī)的功能單元
圖4--8方式2時(shí),定時(shí)器/計(jì)數(shù)器T0、T1的結(jié)構(gòu)簡圖第四章80C51單片機(jī)的功能單元
在方式2中,TLx作為8位計(jì)數(shù)寄存器,THx作為8位計(jì)數(shù)常數(shù)寄存器。
當(dāng)TLx計(jì)數(shù)溢出時(shí),一方面將TFx置位,并向CPU申請中斷;另一方面將THx的內(nèi)容重新裝入TLx中,繼續(xù)計(jì)數(shù)。重新裝入不影響THx的內(nèi)容,所以可以多次連續(xù)再裝入。方式2對定時(shí)控制特別有用,它可實(shí)現(xiàn)每隔預(yù)定時(shí)間發(fā)出控制信號(hào),而且特別適合于串行口波特率發(fā)生器的使用。第四章80C51單片機(jī)的功能單元
(4)方式3當(dāng)TMOD中的M1=1、M0=1時(shí),選定方式3工作。這種方式是將定時(shí)器/計(jì)數(shù)器T0分為一個(gè)8位定時(shí)器/計(jì)數(shù)器和一個(gè)8位定時(shí)器,TL0用于8位定時(shí)器/計(jì)數(shù)器,TH0用于8位定時(shí)器。方式3時(shí)定時(shí)器/計(jì)數(shù)器T0的結(jié)構(gòu)如圖4--9所示。第四章80C51單片機(jī)的功能單元
圖4---9方式3時(shí),定時(shí)器/計(jì)數(shù)器T0的結(jié)構(gòu)簡圖第四章80C51單片機(jī)的功能單元
定時(shí)器/計(jì)數(shù)器的工作與方式0時(shí)相同,只是此時(shí)的計(jì)數(shù)器為8位計(jì)數(shù)器TL0,它占用了T0的GATE、INT0、TR0、T0引腳以及中斷源等。TH0所構(gòu)成的定時(shí)器只能作為定時(shí)器用,因?yàn)榇藭r(shí)的外部引腳T0已為定時(shí)器/計(jì)數(shù)器TL0所占用。不過這時(shí)它卻占用了定時(shí)器/計(jì)數(shù)器T1的啟動(dòng)/停止控制位TR1、計(jì)數(shù)溢出標(biāo)志位TF1及中斷源。第四章80C51單片機(jī)的功能單元
在方式3下,定時(shí)器/計(jì)數(shù)器T1的結(jié)構(gòu)如圖4--10所示。此時(shí)定時(shí)器/計(jì)數(shù)器T1可選方式0、1或2。由于此時(shí)中斷源已被占用,所以僅能作為波特率發(fā)生器或其它不用中斷的地方。事實(shí)上,只在定時(shí)器/計(jì)數(shù)器T1用做波特率發(fā)生器時(shí),定時(shí)器/計(jì)數(shù)器T0才選作方式3。第四章80C51單片機(jī)的功能單元
圖4--10方式3時(shí),定時(shí)器/計(jì)數(shù)器T1的結(jié)構(gòu)簡圖第四章80C51單片機(jī)的功能單元
4.2.3定時(shí)器/計(jì)數(shù)器T280C52中有一個(gè)功能較強(qiáng)的定時(shí)器/計(jì)數(shù)器T2,它是一個(gè)16位的、具有自動(dòng)重裝載和捕獲能力的定時(shí)器/計(jì)數(shù)器。在定時(shí)器/計(jì)數(shù)器T2的內(nèi)部,除了兩個(gè)8位計(jì)數(shù)器TL2、TH2和控制寄存器T2CON及T2MOD之外,還設(shè)置有捕獲寄存器RCAP2L(低字節(jié))和RCAP2H(高字節(jié))。定時(shí)器/計(jì)數(shù)器T2的計(jì)數(shù)脈沖源都可以有兩個(gè):一個(gè)是內(nèi)部機(jī)器周期,另一個(gè)是由T2(P1.0)端輸入的外部計(jì)數(shù)脈沖。第四章80C51單片機(jī)的功能單元
輸入引腳T2(P1.0)是外部計(jì)數(shù)脈沖輸入端;輸入引腳T2EX(P1.1)是外部控制信號(hào)輸入端。1
定時(shí)器/計(jì)數(shù)器T2中的特殊功能寄存器(1)控制寄存器——T2CON控制寄存器T2CON是一個(gè)逐位定義的8位寄存器,既可字節(jié)尋址也可位尋址,字節(jié)地址為0C8H,位尋址的地址為0C8H~0CFH。其格式如下:第四章80C51單片機(jī)的功能單元
各位的含義如下:TF2(T2CON.7)——定時(shí)器/計(jì)數(shù)器T2溢出標(biāo)志。定時(shí)器T2溢出時(shí)置位,并申請中斷。只能靠軟件清除。但在波特率發(fā)生器方式下,也即RCLK=l或TCLK=l時(shí),定時(shí)器溢出不對TF2置位。
位地址0CFH0CEH0CDH0CCH0CBH0CAH0C9H0C8H位功能TF2EXF2RCLKTCLKEXEN2TR2C/T2CP/RL2第四章80C51單片機(jī)的功能單元
EXF2(T2CON.6)——定時(shí)器/計(jì)數(shù)器T2外部標(biāo)志。當(dāng)EXEN2=1,且T2EX引腳上出現(xiàn)負(fù)跳變而造成捕獲或重裝載時(shí),EXF2置位,申請中斷。這時(shí)若已允許定時(shí)器/計(jì)數(shù)器T2中斷,CPU將響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序。EXF2要靠軟件來清除。
RCLK(T2CON.5)——接收時(shí)鐘標(biāo)志??寇浖梦换蚯宄?,用以選擇定時(shí)器/計(jì)數(shù)器T2或T1作串行口接收波特率發(fā)生器。RCLK=l時(shí),用定時(shí)器/計(jì)數(shù)器T2溢出脈沖作為串行口的接收時(shí)鐘;RCLK=0時(shí),用定時(shí)器/計(jì)數(shù)器T1的溢出脈沖作接收時(shí)鐘。
第四章80C51單片機(jī)的功能單元
TCLK(T2CON.4)——發(fā)送時(shí)鐘標(biāo)志。靠軟件置位或清除,以選擇定時(shí)器/計(jì)數(shù)器T2或T1作串行口發(fā)送波特率發(fā)生器。TCLK=l時(shí),用定時(shí)器/計(jì)數(shù)器T2溢出脈沖作為串行口的發(fā)送時(shí)鐘;TCLK=0時(shí),用定時(shí)器/計(jì)數(shù)器Tl的溢出脈沖作發(fā)送時(shí)鐘。第四章80C51單片機(jī)的功能單元
EXEN2(T2CON.3)——定時(shí)器/計(jì)數(shù)器T2外部允許標(biāo)志。靠軟件設(shè)置或清除,以允許或禁止用外部信號(hào)來觸發(fā)捕獲或重裝載操作。當(dāng)EXEN2=1時(shí),若定時(shí)器/計(jì)數(shù)器T2未用作串行口的波特率發(fā)生器,則在T2EX端出現(xiàn)的信號(hào)負(fù)跳變時(shí),將造成定時(shí)器/計(jì)數(shù)器T2捕獲或重裝載,并置EXF2標(biāo)志為1,請求中斷。EXEN2=0時(shí),T2EX端的外部信號(hào)不起作用。TR2(T2CON.2)——定時(shí)器/計(jì)數(shù)器T2運(yùn)行控制位??寇浖O(shè)置或清除,以決定定時(shí)器/計(jì)數(shù)器T2是否運(yùn)行。TR2=1,啟動(dòng)定時(shí)器/計(jì)數(shù)器T2,否則停止。第四章80C51單片機(jī)的功能單元
C/T2(T2CON.1)——定時(shí)器/計(jì)數(shù)器T2的定時(shí)器方式或計(jì)數(shù)器方式選擇位??寇浖O(shè)置或清除。C/2=0,選擇定時(shí)器工作方式;C/2=1,選擇計(jì)數(shù)器工作方式,下降沿觸發(fā)。第四章80C51單片機(jī)的功能單元
CP/RL2(T2CON.0)——捕獲/重裝載標(biāo)志。用軟件設(shè)置或清除。CP/RL2=1選擇捕獲功能,這時(shí)若EXEN2=1,且T2EX端的信號(hào)負(fù)跳變時(shí),發(fā)生捕獲操作。CP/RL2=0,選擇重裝載功能,這時(shí)若定時(shí)/計(jì)數(shù)器T2溢出或在EXEN2=1條件下T2EX端信號(hào)負(fù)跳變,都會(huì)造成自動(dòng)重裝載操作。當(dāng)RCLK=l或TCLK=l時(shí),CP/RL2控制位不起作用,定時(shí)器/計(jì)數(shù)器T2被強(qiáng)制工作于重裝載方式。重裝載發(fā)生于定時(shí)器/計(jì)數(shù)器T2溢出時(shí),常用來作波特率發(fā)生器。T2CON中的各位都是可位尋址的,因此所有標(biāo)志或控制位都可以靠軟件來設(shè)置或清除。第四章80C51單片機(jī)的功能單元
(2)方式控制寄存器——T2MOD
方式控制寄存器T2MOD是80C52/54/58芯片新增添的、定時(shí)器/計(jì)數(shù)器T2的方式控制寄存器,字節(jié)地址為0C9H。其格式如下:
該寄存器現(xiàn)只定義了2位,它們的含義是:D7D6D5D4D3D2D1D0——————T2OEDCEN第四章80C51單片機(jī)的功能單元
T2OE(T2MOD.l)——定時(shí)器/計(jì)數(shù)器T2輸出允許位。當(dāng)T2OE=l時(shí),允許時(shí)鐘輸出至T2(P1.0)引腳。這一位僅對80C54/80C58有定義。DCEN(T2MOD.0)——向下計(jì)數(shù)允許位。當(dāng)DCEN=l時(shí),允許定時(shí)器/計(jì)數(shù)器T2向下計(jì)數(shù),否則向上計(jì)數(shù)。方式控制寄存器T2MOD
復(fù)位值=××××××00B第四章80C51單片機(jī)的功能單元
(3)數(shù)據(jù)寄存器——TH2、TL2定時(shí)器/計(jì)數(shù)器T2有一個(gè)16位的數(shù)據(jù)寄存器,是由高8位寄存器(TH2)和低8位寄存器(TL2)所組成。它們都只能字節(jié)尋址,相應(yīng)的字節(jié)地址為0CDH和0CCH。這兩個(gè)寄存器都是讀/寫寄存器。
復(fù)位后,所有這兩個(gè)寄存器全部清零。第四章80C51單片機(jī)的功能單元
(4)捕獲寄存器——RCAP2H、RCAP2L定時(shí)器/計(jì)數(shù)器T2中的捕獲寄存器是一個(gè)16位的數(shù)據(jù)寄存器,由高8位寄存器(RCAP2H)和低8位寄存器(RCAP2L)所組成。它們也都只能字節(jié)尋址,相應(yīng)的字節(jié)地址為0CBH和0CAH。捕獲寄存器RCAP2H和RCAP2L,用于捕獲計(jì)數(shù)器TL2、TH2的計(jì)數(shù)狀態(tài),或用來預(yù)置計(jì)數(shù)初值的。TH2、TL2和RCAP2H、RCAP2L之間接有雙向緩沖器(三態(tài)門)。復(fù)位后,所有這兩個(gè)寄存器全部清零。
第四章80C51單片機(jī)的功能單元
2定時(shí)器/計(jì)數(shù)器T2的功能選擇定時(shí)器/計(jì)數(shù)器T2有計(jì)數(shù)和定時(shí)兩種功能,由控制位C/T2決定。①C/T2=0時(shí),定時(shí)功能。TH2和TL2計(jì)的是機(jī)器周期數(shù)。每個(gè)機(jī)器周期使TL2寄存器的值增1。計(jì)數(shù)脈沖的頻率為1/12振蕩器頻率。第四章80C51單片機(jī)的功能單元
②C/T2=1時(shí),計(jì)數(shù)功能。計(jì)數(shù)脈沖自T2(Pl.0)引腳輸入,TH2和TL2作外部信號(hào)脈沖計(jì)數(shù)器用,每當(dāng)外部脈沖負(fù)跳變時(shí),計(jì)數(shù)器值增l。其工作情況和時(shí)序關(guān)系與定時(shí)器/計(jì)數(shù)器T0和T1的完全一樣,對外部計(jì)數(shù)脈沖的要求也相同。外部脈沖頻率不超過振蕩器頻率的1/24。3定時(shí)器/計(jì)數(shù)器T2的工作方式定時(shí)器/計(jì)數(shù)器T2的工作方式用控制位CP/RL2(T2CON.0)和RCLK+TCLK來選擇。定時(shí)器/計(jì)數(shù)器T2可能有三種工作方式(表46):捕獲方式、自動(dòng)重裝載方式和波特率發(fā)生器方式。第四章80C51單片機(jī)的功能單元
表46定時(shí)器/計(jì)數(shù)器T2的工作方式RCLK+TCLKCP/RL2TR2工作方式001自動(dòng)重裝載方式011捕獲方式1×1波特率發(fā)生器方式××0關(guān)閉第四章80C51單片機(jī)的功能單元
(1)捕獲方式捕獲方式是指:在一定條件下,自動(dòng)將計(jì)數(shù)器TH2和TL2的數(shù)據(jù)讀入RCAP2H和RCAP2L,亦即TH2和TL2內(nèi)容的捕獲是通過捕獲寄存器RCAP2H和RCAP2L來實(shí)現(xiàn)的。其工作原理可參見圖4--11。第四章80C51單片機(jī)的功能單元
圖411定時(shí)器/計(jì)數(shù)器T2的捕獲方式第四章80C51單片機(jī)的功能單元
當(dāng)CP/RL2=1時(shí),選擇捕獲方式。捕獲操作發(fā)生于下述兩種情況下:①定時(shí)器2的寄存器TH2和TL2溢出時(shí),打開重裝載三態(tài)緩沖器,把TH2和TL2的內(nèi)容自動(dòng)讀入到RCAP2H和RCAP2L中。同時(shí),溢出標(biāo)志TF2置1,申請中斷。第四章80C51單片機(jī)的功能單元
②當(dāng)EXEN2=1且T2EX(P1.1)端的信號(hào)有負(fù)跳變時(shí),將發(fā)生捕獲操作。同時(shí)標(biāo)志EXF2置1,申請中斷。若定時(shí)器/計(jì)數(shù)器2的中斷是被允許的,則無論發(fā)生TF2=1還是EXF2=1,CPU都會(huì)響應(yīng)中斷,此中斷向量的地址為2BH。響應(yīng)中斷后,應(yīng)靠軟件清除中斷申請,以免無休止地發(fā)生中斷。TF2和EXF2都是直接可尋址位,可采用CLRTF2和CLREXF2指令實(shí)現(xiàn)清除中斷申請的功能。第四章80C51單片機(jī)的功能單元
(2)自動(dòng)重裝載方式自動(dòng)重裝載方式是指:在一定條件下,自動(dòng)地將RCAP2H和RCAP2L的數(shù)據(jù)裝入計(jì)數(shù)器TH2和TL2中。一般說來,RCAP2H和RCAP2L在這里起預(yù)置計(jì)數(shù)初值的功能。對于8XC52,其工作原理可參見圖4--12。第四章80C51單片機(jī)的功能單元
圖4--12自動(dòng)重裝載方式第四章80C51單片機(jī)的功能單元
當(dāng)CP/RL2=0時(shí),選擇自動(dòng)重裝載方式。重裝載操作發(fā)生于下述兩種情況下:①定時(shí)器/計(jì)數(shù)器T2的寄存器TH2和TL2溢出時(shí),打開重裝載三態(tài)緩沖器,把RCAP2H和RCAP2L的內(nèi)容自動(dòng)裝載到TH2和TL2中。同時(shí),溢出標(biāo)志TF2置1,申請中斷。第四章80C51單片機(jī)的功能單元
②當(dāng)EXEN2=1且T2EX(P1.1)端的信號(hào)有負(fù)跳變時(shí),將發(fā)生重裝載操作。同時(shí)標(biāo)志EXF2置1,申請中斷。若定時(shí)器/計(jì)數(shù)器T2的中斷是被允許的,則無論發(fā)生TF2=1還是EXF2=1,CPU都會(huì)響應(yīng)中斷,此中斷向量的地址為2BH。響應(yīng)中斷后,應(yīng)靠軟件撤除中斷申請,以免無休止地發(fā)生中斷。TF2和EXF2都是直接可尋址位,可采用CLRTF2和CLREXF2指令實(shí)現(xiàn)撤除中斷申請的功能。第四章80C51單片機(jī)的功能單元
(3)波特率發(fā)生器方式當(dāng)T2CON中RCLK+TCLK=1時(shí),定時(shí)器/計(jì)數(shù)器T2將工作于波特率發(fā)生器方式,即其溢出脈沖用做串行口的時(shí)鐘。定時(shí)器/計(jì)數(shù)器T2的波特率發(fā)生器方式下的結(jié)構(gòu)圖示于圖413中。在T2CON中,RCLK選擇串行通信接收波特率發(fā)生器,TCLK選擇發(fā)送波特率發(fā)生器,因而,發(fā)送和接收的波特率可以不同。此時(shí),定時(shí)器/計(jì)數(shù)器T2的輸入時(shí)鐘可由內(nèi)部時(shí)鐘決定,也可由外部時(shí)鐘決定。
若C/T2=0,選用內(nèi)部時(shí)鐘,計(jì)數(shù)脈沖的頻率為1/2振蕩器頻率。第四章80C51單片機(jī)的功能單元
若C/T=1,選用外部時(shí)鐘,該時(shí)鐘由T2(P1.0)端輸入,每當(dāng)外部脈沖負(fù)跳變時(shí),計(jì)數(shù)器值增1。外部脈沖頻率不超過振蕩器頻率的1/24。由于脈沖溢出時(shí),RCAP2H和RCAP2L的內(nèi)容會(huì)自動(dòng)裝載到TH2和TL2中,故波特率的值還決定于RCAP2H和RCAP2L裝載初值。RCLK+TCLK還用于選擇定時(shí)器/計(jì)數(shù)器T1還是T2作串行通信的波特率發(fā)生器。由圖4--13可看出,這兩位的值用來控制兩個(gè)電子開關(guān)的位置。值為0時(shí),選用定時(shí)器/計(jì)數(shù)器T1;值為1時(shí),選用定時(shí)器/計(jì)數(shù)器T2,用做波特率發(fā)生器。第四章80C51單片機(jī)的功能單元
圖4--13定時(shí)器/計(jì)數(shù)器T2的波特率發(fā)生器方式第四章80C51單片機(jī)的功能單元
當(dāng)定時(shí)器/計(jì)數(shù)器T2用做波特率發(fā)生器時(shí),TH2的溢出不使TF2置位,不產(chǎn)生中斷。因而,當(dāng)定時(shí)器/計(jì)數(shù)器T2用做波特率發(fā)生器時(shí),沒有必要禁止中斷。當(dāng)定時(shí)器/計(jì)數(shù)器2用做波特率發(fā)生器時(shí),若EXEN2置1,則T2EX端的信號(hào)產(chǎn)生負(fù)跳變時(shí),EXF2將置1,但不會(huì)發(fā)生重裝載或捕獲操作。這時(shí),T2EX可以作為一個(gè)附加的外部中斷源。第四章80C51單片機(jī)的功能單元
在波特率發(fā)生器工作方式下,在T2計(jì)數(shù)過程中(即TR2=1之后),不能再讀/寫TH2和TL2的內(nèi)容。如果讀,則讀出的結(jié)果不會(huì)精確(因?yàn)槊總€(gè)狀態(tài)加1);如果寫,則會(huì)影響T2的溢出而使波特率不穩(wěn)定。在T2計(jì)數(shù)過程中,可以讀出但不能改寫RCAP2H和RCAP2L的內(nèi)容。需要訪問RCAP2H和RCAP2L,應(yīng)事先關(guān)閉定時(shí)器工作。第四章80C51單片機(jī)的功能單元
4.2.4看門狗看門狗(watchdog)有時(shí)又稱為定時(shí)器T3,它的作用是強(qiáng)迫單片機(jī)(微控制器)進(jìn)入復(fù)位狀態(tài),使之從硬件或軟件故障中解脫出來。即當(dāng)單片機(jī)的程序進(jìn)入了錯(cuò)誤狀態(tài)后,在一個(gè)指定的時(shí)間內(nèi),用戶程序沒有重裝定時(shí)器T3,將產(chǎn)生一個(gè)系統(tǒng)復(fù)位。第四章80C51單片機(jī)的功能單元
在80C552中,定時(shí)器T3由一個(gè)11位的分頻器和8位定時(shí)器T3組成,如圖4--14所示。T3由外部引腳EW和電源控制寄存器中的PCON.4(WLE)和PCON.1(PD)控制。EW——看門狗定時(shí)器允許,低電平有效。EW=0時(shí),允許看門狗定時(shí)器,禁止掉電方式;EW=1時(shí),禁止看門狗定時(shí)器,允許掉電方式WLE(PCON.4)——看門狗定時(shí)器允許重裝標(biāo)志,若WLE置位,定時(shí)器T3只能被軟件裝入,裝入后WLE自動(dòng)清除。第四章80C51單片機(jī)的功能單元
圖4---14看門狗(定時(shí)器T3)
第四章80C51單片機(jī)的功能單元
定時(shí)器T3的重裝和溢出,產(chǎn)生復(fù)位的時(shí)間間隔,由裝入T3的值決定。定時(shí)器T3的工作過程:在T3溢出時(shí),復(fù)位8XC552,并產(chǎn)生復(fù)位脈沖輸出至復(fù)位引腳RST。為防止系統(tǒng)復(fù)位,必須在定時(shí)器T3溢出前,通過軟件對其進(jìn)行重裝。如果發(fā)生軟件或硬件故障,將使軟件對定時(shí)器T3重裝失敗,從而T3溢出導(dǎo)致復(fù)位信號(hào)的產(chǎn)生。用這樣的方法可以在軟件失控時(shí),恢復(fù)程序的正常運(yùn)行。
例如:
watchdog使用的一段程序如下:
T3EQU0FFH;定時(shí)器T3的地址
PCONEQU87H;PCON的地址
第四章80C51單片機(jī)的功能單元
WATCH_INTVEQU156;看門狗的時(shí)間間隔
;
LCALLWATCHDOG;看門狗的服務(wù)程序
WATCHDOG:ORLPCON,#10H;允許定時(shí)器T3重裝MOVT3,#WATCHINTV;裝載定時(shí)器T3
RET第四章80C51單片機(jī)的功能單元
4.2.5定時(shí)器/計(jì)數(shù)器的編程和使用1定時(shí)器/計(jì)數(shù)器溢出率的計(jì)算定時(shí)器/計(jì)數(shù)器運(yùn)行前,在其中預(yù)先置入的常數(shù),稱為定時(shí)常數(shù)或計(jì)數(shù)常數(shù)(TC)。由于計(jì)數(shù)器是加1(向上)計(jì)數(shù)的,故而預(yù)先置入的常數(shù)均應(yīng)為補(bǔ)碼。t=Tc×(2LTC)=12/fosc(2L--TC)第四章80C51單片機(jī)的功能單元
其中:t——定時(shí)時(shí)間。Tc——機(jī)器周期。fosc——晶體振蕩器頻率。L——計(jì)數(shù)器的長度。對于T0及T1:方式0L=13213=8192方式1L=16216=65536方式2L=828=256對于T2:L=16216=65536第四章80C51單片機(jī)的功能單元
TC——定時(shí)器/計(jì)數(shù)器初值,即定時(shí)常數(shù)或計(jì)數(shù)常數(shù)。定時(shí)時(shí)間的倒數(shù)即為溢出率,即溢出率=1/t=fosc/12*1/(2L--TC)根據(jù)既定的定時(shí)時(shí)間t,計(jì)算出TC值,并將其轉(zhuǎn)換成二進(jìn)制數(shù)TCB,然后再分別送入THi、TLi(對于T0,i=0;對于T1,i=1)。
對于定時(shí)器/計(jì)數(shù)器T0、T1:方式0時(shí):TCB=TCH+TCL,TCH——高8位,TCL——低5位MOVTHi,#TCH;送高8位MOVTLi,#TCL;送低5位第四章80C51單片機(jī)的功能單元
方式1時(shí):TCB=TCH+TCL,TCH——高8位,TCL——低8位MOVTHi,#TCH;送高8位MOVTLi,#TCL;送低8位方式2時(shí):TCB——8位MOVTHi,#TCBMOVTLi,#TCB對于定時(shí)器/計(jì)數(shù)器T2:與T0、T1的方式1相同。第四章80C51單片機(jī)的功能單元
2定時(shí)器/計(jì)數(shù)器的編程定時(shí)器/計(jì)數(shù)器的編程可分為以下幾步:①寫TMOD,只能用字節(jié)尋址。設(shè)置定時(shí)器/計(jì)數(shù)器的工作方式(M1、M0)、功能選擇(C/)及是否使用門控(GATE)。②將時(shí)間常數(shù)或計(jì)數(shù)常數(shù)寫入THi及TLi,也只能用字節(jié)尋址。根據(jù)上面的計(jì)算結(jié)果寫入THi及TLi。③啟動(dòng)定時(shí)或計(jì)數(shù),即寫TCON,可用字節(jié)尋址也可用位尋址。如:第四章80C51單片機(jī)的功能單元
SETBTRi;啟動(dòng)定時(shí)器SETBTCON.4(T0)SETBTCON.6(T1)CLRTRi;停止定時(shí)器④定時(shí)器中斷開放和禁止,即寫IE(IE.7,IE.3,IE.1)。如:SETBETi;允許中斷ETiSETBEA;開放中斷CLRETi;禁止中斷ETiCLREA;關(guān)閉中斷第四章80C51單片機(jī)的功能單元
3定時(shí)器/計(jì)數(shù)器的應(yīng)用舉例例1使用定時(shí)器/計(jì)數(shù)器T0的方式0,設(shè)定1ms的定時(shí)。在P1.0引腳上產(chǎn)生周期為2ms的方波輸出。晶體振蕩器的頻率為fosc=6MHz。解:①定時(shí)常數(shù)計(jì)算
振蕩器的頻率fosc=6MHz=6×106Hz,方式0計(jì)數(shù)器長度L=13,2L=213=8192定時(shí)時(shí)間t=1ms=1×10-3s定時(shí)常數(shù)第四章80C51單片機(jī)的功能單元
TC=2L-fosc×t/12=8192-6×106×10-3/12=8192-500=7692定時(shí)常數(shù)TC轉(zhuǎn)換成二進(jìn)制數(shù)TCB=1111000001100B所以TCH=0F0H,TCL=0CH②TMOD的設(shè)定(即控制字)第四章80C51單片機(jī)的功能單元
③編程MOVTMOD,#00H;寫控制字MOVTH0,#0F0H;寫定時(shí)常數(shù)MOVTL0,#0CHSETBTR0;啟動(dòng)T0SETBET0;允許T0中斷SETBEA;開放CPU中斷AJMP$ORG000BH;T0中斷矢量地址AJMPINQP第四章80C51單片機(jī)的功能單元
ORG00××H;中斷服務(wù)程序INQP:MOVTH0,#0F0H;重寫定時(shí)常數(shù)MOVTL0,#0CHCPLP1.0;P1.0變反輸出RETI;中斷返回第四章80C51單片機(jī)的功能單元
例2.使用定時(shí)器/計(jì)數(shù)器T1的方式1,設(shè)定1ms的定時(shí)。同樣,在P1.0引腳上產(chǎn)生周期為2ms的方波輸出。晶體振蕩器的頻率為fosc=6MHz。解:①定時(shí)常數(shù)計(jì)算
振蕩器的頻率fosc=6MHz=6×106Hz,方式1計(jì)數(shù)器長度L=16,2L=216=65536第四章80C51單片機(jī)的功能單元
定時(shí)時(shí)間t=1ms=1×10-3s定時(shí)常數(shù)TC=2L-fosc×t/12=65536-6×106×10-312=65536-500=65036定時(shí)常數(shù)TC轉(zhuǎn)換成二進(jìn)制TCB=1111111000001100B=0FE0CH所以TCH=0FEH(高8位),TCL=0CH(低8位)②TMOD的設(shè)定(即控制字)第四章80C51單片機(jī)的功能單元
③編程ORG001BH;T1中斷矢量地址AJMPINQP
ORG100H;主程序入口MOVTMOD,#10H;寫控制字MOVTH1,#0FEH;寫定時(shí)常數(shù)MOVTL1,#0CHSETBTR1;啟動(dòng)T1第四章80C51單片機(jī)的功能單元
SETBET1;允許T1中斷SETBEA;開放CPU中斷AJMP$ORG00××H;中斷服務(wù)程序
INQP:MOVTH1,#0FEH;重寫定時(shí)常數(shù)MOVTL1,#0CHCPLP1.0;P1.0變反輸出RETI;中斷返回第四章80C51單片機(jī)的功能單元
例3欲用80C51產(chǎn)生兩個(gè)方波,其一周期為200μs,另一周期為400μs,而且該80C51使用串行口,并希望用定時(shí)器/計(jì)數(shù)器為波特率發(fā)生器。試問定時(shí)器/計(jì)數(shù)器該如何設(shè)置?解:這時(shí)宜用定時(shí)器/計(jì)數(shù)器T0的方式3工作,其中:TL0產(chǎn)生200μs方波,由P1.0輸出;TH0產(chǎn)生400μs方波,由P1.1輸出;定時(shí)器/計(jì)數(shù)器T1設(shè)置為方式2作波特率發(fā)生器用。為波特率設(shè)置的方便,采用晶振頻率為fosc=9.216MHz。第四章80C51單片機(jī)的功能單元
①定時(shí)常數(shù)計(jì)算·TL0定時(shí)常數(shù)為TCL0:定時(shí)時(shí)間為tL0=100μsTCL0=28-9216×106×100×10-6/12=256-76.8=179.2單位μs,為十進(jìn)制數(shù)值。十六進(jìn)制數(shù)值為TCBL0=0B3H。第四章80C51單片機(jī)的功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)學(xué)生活化教學(xué)在小學(xué)科學(xué)教育中的角色
- 綜合實(shí)踐活動(dòng)在小學(xué)德育中的作用研究
- 電務(wù)段觸電傷害應(yīng)急預(yù)案
- 校園欺凌現(xiàn)象與法律應(yīng)對措施
- DB3715T 72-2025楊柳飛絮綜合防治技術(shù)規(guī)程
- 中外工程技術(shù)許可合同范例
- OEM技術(shù)合作合同(微機(jī)領(lǐng)域)
- 個(gè)人臨時(shí)借款合同范本
- 中外合資企業(yè)土地使用權(quán)轉(zhuǎn)讓協(xié)議合同
- 臨海市農(nóng)產(chǎn)品供需雙方種植收購合同
- 2024年05月浙江金華成泰農(nóng)商銀行員工招考筆試歷年參考題庫附帶答案詳解
- 北京市海淀區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 帶看協(xié)議書范本(2篇)
- 股權(quán)投資項(xiàng)目建議書
- 2025年北京廣播電視臺(tái)招聘(140人)歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024復(fù)工復(fù)產(chǎn)安全培訓(xùn)
- 中學(xué)生宿舍日常與管理
- 【歷史】秦漢時(shí)期:統(tǒng)一多民族國家的建立和鞏固復(fù)習(xí)課件-2024-2025學(xué)年統(tǒng)編版七年級(jí)歷史上冊
- 社區(qū)中心及衛(wèi)生院65歲及以上老年人健康體檢分析報(bào)告模板
- 化工過程安全管理導(dǎo)則AQT 3034-2022知識(shí)培訓(xùn)
- 第02講 導(dǎo)數(shù)與函數(shù)的單調(diào)性(教師版)-2025版高中數(shù)學(xué)一輪復(fù)習(xí)考點(diǎn)幫
評(píng)論
0/150
提交評(píng)論