單片機(jī)硬件結(jié)構(gòu)介紹_第1頁(yè)
單片機(jī)硬件結(jié)構(gòu)介紹_第2頁(yè)
單片機(jī)硬件結(jié)構(gòu)介紹_第3頁(yè)
單片機(jī)硬件結(jié)構(gòu)介紹_第4頁(yè)
單片機(jī)硬件結(jié)構(gòu)介紹_第5頁(yè)
已閱讀5頁(yè),還剩24頁(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)M本章概要及學(xué)習(xí)目標(biāo):本章從單片機(jī)的概念入手,以AT89C51單片機(jī)芯片為例,介紹MCS-51型單片機(jī)芯片的外部引腳功能、內(nèi)部硬件結(jié)構(gòu)及工作特性,并通過(guò)單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程實(shí)驗(yàn)說(shuō)明使讀者對(duì)單片機(jī)應(yīng)用系統(tǒng)及其開(kāi)發(fā)有一個(gè)感性認(rèn)識(shí),對(duì)單片機(jī)的基本工作原理和工作過(guò)程有一個(gè)大致的了解,同時(shí)也指出了學(xué)習(xí)單片機(jī)的兩個(gè)基本方面:硬件結(jié)構(gòu)和軟件編程。通過(guò)對(duì)本章的學(xué)習(xí),讀者應(yīng)掌握和了解以下知識(shí):1計(jì)算機(jī)、微型機(jī)、單片機(jī)及單片機(jī)應(yīng)用系統(tǒng)的概念2微型機(jī)的CPU、存儲(chǔ)器和輸入/輸出的硬件構(gòu)成及功能389C51外部引腳及功能,內(nèi)部結(jié)構(gòu)及工作原理489C51的RAM分布、ROM結(jié)構(gòu)及地址形成589C

2、51的SFR689C51的并行口及時(shí)鐘與復(fù)位7單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)過(guò)程及工作過(guò)程1.1計(jì)算機(jī)、微型機(jī)、單片機(jī)及單片機(jī)應(yīng)用系統(tǒng)概述微型計(jì)算機(jī)的出現(xiàn)給人類生活帶來(lái)了根本性的變化,使現(xiàn)代科學(xué)研究產(chǎn)生了質(zhì)的飛躍,單片機(jī)技術(shù)的出現(xiàn)則給現(xiàn)代工業(yè)測(cè)控領(lǐng)域帶來(lái)了一次新的技術(shù)革命。它在工業(yè)控制、數(shù)控采集、智能化儀表、辦公自動(dòng)化等諸多領(lǐng)域得到了極為廣泛的應(yīng)用,毫不夸張地說(shuō),單片機(jī)技術(shù)的開(kāi)發(fā)和應(yīng)用水平已逐步成為一個(gè)國(guó)家工業(yè)發(fā)展的標(biāo)志之一。單片微型計(jì)算機(jī)(Single Chip Micro Computer)簡(jiǎn)稱單片機(jī),它是一種把組成微型計(jì)算機(jī)的各功能部件:中央處理單元CPU、一定容量的隨機(jī)存儲(chǔ)器RAM和只讀存儲(chǔ)器R

3、OM、I/O接口電路、定時(shí)器/計(jì)數(shù)器以及串行口等制作在一塊芯片中的計(jì)算機(jī)。由于單片機(jī)的硬件結(jié)構(gòu)與指令系統(tǒng)的功能都是按工業(yè)控制要求而設(shè)計(jì)的,常用在工業(yè)檢測(cè)、控制裝置中,因而也稱為微控制器(Micro-Controller)。單片機(jī)具有結(jié)構(gòu)簡(jiǎn)單、控制功能強(qiáng)、可靠性高、體積小、價(jià)格低等特點(diǎn),在家用電器、智能化儀器、工業(yè)控制以及火箭導(dǎo)航尖端技術(shù)領(lǐng)域都發(fā)揮著十分重要的作用。單片機(jī)及單片機(jī)應(yīng)用系統(tǒng)1微型計(jì)算機(jī)及微型計(jì)算機(jī)系統(tǒng)計(jì)算機(jī)的硬件系統(tǒng)由運(yùn)算器、存儲(chǔ)器、控制器、輸入和輸出設(shè)備五大部分組成。把運(yùn)算器、控制器及一些寄存器集成在一塊硅片上而成為獨(dú)立的器件,該器件就稱為微處理器(CPU)。微處理器芯片、存儲(chǔ)器

4、芯片、輸入/輸出接口電路芯片以及外部設(shè)備,在它們之間用總線連接起來(lái)就構(gòu)成了微型計(jì)算機(jī),如圖1-1所示。圖1-1 微型計(jì)算機(jī)組成框圖可見(jiàn),微型計(jì)算機(jī)結(jié)構(gòu)的突出特征是具有一個(gè)包含運(yùn)算器和控制器的集成芯片微處理器(CPU)。微型機(jī)硬件系統(tǒng)各部分的組成及功能簡(jiǎn)述如下:1)微處理器微處理器是微型計(jì)算機(jī)的核心,其結(jié)構(gòu)示意如圖1-2所示。圖1-2 微處理器結(jié)構(gòu)示意圖微處理器包括運(yùn)算器,控制器和寄存器組3個(gè)基本部分。(1)運(yùn)算器:運(yùn)算器是計(jì)算機(jī)的運(yùn)算部件,用于實(shí)現(xiàn)算術(shù)和邏輯運(yùn)算。計(jì)算機(jī)的數(shù)據(jù)運(yùn)算和處理都在這里進(jìn)行。通常運(yùn)算器由算術(shù)/邏輯運(yùn)算單元ALU、累加器A、暫存寄存器、標(biāo)志寄存器F等組成。累加器A是一個(gè)特

