《微計(jì)算機(jī)與單片機(jī)原理及應(yīng)用》第9章 80C51單片機(jī)的結(jié)構(gòu)與工作原理_第1頁
《微計(jì)算機(jī)與單片機(jī)原理及應(yīng)用》第9章 80C51單片機(jī)的結(jié)構(gòu)與工作原理_第2頁
《微計(jì)算機(jī)與單片機(jī)原理及應(yīng)用》第9章 80C51單片機(jī)的結(jié)構(gòu)與工作原理_第3頁
《微計(jì)算機(jī)與單片機(jī)原理及應(yīng)用》第9章 80C51單片機(jī)的結(jié)構(gòu)與工作原理_第4頁
《微計(jì)算機(jī)與單片機(jī)原理及應(yīng)用》第9章 80C51單片機(jī)的結(jié)構(gòu)與工作原理_第5頁
已閱讀5頁,還剩113頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第9章

80C51單片機(jī)的結(jié)構(gòu)與工作原理本章重點(diǎn):MCS-51單片機(jī)的硬件結(jié)構(gòu)及性能存儲(chǔ)器結(jié)構(gòu)及工作原理并行接口的結(jié)構(gòu)串行接口的結(jié)構(gòu)及工作方式定時(shí)器的結(jié)構(gòu)及工作方式中斷系統(tǒng)本章難點(diǎn):存儲(chǔ)器空間的地址分配、使用特點(diǎn)定時(shí)器的工作方式中斷處理過程9.180C51的基本結(jié)構(gòu)與應(yīng)用模式

9.1.180C51的基本結(jié)構(gòu)80C51單片機(jī)基本結(jié)構(gòu)80C51單片機(jī)主要由以下幾部分組成:1.CPU系統(tǒng)●8位CPU,含布爾處理器;●時(shí)鐘電路;●總線控制邏輯。2.存儲(chǔ)器系統(tǒng)●4K字節(jié)的程序存儲(chǔ)器;●128字節(jié)的數(shù)據(jù)存儲(chǔ)器;●21個(gè)特殊功能寄存器SFR。3.I/O口和其它功能單元●4個(gè)并行I/O口;●2個(gè)16位定時(shí)/計(jì)數(shù)器;●1個(gè)全雙工異步串行口;●中斷系統(tǒng)(5個(gè)中斷源、2個(gè)優(yōu)先級(jí))。9.1.280C51外部引腳封裝80C51單片機(jī)引腳封裝

1.電源及晶振VCC:電源接入引腳。VSS:接地引腳。XTAL1:晶體振蕩器接入的一個(gè)引腳(采用外部振蕩器時(shí),此引腳接地)。XTAL2:晶體振蕩器接入的另一個(gè)引腳(采用外部振蕩器時(shí),此引腳作為外部振蕩信號(hào)的輸入端)。2.控制線引腳RST/VPD:復(fù)位信號(hào)輸入引腳/備用電源輸入引腳。ALE/PROG:地址鎖存允許信號(hào)輸出引腳/編程脈沖輸入引腳。EA/VPP:內(nèi)外存儲(chǔ)器選擇引腳/片內(nèi)EPROM(或FlashROM)編程電壓輸入引腳。PSEN:外部程序存儲(chǔ)器選通信號(hào)輸出引腳。3.I/O引腳(32個(gè),分成4個(gè)8位口)

P0.0~P0.7:一般I/O口引腳或數(shù)據(jù)/低位地址總線復(fù)用引腳。

P1.0~P1.7:一般I/O口引腳。

P2.0~P2.7:一般I/O口引腳或高位地址總線引腳。

P3.0~P3.7:一般I/O口引腳或第二功能引腳。9.280C51的微處理器80C51單片機(jī)內(nèi)部結(jié)構(gòu)9.2.1運(yùn)算器

1.累加器ACC(簡(jiǎn)稱為A):用于向ALU提供操作數(shù)和存放運(yùn)算的結(jié)果。

2.寄存器B:在乘、除運(yùn)算時(shí)用來存放一個(gè)操作數(shù),乘法運(yùn)算時(shí),B中存放的是乘數(shù)。

3.暫存寄存器:用來暫時(shí)存放數(shù)據(jù)總線或其它寄存器送來的操作數(shù)。

