單片機(jī)的結(jié)構(gòu)和工作原理_第1頁(yè)
單片機(jī)的結(jié)構(gòu)和工作原理_第2頁(yè)
單片機(jī)的結(jié)構(gòu)和工作原理_第3頁(yè)
單片機(jī)的結(jié)構(gòu)和工作原理_第4頁(yè)
單片機(jī)的結(jié)構(gòu)和工作原理_第5頁(yè)
已閱讀5頁(yè),還剩121頁(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)介

2.7

89S51的輸入輸出接口本章主要內(nèi)容:2.1

MCS-51系列概述2.2

89S51的引腳功能說(shuō)明2.3

89S51的內(nèi)部結(jié)構(gòu)2.4

89S51的存儲(chǔ)器組織第2章單片機(jī)的結(jié)構(gòu)和工作原理2.5

89S51的時(shí)鐘電路與時(shí)序2.6

89S51的工作方式2.1MCS-51系列概述

MCS-51是Intel公司生產(chǎn)的一個(gè)單片機(jī)系列名稱??煞譃榛拘秃驮鰪?qiáng)型兩大系列:51子系列和52子系列,這一系列的單片機(jī)有多種,如:

8051/8751/80318052/8752/803280C51/89S51/89S5180C52/89C52/89S52等

功能上,該系列單片機(jī)有基本型和增強(qiáng)型兩大類:

增強(qiáng)型:8052/8752/803280C52/87C52/89C52/89S52

基本型:8051/8751/803180C51/87C51/89S51/89S51在片內(nèi)程序存儲(chǔ)器的配置上,該系列單片機(jī)有以下幾種形式,即掩膜ROM、EPROM、ROMLess和FlashROM。如:80C51有4K字節(jié)的掩膜ROM87C51有4K字節(jié)的EPROM

80C31在芯片內(nèi)無(wú)程序存儲(chǔ)器。89S51和89S51在芯片內(nèi)增加了基于Flash技術(shù)的閃速可電改寫(xiě)的程序存儲(chǔ)器。無(wú)ROM型,要在片外擴(kuò)展程序存儲(chǔ)器;掩膜ROM型,程序由芯片生產(chǎn)廠寫(xiě)入;EPROM型,程序通過(guò)寫(xiě)入裝置寫(xiě)入;FlashROM型,程序可電寫(xiě)入(常用)。片內(nèi)ROM的配置形式:還有OTPROM型,具有較高的可靠性。51系列典型產(chǎn)品資源配置由表可見(jiàn):增強(qiáng)型與基本型的幾點(diǎn)不同:片內(nèi)ROM:從4K增加到8K

片內(nèi)RAM:從128增加到256

定時(shí)/計(jì)數(shù)器:從2個(gè)增加到3個(gè)中斷源:從5個(gè)增加到6個(gè)。

Intel:80C31、80C51、87C51,80C32、80C52、87C52等;

ATMEL:89S51、89S51、89C2051等;

Philips、華邦、Dallas、Siemens(Infineon)等公司的許多產(chǎn)品。常用的51系列產(chǎn)品有:

注:近年來(lái)89C51已逐漸被89S51所取代,89S51除具有89C51原有所有功能外,還支持ISP在線可編程寫(xiě)入技術(shù)(在線更新程序)以及內(nèi)部集成了看門(mén)狗計(jì)時(shí)器,給單片機(jī)的開(kāi)發(fā)及應(yīng)用帶來(lái)了極大的方便。微處理器(機(jī))的組成

1、運(yùn)算器

2、控制器

3、CPU中的主要寄存器復(fù)習(xí)2.389S51的內(nèi)部結(jié)構(gòu)1、運(yùn)算器

1)、組成2)、作用3)、ALU的兩個(gè)主要的輸入來(lái)源4)、運(yùn)算器的兩個(gè)主要功能1)運(yùn)算器的組成算術(shù)邏輯單元(簡(jiǎn)稱ALU)

運(yùn)算器累加器

寄存器2)運(yùn)算器的作用是把傳送到微處理器的數(shù)據(jù)進(jìn)行算數(shù)運(yùn)算或邏輯運(yùn)算。ALU可對(duì)兩個(gè)操作數(shù)進(jìn)行加、減、與、或、比較大小等操作,最后將結(jié)果存入累加器。ALU執(zhí)行不同的運(yùn)算操作是由不同控制線上的信息所確定的。3)ALU的兩個(gè)主要的輸入來(lái)源輸入來(lái)源數(shù)據(jù)寄存器累加器4)運(yùn)算器的兩個(gè)主要功能(1)執(zhí)行各種算術(shù)運(yùn)算。(2)執(zhí)行各種邏輯運(yùn)算。2、控制器1)、控制器的組成2)、控制器的作用3)、控制器的主要功能控制器的組成程序計(jì)數(shù)器指令寄存器指令譯碼器時(shí)序產(chǎn)生器操作控制器1)控制器的組成