5、殊的寄存器。通常其作用有兩個(gè):一是運(yùn)算時(shí)把一個(gè)操作數(shù)經(jīng)暫存器送至ALU;二是在運(yùn)算后保存其運(yùn)算結(jié)果。暫存寄存器用來(lái)暫時(shí)存儲(chǔ)數(shù)據(jù)總線或其他寄存器送來(lái)的操作數(shù),是ALU的數(shù)據(jù)輸 入源。標(biāo)志寄存器F用來(lái)保存ALU運(yùn)算結(jié)果的特征(如進(jìn)位標(biāo)志、溢出標(biāo)志等)和處理器的狀態(tài),這些特征和狀態(tài)可以作為控制程序轉(zhuǎn)移的條件。算術(shù)/邏輯運(yùn)算單元ALU由加法器和相應(yīng)的控制邏輯電路組成。它能分別對(duì)來(lái)自兩個(gè)暫存器數(shù)據(jù)源的兩個(gè)操作數(shù)進(jìn)行加、減、與、或等運(yùn)算,還能進(jìn)行數(shù)據(jù)的移位。ALU進(jìn)行何種運(yùn)算由控制器發(fā)出的命令確定,運(yùn)算后的結(jié)果經(jīng)數(shù)據(jù)總線送至累加器A,同時(shí)影響標(biāo)志寄存器F的狀態(tài)。(2)控制器:計(jì)算機(jī)的控制器由指令寄存器IR

6、、指令譯碼器ID、定時(shí)及控制邏輯電路和程序計(jì)數(shù)器PC等組成,它控制使計(jì)算機(jī)各部分自動(dòng)、協(xié)調(diào)地工作。控制器按照指定的順序從程序存儲(chǔ)器中取出指令進(jìn)行譯碼并根據(jù)譯碼結(jié)果發(fā)出相應(yīng)的控制信號(hào),從而完成該指令所規(guī)定的任務(wù)。指令寄存器IR用來(lái)保存當(dāng)前正在執(zhí)行的一條指令。要執(zhí)行一條指令,首先要把它從程序存儲(chǔ)器中取到指令寄存器中。指令的內(nèi)容包括操作碼和操作數(shù)(或操作數(shù)的地址碼)兩部分。操作碼送到指令譯碼器ID,經(jīng)譯碼后確定所要執(zhí)行的操作;操作數(shù)的地址碼也要送到操作數(shù)地址形成電路以便形成真正的操作數(shù)地址。定時(shí)及控制邏輯電路是CPU的核心部件。它的任務(wù)有控制取指令、執(zhí)行指令、存取操作數(shù)或運(yùn)算結(jié)果等操作,向其他部件發(fā)

7、出控制信號(hào),協(xié)調(diào)各部件的工作。程序計(jì)數(shù)器PC也叫指令地址計(jì)數(shù)器。計(jì)算機(jī)的程序是有序地存儲(chǔ)在程序存儲(chǔ)器中的各種指令的集合。計(jì)算機(jī)運(yùn)行時(shí),按順序取出程序存儲(chǔ)器中的指令并逐一執(zhí)行。程序計(jì)數(shù)器PC指出當(dāng)前要執(zhí)行的指令的地址。每當(dāng)指令取出后,PC的內(nèi)容自動(dòng)加1(除轉(zhuǎn)移指令外),從而指向按序排列的下一條指令的地址。若遇到轉(zhuǎn)移指令(JMP)、子程序調(diào)用指令(CALL)或返回指令(RET)時(shí),這些指令會(huì)把要執(zhí)行的下一條指令的地址直接置入PC中,PC的內(nèi)容才會(huì)突變。程序計(jì)數(shù)器PC的位數(shù)決定了微處理器所尋址的存儲(chǔ)器空間。(3)寄存器組:寄存器組作為CPU內(nèi)部的暫存單元至關(guān)重要,它是CPU處理數(shù)據(jù)所必需的一個(gè)存取空

8、間,其多少直接影響著微機(jī)系統(tǒng)處理數(shù)據(jù)的能力和速度。2)存儲(chǔ)器存儲(chǔ)器是計(jì)算機(jī)存放程序或數(shù)據(jù)的器件,它由若干存儲(chǔ)單元組成。存儲(chǔ)器有兩個(gè)指標(biāo):存儲(chǔ)容量是指存儲(chǔ)器所能存放的最大字節(jié)數(shù),每個(gè)存儲(chǔ)單元按順序都有一個(gè)惟一的編號(hào),即存儲(chǔ)地址;存取時(shí)間是指存儲(chǔ)器存取一次數(shù)據(jù)所需要的時(shí)間,在某種程度上,它決定著計(jì)算機(jī)系統(tǒng)的運(yùn)行速度。存儲(chǔ)器又分內(nèi)存儲(chǔ)器和外存儲(chǔ)器。存放程序的存儲(chǔ)器采用只讀存儲(chǔ)器(ROM);存放輸入/輸出數(shù)據(jù)或中間結(jié)果的存儲(chǔ)器采用隨機(jī)存儲(chǔ)器(RAM)。在實(shí)驗(yàn)系統(tǒng)中使用的EEPROM2864、SRAM6264都是存儲(chǔ)器芯片。3)輸入設(shè)備輸入設(shè)備用于把程序和數(shù)據(jù)輸入到計(jì)算機(jī)中。常用的輸入設(shè)備有鍵盤、鼠標(biāo)、