4.程序狀態(tài)字寄存器PSW:是一個(gè)逐位定義的8位寄存器,它用于寄存器程序運(yùn)行的狀態(tài)信息。9.2.2控制器

1.程序計(jì)數(shù)器PC:是一個(gè)16位的計(jì)數(shù)器(注意:PC不屬于SFR)。其內(nèi)容為將要執(zhí)行的指令地址。單片機(jī)開機(jī)或復(fù)位時(shí),PC自動(dòng)清0,即裝入地址0000H,這就保證了單片機(jī)開機(jī)或復(fù)位后,程序從0000H地址開始執(zhí)行。

2.指令寄存器(IR)及指令譯碼器(ID):IR保存當(dāng)前正在執(zhí)行的一條指令。指令內(nèi)容含操作碼和地址碼兩部分,操作碼送往ID,并形成相應(yīng)指令的微操作信號(hào)。

3.定時(shí)與控制邏輯電路:它的任務(wù)是控制取指令、執(zhí)行指令、存取操作數(shù)及運(yùn)算結(jié)果等操作,向其它部件發(fā)出各種微操作控制信號(hào),協(xié)調(diào)各部件的工作。9.3存儲(chǔ)器80C51存儲(chǔ)器配置

在物理上可分為4個(gè)存儲(chǔ)空間:片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器,片內(nèi)數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器。在邏輯上,即從用戶使用角度去分,可分為3個(gè)邏輯空間:片內(nèi)外統(tǒng)一編址的64KB程序存儲(chǔ)器地址空間;片內(nèi)256B或384B的數(shù)據(jù)存儲(chǔ)器地址空間;片外64KB的數(shù)據(jù)存儲(chǔ)器地址空間。用戶要采用不同的指令形式和尋址方式,訪問這3個(gè)不同的邏輯空間。9.3.1內(nèi)部數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器分為片內(nèi)和片外兩種,二者無論在物理上和邏輯上,其地址空間都是彼此獨(dú)立的。片內(nèi)數(shù)據(jù)存儲(chǔ)器地址范圍為00H~FFH,片外數(shù)據(jù)存儲(chǔ)器地址空間為0000H~FFFFH。片內(nèi)數(shù)據(jù)存儲(chǔ)器

1.工作寄存器組由32個(gè)RAM單元組成,地址為00H~1FH。共4個(gè)區(qū),每區(qū)由8個(gè)通用工作寄存器R0~R7組成。工作寄存器區(qū)域的選擇由程序狀態(tài)字PSW中的RS1和RS0確定,它們可用位操作指令直接修改,從而選擇不同的工作寄存器區(qū)。80C51內(nèi)部RAM功能配置圖工作寄存器選擇

2.位尋址區(qū)

RAM位尋址區(qū)是布爾處理機(jī)數(shù)據(jù)存儲(chǔ)器的主要組成部分,全部可以位尋址。3.數(shù)據(jù)緩沖區(qū)數(shù)據(jù)緩沖區(qū)地址為30H~7FH,這些RAM單元按字節(jié)尋址。由于80C51單片機(jī)在復(fù)位時(shí),堆棧指針SP指向07H單元,故當(dāng)用戶使用堆棧時(shí),應(yīng)該首先設(shè)置堆棧。用戶堆棧一般設(shè)在30H~7FH范圍之內(nèi)。原則上棧深為128個(gè)字節(jié),即以不超過RAM空間為限。4.專用寄存器(SFR)專用寄存器又稱為特殊功能寄存器。80C51片內(nèi)的I/O端口鎖存器、定時(shí)器/計(jì)數(shù)器,串行口數(shù)據(jù)緩沖器以及各種控制寄存器(除PC外),都以特殊功能寄存器的形式出現(xiàn),80C51共有21個(gè)特殊功能寄存器,它們離散地分布在片內(nèi)80H~FFH地址空間范圍內(nèi)。另外,在SFR塊中字節(jié)地址能被8整除的單元具有位尋址功能。SFR塊中各個(gè)寄存器:累加器A:參見9.2.1.寄存器B:參見9.2.1.程序狀態(tài)字PSW:PSW狀態(tài)字格式

