第1章單片機硬件系統_第1頁
第1章單片機硬件系統_第2頁
第1章單片機硬件系統_第3頁
第1章單片機硬件系統_第4頁
第1章單片機硬件系統_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、單片機應用技術 第1章 單片機硬件系統第1章 單片機硬件系統本章首先從單片機的概念入手,簡單介紹了單片機實驗系統的基本組成及功能,以最簡單的信號燈控制應用實驗讓讀者對單片機及其應用系統有一個感性的認識,大致了解單片機的基本工作過程,同時也指出了學習單片機的兩個基本方面:硬件接口和軟件編程。實訓1 信號燈的控制11實訓目的(1)了解單片機實驗系統的基本組成及功能。(2)通過最簡應用系統實例了解單片機的基本工作過程。2實訓設備與器件實訓設備:單片機開發系統,程序固化器。實訓電路:參見附錄原理圖。3實訓步驟及要求1)分析附錄原理圖,了解以8031為基礎的單片機實驗系統的基本組成及功能。 本實訓系統的

2、核心器件是8031單片機芯片,同時外部還擴展了一片EPROM2764、一片RAM6264、一片EEPROM2864A、一片8155、一片ADC0809和MAX232等,首先將這些主要芯片的功能簡單介紹如下:(1) EPROM2764:紫外線可擦除,電可編程的只讀存儲器。通常用于存放編制好的程序和常數表格。(2) RAM6264:靜態隨機存儲器,通常用于存放采集到的原始數據,處理中的數據及最后的結果。(3) EEPROM2864A:電可擦除,電可編程的只讀存儲器。它是近年來廣泛被使用的一種只讀存儲器。其主要優點是能在應用系統中進行在線改寫,并能在斷電情況下保存數據而不需要保護電源。它兼有程序存儲

3、器與數據存儲器的特點。關于上述三種存儲器以及與單片機的連接、使用將在第6章詳細介紹。(4) 8155A:一種可編程的RAM和I/O接口芯片,本實訓系統主要用它來作擴展鍵盤和數碼管顯示的接口。詳細內容將在第6、7章介紹。(5) ADC0809:一種8路模擬輸入的8位逐次逼近式A/D轉換器件。詳細內容將在第7章介紹。(6) MAX232:標準的串行口電平轉換器,用來將單片機和PC機聯系起來,將在第8章介紹。此外,本系統還擴展了一片74LS245(8總線接收/發送器),一片74LS373(8D三態輸出鎖存器),一片74LS138(三線/八線譯碼器)和一片74LS240(8位反碼三態輸出驅動器)。本書

4、將以此實訓驗系統電路為基礎開展8個實訓項目和課程設計,從而掌握單片機的硬件結構、軟件編程及調試。 2)向EPROM2764寫入程序機器碼通過程序固化器將下列程序中對應的機器碼,依次寫入到EPROM2764的0000H0015H地址單元中。機器碼 地址 程序 ORG 0000H ;表示程序從地址0000H存放75 90 00 0000H START: MOV P1,#00H 11 17 0003H ACALL DELAY ;延時一段時間,便于觀察75 90 FF 0005H MOV P1,#0FFH 11 17 0008H ACALL DELAY ;延時80 E9 000AH SJMP STAR

5、T ;返回,從START開始重復7B FF 000CH DELAY: MOV R3,#0FFH ;一段延時子程序7C FF 000EH DEL2: MOV R4,#0FFH 00 0010H DEL1: NOP DC FD 0011H DJNZ R4,DEL1 DB F9 0013H DJNZ R3,DEL2 22 0015H RET ;子程序返回END ;表示程序結束上述程序表由幾部分組成,左邊所列是一組十六進制數,我們稱之為機器碼,以及機器碼所在存儲器中的地址(0000H0015H),機器碼是計算機可以識別的語言,例如75,90,00等。這些是我們寫入2764的內容,表示的是一段程序。中間

6、是和機器碼對應的源程序(一系列指令),例如MOV P1,#00H,后續章節將側重于源程序。關于單片機的指令以及程序設計將在第3、4章詳細介紹,在第4章的實訓4中也會重點討論上述程序。最右邊是對程序的簡單說明,以便于閱讀。程序固化器的具體操作過程可參見相應的說明書。3)運行程序將寫好的EPROM插入實訓電路板相應位置,再接上電源啟動運行,觀察8個發光二極管的亮滅狀態。4. 實訓分析與總結(1)實訓結果是:實訓電路板中的8個發光二極管按照全亮、全滅的規律不停地循環變化。(2)本實訓所涉及的電路參見附錄原理圖左上角所示:單片機18引腳通過集成芯片74LS240(8個非門)接到8個發光二極管,8個發光

