單片機(jī)硬件系統(tǒng)_第1頁(yè)
單片機(jī)硬件系統(tǒng)_第2頁(yè)
單片機(jī)硬件系統(tǒng)_第3頁(yè)
單片機(jī)硬件系統(tǒng)_第4頁(yè)
單片機(jī)硬件系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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)介

1、第1章 單片機(jī)硬件系統(tǒng)本章首先從單片機(jī)的概念入手,簡(jiǎn)單介紹了單片機(jī)實(shí)驗(yàn)系統(tǒng)的基本組成及功能,以最簡(jiǎn)單的信號(hào)燈控制應(yīng)用實(shí)驗(yàn)讓讀者對(duì)單片機(jī)及其應(yīng)用系統(tǒng)有一個(gè)感性的認(rèn)識(shí),大致了解單片機(jī)的基本工作過(guò)程,同時(shí)也指出了學(xué)習(xí)單片機(jī)的兩個(gè)基本方面:硬件接口和軟件編程。實(shí)訓(xùn)1 信號(hào)燈的控制11實(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ī)開發(fā)系統(tǒng),程序固化器。實(shí)訓(xùn)電路:參見附錄原理圖。3實(shí)訓(xùn)步驟及要求1)分析附錄原理圖,了解以8031為基礎(chǔ)的單片機(jī)實(shí)驗(yàn)系統(tǒng)的基本組成及功能。 本實(shí)訓(xùn)系統(tǒng)的核心器件是8031單片機(jī)芯片,同時(shí)外部

2、還擴(kuò)展了一片EPROM2764、一片RAM6264、一片EEPROM2864A、一片8155、一片ADC0809和MAX232等,首先將這些主要芯片的功能簡(jiǎn)單介紹如下:(1) EPROM2764:紫外線可擦除,電可編程的只讀存儲(chǔ)器。通常用于存放編制好的程序和常數(shù)表格。(2) RAM6264:靜態(tài)隨機(jī)存儲(chǔ)器,通常用于存放采集到的原始數(shù)據(jù),處理中的數(shù)據(jù)及最后的結(jié)果。(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ǔ)

3、器以及與單片機(jī)的連接、使用將在第6章詳細(xì)介紹。(4) 8155A:一種可編程的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章介紹。此外,本系統(tǒng)還擴(kuò)展了一片74LS245(8總線接收/發(fā)送器),一片74LS373(8D三態(tài)輸出鎖存器),一片74LS138(三線/八線譯碼器)和一片74LS240(8位反碼三態(tài)輸出驅(qū)動(dòng)器)。本書將以此實(shí)訓(xùn)驗(yàn)系統(tǒng)電路為基礎(chǔ)開展8個(gè)實(shí)訓(xùn)

4、項(xiàng)目和課程設(shè)計(jì),從而掌握單片機(jī)的硬件結(jié)構(gòu)、軟件編程及調(diào)試。 2)向EPROM2764寫入程序機(jī)器碼通過(guò)程序固化器將下列程序中對(duì)應(yīng)的機(jī)器碼,依次寫入到EPROM2764的0000H0015H地址單元中。機(jī)器碼 地址 程序 ORG 0000H ;表示程序從地址0000H存放75 90 00 0000H START: MOV P1,#00H 11 17 0003H ACALL DELAY ;延時(shí)一段時(shí)間,便于觀察75 90 FF 0005H MOV P1,#0FFH 11 17 0008H ACALL DELAY ;延時(shí)80 E9 000AH SJMP START ;返回,從START開始重復(fù)7B

5、FF 000CH DELAY: MOV R3,#0FFH ;一段延時(shí)子程序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 ;表示程序結(jié)束上述程序表由幾部分組成,左邊所列是一組十六進(jìn)制數(shù),我們稱之為機(jī)器碼,以及機(jī)器碼所在存儲(chǔ)器中的地址(0000H0015H),機(jī)器碼是計(jì)算機(jī)可以識(shí)別的語(yǔ)言,例如75,90,00等。這些是我們寫入2764的內(nèi)容,表示的是一段程序。中間是和機(jī)器碼對(duì)應(yīng)的源程序(一系列指令),

6、例如MOV P1,#00H,后續(xù)章節(jié)將側(cè)重于源程序。關(guān)于單片機(jī)的指令以及程序設(shè)計(jì)將在第3、4章詳細(xì)介紹,在第4章的實(shí)訓(xùn)4中也會(huì)重點(diǎn)討論上述程序。最右邊是對(duì)程序的簡(jiǎn)單說(shuō)明,以便于閱讀。程序固化器的具體操作過(guò)程可參見相應(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)纹瑱C(jī)18引腳通過(guò)集成芯片74LS240(8個(gè)非門)接到8個(gè)發(fā)光二極管,8個(gè)發(fā)光二極管的陽(yáng)極各接一個(gè)限流電阻后接+5V