下面說明各位的含義。(1)CY(PSW.7):進(jìn)/借位標(biāo)志(2)AC(PSW.6):輔助進(jìn)位標(biāo)志(3)F0(PSW.5):用戶標(biāo)志位(4)RS1,RS0(PSW.4,PSW.3):工作寄存器區(qū)選擇控制位(5)OV(PSW.2):溢出標(biāo)志位(6)P:(PSW.0)奇偶標(biāo)志位數(shù)據(jù)指針DPTR它是一個(gè)16位專用寄存器,其高字節(jié)寄存器用DPH表示,低字節(jié)寄存器用DPL表示。既可作為16位寄存器(DPTR)使用,又可作為兩個(gè)獨(dú)立的8位寄存器(DPH、DPL)來使用。DPTR通常在訪問外部數(shù)據(jù)存儲(chǔ)器(64KB)時(shí)作地址指針使用。I/O端口P0~P3專用寄存器P0、P1、P2和P3分別是I/O端口P0~P3的鎖存器。

串行數(shù)據(jù)緩沖器SBUF串行數(shù)據(jù)緩沖器SBUF用于存放欲發(fā)送或已接收的數(shù)據(jù)。它由兩個(gè)獨(dú)立的寄存器組成,一個(gè)是發(fā)送緩沖器,一個(gè)是接收緩沖器(兩個(gè)緩沖器共用一個(gè)地址)。定時(shí)器/計(jì)數(shù)器80C51有2個(gè)16位定時(shí)器/計(jì)數(shù)器T0和T1。它們各由2個(gè)獨(dú)立的8位寄存器組成,共分為4個(gè)獨(dú)立的寄存器:TH0、TL0、TH1、TL1。其他控制寄存器IP、IE、TMOD、TCON、SCON和PCON寄存器等。9.3.2程序存儲(chǔ)器

1.80C51內(nèi)部程序存儲(chǔ)器

80C51內(nèi)部有4KBROM程序存儲(chǔ)器,地址為0000H~0FFFH(如下圖所示)。

2.外部程序存儲(chǔ)器

8031/8032/80C32片內(nèi)無ROM,可擴(kuò)展64KB外部程序存儲(chǔ)器。程序存儲(chǔ)器中有7個(gè)地址具有特殊功能,80C51復(fù)位后,(PC)=0000H,故系統(tǒng)程序必須從0000H單元開始,因而0000H是復(fù)位入口地址,也叫做系統(tǒng)程序的啟動(dòng)地址。一般在該單元中存放一條絕對(duì)跳轉(zhuǎn)指令,跳轉(zhuǎn)地址通常放在初始化程序及主程序中。除0000H單元外,其他6個(gè)特殊單元分別對(duì)應(yīng)于6種中斷入口地址。通常在這些入口地址都放一條絕對(duì)跳轉(zhuǎn)指令,跳轉(zhuǎn)到相應(yīng)中斷服務(wù)程序入口去執(zhí)行中斷服務(wù)程序。各種中斷服務(wù)子程序入口地址

9.4CPU工作條件及運(yùn)行方式9.4.1時(shí)鐘及工作時(shí)序

1.振蕩器和時(shí)鐘電路

80C51內(nèi)部有一個(gè)高增益反相放大器,用于構(gòu)成振蕩器,需附加電路。80C51的時(shí)鐘產(chǎn)生方法有以下兩種。內(nèi)部時(shí)鐘方式利用芯片內(nèi)部的振蕩器,然后在引腳XTAL1和XTALL2兩端跨接晶體振蕩器(簡(jiǎn)稱晶振),就構(gòu)成了穩(wěn)定的自激振蕩器,發(fā)出的脈沖直接送入內(nèi)部時(shí)鐘電路。80C51時(shí)鐘電路接線方法

外部時(shí)鐘方式80C51單片機(jī)外部時(shí)鐘接入方式2.工作時(shí)序

CPU執(zhí)行一條指令的時(shí)間稱為指令周期。指令周期是以機(jī)器周期為單位的。80C51典型的指令周期為一個(gè)機(jī)器周期。80C51單片機(jī)規(guī)定一個(gè)機(jī)器周期包括6個(gè)狀態(tài)S1~S6,每個(gè)狀態(tài)又分兩部分:相位1(P1)和相位2(P2),即每個(gè)狀態(tài)包括2個(gè)振蕩(晶振)周期。因此,有下式成立:1個(gè)機(jī)器周期=6個(gè)狀態(tài)=12個(gè)振蕩周期。80C51單片機(jī)的時(shí)鐘信號(hào)