7、二極管的陽極各接一個限流電阻后接+5V電源,陰極連在一起接地。單片機的這8個引腳對應其內部的一個并行I/O口P1口,有關P1口的具體結構在本章正文中介紹,這是本實訓所涉及的硬件部分。從圖可見,當P1口的某個引腳為低電平時,發光二極管變亮,當P1口的某個引腳為高電平時,發光二極管熄滅。這樣我們可以通過向P1口寫入一個8位二進制數來改變每個管腳的電平狀態,而向P1口寫入數據可以通過相應指令來實現。實訓程序中的第一條指令MOV P1,#00H(其中 # 表示其后面為常數,H表示其前面的常數為十六進制數,寫成二進制形式為#00000000B,B表示二進制數),對應機器碼為75H、90H、00H,表示將

8、00H的數據送給P1口。則P1口的8個管腳狀態與寫入數據之間的關系如下: 寫入數據位D7 D6 D5 D4 D3 D2 D1 D00 0 0 0 0 0 0 0 對應P1口管腳名稱P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 管腳電平狀態 低 低 低 低 低 低 低 低發光二極管狀態 亮 亮 亮 亮 亮 亮 亮 亮所以,在通電運行后,發光二極管會出現全亮的狀態。同理,當執行程序中的第三條指令MOV P1,# FFH(即#11111111B)時,發光二極管會全滅。由此可見,我們可以通過軟件程序來完成對硬件電路的控制。(3)實訓中,我們事先將程序(機器碼)正確地固

9、化到程序存儲器EPROM 2764芯片中,然后把2764芯片插入實驗板,和單片機(例如8031)通過一定的方式連接起來,接上電源后發光二極管按照既定的規律點亮。這說明,2764中的寫入內容能夠依次讀出,并且送入到單片機內部完成相應的功能,而這一切工作都是在單片機的控制下來實現的,也就是說單片機在執行機器碼。我們知道,存儲器2764有三類總線:數據線、地址線和控制線,在單片機應用系統中這三類總線都是由單片機芯片來提供,并且控制數據的讀取的。關于單片機的具體工作過程在1.5節介紹。 (4)本實訓中,機器碼寫在了單片機之外的一片EPROM中,因此EPROM是用來存儲編好的程序的,所以可以稱之為程序存

10、儲器。實際上,有的單片機本身內部也具有一定容量的片內程序存儲器,當內部存儲器容量夠用時,也就不必外接EPROM了。那么單片機內部都具有哪些功能,將是本章重點討論的內容。1.1 概 述單片微型計算機(Single Chip Microcomputer)簡稱單片機,是指集成在一塊芯片上的計算機,它具有結構簡單、控制功能強、可靠性高、體積小、價格低等優點,在許多行業都得到了廣泛的應用。從航天航空、地質石油、冶金采礦、機械電子、輕工紡織到機電一體化設備、郵電通信、日用設備和器械等,單片機都發揮了巨大作用。1.1.1 什么是單片機及單片機應用系統1. 微型計算機及微型計算機系統微型計算機(Microco

11、mputer)簡稱微機,是計算機的一個重要分支。人們通常按照計算機的體積、性能和應用范圍等條件,將計算機分為巨型機、大型機、中型機、小型機和微型機等。微型計算機不但具有其它計算機快速、精確、程序控制等特點,最突出的是它具有體積小、重量輕、功耗低、價格便宜等優點。個人計算機簡稱PC(Personal Computer)機,是微型計算機中應用最為廣泛的一種,也是近年來計算機領域中發展最快的一個分支,由于PC機在性能和價格方面適合個人用戶購買和使用,目前,它已經像普通家電一樣深入到了家庭和社會生活的各個方面。微型計算機系統由硬件系統和軟件系統兩大部分組成。硬件系統是指構成微機系統的實體和裝置,通常由

12、運算器、控制器、存儲器、輸入接口電路和輸入設備、輸出接口電路和輸出設備等組成。其中,運算器和控制器一般做在一個集成芯片上,統稱中央處理單元(Central Processing Unit),簡稱CPU,是微機的核心部件,配上存放程序和數據的存儲器、輸入輸出(Input/Output,簡稱I/O)接口電路及外部設備即構成微機的硬件系統。軟件系統是指微機系統所使用的各種程序的總體。軟件的主體駐留在存儲器中,人們通過它對整機進行控制并與微機系統進行信息交換,使微機按照人的意圖完成預定的任務。軟件系統與硬件系統共同構成實用的微機系統,兩者是相輔相成、缺一不可的。微型計算機系統組成示意圖如圖1.1所示。

13、圖1.1 微型計算機系統組成示意圖下面把組成計算機的五個基本部件作簡單說明。1)運算器 運算器是計算機的運算部件用于實現算術和邏輯運算。計算機的數據運算和處理都在這里進行。2)控制器控制器是計算機的指揮控制部件,使計算機各部分能自動協調地工作.運算器和控制器是計算機的核心部分,常把它們合在一起稱之為中央處理器,簡稱CPU。3)存儲器存儲器是計算機的記憶部件,用于存放程序和數據。存儲器又分為內存儲器和外存儲器。例如實訓中使用的EPROM2764。4)輸入設備輸入設備用于將程序和數據輸入到計算機中,如鍵盤。5)輸出設備輸出設備用于把計算機數據計算或加工的結果,以用戶需要的形式顯示或保存,如顯示器、

