單片機原理及應(yīng)用-03MCS-51單片機的組成原理_第1頁
單片機原理及應(yīng)用-03MCS-51單片機的組成原理_第2頁
單片機原理及應(yīng)用-03MCS-51單片機的組成原理_第3頁
單片機原理及應(yīng)用-03MCS-51單片機的組成原理_第4頁
單片機原理及應(yīng)用-03MCS-51單片機的組成原理_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章MCS-51單片機的組成原理3.1概述

3.6定時器/計數(shù)器3.2中央處理器

3.7串行I/O接口3.3存儲器

3.8中斷控制系統(tǒng)3.4布爾處理機

3.9MCS-51單片機外部特性3.5并行I/O接口

3.10EPROM的編程、檢查與擦除

3.1189C51單片機的組成與特點3.1概述MCS-51系列單片機是把構(gòu)成計算機的CPU、存儲器、寄存器組、I/O接口制作在一塊集成電路芯片中。另外,還集成有定時器/計數(shù)器、串行通信接口等部件,因此可方便地用于定時控制和遠程數(shù)據(jù)傳送。在MCS-51系列單片機中,主要有8031、8051、8751及80C51等型號。隨著超大規(guī)模集成電路的發(fā)展,單片機的內(nèi)部結(jié)構(gòu)仍在不斷地擴大,功能在不斷提高,其型號與類型也在不斷地變換。例如8052AH、8032Ah、8752BH采用HMOS工藝制成,內(nèi)部ROM/RAM的容量增大了一倍。80C51BH系列采用CHMOS工藝制成,功耗低,其中87C51具有兩級存儲器保密系統(tǒng),可防止非法拷貝。8052AH-BASIC芯片內(nèi)部固化有MCSBASIC52解釋程序,可使BASIC52語言與匯編語言混合使用。

又如可編程計數(shù)陣列型單片機80C51FA具有5個比較/捕捉模塊,每個模塊可執(zhí)行16位的正跳變捕捉、負跳變捕捉和正負跳變捕捉,可執(zhí)行16位軟件定時、16位高速輸出及位脈沖寬度調(diào)制輸出等,另外還有一個增強的多機串行通信接口。

A/D型單片機80C51GA具有8路8位A/D轉(zhuǎn)換器、半雙工同步串行通信接口、16位程序監(jiān)視跟蹤定時器,擴展了A/D中斷和串行口中斷,使中斷源達7個之多。多并行接口型單片機80C451增加了兩個8位并行I/O接口P4口和P5口,從而提高了數(shù)據(jù)的吞吐能力。

DMA(直接存儲器存取方式)型單片機80C52JA具有用于DMA傳送的目的地址寄存器、源地址寄存器和字節(jié)計數(shù)器,支持DMA傳送,且在80C452中設(shè)有128字節(jié)的雙向先進先出(FIFO)RAM陣列,支持從一個RAM到另一個RAM的高速數(shù)據(jù)傳送。

目前,使用較多的還有89C51型單片機,其內(nèi)部有4KB/8KB/16KB/32KB/64KB的Flash程序存儲器、128/256/512/1024字節(jié)的隨機存取數(shù)據(jù)存儲器、3個定時器/計數(shù)器,采用雙DPTR結(jié)構(gòu),有6個中斷源,分4個優(yōu)先級控制,可低電壓運行,且有較強的抗電磁干擾能力。本章仍以8051為例,講述單片機的基本組成與工作原理,然后介紹89C51單片機的組成與特點。

8051單片機的內(nèi)部結(jié)構(gòu)如圖3.1所示,包含1個8位中央處理器CPU、4KB程序存儲器EPROM、128B隨機存取存儲器RAM、4個8位并行I/O接口、1個全雙工串行通信接口、2個16位定時器/計數(shù)器及21個特殊功能寄存器。外部具有64KB程序存儲器尋址能力和64KB數(shù)據(jù)存儲器尋址能力。指令系統(tǒng)中增加了乘除法指令,提高了運算及數(shù)據(jù)處理能力,且具有位操作能力。圖3.18051單片機內(nèi)部組成P1P1口鎖存器P1口驅(qū)動器8PCONSCONTMODTCONSBUF(TX)SBUF(RX)IEIPTH0TL0TH1TL1中斷、串行口和定時器部件P3P3口鎖存器P3口驅(qū)動器8PSENEARSTALE指令寄存器IR定時控制邏輯寄存器BSPRAM128×8+5VVCC地址寄存器RAMP0口鎖存器P0P0口驅(qū)動器8ROM4K×8P2口鎖存器P2P2口驅(qū)動器8PSW暫存寄存器1暫存寄存器2累加器A算術(shù)邏輯部件ALU程序地址寄存器緩沖寄存器PC增量PCDPTR圖3.1(2)3.2中央處理器

中央處理器是進行算術(shù)/邏輯運算,控制程序執(zhí)行的部件。它包括運算器和控制器,主要組成已經(jīng)反映在圖3.1(2)中。3.2.1運算器3.2.2控制器3.2.3時鐘與定時3.2.1運算器

運算器主要包括算術(shù)/邏輯部件ALU、累加器、暫存寄存器TMP1和TMP2、程序狀態(tài)標(biāo)志寄存器PSW、BCD碼修正電路等。為了提高數(shù)據(jù)處理和位操作能力,片內(nèi)設(shè)有一個通用寄存器B和一些專用寄存器。運算器的功能主要是對數(shù)據(jù)進行加、減、乘、除等算術(shù)運算及“與”、“或”、“非”、“異或”等邏輯運算。對于位操作數(shù),可進行置位、清零、求反、移位、條件判斷及按位“與”、按位“或”等操作。3.2.2控制器

控制器包括程序計數(shù)器PC、指令寄存器、指令譯碼器、定時控制與條件轉(zhuǎn)移邏輯電路等。由于可以外接64K字節(jié)的數(shù)據(jù)存儲器和I/O接口電路,因此在控制器中設(shè)有一個16位的地址指示器DPTR,用來對外部數(shù)據(jù)存儲器和I/O接口尋址。為了便于數(shù)據(jù)保護,設(shè)有8位堆棧指示器SP。

PSW寄存器共有8位,全部用作程序運行時的狀態(tài)標(biāo)志,其格式如下:

字節(jié)地址D0HPSW

位地址D7HD6HD5HD4HD3HD2HD1HD0HCYACF0RS1RS0OVPP:奇偶標(biāo)志位。當(dāng)累加器中1的個數(shù)為偶數(shù)時,P置1,否則清0。OV:溢出標(biāo)志位。當(dāng)執(zhí)行算術(shù)運算時,最高位和次高位的進位(或借位)相同時,有溢出,OV置1;否則,沒有溢出,OV清0。RS0RS1:寄存器工作區(qū)選擇。F0:用戶標(biāo)志位。AC:輔助進位標(biāo)志位。算術(shù)運算時,若低半字節(jié)向高半字節(jié)有進位(或借位)時,AC置1,否則清0。Cy:最高進位標(biāo)志位。算術(shù)運算時,若最高位有進位(或借位)時,Cy置1,否則清0。D1:保留。3.2.3時鐘與定時

