單片機硬件結構介紹_第1頁
單片機硬件結構介紹_第2頁
單片機硬件結構介紹_第3頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第1章單片機硬件系統本章概要及學習目標:本章從單片機的概念入手,以AT89C51單片機芯片為例,介紹 MCS-51型單片機芯片的外部引腳功能、內部硬件結構及工作特性,并通過單片機應用系統開發(fā)過程實驗說明使 讀者對單片機應用系統及其開發(fā)有一個感性認識,對單片機的基本工作原理和工作過程有 一個大致的了解,同時也指出了學習單片機的兩個基本方面:硬件結構和軟件編程。通過對本章的學習,讀者應掌握和了解以下知識:1 計算機、微型機、單片機及單片機應用系統的概念2 .微型機的CPU、存儲器和輸入/輸出的硬件構成及功能3. 89C51外部引腳及功能,內部結構及工作原理4. 89C51的RAM分布、ROM結構及

2、地址形成5. 89C51 的 SFR6. 89C51的并行口及時鐘與復位7單片機應用系統的開發(fā)過程及工作過程1.1計算機、微型機、單片機及單片機應用系統概述微型計算機的出現給人類生活帶來了根本性的變化,使現代科學研究產生了質的飛躍,單片機技術的出現則給現代工業(yè)測控領域帶來了一次新的技術革命。它在工業(yè)控制、數控 采集、智能化儀表、辦公自動化等諸多領域得到了極為廣泛的應用,毫不夸張地說,單片 機技術的開發(fā)和應用水平已逐步成為一個國家工業(yè)發(fā)展的標志之一。單片微型計算機(Single Chip Micro Computer)簡稱單片機,它是一種把組成微型計 算機的各功能部件:中央處理單元 CPU、一定

3、容量的隨機存儲器 RAM和只讀存儲器 ROM、 I/O接口電路、定時器/計數器以及串行口等制作在一塊芯片中的計算機。由于單片機的硬 件結構與指令系統的功能都是按工業(yè)控制要求而設計的,常用在工業(yè)檢測、控制裝置中, 因而也稱為微控制器(Micro-Controller )。單片機具有結構簡單、控制功能強、可靠性高、 體積小、價格低等特點,在家用電器、智能化儀器、工業(yè)控制以及火箭導航尖端技術領域 都發(fā)揮著十分重要的作用。1.1.1單片機及單片機應用系統1 微型計算機及微型計算機系統計算機的硬件系統由運算器、存儲器、控制器、輸入和輸出設備五大部分組成。把運 算器、控制器及一些寄存器集成在一塊硅片上而成

4、為獨立的器件,該器件就稱為微處理器(CPU)。微處理器芯片、存儲器芯片、輸入/輸出接口電路芯片以及外部設備,在它們之間用總線連接起來就構成了微型計算機,如圖1-1所示。圖1-1微型計算機組成框圖地址忠.址AH數據總線DU,0合°控制總線C比可見,微型計算機結構的突出特征是具有一個包含運算器和控制器的集成芯片微處理 器( CPU )。微型機硬件系統各部分的組成及功能簡述如下:1) 微處理器微處理器是微型計算機的核心,其結構示意如圖1-2所示。圖1-2微處理器結構示意圖微處理器包括運算器,控制器和寄存器組3個基本部分。(1 )運算器:運算器是計算機的運算部件,用于實現算術和邏輯運算。計算

5、機的數據 運算和處理都在這里進行。通常運算器由算術/邏輯運算單元ALU、累加器A、暫存寄存器、標志寄存器F等組成。累加器A是一個特殊的寄存器。通常其作用有兩個:一是運算時把一個操作數經暫存 器送至ALU ;二是在運算后保存其運算結果。暫存寄存器用來暫時存儲數據總線或其他寄存器送來的操作數,是ALU的數據輸入源。標志寄存器F用來保存ALU運算結果的特征(如進位標志、溢出標志等)和處理器的 狀態(tài),這些特征和狀態(tài)可以作為控制程序轉移的條件。算術/邏輯運算單元 ALU由加法器和相應的控制邏輯電路組成。它能分別對來自兩個 暫存器數據源的兩個操作數進行加、減、與、或等運算,還能進行數據的移位。ALU進行何

6、種運算由控制器發(fā)出的命令確定,運算后的結果經數據總線送至累加器A,同時影響標志寄存器F的狀態(tài)。(2)控制器:計算機的控制器由指令寄存器IR、指令譯碼器ID、定時及控制邏輯電路和程序計數器 PC等組成,它控制使計算機各部分自動、協調地工作??刂破靼凑罩付?的順序從程序存儲器中取出指令進行譯碼并根據譯碼結果發(fā)出相應的控制信號,從而完成 該指令所規(guī)定的任務。指令寄存器IR用來保存當前正在執(zhí)行的一條指令。要執(zhí)行一條指令,首先要把它從程序存儲器中取到指令寄存器中。指令的內容包括操作碼和操作數(或操作數的地址碼)兩 部分。操作碼送到指令譯碼器ID,經譯碼后確定所要執(zhí)行的操作;操作數的地址碼也要送到操作數地

