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

下載本文檔

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

文檔簡(jiǎn)介

1、第第2 2章章 單片機(jī)的硬件結(jié)構(gòu)及工作原理單片機(jī)的硬件結(jié)構(gòu)及工作原理【學(xué)習(xí)目標(biāo)【學(xué)習(xí)目標(biāo)】l 熟悉熟悉MCS-51MCS-51系列單片機(jī)系列單片機(jī)內(nèi)部硬件架構(gòu)內(nèi)部硬件架構(gòu)及及各功能部件各功能部件;l 熟練掌握熟練掌握MCS-51MCS-51單片機(jī)硬件單片機(jī)硬件引腳引腳的定義、功能、作用;的定義、功能、作用;l 熟練掌握熟練掌握MCS-51MCS-51單片機(jī)單片機(jī)各存儲(chǔ)器物理空間配置及特殊各存儲(chǔ)器物理空間配置及特殊功能寄存器的定義、作用功能寄存器的定義、作用;l 理解理解MCS-51MCS-51單片機(jī)單片機(jī)工作時(shí)序工作時(shí)序、復(fù)位操作復(fù)位操作、復(fù)位條件復(fù)位條件、復(fù)位狀態(tài)復(fù)位狀態(tài)等概念;等概念;l

2、了解單片機(jī)低功耗運(yùn)行模式及設(shè)置。了解單片機(jī)低功耗運(yùn)行模式及設(shè)置。頁碼頁碼章節(jié)或標(biāo)題章節(jié)或標(biāo)題原錯(cuò)誤原錯(cuò)誤更正為更正為P29表表2.5 SFR的名的名稱及地址映射稱及地址映射(字節(jié)地址字節(jié)地址)FDHF0H 說明:第說明:第2 2章有以下印刷錯(cuò)誤,請(qǐng)給予修正章有以下印刷錯(cuò)誤,請(qǐng)給予修正密碼密碼:xmut1212:xmut12122.1 2.1 MCS-51MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)和引腳功能單片機(jī)內(nèi)部結(jié)構(gòu)和引腳功能圖圖2.1 MCS-512.1 MCS-51單片機(jī)內(nèi)部硬件原理結(jié)構(gòu)框圖單片機(jī)內(nèi)部硬件原理結(jié)構(gòu)框圖2.1.1 MCS-512.1.1 MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)單片機(jī)內(nèi)部結(jié)構(gòu)由如下功能部

3、件組成:對(duì)圖由如下功能部件組成:對(duì)圖2-12-1中的片內(nèi)各部件做簡(jiǎn)單介中的片內(nèi)各部件做簡(jiǎn)單介紹。紹。 1.CPU1.CPU(微處理器)(微處理器)2.2.程序存儲(chǔ)器(程序存儲(chǔ)器(ROM/EPROMROM/EPROM) 8031:8031:無此部件;無此部件;8051:8051:4K4K字節(jié)字節(jié)ROMROM;8751:8751:4K4K字節(jié)字節(jié)EPROM EPROM ; 89C51/89C52/89C55:89C51/89C52/89C55:4K/8K/20K 4K/8K/20K 字節(jié)閃存字節(jié)閃存。3.3.數(shù)據(jù)存儲(chǔ)器(數(shù)據(jù)存儲(chǔ)器(RAMRAM) 片內(nèi)為片內(nèi)為128128個(gè)字節(jié)(個(gè)字節(jié)(5252子

4、系列的為子系列的為256256個(gè)字節(jié))個(gè)字節(jié))4. 4. 中斷系統(tǒng)中斷系統(tǒng)5. 5. 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器6. 6. 串行口串行口 1 1個(gè)個(gè)全雙工全雙工的異步串行口,具有的異步串行口,具有四種四種工作方式工作方式。 7. 7. 4 4個(gè)個(gè)并行可編程的并行可編程的8 8位位I/OI/O口口 P1P1口、口、P2P2口、口、P3P3口、口、P0P0口口8. 8. 特殊功能寄存器(特殊功能寄存器(SFRSFR) 共有共有2121個(gè)個(gè),是一個(gè)具有特殊功能的,是一個(gè)具有特殊功能的RAMRAM區(qū)。區(qū)。CPUCPU對(duì)各種功能部件的控制是采用特殊功能寄存器(對(duì)各種功能部件的控制是采用特殊功能寄存器

5、(SFRSFR,Special Function RegisterSpecial Function Register)的集中控制方式。)的集中控制方式。9.9.時(shí)鐘電路時(shí)鐘電路 1 1個(gè)提供單片機(jī)工作的片內(nèi)時(shí)鐘振蕩器及時(shí)鐘發(fā)生器。個(gè)提供單片機(jī)工作的片內(nèi)時(shí)鐘振蕩器及時(shí)鐘發(fā)生器。 圖圖2-2 89C512-2 89C51的引腳的引腳 2.1.2 MCS-512.1.2 MCS-51單片機(jī)的引腳單片機(jī)的引腳 4040只引腳只引腳雙列直插封裝雙列直插封裝(DIPDIP)。)。從一片集成電路的角度去認(rèn)識(shí)單片機(jī)MCS-51MCS-51:4040個(gè)引腳雙排直插個(gè)引腳雙排直插DIPDIP封裝封裝, ,大致可分

6、為大致可分為3 3類:類:電源及時(shí)鐘、控制和電源及時(shí)鐘、控制和I/OI/O引腳。引腳。MCS-51MCS-51:4040個(gè)引腳雙排直插個(gè)引腳雙排直插DIPDIP封裝封裝, ,大致可分為大致可分為3 3類:類:電源及時(shí)鐘、控制和電源及時(shí)鐘、控制和I/OI/O引腳。引腳。4040只引腳只引腳按功能分為按功能分為3 3類類: 1 1)電源及時(shí)鐘引腳()電源及時(shí)鐘引腳(4 4個(gè))個(gè)): : VccVcc、VssVss;XTAL1XTAL1、XTAL2XTAL2。 2 2)控制引腳()控制引腳(4 4個(gè)):個(gè)): PSENPSEN* *、EAEA* * 、ALEALE、RESET RESET (即(即R

7、STRST)。)。 (3 3)I/OI/O口引腳(口引腳(3232個(gè)):個(gè)):P0P0、P1P1、P2P2、P3P3,為,為4 4個(gè)個(gè)8 8位位I/OI/O口的外部引腳口的外部引腳1)1)電源引腳電源引腳 (1 1)VccVcc(4040腳)腳):+5V+5V電源;電源; (2 2)VssVss(2020腳)腳):接地。:接地。2)2)時(shí)鐘引腳時(shí)鐘引腳 (1 1)XTAL1XTAL1(1919腳)腳):接外部晶體,如果采用外接:接外部晶體,如果采用外接振蕩器時(shí),振蕩器時(shí),振蕩器的輸出振蕩器的輸出應(yīng)接到此引腳上。應(yīng)接到此引腳上。 (2 2)XTAL2XTAL2(1818腳)腳):接外部晶體的另一

8、端或采用:接外部晶體的另一端或采用外接振蕩器時(shí)懸空。外接振蕩器時(shí)懸空。1. 1. 電源及時(shí)鐘引腳電源及時(shí)鐘引腳151545pf45pfx2x21 112MHz12MHz(MCS-51MCS-51) 0 024MHz24MHz(Atmel-89CAtmel-89C)XTAL1XTAL1XTAL2XTAL2也可以由也可以由 XTAL1XTAL1端接端接入外部時(shí)鐘,此時(shí)應(yīng)入外部時(shí)鐘,此時(shí)應(yīng)將將 XTAL2XTAL2接地:接地:XTAL2XTAL2XTAL1XTAL1外部時(shí)鐘外部時(shí)鐘通常通常外接一個(gè)外接一個(gè)晶振兩個(gè)電容晶振兩個(gè)電容2. 2. 控制引腳控制引腳 提供控制信號(hào),有的引腳還具有提供控制信號(hào),