9、光電輸入機(jī)等。4)輸出設(shè)備輸出設(shè)備用于把計(jì)算機(jī)數(shù)據(jù)計(jì)算或數(shù)據(jù)處理的結(jié)果,以用戶需要的形式顯示或打印出來(lái)。常用的輸出設(shè)備有打印機(jī)、顯示器、繪圖儀等。計(jì)算機(jī)用于控制時(shí),輸入輸出信息還包括現(xiàn)場(chǎng)的各種信息和控制命令。通常把外存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備合在一起稱為計(jì)算機(jī)的外部設(shè)備,簡(jiǎn)稱“外設(shè)”。微型計(jì)算機(jī)加上它的軟件系統(tǒng)便構(gòu)成了微型計(jì)算機(jī)系統(tǒng),如圖1-3所示。軟件系統(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),兩者相輔相成,缺一不可。2單片微型計(jì)算機(jī)前面已經(jīng)提到:?jiǎn)纹⑿陀?jì)算機(jī)簡(jiǎn)稱單

10、片機(jī),它是指把組成微型計(jì)算機(jī)的各功能部件集成在一個(gè)芯片上構(gòu)成一個(gè)完整的微型機(jī),從而實(shí)現(xiàn)微型計(jì)算機(jī)的基本功能。單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖如圖1-4所示。單片機(jī)實(shí)質(zhì)上是一個(gè)芯片,在實(shí)際應(yīng)用中通常很難直接把單片機(jī)和受控對(duì)象進(jìn)行電氣連接,而是必須外加各種擴(kuò)展接口電路以至外部設(shè)備,連同受控對(duì)象和單片機(jī)程序軟件構(gòu)成一個(gè)單片機(jī)應(yīng)用系統(tǒng)。圖1-3 微型計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)示意圖 圖1-4 單片機(jī)內(nèi)部結(jié)構(gòu)示意圖3單片機(jī)應(yīng)用系統(tǒng)及組成圖1-5 單片機(jī)應(yīng)用系統(tǒng)示意圖單片機(jī)應(yīng)用系統(tǒng)是以單片機(jī)為核心,配以輸入、輸出、顯示、測(cè)量和控制等外圍電路和軟件能實(shí)現(xiàn)一種或多種功能的實(shí)用系統(tǒng)。本書(shū)的實(shí)訓(xùn)系統(tǒng)即一個(gè)單片機(jī)的應(yīng)用系統(tǒng)。該應(yīng)用系統(tǒng)除

11、了有單片機(jī)芯片,還有許多其他外圍電路,所以說(shuō)單片機(jī)應(yīng)用系統(tǒng)是由硬件和軟件組成的。硬件是單片機(jī)應(yīng)用系統(tǒng)的基礎(chǔ),軟件則是在硬件的基礎(chǔ)上對(duì)其資源進(jìn)行合理調(diào)配和使用,從而完成應(yīng)用系統(tǒng)所要求的任務(wù)。硬件和軟件二者相互依賴,缺一不可。單片機(jī)應(yīng)用系統(tǒng)的組成示意圖如圖1-5所示。因此,單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)人員必須從硬件和軟件兩個(gè)角度來(lái)深入了解單片機(jī),并能將二者有機(jī)地結(jié)合起來(lái),才能設(shè)計(jì)制作出具有特定功能的單片機(jī)應(yīng)用系統(tǒng)或整機(jī)產(chǎn)品。自1974年美國(guó)Fairchild公司研制出第一臺(tái)單片機(jī)F8以來(lái),單片機(jī)經(jīng)歷了由4位機(jī)到8位機(jī)再到16位、32位機(jī)的發(fā)展過(guò)程。單片機(jī)制造商很多,主要有美國(guó)的Intel、Motorola

12、、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),16位機(jī)可能被淘汰,而8位單片機(jī)仍是單片機(jī)的主流機(jī)型。MCS-51系列單片機(jī)Intel公司于1976年推出了MCS-48系列單片機(jī),于1980年推出了MCS-51系列單片機(jī),于1983年推出了MCS-96系列單片機(jī)。1MCS-51系列單片機(jī)MCS-51系列單片機(jī)是一種高性能的8位單片機(jī),它是在MCS-48系列單片機(jī)的基礎(chǔ)上推出的第二代單片機(jī)。其典型產(chǎn)品為8051,封裝

13、為40引腳。芯片內(nèi)部集成有:r 一個(gè)8位的微處理器(CPU)r 4KB的程序存儲(chǔ)器r 128B的數(shù)據(jù)存儲(chǔ)器r 64KB的片外程序存儲(chǔ)器尋址能力r 64KB的片外數(shù)據(jù)存儲(chǔ)器尋址能力r 32根輸入/輸出線r 1個(gè)全雙工異步串行口r 2個(gè)16位定時(shí)/計(jì)數(shù)器r 5個(gè)中斷源,2個(gè)優(yōu)先級(jí)MCS-51系列單片機(jī)按片內(nèi)有無(wú)程序存儲(chǔ)器及程序存儲(chǔ)器的形式分為三種基本產(chǎn)品:8051、8751和8031。8051單片機(jī)片內(nèi)含有4KB的ROM,ROM中的程序是由單片機(jī)芯片生產(chǎn)廠家固化的,適合于大批量的產(chǎn)品;8751單片機(jī)片內(nèi)含有4KB的EPROM,單片機(jī)應(yīng)用開(kāi)發(fā)人員可以把編好的程序用開(kāi)發(fā)機(jī)或編程器寫入其中,需要修改時(shí),

14、可以先用紫外線擦除器擦除,然后再寫入新的程序;8031片內(nèi)沒(méi)有程序存儲(chǔ)器,當(dāng)在單片機(jī)芯片外擴(kuò)展EPROM后,就相當(dāng)于一片8751,此種應(yīng)用方式方便靈活。這三種芯片只是在程序存儲(chǔ)器的形式上不同,在結(jié)構(gòu)和功能上都一樣。表1-1為MCS-51系列單片機(jī)常用產(chǎn)品特性一覽表。表1-1 MCS-51系列單片機(jī)常用產(chǎn)品特性一覽表型號(hào)片內(nèi)存儲(chǔ)器(B)I/O口線定時(shí)/計(jì)數(shù)器片外存儲(chǔ)器(B)程序存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器程序存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器80514KROM128322個(gè)16位64K64K87514KEPROM128322個(gè)16位64K64K8031無(wú)128322個(gè)16位64K64K80C514KROM128322個(gè)16位