7、址形成電路以便形成真正的操作數地址。定時及控制邏輯電路是 CPU的核心部件。它的任務有控制取指令、執(zhí)行指令、存取操 作數或運算結果等操作,向其他部件發(fā)出控制信號,協調各部件的工作。程序計數器PC也叫指令地址計數器。計算機的程序是有序地存儲在程序存儲器中 的各種指令的集合。計算機運行時,按順序取出程序存儲器中的指令并逐一執(zhí)行。程序 計數器PC指出當前要執(zhí)行的指令的地址。每當指令取出后,PC的內容自動加1 (除轉移指令外),從而指向按序排列的下一條指令的地址。若遇到轉移指令(JMP)、子程序調用指令(CALL )或返回指令(RET )時,這些指令會把要執(zhí)行的下一條指令的地址 直接置入PC中,PC的

8、內容才會突變。程序計數器PC的位數決定了微處理器所尋址的存儲器空間。(3)寄存器組:寄存器組作為 CPU內部的暫存單元至關重要,它是 CPU處理數據所 必需的一個存取空間,其多少直接影響著微機系統處理數據的能力和速度。2)存儲器存儲器是計算機存放程序或數據的器件,它由若干存儲單元組成。 存儲器有兩個指標:存儲容量是指存儲器所能存放的最大字節(jié)數,每個存儲單元按順序都有一個惟一的編號,即存儲地址;存取時間是指存儲器存取一次數據所需要的時間,在某種程度上,它決定 著計算機系統的運行速度。存儲器又分內存儲器和外存儲器。存放程序的存儲器采用只讀存儲器(ROM );存放輸入/輸出數據或中間結果的存儲器采用

9、隨機存儲器(RAM )o在實驗系統中使用的EEPROM2864、SRAM6264都是存儲器芯片。3)輸入設備輸入設備用于把程序和數據輸入到計算機中。常用的輸入設備有鍵盤、鼠標、光電輸 入機等。4)輸出設備輸出設備用于把計算機數據計算或數據處理的結果,以用戶需要的形式顯示或打印出 來。常用的輸出設備有打印機、顯示器、繪圖儀等。計算機用于控制時,輸入輸出信息還包括現場的各種信息和控制命令。通常把外存儲器、輸入設備和輸出設備合在一起稱為計算機的外部設備,簡稱“外設”。微型計算機加上它的軟件系統便構成了微型計算機系統,如圖1-3所示。軟件系統是微型機系統所使用的各種程序的總稱。人們通過它對整機進行控制

10、并與微型機系統進行信 息交換,使微機按照人的意圖完成預定的任務。軟件系統和硬件系統共同構成完整的微型機系統,兩者相輔相成,缺一不可。2 單片微型計算機前面已經提到:單片微型計算機簡稱單片機,它是指把組成微型計算機的各功能部件 集成在一個芯片上構成一個完整的微型機,從而實現微型計算機的基本功能。單片機的內 部結構示意圖如圖1-4所示。單片機實質上是一個芯片,在實際應用中通常很難直接把單片機和受控對象進行電氣 連接,而是必須外加各種擴展接口電路以至外部設備,連同受控對象和單片機程序軟件構 成一個單片機應用系統。微型計算機系統輸 A 按 口 電L 1 *1運算器L控制3S1 L 一-8-1-疔儲器1

11、輸出設備tN圖1-4單片機內部結構示意圖行CPUWI/O 按月L1陽行閃按口圖1-3微型計算機系統結構示意圖3 單片機應用系統及組成單片機應用系統是以單片機為核心,配以輸入、輸出、顯示、測量和控制等外圍電路圖1-5單片機應用系統示意圖和軟件能實現一種或多種功能的實用系統。本書的實 訓系統即一個單片機的應用系統。該應用系統除了有 單片機芯片,還有許多其他外圍電路,所以說單片機 應用系統是由硬件和軟件組成的。硬件是單片機應用 系統的基礎,軟件則是在硬件的基礎上對其資源進行 合理調配和使用,從而完成應用系統所要求的任務。 硬件和軟件二者相互依賴,缺一不可。單片機應用系 統的組成示意圖如圖1-5所示。

12、因此,單片機應用系統的設計人員必須從硬件和 軟件兩個角度來深入了解單片機,并能將二者有機地結合起來,才能設計制作出具有特定 功能的單片機應用系統或整機產品。自1974年美國Fairchild公司研制出第一臺單片機 F8以來,單片機經歷了由 4位機到 8位機再到16位、32位機的發(fā)展過程。 單片機制造商很多,主要有美國的In tel 'Motorola、Zilog等公司。目前,單片機正朝著高性能、多品種方向發(fā)展。近年來,32位單片機已進入了實用階段,但是由于8位單片機在性能價格比上占有優(yōu)勢,并且8位增強型單片機在速度和功能上可向現在的16位單片機挑戰(zhàn),因此在未來相當長的時期內,16位機可

13、能被淘汰,而8位單片機仍是單片機的主流機型。1.1.2 MCS-51系列單片機In tel公司于1976年推出了 MCS-48系列單片機,于1980年推出了 MCS-51系列單片機,于1983年推出了 MCS-96系列單片機。1. MCS-51系列單片機MCS-51系列單片機是一種高性能的8位單片機,它是在MCS-48系列單片機的基礎上推出的第二代單片機。其典型產品為8051,封裝為40引腳。芯片內部集成有:一個8位的微處理器(CPU)4KB的程序存儲器128B的數據存儲器64KB的片外程序存儲器尋址能力64KB的片外數據存儲器尋址能力32根輸入/輸出線1個全雙工異步串行口2個16位定時/計數

