




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第1章 MCS-51單片機(jī)結(jié)構(gòu)及原理內(nèi)容提要本章介紹單片機(jī)的概念、分類及應(yīng)用領(lǐng)域。單片機(jī)從硬件角度看由中央處理器CPU、程序存儲(chǔ)器及數(shù)據(jù)存儲(chǔ)器、多種輸入和輸出(I/O)口組成,從軟件的角度看通過(guò)程序控制單片機(jī)各部分的運(yùn)行,本章重點(diǎn)介紹MCS-51系列單片機(jī)中央處理器、各種存儲(chǔ)器、寄存器、輸入和輸出口,復(fù)位方法等。這些都是與程序有關(guān)的基礎(chǔ)知識(shí)。自1970-1975年美國(guó)多家公司開(kāi)發(fā)出單片微型計(jì)算機(jī)以來(lái),單片機(jī)技術(shù)已成為計(jì)算機(jī)技術(shù)的一個(gè)獨(dú)特分支。本書(shū)主要介紹單片機(jī)的發(fā)展概況,單片機(jī)的基礎(chǔ)知識(shí)以及單片機(jī)原理和應(yīng)用。1.1 單片機(jī)的概念1.1.1 單片機(jī)的概念隨著大規(guī)模集成電路技術(shù)和計(jì)算機(jī)技術(shù)的飛速發(fā)
2、展,把計(jì)算機(jī)的運(yùn)算器和控制器(即CPU),存儲(chǔ)器(程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器)和多種接口集成在一塊芯片上,稱為微處理器(Microprocessor),也叫微控制器,在我國(guó)習(xí)慣上又叫單片機(jī)。微型計(jì)算機(jī)問(wèn)世20年來(lái),發(fā)展速度之迅猛,應(yīng)用范圍之廣泛是以往任何技術(shù)都無(wú)法比擬的。單片機(jī)作為嵌入式微控制器其應(yīng)用非常普及。是電類專業(yè)需要掌握的一門(mén)常用電子技術(shù)。單片機(jī)的組成一個(gè)最基本的微型計(jì)算機(jī)通常由以下幾部分組成:(1)中央處理器(CPU),包括運(yùn)算器、控制器和寄存器組;(2)存儲(chǔ)器,包括ROM(只讀存儲(chǔ)器)和RAM(靜態(tài)可讀寫(xiě)存儲(chǔ)器);(3)多種輸入/輸出(I/O)接口,與外部輸入輸出設(shè)備連接。 隨著計(jì)算機(jī)
3、微型化的需要,把上述微型計(jì)算機(jī)的基本功能部件全部集成在一塊半導(dǎo)體芯片上,使得一塊集成電路芯片就是一個(gè)單片機(jī),單片機(jī)除了具備一般微型計(jì)算機(jī)的功能外,為了增強(qiáng)實(shí)時(shí)控制能力,絕大部分單片機(jī)的芯片上還集成有定時(shí)器/計(jì)數(shù)器,某些單片機(jī)帶有A/D(模擬量轉(zhuǎn)換成數(shù)字量)轉(zhuǎn)換器,D/A轉(zhuǎn)換,串行接口等功能部件,使單片機(jī)能夠滿足多功能控制技術(shù)要求。 單片機(jī)結(jié)構(gòu)上的設(shè)計(jì)重點(diǎn)是面向控制的需要,因此,它在硬件結(jié)構(gòu)、指令系統(tǒng)和I/O能力等方面均有其獨(dú)特之處,其顯著的特點(diǎn)之一就是具有非常有效的控制功能。所以,單片機(jī)不但與一般的微機(jī)結(jié)構(gòu)一樣是有效的數(shù)據(jù)處理機(jī),而且還是一個(gè)功能很強(qiáng)的過(guò)程 控制機(jī)。只要加上較少的、所需要的輸入
4、/輸出設(shè)備或驅(qū)動(dòng)電路,就可以構(gòu)成一個(gè)實(shí)用的系統(tǒng),滿足各種應(yīng)用領(lǐng)域的需要。并且也可把有些硬件功能軟件化。圖1.1是一單片機(jī)實(shí)驗(yàn)電路,其中較大的一塊集成電路是AT89C51單片機(jī),上部是采用數(shù)碼管顯示電路。 圖1.1 單片機(jī)實(shí)驗(yàn)電路圖 單片機(jī)的特點(diǎn) 單片機(jī)具有集成度高、體積小、功耗低、系列齊全、功能擴(kuò)展容易、使用靈活方便、抗干擾能力強(qiáng)、性能可靠、價(jià)格低廉等特點(diǎn)。用行話講叫“性/價(jià)”比高。單片機(jī)的發(fā)展概況 單片機(jī)自從1975年誕生以來(lái),經(jīng)歷了近30年的發(fā)展。目前單片機(jī)的產(chǎn)品已達(dá)60多種系列,300多種型號(hào)。每年還有很多新型號(hào)產(chǎn)生。就字長(zhǎng)而言,單片機(jī)主要有4位、8位、16位和32位等多種。這里說(shuō)的“位
5、”指CPU一次能處理、傳送的二進(jìn)制數(shù)位數(shù)。1.1.2 單片機(jī)的應(yīng)用領(lǐng)域 由于單片機(jī)具有體積小、使用靈活、成本低、易于產(chǎn)品化等的特點(diǎn),特別是有強(qiáng)大的、面向控制的能力,使它在工業(yè)控制、智能儀表、外設(shè)控制、家用電器、機(jī)器人、軍事裝置等方面得到了廣泛的應(yīng)用。 單片機(jī)的主要應(yīng)用領(lǐng)域有以下幾方面。 智能化產(chǎn)品 單片機(jī)與傳統(tǒng)的機(jī)械產(chǎn)品相結(jié)合,使傳統(tǒng)的機(jī)械產(chǎn)品結(jié)構(gòu)簡(jiǎn)單化,控制智能化,構(gòu)成新一代的機(jī)、電一代化產(chǎn)品。目前,廣泛用于工業(yè)自動(dòng)控制,如數(shù)控機(jī)床、可編程順序控制、電機(jī)控制、工業(yè)機(jī)器人,離散與連續(xù)過(guò)程自動(dòng)控制等;家用電器,如微波爐、電視機(jī)、錄像機(jī)、音響設(shè)備、游戲機(jī)等;辦公設(shè)備,如傳真機(jī)、復(fù)印機(jī)、數(shù)碼相機(jī)等;
6、電訊技術(shù),如調(diào)制解調(diào)器、聲像處理、數(shù)字濾波、智能線路運(yùn)行控制;在電傳、打印機(jī)設(shè)計(jì)中由于采用了單片機(jī),取代了近千個(gè)機(jī)械部件;用單片機(jī)控制空調(diào)機(jī),使制冷量無(wú)級(jí)調(diào)節(jié)的優(yōu)點(diǎn)得到了充分的發(fā)揮,并增加了多種報(bào)警與控制功能;用單片機(jī)實(shí)現(xiàn)了通信系統(tǒng)中的臨時(shí)監(jiān)控、自適應(yīng)控制、頻率合成、信道搜索等,構(gòu)成了自動(dòng)撥號(hào)無(wú)線電話網(wǎng)、自動(dòng)呼叫應(yīng)答設(shè)備及程控調(diào)度電話分機(jī)等等。 智能化儀表 單片機(jī)引入到已有的測(cè)量、控制儀表后,能促進(jìn)儀表向數(shù)字化、智能化、多功能化、綜合化、柔性化發(fā)展,并使監(jiān)測(cè)、處理、控制等功能一體化,使儀表重量大大減輕,便于攜帶和使用。同時(shí)成本低,提高了性能價(jià)格比,長(zhǎng)期以來(lái)測(cè)量?jī)x器中的誤差修正、線性化處理等難題
7、也可迎刃而解。單片機(jī)智能儀表的這些特點(diǎn)不僅使傳統(tǒng)的儀器、儀表發(fā)生根本的變革,也給傳統(tǒng)的儀器、儀表行業(yè)技術(shù)改革帶來(lái)了曙光。 智能化測(cè)控系統(tǒng) 測(cè)控系統(tǒng)特點(diǎn)是工作環(huán)境惡劣,各種干擾繁雜,而且往往要求控制實(shí)時(shí),要求檢測(cè)與控制系統(tǒng)工作穩(wěn)定、可靠、抗干擾能力強(qiáng)。單片機(jī)最適合應(yīng)用于工業(yè)控制領(lǐng)域,可以構(gòu)成各種工業(yè)檢測(cè)控制系統(tǒng)。例如,溫室人工氣候控制、電鍍生產(chǎn)線自動(dòng)控制系統(tǒng)等。在導(dǎo)航控制方面,如在導(dǎo)彈控制、魚(yú)雷制導(dǎo)、智能武器裝置、航天導(dǎo)航系統(tǒng)等領(lǐng)域中也發(fā)揮著不可替代的作用。 智能化接口 通用計(jì)算機(jī)外部設(shè)備上已實(shí)現(xiàn)了單片機(jī)的鍵盤(pán)管理、打印機(jī)、繪圖儀、掃描儀、磁盤(pán)驅(qū)動(dòng)器、UPS等,并實(shí)現(xiàn)了圖形終端和智能終端。 在計(jì)
8、算機(jī)應(yīng)用系統(tǒng)中,除通用外部設(shè)備(鍵盤(pán)、顯示器、光電鼠標(biāo)、打印機(jī))外,還有許多外部設(shè)備和接口全部由主機(jī)管理,勢(shì)必造成主機(jī)負(fù)擔(dān)過(guò)重、運(yùn)行速度降低,并且不能提高對(duì)各種接口的管理水平。 現(xiàn)在一般采用單片機(jī)專門(mén)對(duì)接口設(shè)備進(jìn)行控制和管理,使主機(jī)和單片機(jī)能并行工作,不僅大大提高系統(tǒng)的運(yùn)算速度,而且單片機(jī)還可以對(duì)接口處進(jìn)行預(yù)處理,如數(shù)字濾波、線性化處理、誤差修正等,減少主機(jī)和接口界面的通信密度,極大地提高了接口控制管理的水平。例如,在通信接口中采用單片機(jī)可以對(duì)數(shù)據(jù)進(jìn)行編碼解碼、分配管理、接收/發(fā)送控制等工作。 如要開(kāi)發(fā)單片機(jī)的應(yīng)用產(chǎn)品,不但要掌握單片機(jī)硬件和軟件方面的知識(shí),而且還要深入了解各應(yīng)用產(chǎn)品系統(tǒng)的專業(yè)
9、知識(shí),只有將這兩方面的知識(shí)融會(huì)貫通并有機(jī)結(jié)合,才能設(shè)計(jì)出優(yōu)良的應(yīng)用系統(tǒng)。1.1.3 單片機(jī)的產(chǎn)品介紹 Intel公司在單片機(jī)的早期開(kāi)發(fā)中,一直處于領(lǐng)先地位。因此我們以Intel公司的產(chǎn)品為例,介紹其較流行的三種系列產(chǎn)品的功能。當(dāng)然其他公司也有性價(jià)比很高的產(chǎn)品。 MCS-48系列單片機(jī) MCS-48系列單片機(jī)是Intel公司1976年以后陸續(xù)開(kāi)發(fā)的第一代8位單片機(jī)系列產(chǎn)品。本系列單片機(jī)有很廣泛的應(yīng)用,對(duì)后來(lái)單片機(jī)的發(fā)展影響深遠(yuǎn),它包括基本型:8048/8748/8035;強(qiáng)化型:8049/8749/8039和8050/8750/8040;簡(jiǎn)化型:8020/8021/8022;專用型:UPI-80
10、41/8741等。 MCS-51系列單片機(jī) MCS-51系列單片機(jī)是Intel公司1980年推出的高檔8位單片機(jī)系列產(chǎn)品。該系列包括: 基本型 8051/8751/8031; 強(qiáng)化型 8052/8032; 改進(jìn)型 8044/8344/8744, 超級(jí)型 83C252/87C252/80C252等。 基本型采用HMOS工藝,片內(nèi)集成有8位CPU;片內(nèi)駐留4K字節(jié)ROM(8031片內(nèi)無(wú)ROM)和128字節(jié)RAM以及21個(gè)特殊功能寄存器;片內(nèi)還包括兩個(gè)16位定時(shí)器/計(jì)數(shù)器、1個(gè)全雙工串行I/O口(UART)、32條I/O端口線、5個(gè)中斷源和兩級(jí)中斷,尋址能力達(dá)128K字節(jié)(其中程序存儲(chǔ)器ROM和數(shù)據(jù)
11、存儲(chǔ)器RAM各64K字節(jié))。指令系統(tǒng)中設(shè)置了乘、除運(yùn)算指令、數(shù)據(jù)查找指令和位處理指令等。當(dāng)主機(jī)時(shí)鐘頻率為12MHz時(shí),大部分指令執(zhí)行周期只需ls或2s,乘除指令也僅需4s。 強(qiáng)化型8052是1982年推出的產(chǎn)品,與基本型8051不同的是片內(nèi)ROM增加到8K字節(jié),RAM增加到256個(gè)字節(jié),16位的定時(shí)器/計(jì)數(shù)器增加到3個(gè),串行接口(UART)的通信速度比基本型快6倍。 改進(jìn)型8X44系列是在基本型上用一種新的串行接口SIU取代UART。SIU是一個(gè)HDLC/SDLC通信控制器,屬于SIO的通信標(biāo)準(zhǔn),通信軟件已固化在器件內(nèi)。由于SIU是有兩根I/O線的串行通信方式,因而最適宜遠(yuǎn)距離通信和網(wǎng)絡(luò)接口。
12、 采用CMOS工藝的8XC51系列,其基本結(jié)構(gòu)和功能與基本型相同。87C51和8XC252還具有兩級(jí)程序保密系統(tǒng),可禁止外部對(duì)片內(nèi)ROM中的程序進(jìn)行讀取,為用戶提供了一種保護(hù)軟件不被竊取的有效手段。由于采用CMOS工藝,功耗極低。 超級(jí)型8XC252系列是超級(jí)8位單片機(jī)。它們的結(jié)構(gòu)、引腳和指令與MCS-51系列完全相同,但又具有MCS-96系列單片機(jī)的高速輸入/輸出(HIS/O)功能和脈沖寬度調(diào)制功能PWM,1個(gè)可加可減計(jì)數(shù)的定時(shí)器。 51系列單片機(jī)由Intel公司轉(zhuǎn)讓技術(shù)給Philips公司后也生產(chǎn)了很多個(gè)型號(hào),產(chǎn)品性能也有大幅度提高。 ATMEL公司生產(chǎn)了AT89C51 AT89C52和A
13、T89C1051、AT89C2051、AT89s2051等,這些單片機(jī)片內(nèi)除采用51內(nèi)核外,還增加了加密閃速程序存儲(chǔ)器,性能優(yōu)良,性價(jià)比及高,在我國(guó)單片機(jī)應(yīng)用產(chǎn)品中被大量使用,也是我們將來(lái)課程設(shè)計(jì)和產(chǎn)品開(kāi)發(fā)的首選芯片之一。其它新產(chǎn)品,如AT89S51系列以后的產(chǎn)品還支持在線更新程序功能(ISP)。我國(guó)臺(tái)灣也在生產(chǎn)51內(nèi)核的單片機(jī)。 總之,51系列單片機(jī)資料很多,實(shí)驗(yàn)開(kāi)發(fā)設(shè)備較為普及,各高校都有長(zhǎng)期的教學(xué)經(jīng)驗(yàn)和相應(yīng)的師資力量,從教學(xué)和自學(xué)的角度看,編者認(rèn)為51系列單片機(jī)最適合初學(xué)者學(xué)習(xí)。 MCS-96系列單片機(jī) Intel公司于1983年研制出MSC-96系列16位單片機(jī)。它與8位機(jī)比較,主要有
14、兩個(gè)特點(diǎn)。第一,集成度高。它的內(nèi)部除了有常規(guī)I/O口、定時(shí)/計(jì)數(shù)器、全雙工串行口外,還有高速I(mǎi)/O部件、多路10位A/D轉(zhuǎn)換、脈寬調(diào)制輸出以及監(jiān)視定時(shí)器;第二,運(yùn)算速度快。MCS-96具有豐富的指令系統(tǒng)、先進(jìn)的尋址方式和帶符號(hào)運(yùn)算等功能,使運(yùn)算速度大大提高,它的16位運(yùn)算器不但可以對(duì)字或字節(jié)操作,還可以進(jìn)行帶或不帶符號(hào)數(shù)的乘除運(yùn)算。 MCS-96系列單片機(jī)有809X(外接ROM)、839X(內(nèi)駐掩膜ROM)和879X(內(nèi)駐EPROM)機(jī)種,其總體結(jié)構(gòu)是相同的。按其內(nèi)部是否帶A/D轉(zhuǎn)換器,每類機(jī)種又可分兩種機(jī)型,其中BH型芯片可由用戶設(shè)定,使外部數(shù)據(jù)總線為16位長(zhǎng)或8位長(zhǎng),內(nèi)部帶A/D轉(zhuǎn)換器的B
15、H型芯片還具有采樣保持電路。MCS-196系列單片機(jī)也常有所見(jiàn)。 各種不同系列的單片機(jī)由于其內(nèi)部功能單元組成及指令系統(tǒng)不盡相同,表現(xiàn)出各種不同的特點(diǎn),從用戶使用角度來(lái)看應(yīng)當(dāng)有所選擇。在各種系列的單片機(jī)中,片內(nèi)ROM的配置狀態(tài)通常有4種形式; (1)片內(nèi)駐留掩膜ROM。這種單片機(jī)(如MCS-51系列中的8051)是由廠家用掩摸技術(shù)把應(yīng)用程序?qū)懭肫瑑?nèi)ROM中。用戶無(wú)法自行改寫(xiě)片內(nèi)的程序,或采用PROM,可一次性寫(xiě)入的程序存儲(chǔ)器,其優(yōu)勢(shì)是價(jià)格低廉,適用于大批量生產(chǎn)。 (2)片內(nèi)駐留EPROM。這種單片機(jī)(如MCS-51系列中的8751)可由用戶把應(yīng)用程序?qū)懭肫瑑?nèi)EPROM中。需要修正程序時(shí),用紫外線
16、擦除后又能重新寫(xiě)入程序。 (3)片內(nèi)無(wú)ROM。這種單片機(jī)(如MCS-51系列中的8031)必須外接EPROM芯片作為程序存儲(chǔ)器,其容量可視需要來(lái)靈活配置。這是目前學(xué)校教學(xué)中使用最廣泛的一種單片機(jī),不僅其價(jià)格低廉,而且可供用戶靈活使用。 (4)片內(nèi)帶閃速可編程電可擦除只讀存儲(chǔ)器(如AT89S51)。當(dāng)前較好的產(chǎn)品可在線方便的更新程序,這是目前應(yīng)用產(chǎn)品開(kāi)發(fā)中使用最多的一類單片機(jī)系列。 1.1.4單片機(jī)的學(xué)習(xí)方法 單片機(jī)的應(yīng)用與開(kāi)發(fā)作為一個(gè)系統(tǒng)性很強(qiáng)的當(dāng)代技術(shù),涉及到的知識(shí)點(diǎn)較多,只有全面的、系統(tǒng)的掌握相關(guān)內(nèi)容,并且多記憶、多理解、多練習(xí)。才能靈活使用單片機(jī),單片機(jī)作為一種現(xiàn)代電子技術(shù),必須掌握合理
17、的、相應(yīng)的學(xué)習(xí)方法。 (1)要學(xué)習(xí)別人成熟的設(shè)計(jì)思想,首先,掌握基本原理、規(guī)律、各知識(shí)點(diǎn)的應(yīng)用方法和內(nèi)在聯(lián)系,教學(xué)上采用:“授人以漁”的方法,學(xué)習(xí)上要了解外國(guó)人的思維方式,主動(dòng)地采取研究式的學(xué)習(xí)。最終要求靈活運(yùn)用知識(shí),舉一反三。 (2)單片機(jī)中很多內(nèi)容可采用:記憶-理解-練習(xí)使用-再理解記憶-最后熟練使用的過(guò)程,如:專用寄存器和指令系統(tǒng),第一次接觸時(shí)我們只能被動(dòng)的記憶-理解,當(dāng)我們?cè)诰幊叹毩?xí),系統(tǒng)設(shè)計(jì)中多次使用后,我們才能較好的理解和掌握它們,最后就能較好的使用它們。 (3)當(dāng)前單片機(jī)相關(guān)產(chǎn)品系列和型號(hào)很多,擺在初學(xué)者面前的問(wèn)題是學(xué)習(xí)什么機(jī)型、怎樣學(xué)習(xí)效果更好?由于單片機(jī)技術(shù)都是建立在計(jì)算機(jī)技
18、術(shù)之上,系統(tǒng)結(jié)構(gòu)和技術(shù)大同小異,但又不能通用,本書(shū)建議讀者選取資料多,應(yīng)用較廣的一種系列芯片的單片機(jī)進(jìn)行研究。掌握相應(yīng)的技術(shù)后再學(xué)習(xí)別的單片機(jī)則會(huì)事半功倍。1.2 MCS-51系列單片機(jī)的結(jié)構(gòu)和引腳 MCS-51系列單片機(jī)是在一塊芯片上集成了CPU,RAM,ROM、定時(shí)器/計(jì)數(shù)器和多功能I/O口等基本功能部件的一臺(tái)計(jì)算機(jī)。單片機(jī)必須配備部分外圍元件才能使用,其系統(tǒng)核心是單片機(jī)芯片,本課程今后將圍繞8051芯片講解單片機(jī)原理和應(yīng)用。1.2.1 MCS-51引腳及功能說(shuō)明 生產(chǎn)廠家生產(chǎn)出硅芯片后,通常用工程材料包裝,同時(shí)制定芯片的名稱、封裝和引腳名稱。8051單片機(jī)的外形采用40條引腳雙列直插封裝
19、(DIP)或LCC/QFP封裝。DIP封裝的引腳和邏輯符號(hào)如圖1.2所示。圖1.2單片機(jī)的引腳和邏輯符號(hào) 圖1.2單片機(jī)的引腳和邏輯符號(hào) MCS-51因?yàn)槭艿郊呻娐沸酒_數(shù)目的限制,所以有許多引腳具有雙功能?,F(xiàn)對(duì)各引腳功能簡(jiǎn)要說(shuō)明如下: (1)主電源引腳Vcc和Vss Vcc電源輸入端。為單片機(jī)提供工作電源和編程校驗(yàn)電源,(8051/8751)為+5V。 Vss(GND)接共用地端。每個(gè)電路芯片都少不了直流電源。也叫地線。 (2)時(shí)鐘振蕩電路引腳XTALI和XTAL2 XTAL1和XTAL2分別用做晶體振蕩電路的反相器輸入端和輸出端。在使用內(nèi)部振蕩電路時(shí),這兩個(gè)端子用來(lái)外接石英晶體,振蕩器
20、的振蕩頻率為晶體標(biāo)稱頻率,振蕩信號(hào)送至內(nèi)部時(shí)鐘電路產(chǎn)生時(shí)鐘脈沖信號(hào)。這個(gè)部分電路給單片機(jī)提供工作節(jié)拍,是單片機(jī)的主頻。 (3)控制信號(hào)引腳RST/VPD、ALE/PROG(_) 、PSEN(_)和EA(_) /Vpp 由于單片機(jī)很多引腳使用方法相同或相近,常把這些引腳分為控制總線、地址總線、數(shù)據(jù)總線,總線指一類在使用方法上功能相同的引腳。這里講到的4 條引腳可看成是控制總線(ALE/RST/EA(_) /PSEN(_)。當(dāng)其中某條引腳起作用時(shí),單片機(jī)將完成某控制操作。 RST/VppRST為復(fù)位信號(hào)輸入端。在電源Vcc正常時(shí),當(dāng)RST端保持兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘周期)以上的高電平時(shí),使單片機(jī)
21、完成復(fù)位操作。VPD為內(nèi)部RAM的備用電源輸入端。當(dāng)主電源Vcc一旦發(fā)生斷電或電壓降到一定值時(shí),可通過(guò)VPD為單片機(jī)內(nèi)部RAM提供電源,以保護(hù)片內(nèi)RAM中的信息不丟失,使Vcc上電后能繼續(xù)正常運(yùn)行。 ALE/PROG(_)ALE為地址鎖存允許信號(hào),在訪問(wèn)外部存儲(chǔ)器時(shí),ALE用來(lái)鎖存PO口送出的低8位地址信號(hào)。在不訪問(wèn)外部存儲(chǔ)器時(shí),ALE也以時(shí)鐘振蕩頻率的1/6的固定速率輸出,因而它又可用做外部定時(shí)脈沖源或其它需要;注:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。ALE能驅(qū)動(dòng)8個(gè)LS TTL門(mén)輸入電路。PROG(_)是對(duì)8751內(nèi)部EPROM編程時(shí)的編程脈沖輸入端。 PSEN(_)-外部程序
22、存儲(chǔ)器的讀選通信號(hào)。當(dāng)訪問(wèn)外部ROM時(shí),PSEN(_)產(chǎn)生負(fù)脈沖作為外部ROM的選通信號(hào);在訪問(wèn)外部RAM或片內(nèi)ROM時(shí),不會(huì)產(chǎn)生有效的PSEN(_)信號(hào)。PSEN可驅(qū)動(dòng)8個(gè)LS TTL門(mén)輸入端。 EA(_)/Vpp-訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。對(duì)于8051和8751,它們的片內(nèi)有4KB的程序存儲(chǔ)器。當(dāng)EA(_)為高電平時(shí),CPU訪問(wèn)程序存儲(chǔ)器有兩種情況:一是,訪問(wèn)的地址空間在04K范圍內(nèi),CPU訪問(wèn)片內(nèi)程序存儲(chǔ)器;二是,訪問(wèn)的地址超出4K時(shí),CPU將自動(dòng)執(zhí)行外部程序存儲(chǔ)器的程序。對(duì)于8031, EA(_)必須接地,只能訪問(wèn)外部ROM。Vpp為8751片內(nèi)EPROM的21V編程電源輸入端。 (
23、4)4個(gè)8位I/O端口PO,P1,P2和P3 PO口(P0.0P0.7)第一功能是一個(gè)8位漏極開(kāi)路型的雙向I/O口; 這時(shí)P0口可看成是用戶數(shù)據(jù)總線。第二功能:在訪問(wèn)外部存儲(chǔ)器時(shí),分時(shí)先提供低8位地址和后提供8位雙向數(shù)據(jù)總線。這時(shí)先作地址總線再作數(shù)據(jù)總線,在對(duì)8751片內(nèi)EPROM進(jìn)行編程和校驗(yàn)時(shí),PO用于數(shù)據(jù)的輸入和輸出。引腳的分時(shí)復(fù)用是計(jì)算機(jī)芯片節(jié)省引腳的基本方法,這樣的情況后面還有很多。同樣的引腳在不同的時(shí)間或不同的地方作不同的用途,初學(xué)者應(yīng)注意這個(gè)用法。 P1口(P1.0P1.7)是一個(gè)內(nèi)部帶提升電阻的8位準(zhǔn)雙向I/O口。在對(duì)8751片內(nèi)EPROM編程和校驗(yàn)時(shí),P1口用于接收低8位地址
24、。 P2口(P2.0P2.7)第一功能是一個(gè)內(nèi)部帶提升電阻的8位準(zhǔn)雙向I/O口。第二功能是在訪問(wèn)外部存儲(chǔ)器時(shí),輸出高8位地址。在對(duì)8751片內(nèi)EPROM進(jìn)行編程和校驗(yàn)時(shí)及擴(kuò)展外部存儲(chǔ)器時(shí),P2口用于接收和發(fā)出高8位地址。 P3口(P3.0P3.7)第一功能是一個(gè)內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口。在系統(tǒng)中,這8個(gè)引腳都有各自的第二功能。詳見(jiàn)表1.1。表1.1 P3口各位的第二功能P3口引腳 第二功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 INT0(_)(外部中斷0輸端)P3.3 INT1(_)(外部中斷1輸入端)P3.4 TO(計(jì)數(shù)器0外部輸入)P3.5 T1(計(jì)
25、數(shù)器1外部輸入)P3.6 WR(_)(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)脈沖輸出端)P3.7 RD(_) (外部數(shù)據(jù)存儲(chǔ)器讀脈沖輸出端) 各端口的負(fù)載能力有差異,PO口的每一位能驅(qū)動(dòng)8個(gè)TTL門(mén)輸入端;P1P3口的每一位只能驅(qū)動(dòng)4個(gè)TTL門(mén)輸入端。 舉例說(shuō)明:?jiǎn)纹瑱C(jī)引腳傳送數(shù)據(jù)功能簡(jiǎn)單分析,I/O口傳送數(shù)據(jù)教學(xué)參考圖如圖1.3所示: 圖中使用P0口和P2口傳送地址和數(shù)據(jù)、用到控制線/PSEN和地址鎖存信號(hào)ALE。單片機(jī)P0口接到鎖存器輸入端D0D7,也接到程序存儲(chǔ)器2764的程序數(shù)據(jù)輸出端。圖1.3單片機(jī)的引腳功能及使用參考簡(jiǎn)圖 按照Intel公司的方法是把單片機(jī)的引腳按功能分成三類:數(shù)據(jù)總線、地址總線、控制總
26、線,本例中8位數(shù)據(jù)總線是P0口,連接到存儲(chǔ)器數(shù)據(jù)端D。16位地址總線是P0、P2口。P0口輸出的地址經(jīng)373鎖存后再送存儲(chǔ)器地址端A,高8位地址由P2口直接送到存儲(chǔ)器。這時(shí)8個(gè)引腳的功能相同,只是在應(yīng)用時(shí)傳送不同的數(shù)據(jù)位或地址位。 計(jì)算機(jī)中把一個(gè)2位十六進(jìn)制數(shù)叫8位數(shù),實(shí)際上是指8位二進(jìn)制數(shù),如數(shù)68H(十六進(jìn)制,H是標(biāo)志符號(hào))可等同二進(jìn)制數(shù)0110 1000B(B是二進(jìn)制數(shù)標(biāo)志符號(hào)),在實(shí)際使用中這8個(gè)二進(jìn)制數(shù)分別從P0口的8個(gè)引腳傳送,P0口的8位又可叫做P00/P01/P02/P03/P04/P05/P06/P07,同樣的P1、P2、P3也可叫做,控制總線是:ALE為地址鎖存信號(hào),單片機(jī)
27、用它通知鎖存器把低8位地址接收過(guò)去。PSEN(_)通知程序存儲(chǔ)器傳送指令碼到P0口。 我們簡(jiǎn)單描述單片機(jī)讀取程序的過(guò)程:首先P0、P2口輸出低、高共16位地址,控制信號(hào)ALE通知鎖存器接收P0口的低8位地址,這時(shí)由鎖存器和P2口給程序存儲(chǔ)器提供16位地址,PSEN(_)通知程序存儲(chǔ)器傳送該地址的指令碼經(jīng)2764的D0D7傳到P0口內(nèi),完成讀指令過(guò)程。對(duì)于位的意義我們已經(jīng)知道:數(shù)字化的一條線的電平有高低兩種,計(jì)算機(jī)中簡(jiǎn)單地用兩種狀態(tài):1和0表示。實(shí)際上這就是一個(gè)二進(jìn)制位,因此我們就把一根線稱之為一“位”,用BIT表示。 字節(jié)的含義: 一根線可以表示0和1,兩根線可以表達(dá)00,01,10,11四種
28、狀態(tài),也就是可以表示0到3,而三根可以表達(dá)0-7,計(jì)算機(jī)中通常用8根線放在一起,同時(shí)計(jì)數(shù),就可以表達(dá)0-255一共256種狀態(tài)。這8根線或者8位就稱之為一個(gè)字節(jié)(BYTE)。實(shí)際上、我們經(jīng)常把這樣的8位數(shù)寫(xiě)成2位十六進(jìn)制數(shù)。十六進(jìn)制的16個(gè)數(shù)用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F表達(dá)。同二進(jìn)制數(shù)的對(duì)應(yīng)關(guān)系如下: 十進(jìn)制數(shù) 二進(jìn)制數(shù)( B ) 十六進(jìn)制數(shù)(H) 15 1111 F 14 1110 E 13 1101 D 12 1100 C 11 1011 B 10 1010 A 9 1001 9 8 1000 8 7 0111 7 6 0110 6 5 0101 5 4
29、 0100 4 3 0011 3 2 0010 2 1 0001 1 0 0000 0 當(dāng)把二進(jìn)制數(shù)D3D2D1D0的各位按D38+D24+D12+D01=XH,結(jié)果很容易把二進(jìn)制轉(zhuǎn)換成十進(jìn)制或十六進(jìn)制,多位二進(jìn)制數(shù)以四位為單位和十六進(jìn)制的一位對(duì)應(yīng),從低位到高位進(jìn)行轉(zhuǎn)換,按8421方式互相轉(zhuǎn)化。如1 1000 1101 0110B=18D6H 1.2.2 MCS-51單片機(jī)的結(jié)構(gòu)方框圖 1、MCS-51的核心電路 MCS-51系列單片機(jī)的典型芯片是8051。其結(jié)構(gòu)方框圖如下圖1.4所示,它包含如下功能部件。 圖1.4 單片機(jī)8051內(nèi)部結(jié)構(gòu)框圖 一個(gè)8位CPU; 一個(gè)片內(nèi)振蕩器和時(shí)鐘電路; 4
30、K字節(jié)片內(nèi)部程序存儲(chǔ)器ROM; 128字節(jié)片內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM; 可尋址64K外部程序存儲(chǔ)器; 可尋址64K外部數(shù)據(jù)存儲(chǔ)器; 21個(gè)特殊功能寄存器(專用寄存器); 32條可編程的I/O線(4個(gè)8位并行I/O端口); 兩個(gè)16位定時(shí)器/計(jì)數(shù)器; 一個(gè)可編程全雙工串行口; 具有5個(gè)中斷源,兩個(gè)優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)。 圖1.5 MCS-51單片機(jī)結(jié)構(gòu)框圖單片機(jī)各功能部件由內(nèi)部總線聯(lián)系在一起。簡(jiǎn)化結(jié)構(gòu)如圖1.5所示。 2、中央處理單元CPU CPU是單片機(jī)的核心部件,如圖1.4所示,各方框表示功能部件,可以看出本單片機(jī)是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單
31、元系統(tǒng)協(xié)調(diào)的工作,完成各種運(yùn)算,實(shí)現(xiàn)對(duì)單片機(jī)各功能部件的指揮和控制任務(wù),它是由運(yùn)算器和控制器等部件組成的。各功能部件實(shí)際上是CPU的有機(jī)組成部分,各功能部件通過(guò)運(yùn)行程序相聯(lián)系,很難用語(yǔ)言描述其工作過(guò)程,但這里還是簡(jiǎn)單的給出說(shuō)明。注意各部分通過(guò)內(nèi)部總線相聯(lián)系。各部件的聯(lián)系用箭頭表示。 (1)運(yùn)算器 運(yùn)算器的功能是進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算,它還包含一個(gè)布爾處理器,用來(lái)處理位的操作。運(yùn)算器模塊包括算術(shù)和邏輯運(yùn)算部件ALU、布爾處理器,累加器ACC、B寄存器、暫存器TMP1和TMP2、程序狀態(tài)字寄存器PSW和十進(jìn)制數(shù)調(diào)整電路等。 1、累加器ACC是一個(gè)最常用的專用寄存器。大部分單操作數(shù)據(jù)指令的操作數(shù)取自
32、累加器。很多雙操作數(shù)指令中的一個(gè)操作數(shù)也取自累加器。加、減、乘、除算術(shù)運(yùn)算指令的運(yùn)算結(jié)果都存放在累加器A或AB寄存器對(duì)中。指令系統(tǒng)中用A作為累加器的助記符。 2、B寄存器 在乘除操作中,乘法指令的兩個(gè)操作數(shù)分別取自A和B,其結(jié)果存放在B(高8位)和A(低8位)寄存器中。除法指令中,被除數(shù)取自A,除數(shù)取自B,商數(shù)存放于A,余數(shù)存放于B。有人把B叫乘法寄存器。 3、程序狀態(tài)字PSW 程序狀態(tài)字記錄程序狀態(tài)信息,反映程序運(yùn)算結(jié)果的特征,它是一個(gè)8位寄存器。其中PSW的1位未用,格式如下:(按D7D0順序排列) Cy Ac F0 RS1 RS0 OV - P Cy(PSW.7)進(jìn)位標(biāo)志。在執(zhí)行某些算術(shù)
33、和邏輯指令時(shí),當(dāng)運(yùn)算結(jié)果的最高位有進(jìn)位或借位時(shí),Cy將被硬件置位,否則就被清零。不同的是在布爾處理機(jī)中,它被認(rèn)為是位累加器,可由軟件置位或清零。 AC(PSW.6)輔助進(jìn)位標(biāo)志。在進(jìn)行加法或減法操作中,當(dāng)?shù)?位數(shù)向高4位數(shù)有進(jìn)位或借位時(shí),AC將被硬件置位,否則就被清零。AC被用于十進(jìn)制調(diào)整。 FO(PSW.5)用戶定義標(biāo)志??捎捎脩糇屍溆涗洺绦驙顟B(tài),用作標(biāo)記,即用軟件使其置位或復(fù)位。 RS1、 RS0(PSW.4,PSW.3)工作寄存器組選擇控制位??梢杂密浖梦换蚯辶悖源_定當(dāng)前工作寄存器組。 OV(PSW.2)溢出標(biāo)志位。在對(duì)有符號(hào)數(shù)作加減運(yùn)算時(shí),用C6表示D6位向D7位的進(jìn)位或借位,用C
34、7表示D7位向更高位的進(jìn)位或借位,則OV標(biāo)志可由下式求得:OV=C6C7。OV=1表示加減運(yùn)算的結(jié)果超出了目的寄存器A所能表示的帶符號(hào)數(shù)的范圍(-128+127)。 無(wú)符號(hào)數(shù)乘法指令MUL的執(zhí)行結(jié)果也會(huì)影響溢出標(biāo)志。若置于累加器A和寄存器B的兩個(gè)數(shù)的乘積超過(guò)255時(shí)(8位數(shù)),OV=1,否則OV=0。此積的高8位放在B內(nèi),低8位放在A內(nèi)。因此,OV=0時(shí),只要從A中取得乘積即可,否則還要從B中取得乘積的高8位。 除法指令DIV也會(huì)影響溢出標(biāo)志,當(dāng)除數(shù)為0時(shí),OV=1,否則OV=0 (PSW.0)奇偶標(biāo)志。每個(gè)指令周期都由硬件來(lái)置位或清零,以表示累加器A中有1的位數(shù)的奇偶數(shù)。若1的位數(shù)為奇數(shù),則
35、P置位,否則清零。該標(biāo)志位對(duì)串行通信中的數(shù)據(jù)傳輸有重要意義。和數(shù)學(xué)中的數(shù)據(jù)本身的奇偶性有區(qū)別。當(dāng)A=10101000B時(shí),因數(shù)中是三個(gè)1使P置位。在數(shù)據(jù)傳輸時(shí),當(dāng)把一批數(shù)的P位和原8位放在一起構(gòu)成9位數(shù),這批9位數(shù)中1的個(gè)數(shù)應(yīng)全為偶數(shù)。接收端如收到的數(shù)沒(méi)有偶數(shù)個(gè)1則認(rèn)為出錯(cuò)。 (2)控制器 控制器部件是由指令寄存器、程序計(jì)數(shù)器PC,定時(shí)與控制電路等組成的。 指令寄存器和譯碼 指令寄存器中存放指令代碼。 程序計(jì)數(shù)器PC 程序計(jì)數(shù)器PC用來(lái)存放即將要執(zhí)行的指令地址,共16位,可對(duì)64K程序存儲(chǔ)器直接尋址。 定時(shí)與控制電路 定時(shí)與控制電路是產(chǎn)生CPU操作時(shí)序的,它是單片機(jī)的心臟??刂聘鞣N操作的時(shí)間。
36、 8051芯片內(nèi)部有一個(gè)反向放大器所構(gòu)成的振蕩電路,XTAL1和XTAL2分別為振蕩電路的輸入端和輸出端。放大器可以產(chǎn)生自激振蕩,此時(shí)時(shí)鐘由內(nèi)部方式產(chǎn)生。當(dāng)XTAL1接地,XTAL2接外部振蕩器時(shí),時(shí)鐘由外部方式產(chǎn)生。 我們對(duì)CPU的操作或命令是通過(guò)對(duì)指令和寄存器編程完成,要學(xué)好CPU我們首先應(yīng)學(xué)好存儲(chǔ)器(寄存器)和指令。下面開(kāi)始講解存儲(chǔ)器。1.3 MCS-51單片機(jī)存儲(chǔ)器結(jié)構(gòu) 存儲(chǔ)器是計(jì)算機(jī)的重要硬件之一,單片機(jī)存儲(chǔ)器結(jié)構(gòu)有兩種類型:一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址,屬于普林斯頓結(jié)構(gòu),另一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)編址的哈佛結(jié)構(gòu)。MCS-51采用的是哈佛結(jié)構(gòu)。它的存儲(chǔ)器結(jié)構(gòu)與典型的微
37、型計(jì)算機(jī)不同,結(jié)構(gòu)也比較復(fù)雜,下面將從硬件結(jié)構(gòu)和功能來(lái)分析。 存儲(chǔ)器就是用來(lái)存放數(shù)據(jù)的地方。它是利用電平的高低來(lái)存放數(shù)據(jù)的,也就是說(shuō),它存放的實(shí)際上是電平的高低,我們把他作為數(shù)據(jù)看待,計(jì)算機(jī)中有數(shù)量眾多的存儲(chǔ)器,結(jié)構(gòu)可看成同一座大樓一樣,為了方便找到每一個(gè)房間,或者住在房間的某人,給房間分配地址號(hào)碼是比較簡(jiǎn)單的方法,如果再詳細(xì)一點(diǎn)可能關(guān)心這人是工作人員還是客人?同樣結(jié)構(gòu)的房間又能叫辦公室、工作間、客房等等,存儲(chǔ)器在使用時(shí)也出現(xiàn)了地址,也使用了別名:寄存器、程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器等名稱。這樣做的目的讓我們直接從名稱上可初步了解其作用。 1.3.1存儲(chǔ)器具有的特點(diǎn) (1) 程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截
38、然分開(kāi),各有自己的尋址系統(tǒng),控制信號(hào)和特定的功能。程序存儲(chǔ)器只存放程序和始終要保留的常數(shù),數(shù)據(jù)存儲(chǔ)器通常用來(lái)存放程序運(yùn)行中所需要的大量數(shù)據(jù)。程序存儲(chǔ)器一般為只讀存儲(chǔ)器ROM或EPROM,數(shù)據(jù)存儲(chǔ)器一般則采用靜態(tài)隨機(jī)存儲(chǔ)器RAM。 (2) 單片機(jī)中與存儲(chǔ)器有關(guān)的名稱有:程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器、內(nèi)部存儲(chǔ)器和外部存儲(chǔ)器、字節(jié)地址和位地址。存儲(chǔ)器有一定的容量,常把一個(gè)8位二進(jìn)制數(shù)作基本單位,叫作字節(jié)。存儲(chǔ)器有很多字節(jié)單元,也用二進(jìn)制數(shù)來(lái)標(biāo)識(shí),叫地址。這些存儲(chǔ)器空間的地址多數(shù)從零開(kāi)始編址。8位地址00HFFH,十六位地址0000HFFFFH。由于每一位十六進(jìn)制數(shù)可直接換成四位二進(jìn)制數(shù)(如0H0000B、
39、9H1001B、FH1111B,其中H代表十六進(jìn)制數(shù)標(biāo)識(shí)符,B代表二進(jìn)制數(shù)標(biāo)識(shí)符),以后我們也把兩位十六進(jìn)制數(shù)說(shuō)成是8位二進(jìn)制數(shù) (3) 工作寄存器以RAM形式組成,I/O接口也采用存儲(chǔ)器方式工作。工作寄存器、I/O口鎖存器和數(shù)據(jù)存儲(chǔ)器RAM在單片機(jī)中統(tǒng)一編址。 (4) 具有一個(gè)功能很強(qiáng)的布爾處理器,可尋址位空間有256位。1.3.2 MCS-51具有的存儲(chǔ)器編址空間 MCS-51單片機(jī)寄儲(chǔ)器結(jié)構(gòu)如圖1.6所示。有六個(gè)編址空間.有四個(gè)物理存儲(chǔ)器空間:即由PC作地址指針的片內(nèi)4K(0000H-0FFFH)程序存儲(chǔ)器。片外4K+60K(0000H-FFFFH)程序存儲(chǔ)器。由數(shù)據(jù)指針作地址的片外64
40、K數(shù)據(jù)存儲(chǔ)器。片內(nèi)8位地址的128字節(jié)RAM(00H-7FH)和特殊功能寄存器(80H-FFH),這里數(shù)0-9、A-F表示十六進(jìn)制的16個(gè)數(shù)。并且在以后用字母A-F表示數(shù)據(jù)最高位時(shí),常在前面加0,區(qū)別于英文字母 程序存儲(chǔ)器,片內(nèi)4K程序存儲(chǔ)器空間,其地址為0000H0FFFH,外部EPROM也從0000H開(kāi)始編址。在地址0000H0FFFH區(qū)間,地址有重疊,由EA(_)引腳信號(hào)來(lái)控制內(nèi)、外程序存儲(chǔ)器的選擇。 EA(_)=0時(shí),不管PC值的大小,CPU總是訪問(wèn)外部程序存儲(chǔ)器。對(duì)于8031芯片,其內(nèi)部沒(méi)有程序存儲(chǔ)器,必然外接EPROM,所以EA(_)必須接地,即 EA(_)=0時(shí)。外部程序存儲(chǔ)器從
41、0000H開(kāi)始編址,尋址范圍64K。當(dāng)EA(_)=1時(shí),先執(zhí)行內(nèi)部4K程序,滿4K后接著執(zhí)行外部程序。 程序存儲(chǔ)器以16位的程序計(jì)數(shù)器PC作為地址指針可尋址64K字節(jié)空間范圍PSEN(_)作為程序存儲(chǔ)器的讀選通信號(hào)。 程序存儲(chǔ)器也存放程序所需要的常數(shù)。單片機(jī)以指令形式的不同來(lái)區(qū)分是訪問(wèn)程序存儲(chǔ)器,還是訪問(wèn)數(shù)據(jù)存儲(chǔ)器,凡是從程序存儲(chǔ)器的常數(shù)表中取數(shù)據(jù)時(shí),都要用查表指令MOVC形式。圖1.6 單片機(jī)8051存儲(chǔ)器結(jié)構(gòu)分布圖 1.3.3 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器用于存放運(yùn)算過(guò)程中的結(jié)果,用做緩沖和數(shù)據(jù)暫存,以及設(shè)置特征位標(biāo)志等。數(shù)據(jù)存儲(chǔ)器又分為片內(nèi),片外兩部分,內(nèi)部RAM采用8位地址編址為00HFFH
42、,容量為256字節(jié),外部RAM采用16位地址編址為0000HFFFFH,容量為65536字節(jié),這樣地址有重疊,由指令形式的不同來(lái)區(qū)分它們。采用MOV指令時(shí)讀/寫(xiě)內(nèi)部數(shù)據(jù)存儲(chǔ)器、特殊功能寄存器和位地址空間;采用MOVX指令時(shí)讀/寫(xiě)外部數(shù)據(jù)存儲(chǔ)器。每個(gè)8位或16位地址中都存放1個(gè)字節(jié)數(shù)據(jù) (1)外部數(shù)據(jù)存儲(chǔ)器 外部數(shù)據(jù)存儲(chǔ)器以16位的DPTR和Ri內(nèi)容作為地址指針(高8位為默認(rèn)地址),可尋址64K字節(jié)空間。RD/WR作為數(shù)據(jù)存儲(chǔ)器的讀/寫(xiě)信通信號(hào)。 (2)內(nèi)部數(shù)據(jù)存儲(chǔ)器 MCS-51內(nèi)部有128個(gè)字節(jié)的數(shù)據(jù)存儲(chǔ)器RAM,它們可以作為數(shù)據(jù)緩沖器、堆棧、工作寄存器和軟件標(biāo)志等使用。CPU對(duì)內(nèi)部RAM有
43、豐富的操作指令。在編程時(shí)經(jīng)常用到它們,內(nèi)部RAM地址為00H7FH,不同的地址區(qū)域內(nèi),規(guī)定的功能不完全相同。128字節(jié)地址空間的RAM中不同的地址區(qū)域功能分配為:工作寄存器區(qū)(00H-1FH)、位地址區(qū)(20H-2FH)、堆棧和緩沖區(qū)(30H-7FH),下面分別說(shuō)明。 工作寄存器區(qū) 單片機(jī)的內(nèi)部工作寄存器以RAM形式組成,即工作寄存器包含在內(nèi)部數(shù)據(jù)存儲(chǔ)器中。地址為00H1FH單元,內(nèi)部RAM的低32字節(jié)分成4個(gè)工作寄存器區(qū),每一個(gè)區(qū)有8個(gè)工作寄存器,編號(hào)為R0R7。工作寄存器和RAM地址對(duì)應(yīng)關(guān)系見(jiàn)表1.2所示。表1.2 工作寄存器和RAM地址對(duì)照表RS1 RS0 區(qū)號(hào) R0 R1 R2 R3
44、R4 R5 R6 R7 0 0 0區(qū) 00H 01H 02H 03H 04H 05H 06H 07H 0 1 1區(qū) 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 1 0 2區(qū) 10H 11H 12H 13H 14H 15H 16H 17H 1 1 3區(qū) 18H 19H 1AH 1BH 1CH 1DH 1EH 1FH 每一個(gè)工作寄存器區(qū)都可被選為CPU的當(dāng)前工作寄存器,用戶可以通過(guò)改變程序狀態(tài)字PSW中的RS1、RSO兩位來(lái)任選一個(gè)當(dāng)前工作寄存器區(qū)(組)、PSW的狀態(tài)和工作寄存器區(qū)的對(duì)應(yīng)關(guān)系,如表1.2所示。這一特點(diǎn)使MCS-51具有快速保護(hù)現(xiàn)場(chǎng)功能,這對(duì)于提高程序的效率和響應(yīng)
45、中斷的速度是很有利的。但當(dāng)前工作寄存器組只有一個(gè),編程時(shí)8個(gè)當(dāng)前工作寄存器有點(diǎn)太少。 位尋址空間 CPU不僅對(duì)內(nèi)部RAMR 20H2FH這16個(gè)單元有字節(jié)尋址功能,而且具有位尋址功能(可以單獨(dú)讀寫(xiě)某一位)。給這128位賦以位地址為00H7FH,CPU能直接尋址這些位。 其中字節(jié)20H中的八個(gè)位D7-D0(以后我們用這表示字節(jié)的8位,其中D0是最低位)定義為位地址07H-00H,見(jiàn)表1.3所示。 堆棧和數(shù)據(jù)緩沖區(qū) 原則上MCS-51單片機(jī)的堆??梢栽O(shè)在內(nèi)部RAM的任意區(qū)域內(nèi),但是一般設(shè)在30H7FH的范圍內(nèi)。棧頂?shù)奈恢糜啥褩V羔楽P指出。堆棧指針是8位的,而且堆棧是向上生成的。復(fù)位時(shí)SP=07H
46、,30H7FH也可作數(shù)據(jù)緩沖區(qū)使用。在地址00H7FH之間,所有工作寄存器、位地址、堆棧等沒(méi)有用上的RAM空間都可用作數(shù)據(jù)緩沖區(qū)。 1.3.4 特殊功能寄存器SFR(專用寄器) MCS-51單片機(jī)內(nèi)除程序計(jì)數(shù)器(PC)和4個(gè)工作寄存器區(qū)外,所有其它寄存器如I/O口鎖存器、定時(shí)器、數(shù)據(jù)地址指針,各種控制寄存器都是以特殊功能寄存器(SFR)的形式出現(xiàn)的。8051有21個(gè)特殊功能寄存器,它們離散地分布在80HFFH的地址空間內(nèi),并允許像訪問(wèn)內(nèi)部RAM一樣方便地訪問(wèn)特殊功能寄存器。這些特殊功能寄存器和內(nèi)部RAM一樣,擁有大量的邏輯操作指令。兩者之間也存在著明顯區(qū)別,即對(duì)于特殊功能寄存器,只有直接尋址的
47、指令。在80H-FFH內(nèi)其它沒(méi)用到的地址,后來(lái)開(kāi)發(fā)的有些芯片中增加成為新的寄存器,如T2。 特殊功能寄存器大致可以分為兩類,一類與I/O有關(guān),即PO, P3;另一類做芯片內(nèi)部功能控制用。其中有11個(gè)特殊功能寄存器即可字節(jié)尋址,又可位尋址。如表1.4帶的部分和表1.3所示。字節(jié)地址 寄存器名 位 地 址F0H B F7H F6H F5H F4H F3H F2H F1H F0HE0H ACC E7H E6H E5H E4H E3H E2H E1H E0HD0H PSW D7H D6H D5H D4H D3H D2H D1H D0H 位名稱 Cy AC F0 RS1 RS0 OV - PB8H IP
48、位 BFH BEH BDH BCH BBH BAH B9H B8H 位名稱 PS PT1 PX1 PT0 PX0 B0H P3 B7H B6H B5H B4H B3H B2H B1H B0HA8H IE AFH AEH ADH ACH ABH AAH A9H A8H 位名稱 EA ES ET1 EX1 ET0 EX0A0H P2 A7H A6H A5H A4H A3H A2H A1H A0H98H SCON 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H 位名稱 SM0 SM1 SM2 REN TB8 RB8 TI RI90H P1 97H 96H 95H 94H 93H 92
49、H 91H 90H88H TCON 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 位名稱 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT080H P0 87H 86H 85H 84H 83H 82H 81H 80H表1.3 單片機(jī)51系列全部位地址空間字節(jié)地址位地址2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H2EH 77H 76H 75H 74H 73H 72H 71H 70H2DH 6FH 6EH 6DH 6CH 6BH 6AH 69H 68H2CH 67H 66H 65H64H 63H 62H 61H 60H2BH 5FH 5EH
50、5DH 5CH 5BH 5AH 59H 58H2AH 57H 56H 55H 54H 53H 52H 51H 50H29H 4FH 4EH 4DH 4CH 4BH 4AH 49H 48H 28H 47H 46H 45H 44H 43H 42H 41H 40H 27H 3FH 3EH 3DH 3CH 3BH 3AH 39H 38H26H 37H 36H 35H 34H 33H 32H 31H 30H 25H 2FH 2EH 2DH 2CH 2BH 2AH 29H 28H24H 27H 26H 25H 24H 23H 22H 21H 20H 23H 1FH 1EH 1DH 1CH 1BH 1AH
51、19H 18H 22H 17H 16H 15H 14H 13H 12H 11H 10H21H 0FH 0EH 0DH 0CH 0BH 0AH 09H 08H20H 07H 06H 05H 04H 03H 02H 01H 00H 為了適應(yīng)控制領(lǐng)域的需要,MCS51具有一個(gè)功能很強(qiáng)的布爾處理器。位尋址空間的每一位都可以看成是軟件觸發(fā)器,由程序直接進(jìn)行位處理,執(zhí)行置位(即寫(xiě)1)、清零、取反等操作。通常把各種程序的狀態(tài)標(biāo)志,位控制變量設(shè)在位尋址區(qū)內(nèi)。這種功能提供了把硬件實(shí)現(xiàn)的邏輯式變?yōu)橛绍浖?shí)現(xiàn),且不需要過(guò)多的數(shù)據(jù)傳送,字節(jié)屏蔽和測(cè)試分支就能實(shí)現(xiàn)復(fù)雜的組合邏輯功能。實(shí)現(xiàn)功能的方法更簡(jiǎn)單。表1.4 特殊
52、功能寄存器地址對(duì)照表MCS-51可直接位尋址空間256位。其中內(nèi)部RAM的20H2FH這16個(gè)單元具有128個(gè)位地址,賦以地址00H7FH;另一部分在特殊功能寄存器中,凡是能被8整除的字節(jié)單元都可位尋址,表1.4中標(biāo)有#的寄存器即可字節(jié)尋址,也可位尋址。實(shí)際上只用了11個(gè)字節(jié),賦以地址在80HFFH區(qū)間。有些位還有單獨(dú)的名稱。具體內(nèi)容見(jiàn)表1.3所示。盡管位地址和字節(jié)地址有重疊,讀/寫(xiě)位地址空間時(shí)也采用MOV指令形式,但所有的位操作指令都是以進(jìn)位Cy作為另一個(gè)操作數(shù),指令中所指的操作數(shù)地址為位地址。也就是說(shuō)位操作使用單獨(dú)的指令系統(tǒng),單片機(jī)的位操作功能很強(qiáng)。注:標(biāo)有#的寄存器即可字節(jié)尋址,也可位尋
53、址。寄存器符號(hào)寄存器中文名稱字節(jié)地址# BB寄存器F0H# ACC累加器E0H# PSW程序狀態(tài)字節(jié)D0H# IP中斷優(yōu)先級(jí)控制寄存器B8H# P3P3口鎖存器BOH# IE中斷允許控制寄存器A8H# P2P2口鎖存器A0H SBUF串行口數(shù)據(jù)緩沖器99H# SCON串行口控制寄存器98H# P1P1口鎖存器90H TH1定時(shí)器/計(jì)數(shù)器1(高字節(jié))8DH THO定時(shí)器/計(jì)數(shù)器0(高字節(jié))8CH TL1定時(shí)器/計(jì)數(shù)器1(低字節(jié))8BH TLO定時(shí)器/計(jì)數(shù)器0(低字節(jié))8AH TMOD定時(shí)器/計(jì)數(shù)器 方式控制寄存器89H# TCON定時(shí)器/計(jì)數(shù)器 控制寄存器88H PCON電源控制寄存器87H D
54、PH數(shù)據(jù)地址指針(高字節(jié))83H DPL數(shù)據(jù)地址指針(低字節(jié))82H SP堆棧地址指針81H# POP0口鎖存器80H1.4 并行輸入/輸出口、時(shí)序、復(fù)位1.4.1 并行輸入/輸出口(I/O)MCS-51單片機(jī)具有4個(gè)8位雙向并行I/O端口,共32條引腳線,每位均有自己的鎖存器,輸出驅(qū)動(dòng)器和輸入緩沖器。 I/O端口的特點(diǎn)4個(gè)并行I/O端口都是雙向的。PO口為漏極開(kāi)路驅(qū)動(dòng);P1,P2,P3口均具有內(nèi)部上拉電阻驅(qū)動(dòng),它們有時(shí)被稱為準(zhǔn)雙向口。所有32條并行I/O線都能獨(dú)立地用做輸入或輸出。還可以進(jìn)行位操作。當(dāng)并行I/O線作為輸入時(shí),該口的鎖存器必須先寫(xiě)入“1”,這是一個(gè)重要條件,否則,輸出口鎖存器讓
55、口線為 “0”,而使輸入不能為1,從而使輸入可能無(wú)效(可能讀入全0)。即當(dāng)外電路輸入1時(shí),讀入的是鎖存器輸出的0。 各口功能MCS-51單片機(jī)屬總線型結(jié)構(gòu),這樣在系統(tǒng)結(jié)構(gòu)上增加了靈活性。通過(guò)總線,可使用戶根據(jù)應(yīng)用需要擴(kuò)展不同功能的應(yīng)用系統(tǒng)。8031和8032芯片沒(méi)有片內(nèi)程序存儲(chǔ)器,它的應(yīng)用系統(tǒng)必定是擴(kuò)展系統(tǒng)。在擴(kuò)展系統(tǒng)中PO口用于輸出外部程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器的低8位地址,并分時(shí)復(fù)用(從PO先輸出地址、接著傳送數(shù)據(jù))為外部程序存儲(chǔ)器的數(shù)據(jù)線或外部數(shù)據(jù)存儲(chǔ)器的8位數(shù)據(jù)線。P0口的地址為8OH,P0.0P0.7的位地址為80H87H。P2口用于輸出外部程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器的高8位地址。也
56、可用作普通8位數(shù)據(jù)線,即當(dāng)一般I/O口使用。P2口的地址為AOH,P2.0P2.7的位地址為A0HA7H。P3口是雙功能口。第一功能是一般輸入/輸出口;第二功能定義如下:端口引腳 第二功能P3.0 RXD 串行輸入P3.1 TXD 串行輸出P3.2 INT0(_) 外部中斷0輸入P3.3 INT1(_) 外部中斷1輸入P3.4 TO 計(jì)數(shù)器0外部輸入 P3.5 TI 計(jì)數(shù)器1外部輸入P3.6 WR(_) 外部數(shù)據(jù)存儲(chǔ)器寫(xiě)信號(hào)輸出 P3.7 RD(_) 外部數(shù)據(jù)存儲(chǔ)器讀信號(hào)輸出P3口的每一位都可獨(dú)立地定義為第一功能I/O或第二功能使用。P3口的第一功能和P1口一樣可作為輸入輸出端口,同樣具有字節(jié)
57、操作和位操作兩種方式,在位操作模式下,每一位均可定義為輸入或輸出。P3的第二功能涉及到串行口、外部中斷、定時(shí)器,它們與特殊功能寄存器有關(guān),它們的結(jié)構(gòu)、功能等在后面章節(jié)中再作進(jìn)一步介紹。P3口的地址為BOH,對(duì)應(yīng)P3.0P3.7的位址為BOHB7H。P3口為準(zhǔn)雙向口,為適應(yīng)引腳的第二功能的需要,增加了第二功能控制邏輯,在真正的應(yīng)用電路中,第二功能顯得更為重要。由于第二功能信號(hào)有輸入輸出兩種情況,我們分別加以說(shuō)明。對(duì)于第二功能為輸出引腳,當(dāng)作I/O口使用時(shí),第二功能信號(hào)線應(yīng)保持高電平,與非門(mén)開(kāi)通,以維持從鎖存器到輸出口數(shù)據(jù)輸出通路暢通無(wú)阻。而當(dāng)作第二功能口線使用時(shí),該位的鎖存器置高電平,使與非門(mén)對(duì)
58、第二功能信號(hào)的輸出是暢通的,從而實(shí)現(xiàn)第二功能信號(hào)的輸出。對(duì)于第二功能為輸入的信號(hào)引腳,在口線上的輸入通路增設(shè)了一個(gè)緩沖器,輸入的第二功能信號(hào)即從這個(gè)緩沖器的輸出端取得。而作為I/O口線輸入端時(shí),取自三態(tài)緩沖器的輸出端。這樣,不管是作為輸入口使用還是第二功能信號(hào)輸入,輸出電路中的鎖存器輸出和第二功能輸出信號(hào)線均應(yīng)置“1”。P1作為一般輸入輸出口。P1口的口地為90H,P1.0P1.7的位地址為90H97H。由于系統(tǒng)沒(méi)有使用P1口,編程人員可隨意使用,所以又叫用戶口。 端口結(jié)構(gòu)1、I/O端口的內(nèi)部結(jié)構(gòu)及其特點(diǎn)每個(gè)端口都是雙向的I/O口,端口的每一位都有一個(gè)鎖存器(特殊功能寄存器PO到P3的確切含意
59、是指每一位中的鎖存器),一個(gè)輸出驅(qū)動(dòng)器(場(chǎng)效應(yīng)三極管)和一個(gè)輸入數(shù)據(jù)緩沖器。其中,位鎖存器為D觸發(fā)器,在CPU控制下,可對(duì)端口POP3 進(jìn)行讀寫(xiě)操作或?qū)σ_進(jìn)行讀操作。8051的P0P3端口每位內(nèi)部結(jié)構(gòu)如圖1.71.10所示。在PO口和P2口的位結(jié)構(gòu)中,有一個(gè)2選1轉(zhuǎn)換器MUX訪問(wèn)外部存儲(chǔ)器時(shí),由內(nèi)部控制信號(hào),通過(guò)MUX將端口驅(qū)動(dòng)器與地址或內(nèi)部地址/數(shù)據(jù)線連接起來(lái)(開(kāi)關(guān)上或下)。從圖1.8可以看出,P1口的內(nèi)部結(jié)構(gòu)和P0口稍有不同,P1P3口具有內(nèi)部上拉電阻(由耗盡型場(chǎng)應(yīng)管構(gòu)成)。當(dāng)端口用做輸入時(shí),必須通過(guò)指令將端口的位鎖存器置1,以關(guān)閉輸出驅(qū)動(dòng)場(chǎng)應(yīng)管,這時(shí)P1P3口的引腳由內(nèi)部上拉電阻拉為高
60、電壓,同樣也可以由外部信號(hào)拉為低電平。只有這種情況下,才能保證引腳信號(hào)的正確讀入,否則可能讀入出錯(cuò)。例如,如果位鎖存器原來(lái)的狀態(tài)為0,則通過(guò)反相器加到場(chǎng)效應(yīng)管柵極的信號(hào)為1,使該管導(dǎo)通,引腳對(duì)地呈低阻狀態(tài),它會(huì)使從引腳輸入的高電平信號(hào)(“1信號(hào)”)受 到影 響而變低,這樣可能使引腳信號(hào)出錯(cuò)。圖1.7單片機(jī)P0口結(jié)構(gòu)(一位引腳) 圖1.8單片機(jī)P1口結(jié)構(gòu) 圖1.9單片機(jī)P2口結(jié)構(gòu) 圖1.10單片機(jī)P3口結(jié)構(gòu) 這種通過(guò)固定的上拉電阻而將引腳拉為高電平的端口結(jié)構(gòu),稱為“準(zhǔn)雙向口”,由于這種端口結(jié)構(gòu),P1P3端口都能由集電級(jí)或漏極開(kāi)路所驅(qū)動(dòng),在與外部器件連接時(shí),無(wú)需再接上拉電阻。在實(shí)際使用時(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題開(kāi)題報(bào)告:大學(xué)生心理危機(jī)的特點(diǎn)與干預(yù)策略研究
- 課題開(kāi)題報(bào)告:初中道德與法治學(xué)業(yè)水平考試試題特點(diǎn)與教學(xué)策略研究
- 幼兒園玩具采購(gòu)與幼兒園特色課程開(kāi)發(fā)合同
- 醫(yī)療資源配置的咨詢合同
- 二零二五年度酒吧整體承包經(jīng)營(yíng)風(fēng)險(xiǎn)控制協(xié)議
- 二零二五年度汽車(chē)租賃中介合伙購(gòu)買(mǎi)合同
- 2025年度標(biāo)準(zhǔn)畢業(yè)生實(shí)習(xí)合同(房地產(chǎn))
- 2025年度綠色建筑評(píng)價(jià)標(biāo)識(shí)合同分類及評(píng)價(jià)體系完善
- 二零二五年度村委會(huì)農(nóng)村電商服務(wù)承包合同
- 農(nóng)業(yè)公共服務(wù)用地流轉(zhuǎn)協(xié)議
- 《自動(dòng)噴水滅火系統(tǒng)設(shè)計(jì)》圖示
- 第二章陸地和海洋【真題訓(xùn)練】(人教版)(原卷版)
- 小吃街概念性規(guī)劃
- 創(chuàng)新小白實(shí)操手冊(cè) 第2版 課件全套 吳雋 模塊1-8 人人皆可創(chuàng)新-商業(yè)呈現(xiàn)與商業(yè)計(jì)劃
- 2024年世界職業(yè)院校技能大賽高職組“關(guān)務(wù)實(shí)務(wù)組”賽項(xiàng)參考試題庫(kù)(含答案)
- 電商提成合同模板
- 正念八周課件
- 服務(wù)響應(yīng)時(shí)間和服務(wù)保障方案
- 蟾蜍毒抗病毒作用機(jī)制
- 光伏發(fā)電監(jiān)理合同協(xié)議
- 新能源汽車(chē)概論課件 3.1認(rèn)知純電動(dòng)汽車(chē)
評(píng)論
0/150
提交評(píng)論