2)作用它是發(fā)布命令的“決策機(jī)構(gòu)”,即協(xié)調(diào)和指揮整個(gè)計(jì)算機(jī)系統(tǒng)的操作。3)控制器的主要功能對(duì)指令進(jìn)行譯碼或測(cè)試,并產(chǎn)生相應(yīng)的操作控制信號(hào),以便啟動(dòng)規(guī)定的動(dòng)作。指揮并控制CPU、內(nèi)存和輸入/輸出設(shè)備之間數(shù)據(jù)流動(dòng)的方向。從內(nèi)存中取出一條指令,并指出下一條指令在內(nèi)存中的位置。3、CPU中的主要寄存器1)累加器(A)2)數(shù)據(jù)寄存器(DR)3)指令寄存器(IR)4)指令譯碼器(ID)6)地址寄存器(AR)5)程序計(jì)數(shù)器(PC)1)累加器(A)在算術(shù)和邏輯運(yùn)算時(shí),它具有雙重功能:運(yùn)算前,用于保存一個(gè)操作數(shù);運(yùn)算后,用于保存所得的和、差或邏輯運(yùn)算結(jié)果。累加器是微處理器中最繁忙的寄存器。2)數(shù)據(jù)寄存器(DR)數(shù)據(jù)(緩沖)寄存器(DR)是通過(guò)數(shù)據(jù)總線(DBUS)向存儲(chǔ)器(M)和輸入/輸出設(shè)備I/O送(寫(xiě))或取(讀)數(shù)據(jù)的暫存單元。3)指令寄存器(IR)指令寄存器用來(lái)保存當(dāng)前正在執(zhí)行的一條指令。當(dāng)執(zhí)行一條指令時(shí)先把它從內(nèi)存取到指令寄存器中,然后再傳送到指令譯碼器中。4)指令譯碼器(ID)指令分為操作碼和地址碼字段,由二進(jìn)制數(shù)字組成。當(dāng)執(zhí)行任何給定的指令,必須對(duì)操作碼進(jìn)行譯碼,以便確定所要求的操作。指令寄存器中操作碼字段的輸出就是指令譯碼器的輸入。操作碼一經(jīng)譯碼后,即可向控制器發(fā)出具體操作的特定信號(hào)。5)程序計(jì)數(shù)器(PC)

通常又稱為指令地址計(jì)數(shù)器。在程序開(kāi)始執(zhí)行前,必須將其起始地址,即程序的第一條指令所在的內(nèi)存單元地址送到PC。當(dāng)執(zhí)行指令時(shí),CPU將自動(dòng)修改PC的內(nèi)容,使之總是保存將要執(zhí)行的下一條指令的地址。由于大多數(shù)指令都是按順序執(zhí)行的,所以修改的過(guò)程通常是簡(jiǎn)單的加1操作。6)地址寄存器(AR)地址寄存器用來(lái)保存當(dāng)前CPU所要訪問(wèn)的內(nèi)存單元或I/O設(shè)備的地址。因?yàn)閮?nèi)存(I/O設(shè)備)和CPU之間存在著速度上的差別,所以必須使用地址寄存器來(lái)保存地址信息,直到內(nèi)存(I/O設(shè)備)讀/寫(xiě)操作完成為止。Back計(jì)算機(jī)的模型微處理單元與存儲(chǔ)器及I/O接口組成的計(jì)算機(jī)模型。圖中假設(shè)所有的計(jì)數(shù)器、寄存器和總線都是8位寬度。ALU、計(jì)數(shù)器等寄存器和控制部分除在微處理器內(nèi)通過(guò)內(nèi)部總線相互聯(lián)系以外,還通過(guò)外部總線和外部的存儲(chǔ)器和輸入/輸出接口電路聯(lián)系。外部總線一般分為數(shù)據(jù)總線、地址總線和控制總線,統(tǒng)稱為系統(tǒng)總線。

一個(gè)計(jì)算機(jī)模型存儲(chǔ)器和輸入輸出接口1、存儲(chǔ)器2、I/O接口及外設(shè)Back1、存儲(chǔ)器地址總線、數(shù)據(jù)總線和若干控制線把存儲(chǔ)器和微處理器連接起來(lái)。存儲(chǔ)器從CPU接收控制信號(hào),以確定存儲(chǔ)器執(zhí)行讀/寫(xiě)操作。地址總線將8位地址信息送入地址譯碼器,地址譯碼器的輸出可以確定唯一的存儲(chǔ)單元。數(shù)據(jù)總線用來(lái)傳送存儲(chǔ)器到CPU或CPU到存儲(chǔ)器的數(shù)據(jù)信息。隨機(jī)存取存儲(chǔ)器示意圖2、I/O接口及外設(shè)每個(gè)外設(shè)與微處理器的連接必須經(jīng)過(guò)接口適配器(I/O接口)。每個(gè)I/O接口及其對(duì)應(yīng)的外設(shè)都有一個(gè)固定的地址,在CPU的控制下實(shí)現(xiàn)對(duì)外設(shè)的輸入(讀)和輸出(寫(xiě))操作。2.3.189S51的基本組成89S51CPU振蕩器和時(shí)序OSC64KB總線擴(kuò)展控制器數(shù)據(jù)存儲(chǔ)器256BRAM/SFR2×16位定時(shí)器/計(jì)數(shù)器可編程I/O程序存儲(chǔ)器4KBFLASHROM可編程全雙工串行口外中斷內(nèi)中斷控制并行口串行通信外部時(shí)鐘源外部事件計(jì)數(shù)89S51的內(nèi)部結(jié)構(gòu)P0驅(qū)動(dòng)器P2驅(qū)動(dòng)器P0鎖存器P2鎖存器RAM地址寄存器128BRAM4KBROMB寄存器暫存器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.7XTAL1XTAL2PSENALEEARESET運(yùn)算器控制器存儲(chǔ)器I/O接口1.中央處理器(CPU)2.內(nèi)部數(shù)據(jù)存儲(chǔ)器(片內(nèi)RAM)3.內(nèi)部程序存儲(chǔ)器(片內(nèi)ROM)