14、器5個中斷源,2個優(yōu)先級MCS-51系列單片機按片內有無程序存儲器及程序存儲器的形式分為三種基本產品:8051、8751 和 8031。8051單片機片內含有 4KB的ROM,ROM中的程序是由單片機芯片生產廠家固化的, 適合于大批量的產品;8751單片機片內含有 4KB的EPROM,單片機應用開發(fā)人員可以把 編好的程序用開發(fā)機或編程器寫入其中,需要修改時,可以先用紫外線擦除器擦除,然后 再寫入新的程序;8031片內沒有程序存儲器,當在單片機芯片外擴展EPROM后,就相當于一片8751,此種應用方式方便靈活。這三種芯片只是在程序存儲器的形式上不同,在結 構和功能上都一樣。表1-1為MCS-51

15、系列單片機常用產品特性一覽表。表1-1 MCS-51系列單片機常用產品特性一覽表型號片內存儲器(B)I/O 口線疋時/計數器片外存儲器(B)P程序存儲器數據存儲器程序存儲器數據存儲器80514KROM128322個16位64K64K87514KEPROM128322個16位64K64K8031無128322個16位64K64K80C514KROM128322個16位64K64K87C514KEPROM128322個16位64K64K80C31無128322個16位64K64K續(xù)表型號片內存儲器(B)I/O 口線疋時/計數器片外存儲器(B)程序存儲器數據存儲器程序存儲器數據存儲器80524KRO

16、M256323個16位64K64K87524KEPROM256323個16位64K64K8032無256323個16位64K64K2. 其他51系列單片機(1) AT89系列單片機AT89系列單片機是美國 ATMEL公司的8位Flash單片機產品,它以MCS-51為內核, 與MCS-51系列的單片機軟硬件兼容。該系列中有20引腳封裝的產品,體積的減小使其應用更加靈活。時鐘頻率的提高可使運算速度加快。在片內含有Flash存儲器,Flash存儲器是一種可以電擦除和電寫入的閃速存儲器(簡記為FPEROM ),這使開發(fā)調試更為方便。表1-2 AT89系列單片機常用產品特性一覽表型號片內存儲器I/O 口

17、線定時/計數器模擬比較器中斷源串行口程序存儲器數據存儲器89C10511KBFEPROM64B151個16位1個3個無89C20512KBFEPROM128B152個16位1個5個2級UART89C514KBFEPROM128B322個16位無5個2級UART89C528KBFEPROM256B323個16位無6個2級UART(2)其他MCS-51系列兼容單片機為了進一步增強 MCS-51系列單片機的功能,一些單片機生產廠商還對MCS-51系列單片機的硬件進行了擴充。 如PHILIPS的8XC552系列,在80C51的基礎上增加了一個 16 位的定時/計數器和一個8路輸入的10位A/D轉換器,

18、并配有串行總線接口; 80C51XA使 單片機位數增至16位;In tel公司的80C51GA/GB也增加了 A/D轉換功能。1.2 MCS-51單片機結構和原理1.2.1 MCS-51單片機的引腳及內部結構對于一個單片機應用系統的開發(fā)設計者,熟悉并掌握單片機的硬件結構是十分重要的,這里從實際需要出發(fā),只介紹與程序設計和系統擴展應用有關的內容。MCS-51系列單片機的典型芯片為 8031、8051、 方便,它又和MCS-51系列的軟硬件兼容,因此下文 就以AT89C51芯片為例,介紹 MCS-51系列單片機 的外部引腳及內部結構。1. 89C51的外部引腳89C51是標準的40引腳雙列直插式集

19、成電路芯 片,如圖1-6所示。按其功能可分為電源、時鐘、控制和I/O接口四8751。由于AT89C51的開發(fā)調試使用RSI ¥卩1)M.l'TXDP3.2 l luW.3 1NTIP34/TD門十里衛(wèi)IU 7X I '> IAt 1匚匚匚匚二匚二匸匚匚匚匚匚ULJLJLJLJ匚二 2 *J J 5 to 7- 8 9 o 2 J 4 5 6 7 AT oIL .L IL .L IL 1 丁 D -1 A VPP ALE/PROG HStSl P2.7 F2C F2.5 F2.4P2 i lJ2 2P2 II叮:i4|)曲朝知孔巧切知翦朗27卻苗24232221圖

20、1-689C51弓I腳大部分:1)電源引腳VCC :芯片主電源,外接 +5V ; GND :電源地線。2)時鐘引腳XTAL1與XTAL2為內部振蕩器的兩條引出線。3)控制引腳(1)ALE/ PROG :地址鎖存控制信號/編程脈沖輸入端在擴展系統時,ALE用于控制把P0 口輸出的低8位地址鎖存起來,以實現低8位地址和數據的隔離,P0 口作為數據地址復用口線。當訪問單片機外部程序或數據存儲器或外 接I/O 口時,ALE輸出脈沖的下降沿用于低 8位地址的鎖存信號;即使不訪問單片機外部 程序或收據存儲器或外接 I/O 口,ALE端仍以晶振頻率的 1/6輸出正脈沖信號,因此可作 為外部時鐘或外部定時信號

