單片機(jī)的結(jié)構(gòu)和工作原理_第1頁
單片機(jī)的結(jié)構(gòu)和工作原理_第2頁
單片機(jī)的結(jié)構(gòu)和工作原理_第3頁
單片機(jī)的結(jié)構(gòu)和工作原理_第4頁
單片機(jī)的結(jié)構(gòu)和工作原理_第5頁
已閱讀5頁,還剩121頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2.7

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

MCS-51系列概述2.2

89S51的引腳功能說明2.3

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

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

89S51的時鐘電路與時序2.6

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

MCS-51是Intel公司生產(chǎn)的一個單片機(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)程序存儲器的配置上,該系列單片機(jī)有以下幾種形式,即掩膜ROM、EPROM、ROMLess和FlashROM。如:80C51有4K字節(jié)的掩膜ROM87C51有4K字節(jié)的EPROM

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

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

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

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

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

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

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

1、運(yùn)算器

2、控制器

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

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

運(yùn)算器累加器

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

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

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

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

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

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

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

4.I/O口及功能單元

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

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

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

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

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

寄存器BPSW

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

指令寄存器IR

定時與控制邏輯2.3.289S51的CPU1、控制器

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

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

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

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

(3)操作控制部件

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

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

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

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

累加器ACC

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

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

狀態(tài)寄存器PSW

狀態(tài)寄存器PSW是一個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.時鐘電路引腳

XTAL1(Pin19)

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

1.電源引腳

Vcc(Pin40):接+5V電源

Vss(Pin20):接地

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

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

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

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

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

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

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

EA=0時,只選取外部程序存儲器。Vpp:對89S51片內(nèi)FlashROM固化編程時,編程電壓輸入端(12~21V)。P0.0~P0.7:P0口,8位(漏極開路)雙向口線。 既可作為通用的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位信號。P3.0~P3.7:P3口,帶內(nèi)部上拉電阻的8位雙向I/O口, 既可作為通用的I/O口使用,同時具有第 二功能:4、輸入輸出引腳P3端口引腳與復(fù)用功能表2.489S51單片機(jī)的存儲器

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

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

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

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

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

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

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

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

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

0000H~FFFFH尋址:MOVX指令、間接尋址方式訪問。8位地址寄存器:R0,R116位地址寄存器:DPTR例:MOVR0,#20H;外部RAM單元地址20H送R0MOVXA,@R0;從20H單元取數(shù)據(jù)到累加器A例:MOVDPTR,#2000H;地址2000H送DPTRMOVXA,@DPTR;(一)片內(nèi)RAM地址空間尋址:用指令MOV最大可尋址256個單元,操作指令豐富,數(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個)工作寄存器組成,每組8個寄存器(R0~R7),共占32個單元。通過程序狀態(tài)寄存器PSW中RS1、RS0兩位設(shè)定來選擇CPU的當(dāng)前工作寄存器組。復(fù)位時,第0組為當(dāng)前的工作寄存器。若不需要四組,則其余可作為一般RAM單元。(二)低128字節(jié)RAM(00H~7FH)工作寄存器地址表思考:工作寄存器為何分為四組,如何正確使用工作寄存器?2、位尋址區(qū)(20H~2FH)位尋址區(qū)有16個單元,每個單元8位,共128位。位地址為00H-7FH。可用位尋址方式訪問其中各位。這些可尋址位,通過執(zhí)行指令可直接對某一位操作。例:MOVA,20H;將20H字節(jié)內(nèi)容送累加器A;MOVC,20H;將20H位信息送CY中。位尋址是89S51的一個重要特點(diǎn)。返回片內(nèi)RAM(20H-2FH)中的位地址表7F7E7D7C7B7A797877767574737271706F6E6D6C6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A393837262524232221202F2E2D2C2B2A292827262524232221201F1E1D1C1B1A191817161514131211100F0E0D0C0B0A090807060504030201002FH20H字節(jié)地址位地址3、用戶RAM區(qū)(30H~7FH)用于堆棧和數(shù)據(jù)緩沖堆棧設(shè)置在內(nèi)部數(shù)據(jù)RAM,理論深度最大為128B,但實際小很多。堆棧指針是8位SP寄存器,復(fù)位后SP=07H,建議SP=30H以上,(如:5FH)。SP總是指向棧頂,堆棧是向上生成的,即入棧時SP加1,出棧時SP減1。

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

1,SP+1送SP,此時SP=08H;

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

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

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

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

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

執(zhí)行加法(減法)運(yùn)算指令時,如運(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ù)位時,(RS0)=(RS1)=0(5)OV位(PSW.2):溢出標(biāo)志位。如有溢出,即運(yùn)算結(jié)果超出-128~+127的范圍時,OV=1;無溢出時,OV=0。PSW各位的含義(6)P位(PSW.0):奇偶檢驗位。每條指令執(zhí)行后,A中“1”的個數(shù)為奇數(shù),則P=1;否則,P=0。(7)PSW.1:為保留位。堆棧指針SP(81H),8位:堆棧:在片內(nèi)RAM中,開辟的一個按“先進(jìn)后出”的結(jié)構(gòu)方式處理數(shù)據(jù)的區(qū)域。

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

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

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

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

