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

下載本文檔

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

文檔簡(jiǎn)介

實(shí)訓(xùn)1信號(hào)燈的控制1

1.1概述

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

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

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

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

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

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

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

此外,本系統(tǒng)還擴(kuò)展了一片74LS245(8總線接收/發(fā)送器),一片74LS373(8D三態(tài)輸出鎖存器),一片74LS138(3-8線譯碼器)和一片74LS240(8位反碼三態(tài)輸出驅(qū)動(dòng)器)。本書將以此實(shí)訓(xùn)實(shí)驗(yàn)系統(tǒng)電路為基礎(chǔ)開(kāi)展8個(gè)實(shí)訓(xùn)項(xiàng)目和課程設(shè)計(jì),從而使讀者掌握單片機(jī)的硬件結(jié)構(gòu)、軟件編程及調(diào)試。2)向EPROM2764寫入程序機(jī)器碼通過(guò)程序固化器將下列程序中對(duì)應(yīng)的機(jī)器碼依次寫入到EPROM2764的0000H~0015H地址單元中:此外,本系統(tǒng)還擴(kuò)展了一片74機(jī)器碼地址程序 ORG 0000H ;表示程序從地址0000H存放759000 0000H START: MOV P1,#00H

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

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

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

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

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

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

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

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

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

下面把組成計(jì)算機(jī)的5個(gè)基本部件作

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.

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

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

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

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

2.?MCS-51的信號(hào)引腳

MCS-51是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,引腳排列請(qǐng)參見(jiàn)圖1.5。1)信號(hào)引腳介紹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:地址鎖存控制信號(hào)。在系統(tǒng)擴(kuò)展時(shí),ALE用于控制把P0口輸出的低8位地址鎖存起來(lái),以實(shí)現(xiàn)低位地址和數(shù)據(jù)的隔離。此外,由于ALE是以晶振1/6的固定頻率輸出的正脈沖,因此,可作為外部時(shí)鐘或外部定時(shí)脈沖使用。:外部程序存儲(chǔ)器讀選通信號(hào)。在讀外部ROM時(shí),有效(低電平),以實(shí)現(xiàn)外部ROM單元的讀操作。:訪問(wèn)程序存儲(chǔ)控制信號(hào)。當(dāng)信號(hào)為低電平時(shí),對(duì)ROM的讀操作限定在外部程序存儲(chǔ)器;當(dāng)信號(hào)為高電平時(shí),對(duì)ROM的讀操作是從內(nèi)部程序存儲(chǔ)器開(kāi)始,并可延至外部程序存儲(chǔ)器。ALE:地址鎖存控制信號(hào)。在系統(tǒng)擴(kuò)

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

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

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

外部中斷0申請(qǐng)P3.3

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

外部RAM寫選通P3.7

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

引腳第二功能信號(hào)名稱P

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

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

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

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

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

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

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

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

(4)程序狀態(tài)字(PSW—ProgramStatusWord)。程序狀態(tài)字是一個(gè)8位寄存器,用于存放程序運(yùn)行中的各種狀態(tài)信息。其中有些位的狀態(tài)是根據(jù)程序執(zhí)行結(jié)果,由硬件自動(dòng)設(shè)置的,而有些位的狀態(tài)則使用軟件方法設(shè)定。PSW的位狀態(tài)可以用專門指令進(jìn)行測(cè)試,也可以用指令讀出。一些條件轉(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ù)運(yùn)算的進(jìn)位標(biāo)志,在進(jìn)行加或減運(yùn)算時(shí),如果操作結(jié)果的最高位有進(jìn)位或借位時(shí),CY由硬件置“1”,否則清“0”;二是在位操作中,作累加位使用。位傳送、位與位或等位操作,操作位之一固定是進(jìn)位標(biāo)志位。PSW位地址D7HD6HD5HD4HD3HD2HD1HD0H

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

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

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

一般在內(nèi)部RAM的30H~7FH單元中開(kāi)辟堆棧。SP的內(nèi)容一經(jīng)確定,堆棧的位置也就跟著確定下來(lái),由于SP可初始化為不同值,因此堆棧位置是浮動(dòng)的。此處,只集中講述了6個(gè)專用寄存器,其余的專用寄存器(如TCON、TMOD、IE、IP、SCON、PCON、SBUF等)將在以后章節(jié)中陸續(xù)介紹。2)專用寄存器中的字節(jié)尋址和位地址MCS-51系列單片機(jī)有21個(gè)可尋址的專用寄存器,其中有11個(gè)專用寄存器是可以位尋址的。下面把各寄存器的字節(jié)地址及位地址一并列于表1.4中。一般在內(nèi)部RAM的30H~7FH單元中開(kāi)辟堆表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 對(duì)專用寄存器的字節(jié)尋址問(wèn)題作如下幾點(diǎn)說(shuō)明:(1)21個(gè)可字節(jié)尋址的專用寄存器是不連續(xù)地分散在內(nèi)部RAM高128單元之中,盡管還余有許多空閑地址,但用戶并不能使用。(2)程序計(jì)數(shù)器PC不占據(jù)RAM單元,它在物理上是獨(dú)立的,因此是不可尋址的寄存器。(3)對(duì)專用寄存器只能使用直接尋址方式,書寫時(shí)既可使用寄存器符號(hào),也可使用寄存器。對(duì)專用寄存器的字節(jié)尋址問(wèn)題作如下幾點(diǎn)說(shuō)明:

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

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

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

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

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

單片機(jī)芯

1.3.1P0口

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

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

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

讀端口是指通過(guò)上面的緩沖器讀鎖

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

1.3.2P1口

P1口的口線邏輯電路如圖1.8所示。因?yàn)镻1口通常是作為通用I/O口使用的,所以在電路結(jié)構(gòu)上與P0口有一些不同之處:首先它不再需要多路轉(zhuǎn)接電路MUX;其次是電路的內(nèi)部有上拉電阻,與場(chǎng)效應(yīng)管共同組成輸出驅(qū)動(dòng)電路。為此,P1口作為輸出口使用時(shí),已經(jīng)能向外提供推拉電流負(fù)載,無(wú)需再外接上拉電阻。當(dāng)P1口作為輸入口使用時(shí),同樣也需先向其鎖存器寫“1”,使輸出驅(qū)動(dòng)電路的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口電路多了一個(gè)多路轉(zhuǎn)接電路MUX,這又正好與P0口一樣。P2口可以作為通用I/O口使用,這時(shí)多路轉(zhuǎn)接電路開(kāi)關(guān)倒向鎖存器Q端。通常情況下,P2口是作為高位地址線使用,此時(shí)多路轉(zhuǎn)接電路開(kāi)關(guān)應(yīng)倒向相反方向。

P2口電路比P1口電路多了一個(gè)多路1.3.4P3口

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

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

1.3.4P3口圖1.10P3口某位

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

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

1.4.1時(shí)鐘電路與時(shí)序1.時(shí)鐘信號(hào)的產(chǎn)生

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論