- 汽車單片機(jī)應(yīng)用技術(shù)(第2版)
- 黃鵬
- 4961字
- 2020-08-28 17:05:40
1.2 MCS-51單片機(jī)結(jié)構(gòu)和原理
1.2.1 MCS-51單片機(jī)的內(nèi)部組成及信號引腳
MCS-51單片機(jī)的典型芯片是8031、8051、8751。8051內(nèi)部有4KB ROM,8751內(nèi)部有4KB EPROM,8031片內(nèi)無ROM;除此之外,三者的內(nèi)部結(jié)構(gòu)及引腳完全相同。因此以8051為例,說明本系列單片機(jī)的內(nèi)部組成及信號引腳。
1.8051單片機(jī)的基本組成
8051單片機(jī)的基本組成如圖1-3所示。各部分情況介紹如下:

圖1-3 8051單片機(jī)結(jié)構(gòu)框圖
(1)中央處理器(CPU)中央處理器是單片機(jī)的核心,完成運算和控制功能。MCS-51的CPU能處理8位二進(jìn)制數(shù)或代碼。
(2)內(nèi)部數(shù)據(jù)存儲器(內(nèi)部RAM)8051芯片中共有256個RAM單元,但其中后128單元被專用寄存器占用,能作為寄存器供用戶使用的只是前128單元,用于存放可讀/寫的數(shù)據(jù)。因此通常所說的內(nèi)部數(shù)據(jù)存儲器就是指前128單元,簡稱內(nèi)部RAM。
(3)內(nèi)部程序存儲器(內(nèi)部ROM)8051共有4KB掩膜ROM,用于存放程序和原始表格常數(shù),因此稱之為程序存儲器,簡稱內(nèi)部ROM。
(4)定時器/計數(shù)器8051共有2個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)功能,當(dāng)定時/計數(shù)器產(chǎn)生溢出時,可用中斷方式控制程序轉(zhuǎn)向。
(5)并行輸入輸出(I/O)口MCS-51共有4個8位的并行I/O口(P0、P1、P2、P3),以實現(xiàn)數(shù)據(jù)的并行輸入輸出。在項目實踐中我們使用了P1口,通過P1口P1.0連接1個汽車信號燈。
(6)全雙工串行口MCS-51單片機(jī)有一個全雙工的串行口,以實現(xiàn)單片機(jī)和其他設(shè)備之間的串行數(shù)據(jù)傳送。該串行口功能較強(qiáng),既可作為全雙工異步通信收發(fā)器使用,也可作為同步移位器使用。
(7)中斷控制系統(tǒng)MCS-51單片機(jī)的中斷功能較強(qiáng),以滿足控制應(yīng)用的需要。8051共有5個中斷源,即外中斷2個,定時/計數(shù)中斷2個,串行中斷1個。全部中斷分為高級和低級共兩個優(yōu)先級別。
(8)時鐘電路MCS-51芯片的內(nèi)部有時鐘電路,但石英晶體和微調(diào)電容需外接。時鐘電路為單片機(jī)產(chǎn)生時鐘脈沖序列。系統(tǒng)允許的晶振頻率一般為6MHz和12MHz。
從上述內(nèi)容可以看出,MCS-51雖然是一個單片機(jī)芯片,但作為計算機(jī)應(yīng)該具有的基本部件它都包括。因此,實際上它已是一個簡單的微型計算機(jī)系統(tǒng)了。
2.MCS-51的信號引腳
MCS-51是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,引腳排列如圖1-4所示。