中央處理器是單片機(jī)的核心,完成運(yùn)算和控制功能。89S51的CPU能處理8位二進(jìn)制數(shù)或代碼。它由運(yùn)算器、控制器和布爾(位)處理器組成。

89S51芯片中共有256個(gè)RAM單元,但其中后128單元被專用寄存器(SFR)占用,能作為寄存器供用戶使用的只是前128單元,用于存放可讀寫(xiě)的數(shù)據(jù)。

89S51共有4KBFlashROM,用于存放程序、原始數(shù)據(jù)或表格。

4.I/O口及功能單元

并口:P0~P3,雙向口。每口8條I/O線

串行口:P3.0、P3.1,全雙工定時(shí)/計(jì)數(shù)器:2個(gè),16位

中斷系統(tǒng):5個(gè)中斷源,2個(gè)優(yōu)先級(jí)

CPU主要是由運(yùn)算器和控制器兩大部分組成。控制器根據(jù)指令碼產(chǎn)生的微控制信號(hào),協(xié)調(diào)運(yùn)算器、存儲(chǔ)器、輸入/輸出端口之間工作;運(yùn)算器用于算術(shù)、邏輯運(yùn)算及位操作處理。

運(yùn)算器累加器ACC

寄存器BPSW

控制器程序計(jì)數(shù)器PC

指令寄存器IR

定時(shí)與控制邏輯2.3.289S51的CPU1、控制器

控制器是用來(lái)統(tǒng)一指揮和控制單片機(jī)工作的部件,由指令部件、時(shí)序部件和操作控制部件組成。

(1)指令部件,控制器的核心

指令部件程序計(jì)數(shù)器PC:16位的計(jì)數(shù)器,其內(nèi)容為將要執(zhí)行的指令地址指令寄存器:8位寄存器,用來(lái)暫時(shí)存放指令指令譯碼器:對(duì)來(lái)自指令寄存器的操作碼進(jìn)行分析、解釋(2)時(shí)序部件

產(chǎn)生單片機(jī)各部件所需的定時(shí)信號(hào),以保證各個(gè)部件有條不紊地進(jìn)行信息傳送、加工及存儲(chǔ)等操作。

(3)操作控制部件

將指令譯碼器產(chǎn)生的微操作信號(hào)與時(shí)序部件產(chǎn)生的節(jié)拍信號(hào)進(jìn)行組合,共同形成相應(yīng)的微操作控制序列,以完成該指令所規(guī)定的操作。

完成對(duì)數(shù)據(jù)的算術(shù)運(yùn)算或邏輯操作。

算術(shù)運(yùn)算部件ALU

由加法器、加1減1電路、移位電路及BCD碼修正電路等邏輯電路所組成。

累加器ACC

用來(lái)存放操作數(shù)和運(yùn)算結(jié)果。

暫存器用來(lái)暫存進(jìn)行運(yùn)算之前的數(shù)據(jù)。

狀態(tài)寄存器PSW

狀態(tài)寄存器PSW是一個(gè)8位寄存器,用于寄存程序運(yùn)行的狀態(tài)信息。

2、運(yùn)算器2.289S51的引腳功能圖為89S51的引腳結(jié)構(gòu)圖,雙列直插封裝(DIP方式)

12345678910111213141516171819204039383736353433323130292827262524232221P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1VSSVCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VPPALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.089S51/89C51(MOSI)(MISO)(SCK)MCS-51單片機(jī)芯片外形圖AT89S51ATMELFLASH型87C51EPROM型40腳的雙列直插DIP封裝2.時(shí)鐘電路引腳

XTAL1(Pin19)

XTAL2(Pin18)引腳的名稱和功能

1.電源引腳

Vcc(Pin40):接+5V電源

Vss(Pin20):接地

RST/VPD(Pin9):復(fù)位信號(hào)。高電平有效。當(dāng)此輸入端保持兩個(gè)機(jī)器周期的高電平時(shí),就可以完成復(fù)位操作。

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

ALE/PROG(Pin30):地址鎖存控制。

正常工作時(shí),該引腳以振蕩頻率的1/6固定輸出正脈沖。CPU訪問(wèn)片外存儲(chǔ)器時(shí),該引腳輸出信號(hào)作為鎖存低8位地址的控制信號(hào)。它的負(fù)載能力為8個(gè)LS型TTL負(fù)載。

該信號(hào)可用于判斷89S51是否正在正常工作!PROG:是對(duì)片內(nèi)4KBFlashROM編程寫(xiě)入時(shí)的編程脈沖輸入端。PSEN(Pin29):片外取指控制。訪問(wèn)片外程序存儲(chǔ)器時(shí),輸出負(fù)脈沖選通信號(hào)。

EA/VPP(Pin31):程序存儲(chǔ)器的內(nèi)外部選通線。

EA=1時(shí),CPU訪問(wèn)片內(nèi)ROM并執(zhí)行片內(nèi)程序存儲(chǔ)器中的指令,但當(dāng)PC值超過(guò)0FFFH(片內(nèi)ROM為4KB)時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行片外ROM中的程序。先選取內(nèi)部程序存儲(chǔ)器。

