【正文】
當(dāng)設(shè)置好堆棧區(qū)后,并不意味著該區(qū)域成為一種專用內(nèi)存,它還是可以象普通內(nèi)存區(qū)域一樣使用,只是一般情況下編程者不會把它當(dāng)成普通內(nèi)存用了。一般程序的開頭總有這么一條設(shè)置堆棧指針的指令,因為開機時, SP 的 初始值為 07H,這樣就使堆棧從 08H 單元開始往后,而 08H 到 1FH 這個區(qū)域正是 8031 的第二、三、四工作寄存器區(qū),經(jīng)常要被使用,這會造成數(shù)據(jù)的混亂。 五、堆棧: 堆棧是一個區(qū)域,是用來存放數(shù)據(jù)的,這個區(qū)域本身沒有任何特殊之處,河北工程大學(xué) 科信學(xué)院 畢業(yè)設(shè)計(外文翻譯) 17 就是內(nèi)部 RAM 的一部份,特殊的是它存放和取用數(shù)據(jù)的方式,即所謂的‘ 先進(jìn) 后出,后進(jìn)先出 ’ ,并且堆棧有特殊的數(shù)據(jù)傳輸指令,即 ‘ PUSH’和 ‘ POP’ ,有一個特殊的專為其服務(wù)的單元,即堆棧指針 SP,每當(dāng)執(zhí)一次 PUSH 指令時, SP 就(在原來值的基礎(chǔ)上)自動加 1,每當(dāng)執(zhí)行一次 POP指令, SP 就(在原來值的基礎(chǔ)上)自動減 1。你完全可以在指令中按排一條 SETB 的指令,并且當(dāng)單片機執(zhí)行到這條指令時,也會使 變?yōu)楦唠娖剑褂谜卟粫@么去做,因為這通常會導(dǎo)致系統(tǒng)的崩潰。如 、 分別是 WR、 RD 信號,當(dāng)微片理機外接 RAM 或有外部 I/O 口時,它們被用作第二功能,不能作為通用 I/O 口使用,只要一微處理機一執(zhí)行到 MOVX指令,就會有相應(yīng)的信號從 或 送出,不需要事先用指令說明。地址:是尋找單片機內(nèi)部、外部的存儲單元、輸入輸出口的依據(jù),內(nèi)部單元的地址值已由芯片設(shè)計者規(guī)定好,不可更改,外部的單元可以由單片機開發(fā)者自行決定,但有一些地址單元是一定要有的(詳見程序的執(zhí)行過程)。換言之,地址、指令也都是數(shù)據(jù)。在單片機內(nèi)部或者外部存儲器及其它器件中有存儲單元,這些存儲單元要被分配地址,才能使用,分配地址當(dāng)然也是以電信號的形式給出的,由于存儲單元比較多,所以,用于地址分配的線也較多,這些線被稱為地址總線。 學(xué)習(xí)應(yīng)用六大重要部分 單片機學(xué)習(xí)應(yīng)用的六大重要部分 一、總線: 我們知道,一個電路總是由元器件通過電線連接而成的,在 模擬電路中,連線并不成為一個問題,因為各器件 間一般是串行關(guān)系,各器件之間的連線并不很多,但計算機電路卻不一樣,它是以 微處理器 為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協(xié)調(diào),所以需要的連線就很多了,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨連線,則線的數(shù)量將多得驚人,所以在微處理機中引入了總線的概念,各個器件共同享用連線,所有器件的 8 根數(shù)據(jù)線全部接到 8 根公用的線上,即相當(dāng)于各個器件并聯(lián)起來,但僅這樣還 不行,如果有兩個器件同時送出數(shù)據(jù),一個為 0,一個為 1,那么,接收方接收到的究竟是什么呢?這種情況是不允許的,所以要通過控制線進(jìn)行控制,使器件分時工作,任何時候只能有一個器件發(fā)送數(shù)據(jù)(可以有多個器件同時接收)。 單片機在汽車電子中的 應(yīng)用非常廣泛,例如汽車中的發(fā)動機控制器,基于 CAN 總線的汽車發(fā)動機智能電子控制器, GPS 導(dǎo)航系統(tǒng), abs 防抱死系統(tǒng),制動系統(tǒng)等等。如:音樂信號以數(shù)字的形式存于存儲器中(類似于ROM),由微控制器讀出,轉(zhuǎn)化為模擬音樂電信號(類似于聲卡)。 某些專用單片機設(shè)計用于實現(xiàn)特定功能,從而在各種電路中進(jìn)行模塊化應(yīng)用,而不要求使用人員了解其內(nèi)部結(jié)構(gòu)。 現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進(jìn)行數(shù)據(jù)通信,為在計算機網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實現(xiàn)了單片機智能控制,從手機,電話機、小型 程控交換機 、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信, 無線電 對講機等。 用單片機可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。采用單片機控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或 數(shù)字電路 更加強大。因此,單片機的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計算機應(yīng)用與智能化控制的科學(xué)家、工程師。 導(dǎo)彈 的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能 IC 卡 ,民用豪華轎車的安全保障系統(tǒng), 錄像機 、 攝像機 、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。因此,對單片機的理解可以從單片微型計算機、單片微控制器延伸到單片應(yīng)用系統(tǒng)。 嵌入式系統(tǒng) 單片機是嵌入式系 統(tǒng)的獨立發(fā)展之路 ,向 MCU 階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專用單片機的發(fā)展自然形成了 SoC 化趨勢。 Philips 公司以其在嵌入式應(yīng)用方面的巨大優(yōu)勢,將 MCS51 從單片微型計算機迅速發(fā)展到微控制器。從這一角度來看, Intel 逐漸淡出 MCU 的發(fā)展也有其客觀因素。 河北工程大學(xué) 科信學(xué)院 畢業(yè)設(shè)計(外文翻譯) 13 即微控制器( Micro Controller Unit)階段,主要的技術(shù)發(fā)展方向是:不斷擴 展?jié)M足嵌入式應(yīng)用時,對象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對象的智能化控制能力。 “創(chuàng)新模式 ”獲得成功,奠定了 SCM 與通用計算機完全不同的發(fā)展道路。 單片機歷史 單片機誕生于 20世紀(jì) 70年代末,經(jīng)歷了 SCM、 MCU、 SoC 三大階段。現(xiàn)在有些工廠的技術(shù)人員或其它業(yè)余電子開發(fā)者搞出來的某些產(chǎn)品,不是電路太復(fù)雜,就是功能太簡單且極易被仿制。現(xiàn)在,這種單片機的使用領(lǐng)域已十分廣泛,如 智能儀表 、實時工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。因為它體積小,通常都藏在被控機械的 “肚子 ”里。這種計算機就是把智能賦予各種機械的單片機(亦稱微控制器)。它由主機、鍵盤、顯示器等組成。 可以說,二十世 紀(jì)跨越了三個 “電 ”的時代,即電氣時代、電子時代和現(xiàn)已進(jìn)入的電腦時代。 單片機在硬件資源方面的利用率必須很高才行,所以匯編雖然原始卻還是在大量使用。一個不是很復(fù)雜的功能要是用美國 50年代開發(fā)的 74系列,或者 60年代的 CD4000 系列這些純硬件來搞定的話,電路一定是一塊大 PCB 板!但是如果要是用美國 70 年代成功投放市場的系列單片機,結(jié)果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現(xiàn)高智能,高效率,以及高可靠性! 由于單片機對成本是敏感的,所以目前占統(tǒng)治地位的軟件還是最低級匯編 語言,它是除了二進(jìn)制機器碼以 上最低級的語言了,既然這么低級為什么還要用呢?很多高級的語言已經(jīng)達(dá)到了可視化編程的水平為什么不用河北工程大學(xué) 科信學(xué)院 畢業(yè)設(shè)計(外文翻譯) 12 呢?原因很簡單,就是單片機沒有家用計算機那樣的 CPU,也沒有像硬盤那樣的海量存儲設(shè)備。 單片機芯片 單片機是靠程序運行的,并且可以修改。我們現(xiàn)在用的全自動滾筒洗衣機、排煙罩、 VCD 等等的家電里面都可以看到它的身影! ......它主要是作為控制部分的核心部件。同時,學(xué)習(xí)使用單片機是了解計算機原理與結(jié)構(gòu)的最佳選擇。概括的講:一塊芯片就成了一臺計算機。 單片機又稱單片微控制器 ,它不是完成某一個邏輯功能的芯片 ,而是把一個計算機系統(tǒng)集成到一個芯片上。而個人電腦中也會有為數(shù)不少的單片機在工作?,F(xiàn)代人類生活中所用的幾乎每件電子和機械產(chǎn)品中都會集成有單片機。 單片機比專用處理器更適合應(yīng)用于 嵌入式系統(tǒng) ,因此它得到了最多的應(yīng)用。當(dāng)代單片機系統(tǒng)已經(jīng)不再只在裸機環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機上。而傳統(tǒng)的 8 位單片機的性能也得到了飛速提高,處理能力比起 80年代提高了數(shù)百倍。 90年代后隨著消費電子產(chǎn)品大發(fā)展,單片機技術(shù)得到了巨大提高?;谶@一系統(tǒng)的單片機系統(tǒng)直到現(xiàn)在還在廣泛使用。其中最成功的是 INTEL 的 8031,因為簡單可靠而性能不錯獲得了很大的好評。 INTEL 的 Z80 是最早按照這種思想設(shè)計出的處理器 ,從此以后,單片機和專用處理器的發(fā)展便分道揚鑣。單片機由芯片內(nèi)僅有 CPU 的專用 處理器 發(fā)展而來。, has a special expertise in its services unit, that is, the stack pointer SP, whenever a PUSH instruction execution, SP on (in the Based on the original value) automatically add 1, whenever the implementation of a POP instruction, SP will (on the basis of the original value) automatically by 1. As the SP values can be changed with the instructions, so long as the beginning of the process to change the value of the SP, you can set the stack memory unit required, such as the program begins, with an MOV SP, 5FH instructions When set on the stack starting from the memory unit 60H unit. There is always the beginning of the general procedure with such a directive to set the stack pointer, because boot, SP initial value of 07H, 08H This unit from the beginning to stack next, and 08H to 1FH 8031 is the second in the region, three or four working register area, often used, this will lead to confusion of data. Different authors when writing programs, initialize the stack is not exactly the same directive, which is the author39。and39。, and the stack has a special data transmission instructions that39。unit must be stored in a single instruction. 5, the stack: Stack is a region, is used to store data, there is no special about the region itself is a part of internal RAM, special access to its data storage and the way that the socalled 39。 units started, that is: the system must exist in ROM 0000 河北工程大學(xué) 科信學(xué)院 畢業(yè)設(shè)計(外文翻譯) 9 39。s implementation: Reduction in power after the 8051 microcontroller within the program counter (PC) in the value of 0000 39。 as a generalpurpose I / O p