MCS-51單片機應(yīng)用教程1.4.ppt_第1頁
MCS-51單片機應(yīng)用教程1.4.ppt_第2頁
MCS-51單片機應(yīng)用教程1.4.ppt_第3頁
MCS-51單片機應(yīng)用教程1.4.ppt_第4頁
MCS-51單片機應(yīng)用教程1.4.ppt_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1 4單片機的存儲器配置 80C51存儲器配置程序存儲器內(nèi)部數(shù)據(jù)存儲器外部數(shù)據(jù)存儲器 主要內(nèi)容 數(shù)據(jù)存儲器 80C51內(nèi)部集成有一定容量的程序存儲器和數(shù)據(jù)存儲器 如果不能滿足設(shè)計需要ROM和RAM都可以進行外部擴展 其存儲器的配置情況可以表示為 外部ROM 物理上分為4個空間 80C51單片機的存儲器配置情況 邏輯上分為3個空間 片內(nèi)ROM 片外ROM片內(nèi)RAM 片外RAM 片內(nèi) 外統(tǒng)一編址的程序存儲器內(nèi)部數(shù)據(jù)數(shù)據(jù)存儲器外部數(shù)據(jù)存儲器 64KB 256B 64KB 下面就分別介紹80C51單片機程序存儲器和數(shù)據(jù)存儲器的配置及特點 一 程序存儲器程序存儲器用于存放編好的程序和表格常數(shù) 尋址范圍 0000H FFFFH容量64KB 即地址長度 16位 先尋址內(nèi)部ROM 只尋址外部ROM 當(dāng)PC值超過片內(nèi)ROM容量時會自動轉(zhuǎn)向外部存儲器空間 對于有內(nèi)部ROM的單片機 如8051 在正常運行時 此引腳接高電平 該引腳接低電平時 單片機工作在調(diào)試狀態(tài) 對于內(nèi)部沒有ROM的單片機 如8031 此引腳始終接低電平 2 一些關(guān)鍵的存儲單元 1 0000H單元 系統(tǒng)的啟動地址系統(tǒng)復(fù)位后 程序計數(shù)器PC的值為0000H 所以系統(tǒng)必須從0000H單元開始執(zhí)行程序 0000H是系統(tǒng)的啟動地址 一般在此單元放一條跳轉(zhuǎn)指令 用戶的主程序從跳轉(zhuǎn)后的地址開始存放 0003H 外部中斷0入口000BH T0溢出中斷入口0013H 外中斷1入口001BH T1溢出中斷入口0023H 串口中斷入口 2 5個特殊的單元 中斷服務(wù)程序的入口地址 每兩個相鄰入口地址間僅有8個存儲單元 這是不可能存放中斷服務(wù)程序的 所以在入口地址處通常都存放一條跳轉(zhuǎn)指令 跳轉(zhuǎn)后的地址即為中斷服務(wù)程序的實際入口地址 二 內(nèi)部數(shù)據(jù)存儲器物理上分為兩個不同的存儲空間 00H 7FH 低128B80H FFH 高128B 又叫特殊功能寄存器 SFR 區(qū) 1 數(shù)據(jù)存儲區(qū) 低128單元 數(shù)據(jù)存儲區(qū)又分為三個區(qū)域 通用寄存器區(qū) 位尋址區(qū)和用戶RAM區(qū) 1 通用寄存器區(qū)00H 1FH共32個單元是4個通用工作寄存器區(qū) 每個區(qū)有8個8位的寄存器 R0 R7 可以用來存放操作數(shù)及中間結(jié)果等 內(nèi)部RAM低128單元 08H 10H 18H 思考 80C51的內(nèi)部RAM低128B中共有多少個工作寄存器 答案 共有32個 注意 在任一時刻 CPU只能選擇使用其中的一組工作寄存器 即8個 CPU當(dāng)前使用的寄存器區(qū)叫做當(dāng)前工作寄存器區(qū) 編程時可以在當(dāng)前工作寄存器R0 R7中選擇合適的寄存器使用 其中選擇這4組寄存器區(qū)的哪一組是由用戶在程序中通過設(shè)定專門的寄存器事先寫明的 2 位尋址區(qū)20H 2FH的16個單元可以進行位尋址 也可以作為一般的RAM單元進行字節(jié)尋址 各尋址位都有各自的位地址 范圍為 00H 7FH 該區(qū)域共有128位可尋址位 位尋址區(qū) 80C51具有位處理機功能 可以進行位尋址的存儲空間包括位尋址區(qū)和SFR的11個專用寄存器 3 用戶RAM區(qū)共80個單元30H 7FH 這部分的使用不作限制 堆棧一般開設(shè)在此區(qū) 2 特殊功能寄存器區(qū) 高128單元 特殊功能寄存器又稱為專用寄存器 單元地址為80H FFH 51子系列SFR的地址分配及位地址見下表 表中給出了特殊功能寄存器的符號 名稱和地址 注意 表中共有4個雙字節(jié)寄存器 PC為雙字節(jié)寄存器 但是不在80H FFH范圍內(nèi) 表中 凡地址能被8整除的寄存器都是可位尋址的寄存器 通過觀察上表 可以得到如下結(jié)論 80C51內(nèi)部共有21 22 個SFR 這21個特殊功能寄存器在內(nèi)部RAM高128單元中的分布是不連續(xù)的 雖然其中還有空閑的地址 但用戶不能使用 程序存儲器PC是獨立于SFR之外唯一一個不可尋址的專用寄存器 它不占用RAM單元 物理上獨立 編程時可直接利用 在21個SFR中有11個寄存器可以進行字節(jié)尋址的同時還可以進行位尋址 這11個可以進行位尋址的寄存器原則上有88位可尋址位 但由于有些寄存器中的個別位沒有意義 所以共有82位可尋址位 共210位 各寄存器的名稱及主要功能 1 與算術(shù)運算有關(guān)的寄存器 A 累加器 為8位寄存器 最為常用 可以存放操作數(shù) 中間結(jié)果 運算結(jié)果等 如 MOVA 30H B B寄存器 乘 除法運算用 為8位寄存器 主要用于乘 除運算 也可作一般寄存器使用 PSW 程序狀態(tài)字寄存器 ProgramStatusWord 為8位寄存器 存放程序運行的狀態(tài)信息 其中有些位由硬件置位 有些由軟件設(shè)定 PSW的位狀態(tài)可由專門的指令測試也可用指令讀出來 各位的含義如圖所示 P RS0 RS1 OV F0 AC CY PSW寄存器 D7HD6HD5HD4HD3HD2HD1HD0H 位地址 位名稱 各位的含義 CY 進位 借位標(biāo)志功能 算術(shù)運算時作為進位 借位標(biāo)志位位操作中常作累加位由硬件置 復(fù)位 AC 輔助進 借位標(biāo)志功能 執(zhí)行加 減運算時表示低四位向高四位的進位 借位情況 由硬件置 復(fù)位 F0 用戶定義標(biāo)志位功能 用戶可以定義狀態(tài)標(biāo)記 由軟件置 復(fù)位 OV 溢出標(biāo)志位在帶符號加減運算中 OV 1表示加減結(jié)果超出A表示的有符號數(shù)的范圍 即超過 128 127 定義10000000 128 在乘法運算中 OV 1表示乘積超過了255 即結(jié)果高位放在B中 低位放在A中 OV 0說明乘積只在A中 在除法運算中 OV 1表示除數(shù)為零 不能進行運算 由硬件置 復(fù)位 P 奇偶標(biāo)志位功能 表示累加器A中1的個數(shù) P 1 A中1的個數(shù)為奇數(shù) P 0 A中1的個數(shù)為偶數(shù) 由硬件置 復(fù)位 RS1 RS0 當(dāng)前工作寄存器區(qū)選擇控制位功能 從內(nèi)部RAM低128B中選擇一組寄存器區(qū)作為當(dāng)前工作寄存器 00 0區(qū)R0 R7 地址00H 07H 01 1區(qū)R0 R7 地址08H 0FH 10 2區(qū)R0 R7 地址10H 17H 11 3區(qū)R0 R7 地址18H 1FH 由軟件置 復(fù)位 注意 當(dāng)前工作寄存器區(qū)一旦確定 R0 R7各個寄存器的地址也就確定了 例如 設(shè)定RS1 RS0分別為01 則此時指令MOVA R3中A中最終存放的是哪個單元的數(shù)據(jù) 答案 0BH PSW應(yīng)用舉例 例 有符號數(shù)8CH和95H執(zhí)行加法運算結(jié)果放入A中 PSW寄存器的內(nèi)容為多少 用戶標(biāo)志位設(shè)為0 擇第二組工作寄存器為當(dāng)前工作寄存器 因為10001100 1001010100100001 CY 1AC 1F0 0RS1 RS0 10OV 1保留位設(shè)為0P 0 PSW 11010100B D4H 2 指針型寄存器 PC 程序計數(shù)器是一個16位的計數(shù)器 功能 用來存放即將執(zhí)行的下一條指令的地址 程序存儲器地址 在物理上獨立 沒有訪問地址 所以無法對它進行讀 寫操作 但是可以通過轉(zhuǎn)移 調(diào)用返回等指令改變其內(nèi)容 程序執(zhí)行時PC可以自動加1 系統(tǒng)復(fù)位時PC 0000H 使CPU從啟動地址重新取指令執(zhí)行 舉例 0020H MOVA 0AH 該指令執(zhí)行完后PC的值為 MOVR1 A 答案 0022H 指令本身占兩個字節(jié) SP 堆棧指針寄存器一個8位的專用寄存器 可軟件設(shè)置初值 功能 指明堆棧頂部在內(nèi)部RAM中的位置 地址 系統(tǒng)復(fù)位時SP 07H 但是數(shù)據(jù)要從08H單元開始存放 因為堆棧的底部是不能存放數(shù)據(jù)的 注意 原則上堆??梢愿鶕?jù)用戶的需要在內(nèi)部RAM中開設(shè) 但內(nèi)部RAM08H 1FH屬于工作寄存器區(qū) 所以一般把SP的值設(shè)得大一些在30H 7FH之間 SP的值可以隨著壓棧和出棧操作自動增量或減量 始終指向堆棧的頂部 DPTR 數(shù)據(jù)指針寄存器16位專用寄存器 由兩個8位的寄存器組成DPTR可用作一個16位寄存器用 也可以作兩個8位的寄存器使用 功能 DPTR通常用來存放16位地址 可以借助它訪問外部RAM MOVX指令 和外部ROM MOVC指令 3 并行輸入 輸出端口的鎖存器80C51的四個并行口都有各自的鎖存器并分別用P0 P1 P2 P3表示 都是8位的鎖存器 在實際敘述時一定要明白P0 P1 P2 P3表示的是端口還是端口的鎖存器 4 串行數(shù)據(jù)緩沖器用于存放串行口將要發(fā)送和接收的數(shù)據(jù) 包含兩個物理上獨立的寄存器 發(fā)送緩沖器接收緩沖器 5 定時 計數(shù)器80C51有兩個16位的定時器 計數(shù)器T0和T1 T0和T1分別由兩個8位的寄存器構(gòu)成 可用于設(shè)定計數(shù)初值 注意 T0和T1不能當(dāng)作16位寄存器使用 只能當(dāng)成兩個8位寄存器分別訪問 6 其它控制寄存器除了以上介紹的這些寄存器還有一些專用寄存器 如IP IE TMOD TCON SCON PCON等 后續(xù)章節(jié)介紹 三 外部數(shù)據(jù)存儲器80C51內(nèi)部存儲器不夠用時 需要外接RAM和I O 此時需要注意幾點 單片機可以訪問的外部RAM地址空間為0 64KB 最多由16根地址線尋址 外部RAM與外接I

溫馨提示

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

評論

0/150

提交評論