MCS-51單片機的定時時序如圖3.2所示。一個機器周期為6個時鐘周期,表示為S1~S6。在一個機器周期中,包含有兩個機器周期信號ALE。時鐘信號S為振蕩器頻率的2分頻,一般情況下,算術(shù)/邏輯運算在S的前半周期P1進行,內(nèi)部寄存器傳送在S的后半周期P2進行。MCS-51單片機的大部分指令執(zhí)行時間為一個機器周期,少數(shù)為2個機器周期,乘法和除法指令需要4個機器周期。

P1P2P1P2P1P2P1P2P1P2P1P2S6S5S4S3S2S1圖3.2MCS-51時序圖讀操作碼讀操作數(shù)一個機器周期3.3存儲器

在MCS-51系列單片機中,程序存儲器和數(shù)據(jù)存儲器互相獨立,物理結(jié)構(gòu)也不相同。程序存儲器為只讀存儲器,數(shù)據(jù)存儲器為隨機存取存儲器。從物理地址空間看,共有4個存儲地址空間,即片內(nèi)程序存儲器、片外程序存儲器、片內(nèi)數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器,I/O接口與外部數(shù)據(jù)存儲器統(tǒng)一編址,其示意如圖3.3所示。圖3.3MCS-51存儲器空間(b)數(shù)據(jù)存儲器00HFFH內(nèi)部外部FFFFH0000H(a)程序存儲器0FFFH0000HFFFFH0000H外部EA=0內(nèi)部EA=13.3.1程序存儲器

程序存儲器包括內(nèi)部程序存儲器和外部程序存儲器。8051內(nèi)設(shè)4KBROM,8751內(nèi)設(shè)4KBEPROM,地址范圍為0000H~0FFFH,外部可擴展64KB,地址范圍為0000H~FFFFH。在其引腳中設(shè)有一個控制端。若該端接高電平,程序執(zhí)行時先執(zhí)行內(nèi)部程序存儲器中的程序,當(dāng)?shù)刂反笥诘扔?000H后,執(zhí)行外部程序存儲器中的程序。若該端接低電平,則全部執(zhí)行外部程序存儲器中的程序。程序存儲器中存放的數(shù)據(jù)只能用查表指令訪問,其格式如下:

MOVCA,@A+PCMOVCA,@A+DPTR

3.3.2數(shù)據(jù)存儲器

數(shù)據(jù)存儲器包括內(nèi)部數(shù)據(jù)存儲器和外部數(shù)據(jù)存儲器。內(nèi)部數(shù)據(jù)存儲器分為128字節(jié)的RAM區(qū)和128字節(jié)的特殊功能寄存器區(qū),總的地址范圍為00H~FFH。在特殊功能寄存器地址空間中離散地分布著21個特殊功能寄存器。如累加器A、寄存器B、程序狀態(tài)標(biāo)志寄存器PSW等。外部可擴充64KB的數(shù)據(jù)存儲器,地址范圍為0000H~FFFFH。內(nèi)部數(shù)據(jù)存儲器和外部數(shù)據(jù)存儲器在00H~FFH地址區(qū)重疊。對于內(nèi)部數(shù)據(jù)存儲器可以直接尋址,也可以間接尋址,間接尋址時,間接地址寄存器為R0和R1,指令格式如下:MOVA,@R0MOVA,@R1MOV@R0,AMOV@R1,A外部數(shù)據(jù)存儲器只能間接尋址,間接地址寄存器為R0、R1和DPTR。用R0和R1只能訪問低256個字節(jié)單元,用DPTR可訪問64KB單元。指令格式如下:MOVXA,@R0MOVXA,@R1MOVXA,@DPTRMOVX@R0,AMOVX@R1,AMOVX@DPTR,A1.內(nèi)部RAM

內(nèi)部RAM共128個字節(jié)單元,其分布如圖3.4所示。00H~1FH單元為4個寄存器工作區(qū),每區(qū)8個寄存器,表示為R0~R7。寄存器工作區(qū)的選擇是通過程序狀態(tài)標(biāo)志寄存器PSW的第3~4位進行,如表3.1所示。設(shè)置4個寄存器工作區(qū)可以提高現(xiàn)場保護能力和CPU實時響應(yīng)的速度。圖3.4內(nèi)部RAM結(jié)構(gòu)數(shù)據(jù)緩沖區(qū)

2FH30H1FH20H00H7FH只能字節(jié)尋址字節(jié)、位尋址4個寄存器區(qū)(R0~R7)1區(qū)2區(qū)3區(qū)0區(qū)表3.1寄存器工作區(qū)選擇與地址分配

PSW.4(RS1)PSW.3(RS0)寄存器區(qū)

R0~R7占用地址

000區(qū)

00H~07H011區(qū)

08H~0FH102區(qū)

10H~17H113區(qū)

18H~1FH20H~2FH的16個單元既可按字節(jié)尋址,作為一般的工作單元,又可以按位由CPU直接尋址,進行位操作。30H~7FH區(qū)只能按字節(jié)尋址,一般用作數(shù)據(jù)緩沖區(qū)或堆棧區(qū)。

2.特殊功能寄存器特殊功能寄存器有21個,離散地分布在80H~FFH地址區(qū)域中,其名稱、地址分配和復(fù)位后的初始狀態(tài)如表3.2所示,這些寄存器的功能將在以后各章中介紹。特殊功能寄存器名

稱地

址復(fù)位后狀態(tài)B通用寄存器F0H00HA累加器E0H00HPSW程序狀態(tài)字D0H00HIP中斷優(yōu)先級寄存器B8H×××00000BP3P3口B0HFFHIE中斷允許寄存器A8H0××00000BP2P2口A0HFFHSBUF串行口發(fā)送/接收緩沖器99H不定SCON串行口控制寄存器98H00HP1P1口90HFFHTH1定時器/計數(shù)器1高8位8DH00HTH0定時器/計數(shù)器0高8位8CH00HTL1定時器/計數(shù)器1低8位8BH00HTL0定時器/計數(shù)器0低8位8AH00HTMOD定時器/計數(shù)器方式字89H00HTCON定時器控制寄存器88H00HPCON波特率選擇寄存器87H00HDPH地址寄存器高8位83H00HDPL地址寄存器低8位82H00HSP堆棧指針81H07HP0P0口80HFFH表3.2特殊功能寄存器表3.2(2)3.堆棧工作區(qū)在MCS-51單片機中堆棧是向上生成,空棧底,實棧頂,由堆棧指示器SP指示。SP是一個8位寄存器,屬特殊功能寄存器,字節(jié)地址為81H。堆棧工作區(qū)可設(shè)在內(nèi)部RAM的任意區(qū)域中,但在使用時注意不要與所選寄存器工作區(qū)、位地址區(qū)重疊。系統(tǒng)復(fù)位后,堆棧指針SP的初值為07H,指向寄存器工作區(qū)0。因此,用戶在初始化程序中應(yīng)對SP設(shè)置初值,一般設(shè)在30H~7FH為宜。

