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

下載本文檔

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

文檔簡介

1、8051 單片機(jī)的結(jié)構(gòu)和原理2.1 51 系列單片機(jī)的結(jié)構(gòu)51 單片機(jī)最初是由Intel 公司開發(fā)設(shè)計(jì)的,但后來Intel 公司把51 核的設(shè)計(jì)方案賣給了幾家大的電子設(shè)計(jì)生產(chǎn)商,譬如 SST、Philip、Atmel 等大公司。如是市面上出現(xiàn)了各式各樣的但均以51 為內(nèi)核的單片機(jī),倒是Intel 公司自己的單片機(jī)卻顯得遜色了。這些各大電子生產(chǎn)商推出的單片機(jī)都兼容51 指令、并在51 的基礎(chǔ)上擴(kuò)展一些功能而內(nèi)部結(jié)構(gòu)是與51 一致的,在前一章我們已經(jīng)提到51 單片機(jī)在今后很長一段時(shí)間內(nèi)仍是主流,所以我們的教材將還是以51 核為例給大家進(jìn)行詳細(xì)的介紹。2.1.1 51 系列單片機(jī)的結(jié)構(gòu)框圖我們假設(shè)讀

2、者是已經(jīng)學(xué)完了計(jì)算機(jī)的組成原理,所以下面出現(xiàn)的有關(guān)計(jì)算機(jī)的專有名詞就不做詳細(xì)介紹了。我們知道我們PC 機(jī)的CPU 是基于馮諾伊曼的體系結(jié)構(gòu),然而MCU(單片機(jī))、Dsp(數(shù)字信號(hào)處理器)都是基于哈佛結(jié)構(gòu)的體系結(jié)構(gòu)。哈佛結(jié)構(gòu)與馮諾伊曼結(jié)構(gòu)有很大的不同,在馮諾伊曼體系結(jié)構(gòu)下只有一個(gè)地址空間,ROM 和RAM 可以隨意安排在這一地址范圍內(nèi)的不同空間,即ROM 和RAM 地址統(tǒng)一分配。CPU 訪問存儲(chǔ)器時(shí),一個(gè)地址對(duì)應(yīng)唯一的存儲(chǔ)單元,可能是ROM,也可能是RAM。而哈佛結(jié)構(gòu)下ROM 和RAM 是分開編址,即程序和數(shù)據(jù)分開保存,訪問時(shí)用不同的指令加以區(qū)分,并可同時(shí)訪問,在這樣的體系結(jié)構(gòu)下有利于提高指令的

3、執(zhí)行速度。在后面的章節(jié)我們將詳細(xì)介紹單片機(jī)的存儲(chǔ)器配置。圖21 所示為MCS51 系列單片機(jī)的基本結(jié)構(gòu)框圖。從結(jié)構(gòu)框圖我們可以看出在這一小塊芯片上,集成了一個(gè)微型計(jì)算機(jī)的各個(gè)組成部分。這些部分包括:(1) 一個(gè)8 位的微處理器(CPU)。(2) 片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM(128B256B),用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù)等,SST89 系列單片機(jī)最多提供1K 的RAM。(3) 片內(nèi)程序存儲(chǔ)器ROMEPROM(4KB8KB),用以存放程序、一些原始數(shù)據(jù)和表格。但也有一些單片機(jī)內(nèi)部不帶ROMEPROM,如8031,8032,80C31 等。目前單片機(jī)的發(fā)展趨勢(shì)是將R

4、AM 和ROM 都集成在單片機(jī)里面,這樣既方便了用戶進(jìn)行設(shè)計(jì)又提高了系統(tǒng)的抗干擾性。SST 公司推出的89 系列單片機(jī)分別集成了16K、32K、64K Flash 存儲(chǔ)器,可供用戶根據(jù)需要選用,讀者可查看書的后面部分。廣州科沃工控維修的120w.gzkowo (4) 四個(gè)8 位并行IO 接口P0P3,每個(gè)口既可以用作輸入,也可以用作輸出。(5) 兩個(gè)定時(shí)器計(jì)數(shù)器,每個(gè)定時(shí)器計(jì)數(shù)器都可以設(shè)置成計(jì)數(shù)方式,用以對(duì)外部事件進(jìn)行計(jì)數(shù),也可以設(shè)置成定時(shí)方式,并可以根據(jù)計(jì)數(shù)或定時(shí)的結(jié)果實(shí)現(xiàn)計(jì)算機(jī)控制。為方便設(shè)計(jì)串行通信,目前的52 系列單片機(jī)都會(huì)提供3 個(gè)16 位定時(shí)器/計(jì)數(shù)器。(6) 五個(gè)中斷源的中斷控制