15、64K64K87C514KEPROM128322個(gè)16位64K64K80C31無(wú)128322個(gè)16位64K64K續(xù)表型號(hào)片內(nèi)存儲(chǔ)器(B)I/O口線定時(shí)/計(jì)數(shù)器片外存儲(chǔ)器(B)程序存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器程序存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器80524KROM256323個(gè)16位64K64K87524KEPROM256323個(gè)16位64K64K8032無(wú)256323個(gè)16位64K64K2其他51系列單片機(jī)(1)AT89系列單片機(jī)AT89系列單片機(jī)是美國(guó)ATMEL公司的8位Flash單片機(jī)產(chǎn)品,它以MCS-51為內(nèi)核,與MCS-51系列的單片機(jī)軟硬件兼容。該系列中有20引腳封裝的產(chǎn)品,體積的減小使其應(yīng)用更加靈活。時(shí)鐘頻率的

16、提高可使運(yùn)算速度加快。在片內(nèi)含有Flash存儲(chǔ)器,F(xiàn)lash存儲(chǔ)器是一種可以電擦除和電寫入的閃速存儲(chǔ)器(簡(jiǎn)記為FPEROM),這使開(kāi)發(fā)調(diào)試更為方便。表1-2 AT89系列單片機(jī)常用產(chǎn)品特性一覽表型號(hào)片內(nèi)存儲(chǔ)器I/O口線定時(shí)/計(jì)數(shù)器模擬比較器中斷源串行口程序存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器89C10511KBFEPROM64B151個(gè)16位1個(gè)3個(gè)無(wú)89C20512KBFEPROM128B152個(gè)16位1個(gè)5個(gè)2級(jí)UART89C514KBFEPROM128B322個(gè)16位無(wú)5個(gè)2級(jí)UART89C528KBFEPROM256B323個(gè)16位無(wú)6個(gè)2級(jí)UART(2)其他MCS-51系列兼容單片機(jī)為了進(jìn)一步增強(qiáng)MCS

17、-51系列單片機(jī)的功能,一些單片機(jī)生產(chǎn)廠商還對(duì)MCS-51系列單片機(jī)的硬件進(jìn)行了擴(kuò)充。如PHILIPS的8XC552系列,在80C51的基礎(chǔ)上增加了一個(gè)16位的定時(shí)/計(jì)數(shù)器和一個(gè)8路輸入的10位A/D轉(zhuǎn)換器,并配有串行總線接口;80C51XA使單片機(jī)位數(shù)增至16位;Intel公司的80C51GA/GB也增加了A/D轉(zhuǎn)換功能。1.2MCS-51單片機(jī)結(jié)構(gòu)和原理 MCS-51單片機(jī)的引腳及內(nèi)部結(jié)構(gòu)對(duì)于一個(gè)單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)者,熟悉并掌握單片機(jī)的硬件結(jié)構(gòu)是十分重要的,這里從實(shí)際需要出發(fā),只介紹與程序設(shè)計(jì)和系統(tǒng)擴(kuò)展應(yīng)用有關(guān)的內(nèi)容。MCS-51系列單片機(jī)的典型芯片為8031、8051、8751。由

18、于AT89C51的開(kāi)發(fā)調(diào)試使用方便,它又和MCS-51系列的軟硬件兼容,因此下文就以AT89C51芯片為例,介紹MCS-51系列單片機(jī)的外部引腳及內(nèi)部結(jié)構(gòu)。189C51的外部引腳89C51是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,如圖1-6所示。圖1-6 89C51引腳按其功能可分為電源、時(shí)鐘、控制和I/O接口四大部分:1)電源引腳VCC:芯片主電源,外接+5V;GND:電源地線。2)時(shí)鐘引腳XTAL1與XTAL2為內(nèi)部振蕩器的兩條引出線。3)控制引腳(1)ALE/:地址鎖存控制信號(hào)/編程脈沖輸入端在擴(kuò)展系統(tǒng)時(shí),ALE用于控制把P0口輸出的低8位地址鎖存起來(lái),以實(shí)現(xiàn)低8位地址和數(shù)據(jù)的隔離,P0口

19、作為數(shù)據(jù)地址復(fù)用口線。當(dāng)訪問(wèn)單片機(jī)外部程序或數(shù)據(jù)存儲(chǔ)器或外接I/O口時(shí),ALE輸出脈沖的下降沿用于低8位地址的鎖存信號(hào);即使不訪問(wèn)單片機(jī)外部程序或收據(jù)存儲(chǔ)器或外接I/O口,ALE端仍以晶振頻率的1/6輸出正脈沖信號(hào),因此可作為外部時(shí)鐘或外部定時(shí)信號(hào)使用。但應(yīng)注意,此時(shí)不能訪問(wèn)單片機(jī)外部程序、數(shù)據(jù)存儲(chǔ)器或外設(shè)I/O接口。ALE端可以驅(qū)動(dòng)8個(gè)TTL負(fù)載。對(duì)于EEPROM型單片機(jī)(89C51)或EPROM型單片機(jī)(8751),在EEPROM或EPROM編程期間,該引腳用來(lái)輸入一個(gè)編程脈沖(PROG)。(2):片外程序存儲(chǔ)器讀選通有效信號(hào)在CPU向片外程序存儲(chǔ)器讀取指令和常數(shù)時(shí),每個(gè)機(jī)器周期兩次低電平