4.外部數(shù)據(jù)存儲器在MCS-51系列單片機的外部可擴展64KB的數(shù)據(jù)存儲器,用來存放隨機數(shù)據(jù),因此一般由RAM構(gòu)成。程序運行時,只能通過地址寄存器DPTR和通用寄存器R0、R1間接尋址。3.4布爾處理機1.布爾處理機布爾處理機實際上是一位字長的計算機,它有中央處理器、位累加器、位地址空間和位操作指令。通過編程可實現(xiàn)位處理或位控制功能。由于在MCS-51單片機中內(nèi)含有一個布爾處理機,因此具有很強的位處理功能。2.MCS-51單片機中布爾處理機的組成在MCS-51單片機的內(nèi)部RAM中,20H~2FH即可以按字節(jié)尋址,也可以按位尋址。這16個單元共有128位,每位有一個位地址,尋址范圍為00H~7FH,如表3.3所示。另外,有11個特殊功能寄存器,如累加器A、寄存器B、程序狀態(tài)字PSW等,既有字節(jié)地址,也有位地址,其詳細地址如表3.4所示。表中給出了能按位尋址的寄存器的位地址。在程序狀態(tài)標(biāo)志寄存器PSW中,進位標(biāo)志位C作為位累加器使用。字節(jié)地址位

址D7D6D5D4D3D2D1D02FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F077E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800表3.3RAM尋址區(qū)位地址分配特殊功能寄存器字節(jié)地址位

址D7D0BF0H

F7F6F5F4F3F2F1F0AE0H

E7E6E5E4E3E2E1E0PSWD0HCYACF0RS1RS0OV

PD7D6D5D4D3D2D1D0IPB8H

PSPT1PX1PT0PX0---BCBBBAB9B8P3B0HP3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0B7B6B5B4B3B2B1B0IEA8HEA

ESET1EX1ET0EX0AF--ACABAAA9A8P2A0HP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0A7A6A5A4A3A2A1A0SBUF99H

SCON98HSM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998P190HP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.09796959493929190TH18DH

TH08CHTL18BHTL08AHTMOD89HTCON88HTF1TR1TF0TR0IE1IT1IE0IT08F8E8D8C8B8A8988PCON87H

DPH83HDPL82HSP81HP080HP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.08786858483828180

在指令系統(tǒng)中設(shè)有位操作指令,與位累加器C和位地址空間結(jié)合起來,構(gòu)成一個完整的布爾處理機。位操作指令有位傳送、位清0、位置1、位取“反”、按位“與”、按位“或”及位測試轉(zhuǎn)移等。MCS-51單片機的4個8位并行I/O接口均具有位地址,即實現(xiàn)位輸入輸出及位控制功能。3.5并行I/O接口MCS-51單片機內(nèi)部設(shè)置有4個8位并行I/O接口,其中P0口為雙向三態(tài)輸入輸入接口,P1、P2、P3口為準(zhǔn)雙向輸入輸出接口。3.5.1P0口與P2口3.5.2P1口與P3口3.5.1P0口與P2口P0口是一個8位雙向三態(tài)輸入輸出接口,P2口是一個準(zhǔn)雙向輸入輸出接口,而且每一位都有自已的位地址。中央處理器可接字節(jié)進行數(shù)據(jù)傳送,也可按位進行位操作。在聯(lián)接外部存儲器時,P0口作為8位數(shù)據(jù)輸入輸出口和外部存儲器低8位地址口,地址/數(shù)據(jù)分時傳送。P2口輸出外部存儲器的高8位地址,其連接如圖3.5所示。數(shù)據(jù)總線(D7~D0)地址鎖存器ROM程序存儲器

64KOERAM或I/O口

64KWRRDP2口8051ALEEAP0口WRPSENRD地址總線(A15~A0)圖3.5外部存儲器連接3.5.2P1口與P3口

P1口與P3口是8位準(zhǔn)雙向輸入輸出接口,每一位也有自己的位地址。中央處理器可按字節(jié)進行數(shù)據(jù)傳送,也可按位進行位操作。另外,P3口具有第二功能,如表3.5所示,表3.5P3口功能控制信號線引腳符號功能P3.0RXD串行口輸入P3.1TXD串行口輸出P3.2外部中斷0輸入P3.3外部中斷1輸入P3.4T0定時器0外部輸入P3.5T1定時器1外部輸入P3.6外部數(shù)據(jù)存儲器寫信號P3.7外部數(shù)據(jù)存儲器讀信號3.6定時器/計數(shù)器3.6.1定時器/計數(shù)器的組成3.6.2定時器/計數(shù)器的工作方式3.6.3定時器/計數(shù)器的使用3.6.1定時器/計數(shù)器的組成MCS-51單片機中設(shè)置有2個16位的可編程定時器/計數(shù)器,具有4種工作方式,其邏輯結(jié)構(gòu)如圖3.6所示。定時器/計數(shù)器T0由計數(shù)器TH0和TL0組成,定時器/計數(shù)器T1由計數(shù)器TH1和TL1組成。TH、TL分別為兩個8位計數(shù)器,連接起來可組成16位計數(shù)器。定時器/計數(shù)器的工作方式由方式控制字TMOD選擇,定時器/計數(shù)器的啟停由控制寄存器TCON控制,這兩個寄存器均屬特殊功能寄存器。T0

T1圖3.6定時器/計數(shù)器邏輯結(jié)構(gòu)

CPUTCONTMODTL1TH1TH0TL0內(nèi)部總線定時器/計數(shù)器工作方式控制字TMOD:字節(jié)地址89HTMODD7D6D5D4D3D2D1D0GATEC/M1M0GATEC/M1M0其中M1、M0為方式選擇,C/T為定時/計數(shù)選擇,GATE為定時器/計數(shù)器工作方式選擇。定時器/計數(shù)器啟??刂萍拇嫫鱐CON:用于中斷控制

字節(jié)地址88HTCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0

其中低4位用于中斷控制,高4位用于定時器/計數(shù)器的啟/??刂?,TF為溢出標(biāo)志,TR為啟/停控制標(biāo)志。3.6.2定時器/計數(shù)器的工作方式

1.工作方式0