串行口控制寄存器SCON;

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

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

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

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

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

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

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

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

(單、雙、四周期)2.5.2基本時序單位與89S51典型時序計算機(jī)的一條指令由若干個字節(jié)組成。執(zhí)行一條指令需要多長時間則以機(jī)器周期為單位。一個機(jī)器周期是指CPU訪問存儲器一次所需的時間。例如,取指令、讀存儲器、寫存儲器等等。一個機(jī)器周期包括12個振蕩周期,分為6個S狀態(tài):S1~S6。每個狀態(tài)又分為兩拍,稱為P1和P2。一個機(jī)器周期中的12個振蕩周期表示為S1P1,S1P2,S2P1,···,S6P1,S6P2。若采用6MHz晶體振蕩器,則每個機(jī)器周期為多少?機(jī)器周期如圖所示設(shè):晶體振蕩器頻率fosc=6MHz,則:振蕩周期=1/fosc=1/6μs(微秒)因為:一個機(jī)器周期包括12個振蕩周期,所以:一個機(jī)器周期=12*(1/6)μs(微秒)=2μs(微秒)問:如果fosc=12MHz,一個機(jī)器周期為多少?答案:1μs(微秒)機(jī)器周期指令周期:執(zhí)行一條指令所需的時間。每條指令的指令周期都由一個或幾個機(jī)器周期組成。有單周期指令、雙周期指令、和四周期指令。機(jī)器周期數(shù)少則執(zhí)行速度快。設(shè)振蕩周期為6MHz,上述指令周期各為多少?指令周期如圖所示指令周期設(shè)振蕩周期為6MHz,則一個機(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每條指令由一個或若干個字節(jié)組成。有單字節(jié)指令,雙字節(jié)指令,多字節(jié)指令。字節(jié)數(shù)少則占存儲器空間少。思考:指令的字節(jié)數(shù)與指令執(zhí)行的時間有關(guān)系嗎?是否指令的字節(jié)數(shù)越多,其執(zhí)行的時間就越長?答案:指令的運(yùn)算速度只與它所包含的機(jī)器周期數(shù)有關(guān)。機(jī)器周期數(shù)越少,執(zhí)行的速度就越快。如單字節(jié)的乘除指令需執(zhí)行4個機(jī)器周期。

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

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

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

2、雙周期指令時序

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

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

訪問外部RAM的雙周期指令時序

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

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

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

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

單片機(jī)低功耗方式的設(shè)置是通過電源控制寄存器(PCON)的相關(guān)位來實現(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ī)工作方式:

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

2、掉電工作方式

掉電工作方式的特征:

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

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

MOVPCON,#02H

掉電工作方式退出:

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

2.6.3ISP編程工作方式

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

缺點(diǎn):一是增加了硬件成本;二是在實際應(yīng)用開發(fā)過程中,需要從目標(biāo)系統(tǒng)電路板上拔下芯片,編程后再插上。二、ISP編程方式(在線編程方式)將RST接至Vcc,程序代碼存儲陣列可通過串行ISP接口進(jìn)行編程,89S51的串行接口包含時鐘輸入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ī)沒有像8086CPU一樣明確表示出地址線和數(shù)據(jù)線,它的數(shù)據(jù)線和地址線是由并行端口引出的,以使有限的引腳能完成更多的功能。2.四個8位并行I/O端口:P0、P1、P2和P3。每個端口都是8位準(zhǔn)雙向口,共占32根引腳。3.每一條I/O線都能獨(dú)立地用作輸入或輸出。4.每個端口都包括一個鎖存器(即特殊功能寄存器P0~P3),一個輸出驅(qū)動器和輸入緩沖器,作輸出時數(shù)據(jù)可以鎖存,作輸入時數(shù)據(jù)可以緩沖。這種結(jié)構(gòu)在數(shù)據(jù)輸出時可一直鎖存保存不變,但對輸入信號是不鎖存的,所以外設(shè)欲輸入的數(shù)據(jù)必須保持到取數(shù)指令執(zhí)行為止。一、P0口P0口功能:P0口作為一般I/O口使用P0口作為低8位地址/數(shù)據(jù)總線使用P0口某位的結(jié)構(gòu)圖當(dāng)C=0時,開關(guān)MUX被控與鎖存器的Q接通,P0口為通用I/O口;當(dāng)C=1時,開關(guān)撥向反相器3的輸出端,P0口分時作為地址/數(shù)據(jù)總線使用。P0口作一般(通用)I/O口:

P0口作輸出口:輸出級是開漏電路,輸出時需外接上拉電阻才能獲得高電平輸出。

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

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

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

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

溫馨提示

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

評論

0/150

提交評論