14、打印機。通常把外存儲器、輸入設備和輸出設備合在一起稱之為計算機的外部設備,簡稱“外設”。2單片微型計算機單片微型計算機是指集成在一個芯片上的微型計算機,也就是把組成微型計算機的各種功能部件,包括CPU(Central Processing Unit)、隨機存取存儲器RAM(Random Access Memory)、只讀存儲器ROM(Read-only Memory)、基本輸入/輸出(Input/Output)接口電路、定時器/計數器等部件制作在一塊集成芯片上,構成一個完整的微型計算機,從而實現微型計算機的基本功能。單片機內部結構示意圖如圖1.2所示。圖1.2 單片機內部結構示意圖 單片機實質

15、上是一個硬件的芯片,在實際應用中,通常很難直接和被控對象進行電氣連接,必須外加各種擴展接口電路、外部設備、被控對象等硬件和軟件,才能構成一個單片機應用系統。3單片機應用系統及組成單片機應用系統是以單片機為核心,配以輸入、輸出、顯示、控制等外圍電路和軟件,能實現一種或多種功能的實用系統。本書的實訓電路板也是一個單片機的應用系統,它除了有單片機芯片以外,還有許多的外圍電路,再配以后續章節一系列的實訓程序可以完成很多功能。所以說,單片機應用系統是由硬件和軟件組成,硬件是應用系統的基礎,軟件是在硬件的基礎上對其資源進行合理調配和使用,從而完成應用系統所要求的任務,二者相互依賴,缺一不可,單片機應用系統

16、的組成如圖1.3所示。圖1-3 單片機應用系統的組成由此可見,單片機應用系統的設計人員必須從硬件和軟件兩個角度來深入了解單片機,并能夠將二者有機結合起來,才能形成具有特定功能的應用系統或整機產品。自從1974年美國Fairchild公司研制出第一臺單片機F8之后,迄今為止,單片機經歷了由4位機到8位機再到16位機的發展過程。單片機制造商很多,主要有美國的Intel、Motorola、Zilog等公司。目前,單片機正朝著高性能、多品種方向發展,近年來32位單片機已進入了實用階段。但是由于8位單片機從性能價格比上占有優勢,而且8位增強型單片機在速度和功能上向現在的16位單片機挑戰,因此在未來相當長

17、的時期內8位單片機仍是單片機的主流機型。112 MCS-51單片機系列盡管各類單片機很多,但無論是從世界范圍或是從國內范圍來看,使用最為廣泛的應屬MCS-51單片機。基于這一事實,本書以應用最為廣泛的MCS-51系列八位單片機(8031、8051、8751等)為研究對象,介紹單片機的硬件結構、工作原理及應用系統的設計。MCS-51單片機系列共有十幾種芯片,如表1.1所列。表1.1 MCS-51系列單片機 分類表表中列出了MCS-51單片機系列的芯片型號,以及它們的技術性能指標,使我們對它們的基本情況有一個概括的了解。下面我們就在這個表的基礎上對MCS-51系列單片機進一步說明。151子系列和5

18、2子系列MCS-51系列又分為51和52兩個子系列,并以芯片型號的最末位數字作為標志。其中51子系列是基本型,而52子系列則屬增強型。52子系列功能增強的具體方面,從表1-1所列內容中可以看出:(1)片內ROM從4KB增加到8KB(2)片內RAM從128字節增加到256字節(3)定時器/計數器從2個增加到3個(4)中斷源從5個增加到6個在52子系列的內部ROM中以掩膜方式集成有8K BASIC解釋程序,這就是通常所說的8052-BASIC。這意味著單片機已可以使用高級語言。該BASIC與基本BASIC想比,增加了一些控制語句,以滿足單片機作為控制機的需要。2單片機芯片半導體工藝MCS-51系列

19、單片機采用兩種半導體工藝生產。一種是HMOS工藝,即高速度高密度短溝道MOS工藝。另外一種是CHMOS工藝,即互補金屬氧化物的HMOS工藝。表0-1中芯片型號中帶有字母“C”的,為CHMOS芯片,其余均為一般的HMOS芯片。CHMOS是CMOS和HMOS的結合,除保持了HMOS高速度和高密度的特點之外,還具有CMOS低功耗的特點。例如8051的功耗為630mW ,而80C51的功耗只有120mW .在便攜式 、手提式或野外作業儀器設備上低功耗是非常有意義的。因此在這些產品中必須使用CHMOS的單片機芯片。3片內ROM存儲器配置形式MCS-51單片機片內程序儲器有三種配置形式,即:掩膜ROM、E

