第二章 單片機硬件結(jié)構(gòu)及原理_第1頁
第二章 單片機硬件結(jié)構(gòu)及原理_第2頁
第二章 單片機硬件結(jié)構(gòu)及原理_第3頁
第二章 單片機硬件結(jié)構(gòu)及原理_第4頁
第二章 單片機硬件結(jié)構(gòu)及原理_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章MCS-51

單片機硬件結(jié)構(gòu)及原理

MCS-51單片機主要功能特點

MCS-51單片機內(nèi)部結(jié)構(gòu)分析

MCS-51單片機的引腳功能

MCS-51單片機的存儲器組織

MCS-51CPU時序2.1MCS-51單片機主要功能特點8位的CPU,片內(nèi)有振蕩器和時鐘電路,工作頻率為1~12MHz(Atmel89Cxx為0~24MHz)片內(nèi)有

128/256字節(jié)

RAM片內(nèi)有

0K/4K/8K字節(jié)程序存儲器ROM可尋址片外

64K字節(jié)

數(shù)據(jù)存儲器RAM可尋址片外

64K字節(jié)

程序存儲器ROM片內(nèi)

21/26個

特殊功能寄存器(SFR)4個8位

的并行I/O口(PIO)1個

全雙工串行口(SIO/UART)2/3個16位定時器/計數(shù)器(TIMER/COUNTER)可處理

5/6個中斷源,兩級中斷優(yōu)先級內(nèi)置1個布爾處理器和1個布爾累加器(Cy)MCS-51指令集含

111條指令MCS-51系列單片機配置一覽表系列片內(nèi)存儲器(字節(jié))定時器計數(shù)器并行I/O串行I/O中斷源片內(nèi)ROM片內(nèi)RAM無有ROM有EPROMIntelMCS-51子系列803180C31805180C51(4K字節(jié))875187C51(4K字節(jié))128字節(jié)2x164x8位15IntelMCS-52子系列803280C32805280C52(8K字節(jié))875287C52(8K字節(jié))256字節(jié)3x164x8位16ATEML89C系列(常用型)1051(1K)/2051(2K)/4051(4K)(20條引腳DIP封裝)1282151589C51(4K)/89C52(8K)(40條引腳DIP封裝)128/2562/33215/62.2MCS-51單片機內(nèi)部結(jié)構(gòu)分析內(nèi)部結(jié)構(gòu)框圖MCS-51單片機功能框圖單片機的組成

單片機要自動完成計算,它應該具有哪些最重要的部分呢?

以打算盤計算一道算術題為例。例:111+109×188-199÷32?,F(xiàn)在要進行運算,首先需要一把算盤,其次是紙和筆。我們把要計算的問題記錄下來,然后第一步先算109×188,把它與111相加的結(jié)果記在紙上,然后計算199÷32,再把它從上一次結(jié)果中減去,就得到最后的結(jié)果?,F(xiàn)在,用單片機來完成上述過程,顯然,它首先要有代替算盤進行運算的部件,這就是“運算器”;其次,要有能起到紙和筆作用的器件,即能記憶原始題目、原始數(shù)據(jù)和中間結(jié)果,還要記住使單片機能自動進行運算而編制的各種命令。這類器件就稱為“存貯器”。此外,還需要有能代替人作用的控制器,它能根據(jù)事先給定的命令發(fā)出各種控制信號,使整個計算過程能一步步地進行。但是光有這三部分還不夠,原始的數(shù)據(jù)與命令要輸入,計算的結(jié)果要輸出,都需要按先后順序進行,有時還需等待。