21、使用。但應注意,此時不能訪問單片機外部程序、數據存儲器 或外設I/O接口。ALE端可以驅動8個TTL負載。對于EEPROM 型單片機(89C51 )或EPROM型單片機(8751 ),在EEPROM 或EPROM 編程期間,該引腳用來輸入一個編程脈沖(PROG)。(2)PSEN :片外程序存儲器讀選通有效信號在CPU向片外程序存儲器讀取指令和常數時,每個機器周期 PSEN兩次低電平有效。但在此期間,每當訪問外部數據存儲器或I/O接口時,該PSEN兩次低電平有效信號將不出現。PSEN端可以驅動8個TTL負載。(3)EA/VPP :訪問程序存儲器控制信號 /編程電源輸入端當該引腳EA信號為低電平時

22、,只訪問片外程序存儲器,不管片內是否有程序存儲器;當該引腳為高電平時,單片機訪問片內的程序存儲器。但對AT89C51來說,當PC (程序計數器)值超出4K地址時,自動轉到片外程序存儲器 1000H開始順序讀取指令。對于EEPROM 型單片機(89C51 )或EPROM型單片機(8751 ),在EEPROM 或EPROM 編程期間,該引腳用于施加一個 +12V或+21V的電源。(4)RST/VPD :復位/掉電保護信號輸入端當振蕩器運行時,在該引腳加上一個2個機器周期以上的高電平信號,就能使單片機回到初始狀態(tài),即進行復位。掉電期間,該引腳可接上備用電源 (VPD )以保持內部RAM的數據。4)I

23、/O引腳P0 口( P0.0P0.7) : 8位雙向并行I/O接口。擴展片外存儲器或I/O 口時,作為低8位地址總線和8位數據總線的分時復用接口,它為雙向三態(tài)。P0 口可帶8個TTL負載電流。P1 口( P1.0P1.7): 8位準雙向并行I/O接口。P1 口每一位都可以獨立設置成輸入輸 出位。P1 口可以驅動4個TTL電路。P2 口( P2.0P2.7) : 8位準雙向并行I/O接口。擴展外部數據、程序存儲器時,作為 高8位地址輸出端口。P2 口可以驅動 4個TTL電路。P3 口( P3.0P3.7): 8位準雙向并行I/O接口。除了與 P1 口有一樣的I/O功能外,每 一個引腳還兼有第二功

24、能。如表1-3所示。表1-3 P3 口各引腳對應的第二功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXDTXDINT0INT1T0T1WRRDP3 口可以驅動 4個TTL電路。P3 口的第二功能信號都是單片機的重要控制信號,因此,在實際使用時,先按需要選 用第二功能信號,剩下的才以第一功能的身份作為數據位的I/O使用。P1、P2、P3 口線片內均有固定的上拉電阻,故稱為準雙向并行I/O接口; P0 口片內無固定的上拉電阻,由兩個 MOS管串接,既可開路輸出,又可處于高阻的“懸空”狀態(tài), 故稱為雙向三態(tài)并行I/O接口。讀者在學完1.3節(jié)后會有較深刻的理解。以上是把MSC-

25、51單片機芯片全部40個信號引腳的定義及功能作一簡單說明。對于各種型號的芯片,其引腳的第一功能信號是相同的,所不同的是引腳的第二功能信號,讀者 可以對照實訓電路找到相應的引腳,在電路中查看每個引腳的連接使用。2. 89C51的內部結構89C51單片機的內部結構圖如圖1-7所示。由圖1-7可知,89C51單片機由運算器和控制器組成的微處理器、片內存儲器 RAM/ROM、P0P3組成的I/O端口以及各種存儲器組成的特殊功能寄存器SFR和串行接口、定時/計數器、中斷系統、振蕩器等構成。下面介紹其各構成部分的基本含義。1)89C51的微處理器(CPU)微處理器是單片機的核心部分,完成運算和控制功能。8

26、9C51的CPU能處理8位二進數或代碼,它由運算器(包括算術/邏輯運算單元 ALU、累加器A、寄存器B、暫存寄存器、 程序狀態(tài)字寄存器 PSW)、控制器(包括指令寄存器 IR、指令譯碼器ID、定時及控制邏輯 電路)、程序計數器PC等組成。2)89C51的內部數據存儲器(內部 RAM )89C51芯片中共有256個RAM單元,但其中高128單元被專用寄存器 SFR占用,能 作為寄存器供用戶使用的只是低128單元,地址范圍是 00H7FH,用于存放可讀寫的數據。因此通常所說的內部數據存儲器是指低128單元,簡稱內部 RAM。3)89C51的內部程序存儲器(內部 ROM )89C51芯片中共有 4K

27、BFPEROM,地址范圍是 0000H0FFFH,用于存放程序、原始 數據或表格,因此稱之為程序存儲器,簡稱內部ROM。卩】 口圖1-7單片機89C51內部結構框圖P >聘口*?2口說存髀4)定時/計數器89C51芯片中共有兩個16位的定時/計數器以實現定時或計數功能,并以其定時或計 數結果實現控制功能。5)并行I/O 口89C51芯片中共有4個8位的I/O 口(PO、P1、P2、P3)以實現數據的并行輸入/輸出。 本書在實訓1中已經使用了 P1 口,通過P1 口連接8個發(fā)光二極管。6)串行口89C51單片機有一個全雙工的串行口以實現單片機和其他設備之間的串行數據傳送。 該串行口功能較強