7、電源,陰極連在一起接地。單片機(jī)的這8個(gè)引腳對(duì)應(yīng)其內(nèi)部的一個(gè)并行I/O口P1口,有關(guān)P1口的具體結(jié)構(gòu)在本章正文中介紹,這是本實(shí)訓(xùn)所涉及的硬件部分。從圖可見,當(dāng)P1口的某個(gè)引腳為低電平時(shí),發(fā)光二極管變亮,當(dāng)P1口的某個(gè)引腳為高電平時(shí),發(fā)光二極管熄滅。這樣我們可以通過(guò)向P1口寫入一個(gè)8位二進(jìn)制數(shù)來(lái)改變每個(gè)管腳的電平狀態(tài),而向P1口寫入數(shù)據(jù)可以通過(guò)相應(yīng)指令來(lái)實(shí)現(xiàn)。實(shí)訓(xùn)程序中的第一條指令MOV P1,#00H(其中 # 表示其后面為常數(shù),H表示其前面的常數(shù)為十六進(jìn)制數(shù),寫成二進(jìn)制形式為#00000000B,B表示二進(jìn)制數(shù)),對(duì)應(yīng)機(jī)器碼為75H、90H、00H,表示將00H的數(shù)據(jù)送給P1口。則P1口的8個(gè)

8、管腳狀態(tài)與寫入數(shù)據(jù)之間的關(guān)系如下: 寫入數(shù)據(jù)位D7 D6 D5 D4 D3 D2 D1 D00 0 0 0 0 0 0 0 對(duì)應(yīng)P1口管腳名稱P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 管腳電平狀態(tài) 低 低 低 低 低 低 低 低發(fā)光二極管狀態(tài) 亮 亮 亮 亮 亮 亮 亮 亮所以,在通電運(yùn)行后,發(fā)光二極管會(huì)出現(xiàn)全亮的狀態(tài)。同理,當(dāng)執(zhí)行程序中的第三條指令MOV P1,# FFH(即#11111111B)時(shí),發(fā)光二極管會(huì)全滅。由此可見,我們可以通過(guò)軟件程序來(lái)完成對(duì)硬件電路的控制。(3)實(shí)訓(xùn)中,我們事先將程序(機(jī)器碼)正確地固化到程序存儲(chǔ)器EPROM 2764芯片

9、中,然后把2764芯片插入實(shí)驗(yàn)板,和單片機(jī)(例如8031)通過(guò)一定的方式連接起來(lái),接上電源后發(fā)光二極管按照既定的規(guī)律點(diǎn)亮。這說(shuō)明,2764中的寫入內(nèi)容能夠依次讀出,并且送入到單片機(jī)內(nèi)部完成相應(yīng)的功能,而這一切工作都是在單片機(jī)的控制下來(lái)實(shí)現(xiàn)的,也就是說(shuō)單片機(jī)在執(zhí)行機(jī)器碼。我們知道,存儲(chǔ)器2764有三類總線:數(shù)據(jù)線、地址線和控制線,在單片機(jī)應(yīng)用系統(tǒng)中這三類總線都是由單片機(jī)芯片來(lái)提供,并且控制數(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)部也具有

10、一定容量的片內(nèi)程序存儲(chǔ)器,當(dāng)內(nèi)部存儲(chǔ)器容量夠用時(shí),也就不必外接EPROM了。那么單片機(jī)內(nèi)部都具有哪些功能,將是本章重點(diǎn)討論的內(nèi)容。1.1 概 述單片微型計(jì)算機(jī)(Single Chip Microcomputer)簡(jiǎn)稱單片機(jī),是指集成在一塊芯片上的計(jì)算機(jī),它具有結(jié)構(gòu)簡(jiǎn)單、控制功能強(qiáng)、可靠性高、體積小、價(jià)格低等優(yōu)點(diǎn),在許多行業(yè)都得到了廣泛的應(yīng)用。從航天航空、地質(zhì)石油、冶金采礦、機(jī)械電子、輕工紡織到機(jī)電一體化設(shè)備、郵電通信、日用設(shè)備和器械等,單片機(jī)都發(fā)揮了巨大作用。1. 微型計(jì)算機(jī)及微型計(jì)算機(jī)系統(tǒng)微型計(jì)算機(jī)(Microcomputer)簡(jiǎn)稱微機(jī),是計(jì)算機(jī)的一個(gè)重要分支。人們通常按照計(jì)算機(jī)的體積、性能

