第2章89c51單片機(jī)硬件結(jié)構(gòu)和原理_第1頁(yè)
第2章89c51單片機(jī)硬件結(jié)構(gòu)和原理_第2頁(yè)
第2章89c51單片機(jī)硬件結(jié)構(gòu)和原理_第3頁(yè)
第2章89c51單片機(jī)硬件結(jié)構(gòu)和原理_第4頁(yè)
第2章89c51單片機(jī)硬件結(jié)構(gòu)和原理_第5頁(yè)
已閱讀5頁(yè),還剩109頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2023/1/213:481§2.1 MCS-51單片機(jī)的結(jié)構(gòu)§2.2 MCS-51單片機(jī)引腳及其功能§2.3 89C51存儲(chǔ)器配置§2.4 CPU時(shí)序§2.5 復(fù)位及復(fù)位電路§2.6 89C51單片機(jī)的低功耗工作方式返回第二章 MCS-51單片機(jī)的結(jié)構(gòu)和原理§2.7 輸出/輸入端口結(jié)構(gòu)

§2.8思考題與習(xí)題2023/1/213:482有哪些資源資源分布(管腳、電路、結(jié)構(gòu))如何利用:語(yǔ)言、編程、定時(shí)、串口、擴(kuò)展2023/1/213:483§2.1 MCS-51單片機(jī)的結(jié)構(gòu)§2.1.1MCS-51單片機(jī)的基本組成§2.1.2MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)返回2023/1/213:48442.1AT89S51單片機(jī)的硬件組成片內(nèi)結(jié)構(gòu)如圖2-1所示。把作為控制應(yīng)用所必需的基本功能部件都集成在一個(gè)集成電路芯片上。有如下功能部件和特性:(1)8位微處理器(CPU);(2)數(shù)據(jù)存儲(chǔ)器(128BRAM);(3)程序存儲(chǔ)器(4KBFlashROM);(4)4個(gè)8位可編程并行I/O口(P0口、P1口、P2口、P3口);(5)1個(gè)全雙工的異步串行口;(6)2個(gè)可編程的16位定時(shí)器/計(jì)數(shù)器;89C51單片機(jī)結(jié)構(gòu)框圖89C51CPU振蕩器和時(shí)序OSC64KB總線擴(kuò)展控制器數(shù)據(jù)存儲(chǔ)器256字節(jié)RAM/SFR2×16位定時(shí)器/計(jì)數(shù)器可編程I/O程序存儲(chǔ)器4KBROM可編程全雙工串行口外中斷內(nèi)中斷控制并行口串行通信外部時(shí)鐘源外部事件計(jì)數(shù)返回2023/1/213:486一、組成一個(gè)8位的微處理器CPU。返回2023/1/213:487一、組成

用以存放可以讀/寫(xiě)的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù)等。片內(nèi)數(shù)據(jù)存儲(chǔ)器(RAM128B/256B):返回2023/1/213:488一、組成

用以存放程序、一些原始數(shù)據(jù)和表格。但有一些單片機(jī)內(nèi)部不帶ROM/EPROM,如8031、8032、80C31等。片內(nèi)程序存儲(chǔ)器FlashROM

(4KB/8KB):返回2023/1/213:489一、組成

每個(gè)口可以用作輸入,也可以用作輸出。四個(gè)8位并行I/O(輸入/輸出)接口

P0~P3:返回2023/1/213:4810一、組成

每個(gè)定時(shí)/計(jì)數(shù)器都可以設(shè)置成計(jì)數(shù)方式,用以對(duì)外部事件進(jìn)行計(jì)數(shù),也可以設(shè)置成定時(shí)方式,并可以根據(jù)計(jì)數(shù)或定時(shí)的結(jié)果實(shí)現(xiàn)計(jì)算機(jī)控制。兩個(gè)定時(shí)/計(jì)數(shù)器:

返回2023/1/213:4811一、組成

可實(shí)現(xiàn)單片機(jī)與單片機(jī)或其它微機(jī)之間串行通信。一個(gè)全雙工UART的串行I/O口:返回2023/1/213:4812一、組成

但需外接晶振和電容。片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路:返回2023/1/213:4813一、組成五個(gè)中斷源的中斷控制系統(tǒng)。返回2023/1/213:4814二、MCS-51系列單片機(jī)的性能如表2-1所示。表中型號(hào)帶“C”表示所用的是CMOS工藝,具有功耗低的優(yōu)點(diǎn)。返回2023/1/213:4815§2.1.2MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)一、結(jié)構(gòu)圖二、結(jié)構(gòu)組成返回2023/1/213:4816一、結(jié)構(gòu)圖由中央處理單元(CPU)、存儲(chǔ)器(ROM及RAM)和I/O接口組成。MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)如圖2-2所示。返回P0驅(qū)動(dòng)器P2驅(qū)動(dòng)器P0鎖存器P2鎖存器RAM地址寄存器128BRAM4KBFlashROMB寄存器暫存器1暫存器2ACCSP程序地址寄存器緩沖器PC增1PCDPTR中斷、串行口和定時(shí)器PSWP1鎖存器P1驅(qū)動(dòng)器P3鎖存器P3驅(qū)動(dòng)器定時(shí)控制指令寄存器指令譯碼器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1XTAL2PSENALEEARET89C51單片機(jī)內(nèi)部結(jié)構(gòu)圖返回2023/1/213:4818指令寄存器譯碼地址譯碼程序計(jì)數(shù)器地址寄存器累加器A運(yùn)算器①②存儲(chǔ)器內(nèi)部數(shù)據(jù)總線外部地址總線AB數(shù)據(jù)緩沖器外部數(shù)據(jù)總線DB寄存器區(qū)外部控制總線CB內(nèi)部控制信號(hào)時(shí)鐘及清零四、單片機(jī)的工作過(guò)程取指過(guò)程例:MOVA,#09H74H