如上例中,當在計算109×188時,數(shù)字111就不能同時進入運算器。因此就需要在單片機上設置按控制器的命令進行動作的“門”,當運算器需要時,就讓新數(shù)據(jù)進入?;蛘?,當運算器得到最后結(jié)果時,再將此結(jié)果輸出,而中間結(jié)果不能隨便“溜出”單片機。這種對輸入、輸出數(shù)據(jù)進行一定管理的“門”電路在單片機中稱為“口”(Port)。在單片機中,基本上有三類信息在流動,一類是數(shù)據(jù),即各種原始數(shù)據(jù)(如上例中的111、109等)、中間結(jié)果(如199÷32所得的商6、余數(shù)7等)、程序(命令的集合)等。這樣要由外部設備通過“口”進入單片機,再存放在存貯器中,在運算處理過程中,數(shù)據(jù)從存貯器讀入運算器進行運算,運算的中間結(jié)果要存入存貯器中,或最后由運算器經(jīng)“出入口”輸出。用戶要單片機執(zhí)行的各種命令(程序)也以數(shù)據(jù)的形式由存貯器送入控制器,由控制器解讀(譯碼)后變?yōu)楦鞣N控制信號,以便執(zhí)行如加、減、乘、除等功能的各種命令。所以,這一類信息就稱為控制命令,即由控制器去控制運算器一步步地進行運算和處理,又控制存貯器的讀(取出數(shù)據(jù))和寫(存入數(shù)據(jù))等。第三類信息是地址信息,其作用是告訴運算器和控制器在何處去取命令取數(shù)據(jù),將結(jié)果存放到什么地方,通過哪個口輸入和輸出信息等。

存貯器又分為只讀存貯器和讀寫存貯器,前者存放調(diào)試好的固定程序和常數(shù),后者存放一些隨時有可能變動的數(shù)據(jù)。顧名思義,只讀存貯器一旦將數(shù)據(jù)存入,就只能讀出,不能更改。而讀寫存貯器可隨時存入或讀出數(shù)據(jù)。

實際上,人們往往把運算器和控制器合并稱為中央處理單元——CPU。單片機除了進行運算外,還要完成控制功能。所以離不開計數(shù)和定時。因此,在單片機中就設置有定時器兼計數(shù)器。到這里為止,我們已經(jīng)知道了單片機的基本組成,即單片機是由中央處理器(即CPU中的運算器和控制器)、只讀存貯器(ROM)、隨機讀寫存貯器(RAM)、輸入/輸出口(又分為并行口和串行口,表示為I/O口)等等組成。實際上單片機里還有時鐘電路,使單片機在進行運算和控制時,都能有節(jié)奏地進行。另外,還有所謂的“中斷系統(tǒng)”,這個系統(tǒng)有“傳達室”的作用,當單片機控制對象的參數(shù)到達某個需要加以干預的狀態(tài)時,就可經(jīng)此“傳達室”通報給CPU,使CPU根據(jù)外部事態(tài)的輕重緩急來采取適當?shù)膽洞胧?/p>

現(xiàn)在,我們已經(jīng)知道了單片機的組成,余下的問題是如何將它們的各部分連接成相互關聯(lián)的整體。實際上,單片機內(nèi)部有一條將它們連接起來的“紐帶”,即所謂的“內(nèi)部總線”。此總線有如大城市的“干道”,而CPU、ROM、RAM、I/O口、中斷系統(tǒng)等就分布在此“總線”的兩旁,并和它連通。從而,一切指令、數(shù)據(jù)都可經(jīng)內(nèi)部總線傳送,有如大城市內(nèi)各種物品的傳送都經(jīng)過干道進行。

什么是總線

計算機電路是以微處理器為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協(xié)調(diào),所以需要的連線很多,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨連線,則線的數(shù)量將多得驚人,所以在微處理機中引入了總線的概念,各個器件共同享用總線,所有器件的數(shù)據(jù)線全部接到8根公用的線上,即相當于各個器件并聯(lián)起來,但僅這樣還不行,如果有兩個器件同時送出數(shù)據(jù),一個為0,一個為1,那么,接收方接收到的究竟是什么呢?這種情況是不允許的,所以要通過控制線進行控制,使器件分時工作,任何時候只能有一個器件發(fā)送數(shù)據(jù)(可以有多個器件同時接收)。器件的數(shù)據(jù)線被稱為數(shù)據(jù)總線,器件所有的控制線被稱為控制總線。在單片機內(nèi)部或者外部存儲器及其它器件中有存儲單元,這些存儲單元要被分配地址,才能使用,分配地址當然也是以電信號的形式給出的,由于存儲單元比較多,所以,用于地址分配的線也較多,這些線被稱為地址總線。單片機的指令系統(tǒng)和匯編語言程序

