版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第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ī)的存儲(chǔ)器組織
MCS-51CPU時(shí)序2.1MCS-51單片機(jī)主要功能特點(diǎn)8位的CPU,片內(nèi)有振蕩器和時(shí)鐘電路,工作頻率為1~12MHz(Atmel89Cxx為0~24MHz)片內(nèi)有
128/256字節(jié)
RAM片內(nèi)有
0K/4K/8K字節(jié)程序存儲(chǔ)器ROM可尋址片外
64K字節(jié)
數(shù)據(jù)存儲(chǔ)器RAM可尋址片外
64K字節(jié)
程序存儲(chǔ)器ROM片內(nèi)
21/26個(gè)
特殊功能寄存器(SFR)4個(gè)8位
的并行I/O口(PIO)1個(gè)
全雙工串行口(SIO/UART)2/3個(gè)16位定時(shí)器/計(jì)數(shù)器(TIMER/COUNTER)可處理
5/6個(gè)中斷源,兩級(jí)中斷優(yōu)先級(jí)內(nèi)置1個(gè)布爾處理器和1個(gè)布爾累加器(Cy)MCS-51指令集含
111條指令MCS-51系列單片機(jī)配置一覽表系列片內(nèi)存儲(chǔ)器(字節(jié))定時(shí)器計(jì)數(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ī)要自動(dòng)完成計(jì)算,它應(yīng)該具有哪些最重要的部分呢?
以打算盤計(jì)算一道算術(shù)題為例。例:111+109×188-199÷32?,F(xiàn)在要進(jìn)行運(yùn)算,首先需要一把算盤,其次是紙和筆。我們把要計(jì)算的問題記錄下來,然后第一步先算109×188,把它與111相加的結(jié)果記在紙上,然后計(jì)算199÷32,再把它從上一次結(jié)果中減去,就得到最后的結(jié)果?,F(xiàn)在,用單片機(jī)來完成上述過程,顯然,它首先要有代替算盤進(jìn)行運(yùn)算的部件,這就是“運(yùn)算器”;其次,要有能起到紙和筆作用的器件,即能記憶原始題目、原始數(shù)據(jù)和中間結(jié)果,還要記住使單片機(jī)能自動(dòng)進(jìn)行運(yùn)算而編制的各種命令。這類器件就稱為“存貯器”。此外,還需要有能代替人作用的控制器,它能根據(jù)事先給定的命令發(fā)出各種控制信號(hào),使整個(gè)計(jì)算過程能一步步地進(jìn)行。但是光有這三部分還不夠,原始的數(shù)據(jù)與命令要輸入,計(jì)算的結(jié)果要輸出,都需要按先后順序進(jìn)行,有時(shí)還需等待。
如上例中,當(dāng)在計(jì)算109×188時(shí),數(shù)字111就不能同時(shí)進(jìn)入運(yùn)算器。因此就需要在單片機(jī)上設(shè)置按控制器的命令進(jìn)行動(dòng)作的“門”,當(dāng)運(yùn)算器需要時(shí),就讓新數(shù)據(jù)進(jìn)入?;蛘?,當(dāng)運(yùn)算器得到最后結(jié)果時(shí),再將此結(jié)果輸出,而中間結(jié)果不能隨便“溜出”單片機(jī)。這種對(duì)輸入、輸出數(shù)據(jù)進(jìn)行一定管理的“門”電路在單片機(jī)中稱為“口”(Port)。在單片機(jī)中,基本上有三類信息在流動(dòng),一類是數(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控制信號(hào),以便執(zhí)行如加、減、乘、除等功能的各種命令。所以,這一類信息就稱為控制命令,即由控制器去控制運(yùn)算器一步步地進(jìn)行運(yùn)算和處理,又控制存貯器的讀(取出數(shù)據(jù))和寫(存入數(shù)據(jù))等。第三類信息是地址信息,其作用是告訴運(yùn)算器和控制器在何處去取命令取數(shù)據(jù),將結(jié)果存放到什么地方,通過哪個(gè)口輸入和輸出信息等。
存貯器又分為只讀存貯器和讀寫存貯器,前者存放調(diào)試好的固定程序和常數(shù),后者存放一些隨時(shí)有可能變動(dòng)的數(shù)據(jù)。顧名思義,只讀存貯器一旦將數(shù)據(jù)存入,就只能讀出,不能更改。而讀寫存貯器可隨時(shí)存入或讀出數(shù)據(jù)。
實(shí)際上,人們往往把運(yùn)算器和控制器合并稱為中央處理單元——CPU。單片機(jī)除了進(jìn)行運(yùn)算外,還要完成控制功能。所以離不開計(jì)數(shù)和定時(shí)。因此,在單片機(jī)中就設(shè)置有定時(shí)器兼計(jì)數(shù)器。到這里為止,我們已經(jīng)知道了單片機(jī)的基本組成,即單片機(jī)是由中央處理器(即CPU中的運(yùn)算器和控制器)、只讀存貯器(ROM)、隨機(jī)讀寫存貯器(RAM)、輸入/輸出口(又分為并行口和串行口,表示為I/O口)等等組成。實(shí)際上單片機(jī)里還有時(shí)鐘電路,使單片機(jī)在進(jìn)行運(yùn)算和控制時(shí),都能有節(jié)奏地進(jìn)行。另外,還有所謂的“中斷系統(tǒng)”,這個(gè)系統(tǒng)有“傳達(dá)室”的作用,當(dāng)單片機(jī)控制對(duì)象的參數(shù)到達(dá)某個(gè)需要加以干預(yù)的狀態(tài)時(shí),就可經(jīng)此“傳達(dá)室”通報(bào)給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ì)算機(jī)電路是以微處理器為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協(xié)調(diào),所以需要的連線很多,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨(dú)連線,則線的數(shù)量將多得驚人,所以在微處理機(jī)中引入了總線的概念,各個(gè)器件共同享用總線,所有器件的數(shù)據(jù)線全部接到8根公用的線上,即相當(dāng)于各個(gè)器件并聯(lián)起來,但僅這樣還不行,如果有兩個(gè)器件同時(shí)送出數(shù)據(jù),一個(gè)為0,一個(gè)為1,那么,接收方接收到的究竟是什么呢?這種情況是不允許的,所以要通過控制線進(jìn)行控制,使器件分時(shí)工作,任何時(shí)候只能有一個(gè)器件發(fā)送數(shù)據(jù)(可以有多個(gè)器件同時(shí)接收)。器件的數(shù)據(jù)線被稱為數(shù)據(jù)總線,器件所有的控制線被稱為控制總線。在單片機(jī)內(nèi)部或者外部存儲(chǔ)器及其它器件中有存儲(chǔ)單元,這些存儲(chǔ)單元要被分配地址,才能使用,分配地址當(dāng)然也是以電信號(hào)的形式給出的,由于存儲(chǔ)單元比較多,所以,用于地址分配的線也較多,這些線被稱為地址總線。單片機(jī)的指令系統(tǒng)和匯編語(yǔ)言程序
前面已經(jīng)講述了單片機(jī)的幾個(gè)主要組成部分,這些部分構(gòu)成了單片機(jī)的硬件(Hardware)。但是,光有硬件,還只是有了實(shí)現(xiàn)計(jì)算和控制功能的可能性。單片機(jī)要真正地能進(jìn)行計(jì)算和控制,還必須有軟件(Software)的配合。軟件主要指的是各種程序。只有將各種正確的程序存入單片機(jī),它才能有效地工作。單片機(jī)所以能自動(dòng)地進(jìn)行運(yùn)算和控制,正是由于人把實(shí)現(xiàn)計(jì)算和控制的步驟一步步地用命令的形式,即一條條指令(Instruction)預(yù)先存入到存貯器中,單片機(jī)在CPU的控制下,將指令一條條地取出來,并加以翻譯和執(zhí)行。就以兩個(gè)數(shù)相加這一簡(jiǎn)單的運(yùn)算來說,當(dāng)需要運(yùn)算的數(shù)已存入存貯器后,還需要進(jìn)行以下幾步:
第一步:把第一個(gè)數(shù)從它的存貯單元(Location)中取出來,送至運(yùn)算器。
第二步:把第二個(gè)數(shù)從它所在的存貯單元中取出來,送至運(yùn)算器;
第三步:相加;
第四步:把相加完的結(jié)果,送至存貯器中指定的單元。所有這些取數(shù)、送數(shù)、相加、存數(shù)等等都是一種操作(Operation),我們把要求計(jì)算機(jī)執(zhí)行的各種操作用命令的形式寫下來,這就是指令。但是怎樣才能辨別和執(zhí)行這些操作呢?這是在設(shè)計(jì)單片機(jī)時(shí)由設(shè)計(jì)人員賦予它的指令系統(tǒng)所決定的。一條指令,對(duì)應(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時(shí)鐘電路——用于產(chǎn)生供單片機(jī)各部分同步工作的時(shí)鐘信號(hào)XTAL1,XTAL2:片內(nèi)振蕩電路輸入/輸出端15~45pf1~12MHz(MCS-51)
0~24MHz(Atmel-89C)XTAL1XTAL2也可以由
XTAL2端接入外部時(shí)鐘,此時(shí)應(yīng)將
XTAL1接地XTAL1XTAL2外部時(shí)鐘通常外接一個(gè)晶振兩個(gè)電容
MCS-51單片機(jī)的時(shí)鐘電路
圖2?13MCS-51時(shí)鐘接法幾個(gè)周期的概念CPU總是按照一定的時(shí)鐘節(jié)拍與時(shí)序工作振蕩周期/時(shí)鐘周期:
Tc=晶振頻率fosc(或外加頻率)的倒數(shù)狀態(tài)周期:Ts=2個(gè)時(shí)鐘周期(Tc)(很少用到此概念)機(jī)器周期:Tm=6個(gè)狀態(tài)周期(Ts)=12個(gè)振蕩周期(Tc)指令周期:
Ti:執(zhí)行一條指令所需的機(jī)器周期(Tm)數(shù)牢牢記住振蕩周期=晶振頻率fosc的倒數(shù);1個(gè)機(jī)器周期=12個(gè)振蕩周期;1個(gè)指令周期=1、2、4個(gè)機(jī)器周期2.3.2控制信號(hào)1、RST/VPD(9腳)復(fù)位信號(hào)復(fù)位的概念復(fù)位:將單片機(jī)系統(tǒng)置成特定初始狀態(tài)的操作。復(fù)位后程序從頭(0000H)開始重新執(zhí)行。何時(shí)復(fù)位剛通電時(shí)——上電復(fù)位,進(jìn)入初始狀態(tài)重新啟動(dòng)時(shí)——回到初始狀態(tài)、重新開始程序故障時(shí)——回到初始狀態(tài)、重新開始復(fù)位是什么?一般在什么時(shí)候需要進(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ù)位信號(hào)輸入端,高電平有效。當(dāng)此輸入端保持2個(gè)機(jī)器周期的高電平時(shí),就可以完成復(fù)位操作。RST引腳的第二功能是備用電源的輸入端。51單片機(jī)的復(fù)位電路上電復(fù)位51單片機(jī)的復(fù)位與復(fù)位電路手動(dòng)復(fù)位51單片機(jī)的復(fù)位電路手動(dòng)復(fù)位51單片機(jī)的復(fù)位電路采用專用的復(fù)位芯片MAX810復(fù)位51單片機(jī)的復(fù)位電路復(fù)位電路——復(fù)位芯片MAX810MAX810是一種單一功能的微處理器復(fù)位芯片,用于監(jiān)控微控制器和其他邏輯系統(tǒng)的電源電壓。它可以在上電、掉電和節(jié)電情況下向微控制器提供復(fù)位信號(hào)。當(dāng)電源電壓低于預(yù)設(shè)的門檻電壓時(shí),器件會(huì)發(fā)出復(fù)位信號(hào),直到在一段時(shí)間內(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ù)位延時(shí)時(shí)間最小為140ms;低至1.1V電源時(shí)仍能產(chǎn)生有效的復(fù)位信號(hào);小型的三管腳SOT-23封裝;無需外部配件;適用于-40℃~+105℃的溫度范圍。2.3.2控制信號(hào)2、ALE/(AddressLatchEnable/Programming)
(30腳)地址鎖存信號(hào)訪問片外存儲(chǔ)器時(shí),ALE作鎖存擴(kuò)展地址的低位字節(jié)的控制信號(hào),即此信號(hào)為高電平時(shí),P0給出低8位地址,可用此信號(hào)加于外接鎖存器控制端。不訪問片外存儲(chǔ)器時(shí),該端以六分之一的時(shí)鐘振蕩頻率固定輸出正脈沖,供定時(shí)或其它需要使用。對(duì)8751片內(nèi)EPROM編程(固化)時(shí),此引腳
用于輸入編程脈沖。2.3.2控制信號(hào)3、(29腳)片外程序存儲(chǔ)器讀選通當(dāng)51系列單片機(jī)訪問片外程序存儲(chǔ)器時(shí),輸出低電平。在每個(gè)機(jī)器周期內(nèi)兩次有效(變低)。單片機(jī)P0.0-P0.7ALEPSENP2.0-P2.48D8QOEA8-A12A0-A7D0-D7GEAOECEEPROM2.3.2控制信號(hào)4、/Vpp(31腳)當(dāng)訪問內(nèi)部程序存儲(chǔ)器時(shí),端應(yīng)保持高電平,當(dāng)PC超出4KB(8052為8KB)時(shí),將自動(dòng)執(zhí)行片外程序存儲(chǔ)器的程序。當(dāng)端接低電平時(shí),只訪問片外程序存儲(chǔ)器(8031的該引腳必須接地)。在對(duì)8751EPROM編程時(shí),此引腳Vpp需施加編程電壓。2.3.3I/O口——P0口P0口某一位的電路包括:(1)一個(gè)數(shù)據(jù)輸出鎖存器,用于數(shù)據(jù)位的鎖存(2)兩個(gè)三態(tài)的數(shù)據(jù)輸入緩沖器。(3)一個(gè)多路轉(zhuǎn)接開關(guān)MUX,使:P0口可作通用I/O口,或地址/數(shù)據(jù)線口。(4)數(shù)據(jù)輸出的驅(qū)動(dòng)和控制電路,由兩只場(chǎng)效應(yīng)管(FET)組成,上面的場(chǎng)效應(yīng)管構(gòu)成上拉電路。P0口傳送地址或數(shù)據(jù)時(shí),CPU發(fā)出控制信號(hào)為高電平,打開上面的與門,使多路轉(zhuǎn)接開關(guān)MUX打向上邊,使內(nèi)部地址/數(shù)據(jù)線與下面的場(chǎng)效應(yīng)管2.3.3I/O口——P0口
處于反相接通狀態(tài)。此時(shí)輸出驅(qū)動(dòng)電路由于上下兩個(gè)FET處于反相,形成推拉式電路結(jié)構(gòu),大大提高負(fù)載能力。
P0口作通用的I/O口使用。這時(shí),CPU發(fā)來的“控制”信號(hào)為低電平,上拉場(chǎng)效應(yīng)管截止,多路轉(zhuǎn)接開關(guān)MUX打向下邊,與D鎖存器的Q*端接通。(1)P0作輸出口使用來自CPU的“寫入”脈沖加在D鎖存器的CP端,內(nèi)部總線上的數(shù)據(jù)寫入D鎖存器,并向端口引腳P0.x輸出。注意:由于輸出電路是漏極開路(因?yàn)檫@時(shí)上拉場(chǎng)效應(yīng)管截止),必須外接上拉電阻才能有高電平輸出。(2)P0作輸入口使用區(qū)分“讀引腳”和“讀鎖存器”?!白x引腳”信號(hào)把下方緩沖器打開,引腳上的狀態(tài)經(jīng)緩沖器讀入內(nèi)部總線;“讀鎖存器”信號(hào)打開上面的緩沖器把鎖存器Q端的狀態(tài)讀入內(nèi)部總線。2.3.3I/O口——P0口
P0.0—P0.7:雙向I/O
(內(nèi)置場(chǎng)效應(yīng)管上拉)
尋址外部程序存儲(chǔ)器時(shí)分時(shí)作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;不接外部程序存儲(chǔ)器時(shí)可作為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)置場(chǎng)效應(yīng)管上拉)控制=0,作8位輸入口使用。21DQCK/Q讀引腳=1讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制引腳P0.X34控制=0
時(shí),此腳作輸入口(事先必須對(duì)它寫“1”)00100截止截止=0Vcc2.3.3I/O口——P0口
P0.0—P0.7:雙向I/O
(內(nèi)置場(chǎng)效應(yīng)管上拉)控制=0,作8位輸出口。數(shù)據(jù)經(jīng)由內(nèi)部總線被存于鎖存器,并向引腳輸出。由于此時(shí)T0截止,需外接上拉電阻。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制引腳P0.X34控制=0
時(shí),P0作輸出口(同P1)00截止=0VccVCC2.3.3I/O口——P0口
P0.0—P0.7:雙向I/O
(內(nèi)置場(chǎng)效應(yīng)管上拉)控制=1,作雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制=1引腳P0.X34控制=1時(shí),此腳作地址/數(shù)據(jù)復(fù)用口:(1)輸出地址/數(shù)據(jù)=0
時(shí)1011=0導(dǎo)通截止=0Vcc2.3.3I/O口——P0口
P0.0—P0.7:雙向I/O
(內(nèi)置場(chǎng)效應(yīng)管上拉)控制=1,作雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制=1引腳P0.X34控制=1時(shí),此腳作地址/數(shù)據(jù)復(fù)用口:(2)輸出地址/數(shù)據(jù)=1
時(shí)1100=1截止導(dǎo)通=1Vcc2.3.3I/O口——P0口
P0.0—P0.7:雙向I/O
(內(nèi)置場(chǎng)效應(yīng)管上拉)控制=1,作雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口。21DQCK/Q讀引腳=1讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制=1引腳P0.X34(3)輸入數(shù)據(jù)時(shí),輸入指令將使引腳與內(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口作為輸出口使用時(shí),外電路無需再接上拉電阻。(2)P1口作為輸入口使用時(shí),應(yīng)先向其鎖存器先寫入“1”,使輸出驅(qū)動(dòng)電路的FET截止。2.3.3I/O口——P1口
P1.0—P1.7:準(zhǔn)雙向I/O口(內(nèi)置了上拉電阻)準(zhǔn)雙向:在作輸入口用時(shí)要先對(duì)其寫“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時(shí)110截止=12.3.3I/O口——P1口P1.0—P1.7:作輸出口21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線Vcc引腳P1.X內(nèi)部上拉電阻輸出數(shù)據(jù)=0時(shí)001=0導(dǎo)通2.3.3I/O口——P1口
P1.0—P1.7:作輸入口,讀引腳,先對(duì)其寫“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í)例簡(jiǎn)單測(cè)控實(shí)例原理圖P1口應(yīng)用實(shí)例P1.3作輸入端口2.3.3I/O口——P2口在實(shí)際應(yīng)用中,因?yàn)镻2口用于提供高位地址,有一個(gè)多路轉(zhuǎn)接開關(guān)MUX。但MUX的一個(gè)輸入端不再是“地址/數(shù)據(jù)”,而是單一的“地址”,因?yàn)镻2口只作為地址線使用。當(dāng)P2口用作為高位地址線使用時(shí),多路轉(zhuǎn)接開關(guān)應(yīng)接向“地址”端。正因?yàn)橹蛔鳛榈刂肪€使用,口的輸出用不著是三態(tài)的,所以,P2口也是一個(gè)準(zhǔn)雙向口。P2口也可以作為通用I/O口使用,這時(shí),多路轉(zhuǎn)接開關(guān)接向鎖存器Q端。2.3.3I/O口——P2口
P2.0—P2.7:雙向I/O(內(nèi)置了上拉電阻)
尋址外部程序存儲(chǔ)器時(shí)輸出高8位地址;不接外部程序存儲(chǔ)器時(shí)可作為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)置了上拉電阻)
尋址外部程序存儲(chǔ)器時(shí)輸出高8位地址;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制引腳P2.X控制=0時(shí),此腳作通用輸出口:輸出=1時(shí)110截止3內(nèi)部上拉電阻11Vcc=1=02.3.3I/O口——P2口
P2.0—P2.7:雙向I/O(內(nèi)置了上拉電阻)
尋址外部程序存儲(chǔ)器時(shí)輸出高8位地址;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制引腳P2.X控制=0時(shí),此腳作通用輸出口:輸出=0時(shí)001導(dǎo)通3內(nèi)部上拉電阻00Vcc=0=02.3.3I/O口——P2口
P2.0—P2.7:雙向I/O(內(nèi)置了上拉電阻)
尋址外部程序存儲(chǔ)器時(shí)輸出高8位地址;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制=1引腳P2.X控制=1
時(shí),此腳作高8位地址A8—A15輸出口:當(dāng)輸出=1時(shí)10截止3內(nèi)部上拉電阻1=1Vcc=12.3.3I/O口——P2口
P2.0—P2.7:雙向I/O(內(nèi)置了上拉電阻)
尋址外部程序存儲(chǔ)器時(shí)輸出高8位地址;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制=1引腳P2.X01導(dǎo)通3內(nèi)部上拉電阻0=0Vcc=0控制=1
時(shí),此腳作高8位地址A8-A15輸出口:當(dāng)輸出=0時(shí)2.3.3I/O口——P3口
P3.0—P3.7:雙功能口(內(nèi)置了上拉電阻)
它具有特定的第二功能。在不使用它的第二功能時(shí)它就是普通的通用準(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第二功能輸出時(shí),內(nèi)部自動(dòng)D=1111反相器2.3.3I/O口——P3口
P3.0—P3.7:雙功能口(內(nèi)置了上拉電阻)第二功能輸入:21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線此端自動(dòng)=1引腳P3.X3內(nèi)部上拉電阻Vcc
第二功能輸入(RxD,T0,T1,INT0,INT1)4第二功能輸入時(shí),信號(hào)經(jīng)緩沖器4直接進(jìn)入內(nèi)總線1110截止P3口第二功能表引腳第二功能P3.0RxD:
串行口接收數(shù)據(jù)輸入端P3.1TxD:
串行口發(fā)送數(shù)據(jù)輸出端P3.2INT0:
外部中斷申請(qǐng)輸入端0P3.3INT1:
外部中斷申請(qǐng)輸入端1P3.4T0:
外部計(jì)數(shù)脈沖輸入端0P3.5T1:
外部計(jì)數(shù)脈沖輸入端1P3.6WR:
寫外設(shè)控制信號(hào)輸出端P3.7RD:
讀外設(shè)控制信號(hào)輸出端2.4MCS-51的存儲(chǔ)器組織片內(nèi)RAM128字節(jié)(00H—7FH);
片內(nèi)RAM前32個(gè)單元是工作寄存器區(qū)(00H—1FH)
片內(nèi)RAM有128個(gè)可按位尋址的位,占16個(gè)單元。位地址編號(hào)為:00H—7FH,分布在20H—2FH單元片內(nèi)21個(gè)特殊功能寄存器(SFR)中:地址號(hào)能被8整除的SFR中的各位也可按位尋址(P43)可尋址片外RAM64K字節(jié)(0000H—FFFFH)可尋址片外ROM64K字節(jié)(0000H—FFFFH)片內(nèi)Flash
ROM4K字節(jié)(000H—FFFH)2.4.1MCS-51程序存儲(chǔ)器內(nèi)部(EA=1)外部(EA=0)外部0FFFH0000H0FFFH0000HFFFFH1000H內(nèi)部(EA=1)外部(EA=0)外部1FFFH0000H1FFFH0000HFFFFH2000H51子系列程序存儲(chǔ)器配置52子系列程序存儲(chǔ)器配置程序存儲(chǔ)器中7個(gè)特殊定義的地址入口意義0000H系統(tǒng)程序的啟動(dòng)地址0003H外部中斷0入口地址000BH定時(shí)器0溢出入口地址0013H外部中斷1入口地址001BH定時(shí)器1溢出入口地址0023H串行口中斷002BH定時(shí)器2溢出或T2EX(P1.1)端負(fù)跳通常在這些入口地址都安放一條絕對(duì)跳轉(zhuǎn)指令,跳轉(zhuǎn)到相應(yīng)中斷服務(wù)程序入口去執(zhí)行中斷服務(wù)程序。2.4.2數(shù)據(jù)存儲(chǔ)器片內(nèi)RAM
128字節(jié)(00H—7FH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)SFR分布在80H-FFH其中92個(gè)位可位尋址80HFFH所有的RAM區(qū)(包括位尋址區(qū)、工作寄存器區(qū))都可以用于存放數(shù)據(jù),故也稱為數(shù)據(jù)緩存寄存器89C51128字節(jié)2.4.2數(shù)據(jù)存儲(chǔ)器片內(nèi)RAM前32個(gè)單元是工作寄存器區(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ù)存儲(chǔ)器
片內(nèi)RAM中有128個(gè)可按位尋址的位。
位地址:00H—7FH
分布在:20H—2FH單元00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)27H22H21H20H26H24H25H23H28H2FH單元地址07060504030201000F0E0D0C0B0A090817161514131211101F1E1D1C1B1A191827262524232221202F2E2D2C2B2A292837363534333231303F3E3D3C3B3A393847464544434241407F7E7D7C7B7A7978位地址2.4.3專用寄存器
SFR-SpecialFunctionRegister
MCS-51共有23個(gè)特殊功能寄存器(3個(gè)屬于8032/8052),其中5個(gè)是雙字節(jié)寄存器,程序計(jì)數(shù)器PC在物理上是獨(dú)立的,其余22個(gè)寄存器都屬于片內(nèi)數(shù)據(jù)存儲(chǔ)器SFR塊,共占26個(gè)字節(jié)。2.4.3專用寄存器1.程序計(jì)數(shù)器PC(16bit)2.累加器A3.寄存器B4、程序狀態(tài)字PSW5、堆棧指針SP6、數(shù)據(jù)指針DPTR7、I/O端口P0~P3
程序計(jì)數(shù)器PC(ProgramCounter)用來存放下一條要執(zhí)行的指令在程序存儲(chǔ)器中的地址。
基本工作方式有以下幾種:
(1)程序計(jì)數(shù)器自動(dòng)加1
(2)執(zhí)行有條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令時(shí),程序計(jì)數(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同時(shí)又是位處理機(jī)的位累加器。特殊功能寄存器(PSW)OV(PSW.2)溢出標(biāo)志位。
OV=1時(shí)特指累加器在進(jìn)行帶符號(hào)數(shù)(-128—+127)運(yùn)算時(shí)出錯(cuò)(超出范圍);OV=0時(shí)未出錯(cuò)。PSW.1未定義。P(PSW.0)奇偶標(biāo)志位。
P=1表示累加器中“1”的個(gè)數(shù)為奇數(shù)
P=0表示累加器中“1”的個(gè)數(shù)為偶數(shù)
CPU隨時(shí)監(jiān)視著ACC中的“1”的個(gè)數(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024轉(zhuǎn)讓技術(shù)秘密和補(bǔ)償貿(mào)易合作生產(chǎn)合同范本
- 2024鋼支撐安拆勞務(wù)合同范本
- 現(xiàn)場(chǎng)施工應(yīng)急預(yù)案制度
- 學(xué)校治安保衛(wèi)工作制度
- 排球比賽策劃書
- 開學(xué)收心校長(zhǎng)講話稿(12篇)
- 房地產(chǎn)銷售年終工作總結(jié)(合集15篇)
- 市政管網(wǎng)工程施工方案
- 施工用電管理制度
- 生產(chǎn)企業(yè)消防演習(xí)方案
- 對(duì)聯(lián)知識(shí)及練習(xí)題有答案
- 重度殘疾兒童送教上門
- 膀胱癌綜合治療新進(jìn)展
- 重癥患者腸內(nèi)營(yíng)養(yǎng)安全輸注
- 物業(yè)安全檢查表
- 疏浚與吹填技術(shù)
- 胸腔積液病例討論-課件
- 井岡山斗爭(zhēng)和井岡山精神教學(xué)課件
- 高中英語(yǔ)-選修二Unit 3 Times Change教學(xué)課件設(shè)計(jì)
- 大學(xué)校園危機(jī)氛圍評(píng)估與分析
- 用數(shù)對(duì)表示點(diǎn)的位置
評(píng)論
0/150
提交評(píng)論