9、有的引腳還具有復(fù)用復(fù)用功能。功能。 (1) (1) RST/VPD(9RST/VPD(9腳腳) ):復(fù)位與備用電源。:復(fù)位與備用電源。 (2) ALE/PROG(2) ALE/PROG* *(3030腳):腳):地址鎖存允許地址鎖存允許/ /片內(nèi)片內(nèi)EPROMEPROM編程脈沖編程脈沖 第一功能第一功能: :ALEALE為地址鎖存允許,為地址鎖存允許,用來鎖存用來鎖存P0P0口送口送出的低出的低8 8位地址位地址, ,可驅(qū)動(dòng)可驅(qū)動(dòng)8 8個(gè)個(gè)LSLS型型TTLTTL負(fù)載。負(fù)載。 第二功能第二功能: :PROGPROG* *為編程脈沖輸入端為編程脈沖輸入端, ,片內(nèi)有片內(nèi)有EPROMEPROM的芯

10、片,在的芯片,在EPROMEPROM編程期間,此引腳輸入編程脈沖。編程期間,此引腳輸入編程脈沖。(3) PSEN(3) PSEN* * (2929腳):腳):外部程序存儲(chǔ)器的外部程序存儲(chǔ)器的讀選通讀選通信信號(hào)號(hào)( (外外ROMROM讀選通信號(hào)讀選通信號(hào)) )?;蚍Q:。或稱:尋址外部程序存儲(chǔ)尋址外部程序存儲(chǔ)器時(shí)選通外部器時(shí)選通外部EPROMEPROM的的讀控制端(讀控制端(OEOE)低有效低有效, ,可可驅(qū)驅(qū)動(dòng)動(dòng)8 8個(gè)個(gè)LSLS型型TTLTTL負(fù)載。負(fù)載。單片機(jī)單片機(jī)鎖存器鎖存器74LS373P0.0-P0.7ALEPSENP2.0-P2.48D8QOEA8-A12A0-A7D0-D7GEAO

11、ECEEPROMEPROM (4) (4) EAEA* */VPP(Enable Address/Voltage Pulse of /VPP(Enable Address/Voltage Pulse of ProgRamingProgRaming,3131腳腳) ) EA EA* *:為內(nèi)外程序存儲(chǔ)器選擇控制端。為內(nèi)外程序存儲(chǔ)器選擇控制端。 EAEA* *=1=1,訪問訪問片內(nèi)片內(nèi)程序存儲(chǔ)器,但在程序存儲(chǔ)器,但在PCPC(程序計(jì)(程序計(jì)數(shù)器)值超過數(shù)器)值超過0FFFH0FFFH(對(duì)于(對(duì)于80518051、87518751)時(shí),即超出)時(shí),即超出片內(nèi)程序存儲(chǔ)器的片內(nèi)程序存儲(chǔ)器的4K4K字節(jié)地

12、址范圍時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)字節(jié)地址范圍時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行外部程序存儲(chǔ)器內(nèi)的程序。行外部程序存儲(chǔ)器內(nèi)的程序。 EAEA* *=0=0,單片機(jī)則單片機(jī)則只只訪問訪問外部外部程序存儲(chǔ)器。不管程序存儲(chǔ)器。不管芯片內(nèi)有否內(nèi)芯片內(nèi)有否內(nèi)ROMROM。對(duì)。對(duì)80C3180C31芯片,芯片,片內(nèi)無片內(nèi)無ROMROM,因此,因此EAEA必須接地。必須接地。 VPPVPP:本引腳的第二功能。用于施加編程電壓(例如:本引腳的第二功能。用于施加編程電壓(例如+21V+21V或或+12V+12V)。對(duì))。對(duì)89C5189C51,加在,加在VPPVPP腳的編程電壓為腳的編程電壓為+12V+12V或或+5V+5V。 MCS-5

13、1 MCS-51共有共有4 4個(gè)個(gè)8 8位位并行并行I/OI/O端口端口:P0P0、P1P1、P2P2、P3P3口,口,共共3232個(gè)引腳。個(gè)引腳。P3P3口還具有第二功能,用于特殊信號(hào)輸入輸口還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線)。出和控制信號(hào)(屬控制總線)。 3. I/O3. I/O口引腳口引腳( (3232個(gè)個(gè)) )P3P3口引腳口引腳第第 二二 功功 能能P3.0P3.0RXDRXD(串行輸入口)(串行輸入口)P3.1P3.1TXDTXD(串行輸出口)(串行輸出口)P3.2P3.2(外部中斷(外部中斷0 0)P3.3P3.3(外部中斷(外部中斷1 1)P3.4P3

14、.4T0T0(定時(shí)器(定時(shí)器0 0外部計(jì)數(shù)輸入)外部計(jì)數(shù)輸入)P3.5P3.5T1T1(定時(shí)器(定時(shí)器1 1外部計(jì)數(shù)輸入)外部計(jì)數(shù)輸入)P3.6P3.6(外部數(shù)據(jù)存儲(chǔ)器寫選通)(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7P3.7(外部數(shù)據(jù)存儲(chǔ)器讀選通)(外部數(shù)據(jù)存儲(chǔ)器讀選通)表表2.1 P32.1 P3口的第二功能定義口的第二功能定義RDWRINT01INT1 1)P0P0口:口:雙向雙向8 8位三態(tài)位三態(tài)I/OI/O口,此口也可作為地址總線口,此口也可作為地址總線(低(低8 8位)及數(shù)據(jù)總線分時(shí)復(fù)用口,當(dāng)作為總線使用時(shí),位)及數(shù)據(jù)總線分時(shí)復(fù)用口,當(dāng)作為總線使用時(shí),先輸出地址后輸出數(shù)據(jù)。先輸出地址后輸出數(shù)

15、據(jù)。P0P0口可驅(qū)動(dòng)口可驅(qū)動(dòng)8 8個(gè)個(gè)LSLS型型TTLTTL負(fù)載。負(fù)載。2 2)P1P1口:口:8 8位準(zhǔn)雙向位準(zhǔn)雙向I/OI/O口,可驅(qū)動(dòng)口,可驅(qū)動(dòng)4 4個(gè)個(gè)LSLS型型TTLTTL負(fù)載。負(fù)載。3 3)P2P2口:口:8 8位準(zhǔn)雙向位準(zhǔn)雙向I/OI/O口,與地址總線(高口,與地址總線(高8 8位)復(fù)用,位)復(fù)用,可驅(qū)動(dòng)可驅(qū)動(dòng)4 4個(gè)個(gè)LSLS型型TTLTTL負(fù)載。負(fù)載。4 4)P3P3口:口:8 8位準(zhǔn)雙向位準(zhǔn)雙向I/OI/O口,可作為一般口,可作為一般I/OI/O口使用,也口使用,也可用于第二功能,見表可用于第二功能,見表2.12.1。P3P3口可驅(qū)動(dòng)口可驅(qū)動(dòng)4 4個(gè)個(gè)LSLS型型TTL

16、TTL負(fù)負(fù)載。載。2.2 MCS-512.2 MCS-51的的CPUCPU 由由運(yùn)算器運(yùn)算器和和控制器控制器所構(gòu)成所構(gòu)成2.2.1 2.2.1 運(yùn)算器運(yùn)算器 運(yùn)算器的功能是進(jìn)行算術(shù)、邏輯運(yùn)算和位操作,包括算運(yùn)算器的功能是進(jìn)行算術(shù)、邏輯運(yùn)算和位操作,包括算術(shù)邏輯運(yùn)算單元術(shù)邏輯運(yùn)算單元ALUALU、累加器、累加器A A、寄存器、寄存器B B、位處理器、程序、位處理器、程序狀態(tài)字寄存器狀態(tài)字寄存器PSWPSW以及以及BCDBCD碼修正電路等。碼修正電路等。 1 1算術(shù)邏輯運(yùn)算單元算術(shù)邏輯運(yùn)算單元ALUALU ALUALU可對(duì)可對(duì)8 8位變量進(jìn)行加、減、乘、除、加位變量進(jìn)行加、減、乘、除、加1 1、減