09H;把09H送到累加器A中執(zhí)行過(guò)程PC=0000H0001H0000H0002H0111010000001001(PC)(PC)0001H0002H0000H外部控制總線CB取指過(guò)程(PC)執(zhí)行過(guò)程你知道PC的作用嗎?2023/1/213:48191、程序存儲(chǔ)器(ROM)地址從0000H開(kāi)始。用于存放程序和表格常數(shù)。返回2023/1/213:48202、數(shù)據(jù)存儲(chǔ)器(RAM)地址為00H~7FH。用于存放運(yùn)算的中間結(jié)果、數(shù)據(jù)暫存以及數(shù)據(jù)緩沖等。這128B的RAM中有32個(gè)字節(jié)單元可指定為工作寄存器。片內(nèi)還有21個(gè)特殊功能寄存器(SFR),它們同128字節(jié)RAM統(tǒng)一編址,地址為80H~FFH。后面詳細(xì)介紹。返回2023/1/213:4821(三)、I/O接口89C51有四個(gè)8位并行I/O接口P0~P3。它們都是雙向端口,每個(gè)端口各有8條I/O線。P0-P3口四個(gè)鎖存器同RAM統(tǒng)一編址,可作為SFR來(lái)尋址。返回2023/1/213:48222.2 MCS-51單片機(jī)引腳及其功能§2.2.1 MCS-51單片機(jī)引腳§2.2.2MCS-51單片機(jī)引腳功能返回89C51單片機(jī)引腳圖返回2023/1/213:4824§2.2.289C51單片機(jī)引腳功能一、電源引腳:Vcc和Vss二、時(shí)鐘電路引腳:XTAL1和XTAL2三、控制信號(hào)引腳RST、ALE、PSEN和EA四、I/O端口P0、P1、P2和P3返回2023/1/213:4825一、電源引腳:Vcc和Vss1.Vcc(40腳):電源端,為+5V。2.Vss(20腳):接地端。返回圖2-32023/1/213:4826二、時(shí)鐘電路引腳:XTAL1和XTAL2XTAL2(18腳):接外部晶體和微調(diào)電容的一端;在89C51片內(nèi)它是振蕩電路反向放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時(shí)鐘電路時(shí),該引腳輸入外部時(shí)鐘脈沖。89C51/8031正常工作時(shí),該引腳應(yīng)有脈沖信號(hào)輸出。返回2023/1/213:4827XTAL1(19腳):接外部晶體和微調(diào)電容的另一端;在片內(nèi)它是振蕩電路反向放大器的輸入端,在采用外部時(shí)鐘時(shí),該引腳接地。二、時(shí)鐘電路引腳:XTAL1和XTAL2返回2023/1/213:4828

三、控制信號(hào)引腳:

RST、ALE、PSEN和EARST/VPD(9腳):RST:復(fù)位信號(hào)輸入端,高電平有效。當(dāng)此輸入端保持兩個(gè)機(jī)器周期的高電平時(shí),就可以完成復(fù)位操作。返回2023/1/213:4829RST/VPD(9腳):VPD

:RST引腳的第二功能,備用電源輸入端。當(dāng)主電源Vcc發(fā)生故障,降低到低電平規(guī)定值時(shí),將+5V電源自動(dòng)接入該引腳,為RAM提供備用電源,以保證RAM中的信息不丟失,使得復(fù)位后能繼續(xù)正常運(yùn)行。

三、控制信號(hào)引腳:

RST、ALE、PSEN和EA返回2023/1/213:4830ALE/PROG(30腳):ALE:地址鎖存允許信號(hào)端。正常工作時(shí),該引腳以振蕩頻率的1/6固定輸出正脈沖。CPU訪問(wèn)片外存儲(chǔ)器時(shí),該引腳輸出信號(hào)作為鎖存低8位地址的控制信號(hào)。它的負(fù)載能力為8個(gè)LS型TTL負(fù)載。三、控制信號(hào)引腳:

RST、ALE、PSEN和EA返回2023/1/213:4831ALE/PROG(30腳):PROG:是對(duì)片內(nèi)帶有4KBEPROM的8751編程寫(xiě)入時(shí)的編程脈沖輸入端。三、控制信號(hào)引腳:

RST、ALE、PSEN和EA返回2023/1/213:4832

(29腳)ProgramStoreEnable

外部程序存儲(chǔ)器讀選通信號(hào)在讀外部ROM時(shí)PSEN(非)低電平有效,以實(shí)現(xiàn)外部ROM單元的讀操作

1、內(nèi)部ROM讀取時(shí),PSEN不動(dòng)作;

2、外部ROM讀取時(shí),在每個(gè)機(jī)器周期會(huì)動(dòng)作兩次;

3、外部RAM讀取時(shí),兩個(gè)PSEN脈沖被跳過(guò)不會(huì)輸出;

4、外接ROM時(shí),與ROM的OE腳相接。2023/1/213:4833EA/Vpp(31腳):EA:外部程序存儲(chǔ)器地址允許輸入端。當(dāng)該引腳接高電平時(shí),CPU訪問(wèn)片內(nèi)EPROM/ROM并執(zhí)行片內(nèi)程序存儲(chǔ)器中的指令,但當(dāng)PC值超過(guò)0FFFH(片內(nèi)ROM為4KB)時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行片外ROM中的程序。當(dāng)該引腳接低電平時(shí),CPU只訪問(wèn)片外EPROM/ROM并執(zhí)行外部程序存儲(chǔ)器中的程序。三、控制信號(hào)引腳:

RST、ALE、PSEN和EA返回2023/1/213:4834EA/Vpp(31腳):Vpp:對(duì)8751片內(nèi)EPROM固化編程時(shí),編程電壓輸入端(12-21V)。三、控制信號(hào)引腳:

RST、ALE、PSEN和EA返回2023/1/213:4835四、I/O端口P0、P1、P2和P31、準(zhǔn)雙向2、P0口3、P1口4、P2口5、P3口返回2023/1/213:48361、準(zhǔn)雙向當(dāng)I/O口作為輸入時(shí),應(yīng)先向此口鎖存器寫(xiě)入全1,此時(shí)該口引腳浮空,可作高阻抗輸入。返回2023/1/213:48372、P0口:漏極開(kāi)路的8位準(zhǔn)雙向I/O口,每位能驅(qū)動(dòng)8個(gè)LS型TTL負(fù)載。P0口可作為一個(gè)數(shù)據(jù)輸入/輸出口;在CPU訪問(wèn)片外存儲(chǔ)器時(shí),P0口為分時(shí)復(fù)用的低8位地址總線和8位數(shù)據(jù)總線。返回2023/1/213:48383、P1口:帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O端口,每位能驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。返回2023/1/213:48394、P2口:P2口:帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O端口,每位能驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。在CPU訪問(wèn)片外存儲(chǔ)器時(shí),它輸出高8位地址。返回2023/1/213:48405、P3口:帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O端口,每位能驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。P3口除作為一般I/O口外,每個(gè)引腳都有第二功能。返回2023/1/213:4841412.1AT89S51單片機(jī)的硬件組成片內(nèi)結(jié)構(gòu)如圖2-1所示。把作為控制應(yīng)用所必需的基本功能部件都集成在一個(gè)集成電路芯片上。有如下功能部件和特性:(1)8位微處理器(CPU);(2)數(shù)據(jù)存儲(chǔ)器(128BRAM);(3)程序存儲(chǔ)器(4KBFlashROM);(4)4個(gè)8位可編程并行I/O口(P0口、P1口、P2口、P3口);(5)1個(gè)全雙工的異步串行口;(6)2個(gè)可編程的16位定時(shí)器/計(jì)數(shù)器;2023/1/213:4842§2.2.289C51單片機(jī)引腳功能一、電源引腳:Vcc和Vss二、時(shí)鐘電路引腳:XTAL1和XTAL2三、控制信號(hào)引腳RST、ALE、PSEN和EA四、I/O端口P0、P1、P2和P3返回2023/1/213:4843一、結(jié)構(gòu)1、準(zhǔn)雙向I/O口2、P0口的上拉電阻3、P3口的服用返回圖2-21

P0口某位的結(jié)構(gòu)圖當(dāng)C=0時(shí),開(kāi)關(guān)MUX被控為如圖示位置,P0口為通用I/O口;當(dāng)C=1時(shí),開(kāi)關(guān)撥向反相器3的輸出端,P0口分時(shí)作為地址/數(shù)據(jù)總線使用。返回讀引腳讀鎖存器內(nèi)部總線寫(xiě)入DCPQQ地址/數(shù)據(jù)控制CMUXVCCT1T2P0.X4312鎖存器2023/1/213:4845圖2-19

P1口某位的結(jié)構(gòu)圖返回讀引腳讀鎖存器內(nèi)部總線寫(xiě)入DCPQQVCCP1.X12鎖存器2023/1/213:4846圖2-20