11、和應(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(Personal Computer)機(jī),是微型計(jì)算機(jī)中應(yīng)用最為廣泛的一種,也是近年來(lái)計(jì)算機(jī)領(lǐng)域中發(fā)展最快的一個(gè)分支,由于PC機(jī)在性能和價(jià)格方面適合個(gè)人用戶購(gòu)買和使用,目前,它已經(jīng)像普通家電一樣深入到了家庭和社會(huì)生活的各個(gè)方面。微型計(jì)算機(jī)系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)兩大部分組成。硬件系統(tǒng)是指構(gòu)成微機(jī)系統(tǒng)的實(shí)體和裝置,通常由運(yùn)算器、控制器、存儲(chǔ)器、輸入接口電路和輸入設(shè)備、輸出接口電路和輸出設(shè)備等組成。

12、其中,運(yùn)算器和控制器一般做在一個(gè)集成芯片上,統(tǒng)稱中央處理單元(Central Processing Unit),簡(jiǎn)稱CPU,是微機(jī)的核心部件,配上存放程序和數(shù)據(jù)的存儲(chǔ)器、輸入輸出(Input/Output,簡(jiǎn)稱I/O)接口電路及外部設(shè)備即構(gòu)成微機(jī)的硬件系統(tǒng)。軟件系統(tǒng)是指微機(jī)系統(tǒng)所使用的各種程序的總體。軟件的主體駐留在存儲(chǔ)器中,人們通過(guò)它對(duì)整機(jī)進(jìn)行控制并與微機(jī)系統(tǒng)進(jìn)行信息交換,使微機(jī)按照人的意圖完成預(yù)定的任務(wù)。軟件系統(tǒng)與硬件系統(tǒng)共同構(gòu)成實(shí)用的微機(jī)系統(tǒng),兩者是相輔相成、缺一不可的。微型計(jì)算機(jī)系統(tǒng)組成示意圖如圖1.1所示。圖1.1 微型計(jì)算機(jī)系統(tǒng)組成示意圖下面把組成計(jì)算機(jī)的五個(gè)基本部件作簡(jiǎn)單說(shuō)明。1

13、)運(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。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é)果,以用戶需要的形式顯示或保存,如顯示器、打印機(jī)。通常把外存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備合在一起稱之為計(jì)算機(jī)的外部設(shè)備,簡(jiǎn)稱

14、“外設(shè)”。2單片微型計(jì)算機(jī)單片微型計(jì)算機(jī)是指集成在一個(gè)芯片上的微型計(jì)算機(jī),也就是把組成微型計(jì)算機(jī)的各種功能部件,包括CPU(Central Processing Unit)、隨機(jī)存取存儲(chǔ)器RAM(Random Access Memory)、只讀存儲(chǔ)器ROM(Read-only Memory)、基本輸入/輸出(Input/Output)接口電路、定時(shí)器/計(jì)數(shù)器等部件制作在一塊集成芯片上,構(gòu)成一個(gè)完整的微型計(jì)算機(jī),從而實(shí)現(xiàn)微型計(jì)算機(jī)的基本功能。單片機(jī)內(nèi)部結(jié)構(gòu)示意圖如圖1.2所示。圖1.2 單片機(jī)內(nèi)部結(jié)構(gòu)示意圖 單片機(jī)實(shí)質(zhì)上是一個(gè)硬件的芯片,在實(shí)際應(yīng)用中,通常很難直接和被控對(duì)象進(jìn)行電氣連接,必須外加

15、各種擴(kuò)展接口電路、外部設(shè)備、被控對(duì)象等硬件和軟件,才能構(gòu)成一個(gè)單片機(jī)應(yīng)用系統(tǒ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所示。圖1-3 單片機(jī)應(yīng)用系統(tǒng)的組成由此可見,單片機(jī)應(yīng)用系統(tǒng)的

16、設(shè)計(jì)人員必須從硬件和軟件兩個(gè)角度來(lái)深入了解單片機(jī),并能夠?qū)⒍哂袡C(jī)結(jié)合起來(lái),才能形成具有特定功能的應(yīng)用系統(tǒng)或整機(jī)產(chǎ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ī)型。112 MCS-51單片機(jī)系列盡管各類

17、單片機(jī)很多,但無(wú)論是從世界范圍或是從國(guó)內(nèi)范圍來(lái)看,使用最為廣泛的應(yīng)屬M(fèi)CS-51單片機(jī)?;谶@一事實(shí),本書以應(yīng)用最為廣泛的MCS-51系列八位單片機(jī)(8031、8051、8751等)為研究對(duì)象,介紹單片機(jī)的硬件結(jié)構(gòu)、工作原理及應(yīng)用系統(tǒng)的設(shè)計(jì)。MCS-51單片機(jī)系列共有十幾種芯片,如表1.1所列。表1.1 MCS-51系列單片機(jī) 分類表表中列出了MCS-51單片機(jī)系列的芯片型號(hào),以及它們的技術(shù)性能指標(biāo),使我們對(duì)它們的基本情況有一個(gè)概括的了解。下面我們就在這個(gè)表的基礎(chǔ)上對(duì)MCS-51系列單片機(jī)進(jìn)一步說(shuō)明。151子系列和52子系列MCS-51系列又分為51和52兩個(gè)子系列,并以芯片型號(hào)的最末位數(shù)字作