前面已經(jīng)講述了單片機的幾個主要組成部分,這些部分構(gòu)成了單片機的硬件(Hardware)。但是,光有硬件,還只是有了實現(xiàn)計算和控制功能的可能性。單片機要真正地能進行計算和控制,還必須有軟件(Software)的配合。軟件主要指的是各種程序。只有將各種正確的程序存入單片機,它才能有效地工作。單片機所以能自動地進行運算和控制,正是由于人把實現(xiàn)計算和控制的步驟一步步地用命令的形式,即一條條指令(Instruction)預先存入到存貯器中,單片機在CPU的控制下,將指令一條條地取出來,并加以翻譯和執(zhí)行。就以兩個數(shù)相加這一簡單的運算來說,當需要運算的數(shù)已存入存貯器后,還需要進行以下幾步:

第一步:把第一個數(shù)從它的存貯單元(Location)中取出來,送至運算器。

第二步:把第二個數(shù)從它所在的存貯單元中取出來,送至運算器;

第三步:相加;

第四步:把相加完的結(jié)果,送至存貯器中指定的單元。所有這些取數(shù)、送數(shù)、相加、存數(shù)等等都是一種操作(Operation),我們把要求計算機執(zhí)行的各種操作用命令的形式寫下來,這就是指令。但是怎樣才能辨別和執(zhí)行這些操作呢?這是在設計單片機時由設計人員賦予它的指令系統(tǒng)所決定的。一條指令,對應著一種基本操作;單片機所能執(zhí)行的全部指令,就是該單片機的指令系統(tǒng)(Iustruction

Set),不同種類的單片機,其指令系統(tǒng)亦不同。

2.3MCS-51單片機的引腳功能Vcc,Vss

2XTAL1,XTAL2

2RESET

1EA/Vpp

1ALE/PROG1PSEN

1P0.0—P0.78P1.0—P1.78P2.0—P2.78P3.0—P3.7880C51的引腳封裝總線型非總線型2.3.1時鐘電路——用于產(chǎn)生供單片機各部分同步工作的時鐘信號XTAL1,XTAL2:片內(nèi)振蕩電路輸入/輸出端15~45pf1~12MHz(MCS-51)

0~24MHz(Atmel-89C)XTAL1XTAL2也可以由

XTAL2端接入外部時鐘,此時應將

XTAL1接地XTAL1XTAL2外部時鐘通常外接一個晶振兩個電容

MCS-51單片機的時鐘電路

圖2?13MCS-51時鐘接法幾個周期的概念CPU總是按照一定的時鐘節(jié)拍與時序工作振蕩周期/時鐘周期:

Tc=晶振頻率fosc(或外加頻率)的倒數(shù)狀態(tài)周期:Ts=2個時鐘周期(Tc)(很少用到此概念)機器周期:Tm=6個狀態(tài)周期(Ts)=12個振蕩周期(Tc)指令周期:

Ti:執(zhí)行一條指令所需的機器周期(Tm)數(shù)牢牢記住振蕩周期=晶振頻率fosc的倒數(shù);1個機器周期=12個振蕩周期;1個指令周期=1、2、4個機器周期2.3.2控制信號1、RST/VPD(9腳)復位信號復位的概念復位:將單片機系統(tǒng)置成特定初始狀態(tài)的操作。復位后程序從頭(0000H)開始重新執(zhí)行。何時復位剛通電時——上電復位,進入初始狀態(tài)重新啟動時——回到初始狀態(tài)、重新開始程序故障時——回到初始狀態(tài)、重新開始復位是什么?一般在什么時候需要進行復位?復位后內(nèi)部寄存器狀態(tài)復位后單片機的特點寄存器初始狀態(tài)值寄存器初始狀態(tài)值PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0、P1

P2、P30FFHSCON00HIPXX000000BPCON0XX00000BIEN00XX00000BSBUF不定復位后單片機是什么樣的呢?51單片機的復位復位端

RST/VPD:RST是復位信號輸入端,高電平有效。當此輸入端保持2個機器周期的高電平時,就可以完成復位操作。RST引腳的第二功能是備用電源的輸入端。51單片機的復位電路上電復位51單片機的復位與復位電路手動復位51單片機的復位電路手動復位51單片機的復位電路采用專用的復位芯片MAX810復位51單片機的復位電路復位電路——復位芯片MAX810MAX810是一種單一功能的微處理器復位芯片,用于監(jiān)控微控制器和其他邏輯系統(tǒng)的電源電壓。它可以在上電、掉電和節(jié)電情況下向微控制器提供復位信號。當電源電壓低于預設的門檻電壓時,器件會發(fā)出復位信號,直到在一段時間內(nèi)電源電壓又恢復到高于門檻電壓為止。特性參數(shù):監(jiān)控5.0V、3.3V、3V電源;典型值17μA的低電源電流;高電平有效的RESET輸出;抗電源的瞬態(tài)干擾;51單片機的復位電路復位電路——復位芯片MAX810特性參數(shù)(續(xù))復位延時時間最小為140ms;低至1.1V電源時仍能產(chǎn)生有效的復位信號;小型的三管腳SOT-23封裝;無需外部配件;適用于-40℃~+105℃的溫度范圍。2.3.2控制信號2、ALE/(AddressLatchEnable/Programming)

