電子工程師自學(xué)速成(設(shè)計(jì)篇)_第1頁(yè)
電子工程師自學(xué)速成(設(shè)計(jì)篇)_第2頁(yè)
電子工程師自學(xué)速成(設(shè)計(jì)篇)_第3頁(yè)
電子工程師自學(xué)速成(設(shè)計(jì)篇)_第4頁(yè)
電子工程師自學(xué)速成(設(shè)計(jì)篇)_第5頁(yè)
已閱讀5頁(yè),還剩500頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

電子工程師自學(xué)速成(設(shè)計(jì)篇)目錄TOC\h\h第1章單片機(jī)入門(mén)\h1.1概述\h1.1.1什么是單片機(jī)\h1.1.2單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)與工作過(guò)程\h1.1.3單片機(jī)的開(kāi)發(fā)過(guò)程\h1.1.4單片機(jī)的應(yīng)用\h1.2單片機(jī)基礎(chǔ)知識(shí)\h1.2.1單片機(jī)基礎(chǔ)電路\h1.2.2數(shù)制與數(shù)制的轉(zhuǎn)換\h1.2.3單片機(jī)中數(shù)的表示及運(yùn)算\h第2章單片機(jī)硬件原理\h2.1單片機(jī)的結(jié)構(gòu)\h2.1.1CPU\h2.1.2時(shí)鐘振蕩器\h2.1.3中斷控制器\h2.1.4ROM\h2.1.5RAM\h2.1.6定時(shí)器/計(jì)數(shù)器\h2.1.7串行通信口\h2.1.8I/O接口\h2.1.9總線(xiàn)控制器\h2.2MCS-51系列單片機(jī)的引腳功能\h2.2.1基本工作條件引腳\h2.2.2輸入/輸出引腳\h2.2.3控制引腳\h2.3單片機(jī)的基本工作條件與工作時(shí)序\h2.3.1基本工作條件\h2.3.2工作時(shí)序\h2.4單片機(jī)的I/O接口\h2.4.1P0端口\h2.4.2P1端口\h2.4.3P2端口\h2.4.4P3端口\h2.5單片機(jī)的存儲(chǔ)器\h2.5.1存儲(chǔ)器基礎(chǔ)知識(shí)\h2.5.2程序存儲(chǔ)器\h2.5.3數(shù)據(jù)存儲(chǔ)器\h第3章單片機(jī)的開(kāi)發(fā)過(guò)程\h3.1單片機(jī)的硬件開(kāi)發(fā)過(guò)程\h3.1.1明確單片機(jī)應(yīng)用系統(tǒng)要實(shí)現(xiàn)的功能\h3.1.2選擇單片機(jī)型號(hào)\h3.1.3設(shè)計(jì)單片機(jī)外圍電路\h3.2單片機(jī)的軟件開(kāi)發(fā)過(guò)程\h3.2.1編寫(xiě)程序\h3.2.2編譯或匯編程序\h3.2.3仿真、調(diào)試程序\h3.2.4用編程器將程序?qū)懭雴纹瑱C(jī)\h第4章單片機(jī)編程\h4.1編程基礎(chǔ)知識(shí)\h4.1.1指令和程序\h4.1.2編程語(yǔ)言\h4.1.3匯編語(yǔ)言指令格式\h4.1.4從實(shí)例了解單片機(jī)編程\h4.2尋址方式\h4.2.1立即尋址\h4.2.2直接尋址\h4.2.3寄存器尋址\h4.2.4寄存器間接尋址\h4.2.5變址尋址\h4.2.6相對(duì)尋址\h4.2.7位尋址\h4.3指令系統(tǒng)\h4.3.1數(shù)據(jù)傳送類(lèi)指令\h4.3.2算術(shù)運(yùn)算類(lèi)指令\h4.3.3邏輯運(yùn)算類(lèi)指令\h4.3.4程序控制類(lèi)指令\h4.3.5位操作類(lèi)指令\h4.4偽指令\h4.4.1匯編起始指令(Origin)\h4.4.2定義字節(jié)指令(DefineByte)\h4.4.3定義字指令(DefineWord)\h4.4.4定義預(yù)留存儲(chǔ)單元指令(DefineSpace)\h4.4.5等值指令(Equate)\h4.4.6數(shù)據(jù)地址賦值指令\h4.4.7位地址符號(hào)賦值指令\h4.4.8匯編結(jié)束指令\h第5章中斷技術(shù)\h5.1概述\h5.1.1什么是中斷\h5.1.2中斷的有關(guān)概念\h5.1.3中斷的處理過(guò)程\h5.2中斷系統(tǒng)的結(jié)構(gòu)\h5.2.1中斷源寄存器\h5.2.2中斷允許寄存器IE\h5.2.3中斷優(yōu)先級(jí)控制寄存器IP\h5.3中斷程序的編寫(xiě)\h5.3.1從實(shí)例了解中斷程序的編寫(xiě)\h5.3.2中斷程序的編寫(xiě)方法\h第6章定時(shí)器/計(jì)數(shù)器\h6.1概述\h6.1.1定時(shí)器\h6.1.2計(jì)數(shù)器\h6.2定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)與工作原理\h6.2.1定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)\h6.2.2定時(shí)器/計(jì)數(shù)器的工作原理\h6.3定時(shí)器/計(jì)數(shù)器的控制\h6.3.1定時(shí)器/計(jì)數(shù)器控制寄存器TCON\h6.3.2工作方式控制寄存器TMOD\h6.3.3定時(shí)器/計(jì)數(shù)器的工作方式\h6.4定時(shí)器/計(jì)數(shù)器的應(yīng)用\h6.4.1利用定時(shí)器/計(jì)數(shù)器控制發(fā)光二極管的發(fā)光時(shí)間\h6.4.2利用定時(shí)器/計(jì)數(shù)器產(chǎn)生脈沖信號(hào)\h第7章串行通信技術(shù)\h7.1概述\h7.1.1串行通信方式\h7.1.2串行通信的數(shù)據(jù)傳送方向\h7.2串行通信口的結(jié)構(gòu)與工作原理\h7.2.1串行通信口的結(jié)構(gòu)\h7.2.2串行通信口的工作原理\h7.3串行通信口的控制\h7.3.1串行控制寄存器SCON\h7.3.2電源控制寄存器PCON\h7.44種工作方式與波特率的設(shè)置\h7.4.1方式0\h7.4.2方式1\h7.4.3方式2\h7.4.4方式3\h7.4.5波特率的設(shè)置\h7.5串行通信口的應(yīng)用\h7.5.1單工通信\h7.5.2雙工通信\h第8章接口技術(shù)\h8.1輸入接口\h8.1.1開(kāi)關(guān)量輸入接口\h8.1.2鍵盤(pán)輸入接口\h8.1.3模擬量輸入接口\h8.2輸出接口\h8.2.1開(kāi)關(guān)量輸出接口\h8.2.2數(shù)字量輸出接口\h8.2.3顯示輸出接口\h第9章Protel軟件入門(mén)\h9.1概述\h9.2Protel99SE基礎(chǔ)知識(shí)\h9.2.1Protel99SE的運(yùn)行環(huán)境\h9.2.2Protel99SE的組成\h9.2.3Protel99SE設(shè)計(jì)電路的流程\h9.3Protel99SE使用入門(mén)\h9.3.1設(shè)計(jì)數(shù)據(jù)庫(kù)文件的建立、關(guān)閉與打開(kāi)\h9.3.2Protel99SE設(shè)計(jì)界面的介紹\h9.3.3文件管理\h9.3.4系統(tǒng)參數(shù)的設(shè)置\h第10章設(shè)計(jì)電路原理圖\h10.1電路原理圖編輯器\h10.1.1電路原理圖編輯器界面介紹\h10.1.2圖紙大小的設(shè)置\h10.1.3圖紙的方向、標(biāo)題欄、邊框和顏色的設(shè)置\h10.1.4圖紙網(wǎng)格的設(shè)置\h10.1.5圖紙文件信息的設(shè)置\h10.1.6光標(biāo)與網(wǎng)格形狀和顏色的設(shè)置\h10.1.7系統(tǒng)字體的設(shè)置\h10.2電路原理圖的設(shè)計(jì)\h10.2.1裝載元件庫(kù)\h10.2.2查找元件\h10.2.3放置元件\h10.2.4元件的編輯\h10.2.5繪制導(dǎo)線(xiàn)和節(jié)點(diǎn)\h10.2.6電源和接地符號(hào)的放置\h10.2.7輸入/輸出端口的放置\h10.2.8元件標(biāo)號(hào)的查找、替換與重排\h10.3圖形的繪制和文本、圖片的編輯\h10.3.1直線(xiàn)的繪制\h10.3.2矩形的繪制\h10.3.3多邊形的繪制\h10.3.4橢圓弧線(xiàn)的繪制\h10.3.5橢圓的繪制\h10.3.6扇形的繪制\h10.3.7曲線(xiàn)的繪制\h10.3.8文本的插入與設(shè)置\h10.3.9圖片的插入與設(shè)置\h10.4層次原理圖的設(shè)計(jì)\h10.4.1主電路與子電路\h10.4.2由上向下設(shè)計(jì)層次原理圖\h10.4.3由下向上設(shè)計(jì)層次原理圖\h10.5原理圖報(bào)表的生成\h10.5.1ERC報(bào)表的生成\h10.5.2網(wǎng)絡(luò)表的生成\h10.5.3元件清單表的生成\h10.5.4交叉參考元件表的生成\h10.5.5層次項(xiàng)目組織表的生成\h10.5.6原理圖的打印輸出\h第11章制作新元件\h11.1元件庫(kù)編輯器\h11.1.1元件庫(kù)編輯器的啟動(dòng)\h11.1.2元件庫(kù)編輯器介紹\h11.2新元件的制作與使用\h11.2.1繪制新元件\h11.2.2修改已有的元件\h11.2.3繪制復(fù)合元件\h11.2.4新元件的使用\h11.3元件報(bào)表的生成與元件庫(kù)的管理\h11.3.1元件報(bào)表的生成\h11.3.2元件庫(kù)的管理\h第12章手工設(shè)計(jì)PCB\h12.1PCB設(shè)計(jì)基礎(chǔ)\h12.1.1PCB的基礎(chǔ)知識(shí)\h12.1.2PCB的設(shè)計(jì)過(guò)程\h12.1.3PCB編輯器\h12.1.4PCB設(shè)計(jì)前的設(shè)置\h12.1.5PCB編輯器參數(shù)設(shè)置\h12.2手工設(shè)計(jì)PCB的具體方法\h12.2.1放置對(duì)象\h12.2.2手工布局\h12.2.3手工布線(xiàn)\h第13章自動(dòng)設(shè)計(jì)PCB\h13.1基礎(chǔ)知識(shí)\h13.1.1PCB的自動(dòng)設(shè)計(jì)流程\h13.1.2利用原理圖生成網(wǎng)絡(luò)表\h13.2自動(dòng)設(shè)計(jì)PCB的具體方法\h13.2.1自動(dòng)規(guī)劃PCB\h13.2.2裝載元件封裝和網(wǎng)絡(luò)表\h13.2.3自動(dòng)布局元件\h13.2.4手工調(diào)整布局\h13.2.5自動(dòng)布線(xiàn)\h13.2.6手工調(diào)整布線(xiàn)\h13.3PCB的顯示\h13.3.1單層顯示模式\h13.3.2三維顯示模式\h13.4PCB報(bào)表的生成及PCB的打印\h13.4.1引腳報(bào)表的生成\h13.4.2電路板信息報(bào)表的生成\h13.4.3網(wǎng)絡(luò)狀態(tài)報(bào)表的生成\h13.4.4設(shè)計(jì)層次報(bào)表的生成\h13.4.5NC鉆孔報(bào)表的生成\h13.4.6元件報(bào)表的生成\h13.4.7電路特性報(bào)表的生成\h13.4.8元件位置報(bào)表的生成\h13.4.9PCB的打印\h第14章制作新元件封裝\h14.1元件封裝庫(kù)編輯器\h14.1.1元件封裝庫(kù)編輯器的啟動(dòng)\h14.1.2元件封裝庫(kù)編輯器介紹\h14.2制作新元件封裝的方法\h14.2.1手工制作新元件封裝\h14.2.2利用向?qū)е谱餍略庋b\h14.3元件封裝的管理\h14.3.1查找元件封裝\h14.3.2更改元件封裝名稱(chēng)\h14.3.3放置元件封裝\h14.3.4刪除元件封裝\h14.3.5編輯元件封裝引腳焊盤(pán)\h第1章單片機(jī)入門(mén)\h1.1概述\h1.1.1什么是單片機(jī)單片機(jī)是單片微型計(jì)算機(jī)(SingleChipMicrocomputer)的簡(jiǎn)稱(chēng),由于單片機(jī)主要用于控制領(lǐng)域,所以國(guó)際上通常將單片機(jī)稱(chēng)作微型控制器(MicrocontrollerUnit,MCU)。單片機(jī)與微型計(jì)算機(jī)都是由CPU、存儲(chǔ)器和輸入/輸出接口(I/O接口)等組成的,但兩者又有所不同,微型計(jì)算機(jī)和單片機(jī)的基本結(jié)構(gòu)分別如圖1-1(a)和圖1-1(b)所示。圖1-1微型計(jì)算機(jī)與單片機(jī)的結(jié)構(gòu)從圖1-1可以看出,將CPU、存儲(chǔ)器和輸入/輸出接口等部件安裝在電路板上,外部輸入/輸出設(shè)備通過(guò)電路板上的接插件與輸入/輸出接口連接起來(lái)就組成了微型計(jì)算機(jī);如果將CPU、存儲(chǔ)器和輸入/輸出接口等做在一塊集成電路內(nèi)部,這種集成電路就是單片機(jī),輸入/輸出設(shè)備通過(guò)單片機(jī)的引腳與內(nèi)部輸入/輸出接口連接。圖1-2所示就是一個(gè)具有40個(gè)引腳的單片機(jī),其內(nèi)部集成了CPU、存儲(chǔ)器和輸入/輸出接口等電路。圖1-2一種單片機(jī)的外形微型計(jì)算機(jī)可以根據(jù)需要更換電路板上的CPU、存儲(chǔ)器和輸入/輸出接口部件,從而提升性能和擴(kuò)展功能;而單片機(jī)是無(wú)法更換CPU、存儲(chǔ)器和輸入/輸出接口的(因?yàn)樗鼈兌甲鲈谝粔K集成電路內(nèi)部),如果要進(jìn)行復(fù)雜的控制,可以選用功能強(qiáng)大的單片機(jī)。與單片機(jī)相比,微型計(jì)算機(jī)具有性能高、功能強(qiáng)的特點(diǎn),但其價(jià)格昂貴,并且體積大,所以在一些不是很復(fù)雜的控制方面,如電動(dòng)玩具、繽紛閃爍的霓虹燈和家用電器中完全可以采用價(jià)格低廉的單片機(jī)來(lái)進(jìn)行控制。\h1.1.2單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)與工作過(guò)程1.結(jié)構(gòu)將CPU、存儲(chǔ)器和輸入/輸出接口等制作在一塊集成電路中就構(gòu)成了單片機(jī),但單獨(dú)一塊單片機(jī)集成電路是無(wú)法工作的,必須給它加一些外圍電路,構(gòu)成單片機(jī)應(yīng)用系統(tǒng)才可以工作。典型的單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)如圖1-3所示。從圖1-3中可以看出,一個(gè)典型的單片機(jī)應(yīng)用系統(tǒng)包括單片機(jī)、輸入電路和輸入部件、輸出電路和輸出部件。2.工作過(guò)程圖1-4所示為VCD影碟機(jī)托盤(pán)進(jìn)出單片機(jī)控制電路,下面以它為例來(lái)說(shuō)明單片機(jī)應(yīng)用系統(tǒng)的工作過(guò)程。圖1-3典型的單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)圖1-4VCD影碟機(jī)托盤(pán)進(jìn)出單片機(jī)控制電路當(dāng)按“出盒”鍵后,影碟機(jī)的托盤(pán)被推出機(jī)器,在托盤(pán)上放好光盤(pán),然后往機(jī)器內(nèi)輕推托盤(pán),托盤(pán)馬上將托盤(pán)檢測(cè)開(kāi)關(guān)S壓上閉合,在A點(diǎn)得到一個(gè)低電平,該電平送到單片機(jī)后,單片機(jī)馬上輸出控制信號(hào)(高電平),該信號(hào)通過(guò)R2送到驅(qū)動(dòng)管VT的基極,VT導(dǎo)通,有電流通過(guò)電動(dòng)機(jī),電動(dòng)機(jī)運(yùn)轉(zhuǎn)將托盤(pán)收回到機(jī)器內(nèi);一旦托盤(pán)完全進(jìn)入機(jī)器,與托盤(pán)聯(lián)動(dòng)的托盤(pán)檢測(cè)開(kāi)關(guān)S斷開(kāi),A點(diǎn)得到一個(gè)高電平,該電平送入單片機(jī)后,單片機(jī)馬上輸出控制信號(hào)(低電平),驅(qū)動(dòng)管VT截止,電動(dòng)機(jī)停轉(zhuǎn)。\h1.1.3單片機(jī)的開(kāi)發(fā)過(guò)程單片機(jī)的開(kāi)發(fā)主要指單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā),包括硬件開(kāi)發(fā)和軟件開(kāi)發(fā)。硬件開(kāi)發(fā)是指根據(jù)單片機(jī)要實(shí)現(xiàn)的控制功能開(kāi)發(fā)出實(shí)際的電路,如設(shè)計(jì)圖1-4所示的VCD影碟機(jī)托盤(pán)進(jìn)出單片機(jī)控制電路就是硬件開(kāi)發(fā)。軟件開(kāi)發(fā)是指為單片機(jī)編寫(xiě)程序,使單片機(jī)在程序的控制下,接收輸入端送入的信號(hào)并發(fā)出相應(yīng)的控制信號(hào),驅(qū)動(dòng)硬件電路工作,從而實(shí)現(xiàn)相應(yīng)的控制功能。如在圖1-4所示的電路中,單片機(jī)要隨時(shí)檢測(cè)輸入端有無(wú)信號(hào)輸入,如果有信號(hào)輸入,是高電平還是低電平,若是低電平輸入應(yīng)發(fā)出什么控制信號(hào),若是高電平輸入又應(yīng)發(fā)出什么控制信號(hào),這些都是由單片機(jī)內(nèi)部的程序決定的。單片機(jī)的開(kāi)發(fā)一般按圖1-5所示的流程來(lái)進(jìn)行,單片機(jī)的詳細(xì)開(kāi)發(fā)過(guò)程將在第3章介紹。圖1-5單片機(jī)開(kāi)發(fā)流程\h1.1.4單片機(jī)的應(yīng)用單片機(jī)的應(yīng)用非常廣泛,已深入到工業(yè)、農(nóng)業(yè)、商業(yè)、教育、國(guó)防及日常生活等各個(gè)領(lǐng)域。下面簡(jiǎn)單介紹一下單片機(jī)在其中一些領(lǐng)域的應(yīng)用。1.單片機(jī)在家電方面的應(yīng)用單片機(jī)在家電方面的應(yīng)用主要有:彩色電視機(jī)、影碟機(jī)內(nèi)部的控制系統(tǒng),數(shù)碼相機(jī)、數(shù)碼攝像機(jī)中的控制系統(tǒng),中高檔電冰箱、空調(diào)器、電風(fēng)扇、洗衣機(jī)、加濕機(jī)和消毒柜中的控制系統(tǒng),中高檔微波爐、電磁灶和電飯煲中的控制系統(tǒng)等。2.單片機(jī)在通信方面的應(yīng)用單片機(jī)在通信方面的應(yīng)用主要有:移動(dòng)電話(huà)、傳真機(jī)、調(diào)制解調(diào)器和程控交換機(jī)中的控制系統(tǒng),智能電纜監(jiān)控系統(tǒng),智能線(xiàn)路運(yùn)行控制系統(tǒng),智能電纜故障檢測(cè)儀等。3.單片機(jī)在商業(yè)方面的應(yīng)用單片機(jī)在商業(yè)方面的應(yīng)用主要有:自動(dòng)售貨機(jī)、無(wú)人值守系統(tǒng)、防盜報(bào)警系統(tǒng)、燈光音響設(shè)備和IC卡等。4.單片機(jī)在工業(yè)方面的應(yīng)用單片機(jī)在工業(yè)方面的應(yīng)用主要有:數(shù)控機(jī)床、數(shù)控加工中心、無(wú)人操作、機(jī)械手操作、工業(yè)過(guò)程控制、生產(chǎn)自動(dòng)化、遠(yuǎn)程監(jiān)控、設(shè)備管理、智能控制和智能儀表等。5.單片機(jī)在航空、航天和軍事方面的應(yīng)用單片機(jī)在航空、航天和軍事方面的應(yīng)用主要有:航天測(cè)控系統(tǒng)、航天制導(dǎo)系統(tǒng)、衛(wèi)星遙控遙測(cè)系統(tǒng)、載人航天系統(tǒng)、導(dǎo)彈制導(dǎo)系統(tǒng)和電子對(duì)抗系統(tǒng)等。6.單片機(jī)在汽車(chē)方面的應(yīng)用單片機(jī)在汽車(chē)方面的應(yīng)用主要有:汽車(chē)娛樂(lè)系統(tǒng)、汽車(chē)防盜報(bào)警系統(tǒng)、汽車(chē)信息系統(tǒng)、汽車(chē)智能駕駛系統(tǒng)、汽車(chē)全球衛(wèi)星定位導(dǎo)航系統(tǒng)、汽車(chē)智能化檢驗(yàn)系統(tǒng)、汽車(chē)自動(dòng)診斷系統(tǒng)和交通信息接收系統(tǒng)等。\h1.2單片機(jī)基礎(chǔ)知識(shí)\h1.2.1單片機(jī)基礎(chǔ)電路單片機(jī)內(nèi)部主要由數(shù)字電路組成。為了在分析單片機(jī)內(nèi)部電路結(jié)構(gòu)時(shí)更容易理解,這里簡(jiǎn)單介紹一下單片機(jī)中常用的基礎(chǔ)電路。1.與門(mén)與門(mén)如圖1-6所示。它是一個(gè)由二極管和電阻構(gòu)成的電路,其中A、B為輸入端,Y為輸出端,+5V電壓經(jīng)R1、R2分壓,在E點(diǎn)得到3V的電壓。圖1-6二極管與電阻構(gòu)成的與門(mén)(1)工作原理當(dāng)A、B兩端同時(shí)輸入低電平(0V)時(shí),由于E點(diǎn)電壓為3V,所以二極管VD1、VD2都導(dǎo)通,E點(diǎn)電壓馬上下降到0.7V(低電平),即當(dāng)A、B端均輸入低電平“0”時(shí),Y端輸出低電平“0”。當(dāng)A端輸入低電平(0V)、B端輸入高電平(5V)時(shí),由于E點(diǎn)電壓為3V,所以二極管VD1馬上導(dǎo)通,E點(diǎn)電壓下降到0.7V。此時(shí)VD2正端電壓為0.7V,負(fù)端電壓為5V,VD2處于截止?fàn)顟B(tài),即當(dāng)A端輸入低電平“0”、B端輸入高電平“1”時(shí),Y端輸出低電平“0”。當(dāng)A端輸入高電平(5V)、B端輸入低電平(0V)時(shí),VD1截止,VD2導(dǎo)通,E點(diǎn)電壓為0.7V(低電平),即當(dāng)A端輸入高電平“1”、B端輸入低電平“0”時(shí),Y端輸出低電平“0”。當(dāng)A、B端同時(shí)輸入高電平(5V)時(shí),VD1、VD2均不能導(dǎo)通,E點(diǎn)電壓為3V(高電平),即當(dāng)A、B兩端都輸入高電平“1”時(shí),Y端輸出“1”。由此可見(jiàn),與門(mén)的特點(diǎn)是:只有輸入端都輸入高電平時(shí),輸出端才會(huì)輸出高電平;只要有一個(gè)輸入端輸入低電平,輸出端就會(huì)輸出低電平。(2)真值表真值表是列舉電路的各種輸入值和對(duì)應(yīng)輸出值的表格,它能使人們直觀地看出電路的輸入與輸出之間的關(guān)系。表1-1是上述與門(mén)的真值表。(3)邏輯表達(dá)式真值表雖然能直觀描述電路的輸入和輸出之間的關(guān)系,但比較麻煩且不便記憶,為此可以用一個(gè)關(guān)系式來(lái)表示電路的輸入與輸出之間的關(guān)系,該關(guān)系式稱(chēng)為邏輯表達(dá)式。上述與門(mén)的邏輯表達(dá)式為:式中:A、B之間的“·”表示“與”,讀作“A”與“B”(或“A”乘“B”)。(4)邏輯符號(hào)圖1-6所示的與門(mén)由4個(gè)元器件組成,在畫(huà)圖和分析時(shí)很不方便,為此可用一個(gè)簡(jiǎn)單的符號(hào)來(lái)表示整個(gè)與門(mén),該符號(hào)稱(chēng)為邏輯符號(hào)。與門(mén)的邏輯符號(hào)如圖1-7所示,其中舊符號(hào)是指早期采用的符號(hào),常用符號(hào)是指有些國(guó)家采用的符號(hào),新標(biāo)準(zhǔn)符號(hào)是指我國(guó)公布的最新的標(biāo)準(zhǔn)符號(hào)。表1-1與門(mén)的真值表圖1-7與門(mén)邏輯符號(hào)2.或門(mén)(1)邏輯符號(hào)或門(mén)的邏輯符號(hào)如圖1-8所示。(2)邏輯表達(dá)式或門(mén)的邏輯表達(dá)式為:(3)真值表或門(mén)的真值表見(jiàn)表1-2。圖1-8或門(mén)邏輯符號(hào)表1-2或門(mén)的真值表由或門(mén)的真值表可以看出,或門(mén)的特點(diǎn)是:只要有一個(gè)輸入端輸入高電平,輸出端就會(huì)輸出高電平;只有輸入端都為低電平時(shí),輸出端才輸出低電平。3.非門(mén)(1)邏輯符號(hào)非門(mén)的邏輯符號(hào)如圖1-9所示。(2)邏輯表達(dá)式非門(mén)的邏輯表達(dá)式為:式中:“-”表示非(或相反)。(3)真值表非門(mén)的真值表見(jiàn)表1-3。圖1-9非門(mén)邏輯符號(hào)表1-3非門(mén)的真值表由非門(mén)的真值表可以看出,非門(mén)的特點(diǎn)是:輸入狀態(tài)與輸出狀態(tài)總是相反。4.與非門(mén)與非門(mén)由一個(gè)與門(mén)和一個(gè)非門(mén)組成,其邏輯結(jié)構(gòu)及邏輯符號(hào)如圖1-10所示。圖1-10與非門(mén)的邏輯結(jié)構(gòu)及邏輯符號(hào)(1)工作過(guò)程分析與非門(mén)的工作過(guò)程比較簡(jiǎn)單,下面以圖1-10(a)來(lái)說(shuō)明。當(dāng)A端輸入“0”、B端輸入“1”時(shí),與門(mén)的C端(輸出端)會(huì)輸出“0”,C端的“0”送到非門(mén)的輸入端,結(jié)果非門(mén)的Y端(輸出端)輸出“1”。A、B端的其他3種輸入情況讀者可以按上述方法分析,這里不再贅述。(2)邏輯表達(dá)式與非門(mén)的邏輯表達(dá)式為:根據(jù)邏輯表達(dá)式很容易求出輸入值和對(duì)應(yīng)的輸出值,例如當(dāng)A=0、B=1時(shí),Y=1。(3)真值表與非門(mén)的真值表見(jiàn)表1-4。表1-4與非門(mén)的真值表由與非門(mén)的真值表可以看出,與非門(mén)的特點(diǎn)是:只有輸入端都為高電平時(shí),輸出端才輸出低電平;只要有一個(gè)輸入端為低電平,輸出端就為高電平。5.或非門(mén)或非門(mén)由一個(gè)或門(mén)和一個(gè)非門(mén)組合而成,其邏輯結(jié)構(gòu)及邏輯符號(hào)分別如圖1-11(a)和圖1-11(b)所示。(1)工作過(guò)程分析或非門(mén)的工作過(guò)程比較簡(jiǎn)單,下面以圖1-11(a)來(lái)說(shuō)明。當(dāng)A端輸入“0”、B端輸入“1”時(shí),或門(mén)的C端(輸出端)會(huì)輸出“1”,C端的“1”送到非門(mén)的輸入端,結(jié)果非門(mén)的Y端(輸出端)輸出“0”。A、B端的其他3種輸入情況讀者可以按上述方法分析,這里不再贅述。(2)邏輯表達(dá)式或非門(mén)的邏輯表達(dá)式為:例如當(dāng)A=0、B=1時(shí),Y=0。(3)真值表或非門(mén)的真值表見(jiàn)表1-5。圖1-11或非門(mén)的邏輯結(jié)構(gòu)及邏輯符號(hào)表1-5或非門(mén)的真值表由或非門(mén)的真值表可以看出,或非門(mén)的特點(diǎn)是:只有輸入端都為低電平時(shí),輸出端才為高電平;只要輸入端有一個(gè)為高電平,輸出端就為低電平。6.三態(tài)門(mén)(1)邏輯符號(hào)三態(tài)門(mén)的邏輯符號(hào)如圖1-12所示。圖1-12三態(tài)門(mén)邏輯符號(hào)三態(tài)門(mén)有輸入端、輸出端和控制端三端,它的輸出不但取決于輸入,還與控制端有關(guān)。以圖1-12(a)所示的高電平有效型三態(tài)門(mén)為例,若控制端EN=1,輸出端與輸入端反相,即如果A=1時(shí),輸出端Y=0;若EN=0,輸入端與輸出端之間相當(dāng)于開(kāi)路,三態(tài)門(mén)處于高阻狀態(tài)(又稱(chēng)懸浮狀態(tài)或禁止?fàn)顟B(tài)),輸入信號(hào)無(wú)法通過(guò)三態(tài)門(mén)。(2)三態(tài)門(mén)的應(yīng)用在單片機(jī)中三態(tài)門(mén)常用于數(shù)據(jù)傳送電路,利用它不但可以進(jìn)行單向數(shù)據(jù)傳送,還能進(jìn)行雙向數(shù)據(jù)傳送。用三態(tài)門(mén)構(gòu)成的數(shù)據(jù)傳送電路如圖1-13所示。圖1-13三態(tài)門(mén)數(shù)據(jù)傳送電路圖1-13(a)所示為三態(tài)門(mén)構(gòu)成的單向數(shù)據(jù)傳送電路。當(dāng)控制端EN=1時(shí),兩個(gè)三態(tài)門(mén)都導(dǎo)通,存儲(chǔ)器輸出的數(shù)據(jù)可以通過(guò)這兩個(gè)三態(tài)門(mén)送到兩根數(shù)據(jù)總線(xiàn)上。圖1-13(b)所示為三態(tài)門(mén)構(gòu)成的雙向數(shù)據(jù)傳送電路。當(dāng)控制端EN=1時(shí),三態(tài)門(mén)A導(dǎo)通,三態(tài)門(mén)B處于禁止?fàn)顟B(tài),存儲(chǔ)器輸出的數(shù)據(jù)可以通過(guò)三態(tài)門(mén)A送到數(shù)據(jù)總線(xiàn)上;當(dāng)控制端EN=0時(shí),三態(tài)門(mén)A處于禁止?fàn)顟B(tài),三態(tài)門(mén)B導(dǎo)通,數(shù)據(jù)總線(xiàn)上的數(shù)據(jù)可以通過(guò)三態(tài)門(mén)B送入存儲(chǔ)器。7.寄存器單片機(jī)內(nèi)部有大量寄存器,寄存器是一種能夠存儲(chǔ)數(shù)據(jù)的電路,由觸發(fā)器構(gòu)成。(1)觸發(fā)器觸發(fā)器是一種具有記憶存儲(chǔ)功能的電路,由門(mén)電路組成。常見(jiàn)的觸發(fā)器包括:RS觸發(fā)器、D觸發(fā)器和JK觸發(fā)器等,其中D觸發(fā)器最為常用。D觸發(fā)器的邏輯符號(hào)如圖1-14所示。圖1-14D觸發(fā)器邏輯符號(hào)從圖1-14中可以看出,D觸發(fā)器的端子包括:輸入端D、輸出端Q、反相輸出端、時(shí)鐘脈沖輸入端CLK、置“0”端R和置“1”端S。數(shù)據(jù)存儲(chǔ)過(guò)程:當(dāng)D觸發(fā)器的D端輸入數(shù)據(jù)“1”時(shí),數(shù)據(jù)并不能馬上被存入觸發(fā)器,只有CLK端時(shí)鐘脈沖信號(hào)上升沿(即低電平轉(zhuǎn)為高電平時(shí))到來(lái)時(shí),“1”才能被存入觸發(fā)器,存入后Q端輸出“1”,端輸出“0”。也就是說(shuō),只有時(shí)鐘脈沖上升沿到來(lái)時(shí),D觸發(fā)器才能將輸入端的數(shù)據(jù)存儲(chǔ)起來(lái),并從Q端輸出。D觸發(fā)器的置“0”和置“1”:當(dāng)置“0”端R為低電平時(shí),觸發(fā)器被置“0”,即Q端為“0”;當(dāng)置“1”端S為低電平時(shí),觸發(fā)器被置“1”,即Q端為“1”。(2)寄存器寄存器是單片機(jī)內(nèi)部的基本存儲(chǔ)單元,由觸發(fā)器構(gòu)成,一個(gè)觸發(fā)器就是1位寄存器。圖1-15所示是一種由D觸發(fā)器構(gòu)成的4位寄存器。圖1-15由D觸發(fā)器構(gòu)成的4位寄存器在工作時(shí),寄存器先讓清0線(xiàn)為低電平,該低電平送到各觸發(fā)器的CLR端(實(shí)際為D觸發(fā)器的R端),將各觸發(fā)器清0,Y3Y2Y1Y0=0000;然后將數(shù)據(jù)送到各觸發(fā)器輸入端,當(dāng)CLK端的時(shí)鐘脈沖上升沿到來(lái)時(shí),輸入端的數(shù)據(jù)就被存入到各觸發(fā)器中,并從輸出端輸出。8.鎖存器鎖存器也是一種能存儲(chǔ)數(shù)據(jù)的電路。其特點(diǎn)是當(dāng)鎖存信號(hào)沒(méi)有到來(lái)時(shí),輸出端的狀態(tài)隨輸入端狀態(tài)的變化而變化;當(dāng)鎖存信號(hào)來(lái)到時(shí),輸入端的數(shù)據(jù)被鎖存到輸出端,即當(dāng)輸入端的信號(hào)再變化時(shí)輸出端也不會(huì)發(fā)生變化。下面以圖1-16為例來(lái)說(shuō)明鎖存器的工作原理。圖1-16鎖存器示意圖當(dāng)鎖存器的控制端EN=1時(shí),鎖存器輸出端Y與輸入端A的狀態(tài)保持一致,即A端數(shù)據(jù)變化時(shí),Y端數(shù)據(jù)也變化;當(dāng)鎖存器的控制端EN由“1”變?yōu)椤?”時(shí),輸入端此刻的數(shù)據(jù)馬上被鎖存到輸出端,在EN=0期間,輸出端的數(shù)據(jù)始終保持不變,不會(huì)隨輸入端而變化;當(dāng)EN又變?yōu)椤?”時(shí),即取消鎖存,輸出端又會(huì)隨輸入端的變化而變化。\h1.2.2數(shù)制與數(shù)制的轉(zhuǎn)換1.?dāng)?shù)制數(shù)制就是數(shù)的進(jìn)位制。日常生活中經(jīng)常會(huì)接觸到0、7、8、9、168、295等這樣的數(shù)字,它們的進(jìn)位制為十進(jìn)制。另外,還有二進(jìn)制和十六進(jìn)制等。(1)十進(jìn)制數(shù)十進(jìn)制數(shù)有以下特點(diǎn)。①有10個(gè)不同的數(shù)碼:0、1、2、3、4、5、6、7、8、9。任意一個(gè)十進(jìn)制數(shù)均可以由這10個(gè)數(shù)碼組成。②遵循“逢十進(jìn)一”的計(jì)數(shù)原則。對(duì)于任意一個(gè)十進(jìn)制數(shù)N,它都可以表示成:式中:m和n為正整數(shù);an?1,an?2,…,a?m稱(chēng)為數(shù)碼;10稱(chēng)作基數(shù);10n?1,10n?2,…,10?m是各位數(shù)碼的“位權(quán)”。例如:根據(jù)上面的方法可以將十進(jìn)制數(shù)3259.46表示為3259.46=3×103+2×102+5×101+9×100+4×10?1+6×10?2。(2)二進(jìn)制數(shù)十進(jìn)制是最常見(jiàn)的數(shù)制,此外,還有二進(jìn)制、八進(jìn)制、十六進(jìn)制等。在數(shù)字電路中,二進(jìn)制用得最多。1)二進(jìn)制數(shù)的特點(diǎn)二進(jìn)制數(shù)有以下特點(diǎn)。①有兩個(gè)數(shù)碼:0和1。任何一個(gè)二進(jìn)制數(shù)都可以由這兩個(gè)數(shù)碼組成。②遵循“逢二進(jìn)一”的計(jì)數(shù)原則。對(duì)于任意一個(gè)二進(jìn)制數(shù)N,它都可以表示成:式中:m和n為正整數(shù);an?1,an?2,…,a?m稱(chēng)為數(shù)碼;2稱(chēng)作基數(shù);2n?1,2n?2,...,2?m是各位數(shù)碼的“位權(quán)”。例如:二進(jìn)制數(shù)11011.01可表示為11011.01B=1×24+1×23+0×22+1×21+1×20+0×2?1+1×2?2。注:為了說(shuō)明數(shù)據(jù)為二進(jìn)制數(shù),一般在數(shù)據(jù)后加上“B”,十六進(jìn)制數(shù)加上“H”。2)二進(jìn)制數(shù)的四則運(yùn)算。①加法運(yùn)算。加法運(yùn)算的法則是:“逢二進(jìn)一”。具體有:當(dāng)遇到“1+1”時(shí)向相鄰高位進(jìn)1。例如:求1011B+1011B=?可以用與十進(jìn)制數(shù)相同的豎式計(jì)算即1011B+1011B=10110B②減法運(yùn)算。減法運(yùn)算的法則是:“借一當(dāng)二”。具體有:當(dāng)遇到“0?1”時(shí),需向高位借1當(dāng)2用。例如:求1100B?111B=?即1100B?111B=101B③乘法運(yùn)算。乘法運(yùn)算的法則是:“各數(shù)相乘,再作加法運(yùn)算”。具體有:例如:求1101B×101B=?即1101B×101B=1000001B④除法運(yùn)算。除法運(yùn)算的法則是:“各數(shù)相除,再作減法運(yùn)算”。具體有:例如:求1111B÷101B=?即1111B÷101B=11B(3)十六進(jìn)制數(shù)十六進(jìn)制數(shù)有以下特點(diǎn)。①有16個(gè)數(shù)碼:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。這里的A、B、C、D、E、F分別代表10、11、12、13、14、15。②遵循“逢十六進(jìn)一”的計(jì)數(shù)原則。對(duì)于任意一個(gè)十六進(jìn)制數(shù)N,它都可以表示成:式中:m和n為正整數(shù);an?1,an?2,…,a?m稱(chēng)為數(shù)碼;16稱(chēng)作基數(shù);16n?1,16n?2,…,16?m是各位數(shù)碼的“位權(quán)”。例如:十六進(jìn)制數(shù)3A6.DH可表示為3A6.DH=3×162+10×161+6×160+13×16?1。2.?dāng)?shù)制的轉(zhuǎn)換(1)二、十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)二、十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)的方法是:將二、十六進(jìn)制數(shù)各位數(shù)碼與位權(quán)相乘后求和,就能得到十進(jìn)制數(shù)。下面舉例說(shuō)明。二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù):101B=1×22+0×21+1×20=4+0+1=5十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù):C6H=12×16+6×160=198(2)十進(jìn)制數(shù)轉(zhuǎn)換成二、十六進(jìn)制數(shù)十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)的方法是:采用除2取余法,即將十進(jìn)制數(shù)依次除2,并依次記下余數(shù),一直除到商數(shù)為0,最后把全部余數(shù)按相反次序排列,就能得到二進(jìn)制數(shù)。十進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)的方法與轉(zhuǎn)換成二進(jìn)制數(shù)基本相同,不同之處在于采用除16取余法。例如:將十進(jìn)制數(shù)29轉(zhuǎn)換成二進(jìn)制數(shù)。即29=11101B例如:將十進(jìn)制數(shù)181轉(zhuǎn)換成十六進(jìn)制數(shù)。即181=B5H(3)二進(jìn)制數(shù)與十六進(jìn)制數(shù)的相互轉(zhuǎn)換①二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)。二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)的方法是:從小數(shù)點(diǎn)起向左、右按4位分組,不足4位的,整數(shù)部分可在最高位的左邊加“0”補(bǔ)齊,小數(shù)點(diǎn)部分可在最低位右邊加“0”補(bǔ)齊,每組用其對(duì)應(yīng)的十六進(jìn)制數(shù)代替,將各個(gè)十六進(jìn)制數(shù)依次寫(xiě)出即可。例如:將二進(jìn)制數(shù)1011000110.111101B轉(zhuǎn)換為十六進(jìn)制數(shù)。注:十六進(jìn)制的16位數(shù)碼為0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,它們分別與二進(jìn)制數(shù)0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110、1111相對(duì)應(yīng)。②十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)。十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)的過(guò)程與上述方法相反。其過(guò)程是:從左到右將待轉(zhuǎn)換的十六進(jìn)制數(shù)中的每個(gè)數(shù)碼依次用4位二進(jìn)制數(shù)表示。例如:將十六進(jìn)制數(shù)31AB.6DH轉(zhuǎn)換成二進(jìn)制數(shù)。\h1.2.3單片機(jī)中數(shù)的表示及運(yùn)算單片機(jī)中的數(shù)是以二進(jìn)制表示的,分為有符號(hào)數(shù)和無(wú)符號(hào)數(shù)兩種。1.有符號(hào)數(shù)的表示方法有符號(hào)數(shù)是指有“+(正)”、“?(負(fù))”符號(hào)的數(shù)。由于單片機(jī)采用二進(jìn)制數(shù),所以只有“1”和“0”兩種數(shù)字,其中用“0”表示“+”,用“1”表示“?”。單片機(jī)中的數(shù)據(jù)一般只有8位,一般規(guī)定最高位為符號(hào)位,因?yàn)橐?位表示數(shù)的符號(hào),所以只有7位用來(lái)表示數(shù)值,可以表示?127~+128。有符號(hào)數(shù)的表示方法有3種:原碼、反碼和補(bǔ)碼。同一有符號(hào)數(shù),用3種表示方法得到的數(shù)是不同的。下面用3種方法來(lái)表示兩個(gè)有符號(hào)數(shù)+1011101和?1011101。(1)原碼用“1”表示“?”,用“0”表示“+”,其他各數(shù)保持不變,采用這種方法表示出來(lái)的數(shù)稱(chēng)為原碼。+1011101用原碼表示是01011101,可寫(xiě)成[01011101]原。?1011101用原碼表示是11011101,可寫(xiě)成[11011101]原。(2)反碼反碼是在原碼的基礎(chǔ)上求得的。對(duì)于正的有符號(hào)數(shù),其反碼與原碼相同;對(duì)于負(fù)的有符號(hào)數(shù),其反碼除符號(hào)位與原碼相同外,其他各位數(shù)由原碼各位數(shù)取反得到。+1011101用反碼表示是01011101,可寫(xiě)成[01011101]反。?1011101用反碼表示是10100010,可寫(xiě)成[10100010]反。(3)補(bǔ)碼補(bǔ)碼是在反碼的基礎(chǔ)上求得的。對(duì)于正的有符號(hào)數(shù),其補(bǔ)碼與反碼、原碼相同;對(duì)于負(fù)的有符號(hào)數(shù),其補(bǔ)碼除符號(hào)位與反碼一致外,其他數(shù)由反碼加1得到。+1011101用補(bǔ)碼表示是01011101,可寫(xiě)成[01011101]補(bǔ)。?1011101用補(bǔ)碼表示是10100011,可寫(xiě)成[10100011]補(bǔ)。2.有符號(hào)數(shù)的運(yùn)算用原碼表示有符號(hào)數(shù)簡(jiǎn)單、直觀,但在單片機(jī)中,如果采用原碼進(jìn)行減法運(yùn)算,需要很復(fù)雜的硬件電路;如果用補(bǔ)碼,可以將減法運(yùn)算變?yōu)榧臃ㄟ\(yùn)算,從而省去減法器而簡(jiǎn)化硬件電路。例如:用二進(jìn)制減法運(yùn)算和補(bǔ)碼加法運(yùn)算分別計(jì)算35?21。①二進(jìn)制減法運(yùn)算:35?21=00100011?00010101=00001110②用補(bǔ)碼加法運(yùn)算。先將算式轉(zhuǎn)換成補(bǔ)碼形式,35?21=[+35]+[?21]=[00100011]原+[10010101]原=[00100011]反+[11101010]反=[00100011]補(bǔ)+[11101011]補(bǔ)。再對(duì)補(bǔ)碼進(jìn)行二進(jìn)制加法運(yùn)算:從上面的運(yùn)算過(guò)程可以看出,補(bǔ)碼的符號(hào)也參與運(yùn)算,在8位單片機(jī)中,由于數(shù)據(jù)長(zhǎng)度只能有8位,上式結(jié)果有9位,第9位會(huì)自然丟失,補(bǔ)碼加法的運(yùn)算結(jié)果與二進(jìn)制減法的運(yùn)算結(jié)果是一樣的,都是00001110=14。由此可見(jiàn),用補(bǔ)碼的形式進(jìn)行運(yùn)算,可以將減法運(yùn)算轉(zhuǎn)換為加法運(yùn)算,運(yùn)算結(jié)果仍是正確的,所以單片機(jī)普遍采用補(bǔ)碼的形式表示有符號(hào)數(shù)。3.無(wú)符號(hào)數(shù)的表示方法無(wú)符號(hào)數(shù)因?yàn)椴挥梅?hào)位,8位全部用來(lái)表示數(shù)據(jù),所以這種方法可以表示的數(shù)據(jù)范圍是0~255。8位二進(jìn)制數(shù)的不同表示方式的換算關(guān)系見(jiàn)表1-6。表1-68位二進(jìn)制數(shù)的不同表示方式的換算關(guān)系續(xù)表從表1-6中可以看出,對(duì)于同一個(gè)二進(jìn)制數(shù),當(dāng)采用不同的表示方式時(shí),得到的數(shù)值是不同的,特別是大于10000000的有符號(hào)數(shù)。若想確切知道單片機(jī)中的二進(jìn)制數(shù)所對(duì)應(yīng)的十進(jìn)制數(shù)是多少,先要了解該二進(jìn)制數(shù)是有符號(hào)數(shù)還是無(wú)符號(hào)數(shù),再換算出該二進(jìn)制數(shù)對(duì)應(yīng)的十進(jìn)制數(shù)。\h第2章單片機(jī)硬件原理\h2.1單片機(jī)的結(jié)構(gòu)單片機(jī)的種類(lèi)很多,其中以Intel公司生產(chǎn)的MCS-51系列單片機(jī)應(yīng)用最為廣泛。由于各種單片機(jī)的工作原理基本相同,所以本書(shū)就以MCS-51系列單片機(jī)為例來(lái)介紹單片機(jī)技術(shù)。MCS-51系列單片機(jī)的具體型號(hào)很多,如Intel公司生產(chǎn)的8031、8051、8751、8032、8052和Atmel公司生產(chǎn)的AT89C51、AT89S51等都屬于MCS-51系列單片機(jī)。MCS-51系列單片機(jī)的內(nèi)部組成基本相同,具體如圖2-1所示。圖2-1MCS-51系列單片機(jī)的內(nèi)部組成從圖2-1可以看出,單片機(jī)內(nèi)部主要由CPU、時(shí)鐘振蕩器、中斷控制器、程序存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、兩個(gè)定時(shí)器/計(jì)數(shù)器、串行通信口、輸入/輸出(I/O)接口和總線(xiàn)控制器組成。\h2.1.1CPUCPU(中央處理器)是單片機(jī)的核心部件,決定了單片機(jī)的主要功能和特性。工作時(shí),CPU從ROM中調(diào)取程序并進(jìn)行運(yùn)算,然后發(fā)出控制信號(hào)通過(guò)總線(xiàn)送到I/O接口,再由I/O接口將控制信號(hào)送到外圍的輸出電路。\h2.1.2時(shí)鐘振蕩器時(shí)鐘振蕩器的功能是產(chǎn)生時(shí)鐘信號(hào)送給單片機(jī)內(nèi)部各電路,并且控制這些電路,使它們有節(jié)拍地工作。時(shí)鐘信號(hào)頻率越高,內(nèi)部電路工作速度越快。\h2.1.3中斷控制器當(dāng)CPU執(zhí)行正常的程序時(shí),如果在INT0或INT1端給中斷控制器送入一個(gè)中斷請(qǐng)求信號(hào)(一般為低電平信號(hào)),中斷控制器馬上讓CPU停止正在執(zhí)行的程序,轉(zhuǎn)而去執(zhí)行ROM中特定的某段程序,執(zhí)行完該段程序后再繼續(xù)執(zhí)行先前中斷的程序。MCS-51系列單片機(jī)中斷控制器可以接受5個(gè)中斷請(qǐng)求:兩個(gè)外部中斷請(qǐng)求、兩個(gè)定時(shí)器/計(jì)數(shù)器中斷請(qǐng)求和串行通信口中斷請(qǐng)求。\h2.1.4ROMROM(只讀存儲(chǔ)器,又稱(chēng)程序存儲(chǔ)器)是一種具有存儲(chǔ)功能的電路,斷電后其中的信息不會(huì)消失。ROM主要用來(lái)存儲(chǔ)程序代碼。欲使單片機(jī)完成不同的控制功能,可以將不同的程序?qū)懭氲絉OM中。工作時(shí),CPU會(huì)自動(dòng)從ROM中讀取程序再進(jìn)行運(yùn)算,然后通過(guò)I/O接口向外部電路輸出相應(yīng)的控制信號(hào)。早期的ROM一般是單獨(dú)的芯片,沒(méi)有集成在單片機(jī)內(nèi)部(如8031單片機(jī)內(nèi)部就沒(méi)有ROM,需要外接),現(xiàn)在的單片機(jī)基本上都將ROM集成在內(nèi)部。ROM主要有下面幾種。(1)MaskROM(掩膜ROM)MaskROM中的內(nèi)容由廠家生產(chǎn)時(shí)一次性寫(xiě)入,以后不能改變。這種ROM成本低,適用于大批量生產(chǎn)。(2)PROM(可編程ROM)PROM中沒(méi)有內(nèi)容,編程者可將程序?qū)懭雰?nèi)部,但只能寫(xiě)一次,以后不能更改。如果PROM在單片機(jī)內(nèi)部,PROM中的程序?qū)戝e(cuò)了,整個(gè)單片機(jī)便不能使用。(3)EPROM(紫外線(xiàn)可擦寫(xiě)PROM)EPROM是一種可擦寫(xiě)的PROM,采用EPROM的單片機(jī)上面有一塊透明的石英窗口,平時(shí)該窗口被不透明的標(biāo)簽貼封,當(dāng)需要擦除EPROM內(nèi)部的信息時(shí),可撕開(kāi)標(biāo)簽,再用紫外線(xiàn)照射透明窗口15~30min,即可將內(nèi)部的信息全部擦除,然后重新寫(xiě)入新的信息。(4)EEPROM(電可擦寫(xiě)PROM)EEPROM也是一種可反復(fù)擦寫(xiě)的存儲(chǔ)器,但它不像EPROM需要用紫外線(xiàn)來(lái)擦除信息,該ROM只要加適當(dāng)?shù)牟脸妷?,就可以輕松快速地擦除其中的信息,然后重新寫(xiě)入信息。EEPROM反復(fù)擦寫(xiě)可達(dá)1000多次,目前主流單片機(jī)內(nèi)部就采用這種ROM。\h2.1.5RAMRAM(隨機(jī)存取存儲(chǔ)器,又稱(chēng)可讀寫(xiě)存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器)也是一種存儲(chǔ)電路。RAM的特點(diǎn)是:可以存入信息(稱(chēng)作寫(xiě)),也可以將信息取出(稱(chēng)作讀),斷電后存儲(chǔ)的信息會(huì)全部消失。單片機(jī)的RAM主要用來(lái)存儲(chǔ)一些臨時(shí)數(shù)據(jù)。\h2.1.6定時(shí)器/計(jì)數(shù)器定時(shí)器/計(jì)數(shù)器就像單片機(jī)的內(nèi)部時(shí)鐘或計(jì)數(shù)器,可以根據(jù)需要將它設(shè)為定時(shí)器或計(jì)數(shù)器。如果要求CPU在一段時(shí)間(如5ms)后執(zhí)行某段程序,可讓定時(shí)器/計(jì)數(shù)器工作在定時(shí)狀態(tài),定時(shí)器/計(jì)數(shù)器開(kāi)始計(jì)時(shí),當(dāng)計(jì)到5ms后馬上產(chǎn)生一個(gè)請(qǐng)求信號(hào)送到中斷控制器,中斷控制器則輸出信號(hào)讓CPU停止正在執(zhí)行的程序,轉(zhuǎn)而去執(zhí)行ROM中特定的某段程序。如果定時(shí)器/計(jì)數(shù)器工作在計(jì)數(shù)狀態(tài),可以從T0或T1端輸入脈沖信號(hào),定時(shí)器/計(jì)數(shù)器開(kāi)始對(duì)輸入的脈沖進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)到某個(gè)數(shù)值時(shí),馬上輸出一個(gè)信號(hào)送到中斷控制器,讓中斷控制器控制CPU去執(zhí)行ROM中特定的某段程序。\h2.1.7串行通信口串行通信口是單片機(jī)和外部設(shè)備進(jìn)行串行通信的接口。當(dāng)單片機(jī)要將數(shù)據(jù)傳送給外部設(shè)備時(shí),可以通過(guò)串行通信口將數(shù)據(jù)由TXD端輸出;外部設(shè)備送來(lái)的數(shù)據(jù)可以從RXD端輸入,通過(guò)串行通信口將數(shù)據(jù)送入單片機(jī)。串行是指數(shù)據(jù)傳遞的一種方式,串行傳遞數(shù)據(jù)時(shí),數(shù)據(jù)是一位一位進(jìn)行傳遞的。\h2.1.8I/O接口MCS-51系列單片機(jī)有4組I/O接口,它們分別是P0、P1、P2和P3端口。單片機(jī)通過(guò)這些端口與外部設(shè)備連接。這4組端口都是復(fù)用端口,既可作為輸出端口,也可以作為輸入端口,具體作為哪種端口由單片機(jī)內(nèi)部的程序來(lái)決定。當(dāng)這些端口用作輸入端口時(shí),可以外接鍵盤(pán)、各種傳感器和檢測(cè)開(kāi)關(guān)等輸入部件;如果用作輸出端口,可以接發(fā)光二極管、繼電器等輸出部件。單片機(jī)在工作時(shí),輸入部件通過(guò)輸入端口將輸入信號(hào)送入內(nèi)部,CPU根據(jù)輸入信號(hào)來(lái)執(zhí)行ROM中的相關(guān)程序,然后從輸出端口輸出控制信號(hào),控制輸出部件工作。\h2.1.9總線(xiàn)控制器單片機(jī)內(nèi)部用ROM來(lái)存儲(chǔ)寫(xiě)入的程序,但內(nèi)部的ROM容量通常較小,只能存儲(chǔ)一些不復(fù)雜的程序,如果遇到一些大型復(fù)雜的程序,所占容量大,單片機(jī)內(nèi)部的ROM將無(wú)法完全裝下,解決這個(gè)問(wèn)題的方法就是使用外接存儲(chǔ)器??偩€(xiàn)控制器主要用于控制外接存儲(chǔ)器,使它能像單片機(jī)內(nèi)部的存儲(chǔ)器一樣使用。\h2.2MCS-51系列單片機(jī)的引腳功能學(xué)習(xí)單片機(jī)技術(shù),一定要了解單片機(jī)中各引腳的功能。MCS-51系列單片機(jī)共有40個(gè)引腳,各引腳的排列如圖2-2所示。MCS-51系列單片機(jī)的40個(gè)引腳根據(jù)功能可以分作3類(lèi):基本工作條件引腳、輸入/輸出(I/O)引腳和控制引腳。\h2.2.1基本工作條件引腳單片機(jī)基本工作條件引腳有電源引腳、復(fù)位引腳和時(shí)鐘引腳,只有具備了基本工作條件,單片機(jī)才能開(kāi)始工作。圖2-2MCS-51系列單片機(jī)各引腳排列圖(1)電源引腳40腳為電源正極引腳(VCC),20腳為電源負(fù)極引腳(VSS)。電源正極引腳一般接5V電源,電源負(fù)極引腳接地。(2)復(fù)位引腳9腳為復(fù)位引腳(RST/VPD)。在單片機(jī)接通電源后,為了使內(nèi)部電路正常工作,需要復(fù)位電路為它提供復(fù)位信號(hào),使內(nèi)部電路進(jìn)入初始狀態(tài),然后才開(kāi)始工作。MCS-51系列單片機(jī)采用高電平復(fù)位,即外接復(fù)位電路給復(fù)位引腳送入高電平信號(hào)后,就可以對(duì)單片機(jī)內(nèi)部電路進(jìn)行復(fù)位。9腳還具有掉電保持功能,為了防止掉電使單片機(jī)內(nèi)部RAM中的數(shù)據(jù)丟失,可在該腳再接一個(gè)備用電源,掉電時(shí),由備用電源為該腳提供4.5~5.5V的電壓,可保持RAM中的數(shù)據(jù)不會(huì)丟失。(3)時(shí)鐘引腳18、19腳為時(shí)鐘引腳(XTAL2、XTAL1)。單片機(jī)內(nèi)部有大量的數(shù)字電路,這些數(shù)字電路工作時(shí)需要時(shí)鐘信號(hào)進(jìn)行控制,才能有次序、有節(jié)拍地工作。單片機(jī)內(nèi)部的時(shí)鐘振蕩器與時(shí)鐘引腳外接的定時(shí)電路構(gòu)成時(shí)鐘振蕩電路,產(chǎn)生時(shí)鐘信號(hào)供給內(nèi)部電路使用;另外,也可以由外部的振蕩器產(chǎn)生時(shí)鐘信號(hào),通過(guò)時(shí)鐘引腳送入單片機(jī),供給內(nèi)部電路。\h2.2.2輸入/輸出引腳MCS-51系列單片機(jī)有P0、P1、P2和P3共4組I/O接口,每組接口又有8個(gè)引腳:P0端口引腳P0.0~P0.7,P1端口引腳P1.0~P1.7,P2端口引腳P2.0~P2.7,P3端口引腳P3.0~P3.7。這4組接口既可用作輸入端口將外部信號(hào)輸入單片機(jī),也可以用作輸出端口將信號(hào)從單片機(jī)內(nèi)輸出。另外,這些接口還具有一些其他功能,具體說(shuō)明如下。P0端口(32~39腳)的功能有:輸入8路信號(hào),輸出8路信號(hào),用作8位數(shù)據(jù)總線(xiàn),或用作16位地址總線(xiàn)中的低8位地址總線(xiàn)。P1端口(1~8腳)的功能有:輸入8路信號(hào),輸出8路信號(hào)。P2端口(21~28腳)的功能有:輸入8路信號(hào),輸出8路信號(hào),用作16位地址總線(xiàn)中的高8位地址總線(xiàn)。P3端口(10~17腳)的功能有:輸入8路信號(hào),輸出8路信號(hào)。P3端口的8個(gè)引腳還具有其他功能,具體說(shuō)明如下。P3.0:用作串行數(shù)據(jù)輸入端(RXD)。P3.1:用作串行數(shù)據(jù)輸出端(TXD)。P3.2:用作外部中斷0請(qǐng)求信號(hào)輸入端()。P3.3:用作外部中斷1請(qǐng)求信號(hào)輸入端()。P3.4:用作定時(shí)器/計(jì)數(shù)器T0的外部脈沖信號(hào)輸入端(T0)。P3.5:用作定時(shí)器/計(jì)數(shù)器T1的外部脈沖信號(hào)輸入端(T1)。P3.6:該端在寫(xiě)片外RAM時(shí),輸出寫(xiě)控制信號(hào)()。P3.7:該端在讀片外RAM時(shí),輸出讀控制信號(hào)()。P0、P1、P2、P3端口具有多種功能,具體應(yīng)用哪一種功能,由單片機(jī)內(nèi)部的程序來(lái)決定。需要注意的是,在某一時(shí)刻,端口的某一引腳只能用作一種功能。\h2.2.3控制引腳控制引腳的功能主要有:當(dāng)單片機(jī)外接存儲(chǔ)器(RAM或ROM)時(shí),通過(guò)控制引腳控制外接存儲(chǔ)器,使單片機(jī)能像使用內(nèi)部存儲(chǔ)器一樣使用外接存儲(chǔ)器;在向單片機(jī)編程(即向單片機(jī)內(nèi)部寫(xiě)入編好的程序)時(shí),編程器通過(guò)控制引腳使單片機(jī)進(jìn)入編程狀態(tài),然后才能將程序?qū)懭雴纹瑱C(jī)。控制引腳的功能說(shuō)明如下。EA/VPP(31腳):存儲(chǔ)器使用控制輸入端/編程電壓輸入端。當(dāng)EA=1(高電平)時(shí),單片機(jī)使用內(nèi)部存儲(chǔ)器;當(dāng)EA=0(低電平)時(shí),單片機(jī)使用外接存儲(chǔ)器。在用編程器往單片機(jī)寫(xiě)入程序時(shí),要在該腳加12~25V的編程電壓。PSEN(29腳):程序存儲(chǔ)允許輸出端。它是外部ROM讀選通控制端,當(dāng)單片機(jī)要從外接ROM中讀取信息時(shí),該端要輸出一個(gè)低電平給外接ROM。ALE/(30腳):低8位地址鎖存允許信號(hào)輸出端/編程脈沖輸入端。在外接存儲(chǔ)器時(shí),如圖2-3所示,該腳輸出控制信號(hào)到單片機(jī)的外接鎖存器,讓鎖存器將P0端口送來(lái)的8位地址信號(hào)鎖存起來(lái),當(dāng)作低8位地址信號(hào)A0~A7(高8位地址A8~A15由P2端口送出),這樣P0端口不用再輸出8位地址信號(hào),就可以空閑下來(lái),用來(lái)傳送8位數(shù)據(jù)信號(hào)。在單片機(jī)編程時(shí),編程器由該腳將編程脈沖輸入單片機(jī)。圖2-3單片機(jī)外接存儲(chǔ)器\h2.3單片機(jī)的基本工作條件與工作時(shí)序\h2.3.1基本工作條件單片機(jī)是一種大規(guī)模的數(shù)字集成電路,它的基本工作條件是電源、復(fù)位信號(hào)和時(shí)鐘信號(hào),只有具備了這些條件,單片機(jī)才能開(kāi)始工作。1.電源的提供單片機(jī)內(nèi)部有各種電路,這些電路在工作時(shí)需要提供電源。40腳為電源正極引腳(VCC),20腳為電源負(fù)極引腳(VSS)。電源正極引腳一般接5V電源,負(fù)極引腳接地。2.復(fù)位電路單片機(jī)內(nèi)部有大量的數(shù)字電路,在為這些電路提供電源的同時(shí),還要給它們提供復(fù)位信號(hào),讓這些電路都進(jìn)入初始狀態(tài),然后才開(kāi)始工作。單片機(jī)的復(fù)位電路如圖2-4所示,9腳為復(fù)位引腳(RST)。圖2-4單片機(jī)的復(fù)位電路在接通+5V電源的瞬間,由于C1來(lái)不及充電,其兩端的電壓UC1為0V,R2兩端的電壓UR2為5V(UC1+UR2=5V),即單片機(jī)的9腳為高電平,該高電平信號(hào)進(jìn)入9腳,對(duì)內(nèi)部電路進(jìn)行復(fù)位,讓內(nèi)部電路都進(jìn)入初始狀態(tài)。隨著+5V電源對(duì)C1不斷充電,C1兩端的電壓迅速上升,而R2兩端的電壓則迅速下降,當(dāng)C1兩端電壓充到5V時(shí),R2兩端電壓為0V,單片機(jī)9腳變?yōu)?V(低電平),復(fù)位完成,單片機(jī)的內(nèi)部電路開(kāi)始工作。由于該復(fù)位過(guò)程在單片機(jī)接通電源時(shí)就會(huì)自動(dòng)進(jìn)行,故又稱(chēng)上電復(fù)位。如果單片機(jī)工作不正常,可按一下復(fù)位開(kāi)關(guān)S,在按下開(kāi)關(guān)時(shí),+5V電源通過(guò)R1加到9腳,9腳為高電平,該高電平對(duì)內(nèi)部電路進(jìn)行復(fù)位,使內(nèi)部電路全部回到初始狀態(tài),當(dāng)S斷開(kāi)時(shí),9腳變?yōu)榈碗娖?,?fù)位結(jié)束,單片機(jī)內(nèi)部電路全部恢復(fù)到起始狀態(tài),然后重新開(kāi)始工作。該復(fù)位過(guò)程稱(chēng)作手工復(fù)位。3.時(shí)鐘電路為了讓單片機(jī)的內(nèi)部電路有次序、有節(jié)拍地工作,需要為這些電路提供時(shí)鐘脈沖信號(hào),讓時(shí)鐘信號(hào)來(lái)控制它們工作。有的電路來(lái)一個(gè)時(shí)鐘脈沖就工作一次,有的電路需要來(lái)多個(gè)時(shí)鐘脈沖才工作一次,如果沒(méi)有時(shí)鐘脈沖到來(lái),這些電路就不能正常工作。時(shí)鐘信號(hào)頻率越高,這些電路的工作速度越快。18、19腳為時(shí)鐘信號(hào)引腳(XTAL2、XTAL1)。單片機(jī)可采用兩種時(shí)鐘電路來(lái)提供時(shí)鐘信號(hào),如圖2-5所示。圖2-5單片機(jī)的時(shí)鐘電路圖2-5(a)采用了內(nèi)時(shí)鐘電路,單片機(jī)內(nèi)部的反相放大器與XTAL2、XTAL1引腳外接的反饋兼選頻電路(C1、C2、晶振)構(gòu)成時(shí)鐘振蕩器,產(chǎn)生時(shí)鐘信號(hào)提供給單片機(jī)的內(nèi)部電路。如果晶振的頻率為12MHz,則時(shí)鐘振蕩器產(chǎn)生的時(shí)鐘信號(hào)頻率為12MHz。圖2-5(b)采用了外時(shí)鐘電路,單片機(jī)外部的振蕩電路產(chǎn)生的時(shí)鐘信號(hào)經(jīng)放大器放大后,進(jìn)入XTAL2引腳,送給單片機(jī)的內(nèi)部電路。單片機(jī)XTAL2、XTAL1引腳之間的內(nèi)部放大電路由于無(wú)外接反饋選頻電路,并且XTAL1引腳接地,所以不會(huì)產(chǎn)生振蕩。\h2.3.2工作時(shí)序單片機(jī)是在時(shí)鐘脈沖的控制下工作的,有的電路來(lái)一個(gè)時(shí)鐘脈沖就可完成一次工作,而有的電路需要來(lái)多個(gè)時(shí)鐘脈沖才能完成一次工作。為了方便分析工作時(shí)序,單片機(jī)中規(guī)定了幾種周期:時(shí)鐘周期、狀態(tài)周期、機(jī)器周期和指令周期。1.時(shí)鐘周期時(shí)鐘周期是指振蕩器產(chǎn)生的時(shí)鐘信號(hào)周期,也即時(shí)鐘振蕩頻率的倒數(shù)。例如:?jiǎn)纹瑱C(jī)時(shí)鐘信號(hào)的頻率為12MHz,那么時(shí)鐘周期就為1/12μs。2.狀態(tài)周期狀態(tài)周期由兩個(gè)時(shí)鐘周期組成,它分為P1節(jié)拍和P2節(jié)拍,第1個(gè)時(shí)鐘周期為P1節(jié)拍,第2個(gè)時(shí)鐘周期為P2節(jié)拍。3.機(jī)器周期單片機(jī)在執(zhí)行指令時(shí),通常把執(zhí)行過(guò)程劃分成幾個(gè)基本的操作,完成一個(gè)基本操作所需要的時(shí)間稱(chēng)為機(jī)器周期。一個(gè)機(jī)器周期由6個(gè)狀態(tài)周期,也即12個(gè)時(shí)鐘周期組成。4.指令周期指令周期是指執(zhí)行一條指令所需要的全部時(shí)間,它通常為1~4個(gè)機(jī)器周期。例如,單片機(jī)在執(zhí)行“MOVA,#C3H”指令時(shí),需要2個(gè)機(jī)器周期,即24個(gè)時(shí)鐘周期,若時(shí)鐘周期為1/12μs,那么執(zhí)行該指令需要2μs。\h2.4單片機(jī)的I/O接口MCS-51系列單片機(jī)有4組I/O接口:P0、P1、P2和P3。前面簡(jiǎn)單介紹了一下各個(gè)端口,要學(xué)好單片機(jī)技術(shù),非常有必要詳細(xì)了解這些端口的內(nèi)部結(jié)構(gòu)及工作原理。\h2.4.1P0端口P0端口有P0.0~P0.7共8個(gè)引腳,這些引腳除了可作I/O引腳外,在外接存儲(chǔ)器時(shí),還可作地址/數(shù)據(jù)總線(xiàn)引腳。P0端口每個(gè)引腳的內(nèi)部電路結(jié)構(gòu)都相同,其內(nèi)部電路結(jié)構(gòu)如圖2-6所示。圖2-6P0端口內(nèi)部電路結(jié)構(gòu)(1)當(dāng)P0端口用作輸出端口時(shí)如果要將P0端口用作輸出端口,單片機(jī)內(nèi)部的CPU會(huì)發(fā)出一個(gè)“0”到與門(mén)的控制端。控制端的“0”一方面關(guān)閉與門(mén)(即與門(mén)的一端為“0”時(shí),不管另一端輸入何種信號(hào),輸出都為“0”),使地址/數(shù)據(jù)總線(xiàn)送來(lái)的信號(hào)無(wú)法通過(guò)與門(mén);另一方面控制電子開(kāi)關(guān),讓電子開(kāi)關(guān)與鎖存器的端接通。此時(shí)若給鎖存器的寫(xiě)鎖存器端送寫(xiě)脈沖信號(hào),內(nèi)部總線(xiàn)送來(lái)的數(shù)據(jù)就可以通過(guò)D端進(jìn)入鎖存器并從Q和端輸出,如D端輸入“1”,則端輸出“0”(Q端輸出“1”),該“0”經(jīng)電子開(kāi)關(guān)送到場(chǎng)效應(yīng)管VT2的柵極,VT2截止,從P0端口輸出“1”。也就是說(shuō),當(dāng)給P0端口內(nèi)部的與門(mén)控制端送“0”,同時(shí)給寫(xiě)鎖存器端送寫(xiě)脈沖信號(hào)時(shí),單片機(jī)內(nèi)部總線(xiàn)的信號(hào)就可以通過(guò)接口電路從P0端口輸出。(2)當(dāng)P0端口用作輸入端口時(shí)當(dāng)將P0端口用作輸入端口時(shí),P0端口的信號(hào)既送到三態(tài)門(mén),又送到VT2的漏極。如果鎖存器之前鎖存的為“0”,即Q=0、=1,其中=1會(huì)使VT2導(dǎo)通,P0端口被鉗在“0”電平上,“1”將無(wú)法送入P0端口。解決的方法是:在將數(shù)據(jù)輸入P0端口前,先通過(guò)內(nèi)部總線(xiàn)向鎖存器寫(xiě)“1”,即讓=0,VT2截止,P0端口輸入的“1”就可以送到三態(tài)門(mén)的輸入端,此時(shí)再給三態(tài)門(mén)的讀引腳送一個(gè)讀控制信號(hào),“1”就可以通過(guò)三態(tài)門(mén)送到內(nèi)部總線(xiàn)。也就是說(shuō),要將P0端口作為輸入端口,先要將P0端口的鎖存器寫(xiě)“1”,然后再給輸入三態(tài)門(mén)送讀控制信號(hào),P0端口的數(shù)據(jù)就可以通過(guò)接口電路,送到單片機(jī)內(nèi)部的總線(xiàn)上。(3)當(dāng)P0端口用作地址/數(shù)據(jù)總線(xiàn)引腳時(shí)如果要將P0端口用作地址/數(shù)據(jù)總線(xiàn)引腳,先要給與門(mén)的控制端送“1”,于是與門(mén)打開(kāi),同時(shí)電子開(kāi)關(guān)和非門(mén)輸出端接通。當(dāng)?shù)刂?數(shù)據(jù)總線(xiàn)為“1”時(shí),“1”一方面通過(guò)與門(mén)送到VT1的柵極,VT1導(dǎo)通,另一方面送到非門(mén),經(jīng)反相變?yōu)椤?”,再經(jīng)電子開(kāi)關(guān)送到VT2的柵極,VT2截止,VT1導(dǎo)通,VT2截止使P0端口輸出為“1”;當(dāng)?shù)刂?數(shù)據(jù)總線(xiàn)為“0”時(shí),VT1導(dǎo)通,VT2也導(dǎo)通,P0端口輸出為“0”。也就是說(shuō),當(dāng)給與門(mén)的控制端送“1”時(shí),內(nèi)部地址/數(shù)據(jù)總線(xiàn)上的信號(hào)就可以從P0端口輸出,P0端口就可當(dāng)作地址/數(shù)據(jù)總線(xiàn)引腳使用。\h2.4.2P1端口P1端口有P1.0~P1.7共8個(gè)引腳,這些引腳可作I/O引腳。P1端口每個(gè)引腳的內(nèi)部電路結(jié)構(gòu)都相同,其內(nèi)部電路結(jié)構(gòu)如圖2-7所示。圖2-7P1端口內(nèi)部電路結(jié)構(gòu)從圖2-7中可以看出,P1端口的結(jié)構(gòu)較P0端口簡(jiǎn)單很多,由于P1端口內(nèi)部采用了一只場(chǎng)效應(yīng)管,并且與電源之間接了一只上拉電阻,所以不需要在P1端口的外部接上拉電阻。(1)當(dāng)P1端口用作輸出端口時(shí)如果要將P1端口用作輸出端口,應(yīng)給鎖存器的寫(xiě)鎖存器CL端送寫(xiě)脈沖信號(hào),內(nèi)部總線(xiàn)送來(lái)的數(shù)據(jù)就可以通過(guò)D端進(jìn)入鎖存器并從Q和端輸出,如D端輸入“1”,則端輸出“0”(Q端輸出“1”),該“0”送到場(chǎng)效應(yīng)管的柵極,場(chǎng)效應(yīng)管截止,從P1端口輸出“1”。(2)當(dāng)P1端口用作輸入端口時(shí)當(dāng)將P1端口用作輸入端口時(shí),如果鎖存器以前鎖存的為“0”,即Q=0、=1,其中=1會(huì)使場(chǎng)效應(yīng)管導(dǎo)通,P1端口被鉗在“0”電平上,“1”將無(wú)法送入P1端口。所以與P0端口一樣,在將數(shù)據(jù)輸入P1端口前,先要通過(guò)內(nèi)部總線(xiàn)向鎖存器寫(xiě)“1”,讓=0,場(chǎng)效應(yīng)管截止,P1端口輸入的“1”就可以送到輸入三態(tài)門(mén)的輸入端,此時(shí)再給三態(tài)門(mén)的讀引腳送一個(gè)讀控制信號(hào),“1”就可以通過(guò)輸入三態(tài)門(mén)送到內(nèi)部總線(xiàn)。\h2.4.3P2端口P2端口有P2.0~P2.7共8個(gè)引腳,P2端口每個(gè)引腳的內(nèi)部電路結(jié)構(gòu)都相同,其內(nèi)部電路結(jié)構(gòu)如圖2-8所示。圖2-8P2端口內(nèi)部電路結(jié)構(gòu)從圖2-8中可以看出,P2端口的內(nèi)部結(jié)構(gòu)與P0端口很相似。P2端口也可作I/O引腳,在外接存儲(chǔ)器時(shí),還可以作為地址總線(xiàn)引腳。(1)當(dāng)P2端口用作地址總線(xiàn)引腳時(shí)如果要將P2端口用作地址總線(xiàn)引腳,單片機(jī)內(nèi)部的CPU會(huì)發(fā)出一個(gè)控制信號(hào)到電子開(kāi)關(guān)的控制端,讓電子開(kāi)關(guān)與內(nèi)部地址總線(xiàn)接通,地址總線(xiàn)上的信號(hào)就可以在通過(guò)電子開(kāi)關(guān)、非門(mén)和場(chǎng)效應(yīng)管后從P2端口引腳輸出。(2)當(dāng)P2端口用作I/O接口時(shí)如果要將P2端口用作I/O接口,單片機(jī)內(nèi)部的CPU會(huì)發(fā)出一個(gè)控制信號(hào)到電子開(kāi)關(guān)的控制端,讓電子開(kāi)關(guān)與鎖存器接通。當(dāng)將P2端口用作輸出端口時(shí),給鎖存器的CL端送寫(xiě)脈沖信號(hào),內(nèi)部總線(xiàn)上的數(shù)據(jù)就被鎖存進(jìn)鎖存器并從Q端輸出,再通過(guò)電子開(kāi)關(guān)、非門(mén)和場(chǎng)效應(yīng)管從P2端口引腳輸出。當(dāng)將P2端口用作輸入端口時(shí),如果鎖存器以前鎖存的為“0”,即Q=0,經(jīng)非門(mén)反相后會(huì)使場(chǎng)效應(yīng)管導(dǎo)通,P2端口被鉗在“0”電平上,“1”將無(wú)法送入P2端口。所以與P0、P1端口一樣,在將數(shù)據(jù)輸入P2端口前,先通過(guò)內(nèi)部總線(xiàn)向鎖存器寫(xiě)“1”,讓Q=1,場(chǎng)效應(yīng)管截止,P2端口輸入的“1”就可以送到輸入三態(tài)門(mén)的輸入端,此時(shí)再給讀引腳送一個(gè)讀控制信號(hào),“1”就可以通過(guò)三態(tài)門(mén)送到內(nèi)部總線(xiàn)。\h2.4.4P3端口P3端口有P3.0~P3.7共8個(gè)引腳,P3端口可作為I/O接口,還可以用于其他方面。P3端口每個(gè)引腳的內(nèi)部電路結(jié)構(gòu)都相同,其內(nèi)部電路結(jié)構(gòu)如圖2-9所示。圖2-9P3端口內(nèi)部電路結(jié)構(gòu)(1)當(dāng)P3端口用作I/O接口時(shí)如果要將P3端口用作I/O接口,應(yīng)讓與非門(mén)的選擇輸出功能端為“1”,以開(kāi)通與非門(mén)。當(dāng)將P3端口用作輸出端口時(shí),給鎖存器的CL端送寫(xiě)脈沖信號(hào),內(nèi)部總線(xiàn)送來(lái)的數(shù)據(jù)就可以通過(guò)D端進(jìn)入鎖存器并從Q端輸出,再通過(guò)與非門(mén)和場(chǎng)效應(yīng)管從P3端口引腳輸出。當(dāng)將P3端口用作輸入端口時(shí),應(yīng)先通過(guò)內(nèi)部總線(xiàn)向鎖存器寫(xiě)“1”,讓Q=1,場(chǎng)效應(yīng)管截止,P3端口輸入的信號(hào)就可以通過(guò)緩沖器、輸入三態(tài)門(mén)送到內(nèi)部總線(xiàn)。(2)當(dāng)P3端口用作第二功能時(shí)P3端口用作第二功能(又稱(chēng)復(fù)用功能)時(shí),實(shí)際上也是在該端口輸入或輸出信號(hào),只不過(guò)輸入、輸出的是一些特殊功能的信號(hào)。所以當(dāng)P3端口用作第二功能時(shí),其內(nèi)部電路的工作原理與用作I/O接口時(shí)是一樣的,在用作輸入功能時(shí),端口的鎖存器同樣要先置“1”。P3端口8個(gè)引腳的第二功能詳見(jiàn)表2-1。例如P3.2引腳用作第二功能時(shí),該端口可輸入由外部設(shè)備送到的中斷請(qǐng)求信號(hào),該信號(hào)通過(guò)緩沖器、輸入三態(tài)門(mén)送到內(nèi)部總線(xiàn)。P3端口除了可以接收外界的輸入信號(hào)外,還可以接收內(nèi)部的替代輸入功能端送來(lái)的信號(hào),該信號(hào)通過(guò)輸入三態(tài)門(mén)送到內(nèi)部總線(xiàn)。總之,P0、P1、P2和P3端口的功能是:都可以作輸入或輸出端口;P0、P2、P3端口具有第二功能,各種端口的第二功能見(jiàn)表2-1。例如,表中說(shuō)明P0端口的第二功能可以用作低8位地址總線(xiàn)/數(shù)據(jù)總線(xiàn),P2端口可用作高8位地址總線(xiàn),P3.0端口可用作串行數(shù)據(jù)接收端。表2-1MCS-51系列單片機(jī)各端口的第二功能\h2.5單片機(jī)的存儲(chǔ)器一般來(lái)說(shuō),電路設(shè)計(jì)好后,它的功能也就固定下來(lái);而對(duì)于單片機(jī),只要寫(xiě)入程序不同,它的功能就會(huì)發(fā)生變化。寫(xiě)入單片機(jī)的程序保存在程序存儲(chǔ)器中,單片機(jī)在工作時(shí)通過(guò)執(zhí)行程序存儲(chǔ)器中的程序來(lái)實(shí)現(xiàn)不同的功能。單片機(jī)中有兩種存儲(chǔ)器:程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。程序存儲(chǔ)器用來(lái)存儲(chǔ)編程人員寫(xiě)入的程序,而數(shù)據(jù)存儲(chǔ)器用來(lái)存放單片機(jī)工作時(shí)的一些臨時(shí)數(shù)據(jù)。進(jìn)行單片機(jī)開(kāi)發(fā)一定要了解單片機(jī)存儲(chǔ)器的結(jié)構(gòu)。\h2.5.1存儲(chǔ)器基礎(chǔ)知識(shí)1.存儲(chǔ)器常用單位存儲(chǔ)器的常用單位如下。位(bit):它是計(jì)算機(jī)中最小的數(shù)據(jù)單位。由于計(jì)算機(jī)采用二進(jìn)制數(shù),所以1位二進(jìn)制數(shù)稱(chēng)作1bit,例如101011為6bit。字節(jié)(Byte,單位簡(jiǎn)寫(xiě)為B):8位二進(jìn)制數(shù)稱(chēng)為一個(gè)字節(jié),1B=8bit。字(Word):兩個(gè)字節(jié)構(gòu)成一個(gè)字,即2B=1Word。在單片機(jī)中還有一個(gè)術(shù)語(yǔ):字長(zhǎng)。所謂字長(zhǎng)指單片機(jī)一次能處理的二進(jìn)制數(shù)的位數(shù)。MCS-51系列單片機(jī)一次能處理8位二進(jìn)制數(shù),所以它的字長(zhǎng)為8位。2.存儲(chǔ)器的工作原理存儲(chǔ)器的功能是存取各種二進(jìn)制數(shù)據(jù)。存儲(chǔ)器的結(jié)構(gòu)如圖2-10所示。圖2-10中大虛線(xiàn)框內(nèi)的部分為存儲(chǔ)器的組成結(jié)構(gòu),它的容量為4bit,可以存儲(chǔ)4bit二進(jìn)制數(shù);小虛線(xiàn)框內(nèi)為存儲(chǔ)體,存儲(chǔ)體中有4個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元可存儲(chǔ)1bit二進(jìn)制數(shù)。為了區(qū)分這4個(gè)存儲(chǔ)單元,對(duì)這4個(gè)單元分別編號(hào)為00、01、10和11。存儲(chǔ)器連接的引線(xiàn)有3種:A0、A1稱(chēng)為地址總線(xiàn),D0稱(chēng)為數(shù)據(jù)總線(xiàn),R/、稱(chēng)為控制總線(xiàn)。圖2-10存儲(chǔ)器的結(jié)構(gòu)單片機(jī)在工作時(shí),可以取出存儲(chǔ)器中的數(shù)據(jù),稱(chēng)作讀(R);也可以將數(shù)據(jù)存入存儲(chǔ)器,稱(chēng)作寫(xiě)(W)。下面以圖2-10所示存儲(chǔ)器為例來(lái)說(shuō)明存儲(chǔ)器的工作原理。(1)存儲(chǔ)器的讀過(guò)程下面以取出01單元中的“1”為例來(lái)說(shuō)明存儲(chǔ)器的讀過(guò)程。首先讓片選端=0、讀/寫(xiě)控制端R/=1。=0經(jīng)非門(mén)反相后變?yōu)椤?”,它控制電子開(kāi)關(guān)S2閉合;R/=1送到三態(tài)門(mén)1、三態(tài)門(mén)2的控制端,三態(tài)門(mén)1處于高阻狀態(tài),輸入與輸出之間相當(dāng)于開(kāi)路,三態(tài)門(mén)2則處于導(dǎo)通狀態(tài)。這樣數(shù)據(jù)總線(xiàn)D0就通過(guò)S2、三態(tài)門(mén)2與存儲(chǔ)器內(nèi)部接通。然后給地址總線(xiàn)A0、A1送地址信號(hào),即讓A0=1、A1=0,這兩個(gè)地址信號(hào)經(jīng)地址譯碼器譯碼后,從內(nèi)部行線(xiàn)X0端輸出“1”(即X0=1),從列線(xiàn)Y1端輸出“1”(即Y1=1),X0=1選中00、01兩個(gè)單元,Y1=1控制電子開(kāi)關(guān)S1閉合。這樣被選中的01單元中的數(shù)據(jù)“1”就可以通過(guò)S1、三態(tài)門(mén)2、S2送到外部數(shù)據(jù)總線(xiàn)D0上。雖然00單元也被X0=1選中,由于S0是斷開(kāi)的,所以該單元中的數(shù)據(jù)無(wú)法送到數(shù)據(jù)總線(xiàn)。(2)存儲(chǔ)器的寫(xiě)過(guò)程下面以向01單元存入數(shù)據(jù)“1”為例來(lái)說(shuō)明存儲(chǔ)器的寫(xiě)過(guò)程。首先讓片選端=0、讀/寫(xiě)控制端R/=0。=0經(jīng)非門(mén)反相后變?yōu)椤?”,它控制電子開(kāi)關(guān)S2閉合;R/=0送到三態(tài)門(mén)1、三態(tài)門(mén)2的控制端,三態(tài)門(mén)2處于高阻狀態(tài),輸入與輸出之間相當(dāng)于開(kāi)路,三態(tài)門(mén)1則處于導(dǎo)通狀態(tài)。這樣數(shù)據(jù)總線(xiàn)D0就通過(guò)S2、三態(tài)門(mén)1與存儲(chǔ)器內(nèi)部接通。然后給地址總線(xiàn)A0、A1送地址信號(hào),即讓A0=1、A1=0,這兩個(gè)地址信號(hào)經(jīng)地址譯碼器譯碼后,從內(nèi)部行線(xiàn)X0端輸出“1”(即X0=1),從列線(xiàn)Y1端輸出“1”(即Y1=1),X0=1選中01單元,Y1=1控制電子開(kāi)關(guān)S1閉合。這樣外部數(shù)據(jù)總線(xiàn)D0上的數(shù)據(jù)“1”就可以通過(guò)S2、三態(tài)門(mén)1、S1存入被選中的01單元中。3.存儲(chǔ)器有關(guān)術(shù)語(yǔ)(1)總線(xiàn)總線(xiàn)是指為多個(gè)部件傳遞信息的信號(hào)線(xiàn)。根據(jù)信號(hào)線(xiàn)上傳遞信息類(lèi)型的不同,總線(xiàn)可分為地址總線(xiàn)、數(shù)據(jù)總線(xiàn)和控制總線(xiàn)。圖2-10中的A0、A1為地址總線(xiàn),用來(lái)傳送地址信號(hào);D0為數(shù)據(jù)總線(xiàn),用來(lái)傳送數(shù)據(jù);R/、為控制總線(xiàn),用來(lái)傳送控制信號(hào),其中R/為讀/寫(xiě)控制端,當(dāng)R/=1時(shí),可以讀取存儲(chǔ)器中的數(shù)據(jù),當(dāng)R/=0時(shí),可以向存儲(chǔ)器寫(xiě)入數(shù)據(jù),而片選端稱(chēng)為片選控制端,當(dāng)多片存儲(chǔ)器連接在一起時(shí),要對(duì)其中一片進(jìn)行讀/寫(xiě)操作,可讓該存儲(chǔ)器的=0,而讓其他存儲(chǔ)器的=1。(2)存儲(chǔ)容量存儲(chǔ)器的功能是存儲(chǔ)二進(jìn)制數(shù),其存儲(chǔ)二進(jìn)制數(shù)的多少稱(chēng)為存儲(chǔ)容量。存儲(chǔ)器存儲(chǔ)容量的大小,取決于存儲(chǔ)器中存儲(chǔ)單元的多少和單元中存儲(chǔ)二進(jìn)制數(shù)的位數(shù)。圖2-10所示的存儲(chǔ)器有4個(gè)存儲(chǔ)單元,每個(gè)單元存儲(chǔ)1位二進(jìn)制數(shù),所以它的存儲(chǔ)容量為4×1bit;如果每個(gè)單元能存儲(chǔ)8位二進(jìn)制數(shù),那么它的容量就是4×8bit。大多數(shù)存儲(chǔ)器的每個(gè)存儲(chǔ)單元能存1B(8位二進(jìn)制數(shù)),如果一片存儲(chǔ)器中有1024(212)個(gè)存儲(chǔ)單元,每單元存1B,該存儲(chǔ)器的存儲(chǔ)容量為1024×8bit,即1KB。(3)地址編號(hào)存儲(chǔ)器中有很多存儲(chǔ)單元,為了查找方便,需要給每個(gè)單元賦予不同的編號(hào),這就是地址編號(hào)。圖2-10所示的存儲(chǔ)器中有4個(gè)存儲(chǔ)單元,它們的地址可以用2位二進(jìn)制數(shù)編號(hào)來(lái)表示,地址編號(hào)分別是00、01、10、11。如果一個(gè)存儲(chǔ)器中有1024個(gè)存儲(chǔ)單元,則至少需要用12位二進(jìn)制數(shù)來(lái)表示,地址編號(hào)分別是000000000000,000000000001,…,111111111110,111111111111。存儲(chǔ)器的存儲(chǔ)單元越多,地址編號(hào)需要的二進(jìn)制數(shù)位數(shù)越多。對(duì)于大容量的存儲(chǔ)器,用二進(jìn)制數(shù)進(jìn)行地址編號(hào)非常不方便,也容易出錯(cuò)。為此,現(xiàn)在的存儲(chǔ)器都用十六進(jìn)制數(shù)地址編號(hào)來(lái)代替二進(jìn)制數(shù)編號(hào)。二進(jìn)制數(shù)地址編號(hào)轉(zhuǎn)換成十六進(jìn)制數(shù)地址編號(hào)的規(guī)則是:將二進(jìn)制數(shù)地址編號(hào)從低到高4位編為一組,高位不足4位補(bǔ)0,再將每4位二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù),得到的即為十六進(jìn)制數(shù)地址編號(hào)。例如,二進(jìn)制數(shù)地址編號(hào)000011000000B、11110100001B轉(zhuǎn)換成十六進(jìn)制數(shù)地址編號(hào)分別是0C0H、7A1H。4.存儲(chǔ)器容量的擴(kuò)展單片機(jī)內(nèi)部存儲(chǔ)器的容量一般不會(huì)很大,如果內(nèi)部存儲(chǔ)器容量不夠用,可在單片機(jī)外圍增加存儲(chǔ)器進(jìn)行容量擴(kuò)展。圖2-11所示就是一種單片機(jī)存儲(chǔ)器容量擴(kuò)展示意圖。圖2-11一種單片機(jī)存儲(chǔ)器容量擴(kuò)展示意圖如果單片機(jī)要讀取內(nèi)部存儲(chǔ)器中的數(shù)據(jù),內(nèi)部電路(圖2-11中未畫(huà)出)讓線(xiàn)為“1”,R/線(xiàn)為“1”,并從地址總線(xiàn)A0~A15送出16位地址信號(hào)。=1讓外部存儲(chǔ)器不工作,=1經(jīng)非門(mén)變?yōu)椤?”,內(nèi)部存儲(chǔ)器被選中;R/=1控制內(nèi)部存儲(chǔ)器執(zhí)行讀操作;A0~A15送出的地址信號(hào)選中內(nèi)部存儲(chǔ)器中的某個(gè)存儲(chǔ)單元,該單元中存儲(chǔ)的數(shù)據(jù)就通過(guò)數(shù)據(jù)線(xiàn)D0~D7輸出到單片機(jī)的某些電路。如果單片機(jī)要讀取外部存儲(chǔ)器中的數(shù)據(jù),內(nèi)部電路讓線(xiàn)為“0”,R/線(xiàn)為“1”,并從地址總線(xiàn)A0~A15送出16位地址信號(hào)。=0讓外部存儲(chǔ)器工作,=0經(jīng)非門(mén)變?yōu)椤?”,內(nèi)部存儲(chǔ)器不工作;R/=1控制外部存儲(chǔ)器執(zhí)行讀操作;A0~A15送出的地址信號(hào)選中外部存儲(chǔ)器中的某個(gè)存儲(chǔ)單元,該單元中存儲(chǔ)的數(shù)據(jù)就通過(guò)數(shù)據(jù)線(xiàn)D0~D7輸出,送入單片機(jī)內(nèi)部。\h2.5.2程序存儲(chǔ)器程序存儲(chǔ)器(ROM)是存放程序的電路。單片機(jī)在編程時(shí),一般先在計(jì)算機(jī)中用軟件編寫(xiě)程序,再通過(guò)編程器將編好的程序?qū)懭氲匠绦虼鎯?chǔ)器中,單片機(jī)通過(guò)執(zhí)行程序存儲(chǔ)器中的程序來(lái)產(chǎn)生各種信號(hào),從而實(shí)現(xiàn)各種控制。1.程序存儲(chǔ)器的使用MCS-51系列單片機(jī)可以使用內(nèi)部程序存儲(chǔ)器,也可以使用外部程序存儲(chǔ)器。MCS-51系列單片機(jī)使用內(nèi)部程序存儲(chǔ)器還是外部程序存儲(chǔ)器,受31腳端的控制。當(dāng)端=0時(shí),單片機(jī)只能使用外部程序存儲(chǔ)器,無(wú)法使用內(nèi)部程序存儲(chǔ)器。8031、8032單片機(jī)內(nèi)部無(wú)程序存儲(chǔ)器,只能使用外部程序存儲(chǔ)器,因此端必須接地。當(dāng)端=1時(shí),單片機(jī)先使用內(nèi)部程序存儲(chǔ)器,容量不夠時(shí)將會(huì)自動(dòng)使用外部程序存儲(chǔ)器。2.程序存儲(chǔ)器的地址編號(hào)8x51(如8051、8751)單片機(jī)內(nèi)部有4KB的程序存儲(chǔ)器(該存儲(chǔ)器內(nèi)有4096個(gè)存儲(chǔ)單元,每個(gè)單元存儲(chǔ)1B),存儲(chǔ)單元的地址編號(hào)是0000H~0FFFH,當(dāng)進(jìn)行擴(kuò)展外接程序存儲(chǔ)器時(shí),可外接60KB的程序存儲(chǔ)器,外部程序存儲(chǔ)器的地址編號(hào)是1000H~FFFFH。8x51單片機(jī)程序存儲(chǔ)器的地址編號(hào)如圖2-12(a)所示。圖2-12程序存儲(chǔ)器的地址編號(hào)8x52(如8052、8752)單片機(jī)內(nèi)部有8KB的程序存儲(chǔ)器,地址編號(hào)是0000H~1FFFH,當(dāng)進(jìn)行擴(kuò)展外接程序存儲(chǔ)器時(shí),可外接56KB的程序存儲(chǔ)器,外部程序存儲(chǔ)器的地址編號(hào)是2000H~FFFFH。8x52單片機(jī)程序存儲(chǔ)器的地址編號(hào)如圖2-12(b)所示。\h2.5.3數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器(RAM)用來(lái)存放數(shù)據(jù)和運(yùn)算結(jié)果等信息。與程序存儲(chǔ)器一樣,單片機(jī)除了可以使用內(nèi)部數(shù)據(jù)存儲(chǔ)器外,也可以使用外部數(shù)據(jù)存儲(chǔ)器。MCS-51系列單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器有256B的存儲(chǔ)空間(即有256個(gè)存儲(chǔ)單元,每個(gè)單元存儲(chǔ)1B數(shù)據(jù)),地址編號(hào)為00H~FFH(也可用0000H~00FFH表示);外部數(shù)據(jù)存儲(chǔ)器地址編號(hào)為0000H~FFFFH,有64KB的存儲(chǔ)空間。外部數(shù)據(jù)存儲(chǔ)器最開(kāi)始的一段地址(0000H~00FFH)與內(nèi)部數(shù)據(jù)存儲(chǔ)器相同,對(duì)于相同的地址,單片機(jī)是通過(guò)不同的指令來(lái)區(qū)分的。MCS-51系列單片機(jī)數(shù)據(jù)存儲(chǔ)器的地址編號(hào)如圖2-13所示。從圖2-13中可以看出,內(nèi)部數(shù)據(jù)存儲(chǔ)器分為4個(gè)區(qū):工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩存區(qū)和特殊功能寄存器區(qū)。前3個(gè)區(qū)的詳細(xì)結(jié)構(gòu)如圖2-14所示。圖2-13MCS-51系列單片機(jī)數(shù)據(jù)存儲(chǔ)器地址編號(hào)圖2-14MCS-51系列單片機(jī)數(shù)據(jù)存儲(chǔ)器前3個(gè)區(qū)的結(jié)構(gòu)1.工作寄存器區(qū)工作寄存器區(qū)的地址編號(hào)為00H~1FH,該區(qū)域又分為4組(0~3組),每組有8個(gè)存儲(chǔ)單元,都用R0~R7表示。單片機(jī)在工作時(shí),在同一時(shí)間內(nèi)這4組寄存器中只能有1組工作,到底是哪一組寄存器工作由特殊功能寄存器區(qū)內(nèi)的程序狀態(tài)字寄存器(PSW)中的RS1位和RS0位的狀態(tài)決定,默認(rèn)為0組工作,具體見(jiàn)表2-2。表2-2工作寄存器與RS1、RS0的關(guān)系例如,當(dāng)寄存器中的RS1=0、RS0=1時(shí),1組(08H~0FH)寄存器處于工作狀態(tài)。2.位尋址區(qū)位尋址區(qū)的地址編號(hào)為20H~2FH,該區(qū)域有16個(gè)存儲(chǔ)單元,在該區(qū)域既可以對(duì)某個(gè)存儲(chǔ)單元進(jìn)行字節(jié)操作,也可以用位操作指令對(duì)某個(gè)存儲(chǔ)單元進(jìn)行位操作。下面以圖2-15為例來(lái)說(shuō)明字節(jié)操作和位操作的過(guò)程。圖2-15字節(jié)操作與位操作在進(jìn)行字節(jié)操作時(shí),用字節(jié)操作指令選中編址為24H的存儲(chǔ)單元,然后可以將1B的數(shù)據(jù)存入該單元,或從該單元取出。圖2-15(a)中是將1B的數(shù)據(jù)11011001存入編址為24H的存儲(chǔ)單元。在進(jìn)行位操作時(shí),用位操作指令選中編址24H,該24H是一個(gè)位地址,在圖中它是字節(jié)地址24H的第4位,該地址存儲(chǔ)了一位數(shù)“0”,如果要將該位轉(zhuǎn)換成“1”,可用位操作指令選中位地址24H,然后將“1”存入該位,該位就變?yōu)椤?”,整個(gè)字節(jié)就變?yōu)?1011001。單片機(jī)在工作時(shí),是通過(guò)程序指令區(qū)分地址是字節(jié)地址還是位地址的,有關(guān)的指令知識(shí)將在后續(xù)章節(jié)介紹。地址編號(hào)為20H~2FH的位尋址區(qū)有16個(gè)存儲(chǔ)單元,每個(gè)單元有8位,共有128位,這128位的位地址見(jiàn)表2-3。表2-3片內(nèi)數(shù)據(jù)存儲(chǔ)器中位尋址區(qū)的位地址3.?dāng)?shù)據(jù)緩存區(qū)數(shù)據(jù)緩存區(qū)又稱(chēng)用戶(hù)數(shù)據(jù)區(qū),或稱(chēng)作內(nèi)部RAM區(qū),它的地址編號(hào)為30H~7FH。該區(qū)域一般用來(lái)存儲(chǔ)隨機(jī)數(shù)據(jù)和運(yùn)算中間結(jié)果等。4.特殊功能寄存器區(qū)特殊功能寄存器(SFR)區(qū)內(nèi)是一些具有特殊功能的存儲(chǔ)單元,地址編號(hào)是80H~FFH。特殊功能寄存器區(qū)中各個(gè)寄存器的地址分布見(jiàn)表2-4。表2-4特殊功能寄存器中各個(gè)寄存器的地址分布從表2-4中可以看

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論