圖1-4 MCS-51引腳圖
(1)電源及時鐘引腳(4個)
● VSS(20):地線。
● VCC(40):+5V電源。
● XTAL1(19)和XTAL2(18):外接晶體引線端。當(dāng)使用芯片內(nèi)部時鐘時,這兩個引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,用于接外部時鐘脈沖信號。
(2)控制線引腳(4個)
● ALE(30):地址鎖存控制信號。
在系統(tǒng)擴(kuò)展時,ALE用于控制把P 0口輸出的低8位地址鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。此外由于ALE是以晶振1/6的固定頻率輸出的正脈沖,因此可作為外部時鐘或外部定時脈沖使用。
● (29):外部程序存儲器讀選通信號。在讀外部ROM時
有效(低電平),以實現(xiàn)外部ROM單元的讀操作。
● (31):訪問程序存儲器控制信號。當(dāng)
信號為低電平時,對ROM的讀操作限定在外部程序存儲器;而當(dāng)
信號為高電平時,對ROM的讀操作則是從內(nèi)部程序存儲器開始,并可延至外部程序存儲器。
● RST(9):復(fù)位信號。當(dāng)輸入的復(fù)位信號延續(xù)2個機(jī)器周期以上高電平即為有效,用以完成單片機(jī)的復(fù)位初始化操作。
(3)并行I/O引腳(32個,分成4個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引腳或第二功能引腳。
1.2.2 MCS-51單片機(jī)的數(shù)據(jù)存儲器
MCS-51單片機(jī)的數(shù)據(jù)存儲器分為內(nèi)部RAM和外部RAM,RAM的配置圖如圖1-5所示。8051片內(nèi)RAM共有128B,分成工作寄存器區(qū)、位尋址區(qū)、通用RAM區(qū)三部分。

圖1-5 MCS-51單片機(jī)RAM的配置圖
a)內(nèi)部RAM及SFR b)外部RAM
基本型單片機(jī)片內(nèi)RAM地址范圍是00H~7FH。增強(qiáng)型單片機(jī)(如80C52)片內(nèi)除地址范圍在00H~7FH的128B RAM外,又增加了80H~FFH的高128B的RAM。增加的這一部分RAM僅能采用間接尋址方式訪問(以與特殊功能寄存器SFR的訪問相區(qū)別)。
片外RAM地址空間為64KB,地址范圍是0000H~FFFFH。與程序存儲器地址空間不同的是,片外RAM地址空間與片內(nèi)RAM地址空間在地址的低端0000H~007FH是重疊的。這就需要采用不同的尋址方式加以區(qū)分。訪問片外RAM時采用專門的指令MOVX實現(xiàn),這時讀()或?qū)懀?img alt="" src="https://epubservercos.yuewen.com/B182D4/17656815906264106/epubprivate/OEBPS/Images/16_03.jpg?sign=1754444478-nJiAqFy2qEb1kPjOuS84Sin7Zwcbq4UI-0-231c2956bcb865dee9349be19bf34380" style="height:1.3em;">)信號有效;而訪問片內(nèi)RAM使用MOV指令,無讀寫信號產(chǎn)生。另外,與片內(nèi)RAM不同,片外RAM不能進(jìn)行堆棧操作。
1.內(nèi)部數(shù)據(jù)存儲器低128單元
8051的內(nèi)部RAM共有256個單元,通常把這256個單元按其功能劃分為兩部分:低128單元(單元地址00H~7FH)和高128單元(單元地址80H~FFH),低128單元的配置情況見表1-2。
表1-2 低128單元的配置