20、有效。但在此期間,每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或I/O接口時(shí),該兩次低電平有效信號(hào)將不出現(xiàn)。端可以驅(qū)動(dòng)8個(gè)TTL負(fù)載。(3)/VPP:訪問(wèn)程序存儲(chǔ)器控制信號(hào)/編程電源輸入端當(dāng)該引腳信號(hào)為低電平時(shí),只訪問(wèn)片外程序存儲(chǔ)器,不管片內(nèi)是否有程序存儲(chǔ)器;當(dāng)該引腳為高電平時(shí),單片機(jī)訪問(wèn)片內(nèi)的程序存儲(chǔ)器。但對(duì)AT89C51來(lái)說(shuō),當(dāng)PC(程序計(jì)數(shù)器)值超出4K地址時(shí),自動(dòng)轉(zhuǎn)到片外程序存儲(chǔ)器1000H開(kāi)始順序讀取指令。對(duì)于EEPROM型單片機(jī)(89C51)或EPROM型單片機(jī)(8751),在EEPROM或EPROM編程期間,該引腳用于施加一個(gè)+12V或+21V的電源。(4)RST/VPD:復(fù)位/掉電保護(hù)信號(hào)輸入端當(dāng)振

21、蕩器運(yùn)行時(shí),在該引腳加上一個(gè)2個(gè)機(jī)器周期以上的高電平信號(hào),就能使單片機(jī)回到初始狀態(tài),即進(jìn)行復(fù)位。掉電期間,該引腳可接上備用電源(VPD)以保持內(nèi)部RAM的數(shù)據(jù)。4)I/O引腳P0口(P0.0P0.7):8位雙向并行I/O接口。擴(kuò)展片外存儲(chǔ)器或I/O口時(shí),作為低8位地址總線和8位數(shù)據(jù)總線的分時(shí)復(fù)用接口,它為雙向三態(tài)。P0口可帶8個(gè)TTL負(fù)載電流。P1口(P1.0P1.7):8位準(zhǔn)雙向并行I/O接口。P1口每一位都可以獨(dú)立設(shè)置成輸入輸出位。P1口可以驅(qū)動(dòng)4個(gè)TTL電路。P2口(P2.0P2.7):8位準(zhǔn)雙向并行I/O接口。擴(kuò)展外部數(shù)據(jù)、程序存儲(chǔ)器時(shí),作為高8位地址輸出端口。P2口可以驅(qū)動(dòng)4個(gè)TTL

22、電路。P3口(P3.0P3.7):8位準(zhǔn)雙向并行I/O接口。除了與P1口有一樣的I/O功能外,每一個(gè)引腳還兼有第二功能。如表1-3所示。表1-3 P3口各引腳對(duì)應(yīng)的第二功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXDTXDT0T1P3口可以驅(qū)動(dòng)4個(gè)TTL電路。P3口的第二功能信號(hào)都是單片機(jī)的重要控制信號(hào),因此,在實(shí)際使用時(shí),先按需要選用第二功能信號(hào),剩下的才以第一功能的身份作為數(shù)據(jù)位的I/O使用。P1、P2、P3口線片內(nèi)均有固定的上拉電阻,故稱為準(zhǔn)雙向并行I/O接口;P0口片內(nèi)無(wú)固定的上拉電阻,由兩個(gè)MOS管串接,既可開(kāi)路輸出,又可處于高阻的“懸空”狀態(tài),故稱為雙向三

23、態(tài)并行I/O接口。讀者在學(xué)完1.3節(jié)后會(huì)有較深刻的理解。以上是把MSC-51單片機(jī)芯片全部40個(gè)信號(hào)引腳的定義及功能作一簡(jiǎn)單說(shuō)明。對(duì)于各種型號(hào)的芯片,其引腳的第一功能信號(hào)是相同的,所不同的是引腳的第二功能信號(hào),讀者可以對(duì)照實(shí)訓(xùn)電路找到相應(yīng)的引腳,在電路中查看每個(gè)引腳的連接使用。289C51的內(nèi)部結(jié)構(gòu)89C51單片機(jī)的內(nèi)部結(jié)構(gòu)圖如圖1-7所示。由圖1-7可知,89C51單片機(jī)由運(yùn)算器和控制器組成的微處理器、片內(nèi)存儲(chǔ)器RAM/ROM、P0P3組成的I/O端口以及各種存儲(chǔ)器組成的特殊功能寄存器SFR和串行接口、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)、振蕩器等構(gòu)成。下面介紹其各構(gòu)成部分的基本含義。1)89C51的微處

24、理器(CPU)微處理器是單片機(jī)的核心部分,完成運(yùn)算和控制功能。89C51的CPU能處理8位二進(jìn)數(shù)或代碼,它由運(yùn)算器(包括算術(shù)/邏輯運(yùn)算單元ALU、累加器A、寄存器B、暫存寄存器、程序狀態(tài)字寄存器PSW)、控制器(包括指令寄存器IR、指令譯碼器ID、定時(shí)及控制邏輯電路)、程序計(jì)數(shù)器PC等組成。2)89C51的內(nèi)部數(shù)據(jù)存儲(chǔ)器(內(nèi)部RAM)89C51芯片中共有256個(gè)RAM單元,但其中高128單元被專用寄存器SFR占用,能作為寄存器供用戶使用的只是低128單元,地址范圍是00H7FH,用于存放可讀寫的數(shù)據(jù)。因此通常所說(shuō)的內(nèi)部數(shù)據(jù)存儲(chǔ)器是指低128單元,簡(jiǎn)稱內(nèi)部RAM。3)89C51的內(nèi)部程序存儲(chǔ)器(

25、內(nèi)部ROM)89C51芯片中共有4KBFPEROM,地址范圍是0000H0FFFH,用于存放程序、原始數(shù)據(jù)或表格,因此稱之為程序存儲(chǔ)器,簡(jiǎn)稱內(nèi)部ROM。圖1-7 單片機(jī)89C51內(nèi)部結(jié)構(gòu)框圖4)定時(shí)/計(jì)數(shù)器89C51芯片中共有兩個(gè)16位的定時(shí)/計(jì)數(shù)器以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能,并以其定時(shí)或計(jì)數(shù)結(jié)果實(shí)現(xiàn)控制功能。5)并行I/O口89C51芯片中共有4個(gè)8位的I/O口(P0、P1、P2、P3)以實(shí)現(xiàn)數(shù)據(jù)的并行輸入/輸出。本書(shū)在實(shí)訓(xùn)1中已經(jīng)使用了P1口,通過(guò)P1口連接8個(gè)發(fā)光二極管。6)串行口89C51單片機(jī)有一個(gè)全雙工的串行口以實(shí)現(xiàn)單片機(jī)和其他設(shè)備之間的串行數(shù)據(jù)傳送。該串行口功能較強(qiáng),既可作為全雙工異步

