單片機應用技術第1章課件_第1頁
單片機應用技術第1章課件_第2頁
單片機應用技術第1章課件_第3頁
單片機應用技術第1章課件_第4頁
單片機應用技術第1章課件_第5頁
已閱讀5頁,還剩94頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

實訓1信號燈的控制1

1.1概述

1.2MCS-51單片機結構和原理

1.3并行輸入/輸出口電路結構

1.4時鐘電路與復位電路 返回主目錄第1章

單片機硬件系統實訓1信號燈的控制1 返回主目錄第1章單片機硬件系第1章單片機硬件系統

1.實訓目的(1)了解單片機實驗系統的基本組成及功能。(2)通過最簡應用系統實例了解單片機的基本工作過程。2.實訓設備與器件實訓設備:單片機開發系統,程序固化器。實訓電路:參見附錄1原理圖。3.實訓步驟及要求1)分析附錄1所示的原理圖,了解以8031為基礎的單片實驗系統的基本組成及功能

第1章單片機硬件系統

1.實訓目的1)分析附錄1所示的原理圖,了解以8031為基礎的單片機實驗系統的基本組成及功能本實訓系統的核心器件是8031單片機芯片,同時外部還擴展了一片EPROM2764、一片RAM6264、一片EEPROM2864A、一片8155、一片ADC0809和MAX232等。下面首先將這些主要芯片的功能簡單介紹如下:(1)EPROM2764:紫外線可擦除、電可編程的只讀存儲器,通常用于存放編制好的程序和常數表格。(2)RAM6264:靜態隨機存儲器,通常用于存放采集到的原始數據、處理中的數據及最后的結果。1)分析附錄1所示的原理圖,了解以803(3)EEPROM2864A:電可擦除、電可編程的只讀存儲它是近年來廣泛被使用的一種只讀存儲器。其主要優點是能在應用系統中進行在線改寫,并能在斷電情況下保存數據而不需要保護電源。它兼有程序存儲器與數據存儲器的特點。關于上述三種存儲器以及與單片機的連接、使用將在第6章詳細介紹。(4)8155:一種可編程的RAM和I/O接口芯片,本實訓系統主要用它來作擴展鍵盤和數碼管顯示的接口。詳細內容將在第6、7章介紹。(5)ADC0809:一種8路模擬輸入的8位逐次逼近式A/D轉換器件。詳細內容將在第7章介紹。(6)MAX232:標準的串行口電平轉換器,用來將單片機和PC機聯系起來,將在第8章介紹。(3)EEPROM2864A:電可擦除、電可

此外,本系統還擴展了一片74LS245(8總線接收/發送器),一片74LS373(8D三態輸出鎖存器),一片74LS138(3-8線譯碼器)和一片74LS240(8位反碼三態輸出驅動器)。本書將以此實訓實驗系統電路為基礎開展8個實訓項目和課程設計,從而使讀者掌握單片機的硬件結構、軟件編程及調試。2)向EPROM2764寫入程序機器碼通過程序固化器將下列程序中對應的機器碼依次寫入到EPROM2764的0000H~0015H地址單元中:此外,本系統還擴展了一片74機器碼地址程序 ORG 0000H ;表示程序從地址0000H存放759000 0000H START: MOV P1,#00H

1117 0003H ACALL DELAY ;延時一段時間,便于觀察7590FF 0005H MOV P1,#0FFH

1117 0008H ACALL DELAY ;延時80E9 000AH SJMP START ;返回,從START開始重復7BFF 000CH DELAY:MOVR3,#0FFH ;一段延時子程序機器碼地址7CFF000EHDEL2: MOV R4,#0FFH000010H DEL1: NOPDCFD0011H DJNZ R4,DEL1DBF9 0013H DJNZ R3,DEL222 0015H RET;子程序返回 END;表示程序結束7CFF000EHDEL2:上列程序表由幾部分組成。左邊所列的一組十六進制數是機器碼,以及機器碼在存儲器中的存貯地址(0000H~0015H)。機器碼是計算機可以識別的語言,例如75,90,00等。這些是我們寫入2764的內容,它們是一段程序。中間所列的是和機器碼對應的源程序(一系列指令),例如:MOVP1,#00H。關于單片機的指令以及程序設計將在第3、4章詳細介紹,在第4章的實訓4中也會重點討論上述程序。最右邊所列的是對程序的簡單說明,以便于閱讀。程序固化器的具體操作過程可參見相應的說明書。上列程序表由幾部分組成。左邊所列的一組十六3)運行程序將寫好的EPROM插入實訓電路板相應位置,再接上電源,啟動運行,觀察8個發光二極管的亮滅狀態。