(30腳)地址鎖存信號訪問片外存儲器時,ALE作鎖存擴展地址的低位字節(jié)的控制信號,即此信號為高電平時,P0給出低8位地址,可用此信號加于外接鎖存器控制端。不訪問片外存儲器時,該端以六分之一的時鐘振蕩頻率固定輸出正脈沖,供定時或其它需要使用。對8751片內(nèi)EPROM編程(固化)時,此引腳

用于輸入編程脈沖。2.3.2控制信號3、(29腳)片外程序存儲器讀選通當51系列單片機訪問片外程序存儲器時,輸出低電平。在每個機器周期內(nèi)兩次有效(變低)。單片機P0.0-P0.7ALEPSENP2.0-P2.48D8QOEA8-A12A0-A7D0-D7GEAOECEEPROM2.3.2控制信號4、/Vpp(31腳)當訪問內(nèi)部程序存儲器時,端應保持高電平,當PC超出4KB(8052為8KB)時,將自動執(zhí)行片外程序存儲器的程序。當端接低電平時,只訪問片外程序存儲器(8031的該引腳必須接地)。在對8751EPROM編程時,此引腳Vpp需施加編程電壓。2.3.3I/O口——P0口P0口某一位的電路包括:(1)一個數(shù)據(jù)輸出鎖存器,用于數(shù)據(jù)位的鎖存(2)兩個三態(tài)的數(shù)據(jù)輸入緩沖器。(3)一個多路轉(zhuǎn)接開關MUX,使:P0口可作通用I/O口,或地址/數(shù)據(jù)線口。(4)數(shù)據(jù)輸出的驅(qū)動和控制電路,由兩只場效應管(FET)組成,上面的場效應管構(gòu)成上拉電路。P0口傳送地址或數(shù)據(jù)時,CPU發(fā)出控制信號為高電平,打開上面的與門,使多路轉(zhuǎn)接開關MUX打向上邊,使內(nèi)部地址/數(shù)據(jù)線與下面的場效應管2.3.3I/O口——P0口

處于反相接通狀態(tài)。此時輸出驅(qū)動電路由于上下兩個FET處于反相,形成推拉式電路結(jié)構(gòu),大大提高負載能力。

P0口作通用的I/O口使用。這時,CPU發(fā)來的“控制”信號為低電平,上拉場效應管截止,多路轉(zhuǎn)接開關MUX打向下邊,與D鎖存器的Q*端接通。(1)P0作輸出口使用來自CPU的“寫入”脈沖加在D鎖存器的CP端,內(nèi)部總線上的數(shù)據(jù)寫入D鎖存器,并向端口引腳P0.x輸出。注意:由于輸出電路是漏極開路(因為這時上拉場效應管截止),必須外接上拉電阻才能有高電平輸出。(2)P0作輸入口使用區(qū)分“讀引腳”和“讀鎖存器”?!白x引腳”信號把下方緩沖器打開,引腳上的狀態(tài)經(jīng)緩沖器讀入內(nèi)部總線;“讀鎖存器”信號打開上面的緩沖器把鎖存器Q端的狀態(tài)讀入內(nèi)部總線。2.3.3I/O口——P0口

P0.0—P0.7:雙向I/O

(內(nèi)置場效應管上拉)

尋址外部程序存儲器時分時作為雙向8位數(shù)據(jù)口和輸出低8位地址復用口;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制引腳P0.X34Vcc2.3.3I/O口——P0口

P0.0—P0.7:雙向I/O

(內(nèi)置場效應管上拉)控制=0,作8位輸入口使用。21DQCK/Q讀引腳=1讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制引腳P0.X34控制=0

時,此腳作輸入口(事先必須對它寫“1”)00100截止截止=0Vcc2.3.3I/O口——P0口

P0.0—P0.7:雙向I/O