28、,既可作為全雙工異步通信收發(fā)器使用,也可作為同步移位器使用。7)中斷控制系統MCS-51系列單片機的中斷功能較強以滿足控制應用的需要。89C51共有5個中斷源,即外中斷兩個、定時/計數中斷兩個、串行中斷一個。全部中斷分為高級和低級兩個優(yōu) 先級別。8)時鐘電路89C51芯片的內部有時鐘電路,但石英晶體和微調電容需外接。時鐘電路位單片機產 生時鐘脈沖序列。系統允許的晶振頻率一般為6MHz12MHz。從上述內容可以看出,MCS-51雖然是一個單片機芯片,但作為計算機應該具有的基 本部件它都包括,因此,實際上它已屬于一個簡單的微型計算機系統了。1.2.2 MCS-51單片機的內部數據存儲器存儲器功能是

29、存儲信息一一程序和數據。存儲器按其存取方式可以分成兩大類,一類 是隨機存取存儲器(RAM );另一類是只讀存儲器(ROM )。對于RAM , CPU在運行過程中能隨時進行寫入和讀出,但在關閉電源時,其存儲信 息將丟失,所以它只能用來存放暫時性的輸入/輸出數據、運算的中間結果或用作堆棧。因此,RAM常被稱作數據存儲器。ROM是一種寫入信息后不能改寫只能讀出的存儲器,斷電后,其信息仍保留不變。ROM用來存放固定的程序或數據,如系統監(jiān)控程序、常數表格等。所以,ROM常被稱作程序存儲器。MCS-51單片機的芯片內部包含數據存儲器( RAM )和程序存儲器(ROM )兩類存儲 器。下文先介紹內部數據存儲

30、器( RAM )。1 內部數據存儲器(RAM )的地址分配其地址分配如圖1-8所示。F8HFFHSFR區(qū)80H87H30H7FH用戶RAM區(qū)(數據緩沖區(qū))20H2FH位尋址區(qū)(00H7FH)18H1FH工作寄存器區(qū) 3區(qū)(R7R0)10H17H工作寄存器區(qū) 2區(qū)(R7R0)08H0FH工作寄存器區(qū)1區(qū)(R7R0)00H07H工作寄存器區(qū) 0區(qū)(R7R0)圖1-8 MCS-51內部數據存儲器(RAM )的地址分配圖內部RAM共有256個單元,通常把256個單元按其功能劃分為兩部分:低128字節(jié)(00H 7FH) RAM 和高 128 字節(jié)(80H FFH )。2 內部數據存儲器(RAM )低12

31、8單元內部數據存儲器的低 128單元(00H7FH )是真正的RAM存儲器,按其用途劃分為 工作寄存器區(qū)、位尋址區(qū)和用戶RAM區(qū)三個區(qū)域,如圖1-9所示。30H7FH用戶RAM區(qū)(數據緩沖區(qū))20H2FH位尋址區(qū)(00H7FH)18H1FH工作寄存器區(qū) 3區(qū)(R7R0)10H17H工作寄存器區(qū) 2區(qū)(R7R0)08H0FH工作寄存器區(qū)1區(qū)(R7R0)00H07H工作寄存器區(qū) 0區(qū)(R7R0)圖1-9片內RAM低128字節(jié)的配置1 )寄存器區(qū)共有4組寄存器,每組8個寄存單元,各單元8位,每組的8個寄存單元都以 R0R7 作為寄存單元的編號。寄存器常用于存放操作數及中間結果,由于它們的功能及使用不

32、作 預先規(guī)定,因此稱為通用寄存器,有時也叫工作寄存器。4組通用寄存器占據內部 RAM的00H仆單元地址。在任一時刻,CPU只能使用四組寄存器中的一組寄存器,并且把正在使用的那組寄存 器稱之為當前寄存器組。到底是哪一組,由程序狀態(tài)字寄存器PSW中的RS1、RS0的狀態(tài)組合來決定(見 SFR中的PSW)。通用寄存器為CPU提供了就近存儲數據的功能,有利于提高單片機的運算速度。此外, 使用通用寄存器還能提高程序編制的靈活性,因此在單片機的應用編程中應充分地利用這 些寄存器,以簡化程序設計,提高程序運行速度。2)位尋址區(qū)內部RAM的20H2FH單元,既可以作為一般的 RAM單元,進行字節(jié)操作,也可以

33、對單元中每一位進行位操作,因此把該區(qū)稱為位尋址區(qū)。位尋址區(qū)共有16個RAM單元字節(jié),計128位,各位地址位 00H7FH。MCS-51具有布爾處理機的功能,位尋址區(qū)可以構 成布爾處理機的存儲空間。這種位尋址區(qū)能力是MCS-51的一個重要特點,表 1-4為位尋址區(qū)的位地址表。表1-4 片內RAM位尋址區(qū)的位地址表位地址LSB單元地址MSB2FH7F7E7D7C7B7A79782EH77767574737271702DH6F6E6D6C6B6A69682CH67666564636261602BH5F5E5D5C5B5A59582AH575655545352515029H4F4E4D4C4B4A49