17、、減1 1、比較、比較、十進(jìn)制調(diào)整等算術(shù)運(yùn)算和與、或、非、異或、移位等邏輯運(yùn)十進(jìn)制調(diào)整等算術(shù)運(yùn)算和與、或、非、異或、移位等邏輯運(yùn)算,還具有位處理操作功能,可對(duì)位進(jìn)行置算,還具有位處理操作功能,可對(duì)位進(jìn)行置“1”1”、清、清“0”0”、取反、測(cè)試轉(zhuǎn)移及邏輯與、或等操作。取反、測(cè)試轉(zhuǎn)移及邏輯與、或等操作。2 2累加器累加器A A 使用最頻繁的寄存器,使用最頻繁的寄存器,可寫為可寫為AccAcc。 累加器累加器A A的作用的作用:(1 1)是)是ALUALU的輸入之一,又是運(yùn)算結(jié)果的存放單元。的輸入之一,又是運(yùn)算結(jié)果的存放單元。(2 2)數(shù)據(jù)傳送大多都通過累加器)數(shù)據(jù)傳送大多都通過累加器A A。MC

18、S-51MCS-51增加了一部分可以不增加了一部分可以不經(jīng)過累加器的傳送指令,即可加快數(shù)據(jù)的傳送速度,又減少經(jīng)過累加器的傳送指令,即可加快數(shù)據(jù)的傳送速度,又減少A A的的“瓶頸堵塞瓶頸堵塞”現(xiàn)象。現(xiàn)象。 A A的進(jìn)位標(biāo)志的進(jìn)位標(biāo)志CyCy同時(shí)又是位處理機(jī)的位累加器。同時(shí)又是位處理機(jī)的位累加器。 ADD AADD A,#34H#34H MOV A, R0MOV A, R03 3寄存器寄存器B B 它是運(yùn)算結(jié)果的另一個(gè)存放單元。例如在進(jìn)行它是運(yùn)算結(jié)果的另一個(gè)存放單元。例如在進(jìn)行8 8位變量乘以位變量乘以8 8位位變量運(yùn)算時(shí),運(yùn)算結(jié)果的高變量運(yùn)算時(shí),運(yùn)算結(jié)果的高8 8位數(shù)據(jù)存放在寄存器位數(shù)據(jù)存放在寄

19、存器B B中,低中,低8 8位位數(shù)據(jù)存放在累加器數(shù)據(jù)存放在累加器A A中。中。 MUL AB MUL AB ;A ABBABBA(1 1)CyCy(PSW.7PSW.7)進(jìn)位標(biāo)志位,進(jìn)位標(biāo)志位,用于表示用于表示Acc.7Acc.7有否有否 向更高位進(jìn)位。向更高位進(jìn)位。(2 2)Ac(PSW.6) Ac(PSW.6) 輔助進(jìn)位標(biāo)志位,用于輔助進(jìn)位標(biāo)志位,用于BCDBCD碼的十碼的十 進(jìn)制調(diào)整運(yùn)算。進(jìn)制調(diào)整運(yùn)算。用于表示用于表示Acc.3Acc.3有有否否 向向Acc.4Acc.4進(jìn)位進(jìn)位(3 3)F0F0(PSW.5PSW.5)用戶使用的狀態(tài)標(biāo)志位。用戶使用的狀態(tài)標(biāo)志位。圖圖2-3 2-3 程序

20、狀態(tài)字寄存器程序狀態(tài)字寄存器PSWPSW4 4程序狀態(tài)字寄存器程序狀態(tài)字寄存器PSWPSW PSWPSW也稱為標(biāo)志寄存器,存放各有關(guān)標(biāo)志。其結(jié)構(gòu)也稱為標(biāo)志寄存器,存放各有關(guān)標(biāo)志。其結(jié)構(gòu)和定義和定義如如圖:圖:(4 4)RS1RS1、RS0RS0(PSW.4PSW.4、PSW.3PSW.3):4 4組工作寄存器區(qū)選擇組工作寄存器區(qū)選擇控制位控制位1 1和位和位0 0。如表。如表2-22-2。 RS1RS1、RS0RS0與與4 4組工作寄存器組工作寄存器區(qū)的對(duì)應(yīng)關(guān)系區(qū)的對(duì)應(yīng)關(guān)系 RS1 RS0 RS1 RS0 所選的所選的4 4組寄存器組寄存器 0 0 00 0 0區(qū)(內(nèi)部區(qū)(內(nèi)部RAMRAM地址

21、地址 00H00H07H07H) 0 1 10 1 1區(qū)(內(nèi)部區(qū)(內(nèi)部RAMRAM地址地址 08H08H0FH0FH) 1 0 21 0 2區(qū)(內(nèi)部區(qū)(內(nèi)部RAMRAM地址地址 10H10H17H17H) 1 1 31 1 3區(qū)(內(nèi)部區(qū)(內(nèi)部RAMRAM地址地址 18H18H1FH1FH)(5 5)OVOV(PSW.2PSW.2)溢出標(biāo)志位)溢出標(biāo)志位 指示運(yùn)算是否溢出。注意各種算術(shù)運(yùn)算指令對(duì)該位的指示運(yùn)算是否溢出。注意各種算術(shù)運(yùn)算指令對(duì)該位的影響影響(6 6)PSW.1PSW.1位位: : 保留位,未用保留位,未用 (7 7)P(PSW.0)P(PSW.0)奇偶標(biāo)志位奇偶標(biāo)志位 P=1P=1

22、,A A中中“1”1”的個(gè)數(shù)為的個(gè)數(shù)為奇數(shù)奇數(shù)P=0P=0,A A中中“1”1”的個(gè)數(shù)為的個(gè)數(shù)為偶數(shù)偶數(shù)2.2.2 2.2.2 控制器控制器 1 1程序計(jì)數(shù)器程序計(jì)數(shù)器PCPC(Program CounterProgram Counter) 存放存放下一條下一條要執(zhí)行的指令在程序存儲(chǔ)器中的地址。要執(zhí)行的指令在程序存儲(chǔ)器中的地址。 基本工作方式有以下幾種:基本工作方式有以下幾種: 1 1)程序計(jì)數(shù)器)程序計(jì)數(shù)器自動(dòng)加自動(dòng)加1 1 2 2)執(zhí)行)執(zhí)行有條件轉(zhuǎn)移有條件轉(zhuǎn)移或或無條件轉(zhuǎn)移無條件轉(zhuǎn)移指令時(shí),指令時(shí), PCPC將被置入新的將被置入新的數(shù)值,從而使程序的數(shù)值,從而使程序的流向流向發(fā)生變化。發(fā)

23、生變化。 3 3)執(zhí)行)執(zhí)行子程序調(diào)用或中斷調(diào)用子程序調(diào)用或中斷調(diào)用,完成下列操作:,完成下列操作:l PCPC的的現(xiàn)行值保護(hù)現(xiàn)行值保護(hù)l 將子將子程序入口地址程序入口地址或或中斷向量的地址中斷向量的地址送入送入PCPC。 2 2指令寄存器指令寄存器IRIR、指令譯碼器及控制邏輯電路、指令譯碼器及控制邏輯電路 指令寄存器指令寄存器IRIR用來存放指令操作碼。用來存放指令操作碼。IRIR寄存器的輸出送寄存器的輸出送至指令譯碼器,然后對(duì)該指令進(jìn)行譯碼,譯碼結(jié)果送至定至指令譯碼器,然后對(duì)該指令進(jìn)行譯碼,譯碼結(jié)果送至定時(shí)控制邏輯電路。時(shí)控制邏輯電路。 定時(shí)控制邏輯電路的功能定時(shí)控制邏輯電路的功能是根據(jù)