EA=0時(shí),只選取外部程序存儲(chǔ)器。Vpp:對(duì)89S51片內(nèi)FlashROM固化編程時(shí),編程電壓輸入端(12~21V)。P0.0~P0.7:P0口,8位(漏極開(kāi)路)雙向口線。 既可作為通用的I/O口使用,也可作為地 址數(shù)據(jù)線使用。P1.0~P1.7:P1口,帶內(nèi)部上拉電阻的8位雙向I/O口。P2.0~P2.7:P2口,帶內(nèi)部上拉電阻的8位雙向I/O口。 既可作通用I/O口使用,也可跟P0口配合 構(gòu)成地址的高8位信號(hào)。P3.0~P3.7:P3口,帶內(nèi)部上拉電阻的8位雙向I/O口, 既可作為通用的I/O口使用,同時(shí)具有第 二功能:4、輸入輸出引腳P3端口引腳與復(fù)用功能表2.489S51單片機(jī)的存儲(chǔ)器

物理結(jié)構(gòu)一般微機(jī):

通常只有一個(gè)地址空間,ROM和RAM可以隨意安排在這一地址范圍內(nèi)不同的空間,CPU訪問(wèn)存儲(chǔ)器時(shí),一個(gè)地址對(duì)應(yīng)唯一的存儲(chǔ)器單元,此類結(jié)構(gòu)稱為普林斯頓結(jié)構(gòu)。89S51存儲(chǔ)器:

與典型微機(jī)不同,它把程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開(kāi),各有自己的尋址系統(tǒng)、控制信號(hào)和功能,這種程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)的結(jié)構(gòu)稱為哈佛結(jié)構(gòu)。

物理結(jié)構(gòu)(哈佛結(jié)構(gòu),獨(dú)立空間)片內(nèi)程序存儲(chǔ)器片外程序存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器片外數(shù)據(jù)存儲(chǔ)器89S51存儲(chǔ)器程序存儲(chǔ)器ROM數(shù)據(jù)存儲(chǔ)器RAM物理上分4個(gè)存儲(chǔ)器空間用戶角度(邏輯上分3個(gè)存儲(chǔ)器空間)片內(nèi)外統(tǒng)一的64KB程序存儲(chǔ)器256B(含SFR塊)片內(nèi)數(shù)據(jù)存儲(chǔ)器64KB片外數(shù)據(jù)存儲(chǔ)器89S51存儲(chǔ)器空間分布圖64KBRAM(I/O)64KBROMFFFF100000000FFFFFFF00004KBROM0FFF0000SFRRAM00807FFF片內(nèi)存儲(chǔ)器片外擴(kuò)展存儲(chǔ)器EA=1EA=0

上述三個(gè)存儲(chǔ)空間地址是重疊的,89S51的指令系統(tǒng)采用不同的數(shù)據(jù)傳送指令。64KB程序存儲(chǔ)器地址空間,片內(nèi)外統(tǒng)一編址0000H~FFFFH256B片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間,00H~FFH指令用MOVC指令用MOV指令用MOVX64KB片外數(shù)據(jù)存儲(chǔ)器地址空間(含I/O),0000H~FFFFH

2.4.189S51的程序存儲(chǔ)器配置PC:16位計(jì)數(shù)器,能尋址64KB的ROM。用途:存放編好的程序、常數(shù)和表格,只能讀不能寫(xiě)。該空間有幾個(gè)特殊單元,應(yīng)用過(guò)程中應(yīng)加以注意。89S51引腳EA=1時(shí),系統(tǒng)使用片內(nèi)ROM,指令地址超過(guò)0FFFH后就自動(dòng)轉(zhuǎn)向片外ROM中取指令;EA=0時(shí),系統(tǒng)使用片外的ROM。89S51從片內(nèi)ROM和片外ROM取指的速度相同。無(wú)論是使用片內(nèi)還是使用片外的ROM(既EA=1或EA=0),其起始地址都是從0000H單元開(kāi)始,0000H是系統(tǒng)的啟動(dòng)地址。

0003H~002BH是中斷服務(wù)程序入口地址。保留的存儲(chǔ)單元中斷矢量表思考:如何合理安排程序存儲(chǔ)器空間?

2.4.289S51的數(shù)據(jù)存儲(chǔ)器配置思考:52子系列內(nèi)部RAM使用特點(diǎn)?用途 用于存放運(yùn)算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等。片外RAM

MCS-51對(duì)外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展能力為64KB。地址:

0000H~FFFFH尋址:MOVX指令、間接尋址方式訪問(wèn)。8位地址寄存器:R0,R116位地址寄存器:DPTR例:MOVR0,#20H;外部RAM單元地址20H送R0MOVXA,@R0;從20H單元取數(shù)據(jù)到累加器A例:MOVDPTR,#2000H;地址2000H送DPTRMOVXA,@DPTR;(一)片內(nèi)RAM地址空間尋址:用指令MOV最大可尋址256個(gè)單元,操作指令豐富,數(shù)據(jù)處理方便靈活。低128B(00H-7FH):真正RAM區(qū)高128B(80H-FFH):特殊功能寄存器(SFR)區(qū)地址:00H-FFH