34、4828H474645444342414027H3F3E3D3C3B3A393826H373635343332313025H2F2E2D2C2B2A2928續(xù)表單元位地址地址MSBLSB24H272625242322212023H1F1E1D1C1B1A191822H171615141312111021H0F0E0D0C0B0A090820H07060504030201003)用戶RAM區(qū)在內部RAM的128個單元中,通用寄存器占了32個單元,位尋址區(qū)占了 16個單元,剩下80個單元,這就是供用戶使用的一般 RAM區(qū),其單元地址為30H7FH。對用戶RAM區(qū)的使用沒有任何規(guī)定和限制,但在實際使

35、用中,常需在RAM區(qū)設置堆棧。這在編程中使用 RAM單元時應特別注意,不要和棧區(qū)單元混淆。3 內部數據存儲器(RAM )高128單元內部數據存儲器(RAM )高128單元是供給專用寄存器使用的,其單元地址為80HFFH。但這21個專用寄存器的地址分散地分布在 80HFFH的地址空間中,只占用了高128 單元中的21個單元。因這些寄存器的功能已作專門規(guī)定,故稱之為專用寄存器(SpecialFunction Register),也可稱之為特殊功能寄存器。1)特殊功能寄存器(SPR)簡介8051/89C51共有21個專用寄存器,現把其中部分寄存器簡單介紹如下:(1)程序計數器(Program Cou

36、nter, PC)PC是一個16位的計數器,它的作用是控制程序的執(zhí)行順序,其內容為下一條要執(zhí)行的指令的地址,尋址范圍達64KB。PC有自動加1的功能,從而實現程序的順序執(zhí)行。PC沒有地址,是不可尋址的,因此用戶無法對它進行讀/寫操作,但可以通過轉移、調用、返回等指令改變其內容,以實現程序的轉移。因 地址不在SFR (專用寄存器)內,一般不計作專用寄存器。(2)累加器(Accumulator , ACC ) 累加器為8位寄存器,是最常用的專用寄存器,功能較多,地位重要。它既可用于存放操作數,也可用來存放運算的中間結果。MCS-51單片機中大部分單操作數指令的操作數就取自累加器,許多雙操作數指令中

37、的一個操作數 也取自累加器。(3) B寄存器 B寄存器也是一個 8位寄存器,主要用于乘除運算。乘法運算時,B存乘數,乘法操作后,乘積的高8位存于B中;除法運算時,B存除數,除法操作后,余數存于B中。此外,B寄存器也可作為一般寄存器使用。(4) 程序狀態(tài)字(Program Status Word, PSW)程序狀態(tài)字是一個 8位寄存器,用于存放程序運行中的各種狀態(tài)信息。其中有些位的狀態(tài)是根據程序執(zhí)行結果,由硬件自動 設置的,而有些位的狀態(tài)則使用軟件方法設定。PSW的位狀態(tài)可以用專門指令進行測試,也可以用指令讀出。一些條件轉移指令根據PSW某些位的狀態(tài)進行程序轉移。PSW的各位定義如圖1-10所示

38、。PSW位地址:D7HD6HD5HD4HD3HD2HD1HD0HCYACF0RS1RS0OVP圖1-10 PSW的各位定義PSW的字節(jié)地址為 D0H。除PSW.1位保留未用外,其余各位的定義及使用如下:CY( PSW.7)進位標志位。CY是PSW中最常用的標志位。其功能有二:一是存放算術運算的進位標志,在進行加或減運算時,如果操作結果的最高位有進位或借位時,CY由硬件置"1” ( Single Chip Micro Computer ),否則清"0”;二是在位操作中作累加位 使用。位傳送、位與位等位操作,進位標志位是固定的操作位之一。AC ( PSW.6)輔助進位標志位。在

39、進行加或減運算中,當低4位向高4位進位或借位時,AC由硬件置“1”,否則AC位清“ 0”。在BCD碼調整中也要用到 AC位狀態(tài)。F0( PSW.5)用戶標志位。這是一個供用戶定義的標志位,需要利用軟件方法置 位或復位,用于控制程序的轉向。RS1和RS0( PSW.4、PSW.3)工作寄存器組選擇位。它們被用于選擇CPU當前使用的通用寄存器組。 通用寄存器共有4組,其對應關系如表1-5所示。表1-5通用寄存器組的選擇RS1RS0寄存器組片內RAM地址00第0組00H07H01第1組08H -0FH10第2組10H17H11第3組18H -1FH這兩個選擇位的狀態(tài)是由軟件設置的,被選中的寄存器組即

40、為當前通用寄存器組。當單片機上電或復位后,RS1: RSO=OO。OV( PSW.2)溢出標志位。在帶符號數加減運算中,0V=1表示加減運算超出了累加器A所能表示的符號數有效范圍(-128+ 127),即產生了溢出;因此運算結果是錯 誤的;OV=0表示運算正確,即無溢出產生。在乘法運算中,0V=1表示乘積超過 255,即乘積分別在 B與A中;OV=0表示乘積 只在A中。在除法運算中,0V=1表示除數為0,除法不能進行;OV=0表示除法可正常進行。P(PSW.0)奇偶標志位,表明累加器A中內容的奇偶性。如果A中有奇數個“1”, 則P置“ 1 ”,否則置“0”。凡是改變累加器 A中內容的指令均會影