18、為標(biāo)志。其中51子系列是基本型,而52子系列則屬增強(qiáng)型。52子系列功能增強(qiáng)的具體方面,從表1-1所列內(nèi)容中可以看出:(1)片內(nèi)ROM從4KB增加到8KB(2)片內(nèi)RAM從128字節(jié)增加到256字節(jié)(3)定時(shí)器/計(jì)數(shù)器從2個(gè)增加到3個(gè)(4)中斷源從5個(gè)增加到6個(gè)在52子系列的內(nèi)部ROM中以掩膜方式集成有8K BASIC解釋程序,這就是通常所說(shuō)的8052-BASIC。這意味著單片機(jī)已可以使用高級(jí)語(yǔ)言。該BASIC與基本BASIC想比,增加了一些控制語(yǔ)句,以滿足單片機(jī)作為控制機(jī)的需要。2單片機(jī)芯片半導(dǎo)體工藝MCS-51系列單片機(jī)采用兩種半導(dǎo)體工藝生產(chǎn)。一種是HMOS工藝,即高速度高密度短溝道MOS工

19、藝。另外一種是CHMOS工藝,即互補(bǔ)金屬氧化物的HMOS工藝。表0-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ī)芯片。3片內(nèi)ROM存儲(chǔ)器配置形式MCS-51單片機(jī)片內(nèi)程序儲(chǔ)器有三種配置形式,即:掩膜ROM、EPROM和無(wú)ROM。這三種配置形式對(duì)應(yīng)三種不同的單片機(jī)芯片,它們各有特點(diǎn),也各

20、有其適用場(chǎng)合,在使用時(shí)應(yīng)根據(jù)需要進(jìn)行選擇。一般情況下,片內(nèi)帶掩膜型ROM適應(yīng)于定型大批量應(yīng)用產(chǎn)品的生產(chǎn);片內(nèi)帶EPROM適合于研制產(chǎn)品樣機(jī);外接EPROM的方式適用于研制新產(chǎn)品。最近Intel公司又推出片內(nèi)帶EEPROM型的單片機(jī),可以在線寫入程序。12 MCS-51單片機(jī)結(jié)構(gòu)和原理盡管單片機(jī)比較簡(jiǎn)單,但要按五個(gè)基本組成部件來(lái)講單片機(jī)的硬件結(jié)構(gòu)和原理,也將是一件十分復(fù)雜的事。其實(shí)也沒有這種必要。因此,通常講述單片機(jī)結(jié)構(gòu)原理時(shí),總是從實(shí)際需要出發(fā),只介紹與程序設(shè)計(jì)和系統(tǒng)擴(kuò)展應(yīng)用有關(guān)的內(nèi)容。1.2.1 MCS-51單片機(jī)的內(nèi)部組成及信號(hào)引腳MCS-51單片機(jī)的典型芯片是8031、8051、8751

21、。8051內(nèi)部有4KB ROM,8751內(nèi)部有4KB EPROM,8031片內(nèi)無(wú)ROM;除此之外,三者的內(nèi)部結(jié)構(gòu)及引腳完全相同。因此以8051為例,說(shuō)明本系列單片機(jī)的內(nèi)部組成及信號(hào)引腳。18051單片機(jī)的基本組成8051單片機(jī)的基本組成請(qǐng)參見圖1.4。 圖1.4 MCS-51 單片機(jī)結(jié)構(gòu)框圖各部分情況介紹如下:(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ù)