當(dāng)M1M0=00時選擇工作方式0,其邏輯圖如圖3.7所示。在工作方式0狀態(tài)下,TL低5位與TH并成13位計數(shù)器。計數(shù)工作時,TL低5位計滿后向TH計數(shù)器進位。當(dāng)C/=0時為定時工作狀態(tài),振蕩器輸出脈沖(12MHz)經(jīng)12分頻,產(chǎn)生定時脈腫(1MHz)送計數(shù)器計器。當(dāng)C/=1時,為計數(shù)工作狀態(tài),由T0引腳輸入計數(shù)脈沖,對計數(shù)器進行計數(shù)。計數(shù)器溢出時將TF置1,表示定時時間到,向CPU發(fā)中斷請求。當(dāng)GATE=0時,A點為高電平,定時器/計數(shù)器的啟/停由啟/停標(biāo)志位TR0決定。TR0=1時,定時器/計數(shù)器啟動;TR0=0時,定時器/計數(shù)器停止工作。當(dāng)GATE=1時A點位由決定,這樣B點的電位就由TR0和聯(lián)合決定,即定時器/計數(shù)器的運行由TR0和兩個條件控制。TL0TH05(8)位8位TF0中斷請求&≥1C/T=1C/T=0TR0振蕩器÷12T0GATE圖3.7定時器/計數(shù)器工作方式0與工作方式1T1的工作情況與T0相同。TR可由程序置1或者清0,當(dāng)計數(shù)溢出時TF置1;CPU中斷響應(yīng)后,TF清0。CPU也可讀出TCON、TH及TL中的內(nèi)容來了解T0或T1的工作狀態(tài)。2.工作方式1

當(dāng)M1M0=01時,定時器/計數(shù)器選擇工作方式1,這時TH與TL并成16位計數(shù)器,按照16位計數(shù)器方式工作。其它過程與工作方式0相同。3.工作方式2

當(dāng)M1M0=10時,定時器/計數(shù)器選擇工作方式2。在工作方式2狀態(tài)下TL為8位計數(shù)器,TH作為預(yù)置常數(shù)寄存器,其邏輯圖如圖3.8所示。當(dāng)TL計數(shù)溢出后,一方面將TF置1,發(fā)中斷請求,另一方面再把預(yù)置常數(shù)寄存器TH中的數(shù)送入TL,使定時器/計數(shù)器重復(fù)工作。重新裝入TF中斷請求TL(8位)計數(shù)器TH(8位)預(yù)置常數(shù)寄存器圖3.8

重復(fù)定時/計數(shù)控制4.工作方式3

當(dāng)M1M0=11時,定時器/計數(shù)器選擇工作方式3。工作方式3是T0分為一個8位定時器/計數(shù)器和一個8位定時器,TH0用于定時器/計數(shù)器,TL0用于定時器。這樣MCS-51就具有一個16位、一個8位定時器/計數(shù)器和一個8位定時器。定時器/計數(shù)器的工作原理與工作方式0相同,只是計數(shù)器僅用8位的TH0。定時器如圖3.9所示,使用了定時器/計數(shù)器T1的狀態(tài)控制位TR1和TF1,占用了定時器/計數(shù)器T1的中斷源。圖3.9由TH0組成8位定時器TR1中斷請求TF1TH08位振蕩器÷12

一般情況下,當(dāng)T1作為串行口的波特率發(fā)生器時,T0才選擇為工作方式3。當(dāng)T0選擇為工作方式3時,T1可選擇為工作方式0或工作方式1或工作方式2,作為串行口的波特率發(fā)生器或者用于不需要中斷請求的場合。工作方式3只適合于定時器/計數(shù)器T0;當(dāng)T1的方式控制字M1M0=11時,停止工作。

定時器/計數(shù)器,其內(nèi)部一樣,都是計數(shù)。定時器對內(nèi)部時鐘信號計數(shù),計數(shù)器是對外部信號計數(shù)。MCS-51單片機的定時器/計數(shù)器是加1計數(shù),因此工作時涉及到計數(shù)初值。由計數(shù)初值開始加1,直到計滿溢出,向CPU發(fā)中斷請求。因此,要使定時器/計數(shù)器工作,須確定以下幾方面的工作。(1)確定定時器/計數(shù)器的工作方式,即定時還是計數(shù)?(2)確定計數(shù)初值。(3)確定定時器/計數(shù)器是否可以中斷請求?(4)如何啟動定時器/計數(shù)器工作?(5)選擇工作方式2使定時器/計數(shù)器連續(xù)工作還是由中斷服務(wù)程序使其連續(xù)工作?3.6.3定時器/計數(shù)器的使用

工作方式的確度是向TMOD寄存器寫入方式控制字。例如用T0定時,選擇工作方式1,內(nèi)啟動,傳送指令為:MOVTMOD,#01H計數(shù)初值的確定,如下:設(shè)計數(shù)值為X,則須裝入的計數(shù)初值為2n-X。方式0,n=13;方式1,n=16;方式2和方式3,n=8。在定時方式下,按機器周期計數(shù),每個機器周期包括12個振蕩周期。當(dāng)晶振頻率為6MHz時,1個機器周期==2μS,定時時間為2XμS。若要求定時1mS,則:X==500由此得計數(shù)初值為:216-500=65036=FE0CH設(shè)置初值的指令為:MOVTL0,#0CHMOVTH0,#0FEH啟動T0定時的指令為:MOVTCON,#10H或

SETBTR03.7串行I/O接口3.7.1串行通信基本方式3.7.2串行通信接口的組成與特點3.7.3串行通信接口的工作方式3.7.4數(shù)據(jù)發(fā)送與接收3.7.1串行通信基本方式

串行通信是指數(shù)據(jù)一位一位地順序傳送。其特點是通信線路簡單,只要一對傳輸線就可以通信,但速度慢。在實際應(yīng)用中,串行通信又分為同步傳送和異步傳送兩種方式。1.同步傳送同步傳送是指在一個數(shù)據(jù)塊的開頭使用同步字符。數(shù)據(jù)傳送時使用同一頻率的時鐘脈沖來實現(xiàn)發(fā)送端與接收端的同步。這種時鐘脈沖稱為同步脈沖,數(shù)據(jù)同步傳送的格式如圖3.10所示。圖3.10

同步傳送SYN字符1SYN字符2數(shù)據(jù)

數(shù)據(jù)傳送時,數(shù)據(jù)與同步脈沖同時發(fā)出。在數(shù)據(jù)塊中首先發(fā)同步字符,一般為1~2個。接收端首先接收同步字符,確認(rèn)同步后開始接收數(shù)據(jù)。采用同步方式傳送,硬件設(shè)備較為復(fù)雜,但與異步傳送相比,同步傳送速率高。

2.異步傳送異步傳送是以字符或一定位數(shù)的數(shù)據(jù)為單位,有起始位和停止位,作為字符的開頭和結(jié)束標(biāo)志,這樣的單位稱為幀。一幀中,起始標(biāo)志占一位,數(shù)據(jù)占5、6、7或者8位,停止標(biāo)志占1、1或者2位。一般規(guī)定,起始位用低電平(0)表示,停止位用高電平(1)表示。數(shù)據(jù)傳送時,一幀一幀地傳送。若傳送ASCII碼字符,數(shù)據(jù)中的第8位可作為奇偶校驗位。異步傳送數(shù)據(jù)格式如圖3.11所示。圖3.11異步傳送一幀信息停止位起始位奇偶校驗7位數(shù)據(jù)停止位

串行通信按照數(shù)據(jù)傳送的方向,可分為三種:單工、半雙工和全雙工通信方式。數(shù)據(jù)傳送速率用波特率表示,即每秒鐘傳送二進制數(shù)的位數(shù),單位為“波特”。異步傳送常用波特率為50~19200波特,同步傳送速率較高,一般在20000波特以上。3.7.2串行通信接口的組成與特點

