NEC單片機(jī)教程_第1頁(yè)
NEC單片機(jī)教程_第2頁(yè)
NEC單片機(jī)教程_第3頁(yè)
NEC單片機(jī)教程_第4頁(yè)
NEC單片機(jī)教程_第5頁(yè)
已閱讀5頁(yè),還剩197頁(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 -第1章 微型計(jì)算機(jī)基礎(chǔ)- 1 -1.1 概述- 1 -1.2 微型計(jì)算機(jī)- 2 -1.3 存儲(chǔ)器- 5 -1.4 輸入/輸出接口電路- 7 -1.5 單片機(jī)概述- 10 -第2章 單片機(jī)入門(mén)知識(shí)- 16 -2.1 堆棧- 16 -2.2 中斷- 18 -2.3 A/D轉(zhuǎn)換器- 21 -2.4 DMA- 24 -2.5 串行通信基礎(chǔ)- 26 -第3章 指令系統(tǒng)與程序設(shè)計(jì)- 30 -3.1 寄存器- 30 -3.2 尋址方式- 34 -3.3 指令集- 43 -3.4 指令說(shuō)明- 55 -3.5 程序設(shè)計(jì)概述- 74 -第4章 NEC單片機(jī)的硬件結(jié)構(gòu)- 83 -4.1 NEC

2、單片機(jī)的總體結(jié)構(gòu)- 83 -4.2 NEC單片機(jī)存儲(chǔ)器- 86 -4.3 NEC單片機(jī)的引腳- 95 -4.4 NEC單片機(jī)的復(fù)位和復(fù)位電路- 106 -第5章 NEC單片機(jī)的定時(shí)器- 110 -5.1 8位定時(shí)器/事件計(jì)數(shù)器50的功能- 110 -5.2 8位定時(shí)器/事件計(jì)數(shù)器50的硬件- 110 -5.3 控制8位定時(shí)器/事件計(jì)數(shù)器50的寄存器- 111 -5.4 8位定時(shí)器/事件計(jì)數(shù)器50和51的應(yīng)用- 113 -5.5 其他定時(shí)器- 120 -第6章 NEC單片機(jī)的A/D轉(zhuǎn)換器- 128 -6.1 A/D轉(zhuǎn)換器的功能- 128 -6.2 A/D轉(zhuǎn)換器的配置- 130 -6.3 A/D轉(zhuǎn)

3、換器使用的寄存器- 131 -6.4 A/D轉(zhuǎn)換器的操作- 135 -第7章 NEC單片機(jī)的中斷功能- 138 -7.1 中斷功能的類(lèi)型- 138 -7.2 中斷源及配置- 138 -7.3 控制中斷功能寄存器- 141 -7.4 中斷服務(wù)操作- 145 -第8章 NEC單片機(jī)的串行接口和串行通信- 149 -8.1 串行接口CSIA0- 149 -8.2 串行接口UART0- 161 -8.3 串行接口IIC0- 168 -6. 將數(shù)據(jù)55H存放在24C16中,試編寫(xiě)程序?qū)⒋娣旁?4C16中的數(shù)據(jù)通過(guò)數(shù)碼管顯示出來(lái)。第9章 綜合應(yīng)用舉例- 184 -第9章 綜合應(yīng)用舉例- 185 -9.1

4、模擬汽車(chē)儀表- 185 -9.2 直流電機(jī)驅(qū)動(dòng)與測(cè)速- 194 -參考文獻(xiàn)- 203 -第1章 微型計(jì)算機(jī)基礎(chǔ)1.1 概述 計(jì)算機(jī)的特點(diǎn)計(jì)算機(jī)的工作原理與人腦的思維方式顯然是迥然有異的。計(jì)算機(jī)具有精確的記憶能力和機(jī)械而嚴(yán)謹(jǐn)?shù)墓ぷ鞣绞健T谠S多領(lǐng)域,計(jì)算機(jī)比人做得更好,比如進(jìn)行復(fù)雜的數(shù)值計(jì)算,或者對(duì)大規(guī)模的表數(shù)據(jù)排序等,計(jì)算機(jī)的處理速度遠(yuǎn)比人快得多,得到的結(jié)果也要更精確??傮w來(lái)說(shuō),計(jì)算機(jī)的特點(diǎn)可以概述為:(1) 運(yùn)算速度快(2) 計(jì)算精度高(3) 有記憶特性,存儲(chǔ)容量大(4) 有邏輯判斷能力(5) 計(jì)算機(jī)內(nèi)部自動(dòng)化操作(6) 通用性強(qiáng)自從1946年美國(guó)賓西法尼亞大學(xué)研制了第一臺(tái)計(jì)算機(jī)ENIAC(E

5、lectronic Numerical Integrator And Computer)以來(lái),計(jì)算機(jī)的發(fā)展經(jīng)歷了四個(gè)時(shí)代:電子管時(shí)代、晶體管時(shí)代、集成電路時(shí)代、大規(guī)模及超大規(guī)模集成電路時(shí)代?,F(xiàn)代的計(jì)算機(jī)都是大規(guī)模集成電路計(jì)算機(jī),具有功能強(qiáng)、結(jié)構(gòu)緊湊、系統(tǒng)可靠等優(yōu)點(diǎn),其發(fā)展方向是巨型化、微型化、網(wǎng)絡(luò)化及智能化。 計(jì)算機(jī)的基本結(jié)構(gòu)從功能角度上,各種計(jì)算機(jī)系統(tǒng)的硬件系統(tǒng)都是由五個(gè)基本部分構(gòu)成的,分別是:運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備。如圖1.1.1所示:圖1.1.1 計(jì)算機(jī)結(jié)構(gòu)圖1.2 微型計(jì)算機(jī)1.2.1 微型計(jì)算機(jī)系統(tǒng)的三個(gè)層次微處理器、微型計(jì)算機(jī)、微型計(jì)算機(jī)系統(tǒng)是三個(gè)不同的概念:1

6、 微處理器微處理器(Microprocessor)也叫微處理機(jī),它本身不是計(jì)算機(jī),但它是微型計(jì)算機(jī)的核心部件。微處理器包括算術(shù)邏輯部件ALU、控制部件和寄存器組三個(gè)基本部分,通常由一片或幾片LSI、VISI器件組成。2 微型計(jì)算機(jī)微型計(jì)算機(jī)(Micro Computer)是以微處理器為核心,加上由大規(guī)模集成電路制作的存儲(chǔ)器(ROM和RAM)、輸入/輸出(I/O)接口和系統(tǒng)總線組成的。有的微型計(jì)算機(jī)是將這些組成部分集成在一個(gè)超大規(guī)模芯片上,則稱(chēng)之為單片微型計(jì)算機(jī),簡(jiǎn)稱(chēng)單片機(jī)。3 微型計(jì)算機(jī)系統(tǒng)微型計(jì)算機(jī)系統(tǒng)(Micro Computer System)是以微型計(jì)算機(jī)為核心,再配以相應(yīng)的外圍設(shè)備、

7、電源、輔助電路和控制微型計(jì)算機(jī)工作的軟件而構(gòu)成的完整的計(jì)算機(jī)系統(tǒng)。軟件分為系統(tǒng)軟件和應(yīng)用軟件兩大類(lèi)。系統(tǒng)軟件是用來(lái)支持應(yīng)用軟件的開(kāi)發(fā)與運(yùn)行的。應(yīng)用軟件是用來(lái)為用戶解決具體應(yīng)用問(wèn)題的程序及有關(guān)的文檔和資料。1.2.2 微型計(jì)算機(jī)硬件任何一個(gè)微型機(jī)系統(tǒng)都是由硬件和軟件兩大部分組成的。而其中硬件又由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備五部分組成。1 微處理器微處理器是微型計(jì)算機(jī)的運(yùn)算和控制中心。不同型號(hào)的微型計(jì)算機(jī),其性能的差別首先在于其微處理器性能的不同。而微處理器性能又與它的內(nèi)部結(jié)構(gòu)、硬件配置有關(guān)。每種微處理器有其特有的指令系統(tǒng)。但無(wú)論哪種微處理器,其內(nèi)部基本結(jié)構(gòu)總是相同的,都有控制器、運(yùn)

8、算器和內(nèi)部總線及緩沖器三大部分,每部分又各由一些基本部件組成,各基本部件的功能如下:(1)算術(shù)邏輯單元(ALU,Arithmetic Logic Unit)ALU是運(yùn)算器的核心。它是以全加器為基礎(chǔ),輔之以移位寄存器及相應(yīng)控制邏輯組合而成的電路,在控制信號(hào)的作用下可完成加、減、乘、除四則運(yùn)算和各種邏輯運(yùn)算。(2)累加器是通用寄存器中的一個(gè)。它總是提供送入ALU的兩個(gè)運(yùn)算操作數(shù)之一,且運(yùn)算后的結(jié)果又總是送回它之中。(3)標(biāo)志寄存器(FR,F(xiàn)lags Register)FR用于寄存ALU操作結(jié)果的某些重要狀態(tài)或特征,如是否溢出、是否為零、是否為負(fù)、是否有進(jìn)位、是否有偶數(shù)個(gè)“1”等。每種狀態(tài)或特征用一