24、對(duì)指令的譯碼結(jié)果,發(fā)是根據(jù)對(duì)指令的譯碼結(jié)果,發(fā)出一系列的定時(shí)控制信號(hào),控制單片機(jī)的各組成部件進(jìn)行出一系列的定時(shí)控制信號(hào),控制單片機(jī)的各組成部件進(jìn)行相應(yīng)的工作,執(zhí)行指令。相應(yīng)的工作,執(zhí)行指令?!纠纠?.113.11】 有一數(shù)據(jù)塊存放起始地址為有一數(shù)據(jù)塊存放起始地址為DATA1DATA1的的片外片外RAMRAM區(qū),數(shù)據(jù)塊以區(qū),數(shù)據(jù)塊以“0”0”為結(jié)束標(biāo)志,要求將其傳送到為結(jié)束標(biāo)志,要求將其傳送到DATA2DATA2為為起始地址的起始地址的片內(nèi)片內(nèi)RAMRAM區(qū)。編寫程序如下:區(qū)。編寫程序如下: MOV DPTR, #DATA1 MOV DPTR, #DATA1; ;設(shè)置片外設(shè)置片外RAMRAM數(shù)

25、據(jù)塊地址指針數(shù)據(jù)塊地址指針 MOV R0MOV R0,#DATA2 #DATA2 ; ;設(shè)置片內(nèi)設(shè)置片內(nèi)RAMRAM數(shù)據(jù)塊地址指針數(shù)據(jù)塊地址指針LOOP:MOVX A, DPTRLOOP:MOVX A, DPTR; ;取數(shù)取數(shù) JZ ENDOJZ ENDO; ;檢測(cè)是否為檢測(cè)是否為0 0?為?為0 0,轉(zhuǎn),轉(zhuǎn)ENDOENDO MOV R0 MOV R0,A A; ;不為不為0 0,傳送,傳送 INC DPTRINC DPTR; ;修改地址指針修改地址指針 INC R0INC R0 AJMP LOOP AJMP LOOPENDO: SJMPENDO: SJMP $ $2.3 MCS-512.3

26、MCS-51存儲(chǔ)器的結(jié)構(gòu)存儲(chǔ)器的結(jié)構(gòu) MCS-51 MCS-51單片機(jī)的存儲(chǔ)器采用哈佛(單片機(jī)的存儲(chǔ)器采用哈佛(Har-vardHar-vard)結(jié)構(gòu)結(jié)構(gòu)( (注意注意: :什么是哈佛結(jié)構(gòu)什么是哈佛結(jié)構(gòu)?)?) ,程序存儲(chǔ)器和,程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開編址,各有自己的尋址系統(tǒng)、控?cái)?shù)據(jù)存儲(chǔ)器分開編址,各有自己的尋址系統(tǒng)、控制信號(hào)和功能。存放程序及程序中常數(shù)的存儲(chǔ)器制信號(hào)和功能。存放程序及程序中常數(shù)的存儲(chǔ)器稱為程序存儲(chǔ)器,通常由稱為程序存儲(chǔ)器,通常由ROMROM構(gòu)成;存放數(shù)據(jù)的構(gòu)成;存放數(shù)據(jù)的存儲(chǔ)器稱為數(shù)據(jù)存儲(chǔ)器,通常由存儲(chǔ)器稱為數(shù)據(jù)存儲(chǔ)器,通常由RAMRAM構(gòu)成。構(gòu)成。 MCS-51 MCS-

27、51單片機(jī)的存儲(chǔ)器結(jié)構(gòu)可以分為兩個(gè)不同單片機(jī)的存儲(chǔ)器結(jié)構(gòu)可以分為兩個(gè)不同的存儲(chǔ)空間,分別是:的存儲(chǔ)空間,分別是:1 1)程序存儲(chǔ)空間地址范圍)程序存儲(chǔ)空間地址范圍64KB64KB(ROMROM)。)。包括片內(nèi)程包括片內(nèi)程序存儲(chǔ)器(序存儲(chǔ)器(4KB4KB)和片外程序存儲(chǔ)器()和片外程序存儲(chǔ)器(64KB64KB)。)。2 2)數(shù)據(jù)存儲(chǔ)空間地址范圍)數(shù)據(jù)存儲(chǔ)空間地址范圍64KB64KB(RAMRAM)。)。包括片內(nèi)數(shù)包括片內(nèi)數(shù)據(jù)存儲(chǔ)器(共據(jù)存儲(chǔ)器(共256B256B,2121個(gè)特殊功能寄存器與個(gè)特殊功能寄存器與128B128B內(nèi)內(nèi)部部RAMRAM)和片外數(shù)據(jù)存儲(chǔ)器()和片外數(shù)據(jù)存儲(chǔ)器(64KB64K

28、B)。)。MCS-51MCS-51單片機(jī)單片機(jī)沒有獨(dú)立的沒有獨(dú)立的I/OI/O空間,而是將空間,而是將I/OI/O空間與片外數(shù)據(jù)存空間與片外數(shù)據(jù)存儲(chǔ)器空間共用儲(chǔ)器空間共用64KB64KB地址空間范圍(共同編址)。地址空間范圍(共同編址)。圖圖2.3 MCS-512.3 MCS-51單片機(jī)存儲(chǔ)空間配置圖單片機(jī)存儲(chǔ)空間配置圖存儲(chǔ)器空間可劃分為存儲(chǔ)器空間可劃分為5 5類類:1.1.程序存儲(chǔ)器空間程序存儲(chǔ)器空間 片內(nèi)程序存儲(chǔ)器為片內(nèi)程序存儲(chǔ)器為4KB 4KB 的的 Flash Flash 存儲(chǔ)器存儲(chǔ)器 2.2.片內(nèi)片內(nèi)數(shù)據(jù)存儲(chǔ)器空間數(shù)據(jù)存儲(chǔ)器空間:128B 128B 3.3.特殊功能寄存器特殊功能寄存

29、器 SFRSFR-Special Function -Special Function RegisterRegister4.4.位地址空間位地址空間: : 211211個(gè)個(gè)可尋址位??蓪ぶ肺?。5.5.外部數(shù)據(jù)寄存器空間外部數(shù)據(jù)寄存器空間: :片外可擴(kuò)展片外可擴(kuò)展64K64K字節(jié)字節(jié)RAMRAM。地址范圍地址范圍:0000H0000HFFFFHFFFFH,共,共64KB64KB。其中。其中: : 低段低段4KB4KB:0000H0000H0FFFH0FFFH 89C51 89C51和和87C5187C51在片內(nèi),在片內(nèi),80C3180C31在片外。在片外。 高段高段60KB60KB:1000H1

30、000HFFFFHFFFFH。在片外。在片外。 讀寫讀寫ROMROM用用MOVCMOVC指令,控制信號(hào)是指令,控制信號(hào)是PSENPSEN和和EAEA。 讀讀ROMROM是以程序計(jì)數(shù)器是以程序計(jì)數(shù)器PCPC作為作為1616位地址指針,依次讀相應(yīng)位地址指針,依次讀相應(yīng)地址地址ROMROM中的指令和數(shù)據(jù),每讀一個(gè)字節(jié),中的指令和數(shù)據(jù),每讀一個(gè)字節(jié),PC+1PCPC+1PC,這是,這是CPUCPU自動(dòng)形成的。自動(dòng)形成的。 但是有些指令有修改但是有些指令有修改PCPC的功能,例如轉(zhuǎn)移類指令和的功能,例如轉(zhuǎn)移類指令和MOVCMOVC指令,指令,CPUCPU將按修改后將按修改后PCPC的的1616位地址讀位

