單片機應(yīng)用技術(shù)第1章課件_第1頁
單片機應(yīng)用技術(shù)第1章課件_第2頁
單片機應(yīng)用技術(shù)第1章課件_第3頁
單片機應(yīng)用技術(shù)第1章課件_第4頁
單片機應(yīng)用技術(shù)第1章課件_第5頁
已閱讀5頁,還剩94頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實訓(xùn)1信號燈的控制1

1.1概述

1.2MCS-51單片機結(jié)構(gòu)和原理

1.3并行輸入/輸出口電路結(jié)構(gòu)

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

單片機硬件系統(tǒng)實訓(xùn)1信號燈的控制1 返回主目錄第1章單片機硬件系第1章單片機硬件系統(tǒng)

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

第1章單片機硬件系統(tǒng)

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

此外,本系統(tǒng)還擴展了一片74LS245(8總線接收/發(fā)送器),一片74LS373(8D三態(tài)輸出鎖存器),一片74LS138(3-8線譯碼器)和一片74LS240(8位反碼三態(tài)輸出驅(qū)動器)。本書將以此實訓(xùn)實驗系統(tǒng)電路為基礎(chǔ)開展8個實訓(xùn)項目和課程設(shè)計,從而使讀者掌握單片機的硬件結(jié)構(gòu)、軟件編程及調(diào)試。2)向EPROM2764寫入程序機器碼通過程序固化器將下列程序中對應(yīng)的機器碼依次寫入到EPROM2764的0000H~0015H地址單元中:此外,本系統(tǒng)還擴展了一片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開始重復(fù)7BFF 000CH DELAY:MOVR3,#0FFH ;一段延時子程序機器碼地址7CFF000EHDEL2: MOV R4,#0FFH000010H DEL1: NOPDCFD0011H DJNZ R4,DEL1DBF9 0013H DJNZ R3,DEL222 0015H RET;子程序返回 END;表示程序結(jié)束7CFF000EHDEL2:上列程序表由幾部分組成。左邊所列的一組十六進(jìn)制數(shù)是機器碼,以及機器碼在存儲器中的存貯地址(0000H~0015H)。機器碼是計算機可以識別的語言,例如75,90,00等。這些是我們寫入2764的內(nèi)容,它們是一段程序。中間所列的是和機器碼對應(yīng)的源程序(一系列指令),例如:MOVP1,#00H。關(guān)于單片機的指令以及程序設(shè)計將在第3、4章詳細(xì)介紹,在第4章的實訓(xùn)4中也會重點討論上述程序。最右邊所列的是對程序的簡單說明,以便于閱讀。程序固化器的具體操作過程可參見相應(yīng)的說明書。上列程序表由幾部分組成。左邊所列的一組十六3)運行程序?qū)懞玫腅PROM插入實訓(xùn)電路板相應(yīng)位置,再接上電源,啟動運行,觀察8個發(fā)光二極管的亮滅狀態(tài)。

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

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

1.1.1單片機及單片機應(yīng)用系統(tǒng)

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

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

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

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

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

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

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

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

圖1.2單片機內(nèi)部結(jié)構(gòu)示意圖

單片機實質(zhì)上是一個芯片。在實際應(yīng)用中,通常很難將單片機直接和被控對象進(jìn)行電氣連接,必須外加各種擴展接口電路、外部設(shè)備、被控對象等硬件和軟件,才能構(gòu)成一個單片機應(yīng)用系統(tǒng)。

單片機實質(zhì)上是一個芯片。在實際應(yīng)用中,

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

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

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

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

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

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

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

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

1.2.1MCS-51單片機的內(nèi)部組成及信號引腳

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

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

1.

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

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

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

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

2.?MCS-51的信號引腳

MCS-51是標(biāo)準(zhǔn)的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位雙向口線。從上述內(nèi)容可以看出,MCS-51雖圖1.5MCS-51引腳圖圖1.5MCS-51引腳圖

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

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

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

引腳第二功能信號名稱P3.0RXD串行數(shù)據(jù)接收P3.1TXD串行數(shù)據(jù)發(fā)送P3.2

外部中斷0申請P3.3

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

外部RAM寫選通P3.7

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

引腳第二功能信號名稱P

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

1.2.2MCS-51內(nèi)部數(shù)據(jù)存儲器

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

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

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

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

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

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

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

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

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

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

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

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

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

SFR MSB位地址/位定義LSB 字節(jié)地址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續(xù)表(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)續(xù)表(2)IE AF AE AD AC AB AA A9 A續(xù)表(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 續(xù)表(3)TH0 (8CH)TL1 對專用寄存器的字節(jié)尋址問題作如下幾點說明:(1)21個可字節(jié)尋址的專用寄存器是不連續(xù)地分散在內(nèi)部RAM高128單元之中,盡管還余有許多空閑地址,但用戶并不能使用。(2)程序計數(shù)器PC不占據(jù)RAM單元,它在物理上是獨立的,因此是不可尋址的寄存器。(3)對專用寄存器只能使用直接尋址方式,書寫時既可使用寄存器符號,也可使用寄存器。對專用寄存器的字節(jié)尋址問題作如下幾點說明:

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

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

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

中斷響應(yīng)后,按中斷種類,自動轉(zhuǎn)到各中斷區(qū)的首地址去執(zhí)行程序,因此在中斷地址區(qū)中理應(yīng)存放中斷服務(wù)程序。但通常情況下,8個單元難以存下一個完整的中斷服務(wù)程序,因此通常也是從中斷地址區(qū)首地址開始存放一條無條件轉(zhuǎn)移指令,以便中斷響應(yīng)后,通過中斷地址區(qū),再轉(zhuǎn)到中斷服務(wù)程序的實際入口地址。中斷響應(yīng)后,按中斷種類,自動轉(zhuǎn)到各中1.3并行輸入/輸出口電路結(jié)構(gòu)

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

單片機芯

1.3.1P0口

P0口的口線邏輯電路如圖1.7所示。圖1.7P0口某位結(jié)構(gòu)1.3.1P0口圖1.7P0口某位結(jié)構(gòu)

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

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

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

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

1.3.2P1口

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

圖1.8P1口某位結(jié)構(gòu)

1.3.3P2口

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

圖1.9P2口某位結(jié)構(gòu)圖1.3.3P2口圖1.9P2口某位結(jié)構(gòu)圖

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

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

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

圖1.10P3口某位結(jié)構(gòu)

1.3.4P3口圖1.10P3口某位

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

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

1.4.1時鐘電路與時序1.時鐘信號的產(chǎn)生

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

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

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

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

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

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

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

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

指令的運算速度與指令所包含的機器周期有關(guān),機器周期數(shù)越少的指令執(zhí)行速度越快。MCS-51單片機通??梢苑譃閱沃芷谥噶?、雙周期指令和四周期指令等三種。四周期指令只有乘法和除法指令兩條,其余均為單周期和雙周期指令。

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

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

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

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

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論