20、PROM和無ROM。這三種配置形式對應三種不同的單片機芯片,它們各有特點,也各有其適用場合,在使用時應根據需要進行選擇。一般情況下,片內帶掩膜型ROM適應于定型大批量應用產品的生產;片內帶EPROM適合于研制產品樣機;外接EPROM的方式適用于研制新產品。最近Intel公司又推出片內帶EEPROM型的單片機,可以在線寫入程序。12 MCS-51單片機結構和原理盡管單片機比較簡單,但要按五個基本組成部件來講單片機的硬件結構和原理,也將是一件十分復雜的事。其實也沒有這種必要。因此,通常講述單片機結構原理時,總是從實際需要出發,只介紹與程序設計和系統擴展應用有關的內容。1.2.1 MCS-51單片機

21、的內部組成及信號引腳MCS-51單片機的典型芯片是8031、8051、8751。8051內部有4KB ROM,8751內部有4KB EPROM,8031片內無ROM;除此之外,三者的內部結構及引腳完全相同。因此以8051為例,說明本系列單片機的內部組成及信號引腳。18051單片機的基本組成8051單片機的基本組成請參見圖1.4。 圖1.4 MCS-51 單片機結構框圖各部分情況介紹如下:(1)中央處理器(CPU)中央處理器是單片機的核心,完成運算和控制功能。MCS-51的CPU能處理8位二進制數或代碼。(2)內部數據存儲器(內部RAM)8051芯片中共有256個RAM單元,但其中后128單元被

22、專用寄存器占用,能作為寄存器供用戶使用的只是前128單元,用于存放可讀寫的數據。因此通常所說的內部數據存儲器就是指前128單元,簡稱內部RAM。(3)內部程序存儲器(內部ROM)8051共有4KB掩膜ROM,用于存放程序、原始數據或表格,因此稱之為程序存儲器,簡稱內部ROM。(4)定時器/計數器8051共有2個16位的定時器/計數器,以實現定時或計數功能,并以其定時或計數結果對計算機進行控制。(5)并行I/O口MCS-51共有四個8位的I/O口(P0、P1、P2、P3),以實現數據的并行輸入輸出。在實訓中我們已經使用了P1口,通過P1口連接8個發光二極管。(6)串行口MCS-51單片機有一個全

23、雙工的串行口,以實現單片機和其它設備之間的串行數據傳送。該串行口功能較強,既可作為全雙工異步通信收發器使用,也可作為同步移位器使用。(7)中斷控制系統MCS-51單片機的中斷功能較強,以滿足控制應用的需要。8051共有5個中斷源,即外中斷2個,定時/計數中斷2個,串行中斷1個。全部中斷分為高級和低級共二個優先級別。(8)時鐘電路MCS-51芯片的內部有時鐘電路,但石英晶體和微調電容需外接。時鐘電路為單片機產生時鐘脈沖序列。系統允許的晶振頻率一般為6MHZ和12MHZ。從上述內容可以看出,MCS-51雖然是一個單片機芯片,但作為計算機應該具有的基本部件它都包括,因此實際上它已是一個簡單的微型計算

24、機系統了。2.MCS-51的信號引腳MCS-51是標準的40引腳雙列直插式集成電路芯片,引腳排列請參見圖1.5。1) 信號引腳介紹 P0.0 P0.7: P0口8位雙向口線。P1.0 P1.7 :P1口8位雙向口線。P2.0 P2.7 :P2口8位雙向口線。P3.0 P3.7 :P3口8位雙向口線。ALE:地址鎖存控制信號。在系統擴展時,ALE用于控制把P0口輸出的低8位地址鎖存器鎖存起來,以實現低位地址和數據的隔離。此外由于ALE是以晶振六分之一的固定頻率輸出的正脈沖,因此可作為外部時鐘或外部定時脈沖使用。:外部程序存儲器讀選通信號。在讀外部ROM時有效(低電平),以實現外部ROM單元的讀操

25、作。:訪問程序存儲控制信號。當信號為低電平時,對ROM的讀操作限定在外部程序存儲器;而當信號為高電平時,則對ROM的讀操作是從內部程序存儲器開始,并可延至外部程序存儲器。RST:復位信號。當輸入的復位信號延續2個機器周期以上高電平即為有效,用以完成單片機的復位初始化操作。XTAL1和XTAL2 :外接晶體引線端。當使用芯片內部時鐘時,此二引線端用于外接石英晶體和微調電容;當使用外部時鐘時,用于接外部時鐘脈沖信號。VSS:地線。VCC:+5V電源。以上是MCS-51單片機芯片40條引腳的定義及簡單功能說明,讀者可以對照實訓電路找到相應引腳,在電路中查看每個引腳的連接使用。 圖1.5 MCS 51

26、 引腳圖2) 信號引腳的第二功能由于工藝及標準化等原因,芯片的引腳數目是有限制的。例如MCS-51系列把芯片引腳數目限定為40條,但單片機為實現其功能所需要的信號數目卻遠遠超過此數,因此就出現了需要與可能的矛盾。如何解決這個矛盾?“兼職”是唯一可行的辦法,即給一些信號引腳賦以雙重功能。如果把前述的信號定義為引腳第一功能的話,則根據需要再定義的信號就是它的第二功能。下面介紹一些信號引腳的第二功能。(1)P3口線的第二功能P3的8條口線都定義有第二功能,詳見表1.2。(2)EPROM存儲器程序固化所需要的信號有內部EPROM的單片機芯片(例如8751),為寫入程序需提供專門的編程脈沖和編程電源,這