在MCS-51單片機中,串行I/O接口是一個全雙工串行通信接口,有一個數(shù)據(jù)接收緩種器和一個數(shù)據(jù)發(fā)送緩沖器,兩個緩沖器共用一個地址99H,表示為SBUF。中央處理器對接收緩沖器只能讀出不能寫入,對發(fā)送緩沖器只能寫入不能讀出。系統(tǒng)中有兩個特殊功能寄存器SCON和PCON,控制串行通信工作方式。

1.串行口控制寄存器SCON

串行口控制寄存器共有8位,字節(jié)地址為98H,格式如下:SCON位地址

字節(jié)地址98H9FH9EH9DH9CH9BH9AH99H98HSM0SM1SM2RENTB8RB8TIRISM0SM1:工作方式選擇位,可選擇4種工作方式,如表3.6所示。表3.6SM0SM1方式選擇SM0SM1方式功能說明波特率000移位寄存器方式fosc/120118位UART可變1029位UARTFosc/64或Fosc/321139位UART可變SM2:工作方式2或方式3串行多機通信允許位。在方式2或方式3時,若SM2=1,接收到的數(shù)據(jù)第9位(RB8)為1,RI置1,向中央處理器CPU發(fā)中斷請求;接收到的數(shù)據(jù)第9位(RB8)為0,RI不置1,不向CPU發(fā)中斷請求。若SM2=0,接收到的數(shù)據(jù)送SBUF,接收到的數(shù)據(jù)第9位送RB8,RI置1。在工作方式1時,若SM2=1,只有接收到有效停止位時RI置1,否則RI不置1。在工作方式0時,SM2應(yīng)為0。

REN:允許串行接收。

TB8:在方式2和方式3時是發(fā)送數(shù)據(jù)的第9位。

RB8:在方式2和方式3時是接收數(shù)據(jù)的第9位。在方式1時,若SM2=0,RB8為接收到數(shù)據(jù)的停止位。在工作方式0時,不使用RB8。TI:發(fā)送中斷標(biāo)志。由硬件在方式0串行發(fā)送第8位結(jié)束或在其它方式中發(fā)送停止位的開始時置1,由軟件清0。RI:接收中斷標(biāo)志。由硬件在方式0串行接收第8位結(jié)束或在其它方式中接收停止位的中間時置1(除了與SM2有關(guān)),由軟件清0。以上標(biāo)志設(shè)有位地址,可進行位操作,復(fù)位時全部清0。

2.波特率選擇寄存器PCON字節(jié)地址87HPCOND7D6D5D4D3D2D1D0SMODPCON用來確定串行數(shù)據(jù)傳送時的波特率,沒有位地址。有關(guān)SMOD位的使用,將在下面結(jié)合串行通信接口的工作方式一起介紹。3.7.3串行通信接口的工作方式

1.工作方式0

當(dāng)SM0SM1=00時,選擇工作方式0,為移位寄存器輸入/輸出方式,可外接移位寄存器或同步輸入/輸出設(shè)備。按工作方式0發(fā)送時,RXD引腳用于串行數(shù)據(jù)輸出,TXD輸出移位同步脈沖。當(dāng)數(shù)據(jù)寫入發(fā)送緩沖器后,串行口將8位數(shù)據(jù)從低位開始以Fosc/12的波特率從RXD端輸出,輸出完后將中斷標(biāo)志TI置1,發(fā)中斷請求。

REN為串行口允許接收控制位,在按工作方式0接收時,受到REN位的控制。REN=0,禁止接收;REN=1允許接收,數(shù)據(jù)由RXD端輸入,TXD端輸出移位同步信號。當(dāng)接收到8位數(shù)據(jù)時,將中斷標(biāo)志RI置1,發(fā)中斷請求。轉(zhuǎn)入中斷服務(wù)后,由中斷服務(wù)程序?qū)I、RI清0。在方式0中沒有使用TB8和RB8位。2.工作方式1

當(dāng)SM0SM1=01時,串行接口選擇工作方式1,為可變波特率的8位異步通信方式。發(fā)送數(shù)據(jù)由TXD端輸出,每一幀信息為10位,一位起始標(biāo)志位0,8位數(shù)據(jù)位和一位停止位1。發(fā)送時,數(shù)據(jù)送入發(fā)送緩沖器SBUF,然后啟動發(fā)送。數(shù)據(jù)發(fā)送完后,將中斷標(biāo)志位TI置1。接收時(REN=1)以所選波特率的16倍速率采樣RXD引腳,當(dāng)采樣到從1到0的下跳沿時啟動接收器,確認(rèn)起始位后,接收一幀信息。當(dāng)RI=0,停止位為1或SM2=0時,停止位進入RB8,中斷標(biāo)志位RI置1。若這兩個條件都不滿足,則信息丟失。在通常情況下,串行口方式1工作時,SM2清0,波特率為:

方式1波特率=×定時器T1的溢出率為了可靠傳送,接收采樣時,每位采樣3次,按多數(shù)表決。中斷標(biāo)志RI由中斷服務(wù)程序清0。3.工作方式2

當(dāng)SM0SM1=10時,串行接口選擇工作方式2,為9位異步通信方式。在這種方式下,每一幀有11位。1位起始位,8位數(shù)據(jù)位,1位可以置1或者清0的第9位,1位停止位。第9位實際上是SCON中的TB8,作為多機通信中址址/數(shù)據(jù)標(biāo)志位或數(shù)據(jù)的奇偶校驗位。接收時,當(dāng)RI=0,SM2=0或接收到的第9位數(shù)據(jù)為1時,接收數(shù)據(jù)送入SBUF,第9位送入RB8,中斷標(biāo)志位RI置1;若二條件都不滿足,接收到的信息丟失。若第9位表示奇偶校驗位,則在中斷處理程序中應(yīng)進行校驗處理。方式2波特率=×振蕩器頻率4.工作方式3當(dāng)SM0SM1=11時,串行接口選擇工作方式3,為波特率可變的9位異步通信方式。除了波特率可變外,工作方式3與工作方式2相同。方式3波特率=×定時器T1的溢出率波特率是串行口每秒鐘發(fā)送或接收的數(shù)碼位數(shù),與振蕩器的頻率或定時器的溢出率成正比。當(dāng)定時器/計數(shù)器處于工作方式0、工作方式1和工作方式3時溢出率=/(2n-n位定時器初值+重置定時器的中斷處理程序機器周期數(shù))當(dāng)定時器處于工作方式2時溢出率=/(28-TH1)3.7.4數(shù)據(jù)發(fā)送與接收