P2口某位的結(jié)構(gòu)圖返回讀引腳讀鎖存器內(nèi)部總線寫(xiě)入DCPQQ地址/數(shù)據(jù)控制CMUXVCCP2.X鎖存器圖2-22

P3口某位的結(jié)構(gòu)圖讀引腳讀鎖存器內(nèi)部總線寫(xiě)入DCPQ第二輸出功能VCCP3.X312鎖存器4第二輸入功能W返回2023/1/213:4848表2-10P3口線與第二功能表返回2023/1/213:4849§2.3 89C51存儲(chǔ)器配置§2.3.1 89C51存儲(chǔ)器分類§2.3.2 程序存儲(chǔ)器地址空間§2.3.3 數(shù)據(jù)存儲(chǔ)器地址空間返回2023/1/213:4850§2.3.1 89C51存儲(chǔ)器分類一、物理結(jié)構(gòu)(哈佛結(jié)構(gòu))二、用戶角度返回2023/1/213:4851一、物理結(jié)構(gòu)(哈佛結(jié)構(gòu))89C51存儲(chǔ)器程序存儲(chǔ)器ROM數(shù)據(jù)存儲(chǔ)器ROM片內(nèi)程序存儲(chǔ)器片外程序存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器片外數(shù)據(jù)存儲(chǔ)器返回2023/1/213:4852二、用戶角度圖2-489C51存儲(chǔ)器配置2023/1/213:4853二、用戶角度1、片內(nèi)、外統(tǒng)一編址的64K程序存儲(chǔ)器地址空間。CPU訪問(wèn)片內(nèi)、片外ROM指令用MOVC。返回2023/1/213:4854二、用戶角度2、64K的片外數(shù)據(jù)存儲(chǔ)器地址空間。訪問(wèn)片外RAM指令用MOVX。返回2023/1/213:4855二、用戶角度3、256字節(jié)的片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間。訪問(wèn)片內(nèi)RAM指令用MOV。上述三個(gè)存儲(chǔ)空間地址是重疊的,89C51的指令系統(tǒng)采用不同的數(shù)據(jù)傳送指令符號(hào)。返回2023/1/213:4856§2.3.2程序存儲(chǔ)器地址空間一、用途:二、編址:三、尋址方式:返回2023/1/213:4857一、用途:用于存放編好的程序和表格常數(shù)。返回2023/1/213:4858二、編址:容量為4KB。地址為0000H~0FFFH。片外最多可擴(kuò)至64KBROM/EPROM,地址為1000H~FFFFH。片內(nèi)外統(tǒng)一編址。返回2023/1/213:4859三、尋址方式:1、當(dāng)EA=“1”時(shí):在0000~0FFFH范圍內(nèi)執(zhí)行片內(nèi)ROM中的程序,當(dāng)指令地址超過(guò)0FFFH后就自動(dòng)轉(zhuǎn)向片外ROM中取指令。2023/1/213:4860三、尋址方式:2、當(dāng)EA=”0”時(shí):片內(nèi)ROM不起作用,CPU只能從片ROM/EPROM中取指令。可以從0000H

開(kāi)始尋址。2023/1/213:4861三、尋址方式:3、片內(nèi)ROM和片外ROM取指的速度相同。2023/1/213:4862三、尋址方式:4、程序存儲(chǔ)器的保留存儲(chǔ)單元。

如表2-2所示。

2023/1/213:4863三、尋址方式:(1)0000H~0002H三個(gè)單元:用作上電復(fù)位后引導(dǎo)程序的存放單元。因?yàn)閺?fù)位后PC的內(nèi)容為0000H,CPU總是從0000H開(kāi)始執(zhí)行程序。將轉(zhuǎn)移指令存放到這三個(gè)單元,程序就被引導(dǎo)到指定的程序存儲(chǔ)器空間去執(zhí)行。2023/1/213:4864三、尋址方式:(2)0003H~002AH單元:均分為五段,用作五個(gè)中斷服務(wù)程序的入口。中斷矢量地址表如表2-3所示。返回2023/1/213:48650000-0002H復(fù)位后初始化引導(dǎo)程序地址有5個(gè)特殊單元,存放5種中斷源的中斷入口:

8位為一個(gè)中斷入口地址中斷時(shí)PC值變化外部中斷0 0003H定時(shí)器0溢出 000BH外部中斷1 0013H定時(shí)器1溢出 001BH串行口

0023H外部程序存儲(chǔ)器的訪問(wèn)P26頁(yè)一般4k足夠2023/1/213:4866§2.3.3數(shù)據(jù)存儲(chǔ)器地址空間一、用途:二、片外RAM:三、片內(nèi)RAM:

返回2023/1/213:4867一、用途:用于存放運(yùn)算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等。2023/1/213:4868二、片外RAM:地址:0000H~FFFFH尋址:用MOVX指令2023/1/213:4869三、片內(nèi)RAM:片內(nèi)數(shù)據(jù)存儲(chǔ)器最大可尋址256個(gè)單元,它們又分為兩部分:低128字節(jié)(00H~7FH)是真正的RAM區(qū);高128字節(jié)(80H~FFH)為特殊功能寄存器(SFR)區(qū)。如圖27所示。2023/1/213:4870圖2-8低128字節(jié)RAM區(qū)2023/1/213:48711)低128字節(jié)RAM89C51的32個(gè)工作寄存器與RAM安排在同一個(gè)隊(duì)列空間里,統(tǒng)一編址并使用同樣的尋址方式(直接尋址和間接尋址)。00H~1FH地址安排為4組工作寄存器區(qū),每組有8個(gè)工作寄存器(R0~R7),共占32個(gè)單元,見(jiàn)表2-4。通過(guò)對(duì)程序狀態(tài)字PSW中RS1、RS0的設(shè)置,每組寄存器均可選作CPU的當(dāng)前工作寄存器組。若程序中并不需要4組,那么其余可用作一般RAM單元。CPU復(fù)位后,選中第0組寄存器為當(dāng)前的工作寄存器。通用寄存器兩種使用方法:MOVAR0,MOVA00H工作寄存器區(qū)后的16字節(jié)單元(20H~2FH),可用位尋址方式訪問(wèn)其各位。在89系列單片機(jī)的指令系統(tǒng)中,還包括許多位操作指令,這些位操作指令可直接對(duì)這128位尋址。這128位的位地址為00H~7FH,其位地址分布見(jiàn)圖2-8。2023/1/213:487272RS1、RS0與4組工作寄存器區(qū)的對(duì)應(yīng)關(guān)系RS1RS0所選的4組寄存器000區(qū)(內(nèi)部RAM地址00H~07H)011區(qū)(內(nèi)部RAM地址08H~0FH)102區(qū)(內(nèi)部RAM地址10H~17H)113區(qū)(內(nèi)部RAM地址18H~1FH)2023/1/213:4873位操作位操作:00H-7FH置1SETBMOVCPL清零CLRCPLMOV布爾操作ANLORLP1.0PSW.7ET0TR0CLR00HMOV00H,#00H或者ANL00H,#00H2023/1/213:4874用戶RAM供給用戶使用的區(qū)域20-7FH96個(gè)(16個(gè)位尋址,32個(gè)通用尋址)用戶單元只能用字節(jié)地址的形式來(lái)使用,(直接尋址)一般把堆棧區(qū)開(kāi)在此區(qū)域2023/1/213:48752)高128字節(jié)RAM——特殊功能寄存器(SFR)89C51片內(nèi)高128字節(jié)RAM中,有21個(gè)特殊功能寄存器(SFR),它們離散地分布在80H~FFH的RAM空間中。訪問(wèn)特殊功能寄存器只允許使用直接尋址方式。這些特殊功能寄存器見(jiàn)圖2-9。各SFR的名稱及含義如表2-5所列。2023/1/213:4876圖2-9高128字節(jié)RAM區(qū)(SFR區(qū),特殊功能寄存器區(qū))2023/1/213:4877(1)累加器ACC(E0H)累加器ACC是89C51最常用、最忙碌的8位特殊功能寄存器,許多指令的操作數(shù)取自于ACC,許多運(yùn)算中間結(jié)果也存放于ACC。在指令系統(tǒng)中用A作為累加器ACC的助記符。2023/1/213:4878(2)寄存器B(F0H)在乘、除指令中,用到8位寄存器B。乘法指令的兩個(gè)操作數(shù)分別取自A和B,乘積存于B和A兩個(gè)8位寄存器中。除法指令中,A中存放被除數(shù),B中放除數(shù),商存放于A,B中存放余數(shù)。在其他指令中,B可作為一般通用寄存器或一個(gè)RAM單元使用。MULAB;AxB=ABB放高8位,A放低8位DIVAB;A中存放被除數(shù),B中放除數(shù),商存放于A,B中存放余數(shù)。2023/1/213:4879(3)程序狀態(tài)寄存器PSW(D0H)PSW是一個(gè)8位特殊功能寄存器,它的各位包含了程序執(zhí)行后的狀態(tài)信息,供程序查詢或判別之用。各位的含義及其格式如表2-6所列。PSW除有確定的字節(jié)地址(D0H)外,每一位均有位地址,見(jiàn)表2-6。2023/1/213:4880CY(PSW.7):進(jìn)位標(biāo)志位。在執(zhí)行加法(或減法)運(yùn)算指令時(shí),如果運(yùn)算結(jié)果最高位(位7)向前有進(jìn)位(或借位),則CY位由硬件自動(dòng)置1;如果運(yùn)算結(jié)果最高位無(wú)進(jìn)位(或借位),則CY清0。CY也是89C51在進(jìn)行位操作(布爾操作)時(shí)的位累加器,在指令中用C代替CY。AC(PSW.6):半進(jìn)位標(biāo)志位,也稱輔助進(jìn)位標(biāo)志。當(dāng)執(zhí)行加法(或減法)操作時(shí),如果運(yùn)算結(jié)果(和或差)的低半字節(jié)(位3)向高半字節(jié)有半進(jìn)位(或借位),則AC位將被硬件自動(dòng)置1;否則AC被自動(dòng)清0。F0(PSW.5):用戶標(biāo)志位。用戶可以根據(jù)自己的需要對(duì)F0位賦予一定的含義,由用戶置位或復(fù)位,以作為軟件標(biāo)志。2023/1/213:4881RS0和RS1(PSW.3和PSW.4):工作寄存器組選擇控制位。這兩位的值可決定選擇哪一組工作寄存器為當(dāng)前工作寄存器組。通過(guò)用戶用軟件改變RS1和RS0值的組合,以切換當(dāng)前選用的工作寄存器組。其組合關(guān)系如表2-7所列。89C51上電復(fù)位后,RS1=RS0=0,CPU自動(dòng)選擇第0組為當(dāng)前工作寄存器組。根據(jù)需要,可利用傳送指令對(duì)PSW整字節(jié)操作或用位操作指令改變RS1和RS0的狀態(tài),以切換當(dāng)前工作寄存器組。這樣的設(shè)置為程序中保護(hù)現(xiàn)場(chǎng)提供了方便。2023/1/213:4882OV(PSW.2):溢出標(biāo)志位。當(dāng)進(jìn)行補(bǔ)碼加減運(yùn)算時(shí),如有溢出,即當(dāng)運(yùn)算結(jié)果超出-128~+127的范圍時(shí),OV位由硬件自動(dòng)置1;無(wú)溢出時(shí),OV=0。乘法運(yùn)算,OV=1,超出了255,放在A和B,OV=0,放在A,除法:除數(shù)為0PSW.1:為保留位。89C51未用,89C52為F1用戶標(biāo)志位。P(PSW.0):奇偶校驗(yàn)標(biāo)志位。每條指令執(zhí)行完后,該位始終跟蹤指示累加器A中1的個(gè)數(shù)。如結(jié)果A中有奇數(shù)個(gè)1,則置P=1;否則P=0。常用于校驗(yàn)串行通信中的數(shù)據(jù)傳送是否出錯(cuò)。2023/1/213:4883例子MOVA,#79HADDA,#58H79H111100158H+101100011010001