27、些信號也是由信號引腳以第二功能的形式提供的,即:編程脈沖:30腳(ALE/PROG)編程電壓(25V):31腳(/VPP)引腳第二功能信號名稱P3.0RXD串行數據接收P3.1 TXD 串行數據發送P3.2 外部中斷0申請P3.3 外部中斷1申請P3.4 T0定時器/計數器0的外部輸入P3.5 T1定時器/計數器1的外部輸入P3.6 外部RAM寫選通P3.7 外部RAM讀選通 表1.2 P3口各引腳與第二功能表(3)備用電源引入MCS-51單片機的備用電源也是以第二功能的方式由9腳(RST/VPD)引入的。當電源發生故障電壓降低到下限值時,備用電源經此端向內部RAM提供電壓,以保護內部RAM中

28、的信息不丟失。以上把MCS-51單片機的全部信號,分別以第一功能和第二功能的形式列出。對于各種型號的芯片,其引腳的第一功能信號是相同的,所不同的只在引腳的第二功能信號。對于9、30和31三個引腳,由于第一功能信號與第二功能信號是單片機在不同工作方式下的信號,因此不會發生使用上的矛盾。但是P3口的情況卻有所不同,它的第二功能信號都是單片機的重要控制信號。因此在實際使用時,都是先按需要選用第二功能信號,剩下的才以第一功能的身份作數據位的輸入輸出使用。1.2.2 MCS-51內部數據存儲器MCS-51單片機的芯片內部有RAM和ROM兩類存儲器,即所謂的內部RAM和內部ROM,首先分析內部RAM。1.

29、 內部數據存儲器低128單元8051的內部RAM共有256個單元,通常把這256個單元按其功能劃分為兩部分:低128單元(單元地址00H7FH)和高128單元(單元地址80HFFH)。如圖1.6所示為低128單元的配置圖。30H 7FH數據緩沖區20H 2FH位尋址區(00H7FH)18H 1FH工作寄存器3區(R7R0)10H 17H工作寄存器2區(R7R0)08H 0FH工作寄存器1區(R7R0)00H 07H工作寄存器0區(R7R0) 圖1.6 片內RAM的配置低128單元是單片機的真正RAM存儲器,按其用途劃分為三個區域:1) 寄存器區共有四組寄存器,每組8個寄存單元(各為8位),各組

30、都以R0R7作寄存單元編號。寄存器常用于存放操作數及中間結果等,由于它們的功能及使用不作預先規定,因此稱之為通用寄存器,有時也叫工作寄存器。四組通用寄存器占據內部RAM的00H1FH單元地址。在任一時刻,CPU只能使用其中的一組寄存器,并且把正在使用的那組寄存器稱之為當前寄存器組。到底是哪一組,由程序狀態字寄存器PSW中RS1、RS0位的狀態組合來決定。通用寄存器為CPU提供了就近數據存儲的便利,有利于提高單片機的運算速度。此外,使用通用寄存器還能提高程序編制的靈活性,因此在單片機的應用編程中應充分利用這些寄存器,以簡化程序設計,提高程序運行速度。2) 位尋址區內部RAM的20H2FH單元,既

31、可作為一般RAM單元使用,進行字節操作,也可以對單元中每一位進行位操作,因此把該區稱之為位尋址區。位尋址區共有16個RAM單元,計128位,位地址為00H7FH。MCS-51具有布爾處理機功能,這個位尋址區可以構成布爾處理機的存儲空間。這種位尋址能力是MCS-51的一個重要特點。表1.3為位尋址區的位地址表。表1.3 片內RAM位尋址區的位地址單元地址MSB 位地址 LSB 2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F077E766E665E564E463E362E261E160E0

32、67D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A0279716961595149413931292119110901787068605850484038302820181008003) 用戶RAM區在內部RAM低128單元中,通用寄存器占去32個單元,位尋址區占去16個單元,剩下80個單元,這就是供用戶使用的一般RAM區,其單元地址為30H7FH。對用戶RAM區的使用沒有任何規定或限制。但在

33、一般應用中常把堆棧開辟在此區中。2. 內部數據存儲器高128單元內部RAM的高128單元是供給專用寄存器使用的,其單元地址為80HFFH。因這些寄存器的功能已作專門規定,故而稱之為專用寄存器(Special Function Register),也可稱為特殊功能寄存器。1) 專用寄存器(SFR)簡介8051共有21個專用寄存器,現把其中部分寄存器簡單介紹如下:(1) 程序計數器(PCProgram Counter)在實訓中,我們已經知道PC是一個16位的計數器,它的作用是控制程序的執行順序。其內容為將要執行指令的地址,尋址范圍達64KB。PC有自動加1功能,從而實現程序的順序執行。PC沒有地址