9、位標(biāo)志。由于ALU的操作結(jié)果存放在累加器A中,因而FR也反映了累加器A中所存放數(shù)據(jù)的特征。FR中的狀態(tài)標(biāo)志常為CPU執(zhí)行后續(xù)指令時(shí)所用,例如根據(jù)某種狀態(tài)標(biāo)志來(lái)決定程序是順序執(zhí)行還是跳轉(zhuǎn)執(zhí)行。(4)寄存器組實(shí)際上是微處理器的內(nèi)部RAM,因受芯片面積和集成度所限,其容量(即寄存器數(shù)目)不可能很多。寄存器組可分為專(zhuān)用寄存器和通用寄存器。專(zhuān)用寄存器的作用是固定的。如堆棧指針SP、程序計(jì)數(shù)器PC、標(biāo)志寄存器FR即為專(zhuān)用寄存器。(5)堆棧和堆棧指針(SP,Stack Pointer)堆棧(Stack)是一組寄存器或存儲(chǔ)器中開(kāi)辟的一個(gè)特定區(qū)域。由內(nèi)部寄存器組構(gòu)成的堆棧叫硬件堆棧;由軟件開(kāi)辟的存儲(chǔ)器區(qū)域構(gòu)成的

10、堆棧叫軟件堆棧。目前絕大多數(shù)微型計(jì)算機(jī)中都是采用軟件堆棧。堆棧在計(jì)算機(jī)中是作為一種數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)暫存方式引入的。數(shù)據(jù)存入堆棧稱(chēng)為壓入(PUSH)操作;從堆棧取出數(shù)據(jù)稱(chēng)為彈出(POP)操作。堆棧的存取過(guò)程恰像貨物的堆放過(guò)程,是按“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)的方式進(jìn)行的。當(dāng)新的數(shù)據(jù)壓入堆棧時(shí),棧中原存數(shù)據(jù)不被破壞,而只改變棧頂位置;當(dāng)數(shù)據(jù)從堆棧彈出時(shí),彈出的是棧頂位置的數(shù)據(jù),彈出后自動(dòng)調(diào)整棧頂位置.即是說(shuō),數(shù)據(jù)無(wú)論壓入堆棧還是從堆棧彈出,總是在棧頂進(jìn)行。堆棧指針SP就是用來(lái)指示棧頂?shù)刂返募拇嫫?。SP的初值由程序員設(shè)定。一旦設(shè)定初值后,便意味著棧底在內(nèi)存儲(chǔ)器中的位置已經(jīng)確定,此

11、后SP的內(nèi)容即棧頂位置便由CPU自動(dòng)管理。一般說(shuō)來(lái),對(duì)于棧底地址高、棧頂?shù)刂返偷南蛳略鲩L(zhǎng)型堆棧,將新數(shù)據(jù)壓入其中時(shí),每壓入一個(gè)字節(jié),SP自動(dòng)減1,向上浮動(dòng)而指向新的棧頂;當(dāng)數(shù)據(jù)從棧中彈出時(shí),每彈出一個(gè)字節(jié),SP自動(dòng)加1,向下浮動(dòng)而指向新的棧頂。反之,對(duì)于棧底地址低、棧頂?shù)刂犯叩南蛏显鲩L(zhǎng)型堆棧,隨著數(shù)據(jù)的壓入或彈出,指針SP的浮動(dòng)方向則正好與上相反。堆棧主要用于中斷處理與過(guò)程(子程序)調(diào)用。堆棧的“先進(jìn)后出”操作方式給中斷處理和子程序調(diào)用/返回(特別是多重中斷與多重調(diào)用)帶來(lái)很大方便。(6)程序計(jì)數(shù)器(PC,Program Counter)PC用于存放下一條要執(zhí)行的指令的地址碼。程序中的各條指令

12、一般是按執(zhí)行的順序存放在存儲(chǔ)器中的。開(kāi)始時(shí),PC中的地址碼為該程序第一條指令所在的地址編號(hào)。在順序執(zhí)行指令的情況下,每取出指令的一個(gè)字節(jié)(通常微處理器的指令長(zhǎng)度是不等的,有的只有一個(gè)字節(jié)、有的是兩個(gè)或更多個(gè)字節(jié)),PC的內(nèi)容自動(dòng)加1,于是當(dāng)從存儲(chǔ)器取完一條指令的所有字節(jié)時(shí),PC中存放的是下一條指令的首地址。若要改變程序的正常執(zhí)行順序,就必須把新的目標(biāo)地址裝入PC,這稱(chēng)為程序發(fā)生了轉(zhuǎn)移。指令系統(tǒng)中有一些指令用來(lái)控制程序的轉(zhuǎn)移,稱(chēng)為轉(zhuǎn)移指令??梢?jiàn),PC是維持微處理器有序地執(zhí)行程序的關(guān)鍵性寄存器,是任何微處理器不可缺少的。(7)指令寄存器(IR,Instruction Register),指令譯碼器

13、(ID,Instruction Decoder)和操作控制器(OC,Operation Controller)這三個(gè)部件是整個(gè)微處理器的指揮控制中心,對(duì)協(xié)調(diào)整個(gè)微型計(jì)算機(jī)有序工作極為重要。它根據(jù)用戶預(yù)先編好的程序,依次從存儲(chǔ)器中取出各條指令,放在指令寄存器IR中,通過(guò)指令譯碼(分析)確定應(yīng)該進(jìn)行什么操作,然后通過(guò)操作控制器OC,按確定的時(shí)序,向相應(yīng)的部件發(fā)出控制信號(hào)。操作控制器OC中主要包括有節(jié)拍脈沖發(fā)生器、控制矩陣、時(shí)鐘脈沖發(fā)生器、復(fù)位電路和啟停電路等控制邏輯。2 存儲(chǔ)器存儲(chǔ)器又叫內(nèi)存或主存,是微型計(jì)算機(jī)的存儲(chǔ)和記憶部件,用以存放數(shù)據(jù)(包括原始數(shù)據(jù)、中間結(jié)果和最終結(jié)果)和程序。微型機(jī)的內(nèi)存都

14、是半導(dǎo)體存儲(chǔ)器。(1)內(nèi)存單元的地址和內(nèi)容內(nèi)存中存放的數(shù)據(jù)和程序從形式上看都是二進(jìn)制數(shù)。內(nèi)存是由一個(gè)個(gè)內(nèi)存單元組成的,每一個(gè)內(nèi)存單元中一般存放一個(gè)字節(jié)(8位)的二進(jìn)制信息。內(nèi)存單元的總數(shù)目叫內(nèi)存容量。微型機(jī)通過(guò)給各個(gè)內(nèi)存單元規(guī)定不同地址來(lái)管理內(nèi)存。這樣,CPU便能識(shí)別不同的內(nèi)存單元,正確地對(duì)它們進(jìn)行操作;注意,內(nèi)存單元的地址和內(nèi)存單元的內(nèi)容是兩個(gè)完全不同的概念。(2)內(nèi)存操作CPU對(duì)內(nèi)存的操作有讀、寫(xiě)兩種。讀操作是CPU將內(nèi)存單元的內(nèi)容取入CPU內(nèi)部,而寫(xiě)操作是CPU將其內(nèi)部信息傳送到內(nèi)存單元保存起來(lái)。顯然,寫(xiě)操作的結(jié)果改變了被寫(xiě)單元的內(nèi)容,而讀操作則不改變被讀單元中原有內(nèi)容。(3)內(nèi)存分類(lèi)按

15、工作方式不同,內(nèi)存可分為兩大類(lèi):隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)和只讀存儲(chǔ)器(ROM,Read-Only Memory)。RAM可以被CPU隨機(jī)地讀和寫(xiě),所以又稱(chēng)為讀寫(xiě)存儲(chǔ)器,這種存儲(chǔ)器用于存放用戶裝入的程序、數(shù)據(jù)及部分系統(tǒng)信息。當(dāng)機(jī)器斷電后,所存信息消失。ROM中的信息只能被CPU隨機(jī)讀取,而不能由CPU任意寫(xiě)入。機(jī)器斷電,信息并不丟失。所以,這種存儲(chǔ)器主要用來(lái)存放那些固定不變、不需修改的程序和數(shù)據(jù),如:監(jiān)控程序、基本I/O程序等標(biāo)準(zhǔn)子程序和有關(guān)計(jì)算機(jī)硬件的數(shù)據(jù)。3 輸入輸出(I/O)設(shè)備的接口I/O設(shè)備是微型計(jì)算機(jī)系統(tǒng)的重要組成部分,微型機(jī)通過(guò)它與外部交換