1.數(shù)據(jù)發(fā)送對于串行口來說,只要中央處理器CPU把數(shù)據(jù)寫入發(fā)送緩沖器SBUF,數(shù)據(jù)將被一位一位地輸出,低位在先,高位在后。對于工作方式2和工作方式3,最高位的后面還有第9位(TB8)。若要進行串行通信,首先要確定串行口的工作方式,然后根據(jù)工作方式確定是否有第9位(TB8),以及第9位用作奇偶標(biāo)志位還是用作地址標(biāo)志位(對于多機通信)。另外,還要設(shè)置定時器T1的工作方式和計數(shù)初值,以選擇波特率。數(shù)據(jù)成批發(fā)送時還要確定一個發(fā)送數(shù)據(jù)區(qū)指針,以指示所要發(fā)送的數(shù)據(jù)。若TI為0,在CPU和串行口開中斷的情況下,即可發(fā)送數(shù)據(jù)?!纠?.1】設(shè)串行口選擇工作方式2,有奇偶校驗,數(shù)據(jù)區(qū)指針為R0,發(fā)送一次數(shù)據(jù)的程序如下:

CLRTI;TI清0MOVA,@R0;取數(shù)

MOVC,P;奇偶標(biāo)志送CMOVTB8,C;置奇偶標(biāo)志MOVSBUF,A;數(shù)據(jù)發(fā)送WAIT:JBCTI,LOOP2;判斷數(shù)據(jù)是否發(fā)送完成

SJMPWAIT;數(shù)據(jù)位發(fā)送完,繼續(xù)循環(huán)LOOP2:INCR0;數(shù)據(jù)發(fā)送完,指針加12.數(shù)據(jù)接收只要串行口控制寄存器中的REN=1,串行口接收數(shù)據(jù),并送入接收緩沖器SBUF,若有第9位,送RB8。要進行串行通信時,首先要確定串行口的工作方式,然后根據(jù)工作方式確定是否有第9位(RB8),以及第9位的作用。另外,還要設(shè)置定時器T1的工作方式和計數(shù)初值,以確定波特率。數(shù)據(jù)成批接收時還要確定一個數(shù)據(jù)區(qū)指針,以指示數(shù)據(jù)存放的地址。在CPU和串行口開中斷的情況下,每接收一幀數(shù)據(jù),RI置1,向CPU發(fā)中斷請求。請求CUP讀出數(shù)據(jù)?!纠?.2】設(shè)串行口選擇工作方式1,存放數(shù)據(jù)的區(qū)域指針為R0,接收程序如下:

CLRRI;RI清0 MOVA,SUBF;讀取數(shù)據(jù)

MOVR0,A;存數(shù)

INCR0;指針加13.8中斷控制系統(tǒng)3.8.1中斷源與中斷請求標(biāo)志3.8.2中斷控制3.8.1中斷源與中斷請求標(biāo)志MCS-51單片機有5個中斷源,2級中斷優(yōu)先級,可實現(xiàn)2級中斷嵌套。每個中斷源可由程序開中斷或者關(guān)中斷,每個中斷源的優(yōu)先級別可由程序設(shè)置。5個中斷源包括2個外部中斷、、2個內(nèi)部定時器/計數(shù)器溢出中斷TF0、TF1和1個內(nèi)部串行口中斷TI或RI。這些中斷請求分別由特殊功能寄存器TCON和SCON的相應(yīng)位鎖存。

1.TCON用于中斷請求標(biāo)志定時器/計數(shù)器啟??刂萍拇嫫鞒糜趩⑼?刂坪鸵绯鰳?biāo)志外,還用作中斷請求標(biāo)志及外部中斷請求的觸發(fā)方式控制。其中溢出標(biāo)志,也就是中斷請求標(biāo)志。TCON用于中斷請求標(biāo)志,格式如下:位地址TCON

字節(jié)地址88HD7D6D5D4D3D2D1D08FH8DH8BH8AH89H88HTF1TF0IE1IT1IE0IT0IT0:中斷請求觸發(fā)方式。當(dāng)IT0=0時,電平觸發(fā);當(dāng)IT0=1時,下降沿觸發(fā)。為低電平有效。IT1:中斷請求觸發(fā)方式。作用同IT0。IE0:中斷請求標(biāo)志位。當(dāng)有請求時,IE0置1,向CPU請求中斷,否則為0。IE1:中斷請求標(biāo)志位。作用同IE0。TF0:片內(nèi)T0溢出中斷請求標(biāo)志位,T0溢出時,TF0置1,向CPU請求中斷,否則為0。TF1:片內(nèi)T1溢出中斷請求標(biāo)志位,作用同TF0。位地址99H98H

字節(jié)地址98HSCOND7D6D5D4D3D2D1D0TIRI2.SCON用于中斷請求標(biāo)志串行口控制寄存器的低2位(TI和RI)是串行口的發(fā)送中斷請求標(biāo)志和接收中斷請求標(biāo)志,其格式如下:TI:串行口發(fā)送中斷請求標(biāo)志位,當(dāng)發(fā)送完一個字節(jié)或發(fā)送停止位時TI置1,向CPU請求中斷處理,TI由中斷服務(wù)程序清0。

RI:串行口接收中斷請求標(biāo)志位,當(dāng)接收完一個字節(jié)或停止位時RI置1,向CPU請求中斷處理,RI也要由中斷服務(wù)程序清0。3.8.2中斷控制1.中斷允許寄存器IE

由控制字來實現(xiàn),中斷控制寄存器有兩個,一個是中斷允許寄存器,另一個是中斷優(yōu)先級寄存器,其格式如下:AFHACHABHAAHA9HA8H位地址

字節(jié)地址A8HIED7D6D5D4D3D2D1D0EAESET1EX1ET0EX0EA:開中斷標(biāo)志位。EA=1,CPU開中斷;EA=0,CPU關(guān)中斷。ES:串行口中斷允許位。ES=1,串行口允許中斷;ES=0,則不允許中斷。ET0:定時器/計數(shù)器T0中斷允許位。ET0=1,T0允許中斷;ET0=0,則不允許中斷。EX0:中斷允許位。EX0=1,INT0允許中斷;EX0=0,INT0則不允許中斷。ET1:定時器/計數(shù)器T1中斷允許位。功能同ET0。EX1:中斷允許位。功能同EX0。復(fù)位后IE清0。2.中斷優(yōu)先級寄存器IP位地址BCHBBHBAHB9HB8H

字節(jié)地址B8HIED7D6D5D4D3D2D1D0PSPT1PX1PT0PX0PS:串行口優(yōu)先級控制位。PS=1時,串行口為高優(yōu)先級中斷源;PS=0時,為低優(yōu)先級中斷源。PT0:定時器/計數(shù)器T0優(yōu)先級控制位。PT0=1時,T0為高優(yōu)先級中斷源,PT0=0時,T0為低優(yōu)先級中斷源。PX0:優(yōu)先級控制位。PX1=1時,高優(yōu)先級中斷源,PX0=0時,為低優(yōu)先級中斷源。PT1:定時器/計數(shù)器T1優(yōu)先級控制位。功能同PT0。PX1:優(yōu)先級控制位。功能同PX0。