低128單元是單片機(jī)的真正RAM存儲器,按其用途劃分為三個區(qū)域:
(1)寄存器區(qū)8051單片機(jī)片內(nèi)RAM低端的00H~1FH共32B,分成4個工作寄存器組,每組占8個單元。
● 寄存器0組:地址00H~07H
● 寄存器1組:地址08H~0FH
● 寄存器2組:地址10H~17H
● 寄存器3組:地址18H~1FH
在任一時刻,CPU只能使用其中的一組寄存器,并且把正在使用的那組寄存器稱為當(dāng)前寄存器組。到底是哪一組,由程序狀態(tài)字寄存器PSW中RS1、RS0位的狀態(tài)組合來決定。
通用寄存器為CPU提供了就近數(shù)據(jù)存儲的便利,有利于提高單片機(jī)的運算速度。此外,使用通用寄存器還能提高程序編制的靈活性。因此,在單片機(jī)的應(yīng)用編程中應(yīng)充分利用這些寄存器,以簡化程序設(shè)計,提高程序運行速度。
(2)位尋址區(qū) 位的含義:1盞燈亮或者說1根線的電平的高低,可以代表2種狀態(tài):0和1。實際上這就是1個二進(jìn)制位,用bit表示。字節(jié)的含義:1根線可以表示0和1,2根線可以表示00、01、10、11共4種狀態(tài),而3根線可以表達(dá)0~7共8種狀態(tài),計算機(jī)中通常將8根線放在一起,同時計數(shù),就可以表示0~255一共256種狀態(tài)。這8根線或者8位就稱為一個字節(jié)(BYTE)。
內(nèi)部RAM的20H~2FH單元,既可作為一般RAM單元使用,進(jìn)行字節(jié)操作,也可以對單元中每一位進(jìn)行位操作,因此,把該區(qū)稱為位尋址區(qū)。位尋址區(qū)共有16個RAM單元,計128位,位地址為00H~7FH。MCS-51具有布爾處理機(jī)功能,這個位尋址區(qū)可以構(gòu)成布爾處理機(jī)的存儲空間。這種位尋址能力是MCS-51的一個重要特點。表1-3為片內(nèi)RAM位尋址區(qū)的位地址表。
表1-3 片內(nèi)RAM位尋址區(qū)的位地址

(3)用戶RAM區(qū) 在內(nèi)部RAM低128單元中,通用寄存器占去32個單元,位尋址區(qū)占去16個單元,剩下80個單元,這就是供用戶使用的一般RAM區(qū),其單元地址為30H~7FH。對用戶RAM區(qū)的使用沒有任何規(guī)定或限制。但在一般應(yīng)用中常把堆棧開辟在此區(qū)中。
2.內(nèi)部數(shù)據(jù)存儲器高128單元
內(nèi)部RAM的高128單元是供給專用寄存器使用的,其單元地址為80H~FFH。因這些寄存器的功能已作專門規(guī)定,故而稱之為專用寄存器(Special Function Register, SFR),也可稱為特殊功能寄存器。
8051共有21個專用寄存器,現(xiàn)對其中部分寄存器進(jìn)行簡單介紹。
1)程序計數(shù)器(PC——Program Counter)。PC是一個16位的計數(shù)器,它總是存放著下一個要取的指令的16位存儲單元地址,它的作用是控制程序的執(zhí)行順序。其內(nèi)容為將要執(zhí)行指令的地址,尋址范圍達(dá)64KB。PC有自動加1功能,從而實現(xiàn)程序的順序執(zhí)行。PC沒有地址,是不可尋址的。因此,用戶無法對它進(jìn)行讀寫。但可以通過轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)容,以實現(xiàn)程序的轉(zhuǎn)移。因地址不在SFR之內(nèi),一般不計作專用寄存器。
2)與運算器相關(guān)的寄存器(3個)。
① 累加器(ACC——Accumulator)。累加器為8位寄存器,是最常用的專用寄存器,功能較多,地位重要。它既可用于存放操作數(shù),也可用來存放運算的中間結(jié)果。MCS-51單片機(jī)中大部分單操作數(shù)指令的操作數(shù)就取自累加器,許多雙操作數(shù)指令中的一個操作數(shù)也取自累加器。
② B寄存器。B寄存器是一個8位寄存器,主要用于乘除運算。乘法運算時,B是乘數(shù)。乘法操作后,乘積的高8位存于B中,除法運算時,B是除數(shù)。除法操作后,余數(shù)存于B中。此外,B寄存器也可作為一般數(shù)據(jù)寄存器使用。
③ 程序狀態(tài)字(PSW——Program Status Word)。程序狀態(tài)字內(nèi)部含有程序在運行時的相關(guān)信息,其詳細(xì)情況見表1-4。現(xiàn)說明如下:
表1-4 程序狀態(tài)字PSW