22、。因此通常所說(shuō)的內(nèi)部數(shù)據(jù)存儲(chǔ)器就是指前128單元,簡(jiǎn)稱內(nèi)部RAM。(3)內(nèi)部程序存儲(chǔ)器(內(nèi)部ROM)8051共有4KB掩膜ROM,用于存放程序、原始數(shù)據(jù)或表格,因此稱之為程序存儲(chǔ)器,簡(jiǎn)稱內(nèi)部ROM。(4)定時(shí)器/計(jì)數(shù)器8051共有2個(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共有四個(gè)8位的I/O口(P0、P1、P2、P3),以實(shí)現(xiàn)數(shù)據(jù)的并行輸入輸出。在實(shí)訓(xùn)中我們已經(jīng)使用了P1口,通過(guò)P1口連接8個(gè)發(fā)光二極管。(6)串行口MCS-51單片機(jī)有一個(gè)全雙工的串行口,以實(shí)現(xiàn)單片機(jī)和其它設(shè)備之間的串行數(shù)據(jù)傳送。該串行口功能較強(qiáng),既可

23、作為全雙工異步通信收發(fā)器使用,也可作為同步移位器使用。(7)中斷控制系統(tǒng)MCS-51單片機(jī)的中斷功能較強(qiáng),以滿足控制應(yīng)用的需要。8051共有5個(gè)中斷源,即外中斷2個(gè),定時(shí)/計(jì)數(shù)中斷2個(gè),串行中斷1個(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。從上述內(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引腳雙列直插式集成

24、電路芯片,引腳排列請(qǐng)參見圖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位雙向口線。ALE:地址鎖存控制信號(hào)。在系統(tǒng)擴(kuò)展時(shí),ALE用于控制把P0口輸出的低8位地址鎖存器鎖存起來(lái),以實(shí)現(xiàn)低位地址和數(shù)據(jù)的隔離。此外由于ALE是以晶振六分之一的固定頻率輸出的正脈沖,因此可作為外部時(shí)鐘或外部定時(shí)脈沖使用。:外部程序存儲(chǔ)器讀選通信號(hào)。在讀外部ROM時(shí)有效(低電平),以實(shí)現(xiàn)外部ROM單元的讀操作。:訪問程序存儲(chǔ)控制信號(hào)。當(dāng)信號(hào)為低電平時(shí),對(duì)ROM的讀操作限定在外部程序存

25、儲(chǔ)器;而當(dāng)信號(hào)為高電平時(shí),則對(duì)ROM的讀操作是從內(nèi)部程序存儲(chǔ)器開始,并可延至外部程序存儲(chǔ)器。RST:復(fù)位信號(hào)。當(dāng)輸入的復(fù)位信號(hào)延續(xù)2個(gè)機(jī)器周期以上高電平即為有效,用以完成單片機(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è)引腳的連接使用。 圖1.5 MCS 51 引腳圖2) 信號(hào)引腳的第二功能由于工藝及標(biāo)準(zhǔn)化等原因,芯片的引腳數(shù)目是有限制

26、的。例如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)引腳的第二功能。(1)P3口線的第二功能P3的8條口線都定義有第二功能,詳見表1.2。(2)EPROM存儲(chǔ)器程序固化所需要的信號(hào)有內(nèi)部EPROM的單片機(jī)芯片(例如8751),為寫入程序需提供專門的編程脈沖和編程電源,這些信號(hào)也是由信號(hào)引腳以第二功能的形式提供的,即:編程脈沖:30腳(ALE/PR

27、OG)編程電壓(25V):31腳(/VPP)引腳第二功能信號(hào)名稱P3.0RXD串行數(shù)據(jù)接收P3.1 TXD 串行數(shù)據(jù)發(fā)送P3.2 外部中斷0申請(qǐng)P3.3 外部中斷1申請(qǐng)P3.4 T0定時(shí)器/計(jì)數(shù)器0的外部輸入P3.5 T1定時(shí)器/計(jì)數(shù)器1的外部輸入P3.6 外部RAM寫選通P3.7 外部RAM讀選通 表1.2 P3口各引腳與第二功能表(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),分別以第一功能和第二功能的形

28、式列出。對(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ù)位的輸入輸出使用。 MCS-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è)單元按

29、其功能劃分為兩部分:低128單元(單元地址00H7FH)和高128單元(單元地址80HFFH)。如圖1.6所示為低128單元的配置圖。30H 7FH數(shù)據(jù)緩沖區(qū)20H 2FH位尋址區(qū)(00H7FH)18H 1FH工作寄存器3區(qū)(R7R0)10H 17H工作寄存器2區(qū)(R7R0)08H 0FH工作寄存器1區(qū)(R7R0)00H 07H工作寄存器0區(qū)(R7R0) 圖1.6 片內(nèi)RAM的配置低128單元是單片機(jī)的真正RAM存儲(chǔ)器,按其用途劃分為三個(gè)區(qū)域:1) 寄存器區(qū)共有四組寄存器,每組8個(gè)寄存單元(各為8位),各組都以R0R7作寄存單元編號(hào)。寄存器常用于存放操作數(shù)及中間結(jié)果等,由于它們的功能及使用不作

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