在MCS-51單片機中,中斷優(yōu)先級分為兩級,即高優(yōu)先級和低優(yōu)先級。為此設(shè)置有兩個不可尋址的中斷優(yōu)先級觸發(fā)器,分別指示兩級中斷服務(wù)。當(dāng)CPU為高級中斷請求服務(wù)時,高優(yōu)先級觸發(fā)器置1,否則清0。當(dāng)幾個相同優(yōu)先級別的中斷源同時請求時,CPU通過內(nèi)部查詢來確定先為哪一個中斷請求服務(wù),查詢優(yōu)先級順序如表3.7所示。

在單片機工作時,中斷控制由程序來實現(xiàn)。例如CPU開中斷可由以下兩條指令來實現(xiàn):SETB0AFH;EA置1或ORLIE,#80H;按位“或”,EA置1CPU關(guān)中斷可由以下兩條指令來實現(xiàn):CLR0AFH;EA清0或ANLIE,#7FH;按位“與”,EA清0又如設(shè)置外部中斷源為高優(yōu)先級,外部中斷源為低優(yōu)先級,可由下面指令來實現(xiàn):SETB0B8H;PX0置1CLR0BAH;PX1清0或MOVIP,#000××0×1B;PX0置1,PX1清0中斷源

同一級中斷源優(yōu)先順序

外部

定時器/計數(shù)器T0

外部

定時器/計數(shù)器T1串行接口

表3.7同一級中斷源優(yōu)先順序3.中斷響應(yīng)處理

MCS-51單片機規(guī)定CPU在執(zhí)行RETI或訪問IE、IP寄存器的指令時不響應(yīng)中斷請求,只有上述指令執(zhí)行完后的下一條指令周期的末尾才去響應(yīng)新的中斷請求。響應(yīng)后由硬件清除中斷請求標(biāo)志(TI和RI除外),保護斷點,轉(zhuǎn)向中斷服務(wù)程序的入口,執(zhí)行中斷服務(wù)程序。各中斷源服務(wù)程序的入口地址如表3.8所示。在保護斷點時,沒有保護PSW的狀態(tài),若需要保護,可由中斷服務(wù)程序完成。在實際應(yīng)用中,保護現(xiàn)場由壓棧指令(PUSH)來實現(xiàn),恢復(fù)現(xiàn)場由彈棧指令(POP)來實現(xiàn)。對于工作寄存器R0~R7還可以使用寄存器工作區(qū)切換的方式來進行。下面舉例說明。表3.8中斷服務(wù)程序入口中斷源入口地址外部

0003H定時器/計數(shù)器T0000BH外部0013H定時器/計數(shù)器T1001BH串行接口0023H【例3.3】設(shè)串行口工作方式2,有奇偶校驗,數(shù)據(jù)發(fā)送中斷服務(wù)程序如下:RTI:PUSHPSW;壓棧保護現(xiàn)場

PUSHASETBPSW.4;寄存器工作區(qū)切換

CLRPSW.3CLRTIMOVA,@R0MOVC,PMOVSBUF,A;數(shù)據(jù)發(fā)送

INCR0POPA;恢復(fù)現(xiàn)場

POPPSWRETI

;中斷返回對于外部中斷源,若采用電平觸發(fā)方式,中斷返回之前外部中斷請求信號必須撤銷。否則,中斷返回后CPU會再次響應(yīng)這一中斷請求。3.9MCS-51單片機外部特性3.9.1引腳功能3.9.2復(fù)位與掉電保護3.9.1引腳功能MCS-51單片機有40個引腳,雙列直插式結(jié)構(gòu),其引腳分布與邏輯符號如圖3.12所示,包括4個8位并行I/O接口、6條控制信號線和2條電源線。另外,P3口具有第2功能。圖3.12

89C51引腳圖與符號圖(a)引腳圖14023933843753663573483393210311130122913281427152616251724182319222021P10P11P12P13P14P15P16P17RST/VPDRXDP30TXDP31INT0P32INT1P33T0P34T1P35WRP36RDP37XTAL1XTAL2VSSVCCP00P01P02P03P04P05P06P07EA/VDDALE/PROGPSENP27P26P25P24P23P22P21P208051(b)符號圖XATL1XATL2EA/VDDPSENALE/PROGRXDTXDINT0INT1T0T1WRRDP0口地址/數(shù)據(jù)總線P1口P2口地址總線VSSVCCRST/VPD8051并行口P0:8位雙向I/O接口,連接外部存儲器低8位地址線和8位數(shù)據(jù)線。并行口P1:8位準(zhǔn)雙向I/O接口,在編程和校驗時接收低8位地址,每一位可以獨立地輸入/輸出。并行口P2:8位準(zhǔn)雙向I/O接口,連接外部存儲器高8位地址線,在編程和校驗時接收高位地址和控制信號。并行口P3:8位準(zhǔn)雙向I/O接口,另第二功能。RXD/P3.0:串行通道接收器的數(shù)據(jù)輸入(異步)或數(shù)據(jù)輸入/輸出(同步)端。TXD/P3.1:串行通道發(fā)送器的數(shù)據(jù)輸出(異步)或時鐘輸出(同步)端。

/P3.2:中斷0輸入或定時器/計數(shù)器T0的門控輸入。

/P3.3:中斷1輸入或定時器/計數(shù)器T1的門控輸入。T0/P3.4:定時器/計數(shù)器T0外部計數(shù)脈沖輸入。T1/P3.5:定時器/計數(shù)器T1外部計數(shù)脈沖輸入。/P3.6:外部數(shù)據(jù)存儲器寫命令,低電平有效。

/P3.7:外部數(shù)據(jù)存儲器讀命令,低電平有效。RST/VPD:復(fù)位及提供后備電源。.ALE/:ALE地址輸出鎖存信號,EPROM編程時輸入編程脈沖。:外部程序存儲器讀出選通信號,讀出內(nèi)容送并行口P0。

/VDD:是內(nèi)部/外部程序存儲器選擇信號,高電平,選擇內(nèi)部程序存儲器,低電平,選擇外部程序存儲器。對于內(nèi)部沒有程序存儲器的單片機,必須接地;EPROM編程時VDD接21V電源。XTAL1XTAL2:外接晶體振蕩器或外部時鐘。VCC:+5V電源。VSS:接地端。3.9.2復(fù)位與掉電保護