5、系統(tǒng)?,F(xiàn)在新推出的單片機(jī)都不只5 個(gè)中斷源,例如SST89E58RD 就有9 個(gè)中斷源。(7) 一個(gè)全雙工UART(通用異步接收發(fā)送器)的串行IO 口,用于實(shí)現(xiàn)單片機(jī)之間或單機(jī)與微機(jī)之間的串行通信。(8) 片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,但石英晶體和微調(diào)電容需要外接。最高允許振蕩頻率為12MHz。SST89V58RD 最高允許振蕩頻率達(dá)40MHz,因而大大的提高了指令的執(zhí)行速度。以上各個(gè)部分通過內(nèi)部數(shù)據(jù)總線相互連接。早期的51 系列單片機(jī)有十多個(gè)品種,目前已發(fā)展到數(shù)百種,我們可以看看早期單片機(jī)的性能如表21 所示,拿它和現(xiàn)代新型單片機(jī)比較,我們會(huì)發(fā)現(xiàn)它們的性能相差很大,可以參見后文的SST89 系列

6、單片機(jī)性能。8051 單片機(jī)內(nèi)部結(jié)構(gòu)如圖2-2 所示。一個(gè)完整的計(jì)算機(jī)應(yīng)該由運(yùn)算器、控制器、存儲(chǔ)器(ROM 及RAM)、數(shù)據(jù)總線和IO 接口組成。一般微處理器(如8086)就只包括運(yùn)算器和控制器兩部分。和一般微處理器相比,8051 增加了四個(gè)8 位IO 口、一個(gè)串行口、4KB ROM、128BRAM、很多工作寄存器及特殊功能寄存器(SFR),所以單片機(jī)具有比微處理器更強(qiáng)大的控制功能,單片機(jī)是專為進(jìn)行控制設(shè)計(jì)的,而常見的微處理器是用于運(yùn)算功能的,下圖各部分的功能描述一、中央處理單元(CPU)和PC 機(jī)的CPU 一樣,它是單片機(jī)的核心,是計(jì)算機(jī)的控制和指揮中心,由運(yùn)算器和控制器等部件組成。1 運(yùn)算

7、器運(yùn)算器包括一個(gè)可進(jìn)行8 位算術(shù)運(yùn)算和邏輯運(yùn)算的單元ALU,8 位的暫存器1、暫存器2,8 位的累加器ACC,寄存器B 和程序狀態(tài)寄存器PSW 等。ALU:可對(duì)4 位(半字節(jié))、8 位(一字節(jié))和16 位(雙字節(jié))數(shù)據(jù)進(jìn)行操作。能做加、減、乘、除、加1、減1、BCD 數(shù)十進(jìn)制調(diào)整及比較等算術(shù)運(yùn)算和與、或、異或、求補(bǔ)及循環(huán)移位等邏輯操作。ACC:累加器ACC 經(jīng)常作為一個(gè)運(yùn)算數(shù)經(jīng)暫存器2 進(jìn)入ALU 的輸入端,與另一個(gè)來自暫存器1 的運(yùn)算數(shù)進(jìn)行運(yùn)算,運(yùn)算結(jié)果又送回ACC。除此之外,ACC 在8051 內(nèi)部經(jīng)常作為數(shù)據(jù)傳送的中轉(zhuǎn)站。同一般微處理器一樣,它是最繁忙的一定寄存器了。在指令中用助記符A

8、來表示。PSW:程序狀態(tài)字寄存器,8 位,用于指示指令執(zhí)行后的狀態(tài)信息,相當(dāng)于一般微處理器的標(biāo)志寄存器。PSW 中各位狀態(tài)供程序查詢和判別用。詳見特殊功能寄存器SFR 中介紹。B:8 位寄存器,在乘、除運(yùn)算時(shí),B 寄存器用來存放一個(gè)操作數(shù),也用來存放運(yùn)算后的一部分結(jié)果;若不做乘、除運(yùn)算時(shí),則可作為通用寄存器使用。另外,8051 片內(nèi)還有一個(gè)布爾處理器,它以PSW 中的進(jìn)位標(biāo)志位CY 為其累加器(在布爾處理器及其指令中以C 代替CY),專門用于處理位操作:可執(zhí)行置位、位清0、位取反、位等于1 轉(zhuǎn)移、位等于0 轉(zhuǎn)移、位等于1 轉(zhuǎn)移并清0 以及位累加器C 與其他可位尋址的空間之間進(jìn)行信息傳送等位操作