C=0,最高位無(wú)進(jìn)位AC=1低半字節(jié)有進(jìn)位,OV=01=1溢出P=0,有4個(gè)1

2023/1/213:4884(4)棧指針SP(81H)堆棧指針SP為8位特殊功能寄存器,SP的內(nèi)容可指向89C51片內(nèi)00H~7FHRAM的任何單元。系統(tǒng)復(fù)位后,SP初始化為07H,即指向07H的RAM單元。2023/1/213:488589C51在片內(nèi)RAM中專門開(kāi)辟出來(lái)一個(gè)區(qū)域,數(shù)據(jù)的存取是以“后進(jìn)先出”的結(jié)構(gòu)方式處理的,好像沖鋒槍壓入子彈。這種數(shù)據(jù)結(jié)構(gòu)方式對(duì)于處理中斷,調(diào)用子程序都非常方便。堆棧的操作有兩種:一種叫數(shù)據(jù)壓入(PUSH),另一種叫數(shù)據(jù)彈出(POP)。89C51的堆棧指針SP是一個(gè)雙向計(jì)數(shù)器。進(jìn)棧時(shí),SP內(nèi)容自動(dòng)增值,出棧時(shí)自動(dòng)減值。存取信息必須按“后進(jìn)先出”或“先進(jìn)后出”的規(guī)則進(jìn)行。在圖2-10中,假若有8個(gè)RAM單元,每個(gè)單元都在其右面編有地址,棧頂由堆棧指針SP自動(dòng)管理。每次進(jìn)行壓入或彈出操作以后,堆棧指針便自動(dòng)調(diào)整以保持指示堆棧頂部的位置。向上生長(zhǎng)型SP自動(dòng)加1圖2-10堆棧的壓入與彈出2023/1/213:4887(5)數(shù)據(jù)指針DPTR(83H,82H)DPTR是一個(gè)16位的特殊功能寄存器,其高位字節(jié)寄存器用DPH表示(地址83H),低位字節(jié)寄存器用DPL表示(地址82H)。DPTR既可以作為一個(gè)16位寄存器來(lái)處理,也可以作為兩個(gè)獨(dú)立的8位寄存器DPH和DPL使用。DPTR主要用于存放16位地址,以便對(duì)64KB片外RAM作間接尋址。2023/1/213:4888(6)I/O端口P0~P3(80H,90H,A0H,B0H)P0~P3為4個(gè)8位特殊功能寄存器,分別是4個(gè)并行I/O端口的鎖存器。它們都有字節(jié)地址,每一個(gè)口鎖存器還有位地址,每一條I/O線均可獨(dú)立用作輸入或輸出。用作輸出時(shí),可以鎖存數(shù)據(jù);用作輸入時(shí),數(shù)據(jù)可以緩沖。圖2-11所示為各個(gè)SFR所在的字節(jié)地址位置??崭癫糠譃槲磥?lái)設(shè)計(jì)新型芯片可定義的SFR位置。2023/1/213:4889圖2-11特殊功能寄存器SFR的位置2023/1/213:4890§2.4 CPU時(shí)序§2.4.1 片內(nèi)振蕩器及時(shí)鐘信號(hào)的產(chǎn)生返回§2.4.2 機(jī)器周期和指令周期§2.4.3 CPU取指、執(zhí)行周期時(shí)序2023/1/213:4891§2.4.1 片內(nèi)時(shí)鐘信號(hào)的產(chǎn)生89C51芯片內(nèi)部有一個(gè)高增益反相放大器,用于構(gòu)成振蕩器。反相放大器的輸入端為XTAL1,輸出端為XTAL2,兩端跨接石英晶體及兩個(gè)電容就可以構(gòu)成穩(wěn)定的自激振蕩器。電容器C1和C2通常取30pF左右,可穩(wěn)定頻率并對(duì)振蕩頻率有微調(diào)作用。振蕩脈沖頻率范圍為fOSC=0~24MHz。晶體振蕩器的頻率為fOSC,振蕩信號(hào)從XTAL2端輸入到片內(nèi)的時(shí)鐘發(fā)生器上,如圖2-12