1.RST/VPDRST/VPD引腳的內(nèi)部電路如圖3.13所示,一方面經(jīng)施密特觸發(fā)器與內(nèi)部復(fù)位電路連接,另一方面經(jīng)二極管與內(nèi)部RAM連接。其作用是為內(nèi)部電路提供復(fù)位信號和在掉電時為RAM存儲器提供備用電源。圖3.13RST/VPDD電路內(nèi)部RAM施密特觸發(fā)器復(fù)位電路VCCRST/VPDVSS2.復(fù)位為了復(fù)位可靠,在復(fù)位電路的輸入端使用了一個施密特觸發(fā)器。每個機器周期的S5P2時刻采樣施密特觸發(fā)器的輸出,若連續(xù)兩次采樣到高電平才確認(rèn)為是復(fù)位信號。因此要求復(fù)位信號(高電平)應(yīng)在RST端至少保持2個機器周期。CPU在RST端變?yōu)楦唠娖降牡诙€機器周期響應(yīng)復(fù)位信號,使ALE和端變?yōu)檩斎霠顟B(tài),并將內(nèi)部寄存器置為初始狀態(tài)。以后每個機器周期復(fù)位一次,直到RST端變?yōu)榈碗娖剑◤?fù)位信號消失)為止。復(fù)位不影響內(nèi)部存儲器RAM,復(fù)位后各特殊功能寄存器的狀態(tài)如表3.2(2)所示。上電復(fù)位電路如圖3.14所示,在RST端與VCC端之間接一個10μF的電容器,只要電源電壓VCC的上升時間不超過1mS,即可在接通電源時對單片機進行一次復(fù)位,即上電復(fù)位。PSEN3.掉電保護

MCS-51單片機的VPD引腳除作為復(fù)位信號輸入端外還作為備用電源輸入端。一旦主電源VCC出現(xiàn)故障后可由VPD接通備用電源。備用電源輸入電路有多種,圖3.15所示僅是其中一種。電源故障時,可通過向CPU發(fā)中斷請求。CPU中斷響應(yīng)后,執(zhí)行中斷服務(wù)程序,將有關(guān)數(shù)據(jù)送入內(nèi)部RAM保存,然后由P1.0輸出0信號(低電平),觸發(fā)單穩(wěn)電路555。若單穩(wěn)電路定時輸出后,VCC仍然存在,則是假報警,復(fù)位后重新工作。若VCC已掉電,則由單穩(wěn)電路接通備用電源,直到VCC恢復(fù)正常。也可由CPU輸出控制信號,啟動系統(tǒng)備用電源。圖3.14上電復(fù)位電路-10μF+

VCC8051RST/VPPVCC圖3.15掉電保護備用電源P1.0RST/VPD1234555

在8751單片機內(nèi)部設(shè)置有4K的EPROM只讀存儲器,因此也就存在著編程、檢查和擦除的問題。3.10EPROM的編程、檢查與擦除3.10.1EPROM編程3.10.2程序檢查與擦除3.10.1EPROM編程EPROM編程時一般采用4~6MHz的振蕩頻率。EPROM單元地址由P0口和P2口的P2.0~P2.3輸入,寫入數(shù)據(jù)由P0口輸入,P2.4~P2.6和接低電平,P2.7接高電平,RST接2.5V高電平,/VDD端平時為TTL高電平,EPROM編程時加+21V電壓,ALE/加50ms的低電平編程脈沖。芯片連接與時序如圖3.16所示。PROG地址0000H…0FFFHA7~A0A11~A8TTL高電平4~6MHz+5V

編程數(shù)據(jù)g

ALE/PROGEA/VDDV1H1(+2.5V)P1口P23~P20P24P25P26P27XTAL2

XTAL1VSSP0口VCCALEEARSTPSEN8751(a)電路連接21±0.5VTTL低電平TTL高電平EA/VDD△t≥3個機器周期±10μS50±1mS△t△tTTL高電平數(shù)據(jù)P0口ALE/PROGP1口P23~P20地址TTL低電平(b)時序圖3.168751EPROM編程電路與時序3.10.2程序檢查與擦除

1.程序檢查程序檢查主要是將8751/8051單片機中EPROM/ROM的內(nèi)容讀出檢查。程序檢查時的振蕩頻率也是4~6MHz。EPROM/ROM讀出時,單元地址由P0口和P2口的P2.0~P2.3輸入,P2.4~P2.6和接低電平,ALE和接高電平,RST接2.5V。數(shù)據(jù)由P0口輸出,P2.7作為讀出選通信號。當(dāng)P2.7為高電平時P0口浮空;P2.7為低電平時,數(shù)據(jù)由P0口輸出。

2.EPROM擦除8751單片機內(nèi)部E2PROM的擦除和其它E2PROM芯片的擦除方法一樣,通過紫外線照射來擦除。擦除后,可以重新寫入。一般日光燈和太陽光中都包含有紫外線。如果8751芯片上的窗口長期暴露在日光燈或太陽光下,其中的數(shù)據(jù)就會丟失。因此,8751單片機在寫入后,其上方的窗口須用黑紙或金屬膜覆蓋。3.1189C51單片機的組成與特點1.內(nèi)部組成與特點

89C51單片機是在MCS-51的基礎(chǔ)上增添了一些新的功能部件而制造成功的。但是,由于生產(chǎn)廠商不同,因此所推出同一類型的產(chǎn)品在結(jié)構(gòu)上往往略有差異。下面取其共有的部分,稱之為核,予以介紹,內(nèi)部組成如圖3.17所示。圖3.1789C51單片機內(nèi)部組成TH1TH0TCONTL1TL0TMOD定時器T0/T1T2CONTH2RCAP2HT2MODTL2RCAP2L定時器T2IEIPSCONSBUF串行口中斷控制IPHP0口P1口P2口P3口P0P1P2P3快閃存儲器FlashROM4K/8K/16/32KRAM256BAUXRAUXR1ERAM256/768B內(nèi)部程序/數(shù)據(jù)存儲器節(jié)電與雙DPTR控制暫存TMP2暫存TMP1狀態(tài)PSW累加器A寄存器B算術(shù)邏輯部件ALUPCHPCLOSC定時控制電路PCONIP程序計數(shù)器雙DPTRCKCON堆棧SP指針DPTR數(shù)據(jù)指針時鐘控制SADDRSADEN用于地址識別的地址與地址掩碼寄存器

主要包括8位CPU、片內(nèi)Flash程序存儲器、數(shù)據(jù)存儲器、布爾處理機、3個16位定時器/計數(shù)器、4個8位并行輸入輸出接口、一個全雙工UART等。

(1)CPUCPU采用CISC結(jié)構(gòu),字長8位,可進行加、減、乘、除以及“與”、“或”、“非”、“移位”等算術(shù)邏輯運算。主要包括算術(shù)邏輯部件ALU、累加器Acc、寄存器B、暫存寄存器TMP1/2、通用/專用寄存器組以及程序狀態(tài)寄存器PSW等。內(nèi)設(shè)布爾處理器,可進行“位”操作。(2)存儲器存儲器分為程序存儲器和數(shù)據(jù)存儲器。早期MCS-51采用EPROM作為程序存儲器,從80C51開始使用快閃FLASH存儲器,容量為4KB至64KB,可支持系統(tǒng)中燒錄程序(ISP)和在應(yīng)用中燒錄程序(IAP)。數(shù)據(jù)存儲器采用RAM,容量較小,一般為256,其中高位地址(80H~FFH)與特殊功能寄存器(SFR)重疊。為了擴大內(nèi)部RAM的容量,在89C51之后新增片內(nèi)RAM(即ERAM)256B/768B,在Philips的P89C51Rx2中新增片內(nèi)RAM6

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論