16、信息,完成實(shí)際工作任務(wù)。與CPU相比,I/O設(shè)備的工作速度較低,處理的信息從數(shù)據(jù)格式到邏輯時(shí)序一般不可能直接兼容。鑒于此,微型計(jì)算機(jī)與I/O設(shè)備間的連接與信息交換不能直接進(jìn)行,而必須設(shè)計(jì)一個(gè)“接口電路”作為兩者之間的橋梁。這種I/O接口電路又叫“I/O適配器”。4 總線總線實(shí)際上是一組導(dǎo)線,是各種公共信號(hào)線的集合,用于作為微型計(jì)算機(jī)中所有各組成部分傳輸信息共同使用的“公路”。微型計(jì)算機(jī)有三種總線,它們是:(1)數(shù)據(jù)總線(DB,Data Bus)數(shù)據(jù)總線用來(lái)傳輸數(shù)據(jù)信息,是雙向總線,CPU既可通過(guò)DB從內(nèi)存或輸入設(shè)備讀入數(shù)據(jù),又可通過(guò)DB將內(nèi)部數(shù)據(jù)送至內(nèi)存或輸出設(shè)備。(2)地址總線(AB,Add

17、ress Bus)地址總線用于傳送CPU發(fā)出的地址信息,是單向總線。目的是指明與CPU交換信息的內(nèi)存單元或I/O設(shè)備。(3)控制總線(CB,Control Bus)控制總線用來(lái)傳送控制信號(hào)、時(shí)序信號(hào)和狀態(tài)信息等。其中有的是CPU向內(nèi)存和外設(shè)發(fā)出的信息,有的則是內(nèi)存或外設(shè)向CPU發(fā)出的信息??梢?jiàn),CB中每一根線的方向是一定的、單向的,但作為一個(gè)整體則是雙向的,所以在各種結(jié)構(gòu)框中,凡涉及到控制總線CB, 均以雙向線表示。1.3 存儲(chǔ)器存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)中的記憶設(shè)備,用來(lái)存放程序和數(shù)據(jù)。隨著計(jì)算機(jī)發(fā)展,存儲(chǔ)器在系統(tǒng)中的地位越來(lái)越重要。1.3.1 存儲(chǔ)器的分類(lèi)存儲(chǔ)器可以按不同的方法進(jìn)行分類(lèi)。1 按用途

18、分類(lèi)按存儲(chǔ)器的用途,可以把存儲(chǔ)器分為內(nèi)部存儲(chǔ)器和外部存儲(chǔ)器。(1)內(nèi)部存儲(chǔ)器內(nèi)部存儲(chǔ)器也稱(chēng)為內(nèi)存,是主存儲(chǔ)器,位于計(jì)算機(jī)主機(jī)的內(nèi)部,它是計(jì)算機(jī)存放信息的場(chǎng)所,而在各種不同類(lèi)型的存儲(chǔ)器中,內(nèi)部存儲(chǔ)器(內(nèi)存)又是最重要的部分。因?yàn)椋?jì)算機(jī)當(dāng)前正在執(zhí)行的程序和處理的數(shù)據(jù)都存放在內(nèi)存中,任何程序如果要在計(jì)算機(jī)中執(zhí)行,則首先必須將其調(diào)入內(nèi)存才能被CPU執(zhí)行。一般來(lái)說(shuō),容量越大,速度越快的存儲(chǔ)器就能給計(jì)算機(jī)帶來(lái)越高的性能。(2)外部存儲(chǔ)器外部存儲(chǔ)器也稱(chēng)為外存,是輔助存儲(chǔ)器。外存的特點(diǎn)是大容量,所存儲(chǔ)的信息既可以修改,也可以保存,存取速度較慢,要由專(zhuān)用的設(shè)備來(lái)管理,如磁帶、磁盤(pán)、光盤(pán)等。磁帶、磁盤(pán)的數(shù)量可隨

19、意增加,從這個(gè)意義上說(shuō),外存儲(chǔ)器的容量是無(wú)限的。但外存的工作速度低,它們不能直接參與計(jì)算機(jī)的運(yùn)算,一般情況下外存只與內(nèi)存成批交換信息。即外存儲(chǔ)器僅起到擴(kuò)大計(jì)算機(jī)存儲(chǔ)容量的作用。2.按存儲(chǔ)器性質(zhì)分類(lèi)內(nèi)存按存儲(chǔ)器性質(zhì)分類(lèi)通常分為隨機(jī)存取存儲(chǔ)器RAM(Random Access Memory )和只讀存儲(chǔ)器ROM(Read Only Memory)兩類(lèi)。(1)隨機(jī)存儲(chǔ)器RAM(Random Access Memory)RAM是一種可讀寫(xiě)存儲(chǔ)器,其特點(diǎn)是存儲(chǔ)器的任何一個(gè)存儲(chǔ)單元的內(nèi)容都可以隨機(jī)存取,而且存取時(shí)間與存儲(chǔ)單元的物理位置無(wú)關(guān)。計(jì)算機(jī)系統(tǒng)中的主存都采用這種隨機(jī)存儲(chǔ)器。由于存儲(chǔ)信息原理的不同,R

20、AM又分為靜態(tài)RAM(以觸發(fā)器原理寄存信息)和動(dòng)態(tài)RAM(以電容充放電原理寄存信息)。(2)只讀存儲(chǔ)器ROM(Read Only Memory)只讀存儲(chǔ)器是能對(duì)其存儲(chǔ)的內(nèi)容讀出,而不能對(duì)其重新寫(xiě)入的存儲(chǔ)器。這種存儲(chǔ)器一旦存入了原始信息后,在程序執(zhí)行過(guò)程中,只能將內(nèi)部信息讀出,而不能隨意重新寫(xiě)入新的信息去改變?cè)夹畔?。因此,通常用它存放固定不變的程序、常?shù)以及漢字字庫(kù),甚至用于操作系統(tǒng)的固化。它與隨機(jī)存儲(chǔ)器可共同作為主存的一部分,統(tǒng)一構(gòu)成主存的地址域。早期只讀存儲(chǔ)器的存儲(chǔ)內(nèi)容根據(jù)用戶要求,廠家采用掩膜工藝,把原始信息記錄在芯片中,一旦制成后無(wú)法更改,叫做掩膜型只讀存儲(chǔ)器MROM(Masked R

21、OM)。隨著半導(dǎo)體技術(shù)的發(fā)展和用戶需求的變化,只讀存儲(chǔ)器先后派生出可編程只讀存儲(chǔ)器PROM(Programmable ROM)、可擦除可編程只讀存儲(chǔ)器EPROM(Erasable Programmable ROM)以及用電可擦除可編程的只讀存儲(chǔ)器EEPROM(Electrically Erasable Programmable ROM)。EEPROM即電可擦除可編程只讀存儲(chǔ)器,它的突出優(yōu)點(diǎn)是在線擦除和改寫(xiě)。它既具有ROM的非易失性的優(yōu)點(diǎn),又能像RAM一樣隨機(jī)的讀寫(xiě)。在單片機(jī)系統(tǒng)中EEPROM既可以擴(kuò)展為片外ROM,又可以擴(kuò)展為片外RAM。近年來(lái)還出現(xiàn)了快擦型存儲(chǔ)器Flash Memory。Fl

22、ash Memory的主要特點(diǎn)是在不加電的情況下能長(zhǎng)期保持存儲(chǔ)的信息。就其本質(zhì)而言,F(xiàn)lash Memory屬于EEPROM(電擦除可程序設(shè)計(jì)只讀存儲(chǔ)器)類(lèi)型。它既有ROM的特點(diǎn),又有很高的訪問(wèn)速度,而且易于擦除和重寫(xiě),功耗很小。調(diào)試程序中用EEPROM代替仿真RAM既能方便的修改程序,又能保存調(diào)好的程序,但是與RAM相比EEPROM寫(xiě)操作的速度很慢,另外它的壽命也是有限的。 而FLASH存儲(chǔ)器是在EPROM工藝的基礎(chǔ)上,增加了芯片的電擦除和再編程功能且速度快,從而使它成為性價(jià)比和可靠性最高的可讀寫(xiě),非易失存儲(chǔ)器,與EEPROM相比,F(xiàn)LASH具有密度大,價(jià)格低,可靠性高的明顯優(yōu)勢(shì)。Flash