片內(nèi)RAM1、工作寄存器區(qū)(00H~1FH)2、位尋址區(qū)(20H~2FH)3、用戶RAM區(qū)(30H~7FH)用戶RAM區(qū)(堆棧、數(shù)據(jù)緩沖)位尋址區(qū)(位地址00~7F)第0組工作寄存器R7R0第3組工作寄存器第2組工作寄存器第1組工作寄存器R7R0R7R0R7R007H00H1FH18H17H10H0FH08H2FH20H7FH30H片內(nèi)RAMSFR98HSCON82HDPL81HSP80HP08DHTH18CHTH08BHTL18AHTL089HTMOD88HTCON87HPCON83HDPH90HP1IPB8HPSWD0HBF0HFFHACCE0HP3B0HIEA8HP2A0HSBUF99H位地址表SFR1、工作寄存器區(qū)(00H~1FH)由四組(32個(gè))工作寄存器組成,每組8個(gè)寄存器(R0~R7),共占32個(gè)單元。通過(guò)程序狀態(tài)寄存器PSW中RS1、RS0兩位設(shè)定來(lái)選擇CPU的當(dāng)前工作寄存器組。復(fù)位時(shí),第0組為當(dāng)前的工作寄存器。若不需要四組,則其余可作為一般RAM單元。(二)低128字節(jié)RAM(00H~7FH)工作寄存器地址表思考:工作寄存器為何分為四組,如何正確使用工作寄存器?2、位尋址區(qū)(20H~2FH)位尋址區(qū)有16個(gè)單元,每個(gè)單元8位,共128位。位地址為00H-7FH??捎梦粚ぶ贩绞皆L問(wèn)其中各位。這些可尋址位,通過(guò)執(zhí)行指令可直接對(duì)某一位操作。例:MOVA,20H;將20H字節(jié)內(nèi)容送累加器A;MOVC,20H;將20H位信息送CY中。位尋址是89S51的一個(gè)重要特點(diǎn)。返回片內(nèi)RAM(20H-2FH)中的位地址表7F7E7D7C7B7A797877767574737271706F6E6D6C6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A393837262524232221202F2E2D2C2B2A292827262524232221201F1E1D1C1B1A191817161514131211100F0E0D0C0B0A090807060504030201002FH20H字節(jié)地址位地址3、用戶RAM區(qū)(30H~7FH)用于堆棧和數(shù)據(jù)緩沖堆棧設(shè)置在內(nèi)部數(shù)據(jù)RAM,理論深度最大為128B,但實(shí)際小很多。堆棧指針是8位SP寄存器,復(fù)位后SP=07H,建議SP=30H以上,(如:5FH)。SP總是指向棧頂,堆棧是向上生成的,即入棧時(shí)SP加1,出棧時(shí)SP減1。

例:堆棧操作過(guò)程:進(jìn)棧:PUSHACC(設(shè)SP=07H)

1,SP+1送SP,此時(shí)SP=08H;

2,ACC送RAM的08H單元;出棧:POPACC

(設(shè)SP=08H);

1,將RAM中08H單元內(nèi)容送A;

2,SP-1送SP,此時(shí)SP=07H。堆棧操作示意圖07HSPRAMx累加器A08H07H思考:復(fù)位后89S51堆棧最大容量是多少?如何合理分配RAM區(qū)資源?返回(三)高128字節(jié)RAM(80H~FFH)有21個(gè)特殊功能功能寄存器。見(jiàn)表地址分布在80H~FFH的RAM空間。只能用直接尋址方式。有11個(gè)具有位尋址能力。11個(gè)SFR的字節(jié)地址正好能被8整除。特殊功能寄存器的地址。見(jiàn)表部分特殊功能寄存器介紹89S51系列單片機(jī)的特殊功能寄存器表返回返回特殊功能寄存器地址表返回累加器ACC(E0H),8位:用A作為ACC的助記符。用于存放第一個(gè)操作數(shù)及運(yùn)算結(jié)果。寄存器B(F0H),8位:在乘法指令中,B用于存放乘數(shù)和乘積的高8位。在除法指令中用于存放除數(shù)和余數(shù)。在其它指令中用作一般的寄存器或RAM單元。

與運(yùn)算器相關(guān)的寄存器(3個(gè))部分特殊功能寄存器介紹部分特殊功能寄存器介紹PSW程序狀態(tài)寄存器(D0H),8位:PSW包含了程序執(zhí)行后的狀態(tài)信息,供程序查詢或判斷用。格式:PSW各位的含義:(1)CY位(PSW.7):進(jìn)(借)位標(biāo)志位。 執(zhí)行加法(減法)運(yùn)算指令時(shí),如運(yùn)算結(jié)果最高位(D7)向前有進(jìn)位(借位),CY=1;否則,CY=0。在位操作指令中,CY位是布爾累加器,用C表示。(2)AC位(PSW.6):半進(jìn)位標(biāo)志位。

執(zhí)行加法(減法)運(yùn)算指令時(shí),如運(yùn)算結(jié)果的低半字節(jié)(D3)向高半字節(jié)有進(jìn)位(借位),AC=1;否則,AC=0。部分特殊功能寄存器介紹(3)FO位(PSW.5):用戶標(biāo)志。由用戶自己定義、置位、復(fù)位,以作為軟件標(biāo)志。(4)RS0、RS1位(PSW.3和PSW.4):工作寄存器組選擇控制位。PSW各位的含義RS1 RS0 寄存器組 片內(nèi)RAM地址0 0 第0組 00H~07H 0 1 第1組 08H~0FH 1 0 第2組 10H~17H 1 1 第3組 18H~1FH 上電復(fù)位時(shí),(RS0)=(RS1)=0(5)OV位(PSW.2):溢出標(biāo)志位。如有溢出,即運(yùn)算結(jié)果超出-128~+127的范圍時(shí),OV=1;無(wú)溢出時(shí),OV=0。PSW各位的含義(6)P位(PSW.0):奇偶檢驗(yàn)位。每條指令執(zhí)行后,A中“1”的個(gè)數(shù)為奇數(shù),則P=1;否則,P=0。(7)PSW.1:為保留位。堆棧指針SP(81H),8位:堆棧:在片內(nèi)RAM中,開(kāi)辟的一個(gè)按“先進(jìn)后出”的結(jié)構(gòu)方式處理數(shù)據(jù)的區(qū)域。

