二、8051的結(jié)構(gòu)和原理_第1頁
二、8051的結(jié)構(gòu)和原理_第2頁
二、8051的結(jié)構(gòu)和原理_第3頁
二、8051的結(jié)構(gòu)和原理_第4頁
二、8051的結(jié)構(gòu)和原理_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第二章8051的結(jié)構(gòu)和原理 有關MCS 51機的性能特點 在第一章已作了簡單介紹 本節(jié)將進一步詳細介紹它的結(jié)構(gòu) 使大家對它的性能有更深入的了解 MCS 51的典型產(chǎn)品是8051 8031 8751 8051是ROM型單片機 內(nèi)部有4KROM 8031無片內(nèi)ROM 8751片內(nèi)有4KEPROM 89C51片內(nèi)有4KEEPROM 除此以外 它們的內(nèi)部結(jié)構(gòu)及引腳完全相同 本章將以MCS 51系列的8051為典型例子 詳細介紹單片機的結(jié)構(gòu) 性能 存儲器結(jié)構(gòu)及工作原理等內(nèi)容 通過對這些內(nèi)容的掌握 可以起到舉一反三 觸類旁通的作用 2 1MCS 51單片機的結(jié)構(gòu) 以8051為例給出的單片機功能方塊圖如下 MCS 51單片機組成框圖 8051的內(nèi)部結(jié)構(gòu)展開圖 128 8RAM RAM地址寄存器 P3口 P1口 P2口 P0口 鎖存器 鎖存器 鎖存器 鎖存器 中斷控制定時 計數(shù)器串行I O口 SP 寄存器B 累加器A 暫存器1 暫存器2 程序狀態(tài)字PSW 指令寄存器IR 指令譯碼器ID 數(shù)據(jù)指針DPTR 緩沖器 程序計數(shù)器 PC增1 程序地址寄存器AR 定時與控制 4K 8ROM ALU CPU 2 1 1CPU 運算器 CPU 算術 邏輯部件ALU ArithmeticLogicUnit 累加器ACC Accumulator 程序狀態(tài)字寄存器PSW ProgramStatusWord 暫存寄存器 寄存器B 控制器 定時控制與條件轉(zhuǎn)移邏輯電路 程序計數(shù)器PC 指令寄存器IR 指令譯碼器ID 1 8051的時鐘 時鐘可以由兩種方式產(chǎn)生 內(nèi)部方式和外部方式 1 內(nèi)部方式 在XTAL1和XTAL2端外接石英晶體作定時元件 時鐘發(fā)生器對振蕩脈沖二分頻 即若石英頻率fosc 6MHz 則時鐘頻率 3MHz fosc可在1 2MHz 12MHz選擇 小電容可以取30pF左右 2 外部方式 通過XTAL2接入外部時鐘 2 8051的基本時序周期 計算機工作要有嚴格的時序 事實上 計算機更象一個大鐘 什么時候分針動 什么時候秒針動 什么時候時針動 都有嚴格的規(guī)定 一點也不能亂 基本時序單位 3 機器周期 一個機器周期包括6個時鐘周期 4 指令周期 執(zhí)行一條指令的時間 1 振蕩周期 晶體振蕩器的周期 2 狀態(tài)周期 振蕩周期2分頻 也稱時鐘周期 INTEL對每一條指令都給出了它的指令周期數(shù) MCS 51單片機的所有指令中 有一些完成得比較快 只要一個機器周期就行了 有一些完成得比較慢 得要2個機器周期 還有兩條指令要4個機器周期才行 若fosc 6MHz 則8051的 振蕩周期 1 6us 時鐘周期 1 3us 機器周期 2us 指令周期 2 8us 2 1 28051的片內(nèi)存儲器 8051單片機與一般微機的存儲器配置方式很不相同 一般微機通常只有一個邏輯空間 可以隨意安排ROM或RAM 訪問存儲器時 同一地址對應唯一的存儲單元 可以是ROM也可以是RAM 并用同類訪問指令 這種結(jié)構(gòu)稱為普林斯頓結(jié)構(gòu) 馮 諾依曼結(jié)構(gòu) 而MCS 51則不同 8051在物理結(jié)構(gòu)上設計成程序存儲器與數(shù)據(jù)存儲器獨立分開的哈佛結(jié)構(gòu) 片內(nèi)程序存儲器4KB ROM0000H 0FFFH 片內(nèi)數(shù)據(jù)存儲器128B RAM00H 7FH 2 1 38051的I O端口 8051有四個8位并行雙向I O口P0 P1 P2 P3 一個串行口 2 1 48051的特殊功能寄存器SFR 8051內(nèi)部有21個特殊功能寄存器 分別叫SP IE IP PCON 與內(nèi)部RAM統(tǒng)一編址80H FFH 2 2MCS 51單片機的存儲器組織 8051在物理結(jié)構(gòu)上有四個存儲空間 片內(nèi)程序存儲器 片外程序存儲器 片內(nèi)數(shù)據(jù)存儲器 片外數(shù)據(jù)存儲器 new 片外 片外 程序存儲器 數(shù)據(jù)存儲器 8051在邏輯上 即從用戶角度上8051有三個存儲空間 片內(nèi)外統(tǒng)一編址的程序存儲器片內(nèi)外不統(tǒng)一編址的數(shù)據(jù)存儲器特殊功能寄存器 片內(nèi) 一 程序存儲器及地址空間 作用 程序存儲器用于存放編好的程序和表格常數(shù) 8051片內(nèi)有4K字節(jié)ROM 片外用16位地址線最多可擴展64K字節(jié)ROM 兩者是統(tǒng)一編址的 如果EA端保持高電平 8051執(zhí)行片內(nèi)前4KBROM地址 0000H 0FFFH 中的程序 當尋址范圍超過4KB 1000H FFFFH 時 則從片外存儲器取指令 當EA端保持低電平時 8051的所有取指令操作均在片外程序存儲器中進行 這時片外存儲器可以從0000H開始編址 在程序存儲器中 有6個單元具有特殊功能 0003H 外部中斷0入口 000BH 定時器0溢出中斷入口 0013H 外部中斷1入口 001BH 定時器1溢出中斷入口 0023H 串行口中斷入口 使用時 通常在這些入口地址處存放一條絕對跳轉(zhuǎn)指令 使程序跳轉(zhuǎn)到用戶安排的中斷程序起始地址 或者從0000H起始地址跳轉(zhuǎn)到用戶設計的初始程序上 0000H 8051復位后 PC 0000H 即程序從0000H開始執(zhí)行指令 二 數(shù)據(jù)存儲器及地址空間 數(shù)據(jù)存儲器 片外RAM64KB 地址范圍0000H FFFFH 片內(nèi)RAM128B 地址范圍00H 7FH 片內(nèi)數(shù)據(jù)存儲器空間分布圖 通用RAM區(qū) 80B 位地址區(qū) 16B 寄存器區(qū)4組 32B 7FH 寄存器3組寄存器2組寄存器1組寄存器0組 寄存器區(qū)4組 32B 由PSW中的2位RS1 RS0來決定選哪一組為當前工作寄存器 RS1 RS0 00選0組RS1 RS0 01選1組RS1 RS0 10選2組RS1 RS0 11選3組 在位地址區(qū) 每一個BIT都有一個地址 共16 8 128位 00H 30H2FH20H1FH 片內(nèi)數(shù)據(jù)存儲器空間分布圖 通用RAM區(qū) 80B 位地址區(qū) 16B 7FH 寄存器3組寄存器2組寄存器1組寄存器0組 寄存器0組 寄存器區(qū)4組 32B RS1 RS0 00 00H 30H2FH20H1FH 片內(nèi)數(shù)據(jù)存儲器空間分布圖 通用RAM區(qū) 80B 位地址區(qū) 16B 7FH 寄存器3組寄存器2組寄存器1組寄存器0組 寄存器1組 寄存器區(qū)4組 32B RS1 RS0 01 00H 30H2FH20H1FH 片內(nèi)數(shù)據(jù)存儲器空間分布圖 通用RAM區(qū) 80B 位地址區(qū) 16B 7FH 寄存器3組寄存器2組寄存器1組寄存器0組 寄存器2組 寄存器區(qū)4組 32B RS1 RS0 10 00H 30H2FH20H1FH 片內(nèi)數(shù)據(jù)存儲器空間分布圖 通用RAM區(qū) 80B 位地址區(qū) 16B 7FH 寄存器3組寄存器2組寄存器1組寄存器0組 寄存器3組 寄存器區(qū)4組 32B RS1 RS0 11 00H 30H2FH20H1FH 片內(nèi)數(shù)據(jù)存儲器空間分布圖 通用RAM區(qū) 80B 位地址區(qū) 16B 7FH 寄存器3組寄存器2組寄存器1組寄存器0組 位地址區(qū) 00H 30H2FH20H1FH 片內(nèi)數(shù)據(jù)存儲器空間分布圖 通用RAM區(qū) 80B 位地址區(qū) 16B 00H 30H2FH20H1FH 7FH 寄存器3組寄存器2組寄存器1組寄存器0組 通用RAM區(qū) 共80個字節(jié) 作為一般的數(shù)據(jù)緩沖區(qū)并可設置堆棧區(qū) 三 特殊功能寄存器 21個字節(jié) SFR SpecialFunctionalRegister 見書P6表1 3 與ALU相關的 3個 ARegister Accumulator 累加器 累加器 通常用A或ACC表示 可字節(jié)尋址 E0H 也可位尋址 E0H E7H 它是一個寄存器 而不是一個做加法的部件 在運算器做運算時其中一個數(shù)一定是在ACC中 BRegister 暫存寄存器 暫存寄存器 在做乘 除法時放乘數(shù)或除數(shù)及結(jié)果 PSW ProgramStatusWord 程序狀態(tài)字 PSW是8位寄存器 用于作為程序運行狀態(tài)的標志 這是一個很重要的部件 里面存放了CPU工作時的很多狀態(tài) 借此 我們可以了解CPU的當前狀態(tài) 并作出相應的處理 它的各位功能如下 當CPU進行各種邏輯操作或算術運算時 為反映操作或運算結(jié)果的狀態(tài) 把相應的標志位置1或清0 這些標志的狀態(tài) 可由專門的指令來測試 也可通過指令來讀出 它為計算機確定程序的下一步進行方向提供依據(jù) PSW寄存器中各位的名稱及位置如下表所示 下面說明各標志位的作用 CY 進位標志 加減運算時 保存最高位進位 借位狀態(tài) AC 半進位標志 例 78H 97H01111000 10010111100001111 有進位CY 1 沒有半進位AC 0 RS1 RS0 工作寄存器組選擇位 00選擇工作寄存器0組01選擇工作寄存器1組10選擇工作寄存器2組11選擇工作寄存器3組P 奇偶校驗位 它用來表示累加器A內(nèi)容中二進制數(shù)位 1 的個數(shù)的奇偶性 若為奇數(shù) 則P 1 否則為0 例 某運算結(jié)果是78H 01111000 則P 0 F0 用戶標志位 作為軟件標志 由編程人員決定何時使用 OV 溢出標志位 有符號數(shù)運算時 如果發(fā)生溢出 OV置 1 否則清 0 與指針相關的 2個 SP StackPointer 堆棧指針 8位寄存器 用來指定堆棧的棧頂位置 初值為07H 它是加1計數(shù) DPTR DataPointer 分成DPH DPL兩個 數(shù)據(jù)指針可以用它來訪問外部數(shù)據(jù)存儲器中的任一單元 也可以作為通用寄存器來用 由我們自已決定如何使用 P0 P1 P2 P3 四個并行輸入 輸出口的寄存器 它里面的內(nèi)容對應著管腳的輸出 SCON SerialControlRegister 串行口控制器 SBUF SerialDateBuffer 串行數(shù)據(jù)緩沖器 PCON PowerControlRegister 電源控制及波特率選擇 與端口相關的 7個 與定時 計數(shù)器相關的 6個 TMOD Timer CounterModeRegister 定時器工作模式寄存器 TCON Timer CounterControlRegister 定時器控制寄存器 TH0 TL0 TH1 TL1 分別是T0 T1的記數(shù)初值寄存器 IP InterruptPriorityRegister 中斷優(yōu)先控制器 IE InterruptEnableRegister 中斷允許控制器 與中斷相關的 2個 課堂練習及思考題補充題 下列是關于8051單片機存儲空間的描述 分析其對錯 a 特殊功能寄存器容量為21B 沒有位地址 b 外部數(shù)據(jù)存儲器容量可達64kB 字節(jié)地址和位地址范圍均為0000H FFFFHc 程序存儲器容量可達64kB 字節(jié)地址和位地址范圍均為0000H FFFFH 課堂練習及思考題補充題 下列是關于8051單片機存儲空間的描述 分析其對錯 d 內(nèi)部數(shù)據(jù)存儲器容量為128B 字節(jié)地址和位地址范圍均為00H 7FHe 特殊功能寄存器容量為21B 有一部分特殊功能寄存器具有位地址 f 程序存儲器容量可達64kB 地址范圍為0000H FFFFH 2 MCS 51單片機的工作寄存器組如何選擇 若PSW的RS1 RS0位的內(nèi)容是01 那么此時工作寄存器R1的字節(jié)地址是多少 3 MCS 51內(nèi)部RAM的工作寄存器組一共有多少個存儲單元 分為多少組 每組有多少個存儲單元 分別以什么作為寄存器名 4 8051存儲空間的結(jié)構(gòu)與8086 8088有什么不同 它的物理結(jié)構(gòu)是怎樣的 5 MCS 51單片機的內(nèi)部數(shù)據(jù)存儲器容量是多少 它有什么特點 2 3MCS 51單片機的并行端口結(jié)構(gòu)與操作 8051單片機有4個I O端口 每個端口都是8位準雙向口 共占32根引腳 每個端口都包括一個鎖存器 即專用寄存器P0 P3 一個輸出驅(qū)動器和輸入緩沖器 通常把4個端口籠統(tǒng)地表示為P0 P3 在無片外擴展存儲器的系統(tǒng)中 這4個端口的每一位都可以作為準雙向通用I O端口使用 在具有片外擴展存儲器的系統(tǒng)中 P2口作為高8位地址線 P0口分時作為低8位地址線和雙向數(shù)據(jù)總線 下面簡單介紹一下輸入 輸出端口結(jié)構(gòu) 2 3 1P0口和P2口的結(jié)構(gòu) 下圖為P0口的某位P0 n n 0 7 結(jié)構(gòu)圖 它由一個輸出鎖存器 兩個三態(tài)輸入緩沖器和輸出驅(qū)動電路及控制電路組成 從圖中可以看出 P0口既可以作為I O用 也可以作為地址 數(shù)據(jù)線用 一 P0口的結(jié)構(gòu) 1 P0口作為普通I O口 輸出時若驅(qū)動NMOS或其它拉流負載時 需要外接上拉電阻 P0的輸出級可驅(qū)動8個LSTTL負載 輸入時 分讀引腳或讀鎖存器讀端口時實際上并不從外部讀入數(shù)據(jù) 而只是把端口鎖存器中的內(nèi)容讀入內(nèi)部總線 經(jīng)過某種運算和變換后 再寫回到端口鎖存器 讀引腳時才真正地把外部數(shù)據(jù)讀入到內(nèi)部總線 準雙向口 在端口進行輸入操作前 應先向端口鎖存器寫 1 使場效應管截止 引腳處于懸浮狀態(tài) 變?yōu)楦咦杩馆斎?這就是所謂的準雙向口 2 P0作為地址 數(shù)據(jù)總線 在系統(tǒng)擴展時 P0端口作為地址 數(shù)據(jù)總線使用時 分為 P0引腳輸出地址 輸入數(shù)據(jù) P0引腳輸出地址 數(shù)據(jù)信息 二 P2的內(nèi)部結(jié)構(gòu) 1 P2口作為普通I O口 CPU發(fā)出控制電平 0 使多路開關MUX倒向鎖存器輸出Q端 構(gòu)成一個準雙向口 其功能與P1相同 2 P2口作為地址總線在系統(tǒng)擴展片外程序存儲器 數(shù)據(jù)存儲器且容量超過256B時 CPU發(fā)出控制電平 1 使多路開關MUX倒內(nèi)部地址線 此時 P2輸出高8位地址 2 3 2P1口 P3口的內(nèi)部結(jié)構(gòu) P1口的一位的結(jié)構(gòu)它由一個輸出鎖存器 兩個三態(tài)輸入緩沖器和輸出驅(qū)動電路組成 準雙向口 P3的內(nèi)部結(jié)構(gòu) DQCLKQ P3 n 讀鎖存器 內(nèi)部總線 寫鎖存器 讀引腳 VCC R T P3口引腳 第二輸入功能 第二輸出功能 一 作為通用I O口與P1口類似 準雙向口 W 1 W P3的內(nèi)部結(jié)構(gòu) DQCLKQ P3 n 讀鎖存器 內(nèi)部總線 寫鎖存器 讀引腳 VCC R T P3口引腳 第二輸入功能 第二輸出功能 二 P3第二功能 Q 1 此時引腳部分輸入 Q 1 W 1 部分輸出 Q 1 W輸出 W 課堂復習 補充題 1 MCS 51單片機的哪些端口 有兩種功能 分別是什么功能

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論