23、和EEPROM的區(qū)別還在于擦除和寫(xiě)入部分: EEPROM可以單字節(jié)擦除和單字節(jié)寫(xiě)入; FLASH部分芯片只能以塊方式擦除(整片擦除),部分芯片可以單字節(jié)寫(xiě)入(編程),一般需要采用塊寫(xiě)入方式。NEC單片機(jī)都使用了可靠的flash存儲(chǔ)器。1.4 輸入/輸出接口電路1.4.1 概述微型計(jì)算機(jī)與外部設(shè)備之間的數(shù)據(jù)傳送稱(chēng)為輸入輸出(I/O)。實(shí)現(xiàn)輸入/輸出接口既需要有把外圍設(shè)備與計(jì)算機(jī)連接起來(lái)的硬件電路輸入/輸出接口電路,又需要編制控制輸入/輸出接口電路的工作的程序。1 輸入輸出接口電路的功能輸入/輸出接口電路的種類(lèi)很多,某些通用集成電路芯片可以用做I/O接口,但更大量的是專(zhuān)門(mén)為計(jì)算機(jī)設(shè)計(jì)的I/O接口電

24、路芯片。一般來(lái)說(shuō),I/O接口電路有以下功能:(1)設(shè)備選擇功能CPU通過(guò)地址代碼來(lái)標(biāo)識(shí)和選擇不同的外部設(shè)備,接口對(duì)系統(tǒng)總線上傳輸?shù)耐庠O(shè)地址進(jìn)行譯碼,在檢測(cè)到本設(shè)備地址代碼時(shí),產(chǎn)生相應(yīng)的“選中”信號(hào)。(2)信息傳輸功能當(dāng)設(shè)備被“選中”時(shí)可以從CPU/數(shù)據(jù)總線接收數(shù)據(jù)或控制信息;外部設(shè)備的數(shù)據(jù)或狀態(tài)信息也可通過(guò)I/O發(fā)往數(shù)據(jù)總線/CPU;(3)數(shù)據(jù)格式轉(zhuǎn)換功能外設(shè)使用的數(shù)據(jù)格式與CPU數(shù)據(jù)格式不同時(shí),接口要進(jìn)行二種數(shù)據(jù)格式之間的相互轉(zhuǎn)換。(4)聯(lián)絡(luò)功能從系統(tǒng)總線或外設(shè)接收一個(gè)數(shù)據(jù)后,接口發(fā)出“數(shù)據(jù)到”聯(lián)絡(luò)信號(hào),通知外設(shè)或CPU取走數(shù)據(jù),數(shù)據(jù)傳輸完成,向?qū)Ψ桨l(fā)出信號(hào),準(zhǔn)備進(jìn)行下次傳輸。(5)復(fù)位功能

25、接口在接收系統(tǒng)的復(fù)位信號(hào)后,將接口電路及其所連接的外部設(shè)備置成初始狀態(tài)。(6) 可編程功能 有些接口具有可編程特性,可以用指令來(lái)設(shè)定接口的工作方式、工作參數(shù)和信號(hào)的極性。(7)錯(cuò)誤檢測(cè)功能 信號(hào)在線路上傳輸時(shí),如果遇到干擾信號(hào),可能發(fā)生傳輸錯(cuò)誤。檢測(cè)傳輸錯(cuò)誤的常見(jiàn)方法是奇偶檢驗(yàn)。 數(shù)據(jù)傳輸中的覆蓋錯(cuò)誤輸入設(shè)備完成一次輸入操作后,把所獲得的數(shù)據(jù)暫存在接口內(nèi)如果在該設(shè)備完成下一次輸入操作之后,CPU還沒(méi)有從接口取走數(shù)據(jù),那么,在新的數(shù)據(jù)送入接口后,上一次的數(shù)據(jù)被覆蓋,從而導(dǎo)致數(shù)據(jù)的丟失,輸出操作中也可能產(chǎn)生類(lèi)似的錯(cuò)誤,覆蓋錯(cuò)誤導(dǎo)致數(shù)據(jù)的丟失,易發(fā)生在高速數(shù)據(jù)傳輸?shù)膱?chǎng)合2 端口地址如前所述,微型計(jì)算

26、機(jī)是通過(guò)I/O接口電路與外圍設(shè)備相連的,CPU只有通過(guò)I/O接口電路才能向外圍設(shè)備傳送信息,因此,只要選中I/O接口電路就能找到相應(yīng)的外圍設(shè)備。從這個(gè)意義上講,應(yīng)該對(duì)I/O接口電路編址,即對(duì)I/O接口電路的端口編址,因?yàn)檫x中了端口就選中了端口所在的I/O接口電路,從而選中了對(duì)應(yīng)的外圍設(shè)備,而且采用端口編址的方法可以區(qū)分同一外圍設(shè)備的3種不同信息。 端口有以下兩種編址方法。(1)存儲(chǔ)器單元與接口電路端口統(tǒng)一編址。所謂統(tǒng)一編址,就是將每一個(gè)端口作為存儲(chǔ)器的一個(gè)單元對(duì)待,故一個(gè)端口占有存儲(chǔ)器一個(gè)單元的地址。CPU從I/O接口電路輸入個(gè)數(shù)據(jù),作為一次存儲(chǔ)器讀的操作,而向I/O 接口電路輸出一個(gè)數(shù)據(jù),作

27、為次存儲(chǔ)器寫(xiě)的操作。這種方法的優(yōu)點(diǎn)是:對(duì)外圍設(shè)備的操作可使用全部有關(guān)存儲(chǔ)器的指令,因而指令多,編程方便,并可對(duì)接口電路中的數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算,降低CPU電路的復(fù)雜性。缺點(diǎn)是接口電路占用了存儲(chǔ)器的單元地址,減少了內(nèi)存空間并且難以區(qū)分訪問(wèn)內(nèi)存和I/O的指令,降低了程序的可讀性和可維護(hù)性。(2)存儲(chǔ)器單元與接口電路端口分別編址。在這種編址方式中,存儲(chǔ)器單元與接口電路端口各自獨(dú)立編址。這樣,某個(gè)地址可能是指存儲(chǔ)器某個(gè)單元,也可能是指某一個(gè)端口。因此,要用不同的指令來(lái)區(qū)分存儲(chǔ)器與接口電路。存儲(chǔ)器的容量很大,地址的位數(shù)多,而端口的數(shù)量有限,所需的地址位數(shù)不多。使用分別編址的方法,存儲(chǔ)器地址和端口地

28、址采用的位數(shù)可以不同,訪問(wèn)I/O電路指令的字節(jié)數(shù)可以減少,也提高了此類(lèi)指令的執(zhí)行速度。1.4.2 數(shù)據(jù)傳送方式雖然外圍設(shè)備的種類(lèi)繁多,但歸納起來(lái),傳送數(shù)據(jù)的方式共有4種:無(wú)條件傳送方式、查詢傳送方式、中斷傳送方式和直接數(shù)據(jù)傳送方式。1 無(wú)條件傳送方式無(wú)條件傳送方式也叫程序直接控制方式,就是由用戶進(jìn)程來(lái)直接控制內(nèi)存或CPU和外圍設(shè)備之間的數(shù)據(jù)傳送。它的優(yōu)點(diǎn)是控制簡(jiǎn)單,也不需要多少硬件支持。它的缺點(diǎn)是CPU和外圍設(shè)備只能串行工作,設(shè)備之間只能串行工作,無(wú)法發(fā)現(xiàn)和處理由于設(shè)備或其他硬件所產(chǎn)生的錯(cuò)誤。 2 查詢傳送方式許多外圍設(shè)備與CPU在速度上存在差異,同樣傳送一個(gè)數(shù)據(jù),CPU要快得多。于是,CPU

29、要讀取數(shù)據(jù)但可能未準(zhǔn)備好,CPU要輸出數(shù)據(jù)外設(shè)也不一定能夠接收,所以CPU在傳送數(shù)據(jù)前要先詢問(wèn)外設(shè)狀態(tài),僅當(dāng)外設(shè)準(zhǔn)備好了才傳送,否則CPU就等待。這種數(shù)據(jù)傳送方式稱(chēng)為查詢工作方式,如圖1.4.1所示。去CPU數(shù)據(jù)狀態(tài)控制外設(shè)I/O接口接口輸入狀態(tài)信息數(shù)據(jù)準(zhǔn)備好輸入數(shù)據(jù)NY圖1.4.1 用查詢方式輸入數(shù)據(jù)例如,逐次逼近式A/D轉(zhuǎn)換器與計(jì)算機(jī)接口,該轉(zhuǎn)換器轉(zhuǎn)換一次信息約需幾十微秒。CPU首先通過(guò)I/O接口電路輸出控制命令以啟動(dòng)A/D轉(zhuǎn)換,然后準(zhǔn)備輸入轉(zhuǎn)換結(jié)果。結(jié)果輸入前,先要詢問(wèn)轉(zhuǎn)換結(jié)束信號(hào)(狀態(tài)信息)是否出現(xiàn),以判斷A/D轉(zhuǎn)換是否準(zhǔn)備好了數(shù)據(jù)。若尚未準(zhǔn)備好,CPU將等待和反復(fù)詢問(wèn)。如果己轉(zhuǎn)換好,