SP指示堆棧頂部在內(nèi)部RAM中的位置,可指向片內(nèi)RAM00H~7FH的任何單元。系統(tǒng)復(fù)位時(shí),SP初始化為07H??芍匦略O(shè)定SP初值,當(dāng)SP初值↓,堆棧深度↑。指令系統(tǒng)中的棧操作指令是:PUSH,POP。部分特殊功能寄存器介紹指針類寄存器(3個(gè))數(shù)據(jù)指針DPTR(83H,82H),16位:由DPH(83H),DPL(82H)組成,DPH,DPL可以單獨(dú)使用。主要用來(lái)保持16位地址,對(duì)外部數(shù)據(jù)存儲(chǔ)器進(jìn)行尋址,也可用于訪問(wèn)程序存儲(chǔ)器。例: MOVXA,@DPTR MOVCA,@A+DPTR部分特殊功能寄存器介紹注意:PC指針在物理上是獨(dú)立的,不可尋址。

并行I/O口P0、P1、P2、P3,均為8位;分別為四個(gè)并行端口的鎖存器,每一個(gè)口鎖存器還有位地址,所以每一條I/O線可獨(dú)立輸入或輸出。輸出時(shí),可以鎖存;輸入時(shí),可以緩沖。沒(méi)有專用I/O指令,而是與普通的RAM單元操作一樣。例:

輸出指令MOV80H,A;將A中的數(shù)據(jù)送到P0口輸出 輸入指令MOVA,90H;將P1口的數(shù)據(jù)輸入到A中部分特殊功能寄存器介紹與口相關(guān)的寄存器(7個(gè))

串行口數(shù)據(jù)緩沖器SBUF;實(shí)際上是兩個(gè)獨(dú)立的寄存器,一個(gè)是發(fā)送緩沖器,另一個(gè)是接收緩沖器。

串行口控制寄存器SCON;

串行通信波特率倍增寄存器PCON,(又稱為電源控制寄存器)。與中斷相關(guān)的寄存器(2個(gè))

中斷允許控制寄存器IE;中斷優(yōu)先級(jí)控制寄存器IP。與定時(shí)器/計(jì)數(shù)器相關(guān)的寄存器(6個(gè))

T0的兩個(gè)8位計(jì)數(shù)初值寄存器TH0、TL0T1的兩個(gè)8位計(jì)數(shù)初值寄存器TH1、TL1

工作方式寄存器TMOD;控制寄存器TCON。部分特殊功能寄存器介紹注意:

1、128B的SFR區(qū)中僅有26B是有定義的,若訪問(wèn)沒(méi)有定義的單元,將得到一個(gè)不確定的隨機(jī)數(shù)。2、訪問(wèn)SFR時(shí)只能采用直接尋址方式。2.589S51的時(shí)鐘電路與時(shí)序時(shí)鐘產(chǎn)生方式內(nèi)部時(shí)鐘外部時(shí)鐘2.5.1時(shí)鐘電路電容器C1和C2通常取30pF左右,可穩(wěn)定頻率并對(duì)振蕩頻率有微調(diào)作用。

89S51內(nèi)部時(shí)鐘系統(tǒng)

1個(gè)機(jī)器周期:12個(gè)振蕩周期(或6個(gè)時(shí)鐘周期)

指令的執(zhí)行時(shí)間稱作指令周期

(單、雙、四周期)2.5.2基本時(shí)序單位與89S51典型時(shí)序計(jì)算機(jī)的一條指令由若干個(gè)字節(jié)組成。執(zhí)行一條指令需要多長(zhǎng)時(shí)間則以機(jī)器周期為單位。一個(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ī)器周期為多少?機(jī)器周期如圖所示設(shè):晶體振蕩器頻率fosc=6MHz,則:振蕩周期=1/fosc=1/6μs(微秒)因?yàn)?一個(gè)機(jī)器周期包括12個(gè)振蕩周期,所以:一個(gè)機(jī)器周期=12*(1/6)μs(微秒)=2μs(微秒)問(wèn):如果fosc=12MHz,一個(gè)機(jī)器周期為多少?答案:1μs(微秒)機(jī)器周期指令周期:執(zhí)行一條指令所需的時(shí)間。每條指令的指令周期都由一個(gè)或幾個(gè)機(jī)器周期組成。有單周期指令、雙周期指令、和四周期指令。機(jī)器周期數(shù)少則執(zhí)行速度快。設(shè)振蕩周期為6MHz,上述指令周期各為多少?指令周期如圖所示指令周期設(shè)振蕩周期為6MHz,則一個(gè)機(jī)器周期為2μs(微秒)。單周期指令:指令周期為2μs(微秒)雙周期指令:指令周期為4μs(微秒)四周期指令:指令周期為8μs(微秒)如果振蕩周期為12MHz,則其指令周期分別為1μs、2μs和4μs。89S51單片機(jī)各種周期的相互關(guān)系返回機(jī)器周期返回指令周期單字節(jié)指令:如,INCA;機(jī)器碼格式:00000100B