31、位尋址區(qū)。位尋址區(qū)共有16個(gè)RAM單元,計(jì)128位,位地址為00H7FH。MCS-51具有布爾處理機(jī)功能,這個(gè)位尋址區(qū)可以構(gòu)成布爾處理機(jī)的存儲(chǔ)空間。這種位尋址能力是MCS-51的一個(gè)重要特點(diǎn)。表1.3為位尋址區(qū)的位地址表。表1.3 片內(nèi)RAM位尋址區(qū)的位地址單元地址MSB 位地址 LSB 2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F077E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C5

32、44C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A0279716961595149413931292119110901787068605850484038302820181008003) 用戶RAM區(qū)在內(nèi)部RAM低128單元中,通用寄存器占去32個(gè)單元,位尋址區(qū)占去16個(gè)單元,剩下80個(gè)單元,這就是供用戶使用的一般RAM區(qū),其單元地址為30H7FH。對(duì)用戶RAM區(qū)的使用沒有任何規(guī)定或限制。但在一般應(yīng)用中常把堆棧開辟在此區(qū)中。2. 內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元內(nèi)部RAM的高128單元

33、是供給專用寄存器使用的,其單元地址為80HFFH。因這些寄存器的功能已作專門規(guī)定,故而稱之為專用寄存器(Special Function Register),也可稱為特殊功能寄存器。1) 專用寄存器(SFR)簡(jiǎn)介8051共有21個(gè)專用寄存器,現(xiàn)把其中部分寄存器簡(jiǎn)單介紹如下:(1) 程序計(jì)數(shù)器(PCProgram Counter)在實(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沒有地址,是不可尋址的。因此用戶無(wú)法對(duì)它進(jìn)行讀寫。但可以通過(guò)轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)容,以

34、實(shí)現(xiàn)程序的轉(zhuǎn)移。因地址不在SFR之內(nèi),一般不計(jì)作專用寄存器。(2) 累加器(ACCAccumulator)累加器為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ù)寄存器使用。(4) 程序狀態(tài)字(PSWProgram Status Word)程序狀

35、態(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的各位定義如下: D7HD6HD5HD4HD3HD2HD1HD0H CY ACF0RS1RS0OVF1PPSW位地址字節(jié)地址D0H除PSW.1位保留未用外,對(duì)其余各位的定義及使用介紹如下:CY(PSW.7)進(jìn)位標(biāo)志位。CY是PWS中最常用的標(biāo)志位,其功能有二:一是存放算術(shù)運(yùn)算的進(jìn)位標(biāo)志,在進(jìn)行加或減運(yùn)算時(shí),如果操作結(jié)果最高位有進(jìn)位或借位時(shí),C

36、Y由硬件置“1”,否則清“0”;二是在位操作中,作累加位使用。位傳送、位與位或等位操作,操作位之一固定是進(jìn)位標(biāo)志位。AC(PSW.6)輔助進(jìn)位標(biāo)志位。在進(jìn)行加減運(yùn)算中,當(dāng)有低4位向高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)前工作的通用寄存器組。通用寄存器共有四組,其對(duì)應(yīng)關(guān)系為: RS1 RS0 寄存器組 片內(nèi)RAM地址0 0第0組00H07H0 1第1組08H0F

37、H 1 0第2組10H17H 1 1第3組18H1FH這兩個(gè)選擇位的狀態(tài)是由軟件設(shè)置的,被選中的寄存器組即為當(dāng)前通用寄存器組。但當(dāng)單片機(jī)上電或復(fù)位后,RS1 RS0=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)行。P(PSW.0)奇偶標(biāo)志位

38、。表明累加器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位寄存器,它是MCS-51中一個(gè)16位寄存器。編程時(shí),DPTR既可以按16位寄存器使用,也可以按兩個(gè)8位寄存器分開使用,即:DPH DPTR高位字節(jié)DPL DPTR低位字節(jié)DPTR通常在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)作地址指針使用,由于外部數(shù)據(jù)存儲(chǔ)器的尋址范圍為64KB,故把DPTR設(shè)計(jì)為16位。(6)堆棧指針(SP-Stack Poin

39、ter)堆棧是一個(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, 使得堆棧實(shí)際上從08H單元開始。但08H1FH單元分別屬于工作寄存器13區(qū), 如程序中要用到這些區(qū),則最好把SP值改為1FH或更大的值.一般地,堆棧最好在內(nèi)部RAM的30H7FH單元中開辟. SP的內(nèi)容一經(jīng)確定,堆棧的位置也就跟著確定下來(lái),由于SP可初始化為不同值,因此堆棧位置是浮動(dòng)的。此處只集中講述了六個(gè)專用寄存器,其余的專用寄存器(如TCON、TMOD、IE、IP、S

40、CON、PCON、SBUF等)將在以后章節(jié)中陸續(xù)介紹。2) 專用寄存器中的字節(jié)尋址和位地址MCS-51系列單片機(jī)有21個(gè)可尋址的專用寄存器,其中有11個(gè)專用寄存器是可以位尋址的。下面把各寄存器的字節(jié)地址及位地址一并列于表1.4。表1.4 MCS-51 專用寄存器地址表SFR MSB 位地址/位定義 LSB字節(jié)地址 BF7 F6F5F4F3F2 F1 F0F0H ACCE7E6E5E4E3 E2E1E0 E0H PSWD7D6D5D4D3D2D1D0 D0HCYACF0RS1RS0OVF1PIPBFBEBDBCBBBAB9B8B8H/PSPT1PX1PT0PX0 P3B7B6B5B4B3B2B1