30、CPU就執(zhí)行輸入指令輸入個(gè)數(shù)據(jù),然后再輸出命令,啟動(dòng)A/D轉(zhuǎn)換器,準(zhǔn)備下個(gè)數(shù)據(jù)。用查詢方式輸入數(shù)據(jù)時(shí),在接口電路與外設(shè)間要交換數(shù)據(jù)信息、狀態(tài)信息、和控制信息。查詢方式的缺點(diǎn)是CPU的利用受到影響,陷于等待和反復(fù)查詢,不能再進(jìn)行其他操作;而且,這種方法不能處理掉電、設(shè)備故障等突發(fā)事件。3 中斷傳送方式中斷傳送方式是利用向CPU發(fā)送中斷的方式控制外圍設(shè)備和CPU之間的數(shù)據(jù)傳送。中斷傳送方式是計(jì)算機(jī)最常用的數(shù)據(jù)傳送方式。除了傳送數(shù)據(jù),計(jì)算機(jī)進(jìn)行實(shí)時(shí)控制、故障自動(dòng)處理、實(shí)現(xiàn)人機(jī)聯(lián)系也多采用中斷方式。圖1.4.2是計(jì)算機(jī)采用中斷方式與外設(shè)間傳送數(shù)據(jù)過(guò)程的示意圖。繼續(xù)執(zhí)行主程序中斷請(qǐng)求中斷請(qǐng)求中斷服務(wù)程序

31、斷點(diǎn)執(zhí)行主程序執(zhí)行中斷服務(wù)程序圖1.4.2 中斷過(guò)程示意圖CPU啟動(dòng)外設(shè)后不再詢問(wèn)它的狀態(tài),依然執(zhí)行自己的操作(主程序),即CPU與外設(shè)平行操作。外設(shè)完成操作后發(fā)出狀態(tài)信息,經(jīng)I/O接口電路轉(zhuǎn)換成中斷請(qǐng)求信號(hào),向CPU申請(qǐng)中斷,要求CPU暫時(shí)中斷自己的主程序,轉(zhuǎn)入中斷服務(wù)程序?yàn)橥庠O(shè)服務(wù)。在中斷服務(wù)程序中CPU執(zhí)行自外設(shè)輸入或輸出數(shù)據(jù)的操作,并在完成后再次啟動(dòng)外設(shè),然后返回主程序繼續(xù)執(zhí)行原來(lái)被中斷了的工作。利用中斷技術(shù)管理外設(shè)后,CPU從反復(fù)詢問(wèn)外設(shè)狀態(tài)中解放出來(lái),提高了工作效率。而且,可以同時(shí)為多個(gè)外設(shè)服務(wù)。利用中斷技術(shù)后,現(xiàn)場(chǎng)的參數(shù)、信息在需要處理時(shí),可隨時(shí)向CPU發(fā)中斷請(qǐng)求信號(hào),以便及時(shí)響

32、應(yīng),及時(shí)處理,實(shí)現(xiàn)實(shí)時(shí)控制。中斷傳送方式的優(yōu)點(diǎn)是大大提高了CPU的利用率且能支持多道程序和設(shè)備的并行操作。它的缺點(diǎn)是由于數(shù)據(jù)緩沖寄存器比較小,如果中斷次數(shù)較多,仍然占用了大量CPU時(shí)間;在外圍設(shè)備較多時(shí),由于中斷次數(shù)的急劇增加,可能造成CPU無(wú)法響應(yīng)中斷而出現(xiàn)中斷丟失的現(xiàn)象;如果外圍設(shè)備速度比較快,可能會(huì)出現(xiàn) CPU來(lái)不及從數(shù)據(jù)緩沖寄存器中取走數(shù)據(jù)而丟失數(shù)據(jù)的情況。4 直接數(shù)據(jù)傳送方式直接數(shù)據(jù)傳送方式(DMA方式)是在外圍設(shè)備和內(nèi)存之間開(kāi)辟直接的數(shù)據(jù)交換通路進(jìn)行數(shù)據(jù)傳送。高速度的外圍設(shè)備與計(jì)算機(jī)間傳送大批量數(shù)據(jù)時(shí)常采用這種方式。傳送時(shí)令CPU交出總線的控制權(quán),改由DMA控制器進(jìn)行控制,使外設(shè)與

33、內(nèi)存利用總線直接交換數(shù)據(jù),不經(jīng)過(guò)CPU中轉(zhuǎn),也不通過(guò)中斷程序,即不需要保存、恢復(fù)斷點(diǎn)和現(xiàn)場(chǎng),所以傳送數(shù)據(jù)的速度比中斷方式快。1.5 單片機(jī)概述單片機(jī)技術(shù)已發(fā)展成為計(jì)算機(jī)領(lǐng)域一個(gè)非常有的途的分支,它有自己的技術(shù)特征、規(guī)范和應(yīng)用頓域,單片機(jī)是自動(dòng)控制系統(tǒng)的核心部件,主要用于工業(yè)控制、智能化儀器儀表、家用電器中。它具有體積小、性能突出(某些方面的性能指標(biāo)大大優(yōu)于通用微機(jī)中央處理器)、價(jià)格低廉等特點(diǎn),應(yīng)用領(lǐng)域不斷擴(kuò)大,除了工業(yè)控制、智能化儀表、通信、家用電器外,在智能化高檔電子玩具產(chǎn)品中也大量采用單片機(jī)芯片作為核心控制部件。 1.5.1 單片機(jī)的特點(diǎn)及應(yīng)用在通用微機(jī)中央處理器基礎(chǔ)上,將輸入/輸出(I/

34、O)接口電路、時(shí)鐘電路以及一定容量的存儲(chǔ)器等部件集成在同一芯片上,再加上必要的外圍器件,如晶體振蕩器,就構(gòu)成了一個(gè)較為完整的計(jì)算機(jī)硬件系統(tǒng)。由于這類(lèi)計(jì)算機(jī)系統(tǒng)的基本部件均集成在同一芯片內(nèi),因此被稱(chēng)為單片微控制器(Single-Chip-Micro Controller,簡(jiǎn)稱(chēng)單片機(jī))或微控制單元(MicroControllerUnit,簡(jiǎn)稱(chēng)MCU)。對(duì)于通用微處理器來(lái)說(shuō),其主要任務(wù)是數(shù)值計(jì)算和信息處理,對(duì)運(yùn)算速度和存儲(chǔ)容量方面的要求是速度越快越好,容量越大越好,因此它沿著高速、大容量方向發(fā)展:字長(zhǎng)由8位、16位,迅速向32位、64位過(guò)渡,時(shí)鐘信號(hào)的頻率由最初的477MHz向33MHz、66MHz

35、、100MHz、200MHz、400MHz、600MHz、1GHz、2GHz,甚至更高頻率過(guò)渡。而單片機(jī)主要面向工業(yè)控制,8位字長(zhǎng)已足夠(在工業(yè)控制中,一般僅需要控制線路的通、斷,觸點(diǎn)的吸合與釋放,有時(shí)4位單片機(jī)也能勝任),盡管也有16位、32位的單片機(jī)芯片,但這些高檔單片機(jī)芯片主要用于語(yǔ)音、圖像處理系統(tǒng)。1 單片機(jī)的特點(diǎn)單片機(jī)芯片作為控制系統(tǒng)的核心部件,它除了具備通用微機(jī)CPU的數(shù)值計(jì)算功能外,還必須具有靈活、強(qiáng)大的控制功能,以便實(shí)時(shí)監(jiān)測(cè)系統(tǒng)的輸入量、控制系統(tǒng)的輸出量,實(shí)現(xiàn)自動(dòng)控制。由于單片機(jī)主要面向工業(yè)控制,工作環(huán)境比較惡劣,如高溫、強(qiáng)電磁干擾,甚至含有腐蝕性氣體,因而單片機(jī)控制系統(tǒng)還必須