所示。返回2023/1/213:4892圖2-1289C51的片內(nèi)振蕩器及時(shí)鐘發(fā)生器2023/1/213:48931.節(jié)拍與狀態(tài)周期時(shí)鐘發(fā)生器是一個(gè)2分頻的觸發(fā)器電路,它將振蕩器的信號(hào)頻率fOSC除以2,向CPU提供兩相時(shí)鐘信號(hào)P1和P2。時(shí)鐘信號(hào)的周期稱為機(jī)器狀態(tài)周期S(STATE),是振蕩周期的2倍。在每個(gè)時(shí)鐘周期(即機(jī)器狀態(tài)周期S)的前半周期,相位1(P1)信號(hào)有效,在每個(gè)時(shí)鐘周期的后半周期,相位2(P2,節(jié)拍2)信號(hào)有效。每個(gè)時(shí)鐘周期(以后常稱狀態(tài)S)有兩個(gè)節(jié)拍(相)P1和P2,CPU就以兩相時(shí)鐘P1和P2為基本節(jié)拍指揮89C51單片機(jī)各個(gè)部件協(xié)調(diào)地工作。一個(gè)機(jī)器周期是指CPU訪問(wèn)存儲(chǔ)器一次所需的時(shí)間。例如,取指令、讀存儲(chǔ)器、寫(xiě)存儲(chǔ)器等等。一個(gè)機(jī)器周期包括12個(gè)振蕩周期,分為6個(gè)S狀態(tài):S1~S6。每個(gè)狀態(tài)又分為兩拍,稱為P1和P2。因此,一個(gè)機(jī)器周期中的12個(gè)振蕩周期表示為S1P1,S1P2,S2P1,···,S6P1,S6P2。若采用6MHz晶體振蕩器,則每個(gè)機(jī)器周期為2μs(微秒)機(jī)器周期如圖所示返回2.機(jī)器周期和指令周期指令周期:執(zhí)行一條指令所需的時(shí)間。每條指令由一個(gè)或若干個(gè)字節(jié)組成。有單字節(jié)指令,雙字節(jié)指令,…多字節(jié)指令等。字節(jié)數(shù)少則占存儲(chǔ)器空間少。每條指令的指令周期都由一個(gè)或幾個(gè)機(jī)器周期組成。有單周期指令、雙周期指令、和四周期指令。機(jī)器周期數(shù)少則執(zhí)行速度快。指令周期如圖所示返回2.機(jī)器周期和指令周期2023/1/213:48963.基本時(shí)序定時(shí)單位綜上所述,89C51或其他80C51單片機(jī)的基本時(shí)序定時(shí)單位有如下4個(gè)。振蕩周期:晶振的振蕩周期,為最小的時(shí)序單位。狀態(tài)周期:振蕩頻率經(jīng)單片機(jī)內(nèi)的二分頻器分頻后提供給片內(nèi)CPU的時(shí)鐘周期。因此,一個(gè)狀態(tài)周期包含2個(gè)振蕩周期。機(jī)器周期(MC):