26、通信收發(fā)器使用,也可作為同步移位器使用。7)中斷控制系統(tǒng)MCS-51系列單片機(jī)的中斷功能較強(qiáng)以滿足控制應(yīng)用的需要。89C51共有5個(gè)中斷 源,即外中斷兩個(gè)、定時(shí)/計(jì)數(shù)中斷兩個(gè)、串行中斷一個(gè)。全部中斷分為高級(jí)和低級(jí)兩個(gè)優(yōu)先級(jí)別。8)時(shí)鐘電路89C51芯片的內(nèi)部有時(shí)鐘電路,但石英晶體和微調(diào)電容需外接。時(shí)鐘電路位單片機(jī)產(chǎn)生時(shí)鐘脈沖序列。系統(tǒng)允許的晶振頻率一般為6MHz12MHz。從上述內(nèi)容可以看出,MCS-51雖然是一個(gè)單片機(jī)芯片,但作為計(jì)算機(jī)應(yīng)該具有的基本部件它都包括,因此,實(shí)際上它已屬于一個(gè)簡(jiǎn)單的微型計(jì)算機(jī)系統(tǒng)了。 MCS-51單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器存儲(chǔ)器功能是存儲(chǔ)信息程序和數(shù)據(jù)。存儲(chǔ)器按其存取

27、方式可以分成兩大類,一類是隨機(jī)存取存儲(chǔ)器(RAM);另一類是只讀存儲(chǔ)器(ROM)。對(duì)于RAM,CPU在運(yùn)行過(guò)程中能隨時(shí)進(jìn)行寫入和讀出,但在關(guān)閉電源時(shí),其存儲(chǔ)信息將丟失,所以它只能用來(lái)存放暫時(shí)性的輸入/輸出數(shù)據(jù)、運(yùn)算的中間結(jié)果或用作堆棧。因此,RAM常被稱作數(shù)據(jù)存儲(chǔ)器。ROM是一種寫入信息后不能改寫只能讀出的存儲(chǔ)器,斷電后,其信息仍保留不變。ROM用來(lái)存放固定的程序或數(shù)據(jù),如系統(tǒng)監(jiān)控程序、常數(shù)表格等。所以,ROM常被稱作程序存儲(chǔ)器。MCS-51單片機(jī)的芯片內(nèi)部包含數(shù)據(jù)存儲(chǔ)器(RAM)和程序存儲(chǔ)器(ROM)兩類存儲(chǔ)器。下文先介紹內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)。1內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)的地址分配其地址分

28、配如圖1-8所示。F8HFFH.80H87HSFR區(qū)30H7FH用戶RAM區(qū)(數(shù)據(jù)緩沖區(qū))20H2FH位尋址區(qū)(00H7FH)18H1FH工作寄存器區(qū)3區(qū)(R7R0)10H17H工作寄存器區(qū)2區(qū)(R7R0)08H0FH工作寄存器區(qū)1區(qū)(R7R0)00H07H工作寄存器區(qū)0區(qū)(R7R0)圖1-8MCS-51內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)的地址分配圖內(nèi)部RAM共有256個(gè)單元,通常把256個(gè)單元按其功能劃分為兩部分:低128字節(jié)(00H7FH)RAM和高128字節(jié)(80HFFH)。2內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)低128單元內(nèi)部數(shù)據(jù)存儲(chǔ)器的低128單元(00H7FH)是真正的RAM存儲(chǔ)器,按其用途劃分為工作寄

29、存器區(qū)、位尋址區(qū)和用戶RAM區(qū)三個(gè)區(qū)域,如圖1-9所示。30H7FH用戶RAM區(qū)(數(shù)據(jù)緩沖區(qū))20H2FH位尋址區(qū)(00H7FH)18H1FH工作寄存器區(qū)3區(qū)(R7R0)10H17H工作寄存器區(qū)2區(qū)(R7R0)08H0FH工作寄存器區(qū)1區(qū)(R7R0)00H07H工作寄存器區(qū)0區(qū)(R7R0)圖1-9片內(nèi)RAM低128字節(jié)的配置1)寄存器區(qū)共有4組寄存器,每組8個(gè)寄存單元,各單元8位,每組的8個(gè)寄存單元都以R0R7作為寄存單元的編號(hào)。寄存器常用于存放操作數(shù)及中間結(jié)果,由于它們的功能及使用不作預(yù)先規(guī)定,因此稱為通用寄存器,有時(shí)也叫工作寄存器。4組通用寄存器占據(jù)內(nèi)部RAM的00H1F單元地址。在任一時(shí)

30、刻,CPU只能使用四組寄存器中的一組寄存器,并且把正在使用的那組寄存器稱之為當(dāng)前寄存器組。到底是哪一組,由程序狀態(tài)字寄存器PSW中的RS1、RS0的狀態(tài)組合來(lái)決定(見(jiàn)SFR中的PSW)。通用寄存器為CPU提供了就近存儲(chǔ)數(shù)據(jù)的功能,有利于提高單片機(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ū)稱為位尋址區(qū)。位尋址區(qū)共有16個(gè)RAM單元字節(jié),計(jì)128位,各位地址位00H7FH。MC

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