36、具有抗輻射能力。單片機(jī)CPU與通用微機(jī)CPU相比,具有以下特點(diǎn):(1)抗干擾性強(qiáng),工作溫度范圍寬。通用微機(jī)CPU一般要求在室溫下工作,抗干擾能力較低。(2)可靠性高。在工業(yè)控制中,任伺差錯(cuò)都有可能造成極其嚴(yán)重的后果。(3)控制功能很強(qiáng),數(shù)值計(jì)算能力較差。而通用微機(jī)CPU具有很強(qiáng)的數(shù)值運(yùn)算能力,但控制能力相對(duì)較弱,將通用微機(jī)用于工業(yè)控制時(shí),一般需要增加一些專(zhuān)用的接口電路。(4)指令系統(tǒng)比通用微機(jī)系統(tǒng)簡(jiǎn)單。(5)更新?lián)Q代速度比通用微機(jī)處理器慢得多。2 單片機(jī)的應(yīng)用目前單片機(jī)的應(yīng)用已深入到國(guó)民經(jīng)濟(jì)的各個(gè)領(lǐng)域,對(duì)各個(gè)行業(yè)的技術(shù)改造和產(chǎn)品的更新?lián)Q代起著重要的推動(dòng)作用,其應(yīng)用領(lǐng)域主要有智能儀器儀表、機(jī)電一

37、體化、實(shí)時(shí)控制、民用電子產(chǎn)品及國(guó)防工業(yè)等。 (1)單片機(jī)在智能儀表中的應(yīng)用單片機(jī)廣泛地應(yīng)用于實(shí)驗(yàn)室、交通運(yùn)輸工具、計(jì)量等各種儀器儀表之中,可使儀器儀表智能化,提高了它們的測(cè)量精度,加強(qiáng)了它們的功能,簡(jiǎn)化了它們的結(jié)構(gòu),便于使用、維護(hù)和改進(jìn)。例如:電度表校驗(yàn)儀,電阻、電容、電感測(cè)量?jī)x,船舶航行狀態(tài)記錄儀,煙葉水分測(cè)試器,智能超聲波測(cè)厚儀等。單片機(jī)在智能儀表中的應(yīng)用,不僅使傳統(tǒng)的儀器儀表發(fā)生了根本性變革,也促進(jìn)了儀器儀表行業(yè)的發(fā)展。(2)單片機(jī)在機(jī)電一體化中的應(yīng)用機(jī)電一體化是機(jī)械工業(yè)發(fā)展的重要方向。機(jī)電一體化產(chǎn)品是指集機(jī)械技術(shù)、微電子技術(shù)、自動(dòng)化技術(shù)和計(jì)算機(jī)技術(shù)于體,具有智能化特征的機(jī)電產(chǎn)品。例如:

38、微機(jī)控制的數(shù)控機(jī)床等。單片機(jī)的出現(xiàn)促進(jìn)了機(jī)電體化的進(jìn)程,它作為機(jī)電產(chǎn)品中的控制器,能充分發(fā)揮它的體積小、可靠性高、控制功能強(qiáng)、安裝方便等優(yōu)點(diǎn),大大提升了機(jī)器的功能,提高了機(jī)器的自動(dòng)化、智能化的程度。(3)單片機(jī)在實(shí)時(shí)控制中的應(yīng)用單片機(jī)也可廣泛地應(yīng)用于各種實(shí)時(shí)控制系統(tǒng)中,如對(duì)工業(yè)上各種窯爐的溫度、酸度、化學(xué)成分的測(cè)量和控制,使系統(tǒng)工作于最佳狀態(tài),提高系統(tǒng)的生產(chǎn)效率和產(chǎn)品的質(zhì)量。在航空航天、通信、遙控、遙測(cè)、工業(yè)機(jī)器人控制等各種實(shí)時(shí)控制和實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)中都可以用單片機(jī)作為控制器。(4)在軍工領(lǐng)域的應(yīng)用利用單片機(jī)的可靠性高、適應(yīng)的溫度范圍寬、能適應(yīng)各種惡劣的環(huán)境的特點(diǎn)可廣泛應(yīng)用于導(dǎo)彈控制、智能武器

39、裝備、航天飛機(jī)導(dǎo)航系統(tǒng)等領(lǐng)域。(5)單片機(jī)在分布式多機(jī)系統(tǒng)中的應(yīng)用利用單片機(jī)可以構(gòu)成分布式多機(jī)系統(tǒng),系統(tǒng)中由若干臺(tái)單片機(jī)組成的功能各異的儀器設(shè)備各自完成特定的任務(wù),再通過(guò)通信相互聯(lián)系,協(xié)調(diào)完成整個(gè)任務(wù)。這使得系統(tǒng)可同時(shí)采集或處理的信息更多,單片機(jī)的應(yīng)用進(jìn)入了個(gè)新階段。(6)在民用電子產(chǎn)品中的應(yīng)用單片機(jī)在民用電子產(chǎn)品中的應(yīng)用,能明顯提高產(chǎn)品的性能價(jià)格比,提高產(chǎn)品在市場(chǎng)上的競(jìng)爭(zhēng)能力,受到了產(chǎn)品開(kāi)發(fā)商和用戶的雙重青睞。目前高檔的家用電器、電子玩具等幾乎都是由單片機(jī)來(lái)作為控制器的。單片機(jī)發(fā)展簡(jiǎn)史如果將8位單片機(jī)的推出作為起點(diǎn),那么單片機(jī)的發(fā)展經(jīng)歷了探索-完善-MCU化-百花齊放四個(gè)階段。1 芯片化探索

40、階段20世紀(jì)70年代,美國(guó)的Fairchild(仙童)公司首先推出了第一款單片機(jī)F-8,隨后Intel公司推出了影響面大、應(yīng)用更廣的MCS-48單片機(jī)系列。MCS-48單片機(jī)系列的推出標(biāo)志著在工業(yè)控制領(lǐng)域,進(jìn)入到智能化嵌入式應(yīng)用的芯片形態(tài)計(jì)算機(jī)的探索階段。參與這一探索階段的還有Motorola、Zilog和TI等大公司,它們都取得了滿意的探索效果,確立了在SCMS的嵌入式應(yīng)用中的地位。這就是Single Chip Microcomputer的誕生年代,單片機(jī)一詞即由此而來(lái)。這一時(shí)期的特點(diǎn)是:嵌入式計(jì)算機(jī)系統(tǒng)的芯片集成設(shè)計(jì);少資源、無(wú)軟件,只能保證基本控制功能。2 結(jié)構(gòu)體系的完善階段 在MCS-

41、48探索成功的基礎(chǔ)上很快推出了完善的、典型的單片機(jī)系列MCS-51。MCS51系列單片機(jī)的推出,標(biāo)志Single Chip Microcomputer體系結(jié)構(gòu)的完善。它在以下幾個(gè)方面奠定了典型的通用總線型單片機(jī)的體系結(jié)構(gòu)。(1) 完善的總線結(jié)構(gòu):并行總線:8位數(shù)據(jù)總線、16位地址總線及相應(yīng)的控制總線,兩個(gè)獨(dú)立的地址空間;串行總線:通行總線,擴(kuò)展總線。(2) 完善的指令系統(tǒng):具有很強(qiáng)的位處理功能和邏輯控制功能,以滿足工業(yè)控制等方面的需要;功能單元的SFR(特殊功能寄存區(qū))集中管理。(3) 完善的MCS-51成為SCMC的經(jīng)典體系結(jié)構(gòu)。日后,許多電氣商在MCS-51的內(nèi)核和體系結(jié)構(gòu)的基礎(chǔ)上,生產(chǎn)出

42、各具特色的單片機(jī)。3 從SCMC向MCU化過(guò)渡階段Intel公司推出的MCS-96單片機(jī),將一些用于測(cè)控系統(tǒng)的模數(shù)轉(zhuǎn)換器(ADC)、程序運(yùn)行監(jiān)視器(WDT)、脈寬調(diào)制器(PWM)、高速I(mǎi)/O口納入片中,體現(xiàn)了單片機(jī)的微控制器特征。MCS-51單片機(jī)系列向各大電氣商的廣泛擴(kuò)散,許多電氣商競(jìng)相使用80C51為核,將許多測(cè)控系統(tǒng)中使用的電路技術(shù)、接口技術(shù)、可靠性技術(shù)應(yīng)用到單片機(jī)中;隨著單片機(jī)內(nèi)外圍功能電路的增強(qiáng),強(qiáng)化了智能控制器特征。微控制器(Microcontrollers)成為單片機(jī)較為準(zhǔn)確表達(dá)的名詞。其特點(diǎn)是:(1)滿足嵌入式應(yīng)用要求的外圍擴(kuò)展,如WDT、PWM、ADC、DAC、高速I(mǎi)/O口等