4.實訓分析與總結(1)實訓結果是:實訓電路板中的8個發光二極管按照全亮、全滅的規律不停地循環變化。(2)本實訓所涉及的電路可參見附錄1原理圖的左上角:單片機的1~8引腳通過集成芯片74LS240(8個非門)接到8個發光二極管上。8個發光二極管的陽極通過一個限流電阻接+5V電源,8個陰極連在一起接地。單片機的這8個引腳對應其內部的一個并行I/O口——P1口(有關P1口的具體結構在本章正文中介紹)。這些是本實訓所涉及的硬件部分。3)運行程序從附錄原理圖可見,當P1口的某個引腳為低電平時,相應的發光二極管變亮;當P1口的某個引腳為高電平時,相應的發光二極管熄滅。這樣,我們可以通過向P1口寫入一個8位二進制數來改變每個管腳的電平狀態。通過相應指令可以向P1口寫入數據。實訓程序中的第一條指令MOVP1,#00H(其中#表示其后面為常數,H表示其前面的常數為十六進制數,寫成二進制形式為#00000000B,B表示二進制數)對應的機器碼為75H90H00H,表示將數據00H送給P1口。這樣,P1口的8個管腳狀態與寫入數據之間的關系如下:從附錄原理圖可見,當P1口的某個引腳為低電平寫入數據位D7D6D5D4D3D2D1D000000000對應P1口管腳名稱P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0管腳電平狀態低低低低低低低低發光二極管狀態亮亮亮亮亮亮亮 亮所以,在通電運行后,發光二極管會出現全亮的狀態。同理,當執行程序中的第三條指令MOVP1,#FFH(即#11111111B)時,發光二極管會全滅。 由此可見,我們可以通過軟件——程序來完成對硬件電路的控制。寫入數據位D

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

1.1.1單片機及單片機應用系統

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

1.1.1單微型計算機系統由硬件系統和軟件系統兩大部分組成。硬件系統是指構成微機系統的實體和裝置,通常由運算器、控制器、存儲器、輸入接口電路和輸入設備、輸出接口電路和輸出設備等組成。其中,運算器和控制器一般做在一個集成芯片上,統稱中央處理單元(CentralProcessingUnit),簡稱CPU,是微機的核心部件。CPU配上存放程序和數據的存儲器、輸入/輸出(Input/Output,簡稱I/O)接口電路以及外部設備即構成微機的硬件系統。微型計算機系統由硬件系統和軟件系統軟件系統是微機系統所使用的各種程序的總稱。人們通過它對整機進行控制并與微機系統進行信息交換,使微機按照人的意圖完成預定的任務。

軟件系統與硬件系統共同構成完整的微機系統,兩者輔相成,缺一不可。微型計算機系統組成示意圖如圖1.1所示。

軟件系統是微機系統所使用的各種程序圖1.1微型計算機系統組成示意圖圖1.1微型計算機系統組成示意圖下面把組成計算機的5個基本部件作簡單說明。1)運算器運算器是計算機的運算部件,用于實現算術和邏輯運算。計算機的數據運算和處理都在這里進行。2)控制器控制器是計算機的指揮控制部件,它控制計算機各部分自動、協調地工作。運算器和控制器是計算機的核心部分,常把它們合在一起稱之為中央處理器,簡稱CPU。

下面把組成計算機的5個基本部件作

3)存儲器存儲器是計算機的記憶部件,用于存放程序和數據。存儲器又分為內存儲器和外存儲器。實訓中使用的EPROM2764便是存貯器。

4)輸入設備輸入設備用于將程序和數據輸入到計算機中,如鍵盤等。5)輸出設備輸出設備用于把計算機數據計算或加工的結果,以用戶需要的形式顯示或打印出來,如顯示器、打印機等。3)存儲器通常把外存儲器、輸入設備和輸出設備合在一起稱之為計算機的外部設備,簡稱“外設”。

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

圖1.2單片機內部結構示意圖

單片機實質上是一個芯片。在實際應用中,通常很難將單片機直接和被控對象進行電氣連接,必須外加各種擴展接口電路、外部設備、被控對象等硬件和軟件,才能構成一個單片機應用系統。

單片機實質上是一個芯片。在實際應用中,

3.單片機應用系統及組成單片機應用系統是以單片機為核心,配以輸入、輸出、顯示、控制等外圍電路和軟件,能實現一種或多種功能的實用系統。本書的實訓電路板也是一個單片機的應用系統,它除了有單片機芯片以外,還有許多的外圍電路,如果再配以后續章節所講的一系列的實訓程序,便可以完成很多功能。所以說,單片機應用系統是由硬件和軟件組成的,硬件是應用系統的基礎,軟件則在硬件的基礎上對其資源進行合理調配和使用,從而完成應用系統所要求的任務,二者相互依賴,缺一不可。單片機應用系統的組成如圖1.3所示。3.單片機應用系統及組成圖1.3單片機應用系統的組成

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

盡管各類單片機很多,但無論是從世界范圍或是從全國范圍來看,使用最為廣泛的應屬MCS-51單片機。基于這一事實,本書以應用最為廣泛的MCS-51系列8位單片機(8031、8051、8751等)為研究對象,介紹單片機的硬件結構、工作原理及應用系統的設計。MCS-51單片機系列共有十幾種芯片,如表1.1所示。1.1.2MCS-51單片機系列表1.1MCS-51系列單片機分類表