(內(nèi)置場效應管上拉)控制=0,作8位輸出口。數(shù)據(jù)經(jīng)由內(nèi)部總線被存于鎖存器,并向引腳輸出。由于此時T0截止,需外接上拉電阻。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制引腳P0.X34控制=0

時,P0作輸出口(同P1)00截止=0VccVCC2.3.3I/O口——P0口

P0.0—P0.7:雙向I/O

(內(nèi)置場效應管上拉)控制=1,作雙向8位數(shù)據(jù)口和輸出低8位地址復用口。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制=1引腳P0.X34控制=1時,此腳作地址/數(shù)據(jù)復用口:(1)輸出地址/數(shù)據(jù)=0

時1011=0導通截止=0Vcc2.3.3I/O口——P0口

P0.0—P0.7:雙向I/O

(內(nèi)置場效應管上拉)控制=1,作雙向8位數(shù)據(jù)口和輸出低8位地址復用口。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制=1引腳P0.X34控制=1時,此腳作地址/數(shù)據(jù)復用口:(2)輸出地址/數(shù)據(jù)=1

時1100=1截止導通=1Vcc2.3.3I/O口——P0口

P0.0—P0.7:雙向I/O

(內(nèi)置場效應管上拉)控制=1,作雙向8位數(shù)據(jù)口和輸出低8位地址復用口。21DQCK/Q讀引腳=1讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制=1引腳P0.X34(3)輸入數(shù)據(jù)時,輸入指令將使引腳與內(nèi)部總線直通Vcc2.3.3I/O口——P1口P1口只作通用的I/O口使用,在電路結(jié)構(gòu)上與P0口有兩點區(qū)別:(1)因為只傳送數(shù)據(jù),不再需要多路轉(zhuǎn)接開關MUX。(2)由于P1口用來傳送數(shù)據(jù),因此輸出電路中有上拉電阻,這樣電路的輸出不是三態(tài)的,所以P1口是準雙向口。因此:(1)P1口作為輸出口使用時,外電路無需再接上拉電阻。(2)P1口作為輸入口使用時,應先向其鎖存器先寫入“1”,使輸出驅(qū)動電路的FET截止。2.3.3I/O口——P1口

P1.0—P1.7:準雙向I/O口(內(nèi)置了上拉電阻)準雙向:在作輸入口用時要先對其寫“1”。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線Vcc引腳P1.X內(nèi)部上拉電阻2.3.3I/O口——P1口P1.0—P1.7:作輸出口21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線Vcc引腳P1.X內(nèi)部上拉電阻輸出數(shù)據(jù)=1時110截止=12.3.3I/O口——P1口P1.0—P1.7:作輸出口21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線Vcc引腳P1.X內(nèi)部上拉電阻輸出數(shù)據(jù)=0時001=0導通2.3.3I/O口——P1口

P1.0—P1.7:作輸入口,讀引腳,先對其寫“1”。21DQCK/Q讀引腳=1讀鎖存器寫鎖存器內(nèi)部總線Vcc引腳P1.X內(nèi)部上拉電阻110截止2.3.3I/O口——P1口

P1.0—P1.7:作輸入口,讀鎖存器,指令形式為“讀-改-寫”指令,即:口地址作目的操作數(shù)。如:ANL

P0,A;(P0)(P0)&(A)21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線Vcc引腳P1.X內(nèi)部上拉電阻P1口應用實例簡單測控實例原理圖P1口應用實例P1.3作輸入端口2.3.3I/O口——P2口在實際應用中,因為P2口用于提供高位地址,有一個多路轉(zhuǎn)接開關MUX。但MUX的一個輸入端不再是“地址/數(shù)據(jù)”,而是單一的“地址”,因為P2口只作為地址線使用。當P2口用作為高位地址線使用時,多路轉(zhuǎn)接開關應接向“地址”端。正因為只作為地址線使用,口的輸出用不著是三態(tài)的,所以,P2口也是一個準雙向口。P2口也可以作為通用I/O口使用,這時,多路轉(zhuǎn)接開關接向鎖存器Q端。2.3.3I/O口——P2口

P2.0—P2.7:雙向I/O(內(nèi)置了上拉電阻)

尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制引腳P2.X3內(nèi)部上拉電阻Vcc2.3.3I/O口——P2口

P2.0—P2.7:雙向I/O(內(nèi)置了上拉電阻)

尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制引腳P2.X控制=0時,此腳作通用輸出口:輸出=1時110截止3內(nèi)部上拉電阻11Vcc=1=02.3.3I/O口——P2口

P2.0—P2.7:雙向I/O(內(nèi)置了上拉電阻)

尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制引腳P2.X控制=0時,此腳作通用輸出口:輸出=0時001導通3內(nèi)部上拉電阻00Vcc=0=02.3.3I/O口——P2口

P2.0—P2.7:雙向I/O(內(nèi)置了上拉電阻)

尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制=1引腳P2.X控制=1

時,此腳作高8位地址A8—A15輸出口:當輸出=1時10截止3內(nèi)部上拉電阻1=1Vcc=12.3.3I/O口——P2口

P2.0—P2.7:雙向I/O(內(nèi)置了上拉電阻)

尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制=1引腳P2.X01導通3內(nèi)部上拉電阻0=0Vcc=0控制=1

時,此腳作高8位地址A8-A15輸出口:當輸出=0時2.3.3I/O口——P3口

P3.0—P3.7:雙功能口(內(nèi)置了上拉電阻)

它具有特定的第二功能。在不使用它的第二功能時它就是普通的通用準雙向I/O口。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線第二功能輸出引腳P3.X3內(nèi)部上拉電阻Vcc第二功能輸入42.3.3I/O口——P3口

P3.0—P3.7:雙功能口(內(nèi)置了上拉電阻)第二功能輸出:21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線第二功能輸出(WR,RD,TxD)引腳P3.X3內(nèi)部上拉電阻Vcc4第二功能輸出時,內(nèi)部自動D=1111反相器2.3.3I/O口——P3口

P3.0—P3.7:雙功能口(內(nèi)置了上拉電阻)第二功能輸入:21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線此端自動=1引腳P3.X3內(nèi)部上拉電阻Vcc

第二功能輸入(RxD,T0,T1,INT0,INT1)4第二功能輸入時,信號經(jīng)緩沖器4直接進入內(nèi)總線1110截止P3口第二功能表引腳第二功能P3.0RxD:

串行口接收數(shù)據(jù)輸入端P3.1TxD:

串行口發(fā)送數(shù)據(jù)輸出端P3.2INT0:

外部中斷申請輸入端0P3.3INT1:

外部中斷申請輸入端1P3.4T0:

外部計數(shù)脈沖輸入端0P3.5T1:

外部計數(shù)脈沖輸入端1P3.6WR:

寫外設控制信號輸出端P3.7RD:

讀外設控制信號輸出端2.4MCS-51的存儲器組織片內(nèi)RAM128字節(jié)(00H—7FH);

片內(nèi)RAM前32個單元是工作寄存器區(qū)(00H—1FH)

片內(nèi)RAM有128個可按位尋址的位,占16個單元。位地址編號為:00H—7FH,分布在20H—2FH單元片內(nèi)21個特殊功能寄存器(SFR)中:地址號能被8整除的SFR中的各位也可按位尋址(P43)可尋址片外RAM64K字節(jié)(0000H—FFFFH)可尋址片外ROM64K字節(jié)(0000H—FFFFH)片內(nèi)Flash

ROM4K字節(jié)(000H—FFFH)2.4.1MCS-51程序存儲器內(nèi)部(EA=1)外部(EA=0)外部0FFFH0000H0FFFH0000HFFFFH1000H內(nèi)部(EA=1)外部(EA=0)外部1FFFH0000H1FFFH0000HFFFFH2000H51子系列程序存儲器配置52子系列程序存儲器配置程序存儲器中7個特殊定義的地址入口意義0000H系統(tǒng)程序的啟動地址0003H外部中斷0入口地址000BH定時器0溢出入口地址0013H外部中斷1入口地址001BH定時器1溢出入口地址0023H串行口中斷002BH定時器2溢出或T2EX(P1.1)端負跳通常在這些入口地址都安放一條絕對跳轉(zhuǎn)指令,跳轉(zhuǎn)到相應中斷服務程序入口去執(zhí)行中斷服務程序。2.4.2數(shù)據(jù)存儲器片內(nèi)RAM