32、8504840383028續(xù)表單元地址位地址MSB LSB24H23H22H21H20H271F170F07261E160E06251D150D05241C140C04231B130B03221A120A02211911090120181008003)用戶RAM區(qū)在內(nèi)部RAM的128個(gè)單元中,通用寄存器占了32個(gè)單元,位尋址區(qū)占了16個(gè)單元,剩下80個(gè)單元,這就是供用戶使用的一般RAM區(qū),其單元地址為30H7FH。對(duì)用戶RAM區(qū)的使用沒(méi)有任何規(guī)定和限制,但在實(shí)際使用中,常需在RAM區(qū)設(shè)置堆棧。這在編程中使用RAM單元時(shí)應(yīng)特別注意,不要和棧區(qū)單元混淆。3內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)高128單元內(nèi)部數(shù)

33、據(jù)存儲(chǔ)器(RAM)高128單元是供給專用寄存器使用的,其單元地址為80HFFH。但這21個(gè)專用寄存器的地址分散地分布在80HFFH的地址空間中,只占用了高128單元中的21個(gè)單元。因這些寄存器的功能已作專門規(guī)定,故稱之為專用寄存器(Special Function Register),也可稱之為特殊功能寄存器。1)特殊功能寄存器(SPR)簡(jiǎn)介8051/89C51共有21個(gè)專用寄存器,現(xiàn)把其中部分寄存器簡(jiǎn)單介紹如下:(1)程序計(jì)數(shù)器(Program Counter,PC) PC是一個(gè)16位的計(jì)數(shù)器,它的作用是控制程序的執(zhí)行順序,其內(nèi)容為下一條要執(zhí)行的指令的地址,尋址范圍達(dá)64KB。PC有自動(dòng)加1

34、的功能,從而實(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ì)作專用寄存器。(2)累加器(Accumulator,ACC) 累加器為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)算

35、時(shí),B存除數(shù),除法操作后,余數(shù)存于B中。此外,B寄存器也可作為一般寄存器使用。(4)程序狀態(tài)字(Program Status Word,PSW) 程序狀態(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的各位定義如圖1-10所示。PSW位地址:D7HD6HD5HD4HD3HD2HD1HD0HCYACF0RS1RS0OVP圖1-10 PSW的各位定義PSW的字節(jié)地址為D0H。除PSW.1位保

36、留未用外,其余各位的定義及使用如下: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”(Single Chip Micro Computer),否則清“0”;二是在位操作中作累加位使用。位傳送、位與位等位操作,進(jìn)位標(biāo)志位是固定的操作位之一。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)志位,需要利用軟件方法置

37、位或復(fù)位,用于控制程序的轉(zhuǎn)向。RS1和RS0(PSW.4、PSW.3)工作寄存器組選擇位。它們被用于選擇CPU當(dāng)前使用的通用寄存器組。通用寄存器共有4組,其對(duì)應(yīng)關(guān)系如表1-5所示。表1-5 通用寄存器組的選擇RS1 RS0寄存器組片內(nèi)RAM地址0 0第0組00H07H0 1第1組08H0FH1 0第2組10H17H1 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)生了溢出

38、;因此運(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表示除法可正常進(jìn)行。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ù)目煽啃?。?)數(shù)據(jù)指針(DPTR) 數(shù)據(jù)指針為16位寄存器。編程時(shí),DPTR既可以按16位寄存器使用,也可以按兩個(gè)8位寄存器分

39、開(kāi)使用,即: DPH DPTR高8位字節(jié) DPL DPTR 低8位字節(jié)DPTR通常在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)作地址指針使用。由于外部數(shù)據(jù)存儲(chǔ)器的尋址范圍為64KB,故把DPTR設(shè)計(jì)為16位。(6)堆棧指針(Stack Pointer,SP) 堆棧是一個(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)始的,但08H1FH單元分別屬于工作寄存器13區(qū),如果程序要用到這些區(qū),最好把SP值改為更大的值。一般在內(nèi)部RA