子系列片內ROM形式片內ROM容量片內RAM容量尋址范圍I/O特性中斷源無ROMEPROM計數器并行口串行口51子系列8031805187514KB128B2×64KB2×164×81580C3180C5187C514KB128B2×64KB2×164×81552子系統8032805287528KB256B2×64KB3×164×81680C3280C5287C528KB256B2×64KB3×164×816表1.1MCS-51系列單片機分類表

子系列片內ROM形表中列出了MCS-51單片機系列的芯片型號,以及它們的技術性能指標,使我們對它們的基本情況有了一個概括的了解。下面我們就在這個表的基礎上對MCS-51系列單片機作進一步說明。

1.51子系列和52子系列MCS-51系列又分為51和52兩個子系列,并以芯片型號的最末位數字作為標志。其中,51子系列是基本型,而52子系列則屬增強型。52子系列功能增強的具體方面,從表1.1所列內容中可以看出:表中列出了MCS-51單片機系列的芯

(1)片內ROM從4KB增加到8KB。(2)片內RAM從128B增加到256B。(3)定時/計數器從2個增加到3個。(4)中斷源從5個增加到6個。在52子系列的內部ROM中,以掩膜方式集成有8KBBASIC解釋程序,這就是通常所說的8052-BASIC。這意味著單片機已可以使用高級語言。該BASIC與基本BASIC相比,增加了一些控制語句,以滿足單片機作為控制機的需要。(1)片內ROM從4KB增加到8KB2.單片機芯片半導體工藝MCS-51系列單片機采用兩種半導體工藝生產。一種是HMOS工藝,即高速度、高密度、短溝道MOS工藝。另外一種是CHMOS工藝,即互補金屬氧化物的HMOS工藝。表1.1中,芯片型號中帶有字母“C”的,為CHMOS芯片,其余均為一般的HMOS芯片。CHMOS是CMOS和HMOS的結合,除保持了HMOS高速度和高密度的特點之外,還具有CMOS低功耗的特點。例如8051的功耗為630mW,而80C51的功耗只有120mW。在便攜式、手提式或野外作業儀器設備上,低功耗是非常有意義的,因此,在這些產品中必須使用CHMOS的單片機芯片。2.單片機芯片半導體工藝3.片內ROM存儲器配置形式

MCS-51單片機片內程序存儲器有三種配置形式,即掩膜ROM、EPROM和無ROM。這三種配置形式對應三種不同的單片機芯片,它們各有特點,也各有其適用場合,在使用時應根據需要進行選擇。一般情況下,片內帶掩膜型ROM適用于定型大批量應用產品的生產;片內帶EPROM適合于研制產品樣機;外接EPROM的方式適用于研制新產品。最近,Intel公司又推出片內帶EEPROM型的單片機,可以在線寫入程序。3.片內ROM存儲器配置形式1.2MCS-51單片機結構和原理

1.2.1MCS-51單片機的內部組成及信號引腳

MCS-51單片機的典型芯片是8031、8051、8751。8051內部有4KBROM,8751內部有4KBEPROM,8031內部無ROM;除此之外,三者的內部結構及引腳完全相同。因此,以8051為例,說明本系列單片機的內部組成及信號引腳。1.8051單片機的基本組成

8051單片機的基本組成請參見圖1.4。下面介紹各部分的基本情況。1.2MCS-51單片機結構和原理

1.

1)中央處理器(CPU)中央處理器是單片機的核心,完成運算和控制功能。MCS-51的CPU能處理8位二進制數或代碼。2)內部數據存儲器(內部RAM)8051芯片中共有256個RAM單元,但其中后128單元被專用寄存器占用,能作為寄存器供用戶使用的只是前128單元,用于存放可讀寫的數據。因此通常所說的內部數據存儲器就是指前128單元,簡稱內部RAM。

1)中央處理器(CPU)圖1.4MCS-51單片機結構框圖圖1.4MCS-51單片機結構框圖3)內部程序存儲器(內部ROM)8051共有4KB掩膜ROM,用于存放程序、原始數據或表格,因此,稱之為程序存儲器,簡稱內部ROM。4)定時/計數器8051共有兩個16位的定時/計數器,以實現定時或計數功能,并以其定時或計數結果對計算機進行控制。5)并行I/O口MCS-51共有4個8位的I/O口(P0、P1、P2、P3),以實現數據的并行輸入/輸出。在實訓中我們已經使用了P1口,通過P1口連接8個發光二極管。3)內部程序存儲器(內部ROM)