41、響 P標志位。該標志位對串行通信中的數據傳輸有重要的意義,在串行通信中常采用奇偶校驗的辦 法來校驗數據傳輸的可靠性。(5) 數據指針(DPTR )數據指針為16位寄存器。編程時,DPTR既可以按16位寄存器使用,也可以按兩個8位寄存器分開使用,即:DPH DPTR高8位字節(jié)DPL DPTR 低8位字節(jié)DPTR通常在訪問外部數據存儲器時作地址指針使用。由于外部數據存儲器的尋址范 圍為64KB,故把DPTR設計為16位。(6) 堆棧指針 (Stack Pointer, SP)堆棧是一個特殊的存儲區(qū),用來暫存數據和地 址,它是按“先進后出”的原則存取數據的。堆棧共有兩種操作:進棧和出棧。由于MCS-

42、51單片機的堆棧設在內部 RAM中,因此SP是一個8位寄存器。系統復位 后,SP的內容為07H,從而復位后堆棧實際上是從 08H單元開始的,但08H仆H單元分 別屬于工作寄存器13區(qū),如果程序要用到這些區(qū),最好把SP值改為更大的值。一般在內部RAM的30H7FH單元中開辟堆棧。SP的內容一經確定,堆棧的位置也就跟著確定 下來,由于SP可初始化為不同的值,因此,堆棧位置是浮動的。這里只集中講述了 6個專用寄存器,其余的專用寄存器(如 TCON、TMOD、IE、IP、 SCON、PCON、SBUF等)將在以后章節(jié)中陸續(xù)介紹。2)特殊功能寄存器中的字節(jié)尋址和位尋址MCS-51系列單片機有21個可尋址

43、的專用寄存器,其中有 11個專用寄存器是可以位 尋址的。下面把各寄存器的字節(jié)地址及位地址并列于表1-6和表1-7中。表1-6專用寄存器地址表符號名稱地址ACC累加器E0HBPSWB寄存器 程序狀態(tài)字F0HD0HSP堆棧指針81HDPTR數據指針(包括 DPH和DPL )82H83HP0P0 口鎖存寄存器80HP1P1 口鎖存寄存器90HP2P2 口鎖存寄存器A0HP3P3 口鎖存寄存器B0HIP中斷優(yōu)先級控制寄存器B8HIE中斷允許控制寄存器A8HTMOD定時/計數器工作方式狀態(tài)寄存器89HTCON定時/計數器控制寄存器88HTH0定時/計數器0 (高字節(jié))8CHTL0定時/計數器0 (低字節(jié)

44、)8AHTH1定時/計數器1 (高字節(jié))8DHTL1定時/計數器1 (低字節(jié))8BHSCON串行口控制寄存器98HSBUF串行口數據緩沖器99HPCON電源控制寄存器87H表1-7 可進行位尋址的SFR的分布SFR位地址/位定義字節(jié)地址MSBLSBB0F7HF6HF5HF4HF3HF2HF1HF0HF0HACCE7HF6HE5HE4HE3HE2HE1HE0HE0HPSWD7HD6HD5HD4HD3HD2HD1D0HD0HCYACF0RS1RS0OVPIPBFHBEHBDHBCHBBHBAHB9HB8HB8HPSPT1PX1PT0PX0P3B7B6B5B4B3B2B1B0BOHP3.7P3.6P

45、3.5P3.4P3.3P3.2P3.1P3.0IEAFAEADACABAAA9A8A8HEAESET1EX1ET0EX0P2A7A6A5A4A3A2A1A0A0HP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0SCON9F9E9D9C9B9A999898HSM0SM1SM2RENTB8RB8TIRIP1979695949392919090HP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0TCON8F8E8D8C8B8A898888HTF1TR1TF0TROIE1IT1IE0IT0P0878685848382818080HP0.7P0.6P0.5P0.4P0.3P

46、0.2P0.1P0.0對專用寄存器的字節(jié)尋址問題作如下幾點說明:(1) 21個可字節(jié)尋址的專用寄存器不連續(xù)地分散在內部RAM高128單元之中,盡管 還余有許多空閑地址,但用戶并不能使用。(2)程序寄數器 PC不占據RAM單元,它在物理上是獨立的,因此是不可尋址的寄 存器。(3) 對專用寄存器只能使用直接的尋址方式,書寫時既可使用寄存器符號,也可使用 寄存器單元地址。全部專用寄存器可位尋址的位共83位,這些位都具有專門的定義和用途。 這樣,加上位尋址的128位,在MCS-51的內部 RAM中共有128+83=211個可尋址位。123 MCS-51單片機的內部程序存儲器MCS-51的程序存儲器用于

47、存放編好的程序和表格常數。8051片內有4KB的ROM ,8751片內有4KB的EPROM,8031片內無程序存儲器。 MCS-51的片外最多能擴張 64KB 程序存儲器,片內外的 ROM是統一編址的。EA端保持高電平時,8051的程序計數器PC 在0000H0FFFH地址范圍內(即前4KB地址)執(zhí)行片內 ROM中的程序,當PC在1000H FFFFH地址范圍內時,自動執(zhí)行片外程序存儲器中的程序;EA保持低電平時,只能尋址外部程序存儲器,片外存儲器可以從0000H開始編址。MCS-51程序存儲器有些單元具有特殊功能,使用時應予以注意。其中一組特殊單元為0000H0002H。系統復位后,(PC)

