片機(jī)介紹原理及應(yīng)用.ppt_第1頁(yè)
片機(jī)介紹原理及應(yīng)用.ppt_第2頁(yè)
片機(jī)介紹原理及應(yīng)用.ppt_第3頁(yè)
片機(jī)介紹原理及應(yīng)用.ppt_第4頁(yè)
片機(jī)介紹原理及應(yīng)用.ppt_第5頁(yè)
已閱讀5頁(yè),還剩104頁(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)介

1、51單片機(jī)原理及應(yīng)用,2,第 2 章 MCS-51單片機(jī)基本結(jié)構(gòu),2.1引腳及功能 2.2結(jié)構(gòu)及組成 2.3存儲(chǔ)器結(jié)構(gòu) 2.4并行I/O口電路 2.5 時(shí)鐘電路與時(shí)序 2.6工作方式,3,a) 管腳圖 (b) 引腳功能分類,MCS-51系列單片機(jī)芯片引腳,4,a) 引腳排列 (b) 邏輯符號(hào),80C51單片機(jī)芯片引腳,5,2.1 MCS-51系列單片機(jī)芯片引腳及其功能 80C51是標(biāo)準(zhǔn)的40引腳雙列直插封裝(DIP)集成電路芯片 1. 主電源和時(shí)鐘振蕩電路引腳 VCC (40腳)運(yùn)行和程序校驗(yàn)時(shí)接+5V電源 VSS (20腳)地線 XTAL1(19腳) 用作晶體振蕩電路的反相器輸入端,內(nèi)部接至

2、振蕩器的反相放大器。當(dāng)采用外部時(shí)鐘時(shí), 對(duì)于HMOS單片機(jī),該引腳接地;對(duì)于CHMOS單片機(jī),該引腳作為外部振蕩信號(hào)的輸入端。 XTAL2 (18腳) 用作晶體振蕩電路的反相器輸出端,內(nèi)部接至?xí)r鐘發(fā)生器。當(dāng)采用外部時(shí)鐘時(shí), 對(duì)于HMOS單片機(jī),該引腳接收振蕩器信號(hào);對(duì)于CHMOS單片機(jī),該引腳懸浮,6,2. 輸入/輸出(I/O)引腳 P0.0P0.7(39腳32腳) :8位漏極開(kāi)路的雙向I/O口 當(dāng)使用片外ROM和RAM時(shí),用作低8位地址和數(shù)據(jù)分時(shí)復(fù)用。 P1.0P1.7(1腳8腳):8位帶上拉電阻的準(zhǔn)雙向I/O口 在編程/校驗(yàn)期間,用作輸入低8位地址。對(duì)于8052,P1.0是定時(shí)器T2的計(jì)數(shù)

3、輸入端;P1.1是定時(shí)器T2的外部輸入端。 P2.0P2.7(21腳28腳):8位帶上拉電阻的準(zhǔn)雙向I/O口 當(dāng)使用片外ROM和RAM時(shí),輸出高8位地址。 P3.0P3.7(10腳17腳):8位帶上拉電阻的準(zhǔn)雙向I/O口 P3口具有第二功能,在單片機(jī)中,“口”是一個(gè)集數(shù)據(jù)輸入緩沖、輸出驅(qū)動(dòng)及鎖存等多項(xiàng)功能于一體的I/O電路,7,P3口的第二功能,8,3. 控制信號(hào)引腳 RST/VPD(9引腳):RST為復(fù)位信號(hào)輸入端。 當(dāng)RST端保持2個(gè)機(jī)器周期以上高電平時(shí),單片機(jī)完成復(fù)位操作。 第二功能VPD為內(nèi)部RAM的備用電源輸入端。當(dāng)主電源VCC發(fā)生斷電,降到一定電壓值時(shí),可通過(guò)VPD為單片機(jī)內(nèi)部RA

4、M提供電源,以保護(hù)片內(nèi)RAM中的信息不丟失,上電后能繼續(xù)正常運(yùn)行。 ALE/ PROG (30引腳) : ALE為地址鎖存允許信號(hào) 在系統(tǒng)擴(kuò)展時(shí),ALE用于控制把P0口輸出的低8位地址送入鎖存器鎖存起來(lái),以實(shí)現(xiàn)低8位地址和數(shù)據(jù)的分時(shí)傳送。 由于ALE是以1/6晶振頻率的固定頻率輸出的正脈沖,故可作為外部時(shí)鐘或外部定時(shí)脈沖使用。 ALE可驅(qū)動(dòng)8個(gè)LSTTL門。 第二功能PROG是對(duì)8751內(nèi)部EPROM編程時(shí)的編程脈沖輸入端,9,PSEN (29引腳) :外部程序存儲(chǔ)器(ROM)讀選通信號(hào) 訪問(wèn)外部ROM時(shí),PSEN產(chǎn)生負(fù)脈沖作為外部ROM選通信號(hào)。 訪問(wèn)外部RAM或內(nèi)部ROM時(shí),不會(huì)產(chǎn)生有效的

5、PSEN信號(hào)。 PSEN可驅(qū)動(dòng)8個(gè)LSTTL門。 EA/VPP(31引腳):EA為訪問(wèn)程序存儲(chǔ)器(ROM)控制信號(hào) 對(duì)8051和8751,它們的片內(nèi)有4KB的ROM,當(dāng)EA為高電平時(shí),若訪問(wèn)的地址空間在04KB范圍內(nèi),CPU訪問(wèn)片內(nèi)ROM;若訪問(wèn)的地址范圍超過(guò)4KB時(shí),CPU將自動(dòng)訪問(wèn)外部ROM。 EA保持低電平,則訪問(wèn)外部ROM。 對(duì)于8031, EA必須接地,只能訪問(wèn)外部ROM。 第二功能為對(duì)8751的+25V編程電源輸入,10,圖 MCS-51系列單片機(jī)內(nèi)部結(jié)構(gòu)簡(jiǎn)化框圖,2.2 MCS-51系列單片機(jī)結(jié)構(gòu)及組成,CPU,11,MCS51系列單片機(jī)由8大部分組成: 一個(gè)8位CPU,包括運(yùn)算

6、器和控制器。 128個(gè)字節(jié)(52子系列為256字節(jié))的片內(nèi)RAM。 4KB(52子系列為8KB)的片內(nèi)ROM或EPROM(8031和8032無(wú)) 18個(gè)(52子系列為21個(gè))特殊功能寄存器SFR。 4個(gè)8位并行I/O接口:P0口、 P1口、 P2口、 P3口 1個(gè)串行I/O接口 2個(gè)(52子系列為3個(gè))16位定時(shí)器/計(jì)數(shù)器 1個(gè)具有5個(gè)(52子系列為6個(gè)或7個(gè))中斷源,可編程為2個(gè)優(yōu)先級(jí)的中斷系統(tǒng)。它可以接收外部中斷申請(qǐng)、定時(shí)器/計(jì)數(shù)器中斷申請(qǐng)和串行口中斷申請(qǐng),12,MCS-51單片機(jī)芯片內(nèi)部結(jié)構(gòu)框圖,13,1. 中央處理器CPU(8位) 單片機(jī)內(nèi)部的核心部件,完成運(yùn)算和控制操作。包括運(yùn)算器、