3.80C51的典型時(shí)序單機(jī)器周期指令時(shí)序由于是單字節(jié)指令,因此只需進(jìn)行一次讀指令操作,當(dāng)?shù)诙€(gè)ALE有效時(shí),由于PC不加1,所以讀出的還是原指令,屬于一次無效操作。雙字節(jié)指令時(shí),對(duì)應(yīng)于ALE兩次讀操作都是有效的,第一次是讀指令操作碼,第二次是讀指令中的第二字節(jié)。雙機(jī)器周期指令時(shí)序?qū)τ趩巫止?jié)指令,在兩個(gè)機(jī)器周期之內(nèi)要進(jìn)行4次讀操作。只是后3次讀操作無效。單字節(jié)雙周期指令時(shí)序

訪問外部RAM的雙周期指令時(shí)序

9.4.2復(fù)位及初始狀態(tài)

復(fù)位是單片機(jī)的初始化操作。初始化后,程序計(jì)數(shù)器PC=0000H,所以程序從0000H地址單元開始執(zhí)行。同時(shí)復(fù)位還對(duì)其它一些特殊功能寄存器有影響。P0~P3為FFH,SP為07H,SBUF不定,IP、IE和PCON的有效位為0,其余的特殊功能寄存器的狀態(tài)均為00H。相應(yīng)的意義為:(1)P0~P3=FFH,相當(dāng)于各接口鎖存器已寫入1,此時(shí)不但可用于輸出,也可以用于輸入;(2)SP=07H,堆棧指針指向片內(nèi)RAM的07H單元;(3)IP、IE和PCON的有效位為0,各中斷源處于低優(yōu)先級(jí)且均被關(guān)斷,串行通信的波特率不加倍;(4)PSW=00H,當(dāng)前工作寄存器為0組。1.復(fù)位電路單片機(jī)的復(fù)位電路

9.4.3運(yùn)行方式

80C51單片機(jī)具有低功耗運(yùn)行方式。對(duì)于CHMOS型單片機(jī)有兩種低功耗方式:待機(jī)方式與掉電方式。HMOS型單片機(jī)僅有一種低功耗方式,即掉電方式。

1.HMOS型單片機(jī)的掉電運(yùn)行方式正常運(yùn)行時(shí),HMOS型單片機(jī)由VCC供電。當(dāng)VCC掉電時(shí),在VCC下降到操作允許極限之前,RST/VPD接上備用電源,向內(nèi)部RAM供電。當(dāng)VCC恢復(fù)時(shí),備用電源仍要保持一段時(shí)間,以便完成復(fù)位操作,然后重新開始工作。低功耗掉電方式

2.CHMOS型單片機(jī)的掉電運(yùn)行方式與待機(jī)方式在CHMOS型單片機(jī)中,待機(jī)方式與掉電方式均由特殊功能寄存器PCON的有關(guān)位控制,該控制字格式如下圖所示。PCON控制字格式

下面說明其中各位含義:SMOD(PCON.7):波特率加倍位。當(dāng)SMOD=1時(shí),串行口方式1、2、3的波特率提高一倍。PCON.6,PCON.5,PCON.4:保留位,無定義。GF1(PCON.3):通用標(biāo)志位,供用戶使用。GF0(PCON.2):通用標(biāo)志位,供用戶使用。PD(PCON.1):掉電方式位。當(dāng)PD=1時(shí),機(jī)器進(jìn)入掉電工作方式。IDL(PCON.0):待機(jī)方式位。當(dāng)IDL=1時(shí),機(jī)器進(jìn)入待機(jī)工作方式。(1)掉電運(yùn)行方式當(dāng)80C51檢測(cè)到電源故障時(shí),PD=1,片內(nèi)振蕩器停止工作,只有片內(nèi)RAM內(nèi)容被保持。單片機(jī)進(jìn)入掉電運(yùn)行方式。退出掉電方式的惟一途徑是硬件復(fù)位,復(fù)位信號(hào)維持10ms。