41、B0B0HP3.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 (8CH) TL1 (8BH) TL0 (8AH) TMODGATC/TM1M0GATC/

42、TM1M0 (89H) TCON8F8E8D8C8B8A8988 88HTF1TR1TF0TR0IE1IT1IE0IT0PCONSMO/ (87H)DPH (83H) DPL (82H) SP (81H) P08786858483828180 80HP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0對(duì)專用寄存器的字節(jié)尋址問題作如下幾點(diǎn)說(shuō)明:(1) 21個(gè)可字節(jié)尋址的專用寄存器是不連續(xù)地分散在內(nèi)部RAM高128單元之中,盡管還余有許多空閑地址,但用戶并不能使用。(2) 程序計(jì)數(shù)器PC不占據(jù)RAM單元,它在物理上是獨(dú)立的,因此是不可尋址的寄存器。(3) 對(duì)專用寄存器只能使用直接尋址方

43、式,書寫時(shí)既可使用寄存器符號(hào),也可使用寄存器單元地址。表中凡字節(jié)地址不帶括號(hào)的寄存器都是可進(jìn)行位尋址的寄存器,而帶括號(hào)的是不可位尋址的寄存器,如表所列。全部專用寄存器可尋址的位共83位,這些位都具有專門的定義和用途。這樣加上位尋址區(qū)的128位,在MCS-51的內(nèi)部RAM中共有128+83=211個(gè)可尋址位。MCS-51的程序存儲(chǔ)器用于存放編好的程序和表格常數(shù)。8051片內(nèi)有4KB的ROM, 8751片內(nèi)有4KB的EPROM, 8031 片內(nèi)無(wú)程序存儲(chǔ)器。 MCS-51 的片外最多能擴(kuò)展64K字節(jié)程序存儲(chǔ)器,片內(nèi)外的ROM 是統(tǒng)一編址的。 如端保持高電平, 8051 的程序計(jì)數(shù)器PC在0000H

44、0FFFH地址范圍內(nèi) (即前4KB地址) 是執(zhí)行片內(nèi)ROM中的程序, 當(dāng)PC在1000HFFFFH地址范圍時(shí), 自動(dòng)執(zhí)行片外程序存儲(chǔ)器中的程序,當(dāng)保持低電平時(shí),只能尋址外部程序存儲(chǔ)器, 片外存儲(chǔ)器可以從0000H開始編址.MCS-51的程序存儲(chǔ)器中有些單元具有特殊功能,使用時(shí)應(yīng)予以注意。其中一組特殊單元是0000H0002H。系統(tǒng)復(fù)位后,(PC)=0000H,單片機(jī)從0000H單元開始取指令執(zhí)行程序。如果程序不從0000H單元開始,應(yīng)在這三個(gè)單元中存放一條無(wú)條件轉(zhuǎn)移指令,以便直接轉(zhuǎn)去執(zhí)行指定的程序。還有一組特殊單元是0003H002AH。共40個(gè)單元,這40個(gè)單元被均勻地分為五段,作為五個(gè)中斷

45、源的中斷地址區(qū)。其中:0003H000AH 外部中斷0中斷地址區(qū)000BH0012H 定時(shí)器/計(jì)數(shù)器0中斷地址區(qū)0013H001AH 外部中斷1中斷地址區(qū)001BH0022H 定時(shí)器/計(jì)數(shù)器1中斷地址區(qū)0023H002AH 串行中斷地址區(qū)中斷響應(yīng)后,按中斷種類,自動(dòng)轉(zhuǎn)到各中斷區(qū)的首地址去執(zhí)行程序。因此在中斷地址區(qū)中理應(yīng)存放中斷服務(wù)程序。但通常情況下,8個(gè)單元難以存下一個(gè)完整的中斷服務(wù)程序,因此通常也是從中斷地址區(qū)首地址開始存放一條無(wú)條件轉(zhuǎn)移指令,以便中斷響應(yīng)后,通過(guò)中斷地址區(qū),再轉(zhuǎn)到中斷服務(wù)程序的實(shí)際入口地址去。13 并行輸入/輸出口電路結(jié)構(gòu)單片機(jī)芯片內(nèi)還有一項(xiàng)主要內(nèi)容就是并行I/O口。MCS

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