6)串行口MCS-51單片機有一個全雙工的串行口,以實現單片機和其它設備之間的串行數據傳送。該串行口功能較強,既可作為全雙工異步通信收發器使用,也可作為同步移位器使用。7)中斷控制系統MCS-51單片機的中斷功能較強,以滿足控制應用的需要。8051共有5個中斷源,即外中斷兩個,定時/計數中斷兩個,串行中斷一個。全部中斷分為高級和低級共兩個優先級別。8)時鐘電路MCS-51芯片的內部有時鐘電路,但石英晶體和微調電容需外接。時鐘電路為單片機產生時鐘脈沖序列。系統允許的晶振頻率一般為6MHz和12MHz。6)串行口

從上述內容可以看出,MCS-51雖然是一個單片機芯片,但作為計算機應該具有的基本部件它都包括,因此,實際上它已是一個簡單的微型計算機系統了。

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位雙向口線。從上述內容可以看出,MCS-51雖圖1.5MCS-51引腳圖圖1.5MCS-51引腳圖

ALE:地址鎖存控制信號。在系統擴展時,ALE用于控制把P0口輸出的低8位地址鎖存起來,以實現低位地址和數據的隔離。此外,由于ALE是以晶振1/6的固定頻率輸出的正脈沖,因此,可作為外部時鐘或外部定時脈沖使用。:外部程序存儲器讀選通信號。在讀外部ROM時,有效(低電平),以實現外部ROM單元的讀操作。:訪問程序存儲控制信號。當信號為低電平時,對ROM的讀操作限定在外部程序存儲器;當信號為高電平時,對ROM的讀操作是從內部程序存儲器開始,并可延至外部程序存儲器。ALE:地址鎖存控制信號。在系統擴

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

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

引腳第二功能信號名稱P3.0RXD串行數據接收P3.1TXD串行數據發送P3.2

外部中斷0申請P3.3

外部中斷1申請P3.4T0定時/計數器0的外部輸入P3.5T1定時/計數器1的外部輸入P3.6

外部RAM寫選通P3.7

外部RAM讀選通表1.2P3口各引腳與第二功能表

引腳第二功能信號名稱P

(3)備用電源引入。MCS-51單片機的備用電源也是以第二功能的方式由9腳(RST/VPD)引入的。當電源發生故障,電壓降低到下限值時,備用電源經此端向內部RAM提供電壓,以保護內部RAM中的信息不丟失。以上把MCS-51單片機的全部信號引腳分別以第一功能和第二功能的形式列出。對于各種型號的芯片,其引腳的第一功能信號是相同的,所不同的只在引腳的第二功能信號。對于9、30和31三個引腳,由于第一功能信號與第二功能信號是單片機在不同工作方式下的信號,因此不會發生使用上的矛盾。但是P3口的情況卻有所不同,它的第二功能信號都是單片機的重要控制信號。因此,在實際使用時,都是先按需要選用第二功能信號,剩下的才以第一功能的身份作數據位的輸入/輸出使用。(3)備用電源引入。MCS-51單片機的

1.2.2MCS-51內部數據存儲器

MCS-51單片機的芯片內部有RAM和ROM兩類存儲器,即所謂的內部RAM和內部ROM,首先分析內部RAM。1.內部數據存儲器低128單元

8051的內部RAM共有256個單元,通常把這256個單元按其功能劃分為兩部分:低128單元(單元地址00H~7FH)和高128單元(單元地址80H~FFH)。圖1.6所示為低128單元的配置圖。1.2.2MCS-51內部數據存儲器30H~7FH數據緩沖區20H~2FH位尋址區(00H~7FH)18H~1FH工作寄存器3區(R7~R0)10H~17H工作寄存器2區(R7~R0)08H~0FH工作寄存器1區(R7~R0)00H~07H工作寄存器0區(R7~R0)圖1.6片內RAM的配置30H~7FH數據緩沖區20H~2FH位尋址區(00H~

低128單元是單片機的真正RAM存儲器,按其用途劃分為寄存器區、位尋址區和用戶RAM區三個區域。1)寄存器區8051共有4組寄存器,每組8個寄存單元(各為8),各組都以R0~R7作寄存單元編號。寄存器常用于存放操作數中間結果等。由于它們的功能及使用不作預先規定,因此稱之為通用寄存器,有時也叫工作寄存器。4組通用寄存器占據內部RAM的00H~1FH單元地址。在任一時刻,CPU只能使用其中的一組寄存器,并且把正在使用的那組寄存器稱之為當前寄存器組。到底是哪一組,由程序狀態字寄存器PSW中RS1、RS0位的狀態組合來決定。低128單元是單片機的真正RAM存儲器,按其

通用寄存器為CPU提供了就近存儲數據的便利,有利于提高單片機的運算速度。此外,使用通用寄存器還能提高程序編制的靈活性,因此,在單片機的應用編程中應充分利用這些寄存器,以簡化程序設計,提高程序運行速度。2)位尋址區內部RAM的20H~2FH單元,既可作為一般RAM單元使用,進行字節操作,也可以對單元中每一位進行位操作,因此把該區稱之為位尋址區。位尋址區共有16個RAM單元,計128位,地址為00H~7FH。MCS-51具有布爾處理機功能,這個位尋址區可以構成布爾處理機的存儲空間。這種位尋址能力是MCS-51的一個重要特點。表1.3為位尋址區的位地址。通用寄存器為CPU提供了就近存儲數據的便利,單元地址MSB位地址LSB2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F077E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800表1.3片內RAM位尋址區的位地址單元地址MSB位地址3)用戶RAM區在內部RAM低128單元中,通用寄存器占去32個單元,位尋址區占去16個單元,剩下80個單元,這就是供用戶使用的一般RAM區,其單元地址為30H~7FH。對用戶RAM區的使用沒有任何規定或限制,但在一般應用中常把堆棧開辟在此區中。