31、地址讀ROMROM。2.3.1 2.3.1 程序存儲(chǔ)器程序存儲(chǔ)器(使用(使用MOVCMOVC訪問)訪問) 存放存放應(yīng)用程序應(yīng)用程序和和表格表格之類的固定常數(shù)。之類的固定常數(shù)。分為片內(nèi)和片外兩部分,由分為片內(nèi)和片外兩部分,由EAEA* *引腳引腳上所接的電平確定。上所接的電平確定。程序存儲(chǔ)器中的程序存儲(chǔ)器中的0000H0000H地址是系統(tǒng)地址是系統(tǒng)程序的啟動(dòng)地址程序的啟動(dòng)地址l讀讀外外ROMROM的過程:的過程: CPUCPU從從PCPC( (程序計(jì)數(shù)器程序計(jì)數(shù)器) )中取出當(dāng)前中取出當(dāng)前ROMROM的的1616位地位地址,分別由址,分別由P0P0口(低口(低8 8位)位)和和P2P2口(高口(

32、高8 8位)位)同時(shí)輸同時(shí)輸出,出,ALEALE信號(hào)有效時(shí)由地址鎖存器鎖存低信號(hào)有效時(shí)由地址鎖存器鎖存低8 8位地址信位地址信號(hào),地址鎖存器輸出的低號(hào),地址鎖存器輸出的低8 8位地址信號(hào)和位地址信號(hào)和P2P2口輸出的口輸出的高高8 8位地址信號(hào)同時(shí)加到外位地址信號(hào)同時(shí)加到外ROM 16ROM 16位地址輸入端,位地址輸入端,當(dāng)當(dāng)PSENPSEN信號(hào)有效時(shí)信號(hào)有效時(shí),外,外ROMROM將相應(yīng)地址存儲(chǔ)單元中的數(shù)將相應(yīng)地址存儲(chǔ)單元中的數(shù)據(jù)送至數(shù)據(jù)總線(據(jù)送至數(shù)據(jù)總線(P0P0口),口),CPUCPU讀入后存入指定單元。讀入后存入指定單元。單片機(jī)單片機(jī)鎖存器鎖存器74LS373P0.0-P0.7ALE

33、PSENP2.0-P2.48D8QOEA8-A12A0-A7D0-D7GEAOECEEPROMEPROM 需要指出的是需要指出的是: : MCS-51MCS-51單片機(jī)規(guī)定程序存儲(chǔ)器中單片機(jī)規(guī)定程序存儲(chǔ)器中有有5 5個(gè)單元地址具有特殊用途,這個(gè)單元地址具有特殊用途,這5 5個(gè)特殊單元分別對(duì)個(gè)特殊單元分別對(duì)應(yīng)應(yīng)5 5個(gè)中斷源的中斷服務(wù)程序作入口地址使用,用戶不個(gè)中斷源的中斷服務(wù)程序作入口地址使用,用戶不能安排其他內(nèi)容。能安排其他內(nèi)容。5 5種中斷源的中斷入口地址見表種中斷源的中斷入口地址見表2.32.3。 INT0INT1中斷源名稱中斷源名稱中斷入口地址(中斷入口地址(ROMROM)外部中斷0

34、0003H0003H定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T0T0000BH000BH外部中斷1 0013H0013H定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T1T1001BH001BH串行口串行口0023H0023H表表2.3 52.3 5種中斷源的中斷入口地址種中斷源的中斷入口地址 MCS-51 MCS-51復(fù)位后,復(fù)位后,PC=0000HPC=0000H,CPUCPU從地址為從地址為0000H0000H的的ROMROM單元中讀取指令和數(shù)據(jù)。從單元中讀取指令和數(shù)據(jù)。從0000H0000H到到0003H0003H只有只有3B3B,根本不可能安排一個(gè)完整的系統(tǒng)程,根本不可能安排一個(gè)完整的系統(tǒng)程序,而序,而89C5189

35、C51又是依次讀又是依次讀ROMROM字節(jié)的。字節(jié)的。因此因此,這,這3B3B只能用來安排只能用來安排一條跳轉(zhuǎn)指令一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到其他合適的,跳轉(zhuǎn)到其他合適的地址范圍去執(zhí)行真正的主程序。地址范圍去執(zhí)行真正的主程序。 ORG 0000HLJMP MAINORG 001BHLJMP INTT1ORG 0100HMAIN:MOV SP,#60H ;主程序入口,設(shè)堆棧指針主程序入口,設(shè)堆棧指針MOV R3,#100 ;置置5ms計(jì)數(shù)循環(huán)初值計(jì)數(shù)循環(huán)初值MOVTMOD,#00H ;設(shè)定時(shí)器設(shè)定時(shí)器1為方式為方式0MOVTH1,#63H ;置定時(shí)器初值置定時(shí)器初值MOV TL1,#18HCLR P1.

36、0SETB EA ;開中斷開中斷SETB ET1SETB TR1 ;啟動(dòng)啟動(dòng)T1SJMP $INTT1:MOV TH1,#63H ;重新置定時(shí)器初值重新置定時(shí)器初值MOV TL1,#18HDJNZ R3,LOOP1 ;未到未到500ms繼續(xù)循環(huán)繼續(xù)循環(huán)CPLP1.0 ;500ms到,對(duì)到,對(duì)P1.0輸出求反輸出求反MOV R3,#100 ;恢復(fù)恢復(fù)5ms計(jì)數(shù)循環(huán)初值計(jì)數(shù)循環(huán)初值LOOP1:RETI ;返回主程序返回主程序END2.3.2 2.3.2 外部數(shù)據(jù)存儲(chǔ)器外部數(shù)據(jù)存儲(chǔ)器(使用(使用MOVXMOVX訪問)訪問) 最多可最多可外擴(kuò)外擴(kuò)64K64K字節(jié)字節(jié)的的RAMRAM或或I/OI/O 。

37、l 地址范圍地址范圍:0000H0000HFFFFHFFFFH 共共64KB64KB。l 讀寫外讀寫外RAMRAM用用MOVXMOVX指令,指令, 控制信號(hào)是控制信號(hào)是P3P3口中的口中的RDRD和和WRWR。 一般情況下,只有在內(nèi)一般情況下,只有在內(nèi)RAMRAM不能滿不能滿足應(yīng)用要求時(shí),才外接足應(yīng)用要求時(shí),才外接RAMRAM。 外外RAM 16RAM 16位地址分別由位地址分別由P0P0口(低口(低8 8位)位)和和P2P2口口(高(高8 8位)位)同時(shí)輸出,同時(shí)輸出,ALEALE信號(hào)有效時(shí)由地址鎖存器鎖信號(hào)有效時(shí)由地址鎖存器鎖存低存低8 8位地址信號(hào),地址鎖存器輸出的低位地址信號(hào),地址鎖存

38、器輸出的低8 8位地址信號(hào)位地址信號(hào)和和P2P2口輸出的高口輸出的高8 8位地址信號(hào)同時(shí)加到外位地址信號(hào)同時(shí)加到外RAM 16RAM 16位地址位地址輸入端,當(dāng)輸入端,當(dāng)RDRD信號(hào)有效時(shí),外信號(hào)有效時(shí),外RAMRAM將相應(yīng)地址存儲(chǔ)單元將相應(yīng)地址存儲(chǔ)單元中的數(shù)據(jù)送至數(shù)據(jù)總線(中的數(shù)據(jù)送至數(shù)據(jù)總線(P0P0口),口),CPUCPU讀入后存入指定讀入后存入指定單元。單元。l 讀外讀外RAMRAM的過程的過程: l 寫寫外外RAMRAM的過程的過程: 寫外寫外RAMRAM的過程與讀外的過程與讀外RAMRAM的過程相同。只是控制的過程相同。只是控制信號(hào)不同,信號(hào)換成信號(hào)不同,信號(hào)換成WRWR信號(hào)。當(dāng)信

39、號(hào)。當(dāng)WRWR信號(hào)有效時(shí),信號(hào)有效時(shí),外外RAMRAM將數(shù)據(jù)總線(將數(shù)據(jù)總線(P0P0口分時(shí)傳送)上的數(shù)據(jù)寫入相口分時(shí)傳送)上的數(shù)據(jù)寫入相應(yīng)地址存儲(chǔ)單元中。應(yīng)地址存儲(chǔ)單元中。 從廣義上講,從廣義上講,89C5189C51內(nèi)內(nèi)RAMRAM(128B128B)和特殊功)和特殊功能寄存器(能寄存器(128B128B)均屬于片內(nèi))均屬于片內(nèi)RAMRAM空間,讀寫指令空間,讀寫指令均用均用MOVMOV指令。但為加以區(qū)別,內(nèi)指令。但為加以區(qū)別,內(nèi)RAMRAM通常通常指指00H00H7FH7FH的低的低128B128B空間??臻g。 2.3.3 2.3.3 內(nèi)部數(shù)據(jù)存儲(chǔ)器內(nèi)部數(shù)據(jù)存儲(chǔ)器 (使用(使用MOVMO

40、V訪問)訪問) 128128個(gè),字節(jié)地址為個(gè),字節(jié)地址為00H00H7FH7FH。圖2.4 MCS-51單片機(jī)內(nèi)RAM地址映射圖 MCS-51MCS-51內(nèi)內(nèi)RAMRAM又可分成又可分成三個(gè)三個(gè)物理空間:物理空間:工作工作寄存器區(qū)寄存器區(qū)、位尋址區(qū)位尋址區(qū)和和數(shù)據(jù)緩沖區(qū)數(shù)據(jù)緩沖區(qū)。 地址區(qū)域地址區(qū)域 功能名稱功能名稱 00H 00H 1FH1FH00H00H07H 07H 工作寄存器工作寄存器0 0區(qū)區(qū) 08H08H0FH 0FH 工作寄存器工作寄存器1 1區(qū)區(qū) 10H10H17H 17H 工作寄存器工作寄存器2 2區(qū)區(qū) 18H18H1FH 1FH 工作寄存器工作寄存器3 3區(qū)區(qū) 20H20H