43、。(2)眾多計(jì)算機(jī)外圍功能集成,如提供串行擴(kuò)展總線:SPI、I2C BUS、Microwire;配置現(xiàn)場(chǎng)總線接口:CAN BUS。(3)CMOS化,提供功耗管理功能。(4)提供OTP供應(yīng)狀態(tài),利于大規(guī)模和批量生產(chǎn)。4 MCU的百花齊放階段單片機(jī)發(fā)展到這一階段,表明單片機(jī)已成為工業(yè)控制領(lǐng)域中普遍采用的智能化控制工具小到玩具、家電行業(yè),大到車(chē)載、艦船電子系統(tǒng),遍及計(jì)量測(cè)試、工業(yè)過(guò)程控制、機(jī)械電子、金融電子、商用電子、辦公自動(dòng)化、工業(yè)機(jī)器人和航空航天領(lǐng)域。為滿足不同的要求,出現(xiàn)了高速、大尋址范圍、強(qiáng)運(yùn)算能力和多機(jī)通信能力的8位、16位、32位通用型單片機(jī),小型廉價(jià)型、外圍系統(tǒng)集成的專(zhuān)用型單片機(jī),以及

44、形形色色各具特色的現(xiàn)代單片機(jī)??梢哉f(shuō),單片機(jī)的發(fā)展進(jìn)入了百花齊放的時(shí)代,為用戶的選擇提供了空間。這一時(shí)期的特點(diǎn)為: (1)電氣商、半導(dǎo)體商的普遍介入 MCS-48的成功,刺激了許多半導(dǎo)體公司競(jìng)相研制和發(fā)展自己的單片機(jī)系列。到目前為止,世界各地廠商已相繼研制出大約50個(gè)系列300多個(gè)品種的單片機(jī)產(chǎn)品,其中較有代表性的有Motorola公司的6801、6802,Zilog公司的Z-8系列,Microchip公司的PIC系列等。此外,日本的NEC公司、日立公司也都推出了各自具有特色的單片機(jī)品種。(2)大力發(fā)展專(zhuān)用單片機(jī)通用型與專(zhuān)用型是按某一型號(hào)單片機(jī)適用范圍區(qū)分的。例如,80C51是通用型單片機(jī),它

45、并不是為某一種專(zhuān)門(mén)用途設(shè)計(jì)的單片機(jī);而專(zhuān)用型單片機(jī)是針對(duì)某一類(lèi)產(chǎn)品甚至某個(gè)產(chǎn)品需要而設(shè)計(jì)、生產(chǎn)的單片機(jī)。例如,來(lái)電顯示電話中配有液晶驅(qū)動(dòng)器接口的單片機(jī)和全自動(dòng)洗衣機(jī)中的微控制器,都是專(zhuān)用單片機(jī);特別是小家電、玩具領(lǐng)域的單片機(jī),因?yàn)樾》庋b、價(jià)格低廉,外圍器件、外設(shè)接口集成度高,多數(shù)為專(zhuān)用單片機(jī)。(3)提高綜合品質(zhì)在體系結(jié)構(gòu)(RISC)、電磁兼容性能(EMC)、開(kāi)發(fā)環(huán)境(高級(jí)語(yǔ)言支持ISP、IAP等)、功耗管理等諸方面得到了提高。 根據(jù)控制單元設(shè)計(jì)的方式與采用的技術(shù)不同,目前市場(chǎng)上的這些單片機(jī)可區(qū)分為兩大類(lèi)型:繁雜指令集結(jié)構(gòu)(CISC架構(gòu))和精簡(jiǎn)指令集結(jié)構(gòu)(RISC架構(gòu))。繁雜指令集結(jié)構(gòu)(CISC

46、)的特點(diǎn)是指令多,尋址方式豐富,較適合初學(xué)者系統(tǒng)學(xué)習(xí),如INTEL的80C51和80C196、MC68K;而精簡(jiǎn)指令集結(jié)構(gòu)(RISC)具有較少的指令與尋址模式,結(jié)構(gòu)簡(jiǎn)單,成本較低,執(zhí)行程序的速度較快,成為單片機(jī)的后起之秀,如PIC、EM78EM78XXX和Z86HCXX。 (1)第一階段(1976-1978):?jiǎn)纹瑱C(jī)的控索階段。以Intel公司的MCS - 48為代表。MCS-48的推出是在工控領(lǐng)域的控索,參與這一控索的公司還有Motorola 、Zilog等,都取得了滿意的效果。這就是SCM的誕生年代,“單機(jī)片”一詞即由此而來(lái)。 (2)第二階段(1978-1982)單片機(jī)的完善階段。Inte

47、l公司在MCS-48 基礎(chǔ)上推出了完善的、典型的單片機(jī)系列MCS-51。它在以下幾個(gè)方面奠定了典型的通用總線型單片機(jī)體系結(jié)構(gòu)。 a.完善的外部總線。MCS-51設(shè)置了經(jīng)典的8位單片機(jī)的總線結(jié)構(gòu),包括8位數(shù)據(jù)總線、16位地址總線、控制總線及具有很多機(jī)通信功能的串行通信接口。 b.CPU外圍功能單元的集中管理模式。 c.體現(xiàn)工控特性的位地址空間及位操作方式。 d.指令系統(tǒng)趨于豐富和完善,并且增加了許多突出控制功能的指令。 (3)第三階段(1982-1990):8位單片機(jī)的鞏固發(fā)展及16位單片機(jī)的推出階段,也是單片機(jī)向微控制器發(fā)展的階段。Intel公司推出的MCS-96系列單片機(jī),將一些用于測(cè)控系統(tǒng)

48、的模數(shù)轉(zhuǎn)換器、程序運(yùn)行監(jiān)視器、脈寬調(diào)制器等納入片中,體現(xiàn)了單片機(jī)的微控制器特征。隨著MCS-51系列的廣應(yīng)用,許多電氣廠商競(jìng)相使用80C51為內(nèi)核,將許多測(cè)控系統(tǒng)中使用的電路技術(shù)、接口技術(shù)、多通道A/D轉(zhuǎn)換部件、可靠性技術(shù)等應(yīng)用到單片機(jī)中,增強(qiáng)了外圍電路路功能,強(qiáng)化了智能控制的特征。 (4)第四階段(1990):微控制器的全面發(fā)展階段。隨著單片機(jī)在各個(gè)領(lǐng)域全面深入地發(fā)展和應(yīng)用,出現(xiàn)了高速、大-*-尋址范圍、強(qiáng)運(yùn)算能力的8位/16位/32位通用型單片機(jī),以及小型廉價(jià)的專(zhuān)用型單片機(jī)。5 NEC單片機(jī): NEC單片機(jī)自成體系,以8位機(jī)78K系列產(chǎn)量最高,也有16位,32位單片機(jī)。16位單片機(jī)采用內(nèi)部

49、倍頻技術(shù),以降低外時(shí)鐘頻率。有的單片機(jī)采用內(nèi)置操作系統(tǒng)。 NEC公司一直在關(guān)注微控制器的未來(lái)發(fā)展,它的具體目標(biāo)就是走向ALL Flash,要提供一個(gè)完整的flash存儲(chǔ)器產(chǎn)品的生產(chǎn)陣容。一個(gè)產(chǎn)品細(xì)分的多樣陣容提供了全部范圍的產(chǎn)品,有10100引腳和1KB128KB的ROM容量;可通過(guò)更改程序,結(jié)合外圍硬件功能和降低功耗來(lái)降低成本;又提供全范圍的開(kāi)發(fā)工具,簡(jiǎn)單易用。習(xí) 題1. 簡(jiǎn)述微型計(jì)算機(jī)的結(jié)構(gòu)及其各部分的作用。2. 簡(jiǎn)述存儲(chǔ)器的分類(lèi)、分類(lèi)依據(jù)及其各種存儲(chǔ)器的特點(diǎn)。3. 簡(jiǎn)述計(jì)算機(jī)與外部設(shè)備數(shù)據(jù)傳送的方式及各自的特點(diǎn)。4. 單片機(jī)的發(fā)展大致分為哪幾個(gè)階段?第2章 單片機(jī)入門(mén)知識(shí)學(xué)習(xí)單片機(jī),首先

50、要了解單片機(jī)的一些相關(guān)知識(shí),如堆棧、中斷、A/D、DMA、串行通信等,本節(jié)將對(duì)這些知識(shí)逐一介紹,使對(duì)單片機(jī)的學(xué)習(xí)達(dá)到事半功倍的效果。2.1 堆棧堆棧(Stack)是一組寄存器或存儲(chǔ)器中開(kāi)辟的一個(gè)特定區(qū)域。由內(nèi)部寄存器組構(gòu)成的堆棧叫硬件堆棧;由軟件開(kāi)辟的存儲(chǔ)器區(qū)域構(gòu)成的堆棧叫軟件堆棧。目前絕大多數(shù)微型計(jì)算機(jī)中都是采用軟件堆棧。2.1.1 堆棧的作用堆棧主要用于中斷處理與過(guò)程(子程序)調(diào)用。堆棧的“先進(jìn)后出”操作方式給中斷處理和子程序調(diào)用/返回(特別是多重中斷與多重調(diào)用)帶來(lái)很大方便。實(shí)用程序中,常有主程序與子程序兩大部分。如果在一個(gè)程序中需要多次使用某段程序,就把這段程序獨(dú)立出來(lái)編成子程序,其他