9、,也能使C 與其他可尋址位之間進(jìn)行邏輯“與”、邏輯“或”操作,結(jié)果存放在進(jìn)位標(biāo)志位(位累加器)C 中。2控制器控制器包括程序計(jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、振蕩器及定時(shí)電路等。程序計(jì)數(shù)器PC:由兩個(gè)8 位的計(jì)數(shù)器PCH 及PCL 組成,共16 位。PC 實(shí)際上是程序的字節(jié)地址計(jì)數(shù)器,PC 中的內(nèi)容是將要招待的下一條指令的地址。改變PC 的內(nèi)容就可改變程序執(zhí)行的方向。PC 可對(duì)64KB 的ROM(程序存儲(chǔ)器)直接尋址,也可對(duì)8051 片外RAM(數(shù)據(jù)存儲(chǔ)器)尋址。指令寄存器IR 及指令譯碼器ID,由ID 對(duì)指令譯碼并送PLA 產(chǎn)生一定序列的控制信號(hào),以執(zhí)行指令所規(guī)定的操作。例如,控制

10、ALU 的操作、在8051 片內(nèi)工作寄存器間傳送數(shù)據(jù),以及發(fā)出ACC 與IO 口(P0P3)或存儲(chǔ)器之間通信的控制信號(hào)等等。振蕩器及定時(shí)電路:8051 單片機(jī)片內(nèi)有振蕩電路,只需外接石英晶體和頻率微調(diào)電容(2個(gè)30pF 左右),其頻率范圍為1.2MHz12MHz。該脈沖信號(hào)就作為8051 工作的基本節(jié)拍,即時(shí)間的最小單位。8051 同其他計(jì)算機(jī)一樣,在基本節(jié)拍的控制下協(xié)調(diào)地工作,就像一個(gè)樂隊(duì)按著指揮的節(jié)拍演奏一樣。二、存儲(chǔ)器8051 片內(nèi)有ROM(程序存儲(chǔ)器,只能讀)和RAM(數(shù)據(jù)存儲(chǔ)器,可讀可寫)兩類,它們有各自獨(dú)立的存儲(chǔ)地址空間,與一般微機(jī)的存儲(chǔ)器配置方式很不相同。1、 程序存儲(chǔ)器(ROM

11、)8051 及8751 的片內(nèi)程序存儲(chǔ)器容量為4KB,地址從0000H 一開始,用于存放程序和表格常數(shù)。2、 數(shù)據(jù)存儲(chǔ)器(RAM)805187518031 片內(nèi)數(shù)據(jù)存儲(chǔ)器均為128B,地址為00H7FH,用于存放運(yùn)算的中間結(jié)果、數(shù)據(jù)暫存以及數(shù)據(jù)緩沖等。在這128B 的RAM 中,有32 個(gè)字節(jié)單元可指定為工作寄存器,這同一般微處理器不同,8051 的片內(nèi)RAM 和工作寄存器排在一個(gè)隊(duì)列里統(tǒng)一編址。由圖22 可見,8051 單片機(jī)內(nèi)部還有SP,DPTR,PCON,IE,IP 等特殊功能寄存器,它們也同128 字節(jié)RAM 在一個(gè)隊(duì)列里編址,地址為80HFFH。在這128 字節(jié)RAM 單元中有21個(gè)

12、特殊功能寄存器(SFR),這些特殊功能寄存器還包括P0P3 口鎖存器。如何使用RAM 中的32 個(gè)工作寄存器和特殊功能寄存器,后面將詳細(xì)介紹。三、I/O 接口8051 有四個(gè)8 位并行接口,即P0P3。它們都是雙向端口,每個(gè)端口各有8 條I/O 線,為可輸入輸出。P0P3 口四個(gè)鎖存器同RAM 統(tǒng)一編址,可以把I/O 口當(dāng)作一般特殊功能寄存器來尋址。2.2 51 單片機(jī)的引腳及其功能MCS-51 系列中各種芯片的引腳是互相兼容的,如8051,8071 和8031 均采用40 腳雙列直插封裝(DIP)方式。當(dāng)然,不同芯片之間引腳功能也略有差異。8051 單片機(jī)是高性能單片機(jī),因?yàn)槭艿揭_數(shù)目的限