34、,是不可尋址的。因此用戶無法對它進行讀寫。但可以通過轉移、調用、返回等指令改變其內容,以實現程序的轉移。因地址不在SFR之內,一般不計作專用寄存器。(2) 累加器(ACCAccumulator)累加器為8位寄存器,是最常用的專用寄存器,功能較多,地位重要。它既可用于存放操作數,也可用來存放運算的中間結果。MCS-51單片機中大部分單操作數指令的操作數就取自累加器,許多雙操作數指令中的一個操作數也取自累加器。(3) B寄存器B寄存器是一個8位寄存器,主要用于乘除運算。乘法運算時,B是乘數。乘法操作后,乘積的高8位存于B中,除法運算時,B是除數。除法操作后,余數存于B中。此外,B寄存器也可作為一般

35、數據寄存器使用。(4) 程序狀態字(PSWProgram Status Word)程序狀態字是一個8位寄存器,用于存程序運行中的各種狀態信息。其中有些位狀態是根據程序執行結果,由硬件自動設置的,而有些位狀態則使用軟件方法設定。PSW的位狀態可以用專門指令進行測試,也可以用指令讀出。一些條件轉移指令將根據PSW有些位的狀態,進行程序轉移。PSW的各位定義如下: D7HD6HD5HD4HD3HD2HD1HD0H CY ACF0RS1RS0OVF1PPSW位地址字節地址D0H除PSW.1位保留未用外,對其余各位的定義及使用介紹如下:CY(PSW.7)進位標志位。CY是PWS中最常用的標志位,其功能有

36、二:一是存放算術運算的進位標志,在進行加或減運算時,如果操作結果最高位有進位或借位時,CY由硬件置“1”,否則清“0”;二是在位操作中,作累加位使用。位傳送、位與位或等位操作,操作位之一固定是進位標志位。AC(PSW.6)輔助進位標志位。在進行加減運算中,當有低4位向高4位進位或借位時,AC由硬件置“1”,否則AC位被清“0”。在BCD碼調整中也要用到AC位狀態。F0(PSW.5)用戶標志位。這是一個供用戶定義的標志位,需要利用軟件方法置位或復位,用以控制程序的轉向。RS1和RS0(PSW.4,PSW.3)寄存器組選擇位。用于選擇CPU當前工作的通用寄存器組。通用寄存器共有四組,其對應關系為:

37、 RS1 RS0 寄存器組 片內RAM地址0 0第0組00H07H0 1第1組08H0FH 1 0第2組10H17H 1 1第3組18H1FH這兩個選擇位的狀態是由軟件設置的,被選中的寄存器組即為當前通用寄存器組。但當單片機上電或復位后,RS1 RS0=00。OV(PSW.2)溢出標志位。在帶符號數加減運算中,OV=1表示加減運算超出了累加器A所能表示的符號數有效范圍(-128 +127),即產生了溢出,因此運算結果是錯誤;否則,OV=0表示運算正確,即無溢出產生。在乘法運算中,OV=1表示乘積超過255,即乘積分別在B與A中;否則,OV=0,表示乘積只在A中。在除法運算中,OV=1表示除數為

38、0,除法不能進行;否則,OV=0,除數不為0,除法可正常進行。P(PSW.0)奇偶標志位。表明累加器A內容的奇偶性,如果A中有奇數個“1”,則P置“1”,否則置“0”。凡是改變累加器A中內容的指令均會影響P標志位。此標志位對串行通信中的數據傳輸有重要的意義。在串行通信中常采用奇偶校驗的辦法來校驗數據傳輸的可靠性。 (5) 數據指針(DPTR)數據指針為16位寄存器,它是MCS-51中一個16位寄存器。編程時,DPTR既可以按16位寄存器使用,也可以按兩個8位寄存器分開使用,即:DPH DPTR高位字節DPL DPTR低位字節DPTR通常在訪問外部數據存儲器時作地址指針使用,由于外部數據存儲器的

39、尋址范圍為64KB,故把DPTR設計為16位。(6)堆棧指針(SP-Stack Pointer)堆棧是一個特殊的存儲區,用來暫存數據和地址,它是按“先進后出”的原則存取數據的。堆棧共有兩種操作:進棧和出棧。MCS-51單片機由于堆棧設在內部RAM中, 因此SP是一個8位寄存器. 系統復位后,SP的內容為07H, 使得堆棧實際上從08H單元開始。但08H1FH單元分別屬于工作寄存器13區, 如程序中要用到這些區,則最好把SP值改為1FH或更大的值.一般地,堆棧最好在內部RAM的30H7FH單元中開辟. SP的內容一經確定,堆棧的位置也就跟著確定下來,由于SP可初始化為不同值,因此堆棧位置是浮動的