47、動(dòng)電路和1個(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端的輸出通路。當(dāng)P0口作為輸出口使用時(shí),內(nèi)部的寫脈沖加在D觸發(fā)器的CP端,數(shù)據(jù)

48、寫入鎖存器,并向端口引腳輸出。當(dāng)P0口作為輸入口使用時(shí),應(yīng)區(qū)分讀引腳和讀端口兩種情況。為此在口電路中有兩個(gè)用于讀入驅(qū)動(dòng)的三態(tài)緩沖器。所謂讀引腳就是讀芯片引腳的數(shù)據(jù),這時(shí)使用下方的數(shù)據(jù)緩沖器,由“讀引腳”信號(hào)把緩沖器打開,把端口引腳上的數(shù)據(jù)從緩沖器通過(guò)內(nèi)部總線讀進(jìn)來(lái)。使用傳送指令(MOV)進(jìn)行讀口操作都是屬于這種情況。而讀端口則是指通過(guò)上面的緩沖器讀鎖存器Q端的狀態(tài)。在端口已處于輸出狀態(tài)的情況下,本來(lái)Q端與引腳的信號(hào)是一致的,這樣安排的目的是為了適應(yīng)對(duì)口進(jìn)行“讀-修改-寫”操作指令的需要。例如“ANL P0,A”就是屬于這類指令,執(zhí)行時(shí)先讀入P0口鎖存器中的數(shù)據(jù)。然后與A的內(nèi)容進(jìn)行邏輯與,再把結(jié)

49、果送回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ù)。但要注意,當(dāng)P0口進(jìn)行一般的I/O輸出時(shí),由于輸出電路是漏極開路電路,必須外接上拉電阻才能有高電平輸出;當(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ù)線使用

50、,這要比作一般I/O口應(yīng)用簡(jiǎn)單。當(dāng)輸出地址或數(shù)據(jù)時(shí),由內(nèi)部發(fā)出控制信號(hào),打開上面的與門,并使多路轉(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)部總線.P1口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í),已能向外提供推拉電流負(fù)載,無(wú)需再外接上拉電阻.當(dāng)

51、P1口作為輸入口使用時(shí),同樣也需先向其鎖存器寫“1”,使輸出驅(qū)動(dòng)電路的FET截止。 圖1.8 P1口某位結(jié)構(gòu)P2口P2口的口線邏輯電路見圖1.9。 圖1.9 P2口某位結(jié)構(gòu)圖P2口電路中比P1口多了一個(gè)多路轉(zhuǎn)接電路MUX,這又正好與P0口一樣。P2口可以作為通用I/O口使用。這時(shí)多路轉(zhuǎn)接開頭倒向鎖存器Q端。但通常應(yīng)用情況下,P2口是作為高位地址線使用,此時(shí)多路轉(zhuǎn)接開頭應(yīng)倒向相反方向。P3口P3口的口線邏輯電路見圖1.10。 圖1.10 P3口某位結(jié)構(gòu)P3口的特點(diǎn)在于為適應(yīng)引腳信號(hào)第二功能的需要,增加了第二功能控制邏輯。由于第二功能信號(hào)有輸入和輸出兩類,因此分兩種情況說(shuō)明。對(duì)于第二功能為輸出的信

52、號(hào)引腳,當(dāng)作為I/O使用時(shí),第二功能信號(hào)引線應(yīng)保持高電平,與非門開通,以維持從鎖存器到輸出端數(shù)據(jù)輸出通路的暢通。當(dāng)輸出第二功能信號(hào)時(shí),該位的鎖存器應(yīng)置“1”,使與非門對(duì)第二功能信號(hào)的輸出是暢通的,從而實(shí)現(xiàn)第二功能信號(hào)的輸出。對(duì)于第二功能為輸入的信號(hào)引腳,在口線的輸入通路上增加了一個(gè)緩沖器,輸入的第二功能信號(hào)就從這個(gè)緩沖器的輸出端取得。而作為I/O使用的數(shù)據(jù)輸入,仍取自三態(tài)緩沖器的輸出端。不管是作為輸入口使用還是第二功能信號(hào)輸入,輸出電路中的鎖存器輸出和第二功能輸出信號(hào)線都應(yīng)保持高電平。14 時(shí)鐘電路與復(fù)位電路時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào),而時(shí)序所研究的是指令執(zhí)行中各地信號(hào)之間的相互關(guān)系。單片機(jī)本身就如一個(gè)復(fù)雜的

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論