48、 =0000H,單片機從 0000H單元開始取指令執(zhí)行程序。如果程序不從0000H單元開始,應在這三個單元中存放一條無條件轉移指令,以便直接轉去執(zhí)行指定的程序。還有一組特殊的單元是 0003H002AH,共40個單元。這40個單元被均勻地分為5段,作為5個中斷源的中斷地址區(qū),其中:0003H-000AH外部中斷0中斷地址區(qū);000BH 7012H定時/計數器0中斷地址區(qū);0013H-001AH外部中斷1中斷地址區(qū);001BH 7022H定時/計數器1中斷地址區(qū);0023H -002AH串行中斷地址區(qū)。中斷響應后,按中斷種類,自動轉到各中斷區(qū)的首地址區(qū)執(zhí)行程序,因此在中斷地址區(qū)中理應存放中斷服務

49、程序。通常情況下,8個單元難以存下一個完整的中斷服務程序,因此也通常從中斷地址區(qū)首地址開始存放一條無條件轉移指令,以便中斷響應后,通過中 斷地址區(qū)再轉到中斷服務程序的實際入口地址。1.3 MCS-51單片機的并行端口結構單片機芯片內還有一項主要內容即并行 I/O 口。MCS-51共有4個8位的I/O 口,分別 記作P0、P1、P2、P3。每個口都包含一個鎖存器、 一個輸出驅動器和輸入緩沖器。 實際上, 它們已被歸入專用寄存器之列,并且具有字節(jié)尋址和位尋址功能。在訪問片外擴展存儲器時,低8位地址和數據由P0分時傳送,高8位地址由P2 口傳送。在無片外擴展存儲器的系統中,這4個口的每一位均可作為雙

50、向的I/O端口使用。MCS-51單片機的4個I/O 口都是8位雙向口,這些口在結構和特性上基本相同,但又各具特點,以下對其分別作以介紹。1.3.1 P0 口P0 口的口線邏輯電路如圖 1-11所示。由圖可知,電路中包含一個數據輸出鎖存器、兩個三態(tài)數據輸入緩沖器、一個數據輸 出的驅動電路和一個輸出控制電路。當對P0 口進行寫操作時,由鎖存器和驅動電路構成數據輸出通路。由于通路中已有輸入鎖存器,因此數據輸出時可以與外設直接連接,而不需 再加數據鎖存電路。地址/教擁+5V圖1-11 P0 口某位結構考慮到P0 口既可以作為通用的I/O 口進行數據輸入/輸出,也可以作為單片機系統的 地址/數據線使用,

51、為此在P0 口的電路中有一個多路轉接電路MUX。在控制信號的作用下,多路轉接電路可以分別接通鎖存器輸出或地址/數據線。當作為通用的I/O 口使用時,內部的控制信號為低電平,封鎖與門,將輸出電路的上拉場效應管(FET)截止,同時使多路轉接電路MUX接通被封鎖存器 Q端的輸出通路。當P0 口作為輸出口使用時,內部的寫脈沖加在D觸發(fā)器的CP端,數據寫入鎖存器,并向端口輸出。當P0 口作為輸入口使用時, 應區(qū)分讀引腳和讀端口兩種情況,為此,在端口電路中有兩個用于讀入驅動的三態(tài)緩沖器。所謂讀引腳即讀芯片引腳的數據,這時使用下方的數據 緩沖器,由“讀引腳”信號把緩沖器打開,把端口引腳上的數據從緩沖器通過內

52、部總線讀 進來。使用傳送指令(MOV )進行讀端口操作都是屬于這種情況。讀端口是指通過上面的緩沖器讀鎖存器Q端的狀態(tài)。在端口已處于輸出狀態(tài)的情況下,Q端與引腳信號是一致的,這樣安排的目的是為了適應對端口進行“讀一一修改一一寫” 操作指令的需要。例如,“ANL P0,A”就是屬于這類指令,執(zhí)行時先讀入P0 口鎖存器中的數據,然后與 A的內容進行邏輯與,再把結果送回P0 口。對于這類“讀一一修改一一寫”指令,不直接讀引腳而讀鎖存器是為了避免可能出現的錯誤。因為在端口已處于輸出 狀態(tài)的情況下,如果端口的負載恰是一個晶體管的基極,導通了的PN結會把端口引腳的高電平拉低,這樣直接讀引腳就會把本來的“1”誤讀為“ 0”;但若從鎖存器 Q端讀,就能避免這樣的錯誤,得到正確的數據。需要注意的是,當 P0 口進行一般的I/O輸出時,由于輸出電路是漏極開路電路,因此 必須外接上拉電阻才能有高電平輸出;當P0 口進行一般的I/O輸入時,必須先向電路中的鎖存器寫入“1 ”使FET截止,以避免鎖存器為“0”狀態(tài)時對引腳讀入的封鎖。在實際應用中

溫馨提示

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

評論

0/150

提交評論