128字節(jié)(00H—7FH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)SFR分布在80H-FFH其中92個位可位尋址80HFFH所有的RAM區(qū)(包括位尋址區(qū)、工作寄存器區(qū))都可以用于存放數(shù)據(jù),故也稱為數(shù)據(jù)緩存寄存器89C51128字節(jié)2.4.2數(shù)據(jù)存儲器片內(nèi)RAM前32個單元是工作寄存器區(qū)(00H—1FH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器區(qū)3工作寄存器區(qū)2工作寄存器區(qū)1工作寄存器區(qū)00FH10H17H18H工作寄存器使用哪一組由特殊功能寄存器(PSW)的RS1(PSW.4)、RS0(PSW.3)位狀態(tài)來選擇:

RS1,RS0=00則選擇了工作寄存器組

0區(qū)

R0~R7分別代表08H~0FH單元。

RS1,RS0=01則選擇了工作寄存器組

1區(qū)

R0~R7分別代表08H~0FH單元。

RS1,RS0=10則選擇了工作寄存器組

2區(qū)

R0~R7分別代表10H~17H單元。

RS1,RS0=11則選擇了工作寄存器組

3區(qū)

R0~R7分別代表18H~1FH單元。CYACF0RS1PSW.7PSW.4RS0OVPPSW.0PSW.32.4.2數(shù)據(jù)存儲器

片內(nèi)RAM中有128個可按位尋址的位。

位地址:00H—7FH

分布在:20H—2FH單元00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)27H22H21H20H26H24H25H23H28H2FH單元地址07060504030201000F0E0D0C0B0A090817161514131211101F1E1D1C1B1A191827262524232221202F2E2D2C2B2A292837363534333231303F3E3D3C3B3A393847464544434241407F7E7D7C7B7A7978位地址2.4.3專用寄存器

SFR-SpecialFunctionRegister

MCS-51共有23個特殊功能寄存器(3個屬于8032/8052),其中5個是雙字節(jié)寄存器,程序計數(shù)器PC在物理上是獨立的,其余22個寄存器都屬于片內(nèi)數(shù)據(jù)存儲器SFR塊,共占26個字節(jié)。2.4.3專用寄存器1.程序計數(shù)器PC(16bit)2.累加器A3.寄存器B4、程序狀態(tài)字PSW5、堆棧指針SP6、數(shù)據(jù)指針DPTR7、I/O端口P0~P3

程序計數(shù)器PC(ProgramCounter)用來存放下一條要執(zhí)行的指令在程序存儲器中的地址。

基本工作方式有以下幾種:

(1)程序計數(shù)器自動加1

(2)執(zhí)行有條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令時,程序計數(shù)器將被置入新的數(shù)值,從而使程序的流向發(fā)生變化。(3)在執(zhí)行調(diào)用子程序調(diào)用或中斷調(diào)用,完成下列操作: ①PC的現(xiàn)行值保護②將子程序入口地址或中斷向量的地址送入PC。累加器A

使用最頻繁的寄存器,可寫為Acc。

A的作用:(1)是ALU的輸入之一,又是運算結(jié)果的存放單元。(2)數(shù)據(jù)傳送大多都通過累加器A。MCS-51增加了一部分可以不經(jīng)過累加器的傳送指令,即可加快數(shù)據(jù)的傳送速度,又減少A的“瓶頸堵塞”現(xiàn)象。

A的進位標志Cy同時又是位處理機的位累加器。特殊功能寄存器(PSW)OV(PSW.2)溢出標志位。

OV=1時特指累加器在進行帶符號數(shù)(-128—+127)運算時出錯(超出范圍);OV=0時未出錯。PSW.1未定義。P(PSW.0)奇偶標志位。

P=1表示累加器中“1”的個數(shù)為奇數(shù)

P=0表示累加器中“1”的個數(shù)為偶數(shù)

CPU隨時監(jiān)視著ACC中的“1”的個數(shù),并反映在PSW中CYACF0RS0OVPRS1PSW.7PSW.0PSW.2PSW.1CY(PSW.7)進位/借位標志位。AC(PSW.6)半進位/借位標志位。F0(PSW.5)可由用戶定義的標志位。RS1(PSW.4)、RS0(PSW.3)工作寄存器組選擇位。該兩位的四種組合狀態(tài)用來選擇0~3寄存器組。見下表。

CYACF0RS0OVPRS1PSW.7PSW.0PSW.6PSW.5程序狀態(tài)字PSWRS1RS0工作寄存器組000組(00-07)011組(08-0F)102組(10-17)113組(18-1F)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論