(2)待機(jī)方式當(dāng)執(zhí)行了使PCON寄存器中IDL位為“1”的指令后,單片機(jī)就進(jìn)入了待機(jī)方式。當(dāng)IDL=1,CPU處于凍結(jié)狀態(tài)。然而,時(shí)鐘信號(hào)仍能提供給中斷邏輯、串行口和定時(shí)器。在待機(jī)期間CPU狀態(tài)被完整保存,如程序計(jì)數(shù)器PC,堆棧指針SP,程序狀態(tài)字PSW,累加器A及所有的工作寄存器等。而ALE和PSEN變?yōu)闊o效狀態(tài)。有兩種方法退出待機(jī)方式:任何一個(gè)允許的中斷請(qǐng)求被響應(yīng)時(shí),內(nèi)部硬件電路將IDL位清零,結(jié)束待機(jī)狀態(tài),進(jìn)入中斷服務(wù)程序。硬件復(fù)位:由于時(shí)鐘振蕩器仍在工作,只要復(fù)位信號(hào)保持兩個(gè)機(jī)器周期以上,便可完成復(fù)位,結(jié)束待機(jī)狀態(tài)。9.5并行接口

80C51單片機(jī)有4個(gè)8位I/O端口P0~P3:P0口為三態(tài)雙向口;P1~P3為準(zhǔn)雙向口。在單片機(jī)中口是一個(gè)集數(shù)據(jù)輸入緩沖、數(shù)據(jù)輸出驅(qū)動(dòng)及鎖存等功能為一體的I/O電路。9.5.1并口的結(jié)構(gòu)及相關(guān)寄存器

1.P0口(P0.0~P0.7,39~32腳)為三態(tài)雙向口P0口位結(jié)構(gòu)

(1)P0口作地址/數(shù)據(jù)復(fù)用總線使用(2)P0口作通用I/O端口使用(3)P0口線上的“讀—修改—寫”功能

2.P1口(P1.0~P1.7、1~8腳)準(zhǔn)雙向口P1口位結(jié)構(gòu)

3.P2口(P2.0~P2.7,21~28腳)準(zhǔn)雙口(1)P2口作通用I/O端口使用(2)P2口作地址總線口使用P2口位結(jié)構(gòu)

4.P3口(P3.0~P3.7、10~17腳)雙功口(1)P3口作第一功能口(通用I/O端口)使用(2)P3口作第二功能口使用

P3口位結(jié)構(gòu)

9.5.2并口的驅(qū)動(dòng)能力

P0口的輸出級(jí)與P1~P3口的輸出級(jí)在結(jié)構(gòu)上是不同的,因此它們的負(fù)載能力與接口要求也不相同。P0口的每個(gè)位口線可驅(qū)動(dòng)8個(gè)LSTTL門輸入,當(dāng)把它當(dāng)作通用I/O端口使用時(shí),輸出級(jí)是漏級(jí)開路,故用它去驅(qū)動(dòng)NMOS輸入時(shí)需外接上拉電阻;把它當(dāng)作地址/數(shù)據(jù)總線口使用時(shí),它為三態(tài)雙向口,無需外界再加上拉電阻。P1~P3口輸出級(jí)接有內(nèi)部上拉電阻,它的每個(gè)位口線可驅(qū)動(dòng)4個(gè)LSTTL門輸入,輸入端都可以被集電極開路或漏級(jí)開路電路所驅(qū)動(dòng),無需再外接上拉電阻。9.6串行接口

9.6.1串口的結(jié)構(gòu)及相關(guān)寄存器80C51串行口的內(nèi)部結(jié)構(gòu)