1個(gè)機(jī)器周期由6個(gè)狀態(tài)周期即12個(gè)振蕩周期組成,是計(jì)算機(jī)執(zhí)行一種基本操作的時(shí)間單位。指令周期:執(zhí)行一條指令所需的時(shí)間。一個(gè)指令周期由1~4個(gè)機(jī)器周期組成,依據(jù)指令不同而不同,見(jiàn)附錄A。2023/1/213:48974個(gè)時(shí)序單位從小到大依次是節(jié)拍、狀態(tài)周期、機(jī)器周期和指令周期,如圖2-13所示。圖2-1389C51單片機(jī)各種周期的相互關(guān)系2023/1/213:4898例子:當(dāng)晶體振蕩頻率為12MHz,分別計(jì)算振蕩周期、狀態(tài)周期、機(jī)器周期、ALE信號(hào)周期振蕩周期=1/12M=83ns狀態(tài)周期=2/12M=166nsALE周期=6/12M=500ns機(jī)器周期=12/12M=1us2023/1/213:4899§2.4.2 CPU取指、執(zhí)行周期時(shí)序每條指令的執(zhí)行都可以包括取指和執(zhí)指兩個(gè)階段。在取指階段,CPU從內(nèi)部或外部ROM中取出指令操作碼及操作數(shù),然后再執(zhí)行這條指令。單字節(jié)和雙字節(jié)的指令都可能是單機(jī)器周期或雙周期,而三字節(jié)指令都是雙周期的,只有乘、除指令占四周期。因此,執(zhí)行一條指令的時(shí)間(指令周期)分別是2μs,4μs和8μs。如

圖2-14所示返回2023/1/213:48100圖2-1489C51單片機(jī)的取指/執(zhí)行時(shí)序04H27dataA3E0MovxA,@DptR2023/1/213:48101§2.5 復(fù)位操作返回2.5.1復(fù)位操作的主要功能主要功能是把PC初始化為0000H,使單片機(jī)從0000H單元開(kāi)始執(zhí)行程序。復(fù)位操作還對(duì)其他一些寄存器有影響,它們的復(fù)位狀態(tài)如表2-8所列。表2-8中的符號(hào)意義如下:2023/1/213:48102A=00H:表明累加器已被清0。PSW=00H:表明選寄存器0組為工作寄存器組。SP=07H:表明堆棧指針指向片內(nèi)RAM07H字節(jié)單元,根據(jù)堆棧操作的先加后壓法則,第一個(gè)被壓入的數(shù)據(jù)被寫(xiě)入08H單元中。P0~P3=FFH:表明已向各端口線寫(xiě)入1,此時(shí),各端口既可用于輸入,又可用于輸出。IP=×××00000B:表明各個(gè)中斷源處于低優(yōu)先級(jí)。IE=0××00000B:表明各個(gè)中斷均被關(guān)斷。TMOD=00H:表明T0,T1均為工作方式0,且運(yùn)行于定時(shí)器狀態(tài)。TCON=00H:表明T0,T1均被關(guān)斷。SCON=00H:表明串行口處于工作方式0,允許發(fā)送,不允許接收。PCON=00H:表明SMOD=0,波特率不加倍。2023/1/213:48103表2-8各特殊功能寄存器的復(fù)位值返回2023/1/213:48104§2.5.2 復(fù)位信號(hào)及其產(chǎn)生一、復(fù)位信號(hào):RST引腳為復(fù)位信號(hào)輸入端。當(dāng)RST引腳為高電平,且有效時(shí)間持續(xù)24個(gè)振蕩周期以上,才能復(fù)位。二、產(chǎn)生復(fù)位信號(hào)的電路邏輯圖:如圖2-15所示。返回2023/1/213:48105返回

復(fù)位電路施密特觸發(fā)器片內(nèi)RAMRST/VPDVCCVSSD1D2圖2-15復(fù)位電路邏輯圖2023/1/213:48106§2.5.3 復(fù)位電路一、上電自動(dòng)復(fù)位:是通過(guò)外部復(fù)位電路的電容充電實(shí)現(xiàn)。如圖2-16(a)所示。二、按鍵手動(dòng)復(fù)位:按鍵電平復(fù)位方式:如圖2-16(b)所示。返回2023/1/213:48107圖2-16(a)上電復(fù)位電路只要Vcc的上升時(shí)間不超過(guò)1ms,就自動(dòng)上電復(fù)位,即接通電源就完成了系統(tǒng)復(fù)位。返回VCCCRVCCRST/VPDVSS1KΩ22μF89C512023/1/213:48108圖2-12(b)按鍵電平復(fù)位電路通過(guò)使復(fù)位端經(jīng)電阻與VCC電源接通而實(shí)現(xiàn)。VCCCR2VCCRST/VPDVSS1KΩ22μF89C51R1200ΩRESET返回2023/1/213:4810951管腳及寄存器中英文對(duì)照縮寫(xiě)

英文解釋

中文解釋

RST

(9)

Reset

復(fù)位信號(hào)引腳

RxD

(10--P3.0)

ReceiveData

串口接收端

TxD

(11--P3.1)

TransmitData

串口發(fā)送端

INT0(————)

(12--P3.2)

Interrupt0

外部中斷0信號(hào)輸入引腳

INT1(————)

(13--P3.3)

Interrupt1

外部中斷1信號(hào)輸入引腳

T0

(14--P3.4)

Timer0

定時(shí)/計(jì)數(shù)器0輸入信號(hào)引腳

T1

(15--P3.5)

Timer1

定時(shí)/計(jì)數(shù)器1輸入信號(hào)引腳

2023/1/213:48110WR(———)

(16

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論