雙字節(jié)指令:如,MOVA,#data ;機(jī)器碼格式:01110100B data每條指令由一個(gè)或若干個(gè)字節(jié)組成。有單字節(jié)指令,雙字節(jié)指令,多字節(jié)指令。字節(jié)數(shù)少則占存儲(chǔ)器空間少。思考:指令的字節(jié)數(shù)與指令執(zhí)行的時(shí)間有關(guān)系嗎?是否指令的字節(jié)數(shù)越多,其執(zhí)行的時(shí)間就越長(zhǎng)?答案:指令的運(yùn)算速度只與它所包含的機(jī)器周期數(shù)有關(guān)。機(jī)器周期數(shù)越少,執(zhí)行的速度就越快。如單字節(jié)的乘除指令需執(zhí)行4個(gè)機(jī)器周期。

CPU取指、執(zhí)指時(shí)序每條指令的執(zhí)行都包括取指和執(zhí)指兩個(gè)階段。在取指階段,CPU從內(nèi)部或外部ROM中取出指令操作碼及操作數(shù),然后再執(zhí)行這條指令。單字節(jié)和雙字節(jié)的指令都可能是單機(jī)器周期或雙周期,而三字節(jié)指令都是雙周期的,只有乘、除指令占四周期。CPU取指、執(zhí)指時(shí)序如圖所示。89S51的典型時(shí)序指令微操作在時(shí)間上的次序,即時(shí)序。

單字節(jié)指令雙字節(jié)指令1、單周期指令時(shí)序

2個(gè)機(jī)器周期中ALE有效4次,后3次讀操作無(wú)效。

2、雙周期指令時(shí)序

在第二機(jī)器周期無(wú)讀操作碼的操作,而是進(jìn)行外部數(shù)據(jù)存儲(chǔ)器的尋址和數(shù)據(jù)選通

。ALE信號(hào)會(huì)出現(xiàn)非周期現(xiàn)象。

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

89C51單片機(jī)的取指/執(zhí)行時(shí)序

2.689S51單片機(jī)的工作方式2.6.1單片機(jī)復(fù)位工作方式復(fù)位可使單片機(jī)或系統(tǒng)部件處于確定的初始狀態(tài)。

上電復(fù)位電路按鍵與上電復(fù)位

復(fù)位操作主要功能程序地址指針PC初始化為0000H,使單片機(jī)從0000H單元開(kāi)始執(zhí)行程序當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)死鎖狀態(tài)時(shí),為擺脫困境,也需要按復(fù)位鍵重新啟動(dòng)。各特殊寄存器的復(fù)位值2.6.2低功耗工作方式

單片機(jī)低功耗方式的設(shè)置是通過(guò)電源控制寄存器(PCON)的相關(guān)位來(lái)實(shí)現(xiàn)的。

SMOD---GF1GF0PDIDLSMOD:波特率倍增位。GF1、GF0:通用標(biāo)志位。PD:掉電方式設(shè)置位,PD=1,進(jìn)入掉電工作方式。IDL:待機(jī)方式設(shè)置位,IDL=1,進(jìn)入待機(jī)工作方式。

1、待機(jī)工作方式

待機(jī)工作方式特征:

CPU停止工作,與CPU相關(guān)的特殊功能寄存器和全部通用寄存器被“凍結(jié)”在原狀態(tài),振蕩器仍在工作,中斷功能繼續(xù)存在。

進(jìn)入待機(jī)工作方式設(shè)置:

MOVPCON,#01H

退出待機(jī)工作方式:

通過(guò)引入外中斷信號(hào)的方法,使待機(jī)工作方式退出。

2、掉電工作方式

掉電工作方式的特征:

只有內(nèi)部RAM單元的內(nèi)容被保存,其它一切工作都停止。

掉電工作方式設(shè)置:

MOVPCON,#02H

掉電工作方式退出:

電源恢復(fù)正常,硬件復(fù)位信號(hào)維持在10ms以上。

2.6.3ISP編程工作方式

并行編程方式ISP編程方式并行編程方式需要借助編程器,在EA/VPP(31引腳)上使用高電壓(+12V)和協(xié)調(diào)的控制信號(hào)進(jìn)行編程。一、并行編程方式

缺點(diǎn):一是增加了硬件成本;二是在實(shí)際應(yīng)用開(kāi)發(fā)過(guò)程中,需要從目標(biāo)系統(tǒng)電路板上拔下芯片,編程后再插上。二、ISP編程方式(在線編程方式)將RST接至Vcc,程序代碼存儲(chǔ)陣列可通過(guò)串行ISP接口進(jìn)行編程,89S51的串行接口包含時(shí)鐘輸入SCK線(P1.7腳)、MOSI數(shù)據(jù)輸入線(P1.5腳)和MISO數(shù)據(jù)輸出線(P1.6腳)。2.7

89S51的并行口結(jié)構(gòu)與操作

I/O端口概述一、P0口二、P1口三、P2口四、P3口五、端口的負(fù)載能力和接口要求