13、制,所以有不少引腳具有第二功能,如圖2-3 所示。各引腳功能簡要說明如下:1. 電源引腳Vcc 和VssVcc(40 腳):電源端,為5V。Vss(20 腳):接地端。2. 時(shí)鐘電路引腳XTAL1 和XTAL2XTAL2(18 腳):接外部晶體和微調(diào)電容的一端;在8051 片內(nèi)它是振蕩電路反相放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時(shí)鐘電路時(shí),該引腳輸入外部時(shí)鐘脈沖。要檢查8051/8031 的振蕩電路是否正常工作,可用示波器查看XTAL2 端是否有脈沖信號(hào)輸出。XTAL1(19 腳):接外部晶體和微調(diào)電容的另一端;在片內(nèi)它是振蕩電路反相放大器的輸入端。在采用外部時(shí)鐘時(shí),該

14、引腳必須接地。3. 控制信號(hào)引腳RST,ALE,PSEN 和EARST/VPD(9 腳):RST 是復(fù)位信號(hào)輸入端,高電平有效。當(dāng)此輸入端保持備用電源的輸入端。當(dāng)主電源Vcc 發(fā)生故障,降低到低電平規(guī)定值時(shí),將5V 電源自動(dòng)兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘振蕩周期)的高電平時(shí),就可以完成復(fù)位操作。RST 引腳的第二功能是VPD,即接入RST 端,為RAM 提供備用電源,以保證存儲(chǔ)在RAM 中的信息不丟失,從而合復(fù)位后能繼續(xù)正常運(yùn)行。ALE/PROG(ADDRESS LATCH ENABLE/PROGRAMMING,30 腳):地址鎖存允許信號(hào)端。當(dāng)8051 上電正常工作后,ALE 引腳不斷向外輸出正脈

15、沖信號(hào),此頻率為振蕩器頻率fOSC 的1/6。CPU 訪問片外存儲(chǔ)器時(shí),ALE 輸出信號(hào)作為鎖存低8 位地址的控制信號(hào)。平時(shí)不訪問片外存儲(chǔ)器時(shí),ALE 端也以振蕩頻率的1/6 固定輸出正脈沖,因而ALE 信號(hào)可以用作對(duì)外輸出時(shí)鐘或定時(shí)信號(hào)。如果想確定8051/8031 芯片的好壞,可用示波器查看ALE端是否有脈沖信號(hào)輸出。如有脈沖信號(hào)輸出,則8051/8031 基本上是好的。ALE 端的負(fù)載驅(qū)動(dòng)能力為8 個(gè)LS 型TTL(低功耗甚高速TTL)負(fù)載。此引腳的第二功能PROG 在對(duì)片內(nèi)帶有4KB EPROM 的8751 編程寫入(固化程序)時(shí),作為編程脈沖輸入端。PSEN(PROGRAM STOR

16、E ENABLE,29 腳):程序存儲(chǔ)允許輸出信號(hào)端。在訪問片外程序存儲(chǔ)器時(shí),此端定時(shí)輸出負(fù)脈沖作為讀片外存儲(chǔ)器的選通信號(hào)。此引肢接EPROM 的OE 端(見后面幾章任何一個(gè)小系統(tǒng)硬件圖)。PSEN 端有效,即允許讀出EPROMROM 中的指令碼。PSEN 端同樣可驅(qū)動(dòng)8 個(gè)LS 型TTL 負(fù)載。要檢查一個(gè)8051/8031 小系統(tǒng)上電后CPU 能否正常到EPROMROM 中讀取指令碼,也可用示波器看PSEN 端有無脈沖輸出。如有則說明基本上工作正常。EA/Vpp(ENABLE ADDRESS/VOLTAGE PULSE OF PROGRAMING,31 腳):外部程序存儲(chǔ)器地址允許輸入端/固化編程電壓輸入端。當(dāng)EA 引腳接高電平時(shí),CPU只訪

溫馨提示

  • 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. 人人文庫網(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)論