進(jìn)位標(biāo)志CY(Carry),可簡寫為C,它的用途如下:
● 當(dāng)CPU在做加法運算時,若有進(jìn)位,則CY=1;否則CY=0。
● 當(dāng)CPU在做減法運算時,若有借位,則CY=1;否則CY=0。
● 作為位處理的運算中心即位累加器。
輔助進(jìn)位標(biāo)志AC(Auxiliary Carry)
● 在相加的過程中,若兩數(shù)的bit3相加后有進(jìn)位產(chǎn)生,則AC=1;否則AC=0。
● 在相減的過程中,若bit3不夠減,必須向bit4借位,則AC=1;否則AC=0。
用戶標(biāo)志位F0(Flag Zero)
● 由用戶根據(jù)程序執(zhí)行的需要通過軟件來使它置位或清除。
RS1、RS0:工作寄存器組選擇位
● 80C51的RAM區(qū)域地址00H~1FH單元(32B)為工作寄存器區(qū),共分四組,每組有8個8位寄存器,用R0~R7表示。
● RS1、RS0可以用軟件來置位或清零以確定當(dāng)前使用的工作寄存器組。
溢出標(biāo)志OV(Overflow)
● 當(dāng)兩個數(shù)相加時,若bit6及bit7同時有進(jìn)位或沒有進(jìn)位,則OV=0;否則OV=1。
● 當(dāng)兩個數(shù)相減時,若bit6及bit7同時有借位或沒有借位,則OV=0;否則OV=1。
● 根據(jù)執(zhí)行運算指令后OV的狀態(tài),可判斷累加器中的結(jié)果是否正確。
奇偶位標(biāo)志P(Parity)
● 對于累加器的內(nèi)容,若等于1的位有奇數(shù)個,則P=1;否則P=0。
3)與指針相關(guān)的寄存器(3個)。
① 數(shù)據(jù)指針(DPTR)。數(shù)據(jù)指針為16位寄存器,它是MCS-51中一個16位寄存器。編程時,DPTR既可以按16位寄存器使用,也可以按兩個8位寄存器分開使用,即:
DP H DPTR高位字節(jié)
DP L DPTR低位字節(jié)
DPTR通常在訪問外部數(shù)據(jù)存儲器時作地址指針使用,由于外部數(shù)據(jù)存儲器的尋址范圍為64KB,故把DPTR設(shè)計為16位。
② 堆棧指針(SP——Stack Pointer)。堆棧是一個特殊的存儲區(qū),用來暫存數(shù)據(jù)和地址,它是按“先進(jìn)后出”的原則存取數(shù)據(jù)的。堆棧共有兩種操作:進(jìn)棧和出棧。
MCS-51單片機(jī)由于堆棧設(shè)在內(nèi)部RAM中,因此SP是一個8位寄存器。系統(tǒng)復(fù)位后,SP的內(nèi)容為07H,使得堆棧實際上從08H單元開始。但08H~1FH單元分別屬于工作寄存器1~3區(qū),若程序中要用到這些區(qū),最好把SP值改為1FH或更大的值。一般地,堆棧最好在內(nèi)部RAM的30H~7FH單元中開辟。SP的內(nèi)容一經(jīng)確定,堆棧的位置也就跟著確定下來,由于SP可初始化為不同值,因此堆棧位置是浮動的。
4)與接口相關(guān)的寄存器(7個)。
① 并行I/O接口P0、P1、P2、P3,均為8位;通過對這4個寄存器的讀和寫,可以實現(xiàn)數(shù)據(jù)從相應(yīng)接口的輸入和輸出。
② 串行接口數(shù)據(jù)緩沖器SBUF。
③ 串行接口控制寄存器SCON。
④ 串行通信波特率倍增寄存器PCON(由于一些位還與電源控制相關(guān),所以又稱為電源控制寄存器)。
5)與中斷相關(guān)的寄存器(2個)。
① 中斷允許控制寄存器IE。
② 中斷優(yōu)先級控制寄存器IP。
6)與定時/計數(shù)器相關(guān)的寄存器(6個)。
① 定時/計數(shù)器T0的2個8位計數(shù)初值寄存器TH0、TL0,它們可以構(gòu)成16位的計數(shù)器,TH0存放高8位,TL0存放低8位。
② 定時/計數(shù)器T1的2個8位計數(shù)初值寄存器TH1、TL1,它們可以構(gòu)成16位的計數(shù)器,TH1存放高8位,TL1存放低8位。
③ 定時/計數(shù)器的工作方式寄存器TMOD。
④ 定時/計數(shù)器的控制寄存器TCON。
3.專用寄存器中的字節(jié)尋址和位地址
MCS-51系列單片機(jī)有21個可尋址的專用寄存器,其中有11個專用寄存器(字節(jié)地址能被8整除的)是可以位尋址的。MCS-51專用寄存器地址見表1-5。對專用寄存器只能使用直接尋址方式,書寫時既可使用寄存器符號,也可使用寄存器單元地址。
表1-5 MCS-51專用寄存器地址