40、。此處只集中講述了六個專用寄存器,其余的專用寄存器(如TCON、TMOD、IE、IP、SCON、PCON、SBUF等)將在以后章節中陸續介紹。2) 專用寄存器中的字節尋址和位地址MCS-51系列單片機有21個可尋址的專用寄存器,其中有11個專用寄存器是可以位尋址的。下面把各寄存器的字節地址及位地址一并列于表1.4。表1.4 MCS-51 專用寄存器地址表SFR MSB 位地址/位定義 LSB字節地址 BF7 F6F5F4F3F2 F1 F0F0H ACCE7E6E5E4E3 E2E1E0 E0H PSWD7D6D5D4D3D2D1D0 D0HCYACF0RS1RS0OVF1PIPBFBEBDB

41、CBBBAB9B8B8H/PSPT1PX1PT0PX0 P3B7B6B5B4B3B2B1B0B0HP3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0 IEAFAEADACABAAA9A8A8HEA/ESET1EX1ET0EX0 P2A7A6A5A4A3A2A1A0A0HP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0 SBUF(99H) SCON9F9E9D9C9B9A999898HSM0SM1SM2RENTB8RB8TIRI P19796959493929190 90HP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0 TH1 (8DH)TH0 (

42、8CH) TL1 (8BH) TL0 (8AH) TMODGATC/TM1M0GATC/TM1M0 (89H) TCON8F8E8D8C8B8A8988 88HTF1TR1TF0TR0IE1IT1IE0IT0PCONSMO/ (87H)DPH (83H) DPL (82H) SP (81H) P08786858483828180 80HP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0對專用寄存器的字節尋址問題作如下幾點說明:(1) 21個可字節尋址的專用寄存器是不連續地分散在內部RAM高128單元之中,盡管還余有許多空閑地址,但用戶并不能使用。(2) 程序計數器PC不占據RAM

43、單元,它在物理上是獨立的,因此是不可尋址的寄存器。(3) 對專用寄存器只能使用直接尋址方式,書寫時既可使用寄存器符號,也可使用寄存器單元地址。表中凡字節地址不帶括號的寄存器都是可進行位尋址的寄存器,而帶括號的是不可位尋址的寄存器,如表所列。全部專用寄存器可尋址的位共83位,這些位都具有專門的定義和用途。這樣加上位尋址區的128位,在MCS-51的內部RAM中共有128+83=211個可尋址位。1.2.3 MCS-51內部程序存儲器MCS-51的程序存儲器用于存放編好的程序和表格常數。8051片內有4KB的ROM, 8751片內有4KB的EPROM, 8031 片內無程序存儲器。 MCS-51

44、的片外最多能擴展64K字節程序存儲器,片內外的ROM 是統一編址的。 如端保持高電平, 8051 的程序計數器PC在0000H0FFFH地址范圍內 (即前4KB地址) 是執行片內ROM中的程序, 當PC在1000HFFFFH地址范圍時, 自動執行片外程序存儲器中的程序,當保持低電平時,只能尋址外部程序存儲器, 片外存儲器可以從0000H開始編址.MCS-51的程序存儲器中有些單元具有特殊功能,使用時應予以注意。其中一組特殊單元是0000H0002H。系統復位后,(PC)=0000H,單片機從0000H單元開始取指令執行程序。如果程序不從0000H單元開始,應在這三個單元中存放一條無條件轉移指令

45、,以便直接轉去執行指定的程序。還有一組特殊單元是0003H002AH。共40個單元,這40個單元被均勻地分為五段,作為五個中斷源的中斷地址區。其中:0003H000AH 外部中斷0中斷地址區000BH0012H 定時器/計數器0中斷地址區0013H001AH 外部中斷1中斷地址區001BH0022H 定時器/計數器1中斷地址區0023H002AH 串行中斷地址區中斷響應后,按中斷種類,自動轉到各中斷區的首地址去執行程序。因此在中斷地址區中理應存放中斷服務程序。但通常情況下,8個單元難以存下一個完整的中斷服務程序,因此通常也是從中斷地址區首地址開始存放一條無條件轉移指令,以便中斷響應后,通過中斷

46、地址區,再轉到中斷服務程序的實際入口地址去。13 并行輸入/輸出口電路結構單片機芯片內還有一項主要內容就是并行I/O口。MCS-51共有四個8位的并行I/O口,分別記作P0、P1、P2、P3。每個口都包含一個鎖存器,一個輸出驅動器和輸入緩沖器。實際上它們已被歸入專用寄存器之列,并且具有字節尋址和位尋址功能。在訪問片外擴展存儲器時,低8位地址和數據由P0口分時傳送,高8位地址由P2口傳送。在無片外擴展存儲器的系統中,這4個口的每一位均可作為雙向的I/O端口使用。MCS-51單片機的四個I/O口都是8位雙向口,這些口在結構和特性上是基本相同的,但又各具特點,以下分別介紹。1.3.1 P0口P0口的