2.內部數據存儲器高128單元內部RAM的高128單元是供給專用寄存器使用的,其單元地址為80H~FFH。因這些寄存器的功能已作專門規定,故稱之為專用寄存器(SpecialFunctionRegister),也可稱為特殊功能寄存器。3)用戶RAM區

1)專用寄存器(SFR)簡介8051共有21個專用寄存器,現把其中部分寄存器簡單介紹如下:(1)程序計數器(PC—ProgramCounter)。在實訓中,我們已經知道PC是一個16位的計數器,它的作用是控制程序的執行順序。其內容為將要執行指令的地址,尋址范圍達64KB。PC有自動加1功能,從而實現程序的順序執行。PC沒有地址,是不可尋址的,因此用戶無法對它進行讀寫,但可以通過轉移、調用、返回等指令改變其內容,以實現程序的轉移。因地址不在SFR(專用寄存器)之內,一般不計作專用寄存器。1)專用寄存器(SFR)簡介

(2)累加器(ACC—Accumulator)。累加器為8位寄存器,是最常用的專用寄存器,功能較多,地位重要。它既可用于存放操作數,也可用來存放運算的中間結果。MCS-51單片機中大部分單操作數指令的操作數就取自累加器,許多雙操作數指令中的一個操作數也取自累加器。(3)B寄存器。B寄存器是一個8位寄存器,主要用于乘除運算。乘法運算時,B存乘數。乘法操作后,乘積的高8位存于B中,除法運算時,B存除數。除法操作后,余數存于B中。此外,B寄存器也可作為一般數據寄存器使用。(2)累加器(ACC—Accumulato

(4)程序狀態字(PSW—ProgramStatusWord)。程序狀態字是一個8位寄存器,用于存放程序運行中的各種狀態信息。其中有些位的狀態是根據程序執行結果,由硬件自動設置的,而有些位的狀態則使用軟件方法設定。PSW的位狀態可以用專門指令進行測試,也可以用指令讀出。一些條件轉移指令將根據PSW有些位的狀態,進行程序轉移。PSW的各位定義如下:(4)程序狀態字(PSW—ProgPSW位地址D7HD6HD5HD4HD3HD2HD1HD0H字節地址D0HCYACF0RS1RS0OVF1P

除PSW.1位保留未用外,其余各位的定義及使用如下:CY(PSW.7)——進位標志位。CY是PSW中最常用的標志位。其功能有二:一是存放算術運算的進位標志,在進行加或減運算時,如果操作結果的最高位有進位或借位時,CY由硬件置“1”,否則清“0”;二是在位操作中,作累加位使用。位傳送、位與位或等位操作,操作位之一固定是進位標志位。PSW位地址D7HD6HD5HD4HD3HD2HD1HD0H

AC(PSW.6)——輔助進位標志位。在進行加減運算中,當低4位向高4位進位或借位時,AC由硬件置“1”,否則AC位被清“0”。在BCD碼調整中也要用到AC位狀態。F0(PSW.5)——用戶標志位。這是一個供用戶定義的標志位,需要利用軟件方法置位或復位,用以控制程序的轉向。RS1和RS0(PSW.4,PSW.3)——寄存器組選擇位。它們被用于選擇CPU當前使用的通用寄存器組。通用寄存器共有4組,其對應關系如下:AC(PSW.6)——輔助進位標志位。在進行RS1RS0寄存器組片內RAM地址00第0組00H~07H01第1組08H~0FH10第2組10H~17H11第3組18H~1FHRS1RS0寄存器組片內RAM地址00第這兩個選擇位的狀態是由軟件設置的,被選中的寄存器組即為當前通用寄存器組。但當單片機上電或復位后,RS1RS0=00。OV(PSW.2)——溢出標志位。在帶符號數加減運算中,OV=1表示加減運算超出了累加器A所能表示的符號數有效范圍(-128~+127),即產生了溢出,因此運算結果是錯誤的,否則,OV=0表示運算正確,即無溢出產生。在乘法運算中,OV=1表示乘積超過255,即乘積分別在B與A中,否則,OV=0,表示乘積只在A中。在除法運算中,OV=1表示除數為0,除法不能進行,否則,OV=0,除數不為0,除法可正常進行。這兩個選擇位的狀態是由軟件設置的,被選中的寄

P(PSW.0)——奇偶標志位。表明累加器A中內容的奇偶性。如果A中有奇數個“1”,則P置“1”,否則置“0”。凡是改變累加器A中內容的指令均會影響P標志位。此標志位對串行通信中的數據傳輸有重要的意義。在串行通信中常采用奇偶校驗的辦法來校驗數據傳輸的可靠性。(5)數據指針(DPTR)。數據指針為16位寄存器。編程時,DPTR既可以按16位寄存器使用,也可以按兩個8位寄存器分開使用,即:DPHDPTR高位字節DPLDPTR低位字節P(PSW.0)——奇偶標志位。表明累加器

DPTR通常在訪問外部數據存儲器時作地址指針使用。由于外部數據存儲器的尋址范圍為64KB,故把DPTR設計為16位。(6)堆棧指針(SP—StackPointer)。堆棧是一個特殊的存儲區,用來暫存數據和地址,它是按“先進后出”的原則存取數據的。堆棧共有兩種操作:進棧和出棧。由于MCS-51單片機的堆棧設在內部RAM中,因此SP是一個8位寄存器。系統復位后,SP的內容為07H,從而復位后堆棧實際上是從08H單元開始的。但08H~1FH單元分別屬于工作寄存器1~3區,如程序要用到這些區,最好把SP值改為1FH或更大的值。DPTR通常在訪問外部數據存儲器時作地址指

一般在內部RAM的30H~7FH單元中開辟堆棧。SP的內容一經確定,堆棧的位置也就跟著確定下來,由于SP可初始化為不同值,因此堆棧位置是浮動的。此處,只集中講述了6個專用寄存器,其余的專用寄存器(如TCON、TMOD、IE、IP、SCON、PCON、SBUF等)將在以后章節中陸續介紹。2)專用寄存器中的字節尋址和位地址MCS-51系列單片機有21個可尋址的專用寄存器,其中有11個專用寄存器是可以位尋址的。下面把各寄存器的字節地址及位地址一并列于表1.4中。一般在內部RAM的30H~7FH單元中開辟堆表1.4MCS-51專用寄存器地址表

SFR MSB位地址/位定義LSB 字節地址B F7 F6 F5 F4 F3 F2 F1 F0 F0HACC E7 E6 E5 E4 E3 E2 E1 E0 E0HPSW D7 D6 D5 D4 D3 D2 D1 D0 D0H CY AC F0 RS1 RS0 OV F1 P IP BF BE BD BC BB BA B9 B8 B8H / / / PS PT1 PX1 PT0 PX0 P3 B7 B6 B5 B4 B3 B2 B1 B0 B0H P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 表1.4MCS-51專用寄存器地址表

SFR MSB續表(2)IE AF AE AD AC AB AA A9 A8 A8H EA / / ES ET1 EX1 ET0 EX0 P2 A7 A6 A5 A4 A3 A2 A1 A0 A0H P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 SBUF (99H)SCON 9F 9E 9D 9C 9B 9A 99 98 98H SM0 SM1 SM2 REN TB8 RB8 TI RI P1 97 96 95 94 93 92 91 90 90H P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 TH1 (8DH)續表(2)IE AF AE AD AC AB AA A9 A續表(3)TH0 (8CH)TL1 (8BH)TL0 (8AH)TMOD GATE C/ M1 M0 GATE C/ M1 M0 (89H)TCON 8F 8E 8D 8C 8B 8A 89 88 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 PCON SMOD / / / / / / / (87H)DPH (83H)DPL (82H)SP (81H)P0 87 86 85 84 83 82 81 80 80H P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 續表(3)TH0 (8CH)TL1 對專用寄存器的字節尋址問題作如下幾點說明:(1)21個可字節尋址的專用寄存器是不連續地分散在內部RAM高128單元之中,盡管還余有許多空閑地址,但用戶并不能使用。(2)程序計數器PC不占據RAM單元,它在物理上是獨立的,因此是不可尋址的寄存器。(3)對專用寄存器只能使用直接尋址方式,書寫時既可使用寄存器符號,也可使用寄存器。對專用寄存器的字節尋址問題作如下幾點說明:

表1.4中,凡字節地址不帶括號的寄存器都是可進行位尋址的寄存器,帶括號的是不可位尋址的寄存器。全部專用寄存器可尋址的位共83位,這些位都具有專門的定義和用途。這樣,加上位尋址區的128位,在MCS-51的內部RAM中共有128+83=211個可尋址位。表1.4中,凡字節地址不帶括號的寄1.2.3MCS-51內部程序存儲器

MCS-51的程序存儲器用于存放編好的程序和表格常數。8051片內有4KB的ROM,8751片內有4KB的EPROM,8031片內無程序存儲器。MCS-51的片外最多能擴展64KB程序存儲器,片內外的ROM是統一編址的。如端保持高電平,8051的程序計數器PC在0000H~0FFFH地址范圍內(即前4KB地址)是執行片內ROM中的程序,當PC在1000H~FFFFH地址范圍時,自動執行片外程序存儲器中的程序;當保持低電平時,只能尋址外部程序存儲器,片外存儲器可以從0000H開始編址。1.2.3MCS-51內部程序存儲器

MCS-51的程序存儲器中有些單元具有特殊功能,使用時應予以注意。其中一組特殊單元是0000H~0002H。系統復位后,(PC)=0000H,單片機從0000H單元開始取指令執行程序。如果程序不從0000H單元開始,應在這三個單元中存放一條無條件轉移指令,以便直接轉去執行指定的程序。還有一組特殊單元是0003H~002AH,共40個單元。這40個單元被均勻地分為5段,作為5個中斷源的中斷地址區。其中:0003H~000AH外部中斷0中斷地址區000BH~0012H定時/計數器0中斷地址區0013H~001AH外部中斷1中斷地址區001BH~0022H定時/計數器1中斷地址區0023H~002AH串行中斷地址區MCS-51的程序存儲器中有些單元具有特殊功

中斷響應后,按中斷種類,自動轉到各中斷區的首地址去執行程序,因此在中斷地址區中理應存放中斷服務程序。但通常情況下,8個單元難以存下一個完整的中斷服務程序,因此通常也是從中斷地址區首地址開始存放一條無條件轉移指令,以便中斷響應后,通過中斷地址區,再轉到中斷服務程序的實際入口地址。中斷響應后,按中斷種類,自動轉到各中1.3并行輸入/輸出口電路結構

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

單片機芯

1.3.1P0口

P0口的口線邏輯電路如圖1.7所示。圖1.7P0口某位結構1.3.1P0口圖1.7P0口某位結構

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

讀端口是指通過上面的緩沖器讀鎖存器Q端的狀態。在端口已處于輸出狀態的情況下,Q端與引腳的信號是一致的,這樣安排的目的是為了適應對口進行“讀—修改—寫”操作指令的需要。例如,“ANLP0,A”就是屬于這類指令,執行時先讀入P0口鎖存器中的數據,然后與A的內容進行邏輯與,再把結果送回P0口。對于這類“讀—修改—寫”指令,不直接讀引腳而讀鎖存器是為了避免可能出現的錯誤。因為在端口已處于輸出狀態的情況下,如果端口的負載恰是一個晶體管的基極,導通了的PN結會把端口引腳的高電平拉低,這樣直接讀引腳就會把本來的“1”誤讀為“0”。但若從鎖存器Q端讀,就能避免這樣的錯誤,得到正確的數據。

讀端口是指通過上面的緩沖器讀鎖

但要注意,當P0口進行一般的I/O輸出時,由于輸出電路是漏極開路電路,因此必須外接上拉電阻才能有高電平輸出;當P0口進行一般的I/O輸入時,必須先向電路中的鎖存器寫入“1”,使FET截止,以避免鎖存器為“0”狀態時對引腳讀入的干擾。在實際應用中,P0口絕大多數情況下都是作為單片機系統的地址/數據線使用,這要比作一般I/O口應用簡單。當輸出地址或數據時,由內部發出控制信號,打開上面的與門,并使多路轉接電路MUX處于內部地址/數據線與驅動場效應管柵極反相接通狀態。這時的輸出驅動電路由于上、下兩個FET處于反相,形成推拉式電路結構,使負載能力大為提高。而當輸入數據時,數據信號則直接從引腳通過輸入緩沖器進入內部總線。但要注意,當P0口進行一般的I/O

1.3.2P1口

P1口的口線邏輯電路如圖1.8所示。因為P1口通常是作為通用I/O口使用的,所以在電路結構上與P0口有一些不同之處:首先它不再需要多路轉接電路MUX;其次是電路的內部有上拉電阻,與場效應管共同組成輸出驅動電路。為此,P1口作為輸出口使用時,已經能向外提供推拉電流負載,無需再外接上拉電阻。當P1口作為輸入口使用時,同樣也需先向其鎖存器寫“1”,使輸出驅動電路的FET截止。1.3.2P1口圖1.8P1口某位結構

圖1.8P1口某位結構

1.3.3P2口

P2口的口線邏輯電路如圖1.9所示。

圖1.9P2口某位結構圖1.3.3P2口圖1.9P2口某位結構圖

P2口電路比P1口電路多了一個多路轉接電路MUX,這又正好與P0口一樣。P2口可以作為通用I/O口使用,這時多路轉接電路開關倒向鎖存器Q端。通常情況下,P2口是作為高位地址線使用,此時多路轉接電路開關應倒向相反方向。

P2口電路比P1口電路多了一個多路1.3.4P3口

P3口的口線邏輯電路如圖1.10所示。

圖1.10P3口某位結構

1.3.4P3口圖1.10P3口某位

P3口的特點在于,為適應引腳信號第二功能的需要,增加了第二功能控制邏輯。由于第二功能信號有輸入和輸出兩類,因此分兩種情況說明。對于第二功能為輸出的信號引腳,當作為I/O使用時,第二功能信號引線應保持高電平,與非門開通,以維持從鎖存器到輸出端數據輸出通路的暢通。當輸出第二功能信號時,該位的鎖存器應置“1”,使與非門對第二功能信號的輸出是暢通的,從而實現第二功能信號的輸出。P3口的特點在于,為適應引腳信號第

對于第二功能為輸入的信號引腳,在口線的輸入通路上增加了一個緩沖器,輸入的第二功能信號就從這個緩沖器的輸出端取得。而作為I/O使用的數據輸入,仍取自三態緩沖器的輸出端。不管是作為輸入口使用還是第二功能信號輸入,輸出電路中的鎖存器輸出和第二功能輸出信號線都應保持高電平。對于第二功能為輸入的信號引腳,在口1.4時鐘電路與復位電路

1.4.1時鐘電路與時序1.時鐘信號的產生

在MCS-51芯片內部有一個高增益反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2

。而在芯片的外部,XTAL1和XTAL2之間跨接晶體振蕩器和微調電容,從而構成一個穩定的自激振蕩器,這就是單片機的時鐘電路,如圖1.11所示。時鐘電路產生的振蕩脈沖經過觸發器進行二分頻之后,才成為單片機的時鐘脈沖信號。請讀者特別注意時鐘脈沖與振蕩脈沖之間的二分頻關系,否則會造成概念上的錯誤。1.4時鐘電路與復位電路

1.4.1一般地,電容C1和C2取30pF左右,晶體的振蕩頻率范圍是1.2~12MHz。晶體振蕩頻率高,則系統的時鐘頻率也高,單片機運行速度也就快。MCS-51在通常應用情況下,使用振蕩頻率為6MHz或12MHz。

圖1.11時鐘振蕩電路一般地,電容C1和C2取30pF左右,晶體2.引入外部脈沖信號在由多片單片機組成的系統中,為了各單片機之間時鐘信號的同步,應當引入惟一的公用外部脈沖信號作為各單片機的振蕩脈沖。這時,外部的脈沖信號是經XTAL2引腳注入,其連接如圖1.12所示。

3.時序時序是用定時單位來說明的。MCS-51的時序定時單位共有4個,從小到大依次是:節拍、狀態、機器周期和指令周期。下面分別加以說明。2.引入外部脈沖信號圖1.12外部時鐘源接法圖1.12外部時鐘源接法

1)節拍與狀態把振蕩脈沖的周期定義為節拍(用P表示)。振蕩脈沖經過二分頻后,就是單片機的時鐘信號的周期,其定義為狀態(用S表示)。這樣,一個狀態就包含兩個節拍,具前半周期對應的拍節叫節拍1(P1),后半周期對應的節拍叫節拍2(P2)。2)機器周期MCS-51采用定時控制方式,因此它有固定的機器周期。規定一個機器周期的寬度為6個狀態,并依次表示為S1~S6。由于一個狀態又包括兩個節拍,因此,一個機器周期總共有12個節拍,分別記作S1P1、S1P2、…、S6P2。由于一個機器周期共有12個振蕩脈沖周期,因此機器周期就是振蕩脈沖的十二分頻。1)節拍與狀態