41、2FH2FH 位尋址區(qū)位尋址區(qū) 30H30H7FH7FH數(shù)據(jù)緩沖區(qū)數(shù)據(jù)緩沖區(qū) 00H00H1FH1FH:3232個(gè)單元個(gè)單元,是,是4 4組通用組通用工作寄存器區(qū)工作寄存器區(qū)20H20H2FH2FH:1616個(gè)單元,可進(jìn)行個(gè)單元,可進(jìn)行128128位的位尋址位的位尋址30H30H7FH7FH:用戶用戶RAMRAM區(qū),只能字節(jié)尋址,用作數(shù)據(jù)緩沖區(qū),只能字節(jié)尋址,用作數(shù)據(jù)緩沖區(qū)以及堆棧區(qū)。區(qū)以及堆棧區(qū)。作用作用: 工作寄存器區(qū)工作寄存器區(qū) 工作寄存器區(qū)分為工作寄存器區(qū)分為4 4個(gè)區(qū):個(gè)區(qū):0 0區(qū)、區(qū)、1 1區(qū)、區(qū)、2 2區(qū)、區(qū)、3 3區(qū)。區(qū)。每區(qū)有每區(qū)有8 8個(gè)寄存器:個(gè)寄存器:R0R0R7R7

42、,寄存器名稱相同。但是,寄存器名稱相同。但是,當(dāng)前工作的寄存器區(qū)只能有一個(gè),由當(dāng)前工作的寄存器區(qū)只能有一個(gè),由PSWPSW中的中的RS1RS1、RS0RS0位決定位決定。 有專用于工作寄存器操作的指令,讀寫速度比有專用于工作寄存器操作的指令,讀寫速度比一般內(nèi)一般內(nèi)RAMRAM要快,指令字節(jié)比一般直接尋址指令要要快,指令字節(jié)比一般直接尋址指令要短,還具有間址功能,能給編程和應(yīng)用帶來方便。短,還具有間址功能,能給編程和應(yīng)用帶來方便。 位尋址區(qū)位尋址區(qū) P28 P28 地址地址: : 從從20H20H2FH2FH共共1616字節(jié)字節(jié)(ByteByte,縮寫為英文大寫字母,縮寫為英文大寫字母B B)。

43、)。每每B Byteyte有有8 8位位(bitbit,縮寫為小寫,縮寫為小寫b b),共),共128128位,每位,每一位均有一個(gè)位地址,可位尋址、位操作。即按位地址一位均有一個(gè)位地址,可位尋址、位操作。即按位地址對(duì)該位進(jìn)行對(duì)該位進(jìn)行置置1 1、清清0 0、求反求反或或判轉(zhuǎn)判轉(zhuǎn)。 用途用途: 存放各種標(biāo)志位信息和位數(shù)據(jù)。存放各種標(biāo)志位信息和位數(shù)據(jù)。 注意事項(xiàng)注意事項(xiàng): : 位地址與字節(jié)地址編址相同,容易混淆。位地址與字節(jié)地址編址相同,容易混淆。 區(qū)分方法區(qū)分方法: :位操作位操作指令指令中的地址是位地址中的地址是位地址; ; 字節(jié)操作字節(jié)操作指令指令中的地址是字節(jié)地址。中的地址是字節(jié)地址。