1.80C51串行口的控制寄存器單片機(jī)串行口是可編程的,對(duì)它初始化編程只需將兩個(gè)控制字分別寫入特殊功能寄存器SCON(98H)和電源控制寄存器PCON(97H)即可。串行控制寄存器SCON是一個(gè)特殊功能寄存器,用以設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志。字節(jié)地址為98H,可進(jìn)行位尋址,其格式為:(1)SM0和SM1(SCON.7和SCON.6):串行口工作方式選擇位。串行口的工作方式(2)SM2(SCON.5):多機(jī)通信控制位,主要用于方式2和方式3。在方式0時(shí),SM2必須是0。在方式1時(shí),若SM2=1,則只有接收到有效停止位時(shí),RI才置1。(3)REN(SCON.4):允許串行接收位。若軟件置REN=1,則啟動(dòng)串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。(4)TB8(SCON.3):在方式2或方式3中,是發(fā)送數(shù)據(jù)的第九位,可以用作數(shù)據(jù)的奇偶校驗(yàn)位,在多機(jī)通信中,TB8=0為數(shù)據(jù),TB8=1為地址,作為地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式0和方式1中,該位未用。(5)RB8(SCON.2):在方式2或方式3中,是接收到數(shù)據(jù)的第九位,作為奇偶校驗(yàn)位或地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式1時(shí),若SM2=0,則RB8是接收到的停止位。(6)TI(SCON.1):發(fā)送中斷標(biāo)志位。在方式0時(shí),當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串行發(fā)送停止位的開始時(shí),由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請(qǐng)。在中斷服務(wù)程序中,必須用軟件將其清0,取消此中斷申請(qǐng)。(7)RI(SCON.0):接收中斷標(biāo)志位。在方式0時(shí),當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串行接收停止位的一半時(shí),由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請(qǐng)。在中斷服務(wù)程序中,用軟件將其清0,取消此中斷申請(qǐng)。2.電源控制寄存器為PCON(97H)在PCON中只有一位SMOD與串行口工作有關(guān),其格式為:(1)SMOD(PCON.7):波特率倍增位。在串行口方式1、方式2、方式3時(shí),波特率與SMOD有關(guān),當(dāng)SMOD=1時(shí),波特率提高一倍。復(fù)位時(shí),SMOD=0。9.6.2串口的工作方式

1.方式0

方式0時(shí),串行口為同步移位寄存器的輸入輸出方式。主要用于擴(kuò)展并行輸入或輸出口。(1)方式0輸出方式0輸出時(shí)序

(2)方式0輸入方式0輸出時(shí),串行口可以外接串行輸入行輸出的移位寄存器,如74LS164、CD4094等。方式0輸入時(shí)序

方式0發(fā)送電路

方式0接收電路

2.方式1

串行口定義為方式1時(shí),是10位數(shù)據(jù)的異步通信口。串口幀數(shù)據(jù)格式

(1)方式1輸出方式1的發(fā)送時(shí)序

(2)方式1輸入方式1的接收時(shí)序3.方式2和方式3串行口方式2和方式3的數(shù)據(jù)格式

(1)方式2和方式3輸出

CPU向SBUF寫入數(shù)據(jù)時(shí),就啟動(dòng)了串行口的發(fā)送過程。SCON中的TB8寫入輸出移位寄存器的第9位,8位數(shù)據(jù)裝入SBUF。方式2和方式3的發(fā)送時(shí)序

(2)方式2和方式3輸入軟件使接收允許位REN為1后,接收器就以所選頻率的16倍速率開始取樣RXD引腳的電平狀態(tài),當(dāng)檢測(cè)到RXD引腳發(fā)生負(fù)跳變時(shí),說明起始位有效,將其移入輸入移位寄存器,開始接收這一幀數(shù)據(jù)。方式2和方式3的接收時(shí)序4.波特率的計(jì)算方式0的波特率=fosc/12方式2的波特率=(2/64)·fosc方式1的波特率=(2/32)·(T1溢出率)方式3的波特率=(2/32)·(T1溢出率)當(dāng)T1作為波特率發(fā)生器時(shí),最典型的用法是使T1工作在自動(dòng)再裝入的8位定時(shí)器方式(即方式2,且TCON的TR1=1,以啟動(dòng)定時(shí)器)。這時(shí)溢出率取決于TH1中的計(jì)數(shù)值。T1溢出率=fosc/{12×[256–(TH1)]}在使用串行口之前,應(yīng)對(duì)其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時(shí)器①、串行口控制和中斷控制。具體步驟如下:確定T1的工作方式(編程TMOD寄存器);計(jì)算T1的初值,裝載TH1、TL1;啟動(dòng)T1(編程TCON中的TR1位);確定串行口控制(編程SCON寄存器);串行口在中斷方式工作時(shí),要進(jìn)行中斷設(shè)置(編程IE、IP寄存器)。9.7定時(shí)/計(jì)數(shù)器9.7.1定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)及相關(guān)寄存器