7、控制器以及若干寄存器等部件組成。 運(yùn)算器 以算術(shù)邏輯單元ALU為核心,加上累加器ACC、寄存器B、暫存器TMP1和TMP2、 程序狀態(tài)寄存器PSW、十進(jìn)制調(diào)整電路及專門用于位操作的布爾處理機(jī)組成的。 功能:實(shí)現(xiàn)數(shù)據(jù)的算術(shù)邏輯運(yùn)算,位變量處理和數(shù)據(jù)傳送操作,14,功能: 完成8位二進(jìn)制數(shù)的加(帶進(jìn)位加)、減(帶借位減)、乘、除、加 1、減 1、BCD加法的十進(jìn)制調(diào)整、比較等算術(shù)運(yùn)算; 對(duì)8位變量進(jìn)行邏輯“與”、“或”、“異或”、求補(bǔ)、清零等邏輯運(yùn)算; 左、右移位和半字節(jié)(4 位)交換等操作; 數(shù)據(jù)傳送、 程序轉(zhuǎn)移,ALU(算術(shù)邏輯單元,15,累加器A是一個(gè)8位寄存器,它是CPU中使用最頻繁的寄存

8、器。累加器A的功能有: 用于存放操作數(shù),是ALU數(shù)據(jù)的一個(gè)來(lái)源。單片機(jī)中大部分單操作數(shù)指令的操作數(shù)都取自累加器A,許多雙操作數(shù)指令中的一個(gè)操作數(shù)也取自累加器A。 累加器A是ALU運(yùn)算結(jié)果的暫存單元,用于存放運(yùn)算的中間結(jié)果。 累加器A是數(shù)據(jù)傳送的中轉(zhuǎn)站,單片機(jī)中的大部分?jǐn)?shù)據(jù)傳送都通過(guò)累加器進(jìn)行。 在變址尋址方式中把累加器A作為變址寄存器使用,ACC 或 A(累加器,16,B寄存器是一個(gè)8位寄存器,主要用于乘除運(yùn)算。 乘法運(yùn)算時(shí),A中為被乘數(shù),B中為乘數(shù);乘法操作完成后,乘積的高8位存于B中,低8位存于A中。 除法運(yùn)算時(shí),A中為被除數(shù),B中為除數(shù);除法操作完成后,余數(shù)存于B中,商存于A中。 其他情

9、況下,B寄存器也可以作為一般的數(shù)據(jù)寄存器使用,地址為F0H,B寄存器,17,PSW(程序狀態(tài)字) PSW是一個(gè)8位的標(biāo)志寄存器,它保存指令執(zhí)行結(jié)果的特征信息,以供程序查詢和判別。 PSW格式及含義如下,CY (PSW.7) 進(jìn)位標(biāo)志位 AC (PSW.6) 輔助進(jìn)位(或稱半進(jìn)位)標(biāo)志 F0 (PSW.5) 由用戶定義的標(biāo)志位。復(fù)位時(shí)該位為“0” RS1和RS0 (PSW.4 和 PSW.3 ) 工作寄存器組選擇位 OV (PSW.2) 溢出標(biāo)志位。 由硬件置位或清零。 PSW.1 未定義位 P (PSW.0) 奇偶標(biāo)志位(A中1的個(gè)數(shù):偶0 ,奇1,18,CY是PSW中最為常用的標(biāo)志位,共有4

10、項(xiàng)功能: 在加法運(yùn)算中存放進(jìn)位標(biāo)志,有進(jìn)位時(shí)CY置1,無(wú)進(jìn)位時(shí)CY清0; 在減法運(yùn)算中存放借位標(biāo)志,有借位時(shí)CY置1,無(wú)借位時(shí)CY清0; 在位操作中作累加位使用,在位傳送和位運(yùn)算中都要用到CY; 在帶進(jìn)位的移位操作中用于構(gòu)成循環(huán)移位通路。 【注意】對(duì)于加/減運(yùn)算,無(wú)論參與運(yùn)算的數(shù)是帶符號(hào)數(shù)還是無(wú)符號(hào)數(shù),都按無(wú)符號(hào)數(shù)的原則來(lái)設(shè)置進(jìn)/借位標(biāo)志位CY,CY(PSW.7) 進(jìn)位標(biāo)志位,19,在加減運(yùn)算中,當(dāng)?shù)?4 位向高 4 位有進(jìn)借位時(shí),AC由硬件置位,否則AC被清0。 在進(jìn)行十進(jìn)制數(shù)運(yùn)算時(shí)需要十進(jìn)制調(diào)整,此時(shí)要用到AC位的狀態(tài)進(jìn)行判斷,AC (PSW.6) 半進(jìn)位標(biāo)志位,F0 (PSW.5) 用戶

11、標(biāo)志位,由用戶定義使用的標(biāo)志位。用戶可根據(jù)需要用軟件方法置位或復(fù)位,20,這兩個(gè)選擇位的狀態(tài)由軟件設(shè)置,被選中的工作寄存器組即為當(dāng)前工作寄存器組,RS1和RS0(PSW.4 和 PSW.3 ) 工作寄存器組選擇位,P (PSW.0) 奇偶標(biāo)志位,表明累加器A中1的個(gè)數(shù)的奇偶性:若1的個(gè)數(shù)為偶數(shù),則P=0;若1的個(gè)數(shù)為奇數(shù),則P=1 。 在每個(gè)指令周期由硬件根據(jù)A的內(nèi)容對(duì)P位進(jìn)行置位或復(fù)位,21,在加減運(yùn)算中,如果OV=1,則表示運(yùn)算結(jié)果超出了累加器A所能表示的符號(hào)數(shù)的有效范圍(-128 +127),運(yùn)算結(jié)果是錯(cuò)誤的,即產(chǎn)生了溢出;否則, OV=0,則表示運(yùn)算結(jié)果正確,即未產(chǎn)生溢出。溢出的判斷:

12、OV=C6C7 在乘法運(yùn)算中,OV=1表示乘積超過(guò)255,即乘積分別在B(高8位)與A(低8位)中;否則,OV=0表示乘積只在A中。 在除法運(yùn)算中,OV=1表示除數(shù)為0,除法不能進(jìn)行;否則,OV=0表示除數(shù)不為0,除法可正常進(jìn)行。 【注意】對(duì)于加減運(yùn)算,無(wú)論參與運(yùn)算的數(shù)是帶符號(hào)數(shù)還是無(wú)符號(hào)數(shù),都按帶符號(hào)數(shù)的原則來(lái)設(shè)置溢出標(biāo)志位,OV (PSW.2) 溢出標(biāo)志位,22,布爾處理機(jī) 布爾處理(即位處理)是MCS-51單片機(jī)ALU所具有的一種功能。 單片機(jī)指令系統(tǒng)中的布爾指令集(17條位操作指令), 存儲(chǔ)器中的位地址空間(內(nèi)部RAM中的128個(gè)位和特殊功能寄存器里的位地址空間),以及借用程序狀態(tài)標(biāo)志

13、寄存器PSW中的進(jìn)位標(biāo)志CY作為位操作“累加器”,構(gòu)成了單片機(jī)內(nèi)的布爾處理機(jī)。 可對(duì)直接尋址的位(bit)變量進(jìn)行位處理,如置位、清零、取反、測(cè)試轉(zhuǎn)移以及邏輯與、或等位操作,使用戶在編程時(shí)可以利用指令完成原來(lái)單憑復(fù)雜的硬件邏輯所完成的功能,并可方便地設(shè)置標(biāo)志等,23,控制器 控制器是單片機(jī)的神經(jīng)中樞,識(shí)別指令并根據(jù)指令性質(zhì)控制單片機(jī)各部件,保證單片機(jī)各部分能自動(dòng)而協(xié)調(diào)地工作。它包括程序計(jì)數(shù)器(PC)、數(shù)據(jù)指針寄存器(DPTR)、指令寄存器(IR)、指令譯碼器、條件轉(zhuǎn)移邏輯電路以及定時(shí)和控制電路等部件。 功能:控制指令的讀出、譯碼和執(zhí)行。對(duì)指令的執(zhí)行過(guò)程定時(shí)控制,并根據(jù)執(zhí)行結(jié)果決定是否分支轉(zhuǎn)移,

14、24,PC(程序計(jì)數(shù)器) PC是專門用來(lái)控制指令執(zhí)行順序的寄存器,其內(nèi)容為將要執(zhí)行的下一條指令的地址,即下一條將要從ROM中取出的指令地址。 PC是一個(gè)16位的寄存器,它在物理上是獨(dú)立的,不在內(nèi)部RAM之列,沒(méi)有地址,是不可尋址的。 16位地址的尋址范圍為64KB(ROM )。 用戶不需要也無(wú)法對(duì)PC進(jìn)行讀/寫,PC的內(nèi)容是通過(guò)執(zhí)行指令改變的。在執(zhí)行指令過(guò)程中,PC具有自動(dòng)加 1 功能。 在執(zhí)行轉(zhuǎn)移、調(diào)用、返回等指令時(shí)能自動(dòng)改變PC內(nèi)容,以改變程序的執(zhí)行順序。 復(fù)位時(shí),PC自動(dòng)裝入0000H,使程序從0000H單元開(kāi)始執(zhí)行,25,DPTR(數(shù)據(jù)指針) 16位特殊功能寄存器,也可作為兩個(gè)8位寄存

15、器,高8位用DPH表示,低8位用DPL表示。 它是MCS-51中唯一一個(gè)供用戶使用的16位寄存器。 功能: 在訪問(wèn)外部RAM時(shí)作地址指針使用。 在變址尋址方式中,用作基址寄存器,用于對(duì)ROM的訪問(wèn),26,指令寄存器IR、指令譯碼器以及控制邏輯 IR是用來(lái)存放指令操作碼的專用寄存器。 整個(gè)程序的執(zhí)行過(guò)程就是在控制器的控制下,將指令從ROM中逐條取出,進(jìn)行譯碼,然后由定時(shí)控制邏輯電路發(fā)相應(yīng)的定時(shí)控制信號(hào),控制指令的執(zhí)行,是一個(gè)取指令指令譯碼執(zhí)行指令的不斷循環(huán)的過(guò)程,27,2. 內(nèi)部數(shù)據(jù)存儲(chǔ)器(內(nèi)部RAM) 包括RAM(1288位)和RAM地址寄存器等。 80C51芯片中共有256個(gè)RAM單元,但其

16、中后128單元被特殊功能寄存器占用,供用戶使用的只有前128單元,用于存放可讀寫的數(shù)據(jù)。故“內(nèi)部RAM”指前128單元。 3. 內(nèi)部程序存儲(chǔ)器(內(nèi)部ROM) 包括ROM(4K8位)和程序地址寄存器等。 80C51共有4KB掩膜ROM,用于存放程序和原始數(shù)據(jù)。 4. 定時(shí)器/計(jì)數(shù)器 出于控制應(yīng)用的需要,80C51共有2個(gè)16位的定時(shí)器/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)的功能,并以其定時(shí)或計(jì)數(shù)結(jié)果對(duì)單片機(jī)進(jìn)行控制,28,5. 并行I/O口 MCS-51共有4個(gè)8位的I/O口(P0、P1 、P2、 P3 ),以實(shí)現(xiàn)數(shù)據(jù)的并行輸入輸出??蓪ぶ?4KB外部RAM和64KB外部ROM 。 6. 串行口 MCS-5