51、部分稱(chēng)為主程序。在主程序執(zhí)行過(guò)程中需要使用該子程序時(shí),就用調(diào)用于程序指令來(lái)調(diào)用它,待子程序執(zhí)行完后再返回繼續(xù)執(zhí)行主程序,其過(guò)程如圖2.1.1所示。這樣做就可以避免編制程序時(shí)的重復(fù)工作,并縮短了程序的長(zhǎng)度。執(zhí)行主程序主程序子程序斷點(diǎn)繼續(xù)執(zhí)行主程序執(zhí)行子程序返回主程序調(diào)用子程序圖2.1.1 主程序與子程序在調(diào)用子程序的過(guò)程中要保留斷點(diǎn)地址,有時(shí)還要保護(hù)現(xiàn)場(chǎng)。所謂斷點(diǎn)地址,就是調(diào)用子程序指令中按順序排列的下一條指令的地址,也就是執(zhí)行調(diào)用子程序指令時(shí)的程序計(jì)數(shù)器PC的內(nèi)容。只有保留了斷點(diǎn)地址,才能在子程序執(zhí)行后保證返回到主程序的斷點(diǎn)處,繼續(xù)執(zhí)行主程序。所謂現(xiàn)場(chǎng),就是調(diào)用子程序前保存在累加器A、工作寄存

52、器及標(biāo)志寄存器中的信息,這些信息是主程序執(zhí)行的中間結(jié)果。如果在執(zhí)行子程序的過(guò)程中要使用這些寄存器,將會(huì)破壞原來(lái)的內(nèi)容。為此,進(jìn)入子程序后,首先要轉(zhuǎn)存這些寄存器的內(nèi)容,這就是保護(hù)現(xiàn)場(chǎng)。斷點(diǎn)地址與現(xiàn)場(chǎng)信息是送入堆棧保存的。在返回主程序前,要把保存在堆棧中的現(xiàn)場(chǎng)信息送回對(duì)應(yīng)的寄存器,這叫恢復(fù)現(xiàn)場(chǎng)。有時(shí)在執(zhí)行一段子程序的過(guò)程中還要調(diào)用其他子程序,如圖所示,這稱(chēng)為子程序嵌套。這種情況下,堆棧不僅需要存放多個(gè)斷點(diǎn)地址和多批現(xiàn)場(chǎng)信息,而且為了保證逐次正確返回,要求先存入堆棧中的斷點(diǎn)地址和現(xiàn)場(chǎng)信息后再取出來(lái),所以堆棧按照“先進(jìn)后出”的方式工作。主程序子程序1斷點(diǎn)1子程序2子程序3斷點(diǎn)2斷點(diǎn)3子程序4圖2.1.

53、2 子程序嵌套2 堆棧操作堆棧在計(jì)算機(jī)中是作為一種數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)暫存方式引入的。數(shù)據(jù)存入堆棧稱(chēng)為壓入(PUSH)操作;從堆棧取出數(shù)據(jù)稱(chēng)為彈出(POP)操作。堆棧的存取過(guò)程恰像貨物的堆放過(guò)程,是按“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)的方式進(jìn)行的。當(dāng)新的數(shù)據(jù)壓入堆棧時(shí),棧中原存數(shù)據(jù)不被破壞,而只改變棧頂位置;當(dāng)數(shù)據(jù)從堆棧彈出時(shí),彈出的是棧頂位置的數(shù)據(jù),彈出后自動(dòng)調(diào)整棧頂位置。即是說(shuō),數(shù)據(jù)無(wú)論壓入堆棧還是從堆棧彈出,總是在棧頂進(jìn)行。保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)是由推入指令和彈出指令實(shí)現(xiàn)的。斷點(diǎn)地址推入堆棧是執(zhí)行調(diào)用子程序指令時(shí)由硬件自動(dòng)實(shí)現(xiàn)的,斷點(diǎn)地址自堆棧中彈出是執(zhí)行返回主程序指令RET時(shí)由硬

54、件自動(dòng)實(shí)現(xiàn)的。3 堆棧指針堆棧指針SP(Stack Pointer)是一個(gè)專(zhuān)用的地址寄存器,用來(lái)指示棧頂?shù)刂?,起著管理堆棧工作的作用。SP的初值由程序員設(shè)定。一旦設(shè)定初值后,便意味著棧底在內(nèi)存儲(chǔ)器中的位置已經(jīng)確定,此后SP的內(nèi)容即棧頂位置便由CPU自動(dòng)管理。下面以NEC單片機(jī)uPD78F0547為例,說(shuō)明堆棧工作過(guò)程和SP的作用。堆棧指針(SP)是一個(gè)16位的寄存器,如表2.1.1所示。用來(lái)存放存儲(chǔ)器堆棧區(qū)的起始地址。只有內(nèi)部高速RAM區(qū)域才能被設(shè)置為堆棧區(qū)。SP15SP14SP13SP12SP11SP10SP9SP8SP7SP6SP5SP4SP3SP2SP1SP0表2.1.1 堆棧指針格式在

55、向堆棧寫(xiě)(存)數(shù)據(jù)時(shí),堆棧指針SP遞減,而從堆棧中讀出(恢復(fù))數(shù)據(jù)時(shí),堆棧指針累加。堆棧的數(shù)據(jù)存儲(chǔ)/恢復(fù)操作過(guò)程如圖2.1.3 和2.1.4所示。FEE0HFEDEHFEDFHFEE0HFEDEH寄存器對(duì)高位部分寄存器對(duì)低位部分SPSP圖 2.1.3 將數(shù)據(jù)存入堆棧FEE0HFEDEHFEDFHFEE0HFEDEH寄存器對(duì)高位部分寄存器對(duì)低位部分SPSP圖 2.1.4 從堆棧讀出數(shù)據(jù)2.2 中斷2.2.1 什么叫中斷?簡(jiǎn)單來(lái)說(shuō),中斷是一種使CPU中止正在執(zhí)行的程序而轉(zhuǎn)去處理特殊事件的操作。這些引起中斷的事件稱(chēng)為中斷源,它們可能是來(lái)自外設(shè)的輸入輸出請(qǐng)求,也可能是計(jì)算機(jī)的一些異常事故或其它內(nèi)部原因

56、。更具體地,我們定義CPU中斷為這樣一個(gè)過(guò)程:在特定的事件(中斷源,也稱(chēng)中斷請(qǐng)求信號(hào))觸發(fā)下引起CPU暫停正在運(yùn)行的程序(主程序),轉(zhuǎn)而先去處理一段為特定事件而編寫(xiě)的處理程序(中斷處理程序),等中斷處理程序處理完成后,再回到主程序被打斷的地方繼續(xù)運(yùn)行。利用中斷技術(shù)管理外設(shè)后,CPU從反復(fù)詢問(wèn)外設(shè)狀態(tài)中解放出來(lái),提高了工作效率。而且,可以同時(shí)為多個(gè)外設(shè)服務(wù)。利用中斷技術(shù)后,現(xiàn)場(chǎng)的參數(shù)、信息在需要處理時(shí),可隨時(shí)向CPU發(fā)中斷請(qǐng)求信號(hào),以便及時(shí)響應(yīng),及時(shí)處理,實(shí)現(xiàn)實(shí)時(shí)控制。2.2.2 中斷類(lèi)型在PC機(jī)系統(tǒng)中,根據(jù)中斷源的不同,中斷常分為兩大類(lèi):硬件中斷和軟件中斷。硬件中斷也稱(chēng)為外部中斷,它又可以分為兩種:(1)可屏蔽中斷:是可以被CPU屏蔽的由中斷電路發(fā)出的中斷請(qǐng)求信號(hào)在CPU的INTR端引起的中斷,它常常由PC機(jī)的外設(shè)或一些接口功能產(chǎn)生,如鍵盤(pán)、打印機(jī)、串行口等??善帘我馕吨@類(lèi)型中斷可以在CPU要處理其它緊急操作時(shí),被軟件屏蔽或忽略。 (2)非屏蔽中斷:是由CPU的NMI端引起的中斷,如當(dāng)系統(tǒng)出現(xiàn)掉電、內(nèi)存奇偶校驗(yàn)錯(cuò)誤等,系統(tǒng)都將使用非屏蔽中斷。非屏蔽是指CPU不能用軟件指令來(lái)禁止對(duì)

溫馨提示

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