44、數(shù)據(jù)緩沖區(qū)數(shù)據(jù)緩沖區(qū) 內(nèi)內(nèi)RAMRAM中中30H30H7FH7FH為數(shù)據(jù)緩沖區(qū),為數(shù)據(jù)緩沖區(qū),屬一屬一般內(nèi)般內(nèi)RAMRAM,只能進(jìn)行字節(jié)尋址,只能進(jìn)行字節(jié)尋址,用于存放各種用于存放各種數(shù)據(jù)和中間結(jié)果,起到數(shù)據(jù)緩沖的作用。數(shù)據(jù)和中間結(jié)果,起到數(shù)據(jù)緩沖的作用。 2.3.4 2.3.4 特殊功能寄存器(特殊功能寄存器(SFRSFR) CPUCPU對(duì)片內(nèi)各種功能部件的控制對(duì)片內(nèi)各種功能部件的控制采用特殊功能寄采用特殊功能寄存器集中控制存器集中控制方式,方式,共共2121個(gè)個(gè)。有的。有的SFRSFR可進(jìn)行可進(jìn)行位尋位尋址址。表表2-52-5是是SFRSFR的名稱及其分布。的名稱及其分布。 其其字節(jié)地址的

45、末位是字節(jié)地址的末位是0H0H或或8H8H可可位尋址位尋址。 下面介紹下面介紹SFRSFR塊中的某些寄存器。塊中的某些寄存器。表表2.5 SFR2.5 SFR的名稱及地址映射的名稱及地址映射共共2121個(gè)個(gè)特殊功能寄存器(特殊功能寄存器(SFRSFR)地址映象表(一)地址映象表(一) 特殊功能寄存器地址映象表(二)特殊功能寄存器地址映象表(二) 特殊功能寄存器地址映象表(三)特殊功能寄存器地址映象表(三) 注:注:帶括號(hào)的字節(jié)地址表示每位有位地址可位操作。帶括號(hào)的字節(jié)地址表示每位有位地址可位操作。下面介紹下面介紹SFRSFR塊中的某些寄存器塊中的某些寄存器: :1 1堆棧指針堆棧指針SPSP

46、SP SP用于指示堆棧頂部在內(nèi)部用于指示堆棧頂部在內(nèi)部RAMRAM塊中的位置,它塊中的位置,它可指向內(nèi)部可指向內(nèi)部RAM 00HRAM 00H7FH7FH中的任何單元。堆棧是存中的任何單元。堆棧是存儲(chǔ)器內(nèi)按照儲(chǔ)器內(nèi)按照“先進(jìn)后出先進(jìn)后出”原則組織起來的一段數(shù)據(jù)原則組織起來的一段數(shù)據(jù)存儲(chǔ)單元區(qū)間,主要用來進(jìn)行斷點(diǎn)保護(hù)與現(xiàn)場(chǎng)保護(hù),存儲(chǔ)單元區(qū)間,主要用來進(jìn)行斷點(diǎn)保護(hù)與現(xiàn)場(chǎng)保護(hù),在調(diào)用子程序和中斷時(shí)都需用到堆棧。在調(diào)用子程序和中斷時(shí)都需用到堆棧。 MCS-51MCS-51單片機(jī)的堆棧主要有兩種操作:?jiǎn)纹瑱C(jī)的堆棧主要有兩種操作:入棧入棧與與出棧出棧,都是,都是字節(jié)操作字節(jié)操作,分別用,分別用PUSHPU

47、SH和和POPPOP指令實(shí)現(xiàn),指令實(shí)現(xiàn),下面用指令下面用指令PUSH ACCPUSH ACC和和POP BPOP B說明入棧與出棧操作說明入棧與出棧操作過程。堆棧操作過程如圖過程。堆棧操作過程如圖2.52.5所示。所示。入棧操作入棧操作分為兩步:分為兩步:l l SPSP自動(dòng)加自動(dòng)加1 1,指向下一單元;,指向下一單元;l l A A的內(nèi)容進(jìn)入的內(nèi)容進(jìn)入SPSP所指單元。完成后,所指單元。完成后,SPSP依舊指向棧頂。依舊指向棧頂。出棧操作出棧操作也分為兩步:也分為兩步:l l SPSP所指單元內(nèi)容送入所指單元內(nèi)容送入B B;l l SPSP自動(dòng)減自動(dòng)減1 1,棧頂發(fā)生變化,但,棧頂發(fā)生變化,

48、但SPSP依舊指向棧頂。依舊指向棧頂。復(fù)位后,復(fù)位后,SPSP中的內(nèi)容為中的內(nèi)容為07H07H,使得堆棧實(shí)際從,使得堆棧實(shí)際從08H08H單元開始,為了單元開始,為了不影響工作寄存器的選擇和位尋址區(qū)的使用,通常將不影響工作寄存器的選擇和位尋址區(qū)的使用,通常將SPSP指針設(shè)指針設(shè)置在內(nèi)置在內(nèi)RAM 30HRAM 30H70H70H空間中空間中 2. 2. 數(shù)據(jù)指針數(shù)據(jù)指針DPTR DPTR 1616位,由兩個(gè)位,由兩個(gè)8 8位寄存器位寄存器DPHDPH、DPLDPL組成。主要用于存組成。主要用于存放一個(gè)放一個(gè)1616位地址,作為位地址,作為訪問外部存儲(chǔ)器訪問外部存儲(chǔ)器(外(外RAMRAM和和RO

49、MROM)的)的地址指針。地址指針。高位字節(jié)寄存器用高位字節(jié)寄存器用DPHDPH表示,低位字節(jié)寄存器表示,低位字節(jié)寄存器用用DPLDPL表示。表示。3 3I/OI/O端口端口P0P0P3P3 P0 P0P3P3分別為分別為I/OI/O端口端口P0P0P3P3的鎖存器。單片機(jī)通過的鎖存器。單片機(jī)通過訪問設(shè)置訪問設(shè)置P0P0P3P3寄存器控制寄存器控制P0P0P3P3端口引腳的輸入輸出數(shù)端口引腳的輸入輸出數(shù)據(jù)。據(jù)。 4. 4. 寄存器寄存器B B 為執(zhí)行為執(zhí)行乘法乘法和和除法除法操作設(shè)置的。在操作設(shè)置的。在不執(zhí)行乘、除不執(zhí)行乘、除的情的情況下,可當(dāng)作一個(gè)況下,可當(dāng)作一個(gè)普通寄存器普通寄存器來使用。

50、來使用。5 5串行數(shù)據(jù)緩沖器串行數(shù)據(jù)緩沖器SBUFSBUF 它用來存放欲發(fā)送或已接收的數(shù)據(jù),占用一個(gè)字它用來存放欲發(fā)送或已接收的數(shù)據(jù),占用一個(gè)字節(jié)地址,物理上由兩個(gè)獨(dú)立的寄存器組成,一個(gè)是發(fā)節(jié)地址,物理上由兩個(gè)獨(dú)立的寄存器組成,一個(gè)是發(fā)送緩沖器,另一個(gè)是接收緩沖器。送緩沖器,另一個(gè)是接收緩沖器。6 6定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器 兩個(gè)兩個(gè)1616位定時(shí)位定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T1T1和和T0T0,各由兩個(gè)獨(dú)立的,各由兩個(gè)獨(dú)立的8 8位寄存器組成:位寄存器組成: TH1TH1、TL1TL1和和TH0TH0、TL0TL0,只能字節(jié)尋,只能字節(jié)尋址,但不能把址,但不能把T1T1或或T0T0當(dāng)作一個(gè)

51、當(dāng)作一個(gè)1616位寄存器來尋址訪問。位寄存器來尋址訪問。2.3.5 2.3.5 位地址空間位地址空間 211211個(gè)(個(gè)(128128個(gè)個(gè)+83+83個(gè))尋址位個(gè))尋址位。位地址范圍為:。位地址范圍為:00H00HFFHFFH。 內(nèi)部?jī)?nèi)部RAMRAM的可尋址位的可尋址位128128個(gè)個(gè)( (字節(jié)地址字節(jié)地址20H20H2FH)2FH)見見表表2-52-5(P24P24)。 特殊功能寄存器特殊功能寄存器SFRSFR為為8383個(gè)個(gè)可尋址位,見可尋址位,見表表2-2-6 6。表表2-5 2-5 內(nèi)部?jī)?nèi)部RAMRAM的可尋址位及位地址的可尋址位及位地址 表表2-6 SFR2-6 SFR中的位地址分布

52、中的位地址分布使用各類存儲(chǔ)器,注意幾點(diǎn):使用各類存儲(chǔ)器,注意幾點(diǎn):(1) (1) 地址的重疊性地址的重疊性 程序存儲(chǔ)器(程序存儲(chǔ)器(ROMROM)與數(shù)據(jù)存儲(chǔ)器()與數(shù)據(jù)存儲(chǔ)器(RAMRAM)全部全部64K64K字節(jié)字節(jié)地址空間重疊地址空間重疊) )。(2) (2) 程序存儲(chǔ)器(程序存儲(chǔ)器(ROMROM)與數(shù)據(jù)存儲(chǔ)器()與數(shù)據(jù)存儲(chǔ)器(RAMRAM)在使用上)在使用上是嚴(yán)格區(qū)分的是嚴(yán)格區(qū)分的 。(3) (3) 位地址空間共有位地址空間共有兩個(gè)區(qū)域兩個(gè)區(qū)域。(4)(4)片外數(shù)據(jù)存儲(chǔ)區(qū)中,片外數(shù)據(jù)存儲(chǔ)區(qū)中,RAMRAM與與I/OI/O端口端口統(tǒng)一編址統(tǒng)一編址。所有所有外圍外圍I/OI/O端口的地址均占

53、用端口的地址均占用RAMRAM單元地址單元地址,使用與,使用與訪問外部數(shù)據(jù)存儲(chǔ)器訪問外部數(shù)據(jù)存儲(chǔ)器相同的傳送指令相同的傳送指令。圖圖2-52-5為各類存儲(chǔ)器在存儲(chǔ)器空間的位置的總結(jié)。為各類存儲(chǔ)器在存儲(chǔ)器空間的位置的總結(jié)。2.4 2.4 并行并行I/OI/O端口端口 有有4 4個(gè)個(gè)8 8位并行位并行I/OI/O口口, ,共共3232條端線條端線: P0P0、P1P1、P2P2和和P3P3口口。 每一個(gè)每一個(gè)I/OI/O口都能用作輸入或輸出??诙寄苡米鬏斎牖蜉敵?。 用作輸入時(shí),均用作輸入時(shí),均須先寫入須先寫入“1”1”; 用作輸出時(shí),用作輸出時(shí),P0P0口應(yīng)口應(yīng)外接上拉電阻外接上拉電阻。 P0P0