當振蕩脈沖頻率為12MHz時,一個機器周期為1μs;當振蕩脈沖頻率為6MHz時,一個機器周期為2μs。3)指令周期

指令周期是最大的時序定時單位,執行一條指令所需要的時間稱為指令周期。它一般由若干個機器周期組成。不同的指令,所需要的機器周期數也不相同。通常,包含一個機器周期的指令稱為單周期指令,包含兩個機器周期的指令稱為雙周期指令,等等當振蕩脈沖頻率為12MHz時,一個機器周期

指令的運算速度與指令所包含的機器周期有關,機器周期數越少的指令執行速度越快。MCS-51單片機通常可以分為單周期指令、雙周期指令和四周期指令等三種。四周期指令只有乘法和除法指令兩條,其余均為單周期和雙周期指令。

單片機執行任何一條指令時都可以分為取指令階段和執行指令階段。MCS-51的取指/執行時序如圖1.13所示。指令的運算速度與指令所包含的機器周期有關,機圖1.13MCS-51單片機的取指/執行時序

(a)單字節單周期指令;(b)雙字節單周期指令;(c)單字節雙周期指令

圖1.13MCS-51單片機的取指/執行時序

(a)單由圖1.13可見,ALE引腳上出現的信號是周期性的,在每個機器周期內出現兩次高電平。第一次出現在S1P2和S2P1期間,第二次出現在S4P2和S5P1期間。ALE信號每出現一次,CPU就進行一次取指操作,但由于不同指令的字節數和機器周期數不同,因此取指令操作也隨指令不同而有小的差異。按照指令字節數和機器周期數,8051的111條指令可分為6類,分別是:單字節單周期指令、單字節雙周期指令、單字節四周期指令、雙字節單周期指令、雙字節雙周期指令、三字節雙周期指令,可以參見

溫馨提示

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

評論

0/150

提交評論