40、M的30H7FH單元中開(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-6和表1-7中。表1-6專用寄存器地址表符 號(hào)名 稱地 址ACCBPSW累加器B寄存器程序狀態(tài)字E0HF0HD0HSPDPTRP0堆棧指針數(shù)據(jù)指針(包括DPH

41、和DPL)P0口鎖存寄存器81H82H83H80HP1P2P3P1口鎖存寄存器P2口鎖存寄存器P3口鎖存寄存器90HA0HB0HIPIETMOD中斷優(yōu)先級(jí)控制寄存器中斷允許控制寄存器定時(shí)/計(jì)數(shù)器工作方式狀態(tài)寄存器B8HA8H89HTCONTH0TL0定時(shí)/計(jì)數(shù)器控制寄存器定時(shí)/計(jì)數(shù)器0(高字節(jié))定時(shí)/計(jì)數(shù)器0(低字節(jié))88H8CH8AHTH1TL1定時(shí)/計(jì)數(shù)器1(高字節(jié))定時(shí)/計(jì)數(shù)器1(低字節(jié))8DH8BHSCONSBUFPCON串行口控制寄存器串行口數(shù)據(jù)緩沖器電源控制寄存器98H99H87H表1-7 可進(jìn)行位尋址的SFR的分布SFR位地址/位定義字節(jié)地址MSB LSBB0F7HF6HF5HF

42、4HF3HF2HF1HF0HF0HACCE7HF6HE5HE4HE3HE2HE1HE0HE0HPSWD7HD6HD5HD4HD3HD2HD1D0HD0HCYACF0RS1RS0OVPIPBFHBEHBDHBCHBBHBAHB9HB8HB8HPSPT1PX1PT0PX0P3B7B6B5B4B3B2B1B0BOHP3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0IEAFAEADACABAAA9A8A8HEAESET1EX1ET0EX0P2A7A6A5A4A3A2A1A0A0HP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0SCON9F9E9D9C9B9A999898H

43、SM0SM1SM2RENTB8RB8TIRIP1979695949392919090HP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0TCON8F8E8D8C8B8A898888HTF1TR1TF0TR0IE1IT1IE0IT0P0878685848382818080HP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0對(duì)專用寄存器的字節(jié)尋址問(wèn)題作如下幾點(diǎn)說(shuō)明:(1)21個(gè)可字節(jié)尋址的專用寄存器不連續(xù)地分散在內(nèi)部RAM高128單元之中,盡管還余有許多空閑地址,但用戶并不能使用。(2)程序寄數(shù)器PC不占據(jù)RAM單元,它在物理上是獨(dú)立的,因此是不可尋址的寄存器。(3)對(duì)

44、專用寄存器只能使用直接的尋址方式,書(shū)寫時(shí)既可使用寄存器符號(hào),也可使用寄存器單元地址。全部專用寄存器可位尋址的位共83位,這些位都具有專門的定義和用途。這樣,加上位尋址的128位,在MCS-51的內(nèi)部RAM中共有128+83=211個(gè)可尋址位。 MCS-51單片機(jī)的內(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)一編址的。端保持高電平時(shí),8051的程序計(jì)數(shù)器PC在0000H0FFFH地址范圍內(nèi)(即前4KB地址)執(zhí)行片內(nèi)RO

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

46、;000BH0012H 定時(shí)/計(jì)數(shù)器0中斷地址區(qū);0013H001AH 外部中斷1中斷地址區(qū);001BH0022H 定時(shí)/計(jì)數(shù)器1中斷地址區(qū);0023H002AH 串行中斷地址區(qū)。中斷響應(yīng)后,按中斷種類,自動(dòng)轉(zhuǎn)到各中斷區(qū)的首地址區(qū)執(zhí)行程序,因此在中斷地址區(qū)中理應(yīng)存放中斷服務(wù)程序。通常情況下,8 個(gè)單元難以存下一個(gè)完整的中斷服務(wù)程序,因此也通常從中斷地址區(qū)首地址開(kāi)始存放一條無(wú)條件轉(zhuǎn)移指令,以便中斷響應(yīng)后,通過(guò)中斷地址區(qū)再轉(zhuǎn)到中斷服務(wù)程序的實(shí)際入口地址。1.3 MCS-51單片機(jī)的并行端口結(jié)構(gòu)單片機(jī)芯片內(nèi)還有一項(xiàng)主要內(nèi)容即并行I/O口。MCS-51共有4個(gè)8位的I/O口,分別記作P0、P

47、1、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),以下對(duì)其分別作以介紹。1.3.1 P0口P0口的口線邏輯電路如圖1-11所示。由圖可知,電路中包含一個(gè)數(shù)據(jù)輸出鎖存器、兩個(gè)三態(tài)數(shù)據(jù)輸入緩沖器、一個(gè)數(shù)據(jù)輸出的驅(qū)動(dòng)電路和一個(gè)輸出控制電路。當(dāng)對(duì)P0口進(jìn)行寫操作時(shí),由鎖存器和驅(qū)

48、動(dòng)電路構(gòu)成數(shù)據(jù)輸出通路。由于通路中已有輸入鎖存器,因此數(shù)據(jù)輸出時(shí)可以與外設(shè)直接連接,而不需再加數(shù)據(jù)鎖存電路。圖1-11 P0口某位結(jié)構(gòu)考慮到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)為低電平,封鎖與門,將輸出電路的上拉場(chǎng)效應(yīng)管(FET)截止,同時(shí)使多路轉(zhuǎn)接電路MUX接通被封鎖存器端的輸出通路。當(dāng)P0口作為輸出口使用時(shí),內(nèi)部的寫脈沖加在D觸發(fā)器的CP端,數(shù)據(jù)寫入鎖存器,并向端口輸出。當(dāng)P0口作

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

50、讀引腳而讀鎖存器是為了避免可能出現(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í),由于輸出電路是漏極開(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)輸出地址或

51、數(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)部總線。1.3.2 P1口圖1-12 P1口某位結(jié)構(gòu)P1口的口線邏輯電路如圖1-12所示。因?yàn)镻1口通常是作為通用I/O口使用的,所以在電路結(jié)構(gòu)上與P0口有一些不同之處:首先它不再需要多路轉(zhuǎn)接電路MUX;其次是電路的內(nèi)部有上拉電阻,與場(chǎng)效應(yīng)管共同組成輸出驅(qū)電路。因此,P1口作為輸出口使用時(shí),已經(jīng)能向外提供推拉電流負(fù)載,無(wú)需再外接上拉電阻。當(dāng)P

52、1口作為輸入口使用時(shí),同樣也需先向鎖驅(qū)動(dòng)電路FET截止。1.3.3 P2口P2口的口線邏輯電路如圖1-13所示。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)倒向相反方向。圖1-13 P2口某位結(jié)構(gòu)1.3.4 P3口P3口的口線邏輯電路如圖1-14所示。P3口的特點(diǎn)在于適應(yīng)引腳信號(hào)第二功能的需要,增強(qiáng)了第二功能控制邏輯。由于第二功能信號(hào)有輸入和輸出兩類,因此分兩種情況說(shuō)明。對(duì)于第二功能為輸出的信號(hào)引腳,當(dāng)作為I/O使用時(shí),第二功能信號(hào)引腳應(yīng)

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

溫馨提示

  • 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)論