47、口線邏輯電路如圖1.7所示。 圖1.7 P0口某位結構由圖可見,電路中包含有1個數據輸出鎖存器、2個三態數據輸入緩沖器、1個數據輸出的驅動電路和1個輸出控制電路。當對P0口進行寫操作時,由鎖存器和驅動電路構成數據輸出通路。由于通路中已有輸出鎖存器,因此數據輸出時可以與外設直接連接,而不需再加數據鎖存電路。考慮到P0口既可以作為通用的I/O口進行數據的輸入輸出,也可以作為單片機系統的地址/數據線使用。為此在P0口的電路中有一個多路轉接電路MUX。在控制信號的作用下,多路轉接電路可以分別接通鎖存器輸出或地址/數據線。當作為通用的I/O口使用時,內部的控制信號為低電平,封鎖與門將輸出驅動電路的上拉場

48、效應管(FET)截止,同時使多路轉接電路MUX接通鎖存器Q端的輸出通路。當P0口作為輸出口使用時,內部的寫脈沖加在D觸發器的CP端,數據寫入鎖存器,并向端口引腳輸出。當P0口作為輸入口使用時,應區分讀引腳和讀端口兩種情況。為此在口電路中有兩個用于讀入驅動的三態緩沖器。所謂讀引腳就是讀芯片引腳的數據,這時使用下方的數據緩沖器,由“讀引腳”信號把緩沖器打開,把端口引腳上的數據從緩沖器通過內部總線讀進來。使用傳送指令(MOV)進行讀口操作都是屬于這種情況。而讀端口則是指通過上面的緩沖器讀鎖存器Q端的狀態。在端口已處于輸出狀態的情況下,本來Q端與引腳的信號是一致的,這樣安排的目的是為了適應對口進行“讀

49、-修改-寫”操作指令的需要。例如“ANL P0,A”就是屬于這類指令,執行時先讀入P0口鎖存器中的數據。然后與A的內容進行邏輯與,再把結果送回P0口。對于這類“讀-修改-寫”指令,不直接讀引腳而讀鎖存器是為了避免可能出現的錯誤。因為在端口已處于輸出狀態的情況下,如果端口的負載恰是一個晶體管的基極,導通了的PN結會把端口引腳的高電平拉低,這樣直接引腳就會把本來的“1”誤讀為“0”。但若從鎖存器Q端讀,就能避免這樣的錯誤,得到正確的數據。但要注意,當P0口進行一般的I/O輸出時,由于輸出電路是漏極開路電路,必須外接上拉電阻才能有高電平輸出;當P0口進行一般的I/O輸入時,必須先向電路中的鎖存器寫入

50、“1”,使FET截止,以避免鎖存器為“0”狀態時對引腳讀入的干擾。在實際應用中,P0口絕大多數情況下都是作為單片機系統的地址/數據線使用,這要比作一般I/O口應用簡單。當輸出地址或數據時,由內部發出控制信號,打開上面的與門,并使多路轉接電路MUX處于內部地址/數據線與驅動場效應管柵極反相接通狀態.這時的輸出驅動電路由于上下兩個FET處于反相,形成推拉式電路結構,使負載能力大為提高.而當輸入數據時,數據信號則直接從引腳通過輸入緩沖器進入內部總線.1.3.2 P1口P1口的口線邏輯電路見圖1.8。因為P1口通常是作為通用I/O口使用的,所以在電路結構上與P0口有一些不同之處.首先它不再需要多路轉接

51、電路MUX;其次是電路的內部有上拉電阻,與場效應管共同組成輸出驅動電路。為此P1口作為輸出口使用時,已能向外提供推拉電流負載,無需再外接上拉電阻.當P1口作為輸入口使用時,同樣也需先向其鎖存器寫“1”,使輸出驅動電路的FET截止。 圖1.8 P1口某位結構1.3.3 P2口P2口的口線邏輯電路見圖1.9。 圖1.9 P2口某位結構圖P2口電路中比P1口多了一個多路轉接電路MUX,這又正好與P0口一樣。P2口可以作為通用I/O口使用。這時多路轉接開頭倒向鎖存器Q端。但通常應用情況下,P2口是作為高位地址線使用,此時多路轉接開頭應倒向相反方向。1.3.4 P3口P3口的口線邏輯電路見圖1.10。 圖1.10 P3口某位結構P3口的特點在于為適應引腳信號第二功能的需要,增加了第二功能控制邏輯。由于第二功能信號有輸入和輸出兩類,因此分兩種情況說明。對于第二功能為輸出的信號引腳,當作為I/O使用時,第二功能信號引線應保持高電平,與非門開通,以維持從鎖存器到輸出端數據輸出通路的暢通。當輸出第二功能信號時,該位的鎖存器應置“1”,使與非門對第二功能信號的輸出是暢通的,從而實現第二功能信號的輸出。對于第二功能為輸入的信號引腳,在口線的輸入通路上增加了一個緩沖器,輸入的第二功能信號就從這個緩沖器的輸出端取得。而作為I/O使用的數據輸入,仍取自三態緩沖器的輸出端。不管是作為輸入口使用還是第二功

溫馨提示

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

評論

0/150

提交評論