54、口的口的負(fù)載能力負(fù)載能力為為8 8個(gè)個(gè)LSTTLLSTTL門電路;門電路; P1P1P3P3口的負(fù)載能力為口的負(fù)載能力為4 4個(gè)個(gè)LSTTLLSTTL門電路。門電路。 在并行擴(kuò)展外存儲(chǔ)器或在并行擴(kuò)展外存儲(chǔ)器或I/OI/O口情況下,口情況下, P0P0口用于低口用于低8 8位地址總線和數(shù)據(jù)總線位地址總線和數(shù)據(jù)總線( (分時(shí)傳送分時(shí)傳送) ) P2P2口用于高口用于高8 8位地址總線位地址總線, P3P3口常用于第二功能口常用于第二功能, 用戶能使用的用戶能使用的I/OI/O口只有口只有P1P1口和未用作第二功能口和未用作第二功能的部分的部分P3P3口端線??诙司€。2.4.1 P02.4.1 P0

55、端口端口圖圖2-62-61.1.位電路結(jié)構(gòu)位電路結(jié)構(gòu)P0P0口某一位的電路包括:口某一位的電路包括:(1) (1) 一個(gè)數(shù)據(jù)輸出鎖存器,用于數(shù)據(jù)位的鎖存一個(gè)數(shù)據(jù)輸出鎖存器,用于數(shù)據(jù)位的鎖存(2) (2) 兩個(gè)三態(tài)的數(shù)據(jù)輸入緩沖器。兩個(gè)三態(tài)的數(shù)據(jù)輸入緩沖器。(3) (3) 一個(gè)多路轉(zhuǎn)接開關(guān)一個(gè)多路轉(zhuǎn)接開關(guān)MUXMUX,使使P0P0口可作口可作通用通用I/OI/O口口,或,或地地址址/ /數(shù)據(jù)線口數(shù)據(jù)線口。(4) (4) 數(shù)據(jù)輸出的驅(qū)動(dòng)和控制電路,由兩只場(chǎng)效應(yīng)管(數(shù)據(jù)輸出的驅(qū)動(dòng)和控制電路,由兩只場(chǎng)效應(yīng)管(FETFET)組成,組成,上面的場(chǎng)效應(yīng)管上面的場(chǎng)效應(yīng)管構(gòu)成構(gòu)成上拉電路上拉電路。 2. 2.

56、工作過程分析工作過程分析 (1 1)P0P0口作為地址或數(shù)據(jù)總線使用口作為地址或數(shù)據(jù)總線使用 CPUCPU發(fā)出控制信號(hào)為發(fā)出控制信號(hào)為高電平高電平,打開上面的與門,使,打開上面的與門,使MUXMUX打打向上邊向上邊,使內(nèi)部地址,使內(nèi)部地址/ /數(shù)據(jù)線與數(shù)據(jù)線與下面的場(chǎng)效應(yīng)管下面的場(chǎng)效應(yīng)管反相接通。此反相接通。此時(shí)由于時(shí)由于上下兩個(gè)上下兩個(gè)FETFET處于反相處于反相,形成,形成推拉式推拉式電路結(jié)構(gòu),大大電路結(jié)構(gòu),大大提提高負(fù)載能力高負(fù)載能力。(2 2) P0P0口作通用的口作通用的I/OI/O口使用口使用 CPUCPU發(fā)來的發(fā)來的“控制控制”信號(hào)為信號(hào)為低電平低電平,上拉場(chǎng)效應(yīng)管截止,上拉場(chǎng)效

57、應(yīng)管截止,MUXMUX打向下邊打向下邊,與,與D D鎖存器的鎖存器的Q Q* *端接通。端接通。 a. P0a. P0作輸出口使用作輸出口使用 來自來自CPUCPU的的“寫入寫入”脈沖脈沖加在加在D D鎖存器的鎖存器的CPCP端,內(nèi)部總線端,內(nèi)部總線上的數(shù)據(jù)寫入上的數(shù)據(jù)寫入D D鎖存器,并向端口引腳鎖存器,并向端口引腳P0.xP0.x輸出。輸出。 注意:注意:由于輸出電路是由于輸出電路是漏極開路漏極開路(因?yàn)檫@時(shí)上拉場(chǎng)效應(yīng)管截(因?yàn)檫@時(shí)上拉場(chǎng)效應(yīng)管截止),止),必須外接上拉電阻必須外接上拉電阻才能有才能有高電平輸出高電平輸出(這時(shí)就(這時(shí)就不為雙不為雙向口向口)。)。b. P0b. P0作輸入

58、口使用作輸入口使用 區(qū)分區(qū)分“讀引腳讀引腳”和和“讀鎖存器讀鎖存器”。 “ “讀引腳讀引腳”信號(hào)把下方緩沖器打開,引腳上的狀態(tài)經(jīng)緩沖信號(hào)把下方緩沖器打開,引腳上的狀態(tài)經(jīng)緩沖器讀入內(nèi)部總線;器讀入內(nèi)部總線; “ “讀鎖存器讀鎖存器”信號(hào)打開上面的緩沖器把鎖存器信號(hào)打開上面的緩沖器把鎖存器Q Q端的狀態(tài)讀端的狀態(tài)讀入內(nèi)部總線。入內(nèi)部總線。3 3P0P0口的特點(diǎn)口的特點(diǎn) P0P0口具有如下特點(diǎn):口具有如下特點(diǎn):P0P0口為口為雙功能口雙功能口地址地址/ /數(shù)據(jù)數(shù)據(jù)復(fù)用口和通用復(fù)用口和通用I/OI/O口。口。(1 1)當(dāng)當(dāng)P0P0口用作地址口用作地址/ /數(shù)據(jù)復(fù)用口時(shí),為一個(gè)真正的雙向口,數(shù)據(jù)復(fù)用口時(shí)

59、,為一個(gè)真正的雙向口,用作外擴(kuò)存儲(chǔ)器,輸出低用作外擴(kuò)存儲(chǔ)器,輸出低8 8位地址和輸出位地址和輸出/ /輸入輸入8 8位數(shù)據(jù)。位數(shù)據(jù)。 (2 2)當(dāng)當(dāng)P0P0口用作通用口用作通用I/OI/O口時(shí),由于需要在片外接上拉電阻,口時(shí),由于需要在片外接上拉電阻,端口不存在高阻抗(懸?。顟B(tài),因此為一個(gè)準(zhǔn)雙向口。端口不存在高阻抗(懸浮)狀態(tài),因此為一個(gè)準(zhǔn)雙向口。 一般情況下,如果一般情況下,如果P0P0口已作為地址口已作為地址/ /數(shù)據(jù)復(fù)用口,就不數(shù)據(jù)復(fù)用口,就不能再作為通用能再作為通用I/OI/O口使用??谑褂谩Qa(bǔ)充:補(bǔ)充:?jiǎn)纹瑱C(jī)的引腳(單片機(jī)的引腳(P0P0口)口) P0.0P0.0P0.7: P0.

60、7: 雙向雙向I/O I/O (內(nèi)置(內(nèi)置場(chǎng)效應(yīng)管場(chǎng)效應(yīng)管上拉)上拉) 尋址外部程序存儲(chǔ)器時(shí)分時(shí)作為尋址外部程序存儲(chǔ)器時(shí)分時(shí)作為雙向雙向8 8位數(shù)據(jù)口位數(shù)據(jù)口和和輸出低輸出低8 8位地址位地址復(fù)用口;不接外部程序存儲(chǔ)器時(shí)可復(fù)用口;不接外部程序存儲(chǔ)器時(shí)可作為作為8 8位位準(zhǔn)雙向準(zhǔn)雙向I/OI/O口口使用。使用。21DQCK/Q讀引腳讀引腳讀鎖存器讀鎖存器寫鎖寫鎖存器存器內(nèi)部?jī)?nèi)部總線總線地址地址/數(shù)據(jù)數(shù)據(jù) 控制控制引腳引腳P0.X34VccV1V221DQCK/Q讀引腳讀引腳 =1讀鎖存器讀鎖存器寫鎖寫鎖存器存器內(nèi)部?jī)?nèi)部總線總線地址地址/數(shù)據(jù)數(shù)據(jù) 控制控制引腳引腳P0.X3400100截截止止截截

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論