【正文】
當設置好堆棧區(qū)后,并不意味著該區(qū)域成為一種專用內(nèi)存,它還是可以象普通內(nèi)存區(qū)域一樣使用, 16 只是一般情況下編程者不會把它當成普通內(nèi)存用了。一般程序的開頭總有這么一條設置堆棧指針的指令,因為開機時, SP 的初始值為 07H,這樣就使堆棧從 08H單元開始往后,而 08H 到 1FH這個區(qū)域正是 8031 的第二、三、四工作寄存器區(qū),經(jīng)常要被使用,這會造成數(shù)據(jù)的混亂。 五、堆棧: 堆棧是一個區(qū)域,是用來存放數(shù)據(jù)的,這個區(qū)域本身沒有任何特殊之處,就是內(nèi)部 RAM 的一部份,特殊的是它存放和取用數(shù)據(jù)的方式,即所謂的‘先進后出,后進先出’,并且堆棧有特殊的數(shù)據(jù)傳輸指令,即‘ PUSH’和‘ POP’,有 一個特殊的專為其服務的單元,即堆棧指針 SP,每當執(zhí)一次PUSH 指令時, SP 就(在原來值的基礎上)自動加 1,每當執(zhí)行一次 POP 指令, SP就(在原來值的基礎上)自動減 1。你完全可以在指令中按排一條 SETB 的指令,并且當單片機執(zhí)行到這條指令時,也會使 變?yōu)楦唠娖剑褂?者不會這么去做,因為這通常會導致系統(tǒng)的崩潰。如 、 分別是 WR、 RD信號,當微片理機外接 RAM或有外部 I/O口時,它們被用作第二功能,不能作為通用 I/O口使用,只要一微處理機一執(zhí)行到 MOVX 指令,就會有相應的信號從 或 送出,不需要事先用指令說明。地址:是尋找單片機內(nèi)部、外部的存儲單元、輸入輸出口的依據(jù),內(nèi)部單元的地址值已由芯片設計者規(guī)定好,不可更改,外部的單元可以由單片機開發(fā)者自行決定,但有一些地址單元是一定要有的(詳見程序的執(zhí)行過程)。換言之,地址、指令也都是數(shù)據(jù)。在單片機內(nèi)部或者外部存儲器及其它器件中有存儲單元,這些存儲單元要被分配地址,才能使用,分配地址當然也是以電信號的形式給出的,由于存儲單元比較多,所以,用于地址分配的線也較多,這些線被稱為地址總線。 學習應用六大重要部分 單片機學習應用的五 大重要部分 一、總線: 我們知道,一個電路總是由元器件通過電線連接而成的,在 模擬電路中,連線并不成為一個問題,因為各器件間一般是串行關系,各器件之間的連線并不很多,但計算機電路卻不一樣,它是以 微處理器 為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協(xié)調(diào),所以需要的連線就很多了,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨連線,則線的數(shù)量將多得驚人,所以在微處理機中引入了總線的概念,各個器件共同享用連線,所有器件的 8 根數(shù)據(jù)線全部接到 8 根公用的線上,即相當于各個器件并聯(lián)起來,但僅這樣還不行,如果有兩個器件同時送出數(shù)據(jù),一個為 0,一個為 1,那么,接收方接收到 的究竟是什么呢?這種情況是不允許的,所以要通過控制線進行控制,使器件分時工作,任何時候只能有一個器件發(fā)送數(shù)據(jù)(可以有多個器件同時接收)。 單片機在汽車電子中的應用非常廣泛,例如汽車中的發(fā)動機控制器,基于 CAN 總線的汽車發(fā)動機智能電 子控制器, GPS 導航系統(tǒng), abs防抱死系統(tǒng),制動系統(tǒng)等等。如:音樂信號以數(shù)字的形式存于存儲器中(類似于ROM),由微控制器讀出,轉化為模擬音樂電信號(類似于聲卡)。 某些專用單片機設計用于實現(xiàn)特定功 能,從而在各種電路中進行模塊化應用,而不要求使用人員了解其內(nèi)部結構。 現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計算機網(wǎng)絡和通信設備間的應用提供了極好的物質(zhì)條件,現(xiàn)在的通信設備基本上都實現(xiàn)了單片機智能控制,從手機,電話機、小型 程控交換機 、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信, 無線電 對講機等。 13 用單片機可以構成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。采用單片機控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或 數(shù)字電路 更加強大。因此,單片機的學習、開發(fā)與應用將造就一批計算機應用與智能化控制的科學家、工程師。 導彈 的導航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能 IC卡 ,民用豪華轎車的安全保障系統(tǒng), 錄像機 、 攝像機 、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。因此,對單片機的理解可以從單片微型計算機、單片微控制器延伸到單片應用系統(tǒng)。 嵌入式系統(tǒng) 單片機是嵌入式系統(tǒng)的獨立發(fā)展 之路 ,向 MCU 階段發(fā)展的重要因素,就是尋求應用系統(tǒng)在芯片上的最大化解決;因此,專用單片機的發(fā)展自然形成了 SoC化趨勢。 Philips 公司以其在嵌入式應用方面的巨大優(yōu)勢,將 MCS51 從單片微型計算機迅速發(fā)展到微控制器。從這一 12 角度來看, Intel 逐漸淡出 MCU 的發(fā)展也有其客觀因素。 即微控制器( Micro Controller Unit)階段,主要的技術發(fā)展方向是:不斷擴展?jié)M足嵌入式 應用時,對象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對象的智能化控制能力?!皠?chuàng)新模式”獲得成功,奠定了 SCM 與通用計算機完全不同的發(fā)展道路。 單片機歷史 單片機誕生于 20 世紀 70 年代末,經(jīng)歷了 SCM、 MCU、 SoC 三大階段。現(xiàn)在有些工廠的技術人員或其它業(yè)余電子開發(fā)者搞出來的某些產(chǎn)品,不是電路太復雜,就是功能太簡單且極易被仿制?,F(xiàn)在,這種單片機的使用領域已十分廣泛,如 智能儀表 、實時工控、通訊設備、導航系統(tǒng)、家用電器等。因為它體積小,通常都藏在被控機械的“肚子”里。這種計算機就是把智能賦予各種機械的單片機(亦稱微控制器)。它由主機、鍵盤、顯示器等組成。 可以說,二十世紀跨越了三個 “電”的時代,即電氣時代、電子時代和現(xiàn)已進入的電腦時代。 單片機在硬件資源方面的利用率必須很高才行,所以匯編雖然原始卻還是在大量使用。 一個不是很復雜的功能要是用美國 50 年代開發(fā)的 74 系列,或者 60 年代的 CD4000 系列這些純硬件來搞定的話,電路一定是一塊大 PCB板!但是如果要是用美國 70年代成功投放市場的系列單片機,結果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現(xiàn)高智能,高效率,以及高可靠性! 由于單片機對成本是敏感的,所以目前占統(tǒng)治地位的軟件還是最低級匯編 語言,它是除了二進制機器碼以上最低級的語 言了,既然這么低級為什么還要用呢?很多高級的語言已經(jīng)達到了可視化編程的水平為什么不用呢?原因很簡單,就是單片機沒有家用計算機那樣的 CPU,也沒有像硬盤那樣的海量存儲設備。 單片機芯片 單片機是靠程序運行的,并且可以修改。我們現(xiàn)在用的全自動滾筒洗衣機、排煙罩、 VCD 等等的家電里面都可以看到它的身影! ......它主要是作為控制部分的核心部件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。概括的講:一塊芯片就成了一臺計算機。 10 單片機又稱單片微控制器 ,它不是完成某一個邏輯功能的芯片 ,而是把一個計算機系統(tǒng)集成到一個芯片上。而個人電腦中也會有為數(shù)不少的單片機在工作?,F(xiàn)代人類生活中所用的幾乎每件電子和機械產(chǎn)品中都會集成有單片機。 單片機比專用處理器更適合應用于 嵌入式系統(tǒng) ,因此它得到了最多的應用。當代單片機系統(tǒng)已經(jīng)不再只在裸機環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應用在全系列的單片機上。而傳統(tǒng)的 8 位單片機的性能也得到了飛速提高,處理能力比起 80年代提高了數(shù)百倍。 90 年代后隨著消費電子產(chǎn)品大發(fā)展,單片機技術得到了巨大提高。基于這一系統(tǒng)的單片機系統(tǒng)直到現(xiàn)在還在廣泛使用。其中最成功的是 INTEL 的 8031,因為簡單可靠而性能不錯獲得了很大的好評。 INTEL 的 Z80 是最早按照這種思想設計出的處理器,從此以后, 單片機和專用處理器的發(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 8 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. Fifth, 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 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