I/O端口概述1.89S51單片機(jī)沒(méi)有像8086CPU一樣明確表示出地址線和數(shù)據(jù)線,它的數(shù)據(jù)線和地址線是由并行端口引出的,以使有限的引腳能完成更多的功能。2.四個(gè)8位并行I/O端口:P0、P1、P2和P3。每個(gè)端口都是8位準(zhǔn)雙向口,共占32根引腳。3.每一條I/O線都能獨(dú)立地用作輸入或輸出。4.每個(gè)端口都包括一個(gè)鎖存器(即特殊功能寄存器P0~P3),一個(gè)輸出驅(qū)動(dòng)器和輸入緩沖器,作輸出時(shí)數(shù)據(jù)可以鎖存,作輸入時(shí)數(shù)據(jù)可以緩沖。這種結(jié)構(gòu)在數(shù)據(jù)輸出時(shí)可一直鎖存保存不變,但對(duì)輸入信號(hào)是不鎖存的,所以外設(shè)欲輸入的數(shù)據(jù)必須保持到取數(shù)指令執(zhí)行為止。一、P0口P0口功能:P0口作為一般I/O口使用P0口作為低8位地址/數(shù)據(jù)總線使用P0口某位的結(jié)構(gòu)圖當(dāng)C=0時(shí),開(kāi)關(guān)MUX被控與鎖存器的Q接通,P0口為通用I/O口;當(dāng)C=1時(shí),開(kāi)關(guān)撥向反相器3的輸出端,P0口分時(shí)作為地址/數(shù)據(jù)總線使用。P0口作一般(通用)I/O口:

P0口作輸出口:輸出級(jí)是開(kāi)漏電路,輸出時(shí)需外接上拉電阻才能獲得高電平輸出。

P0口作輸入口:當(dāng)執(zhí)行一條由端口輸入的指令時(shí),“讀引腳”脈沖把三態(tài)緩沖器2打開(kāi),端口上的數(shù)據(jù)經(jīng)過(guò)緩沖器2讀入到內(nèi)部總線。輸入結(jié)構(gòu)中有兩個(gè)緩沖器是為適應(yīng)“讀——修改——寫(xiě)”這樣的指令。如:ANLP0,A指令,不是讀引腳上的數(shù)據(jù),而是讀D鎖存器中的數(shù)據(jù)。是準(zhǔn)雙向口,輸入數(shù)據(jù)時(shí)應(yīng)先向端口寫(xiě)“1”,使兩個(gè)FET均截止,然后作高阻抗輸入。(復(fù)位時(shí)已是1)小結(jié):P0口作低8位地址/數(shù)據(jù)總線口:作總線時(shí),上下兩個(gè)FET處于反相,構(gòu)成推拉式的輸出電路,不需外接上拉電阻,且大大提高了負(fù)載能力。當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),CPU自動(dòng)向端口寫(xiě)入FFH,所以對(duì)用戶而言P0口作地址/數(shù)據(jù)總線時(shí)是一個(gè)真正的雙向口。

*當(dāng)P0口已作地址/數(shù)據(jù)總線口時(shí),就不能作一般I/O口。二、P1口P1口功能:用作一般I/O口在52子系列中,P1.0和P1.1是多功能的。P1.0:作定時(shí)器/計(jì)數(shù)器2的外部輸入端。P1.1:作定時(shí)器/計(jì)數(shù)器2的外部控制輸入端。P1口某位的結(jié)構(gòu)小結(jié):輸出驅(qū)動(dòng)部分與P0口不同,內(nèi)部有上拉負(fù)載電阻(兩個(gè)場(chǎng)效應(yīng)管FET并在一起)與電源相連。

P1口是一個(gè)標(biāo)準(zhǔn)的準(zhǔn)雙向口。 在端口用作輸入時(shí),必須先向?qū)?yīng)的鎖存器寫(xiě)入1,使FET截止。 當(dāng)P1口輸出高電平時(shí),能向外提供拉電流負(fù)載,所以不必再接上拉電阻。三、P2口P2口功能:用作一般I/O口用作高8位地址總線P2口某位的結(jié)構(gòu)圖小結(jié):

P2口與P0口結(jié)構(gòu)類似,由控制信號(hào)控制模擬轉(zhuǎn)換開(kāi)關(guān),若接通上邊,則地址信號(hào)加到輸出線路,若接通下邊,則鎖存器Q端與輸出線路接通,P2口作一般I/O口。作一般(通用)I/O口:準(zhǔn)雙向口,內(nèi)部接有上拉電阻(同P1,P3口)。作高8位地址總線口:用于輸出高8位地址。2、當(dāng)系統(tǒng)擴(kuò)展片外RAM﹥256B,CPU執(zhí)行MOVX指令或EA=0時(shí)執(zhí)行MOVC指令時(shí),開(kāi)關(guān)倒向地址線端,這時(shí),P2口輸出高8位地址。因?yàn)樵L問(wèn)片外EPROM和RAM的操作往往接連不斷,所以,P2口要不斷送出高8位地址,此時(shí)P2口無(wú)法再用作通用I/O口。1、當(dāng)CPU執(zhí)行MOV指令或EA=1執(zhí)行MOVC指令時(shí),內(nèi)部硬件自動(dòng)控制開(kāi)關(guān)MUX倒向鎖存器的Q端,這時(shí),P2口為一般I/O口。P2口使用說(shuō)明:3、系統(tǒng)沒(méi)有外擴(kuò)ROM,而只擴(kuò)展了256B片外RAM,使用“MOVXA,@Ri”類指令訪問(wèn)時(shí),只需低8位地址線就可以實(shí)現(xiàn)。P2口不受該指令影響,仍可作通用I/O口。四、P3口P3口功能:作為通用I/O口使用用作第二功能使用P3

溫馨提示

  • 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)論