版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第2章MCS-51
單片機(jī)硬件結(jié)構(gòu)及原理
MCS-51單片機(jī)主要功能特點(diǎn)
MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)分析
MCS-51單片機(jī)的引腳功能
MCS-51單片機(jī)的存儲器組織
MCS-51CPU時序2.1MCS-51單片機(jī)主要功能特點(diǎn)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系列單片機(jī)配置一覽表系列片內(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單片機(jī)內(nèi)部結(jié)構(gòu)分析內(nèi)部結(jié)構(gòu)框圖MCS-51單片機(jī)功能框圖單片機(jī)的組成
單片機(jī)要自動完成計算,它應(yīng)該具有哪些最重要的部分呢?
以打算盤計算一道算術(shù)題為例。例:111+109×188-199÷32?,F(xiàn)在要進(jìn)行運(yùn)算,首先需要一把算盤,其次是紙和筆。我們把要計算的問題記錄下來,然后第一步先算109×188,把它與111相加的結(jié)果記在紙上,然后計算199÷32,再把它從上一次結(jié)果中減去,就得到最后的結(jié)果?,F(xiàn)在,用單片機(jī)來完成上述過程,顯然,它首先要有代替算盤進(jìn)行運(yùn)算的部件,這就是“運(yùn)算器”;其次,要有能起到紙和筆作用的器件,即能記憶原始題目、原始數(shù)據(jù)和中間結(jié)果,還要記住使單片機(jī)能自動進(jìn)行運(yùn)算而編制的各種命令。這類器件就稱為“存貯器”。此外,還需要有能代替人作用的控制器,它能根據(jù)事先給定的命令發(fā)出各種控制信號,使整個計算過程能一步步地進(jìn)行。但是光有這三部分還不夠,原始的數(shù)據(jù)與命令要輸入,計算的結(jié)果要輸出,都需要按先后順序進(jìn)行,有時還需等待。
如上例中,當(dāng)在計算109×188時,數(shù)字111就不能同時進(jìn)入運(yùn)算器。因此就需要在單片機(jī)上設(shè)置按控制器的命令進(jìn)行動作的“門”,當(dāng)運(yùn)算器需要時,就讓新數(shù)據(jù)進(jìn)入。或者,當(dāng)運(yùn)算器得到最后結(jié)果時,再將此結(jié)果輸出,而中間結(jié)果不能隨便“溜出”單片機(jī)。這種對輸入、輸出數(shù)據(jù)進(jìn)行一定管理的“門”電路在單片機(jī)中稱為“口”(Port)。在單片機(jī)中,基本上有三類信息在流動,一類是數(shù)據(jù),即各種原始數(shù)據(jù)(如上例中的111、109等)、中間結(jié)果(如199÷32所得的商6、余數(shù)7等)、程序(命令的集合)等。這樣要由外部設(shè)備通過“口”進(jìn)入單片機(jī),再存放在存貯器中,在運(yùn)算處理過程中,數(shù)據(jù)從存貯器讀入運(yùn)算器進(jìn)行運(yùn)算,運(yùn)算的中間結(jié)果要存入存貯器中,或最后由運(yùn)算器經(jīng)“出入口”輸出。用戶要單片機(jī)執(zhí)行的各種命令(程序)也以數(shù)據(jù)的形式由存貯器送入控制器,由控制器解讀(譯碼)后變?yōu)楦鞣N控制信號,以便執(zhí)行如加、減、乘、除等功能的各種命令。所以,這一類信息就稱為控制命令,即由控制器去控制運(yùn)算器一步步地進(jìn)行運(yùn)算和處理,又控制存貯器的讀(取出數(shù)據(jù))和寫(存入數(shù)據(jù))等。第三類信息是地址信息,其作用是告訴運(yùn)算器和控制器在何處去取命令取數(shù)據(jù),將結(jié)果存放到什么地方,通過哪個口輸入和輸出信息等。
存貯器又分為只讀存貯器和讀寫存貯器,前者存放調(diào)試好的固定程序和常數(shù),后者存放一些隨時有可能變動的數(shù)據(jù)。顧名思義,只讀存貯器一旦將數(shù)據(jù)存入,就只能讀出,不能更改。而讀寫存貯器可隨時存入或讀出數(shù)據(jù)。
實(shí)際上,人們往往把運(yùn)算器和控制器合并稱為中央處理單元——CPU。單片機(jī)除了進(jìn)行運(yùn)算外,還要完成控制功能。所以離不開計數(shù)和定時。因此,在單片機(jī)中就設(shè)置有定時器兼計數(shù)器。到這里為止,我們已經(jīng)知道了單片機(jī)的基本組成,即單片機(jī)是由中央處理器(即CPU中的運(yùn)算器和控制器)、只讀存貯器(ROM)、隨機(jī)讀寫存貯器(RAM)、輸入/輸出口(又分為并行口和串行口,表示為I/O口)等等組成。實(shí)際上單片機(jī)里還有時鐘電路,使單片機(jī)在進(jìn)行運(yùn)算和控制時,都能有節(jié)奏地進(jìn)行。另外,還有所謂的“中斷系統(tǒng)”,這個系統(tǒng)有“傳達(dá)室”的作用,當(dāng)單片機(jī)控制對象的參數(shù)到達(dá)某個需要加以干預(yù)的狀態(tài)時,就可經(jīng)此“傳達(dá)室”通報給CPU,使CPU根據(jù)外部事態(tài)的輕重緩急來采取適當(dāng)?shù)膽?yīng)付措施。
現(xiàn)在,我們已經(jīng)知道了單片機(jī)的組成,余下的問題是如何將它們的各部分連接成相互關(guān)聯(lián)的整體。實(shí)際上,單片機(jī)內(nèi)部有一條將它們連接起來的“紐帶”,即所謂的“內(nèi)部總線”。此總線有如大城市的“干道”,而CPU、ROM、RAM、I/O口、中斷系統(tǒng)等就分布在此“總線”的兩旁,并和它連通。從而,一切指令、數(shù)據(jù)都可經(jīng)內(nèi)部總線傳送,有如大城市內(nèi)各種物品的傳送都經(jīng)過干道進(jìn)行。
什么是總線
計算機(jī)電路是以微處理器為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協(xié)調(diào),所以需要的連線很多,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨(dú)連線,則線的數(shù)量將多得驚人,所以在微處理機(jī)中引入了總線的概念,各個器件共同享用總線,所有器件的數(shù)據(jù)線全部接到8根公用的線上,即相當(dāng)于各個器件并聯(lián)起來,但僅這樣還不行,如果有兩個器件同時送出數(shù)據(jù),一個為0,一個為1,那么,接收方接收到的究竟是什么呢?這種情況是不允許的,所以要通過控制線進(jìn)行控制,使器件分時工作,任何時候只能有一個器件發(fā)送數(shù)據(jù)(可以有多個器件同時接收)。器件的數(shù)據(jù)線被稱為數(shù)據(jù)總線,器件所有的控制線被稱為控制總線。在單片機(jī)內(nèi)部或者外部存儲器及其它器件中有存儲單元,這些存儲單元要被分配地址,才能使用,分配地址當(dāng)然也是以電信號的形式給出的,由于存儲單元比較多,所以,用于地址分配的線也較多,這些線被稱為地址總線。單片機(jī)的指令系統(tǒng)和匯編語言程序
前面已經(jīng)講述了單片機(jī)的幾個主要組成部分,這些部分構(gòu)成了單片機(jī)的硬件(Hardware)。但是,光有硬件,還只是有了實(shí)現(xiàn)計算和控制功能的可能性。單片機(jī)要真正地能進(jìn)行計算和控制,還必須有軟件(Software)的配合。軟件主要指的是各種程序。只有將各種正確的程序存入單片機(jī),它才能有效地工作。單片機(jī)所以能自動地進(jìn)行運(yùn)算和控制,正是由于人把實(shí)現(xiàn)計算和控制的步驟一步步地用命令的形式,即一條條指令(Instruction)預(yù)先存入到存貯器中,單片機(jī)在CPU的控制下,將指令一條條地取出來,并加以翻譯和執(zhí)行。就以兩個數(shù)相加這一簡單的運(yùn)算來說,當(dāng)需要運(yùn)算的數(shù)已存入存貯器后,還需要進(jìn)行以下幾步:
第一步:把第一個數(shù)從它的存貯單元(Location)中取出來,送至運(yùn)算器。
第二步:把第二個數(shù)從它所在的存貯單元中取出來,送至運(yùn)算器;
第三步:相加;
第四步:把相加完的結(jié)果,送至存貯器中指定的單元。所有這些取數(shù)、送數(shù)、相加、存數(shù)等等都是一種操作(Operation),我們把要求計算機(jī)執(zhí)行的各種操作用命令的形式寫下來,這就是指令。但是怎樣才能辨別和執(zhí)行這些操作呢?這是在設(shè)計單片機(jī)時由設(shè)計人員賦予它的指令系統(tǒng)所決定的。一條指令,對應(yīng)著一種基本操作;單片機(jī)所能執(zhí)行的全部指令,就是該單片機(jī)的指令系統(tǒng)(Iustruction
Set),不同種類的單片機(jī),其指令系統(tǒng)亦不同。
2.3MCS-51單片機(jī)的引腳功能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)生供單片機(jī)各部分同步工作的時鐘信號XTAL1,XTAL2:片內(nèi)振蕩電路輸入/輸出端15~45pf1~12MHz(MCS-51)
0~24MHz(Atmel-89C)XTAL1XTAL2也可以由
XTAL2端接入外部時鐘,此時應(yīng)將
XTAL1接地XTAL1XTAL2外部時鐘通常外接一個晶振兩個電容
MCS-51單片機(jī)的時鐘電路
圖2?13MCS-51時鐘接法幾個周期的概念CPU總是按照一定的時鐘節(jié)拍與時序工作振蕩周期/時鐘周期:
Tc=晶振頻率fosc(或外加頻率)的倒數(shù)狀態(tài)周期:Ts=2個時鐘周期(Tc)(很少用到此概念)機(jī)器周期:Tm=6個狀態(tài)周期(Ts)=12個振蕩周期(Tc)指令周期:
Ti:執(zhí)行一條指令所需的機(jī)器周期(Tm)數(shù)牢牢記住振蕩周期=晶振頻率fosc的倒數(shù);1個機(jī)器周期=12個振蕩周期;1個指令周期=1、2、4個機(jī)器周期2.3.2控制信號1、RST/VPD(9腳)復(fù)位信號復(fù)位的概念復(fù)位:將單片機(jī)系統(tǒng)置成特定初始狀態(tài)的操作。復(fù)位后程序從頭(0000H)開始重新執(zhí)行。何時復(fù)位剛通電時——上電復(fù)位,進(jìn)入初始狀態(tài)重新啟動時——回到初始狀態(tài)、重新開始程序故障時——回到初始狀態(tài)、重新開始復(fù)位是什么?一般在什么時候需要進(jìn)行復(fù)位?復(fù)位后內(nèi)部寄存器狀態(tài)復(fù)位后單片機(jī)的特點(diǎn)寄存器初始狀態(tài)值寄存器初始狀態(tài)值PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0、P1
P2、P30FFHSCON00HIPXX000000BPCON0XX00000BIEN00XX00000BSBUF不定復(fù)位后單片機(jī)是什么樣的呢?51單片機(jī)的復(fù)位復(fù)位端
RST/VPD:RST是復(fù)位信號輸入端,高電平有效。當(dāng)此輸入端保持2個機(jī)器周期的高電平時,就可以完成復(fù)位操作。RST引腳的第二功能是備用電源的輸入端。51單片機(jī)的復(fù)位電路上電復(fù)位51單片機(jī)的復(fù)位與復(fù)位電路手動復(fù)位51單片機(jī)的復(fù)位電路手動復(fù)位51單片機(jī)的復(fù)位電路采用專用的復(fù)位芯片MAX810復(fù)位51單片機(jī)的復(fù)位電路復(fù)位電路——復(fù)位芯片MAX810MAX810是一種單一功能的微處理器復(fù)位芯片,用于監(jiān)控微控制器和其他邏輯系統(tǒng)的電源電壓。它可以在上電、掉電和節(jié)電情況下向微控制器提供復(fù)位信號。當(dāng)電源電壓低于預(yù)設(shè)的門檻電壓時,器件會發(fā)出復(fù)位信號,直到在一段時間內(nèi)電源電壓又恢復(fù)到高于門檻電壓為止。特性參數(shù):監(jiān)控5.0V、3.3V、3V電源;典型值17μA的低電源電流;高電平有效的RESET輸出;抗電源的瞬態(tài)干擾;51單片機(jī)的復(fù)位電路復(fù)位電路——復(fù)位芯片MAX810特性參數(shù)(續(xù))復(fù)位延時時間最小為140ms;低至1.1V電源時仍能產(chǎn)生有效的復(fù)位信號;小型的三管腳SOT-23封裝;無需外部配件;適用于-40℃~+105℃的溫度范圍。2.3.2控制信號2、ALE/(AddressLatchEnable/Programming)
(30腳)地址鎖存信號訪問片外存儲器時,ALE作鎖存擴(kuò)展地址的低位字節(jié)的控制信號,即此信號為高電平時,P0給出低8位地址,可用此信號加于外接鎖存器控制端。不訪問片外存儲器時,該端以六分之一的時鐘振蕩頻率固定輸出正脈沖,供定時或其它需要使用。對8751片內(nèi)EPROM編程(固化)時,此引腳
用于輸入編程脈沖。2.3.2控制信號3、(29腳)片外程序存儲器讀選通當(dāng)51系列單片機(jī)訪問片外程序存儲器時,輸出低電平。在每個機(jī)器周期內(nèi)兩次有效(變低)。單片機(jī)P0.0-P0.7ALEPSENP2.0-P2.48D8QOEA8-A12A0-A7D0-D7GEAOECEEPROM2.3.2控制信號4、/Vpp(31腳)當(dāng)訪問內(nèi)部程序存儲器時,端應(yīng)保持高電平,當(dāng)PC超出4KB(8052為8KB)時,將自動執(zhí)行片外程序存儲器的程序。當(dāng)端接低電平時,只訪問片外程序存儲器(8031的該引腳必須接地)。在對8751EPROM編程時,此引腳Vpp需施加編程電壓。2.3.3I/O口——P0口P0口某一位的電路包括:(1)一個數(shù)據(jù)輸出鎖存器,用于數(shù)據(jù)位的鎖存(2)兩個三態(tài)的數(shù)據(jù)輸入緩沖器。(3)一個多路轉(zhuǎn)接開關(guān)MUX,使:P0口可作通用I/O口,或地址/數(shù)據(jù)線口。(4)數(shù)據(jù)輸出的驅(qū)動和控制電路,由兩只場效應(yīng)管(FET)組成,上面的場效應(yīng)管構(gòu)成上拉電路。P0口傳送地址或數(shù)據(jù)時,CPU發(fā)出控制信號為高電平,打開上面的與門,使多路轉(zhuǎn)接開關(guān)MUX打向上邊,使內(nèi)部地址/數(shù)據(jù)線與下面的場效應(yīng)管2.3.3I/O口——P0口
處于反相接通狀態(tài)。此時輸出驅(qū)動電路由于上下兩個FET處于反相,形成推拉式電路結(jié)構(gòu),大大提高負(fù)載能力。
P0口作通用的I/O口使用。這時,CPU發(fā)來的“控制”信號為低電平,上拉場效應(yīng)管截止,多路轉(zhuǎn)接開關(guān)MUX打向下邊,與D鎖存器的Q*端接通。(1)P0作輸出口使用來自CPU的“寫入”脈沖加在D鎖存器的CP端,內(nèi)部總線上的數(shù)據(jù)寫入D鎖存器,并向端口引腳P0.x輸出。注意:由于輸出電路是漏極開路(因?yàn)檫@時上拉場效應(yīng)管截止),必須外接上拉電阻才能有高電平輸出。(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)置場效應(yīng)管上拉)
尋址外部程序存儲器時分時作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;不接外部程序存儲器時可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制引腳P0.X34Vcc2.3.3I/O口——P0口
P0.0—P0.7:雙向I/O
(內(nèi)置場效應(yīng)管上拉)控制=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)置場效應(yīng)管上拉)控制=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)置場效應(yīng)管上拉)控制=1,作雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制=1引腳P0.X34控制=1時,此腳作地址/數(shù)據(jù)復(fù)用口:(1)輸出地址/數(shù)據(jù)=0
時1011=0導(dǎo)通截止=0Vcc2.3.3I/O口——P0口
P0.0—P0.7:雙向I/O
(內(nèi)置場效應(yīng)管上拉)控制=1,作雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制=1引腳P0.X34控制=1時,此腳作地址/數(shù)據(jù)復(fù)用口:(2)輸出地址/數(shù)據(jù)=1
時1100=1截止導(dǎo)通=1Vcc2.3.3I/O口——P0口
P0.0—P0.7:雙向I/O
(內(nèi)置場效應(yīng)管上拉)控制=1,作雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口。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口有兩點(diǎn)區(qū)別:(1)因?yàn)橹粋魉蛿?shù)據(jù),不再需要多路轉(zhuǎn)接開關(guān)MUX。(2)由于P1口用來傳送數(shù)據(jù),因此輸出電路中有上拉電阻,這樣電路的輸出不是三態(tài)的,所以P1口是準(zhǔn)雙向口。因此:(1)P1口作為輸出口使用時,外電路無需再接上拉電阻。(2)P1口作為輸入口使用時,應(yīng)先向其鎖存器先寫入“1”,使輸出驅(qū)動電路的FET截止。2.3.3I/O口——P1口
P1.0—P1.7:準(zhǔn)雙向I/O口(內(nèi)置了上拉電阻)準(zhǔn)雙向:在作輸入口用時要先對其寫“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導(dǎo)通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口應(yīng)用實(shí)例簡單測控實(shí)例原理圖P1口應(yīng)用實(shí)例P1.3作輸入端口2.3.3I/O口——P2口在實(shí)際應(yīng)用中,因?yàn)镻2口用于提供高位地址,有一個多路轉(zhuǎn)接開關(guān)MUX。但MUX的一個輸入端不再是“地址/數(shù)據(jù)”,而是單一的“地址”,因?yàn)镻2口只作為地址線使用。當(dāng)P2口用作為高位地址線使用時,多路轉(zhuǎn)接開關(guān)應(yīng)接向“地址”端。正因?yàn)橹蛔鳛榈刂肪€使用,口的輸出用不著是三態(tài)的,所以,P2口也是一個準(zhǔn)雙向口。P2口也可以作為通用I/O口使用,這時,多路轉(zhuǎn)接開關(guān)接向鎖存器Q端。2.3.3I/O口——P2口
P2.0—P2.7:雙向I/O(內(nèi)置了上拉電阻)
尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準(zhǔn)雙向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位準(zhǔn)雙向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位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制引腳P2.X控制=0時,此腳作通用輸出口:輸出=0時001導(dǎo)通3內(nèi)部上拉電阻00Vcc=0=02.3.3I/O口——P2口
P2.0—P2.7:雙向I/O(內(nèi)置了上拉電阻)
尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制=1引腳P2.X控制=1
時,此腳作高8位地址A8—A15輸出口:當(dāng)輸出=1時10截止3內(nèi)部上拉電阻1=1Vcc=12.3.3I/O口——P2口
P2.0—P2.7:雙向I/O(內(nèi)置了上拉電阻)
尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制=1引腳P2.X01導(dǎo)通3內(nèi)部上拉電阻0=0Vcc=0控制=1
時,此腳作高8位地址A8-A15輸出口:當(dāng)輸出=0時2.3.3I/O口——P3口
P3.0—P3.7:雙功能口(內(nèi)置了上拉電阻)
它具有特定的第二功能。在不使用它的第二功能時它就是普通的通用準(zhǔn)雙向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直接進(jìn)入內(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:
寫外設(shè)控制信號輸出端P3.7RD:
讀外設(shè)控制信號輸出端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)端負(fù)跳通常在這些入口地址都安放一條絕對跳轉(zhuǎn)指令,跳轉(zhuǎn)到相應(yīng)中斷服務(wù)程序入口去執(zhí)行中斷服務(wù)程序。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在物理上是獨(dú)立的,其余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)行值保護(hù)②將子程序入口地址或中斷向量的地址送入PC。累加器A
使用最頻繁的寄存器,可寫為Acc。
A的作用:(1)是ALU的輸入之一,又是運(yùn)算結(jié)果的存放單元。(2)數(shù)據(jù)傳送大多都通過累加器A。MCS-51增加了一部分可以不經(jīng)過累加器的傳送指令,即可加快數(shù)據(jù)的傳送速度,又減少A的“瓶頸堵塞”現(xiàn)象。
A的進(jìn)位標(biāo)志Cy同時又是位處理機(jī)的位累加器。特殊功能寄存器(PSW)OV(PSW.2)溢出標(biāo)志位。
OV=1時特指累加器在進(jìn)行帶符號數(shù)(-128—+127)運(yùn)算時出錯(超出范圍);OV=0時未出錯。PSW.1未定義。P(PSW.0)奇偶標(biāo)志位。
P=1表示累加器中“1”的個數(shù)為奇數(shù)
P=0表示累加器中“1”的個數(shù)為偶數(shù)
CPU隨時監(jiān)視著ACC中的“1”的個數(shù),并反映在PSW中CYACF0RS0OVPRS1PSW.7PSW.0PSW.2PSW.1CY(PSW.7)進(jìn)位/借位標(biāo)志位。AC(PSW.6)半進(jìn)位/借位標(biāo)志位。F0(PSW.5)可由用戶定義的標(biāo)志位。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)系上傳者。文件的所有權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版權(quán)轉(zhuǎn)讓合同版權(quán)轉(zhuǎn)讓范圍與轉(zhuǎn)讓金額支付合同
- 2024年度新能源汽車充電樁建設(shè)與銷售授權(quán)合同范本3篇
- 2024版干粉砂漿原材料采購招標(biāo)文件合同3篇
- 2024版家電產(chǎn)品售后服務(wù)與客戶關(guān)系維護(hù)合同3篇
- 2024事業(yè)單位合同制員工績效考核與晉升服務(wù)合同3篇
- 2024年度化工生產(chǎn)設(shè)備維護(hù)與技術(shù)培訓(xùn)合同范本3篇
- 2024年度ISO9000質(zhì)量認(rèn)證咨詢及企業(yè)質(zhì)量改進(jìn)合同2篇
- 2024年度樣板間裝修工程安全合同6篇
- 2024年度房產(chǎn)抵押貸款合同范本解讀與應(yīng)用3篇
- 2024年某大型商場物業(yè)服務(wù)管理合同
- 第10章-氫發(fā)動機(jī)
- 2024年初級經(jīng)濟(jì)師考試初級經(jīng)濟(jì)基礎(chǔ)真題及答案
- 貴州省黔東南州2023-2024學(xué)年九年級上學(xué)期期末道德與法治試題
- 徽派建筑賞析(宏村)
- 新課標(biāo)下小學(xué)高年級數(shù)學(xué)核心素養(yǎng)培養(yǎng)實(shí)踐
- 外聯(lián)專員-開展對外合作與資源拓展的工作計劃
- 離子束加工教學(xué)課件
- 閱讀理解真題匯編(30篇)Ⅴ-江蘇地區(qū)2022-2023八年級英語上學(xué)期期末備考(含答案解析)
- 刺猬養(yǎng)殖研究報告-中國刺猬養(yǎng)殖行業(yè)市場分析及發(fā)展前景研究報告2024年
- 國開電大可編程控制器應(yīng)用實(shí)訓(xùn)形考任務(wù)1實(shí)訓(xùn)報告
- 2024領(lǐng)導(dǎo)力培訓(xùn)課程ppt完整版含內(nèi)容
評論
0/150
提交評論