1.定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)框圖

2.定時(shí)/計(jì)數(shù)器的功能

(1)計(jì)數(shù)功能:計(jì)數(shù)是對(duì)外部事件進(jìn)行計(jì)數(shù)。

(2)定時(shí)功能:通過計(jì)數(shù)器的計(jì)數(shù)來實(shí)現(xiàn),不過這時(shí)計(jì)數(shù)脈沖來自單片機(jī)內(nèi)部,即每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖。由于一個(gè)機(jī)器周期等于12個(gè)振蕩脈沖周期,因此計(jì)數(shù)頻率為振蕩頻率的1/12。

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

工作方式寄存器TMOD用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式,低4位用于T0,高4位用于T1。其格式如下:GATE:門控位。GATE=0時(shí),只要用軟件使TCON中的TR0或TR1為1,就可以啟動(dòng)定時(shí)/計(jì)數(shù)器工作;GATA=1時(shí),要用軟件使TR0或TR1為1,同時(shí)外部中斷引腳INT0或INT1也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。C/T:定時(shí)/計(jì)數(shù)模式選擇位。C/T=0為定時(shí)模式;C/T=1為計(jì)數(shù)模式。M1、M0:工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有4種工作方式,由M1、M0進(jìn)行設(shè)置。(2)控制寄存器TCONTCON的低4位用于控制外部中斷,將在下節(jié)中介紹。TCON的高4位用于控制定時(shí)/計(jì)數(shù)器的啟動(dòng)和中斷申請(qǐng)。其格式如下:TF1(TCON.7):定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位。定時(shí)/計(jì)數(shù)器T1計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動(dòng)清0。T1工作時(shí),CPU可隨時(shí)查詢TF1的狀態(tài)。所以,TF1可用作查詢測(cè)試的標(biāo)志。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。TR1(TCON.6):定時(shí)/計(jì)數(shù)器T1運(yùn)行控制位。TR1置1時(shí),定時(shí)/計(jì)數(shù)器T1開始工作;TR1置0時(shí),定時(shí)/計(jì)數(shù)器T1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時(shí)/計(jì)數(shù)器的啟動(dòng)與停止。TF0(TCON.5):定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位,其功能與TF1類同。TR0(TCON.4):定時(shí)/計(jì)數(shù)器T0運(yùn)行控制位,其功能與TR1類同。9.7.2定時(shí)/計(jì)數(shù)器的工作方式

80C51單片機(jī)定時(shí)/計(jì)數(shù)器T0有4種工作方式(方式0、1、2、3),T1有3種工作方式(方式0、1、2)。

1.方式0

這里要說明一下門控位GATE具有的特殊作用。方式0的邏輯結(jié)構(gòu)

通常,在定時(shí)/計(jì)數(shù)器的應(yīng)用中要根據(jù)計(jì)數(shù)個(gè)數(shù)求出送入TH1、TL1和TH0、TL0中的計(jì)數(shù)初值。當(dāng)為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)范圍為1~8192。按照計(jì)數(shù)初值的計(jì)算公式:式中,X為計(jì)數(shù)初值,N為計(jì)數(shù)個(gè)數(shù).當(dāng)計(jì)數(shù)個(gè)數(shù)為1時(shí),初值X為8191;計(jì)數(shù)個(gè)數(shù)為8192時(shí),初值X為0。即初值在8191~0范圍時(shí),計(jì)數(shù)范圍為1~8192。當(dāng)為定時(shí)工作方式時(shí),定時(shí)時(shí)間t的計(jì)算公式為:t=N*Tcy式中t為定時(shí)時(shí)間,N為計(jì)數(shù)個(gè)數(shù),Tcy

為時(shí)鐘周期。2.方式1

方式1的邏輯結(jié)構(gòu)

當(dāng)為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)范圍為1~65536。當(dāng)為定時(shí)工作方式時(shí),定時(shí)時(shí)間t計(jì)算公式為:t=N*Tcy式中t為定時(shí)時(shí)間,N為計(jì)數(shù)個(gè)數(shù),Tcy