(續(xù))

1.2.3 MCS-51單片機(jī)的程序存儲器
MCS-51的程序存儲器用于存放編好的程序和表格常數(shù),以8051為例,其配置圖如圖1-6所示。8051片內(nèi)有4KB的ROM,8751片內(nèi)有4KB的EPROM,8031片內(nèi)無程序存儲器。MCS-51的片外最多能擴(kuò)展64KB程序存儲器,片內(nèi)外的ROM是統(tǒng)一編址的。如端保持高電平,8051的程序計數(shù)器PC在0000H~0FFFH地址范圍內(nèi)(即前4KB地址)是執(zhí)行片內(nèi)ROM中的程序,當(dāng)PC在1000H~FFFFH地址范圍時,自動執(zhí)行片外程序存儲器中的程序;當(dāng)
保持低電平時,只能尋址外部程序存儲器,片外存儲器可以從0000H開始編址。

圖1-6 8051程序存儲器配置圖
a)ROM配置 b)ROM低端的特殊單元
MCS-51的程序存儲器中有些單元具有特殊功能,使用時應(yīng)予以注意。
其中一組特殊單元是0000H~0002H。系統(tǒng)復(fù)位后,PC=0000H,單片機(jī)從0000H單元開始取指令執(zhí)行程序。如果程序不從0000H單元開始,應(yīng)在這三個單元中存放一條無條件轉(zhuǎn)移指令,以便直接轉(zhuǎn)去執(zhí)行指定的程序。
還有一組特殊單元是0003H~002AH。共40個單元,這40個單元被均勻地分為5段,作為5個中斷源的中斷地址區(qū)。其中:
● 0003H~000AH外部中斷0中斷地址區(qū)
● 000BH~0012H定時器/計數(shù)器0中斷地址區(qū)
● 0013H~001AH外部中斷1中斷地址區(qū)
● 001BH~0022H定時器/計數(shù)器1中斷地址區(qū)
● 0023H~002AH串行中斷地址區(qū)
中斷響應(yīng)后,按中斷種類,自動轉(zhuǎn)到各中斷區(qū)的首地址去執(zhí)行程序。因此,在中斷地址區(qū)中理應(yīng)存放中斷服務(wù)程序。但通常情況下,8個單元難以存下一個完整的中斷服務(wù)程序。因此,通常也是從中斷地址區(qū)首地址開始存放一條無條件轉(zhuǎn)移指令,以便中斷響應(yīng)后,通過中斷地址區(qū),再轉(zhuǎn)到中斷服務(wù)程序的實際入口地址去。
- 《危險貨物道路運輸規(guī)則》實用指南
- 鐵路人事人才工作實踐與研究(2013)
- 交通運輸碳減排研究
- 新能源汽車動力電池及充電系統(tǒng)檢修
- 軌道列車工業(yè)設(shè)計方法與實例
- 重型卡車維修技術(shù)手冊 變速器分冊
- 圖解汽車自動變速器關(guān)鍵技術(shù)與維修
- 規(guī)模化電動汽車與智能電網(wǎng)互動關(guān)鍵技術(shù)與應(yīng)用
- 車用同步電機(jī)噪聲與振動
- 電焊工
- 全程圖解電動汽車構(gòu)造原理與維修
- 軌道交通行車調(diào)度組織實踐指導(dǎo)書
- 汽車文化(微課版)
- 突發(fā)事故(傷病)應(yīng)急處置
- 城市軌道交通安全管理(第二版)