17、1有一個(gè)可編程全雙工的串行口,以實(shí)現(xiàn)單片機(jī)和其它數(shù)據(jù)設(shè)備之間的串行數(shù)據(jù)傳送。該串行口既可作為全雙工異步通信收發(fā)器使用,也可作為同步移位器使用。 7. 中斷控制系統(tǒng) MCS-51共有5個(gè)中斷源,即外中斷2個(gè),定時(shí)/計(jì)數(shù)中斷2個(gè),串行中斷1個(gè)。全部中斷分為高級(jí)和低級(jí)兩個(gè)優(yōu)先級(jí),29,8. 時(shí)鐘電路 為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列,典型的晶振頻率為12MHz。 MCS-51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為XTAL1,輸出端為XTAL2。 9. 位處理器(布爾處理器) 單片機(jī)主要用于控制,需要有較強(qiáng)的位處理功能,因此,位處理器是它的必要組成部分。 10. 總線 系統(tǒng)的地址信號(hào)、數(shù)據(jù)信號(hào)和控制信號(hào)都

18、是通過(guò)總線傳送的。 總線結(jié)構(gòu)減少了單片機(jī)的連線和引腳提高了集成度和可靠性,MCS - 51單片機(jī)硬件結(jié)構(gòu),MCS - 51系列單片機(jī)的分類,表 MCS - 51 系列單片機(jī)配置一覽表,MCS - 51單片機(jī)的內(nèi)部結(jié)構(gòu),圖 MCS - 51單片機(jī)結(jié)構(gòu)框圖,中央處理器CPU,運(yùn)算器,算術(shù)邏輯單元ALU 2. 累加器ACC(Accumulator) 3. 寄存器B 4. 程序狀態(tài)字PSW(Programe State Word,D7 D6 D5 D4 D3 D2 D1 D0,PSW,表 RS1、 RS0與片內(nèi)工作寄存器組的對(duì)應(yīng)關(guān)系,控制器,1. 時(shí)鐘電路,圖 單片機(jī)時(shí)鐘電路 (a) 內(nèi)部時(shí)鐘電路;

19、(b) 外部振蕩源,2. 復(fù)位電路,圖 單片機(jī)復(fù)位電路 (a)上電復(fù)位電路;(b) 開(kāi)關(guān)復(fù)位電路,表 復(fù)位后內(nèi)部寄存器狀態(tài),3. 指令寄存器和指令譯碼器 指令寄存器中存放指令代碼。CPU執(zhí)行指令時(shí), 由程序存儲(chǔ)器中讀取的指令代碼送入指令存儲(chǔ)器, 經(jīng)譯碼器譯碼后由定時(shí)與控制電路發(fā)出相應(yīng)的控制信號(hào), 完成指令所指定的操作,4. 程序計(jì)數(shù)器PC(Program Counter) PC用于存放CPU下一條要執(zhí)行的指令地址, 是一個(gè) 16 位的專用寄存器, 可尋址范圍是0000H0FFFFH共 64 KB。 程序中的每條指令存放在ROM區(qū)的某一單元, 并都有自己的存放地址。 CPU 要執(zhí)行哪條指令時(shí),

20、就把該條指令所在的單元的地址送上地址總線。 在順序執(zhí)行程序中, 當(dāng)PC的內(nèi)容被送到地址總線后, 會(huì)自動(dòng)加 1, 即(PC) (PC)+1, 又指向CPU 下一條要執(zhí)行的指令地址,5. 堆棧指針SP(Stack Pointer) 堆棧操作是在內(nèi)存RAM區(qū)專門開(kāi)辟出來(lái)的按照“先進(jìn)后出”原則進(jìn)行數(shù)據(jù)存取的一種工作方式, 主要用于子程序調(diào)用及返回和中斷處理斷點(diǎn)的保護(hù)及返回, 它在完成子程序嵌套和多重中斷處理中是必不可少的。為保證逐級(jí)正確返回, 進(jìn)入棧區(qū)的“斷點(diǎn)”數(shù)據(jù)應(yīng)遵循“先進(jìn)后出”的原則。SP用來(lái)指示堆棧所處的位置, 在進(jìn)行操作之前, 先用指令給SP賦值, 以規(guī)定棧區(qū)在RAM區(qū)的起始地址(棧底層)。

21、當(dāng)數(shù)據(jù)推入棧區(qū)后, SP的值也自動(dòng)隨之變化。MCS - 51 系統(tǒng)復(fù)位后, SP初始化為07H,6. 數(shù)據(jù)指針寄存器DPTR 數(shù)據(jù)指針DPTR是一個(gè) 16 位的專用寄存器, 其高位字節(jié)寄存器用DPH表示,低位字節(jié)寄存器用DPL表示。既可作為一個(gè) 16 位寄存器DPTR來(lái)處理, 也可作為兩個(gè)獨(dú)立的 8 位寄存器DPH和DPL來(lái)處理。 DPTR 主要用來(lái)存放 16 位地址, 當(dāng)對(duì) 64 KB外部數(shù)據(jù)存儲(chǔ)器空間尋址時(shí), 作為間址寄存器用。在訪問(wèn)程序存儲(chǔ)器時(shí), 用作基址寄存器,41,2.3 MCS-51單片機(jī)存儲(chǔ)器組織結(jié)構(gòu),MCS-51單片機(jī)的存儲(chǔ)器組織結(jié)構(gòu)與一般微機(jī)不同: 一般微機(jī)通常是程序和數(shù)據(jù)共

22、用一個(gè)存儲(chǔ)空間,屬于Von Neumann結(jié)構(gòu)(馮諾依曼型) MCS-51單片機(jī)把程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器相互分離開(kāi)來(lái),屬于Harvard結(jié)構(gòu)(哈佛型,42,存儲(chǔ)器,ALU,算邏部件 (ALU,控制部件,中央處理器 CPU,輸入/輸出 部件,輸入/輸出 部件,算邏部件 (ALU,控制部件,中央處理器 CPU,程序存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器,單片機(jī)體系結(jié)構(gòu),馮諾依曼型,哈佛型,43,MCS-51的存儲(chǔ)器組織分3個(gè)不同的存儲(chǔ)地址空間: 64KB的程序存儲(chǔ)器地址空間(包括片內(nèi)ROM和片外ROM) 64KB的外部數(shù)據(jù)存儲(chǔ)器地址空間 256B的內(nèi)部數(shù)據(jù)存儲(chǔ)器地址空間 對(duì)這3個(gè)不同的存儲(chǔ)器空間進(jìn)行數(shù)據(jù)傳送時(shí),必

23、須分別采用3種不同形式的指令,44,MCS-51單片機(jī)存儲(chǔ)器組織結(jié)構(gòu),內(nèi)部 ROM 4KB EA=1,外部 ROM 4KB EA=0,內(nèi)部 RAM 128B,0FFFH 0000H,0FFFH 0000H,FFFFH 1000H,外部 RAM 64KB,特殊功能 寄存器 (21個(gè)SFR,外部 ROM 60KB,FFH 80H 7FH 00H,程序存儲(chǔ)器地址空間,數(shù)據(jù)存儲(chǔ)器地址空間,FFFFH 0000H,MOV 指令操作域,MOVX 指令操作域,MOVC 指令操作域,45,程序存儲(chǔ)器(ROM) ROM用于存放程序及表格常數(shù),讀取ROM的指令為“MOVC”。 8051(8751)片內(nèi)駐留有4KB

24、的ROM(EPROM),外部可用16位地址線擴(kuò)展到最大64KB的ROM空間。 片內(nèi)ROM和外部擴(kuò)展ROM是統(tǒng)一編址的,46,程序存儲(chǔ)器(ROM) 當(dāng)芯片引腳EA為高電平時(shí),8051的程序計(jì)數(shù)器PC在0000H0FFFH(4KB)地址時(shí)從內(nèi)部ROM取指令,超過(guò)4KB時(shí),CPU自動(dòng)轉(zhuǎn)向外部ROM執(zhí)行程序。 如果EA為低電平(接地),則所有取指令操作均在外部ROM中進(jìn)行,這時(shí)外部擴(kuò)展的ROM從0000H開(kāi)始編址。 8031單片機(jī)無(wú)片內(nèi)ROM,只能使用外部擴(kuò)展ROM且從0000H開(kāi)始編址,EA必須接低電平,47,ROM中的某些特定單元是給系統(tǒng)默認(rèn)使用的 0000H單元是復(fù)位入口,單片機(jī)復(fù)位后,CPU總

25、是從0000H單元開(kāi)始執(zhí)行程序。 0000H 0002H單元安排一條無(wú)條件轉(zhuǎn)移指令,使之轉(zhuǎn)向主程序的入口地址。 0003H 002AH共40個(gè)單元均勻地分為5段,分別作為5個(gè)中斷源的中斷地址區(qū)。 中斷響應(yīng)后,系統(tǒng)能按中斷種類,自動(dòng)轉(zhuǎn)到各中斷區(qū)的首地址去執(zhí)行程序,48,系統(tǒng)復(fù)位和中斷地址區(qū),一般從中斷首地址開(kāi)始存放一條無(wú)條件轉(zhuǎn)移指令,以便中斷響應(yīng)后,通過(guò)中斷地址區(qū),再轉(zhuǎn)到中斷服務(wù)程序的實(shí)際入口地址,49,數(shù)據(jù)存儲(chǔ)器(RAM) RAM用于存放運(yùn)算中間結(jié)果,用作緩沖和數(shù)據(jù)暫存,以及設(shè)置特征標(biāo)志等。 8051片內(nèi)有256B的RAM空間,片外有64KB的RAM空間,兩個(gè)存儲(chǔ)空間獨(dú)立尋址。 內(nèi)部RAM 低

26、128字節(jié)地址空間(00H 7FH)為內(nèi)部RAM區(qū),是供用戶使用的數(shù)據(jù)存儲(chǔ)器單元,作為處理問(wèn)題的數(shù)據(jù)緩沖器。 高128字節(jié)地址空間(80H FFH)為特殊功能寄存器區(qū)(SFR區(qū)),共21個(gè)特殊功能寄存器,也就是128個(gè)字節(jié)單元中只有21個(gè)字節(jié)單元能夠被用戶使用。 內(nèi)部RAM存儲(chǔ)空間小,僅用8位地址尋址,但存取速度比外部RAM快,50,內(nèi)部RAM低128單元的劃分,工作寄存器組 0,位尋址區(qū) (位地址:00H7FH,用戶RAM區(qū) (堆棧、數(shù)據(jù)緩沖,7FH 30H 2FH 20H,工作寄存器組 3,工作寄存器組 2,工作寄存器組 1,1FH 18H 17H 10H 0FH 08H 07H 00H,

27、R7 R0 R7 R0 R7 R0 R7 R0,工作寄存器區(qū) (共32個(gè)字節(jié)單元,分為4組, 每組8個(gè)8位寄存器, 只能按字節(jié)尋址,用戶RAM區(qū) (共80個(gè)字節(jié)單元, 只能按字節(jié)尋址,位尋址區(qū) (共16個(gè)字節(jié)單元,128個(gè)位, 可按位尋址,也可按字節(jié)尋址,51,內(nèi)部RAM低128單元,按用途可分為3個(gè)區(qū)域: 工作寄存器區(qū) 內(nèi)部RAM的00H 1FH為工作寄存器區(qū),共32個(gè)字節(jié),分為4組,每組8個(gè)8位寄存器R0R7。 在任一時(shí)刻,CPU只能使用其中的一組寄存器,當(dāng)前程序使用的工作寄存器組是由程序狀態(tài)字PSW的RS0、RS1位來(lái)選擇的,52,工作寄存器的使用方法: 以寄存器的形式使用,用寄存器符號(hào)

28、表示; 以存儲(chǔ)單元的形式使用,以單元地址表示,工作寄存器區(qū)各寄存器對(duì)應(yīng)的地址,53,位尋址區(qū) 內(nèi)部RAM的20H2FH字節(jié)為可位尋址區(qū)域,這16個(gè)字節(jié)共128位,每一位都有一個(gè)位地址,位編址為:00H7FH,用戶可用程序?qū)λ鼈冎苯舆M(jìn)行清0、置位、取反和測(cè)試等操作。 位尋址區(qū)的RAM單元也可按字節(jié)尋址,作為一般的數(shù)據(jù)緩沖器使用。 “位”的兩種表示方式: 以位地址的形式,如位尋址區(qū)的最后一個(gè)位是7FH; 以存儲(chǔ)單元地址加位的形式表示,如位尋址區(qū)的最后一個(gè)位表示為2FH.7,54,內(nèi)部RAM位尋址區(qū)的位地址,55,用戶RAM區(qū) 內(nèi)部RAM的30H7FH字節(jié)為用戶RAM區(qū),即通用數(shù)據(jù)緩沖區(qū),共80個(gè)單

29、元,作為一般數(shù)據(jù)緩沖使用。 52子系列的用戶RAM區(qū)為30HFFH范圍內(nèi)的208個(gè)字節(jié)。 對(duì)于用戶RAM區(qū),只能以存儲(chǔ)單元的形式來(lái)使用,沒(méi)有其它任何規(guī)定和限制。 一般把堆棧開(kāi)辟在此區(qū)中,56,內(nèi)部RAM高128單元:特殊功能寄存器(SFR)區(qū) 單元地址為80HFFH,用于存放相應(yīng)功能部件的控制命令、狀態(tài)或數(shù)據(jù)。 80C51片內(nèi)包括21個(gè)SFR,其中可位尋址的有11個(gè)。 對(duì)可位尋址的SFR,在表示某一位時(shí),可以用位地址,也可以用位定義名,或用“寄存器名.位”表示。例如程序狀態(tài)字PSW中的D3位可表示為: D3H (位地址) RS0 (位定義名) PSW.3 (寄存器名.位,57,特殊功能寄存器地

30、址映像,58,特殊功能寄存器地址映像(續(xù),59,對(duì)SFR的字節(jié)尋址問(wèn)題的說(shuō)明: 21個(gè)SFR不連續(xù)地分散在內(nèi)部RAM高128單元中。用戶不能使用剩余的的空閑單元,如果訪問(wèn)了這些沒(méi)有定義的單元,讀出的為不定數(shù),寫入的數(shù)將被舍棄。 每個(gè)SFR都有字節(jié)地址,并定義了符號(hào)名。其中11個(gè)可位尋址,對(duì)應(yīng)的位也定義了位名。(凡是字節(jié)地址能被8整除的SFR都具有位地址) 只能使用直接尋址方式訪問(wèn)特殊功能寄存器,指令中既可使用寄存器符號(hào)表示,也可使用寄存器地址表示。 在P3 P0口中,作為特殊功能寄存器的是它們的鎖存器,由各位口線的鎖存位組成,60,MCS-51的堆棧操作 堆棧是一種數(shù)據(jù)結(jié)構(gòu),就是只允許在其一端

31、進(jìn)行數(shù)據(jù)插入和數(shù)據(jù)刪除操作的線性表。 數(shù)據(jù)寫入堆棧叫入棧(PUSH),數(shù)據(jù)從堆棧中讀出叫出棧(POP)。 堆棧的最大特點(diǎn)是“后進(jìn)先出”(LIFO,Last-In-First-Out)的數(shù)據(jù)操作規(guī)則,61,堆棧的功用 堆??捎糜陧憫?yīng)中斷或調(diào)用子程序時(shí),保護(hù)斷點(diǎn)和保護(hù)現(xiàn)場(chǎng)。在中斷服務(wù)程序或子程序結(jié)束時(shí),執(zhí)行中斷返回或子程序返回指令,原斷點(diǎn)地址會(huì)自動(dòng)從堆棧中彈出給PC,使程序從斷點(diǎn)處順序執(zhí)行下去。 堆棧也可用于數(shù)據(jù)的臨時(shí)存放,堆棧的開(kāi)辟 堆棧只能開(kāi)辟在芯片的內(nèi)部RAM中(內(nèi)堆棧),通常設(shè)在內(nèi)部RAM的30H7FH地址空間內(nèi)的頂部,但要考慮到堆棧的最大深度。 內(nèi)堆棧的特點(diǎn):操作速度快,但堆棧容量有限,

32、62,堆棧指針(SP) 堆棧指針SP是8位的特殊功能寄存器,可指向片內(nèi)RAM 128字節(jié)(00H7FH)的任何單元。 堆棧的兩種操作(進(jìn)棧和出棧)都是對(duì)棧頂單元進(jìn)行的。SP用來(lái)指示棧頂,SP的內(nèi)容就是堆棧棧頂?shù)拇鎯?chǔ)單元地址。 系統(tǒng)復(fù)位后,SP的內(nèi)容為07H,但由于堆棧一般在內(nèi)部RAM的30H7FH單元中開(kāi)辟,所以在程序設(shè)計(jì)時(shí)應(yīng)注意把SP值初始化為30H以后,以免堆棧占用工作寄存器區(qū)和位尋址區(qū)。 SP的內(nèi)容一經(jīng)確定,堆棧的位置也就跟著確定下來(lái),由于SP可初始化為不同值,因此堆棧位置是浮動(dòng)的,63,堆棧類型 向上生長(zhǎng)型堆棧:棧底在低地址單元。 操作規(guī)則: 進(jìn)棧操作:先SP加1,后寫入數(shù)據(jù) 出棧操作

33、:先讀出數(shù)據(jù),后SP減1 向下生長(zhǎng)型堆棧:棧底在高地址單元。 操作規(guī)則: 進(jìn)棧操作:先SP減1,后寫入數(shù)據(jù) 出棧操作:先讀出數(shù)據(jù),后SP加1,MCS-51的堆棧屬于向上生長(zhǎng)型,棧底,棧底,SPSP+1 SP,進(jìn)棧,出棧,出棧,進(jìn)棧,SP SP SP-1,64,堆棧的使用方式 自動(dòng)方式(保護(hù)斷點(diǎn)) 無(wú)需用戶干預(yù),在調(diào)用子程序或中斷時(shí),返回地址(斷點(diǎn))自動(dòng)進(jìn)棧;程序返回時(shí),斷點(diǎn)再自動(dòng)彈回PC。 指令方式(保護(hù)現(xiàn)場(chǎng)) 使用專用的堆棧操作指令,進(jìn)行進(jìn)出棧操作。進(jìn)棧指令為PUSH(保護(hù)現(xiàn)場(chǎng)),出棧指令為POP (恢復(fù)現(xiàn)場(chǎng)),65,總結(jié):MCS-51單片機(jī)系統(tǒng)的存儲(chǔ)器結(jié)構(gòu)特點(diǎn) 數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器截然分

34、開(kāi) RAM和ROM的地址空間、存取指令和控制信號(hào)各有一套。 存儲(chǔ)器有內(nèi)外之分 為擴(kuò)展外部存儲(chǔ)器,單片機(jī)的芯片引腳已經(jīng)作了預(yù)先準(zhǔn)備: 通過(guò)口線最多可提供16位地址,對(duì)外部存儲(chǔ)器的尋址范圍達(dá)64KB; ALE信號(hào)用于外部存儲(chǔ)器的地址鎖存; WR和RD信號(hào)分別用于外部RAM的寫選通和讀選通; PSEN信號(hào)用于外部ROM的讀選通; EA信號(hào)用于內(nèi)外ROM的訪問(wèn)控制,補(bǔ)充 51單片機(jī)存儲(chǔ)器的結(jié)構(gòu),圖 MCS - 51 單片機(jī)的存儲(chǔ)器結(jié)構(gòu),1. 程序存儲(chǔ)器 對(duì)于8051來(lái)說(shuō), 程序存儲(chǔ)器(ROM)的內(nèi)部地址為 0000H0FFFH, 共 4 KB; 外部地址為 1000HFFFFH, 共 60 KB。 當(dāng)

35、程序計(jì)數(shù)器由內(nèi)部 0FFFH執(zhí)行到外部 1000H 時(shí), 會(huì)自動(dòng)跳轉(zhuǎn)。對(duì)于 8751 來(lái)說(shuō), 內(nèi)部有 4 KB的EPROM, 將它作為內(nèi)部程序存儲(chǔ)器; 8031 內(nèi)部無(wú)程序存儲(chǔ)器, 必須外接程序存儲(chǔ)器。 8031 最多可外擴(kuò) 64 KB程序存儲(chǔ)器, 其中 6 個(gè)單元地址具有特殊用途, 是保留給系統(tǒng)使用的。0000H是系統(tǒng)的啟動(dòng)地址, 一般在該單元中存放一條絕對(duì)跳轉(zhuǎn)指令。0003H、000BH、 000BH、001BH和 0023H對(duì)應(yīng) 5 種中斷源的中斷服務(wù)入口地址,2. 內(nèi)部數(shù)據(jù)存儲(chǔ)器 MCS-51 單片機(jī)片內(nèi)RAM的配置如圖 2.4(b)所示。片內(nèi)RAM為 256 字節(jié), 地址范圍為00H

36、FFH, 分為兩大部分: 低 128 字節(jié)(00H7FH)為真正的RAM區(qū); 高 128 字節(jié)(80HFFH)為特殊功能寄存器區(qū)SFR。 在低 128 字節(jié)RAM中, 00H1FH共 32 單元是 4 個(gè)通用工作寄存器區(qū)。每一個(gè)區(qū)有 8 個(gè)通用寄存器R0R7。寄存器和RAM地址對(duì)應(yīng)關(guān)系如表 2.4,表 寄存器與RAM 地址對(duì)照表,表 RAM中的位尋址區(qū)地址表,表 SFR特殊功能寄存器地址表,表 SFR特殊功能寄存器地址表,表 SFR特殊功能寄存器地址表,3. 外部數(shù)據(jù)存儲(chǔ)器 外部數(shù)據(jù)存儲(chǔ)器一般由靜態(tài)RAM構(gòu)成,其容量大小由用戶根據(jù)需要而定, 最大可擴(kuò)展到 64 KB RAM , 地址是 000

37、0H0FFFFH。 CPU通過(guò)MOVX指令訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器, 用間接尋址方式, R0、R1和 DPTR都可作間接寄存器。注意, 外部RAM和擴(kuò)展的I/O接口是統(tǒng)一編址的, 所有的外擴(kuò)I/O 口都要占用 64 KB中的地址單元,75,2.4 MCS-51單片機(jī)并行I/O口電路,在單片機(jī)中,“口”是一個(gè)集數(shù)據(jù)輸入緩沖、輸出驅(qū)動(dòng)及鎖存等多項(xiàng)功能于一體的I/O電路。 MCS-51單片機(jī)4個(gè)8位的并行I/O口:P0、P1、P2、P3,這4個(gè)口既可以按字節(jié)尋址,也可以按位尋址,共32位。每個(gè)口輸出具有鎖存功能,前一次輸出的信息將一直鎖存到下一次輸出新信息時(shí)為止;輸入沒(méi)有鎖存功能,所以輸入信息應(yīng)一直保持到

38、輸入指令把信息取走時(shí)為止。 每個(gè)口都能用作通用輸入/輸出,其中P0口又能作為地址/數(shù)據(jù)總線, P2口能傳送高8位地址;P3口有第二功能;P1口只能用作通用I/O口,76,P0口 字節(jié)地址:80H,位地址:80H87H 既能用作通用I/O口,又能用作地址/數(shù)據(jù)總線的復(fù)用,V1,V2,1,2,3,4,77,P0口由8個(gè)完全相同又相互獨(dú)立的邏輯電路組成: 鎖存器用于進(jìn)行數(shù)據(jù)位的鎖存, 8個(gè)鎖存器構(gòu)成了特殊功能寄存器P0; 場(chǎng)效應(yīng)管V1、 V2組成數(shù)據(jù)輸出的驅(qū)動(dòng)和控制電路; 與門3、反相器4及多路轉(zhuǎn)接開(kāi)關(guān)MUX構(gòu)成輸出控制電路; 三態(tài)門1是引腳輸入緩沖器; 三態(tài)門2是用于讀鎖存器端口,讀引腳是指將引腳

39、P0.x上的值通過(guò)內(nèi)部總線讀入CPU,而讀鎖存器是讀入一個(gè)口鎖存器的值,進(jìn)行處理后重新寫回鎖存器中(讀-修改-寫)。由指令決定是讀引腳還是讀鎖存器,例如指令A(yù)NL P1, A 就是讀鎖存器,它是將P1口的8位分別與累加器A中的8位進(jìn)行與操作,結(jié)果寫回P1口的8個(gè)鎖存器中,78,P0口用作通用I/O口 CPU發(fā)來(lái)的控制信號(hào)為低電平,MUX接通鎖存器Q端的輸出通路。與門3輸出低電平并將輸出驅(qū)動(dòng)電路的上拉場(chǎng)效應(yīng)管V2截止,輸出端處于漏極開(kāi)路狀態(tài)。 【注意】: P0口在輸出數(shù)據(jù)時(shí), 由于V2截止, 輸出級(jí)是漏極開(kāi)路電路, 要使“1”信號(hào)正常輸出, 必須外接上拉電阻。 P0口作為輸入口使用時(shí),應(yīng)區(qū)分讀引

40、腳和讀鎖存器。讀引腳時(shí)應(yīng)使V1截止(先向該端口鎖存器寫入“1”,79,P0口作為地址/數(shù)據(jù)總線 CPU發(fā)來(lái)的控制信號(hào)為高電平,MUX接通反相器4。 作總線輸出時(shí),從“地址/數(shù)據(jù)”端輸入的地址(低8位)或數(shù)據(jù)信號(hào)同時(shí)作用于與門3和反相器4,并分別驅(qū)動(dòng)V1、V2,結(jié)果在引腳上得到地址或數(shù)據(jù)輸出信號(hào)。 外部數(shù)據(jù)輸入時(shí),CPU使V1、V2均截止,從引腳上輸入的外部數(shù)據(jù)經(jīng)讀引腳緩沖器2進(jìn)入內(nèi)部數(shù)據(jù)總線,注意】:P0口在有外部擴(kuò)展存儲(chǔ)器時(shí)被作為地址/數(shù)據(jù)總線口,此時(shí)是一個(gè)真正的雙向口;在沒(méi)有外部擴(kuò)展存儲(chǔ)器時(shí),P0口也可作為通用的I/O接口,但此時(shí)只是一個(gè)準(zhǔn)雙向口,80,P1口 字節(jié)地址:90H,位地址:9

41、0H97H 只能作為通用I/O口使用,是準(zhǔn)雙向口,1,2,V1,81,P1口電路與P0口的區(qū)別: 因只傳送數(shù)據(jù),所以沒(méi)有地址/數(shù)據(jù)的傳送電路和多路轉(zhuǎn)接開(kāi)關(guān)MUX。 輸出驅(qū)動(dòng)電路中有上拉電阻,上拉電阻與場(chǎng)效應(yīng)管共同組成輸出驅(qū)動(dòng)電路。 輸出數(shù)據(jù)時(shí),已能對(duì)外提供推拉電路負(fù)載,外電路無(wú)需再接上拉電阻。 輸入數(shù)據(jù)時(shí),應(yīng)先向其鎖存器寫入“1”,使輸出驅(qū)動(dòng)電路的V1截止,82,P2口 字節(jié)地址:0A0H,位地址:0A0H0A7H 可作為通用I/O口或地址總線高8位,是準(zhǔn)雙向口,1,2,3,V1,83,P2口作為通用I/O口 當(dāng)控制信號(hào)為低電平時(shí),多路開(kāi)關(guān)MUX接到左端,P2口作為通用I/O口使用,其功能和使

42、用方法與P0、P1相同。用作輸入時(shí),也必須先向鎖存器寫入“1”。 P2口作為地址總線 當(dāng)控制信號(hào)為高電平時(shí),多路開(kāi)關(guān)MUX接到右端,由程序計(jì)數(shù)器PC送來(lái)的高8位地址PCH或數(shù)據(jù)指針DPTR送來(lái)的高8位地址DPH經(jīng)反相器3和V1管二次反相后從引腳輸出。 (P2口輸出地址總線高8位,供系統(tǒng)擴(kuò)展用,對(duì)于8051、8751型單片機(jī),P2口能作為通用I/O或地址總線使用。 對(duì)于8031型單片機(jī)(無(wú)片內(nèi)ROM ),P2口只能作為地址總線高8位,84,P3口 字節(jié)地址:0B0H,位地址:0B0H0B7H 可用作通用I/O口,同時(shí)每個(gè)引腳還有第二功能。準(zhǔn)雙向口,3,V1,4,1,2,85,P3口作為通用I/O

43、口 “第二功能輸出”端為高電平,用作輸出時(shí),與非門3的輸出取決于鎖存器Q端信號(hào),引腳輸出信號(hào)與內(nèi)部總線信號(hào)相同。其功能和使用方法與P1、P2相同。用作輸入時(shí),也須先寫入“1,P3口用作第二功能 P3口的某一位作為第二功能輸出使用時(shí),該位的鎖存器置“1”,使與非門3和輸出狀態(tài)只受“第二功能輸出”端控制。第二功能輸出信號(hào)經(jīng)與非門3和V1管二次反相后輸出到該位引腳。 P3口的某一位作為第二功能輸入使用時(shí),該位的“第二功能輸出”端和鎖存器自行置“1”,該位引腳上的信號(hào)經(jīng)緩沖器4送入“第二功能輸入”端,補(bǔ)充:51單片機(jī)并行輸入/輸出接口,圖 P0 口內(nèi)部一位結(jié)構(gòu)圖,1. P0口,2. P1、P2和P3口

44、,P1、P2 和P3 口為準(zhǔn)雙向口, 在內(nèi)部差別不大, 但使用功能有所不同。 P1口是用戶專用 8 位準(zhǔn)雙向I/O口, 具有通用輸入/輸出功能, 每一位都能獨(dú)立地設(shè)定為輸入或輸出。當(dāng)有輸出方式變?yōu)檩斎敕绞綍r(shí), 該位的鎖存器必須寫入“1”, 然后才能進(jìn)入輸入操作。 P2口是 8 位準(zhǔn)雙向I/O口。外接I/O設(shè)備時(shí), 可作為擴(kuò)展系統(tǒng)的地址總線, 輸出高8位地址, 與P0 口一起組成 16 位地址總線。 對(duì)于 8031 而言, P2 口一般只作為地址總線使用, 而不作為I/O線直接與外部設(shè)備相連,表 P3口的第二功能,89,時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào)。 單片機(jī)本身是一個(gè)復(fù)雜的同步時(shí)序

45、電路,為了保證同步工作方式的實(shí)現(xiàn),電路應(yīng)在唯一的時(shí)鐘信號(hào)控制下嚴(yán)格地按時(shí)序協(xié)調(diào)工作。 時(shí)序研究的是指令執(zhí)行中各信號(hào)之間的相互時(shí)間關(guān)系,2.5 MCS-51單片機(jī)時(shí)鐘電路與時(shí)序,90,時(shí)鐘電路 時(shí)鐘信號(hào)的產(chǎn)生(內(nèi)部方式時(shí)鐘) MCS-51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。 外接作為反饋元件的晶體后成為自激振蕩器,晶體呈感性,與微調(diào)電容C1、C2構(gòu)成并聯(lián)諧振回路,振蕩器的頻率主要取決于晶體,電容有微調(diào)作用。晶體的振蕩頻率范圍通常是1.212MHz, 電容C1、C2一般取30 pF。 晶體振蕩頻率越高,系統(tǒng)的時(shí)鐘頻率越高,單片機(jī)運(yùn)行速度越快,91,

46、引入外部脈沖信號(hào)(外部方式時(shí)鐘) 在由多片單片機(jī)組成的系統(tǒng)中,為了各單片機(jī)之間時(shí)鐘信號(hào)的同步,應(yīng)當(dāng)引入唯一的公用外部脈沖信號(hào)作為各單片機(jī)的震蕩脈沖。 外接的脈沖應(yīng)是高低電平持續(xù)時(shí)間大于20ns的方波,且脈沖頻率應(yīng)低于12MHz,92,分頻電路,振蕩電路產(chǎn)生的振蕩信號(hào)并不直接為單片機(jī)所用,而要進(jìn)行分頻,以得到單片機(jī)各種相關(guān)的時(shí)鐘信號(hào)。 時(shí)鐘頻率為振蕩頻率的2分頻,ALE信號(hào)頻率為振蕩頻率的6分頻,機(jī)器頻率為振蕩頻率的12分頻,當(dāng)振蕩脈沖頻率為12MHz時(shí),一個(gè)機(jī)器周期為1ms; 當(dāng)振蕩脈沖頻率為6MHz時(shí),一個(gè)機(jī)器周期為2ms,93,時(shí)序定時(shí)單位 振蕩周期(節(jié)拍P):振蕩脈沖的周期。 時(shí)鐘周期(

47、狀態(tài)S):兩個(gè)振蕩周期為一個(gè)時(shí)鐘周期。一個(gè)狀態(tài)包含兩個(gè)節(jié)拍,前半周期對(duì)應(yīng)的節(jié)拍叫P1,后半周期對(duì)應(yīng)的節(jié)拍叫P2。 機(jī)器周期:一個(gè)機(jī)器周期的寬度為6個(gè)狀態(tài),用S1、S2、S6表示;共12個(gè)節(jié)拍,依次可表示為S1P1、S1P2、S2P1、S2P2、S6P1、S6P2。 指令周期:執(zhí)行一條指令所需要的時(shí)間,它以機(jī)器周期為單位,是最大的時(shí)序定時(shí)單位。MCS-51的指令周期根據(jù)指令的不同,可包含有1、2、4個(gè)機(jī)器周期,94,典型指令時(shí)序 MCS-51共有111條指令,按長(zhǎng)度可分為: 單字節(jié)指令、雙字節(jié)指令、三字節(jié)指令。 執(zhí)行這些指令所需要的機(jī)器周期數(shù)目是不同的,概括起來(lái)有以下幾種情況:?jiǎn)巫止?jié)單機(jī)器周期指

48、令、單字節(jié)雙機(jī)器周期指令、雙字節(jié)單機(jī)器周期指令、雙字節(jié)雙機(jī)器周期指令、三字節(jié)的指令都是雙機(jī)器周期、單字節(jié)的乘、除指令為四個(gè)機(jī)器周期,ALE信號(hào)為MCS-51擴(kuò)展系統(tǒng)的外部存儲(chǔ)器地址低8位的鎖存信號(hào), ALE信號(hào)每有效一次對(duì)應(yīng)單片機(jī)進(jìn)行1次的讀指令操作。 ALE信號(hào)以振蕩脈沖的1/6頻率出現(xiàn),在一個(gè)機(jī)器周期中,ALE信號(hào)兩次有效,第一次在S1P2和S2P1期間,第二次在S4P2和S5P1期間, 有效寬度為1個(gè)狀態(tài),補(bǔ)充 51單片機(jī) 單片機(jī)工作的基本時(shí)序,1. 機(jī)器周期和指令周期 (1) 振蕩周期: 也稱時(shí)鐘周期, 是指為單片機(jī)提供時(shí)鐘脈沖信號(hào)的振蕩源的周期。 (2) 狀態(tài)周期: 每個(gè)狀態(tài)周期為時(shí)

49、鐘周期的 2 倍, 是振蕩周期經(jīng)二分頻后得到的。 (3) 機(jī)器周期: 一個(gè)機(jī)器周期包含 6 個(gè)狀態(tài)周期S1S6, 也就是 12 個(gè)時(shí)鐘周期。 在一個(gè)機(jī)器周期內(nèi), CPU可以完成一個(gè)獨(dú)立的操作。 (4) 指令周期: 它是指CPU完成一條操作所需的全部時(shí)間。 每條指令執(zhí)行時(shí)間都是有一個(gè)或幾個(gè)機(jī)器周期組成。MCS - 51 系統(tǒng)中, 有單周期指令、雙周期指令和四周期指令,2. MCS - 51 指令的取指/執(zhí)行時(shí)序,圖 MCS - 51 單片機(jī)取指/執(zhí)行時(shí)序,3. 訪問(wèn)外部ROM和RAM的時(shí)序,圖 讀外部程序ROM時(shí)序,圖 讀外部數(shù)據(jù)RAM時(shí)序,圖 寫外部數(shù)據(jù)RAM的時(shí)序,100,MCS-51單片機(jī)有5種不同的工作方式,每種工作方式都代表著單片機(jī)的一種工作狀態(tài)。包括: 程序執(zhí)行方式(分為連續(xù)執(zhí)行和單步執(zhí)行) 復(fù)位方式 掉電方式 低功耗節(jié)電工作方式 EPROM編程和校驗(yàn)方式,2.6 MCS-51單片機(jī)工作方式,101,程序執(zhí)行方式(單片機(jī)的基本工作方式) 連續(xù)執(zhí)行方式 (正常工作方式) 由于單片機(jī)復(fù)位后PC=0000H,因此程序執(zhí)行總是從地址0000H開(kāi)始,但因0003H是外部中斷程序入口,所以一般程序并不是從0000H開(kāi)始,為此需在0

溫馨提示

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