為時(shí)鐘周期。例:若要求定時(shí)器T0工作于方式1,定時(shí)時(shí)間為1ms,當(dāng)晶振頻率為6MHz時(shí),求送入TH0和TL0的計(jì)數(shù)初值各為多少?解:由于晶振頻率為6MHz,所以機(jī)器周期Tcy

為2μs。所以N=t/Tcy=1×10–3/2×10–6=500X=216–N=65536–500=65036=FE0CH即應(yīng)將FEH送入TH0中,0CH送入TL0中。3.方式2方式2的邏輯結(jié)構(gòu)工作方式0和工作方式1的特點(diǎn)是計(jì)數(shù)溢出后,計(jì)數(shù)器為0。4.方式3T0方式3的邏輯結(jié)構(gòu)

9.8中斷系統(tǒng)

9.8.1中斷系統(tǒng)的結(jié)構(gòu)及相關(guān)寄存器80C51中斷系統(tǒng)結(jié)構(gòu)圖

1.中斷源80C51單片機(jī)的有三類共五個(gè)中斷源,分別為外部中斷(2個(gè))、定時(shí)中斷(2個(gè))、串行中斷(1個(gè)):外部中斷類:由外部原因引起,包括外部中斷0和外部中斷1,對(duì)應(yīng)引腳為INT0(P3.2)和INT1(P3.3)。定時(shí)中斷類:定時(shí)中斷是為滿足定時(shí)或計(jì)數(shù)的需要而設(shè)置。為此單片機(jī)內(nèi)部有兩個(gè)定時(shí)器/計(jì)數(shù)器。以對(duì)其中的計(jì)數(shù)結(jié)構(gòu)進(jìn)行計(jì)數(shù)的方法,來實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能。串行中斷類:串行中斷是為串行數(shù)據(jù)傳送的需要而設(shè)置的,當(dāng)串行口接收完一幀串行數(shù)據(jù)時(shí)就產(chǎn)生中斷請(qǐng)求。因此這種中斷也是在單片機(jī)內(nèi)部自動(dòng)發(fā)生,無需在芯片上設(shè)置引腳。2.中斷控制

(1)TCON的中斷標(biāo)志其中與中斷有關(guān)的有6位,定義如下:IT0(TCON.0):外部中斷INT0觸發(fā)方式控制位。當(dāng)IT0=0時(shí),INT0為電平觸發(fā)方式(低電平有效)。當(dāng)IT0=1時(shí),INT0為邊沿觸發(fā)方式(下降沿有效)。IE0(TCON.1):外部中斷INT0中斷請(qǐng)求標(biāo)志位。當(dāng)CPU采樣到INT0端出現(xiàn)有效中斷請(qǐng)求時(shí),由硬件置IE0=1,在中斷響應(yīng)完成后轉(zhuǎn)向中斷服務(wù)時(shí),再由硬件自動(dòng)清0。IT1(TCON.2):外部中斷INT1觸發(fā)方式控制位。其操作功能與IT0類同。IE1(TCON.3):外部中斷INT1中斷請(qǐng)求標(biāo)志位。其操作功能與IE0類同。TF0(TCON.5):定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位。在T0啟動(dòng)后就開始由初值加1計(jì)數(shù),直至最高位產(chǎn)生溢出由硬件置TF0=1,CPU響應(yīng)中斷時(shí),TF0由硬件自動(dòng)清0。TF1(TCON.7):定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位。其操作功能與TF0類同。(2)SCON的中斷標(biāo)志

a)RI(SCON.0):串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收一個(gè)串行幀,由硬件置位RI。RI必須由軟件清除。TI(SCON.1):串行口發(fā)送中斷標(biāo)志位。當(dāng)CPU將一個(gè)發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時(shí),就啟動(dòng)了發(fā)送過程。每發(fā)送完一個(gè)串行幀,由硬件置位TI。CPU響應(yīng)中斷時(shí),TI必須由軟件清除。單片機(jī)復(fù)位后,TCON和SCON各位清0。另外,所有能產(chǎn)生中斷的標(biāo)志位均可由軟件置1或清0。(3)中斷允許控制寄存器IEEX0(IE.0):外部INT0中斷允許位。ET0(IE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論