【正文】
命令的集合)等?! ?用戶要單片機執(zhí)行的各種命令(程序)也以數(shù)據(jù)的形式由存貯器送入控制器,由控制器解讀(譯碼)后變?yōu)楦鞣N控制信號,以便執(zhí)行如加、減、乘、除等功能的各種命令。第三類信息是地址信息,其作用是告訴運算器和控制器在何處去取命令取數(shù)據(jù),將結(jié)果存放到什么地方,通過哪個口輸入和輸出信息等。顧名思義,只讀存貯器一旦將數(shù)據(jù)存入,就只能讀出,不能更改(EPROM、E2PROM等類型的ROM可通過一定的方法來更改、寫入數(shù)據(jù)——編者注)。 實際上,人們往往把運算器和控制器合并稱為中央處理單元——CPU。所以離不開計數(shù)和定時。到這里為止,我們已經(jīng)知道了單片機的基本組成,即單片機是由中央處理器(即CPU中的運算器和控制器)、只讀存貯器(通常表示為ROM)、讀寫存貯器(又稱隨機存貯器通常表示為RAM)、輸入/輸出口(又分為并行口和串行口,表示為I/O口)等等組成。另外,還有所謂的“中斷系統(tǒng)”,這個系統(tǒng)有“傳達室”的作用,當單片機控制對象的參數(shù)到達某個需要加以干預(yù)的狀態(tài)時,就可經(jīng)此“傳達室”通報給CPU,使CPU根據(jù)外部事態(tài)的輕重緩急來采取適當?shù)膽?yīng)付措施。此總線有如大城市的“干道”,而CPU、ROM、RAM、I/O口、中斷系統(tǒng)等就分布在此“總線”的兩旁,并和它連通。所謂硬件(Hardware),就是看得到,摸得到的實體。單片機要真正地能進行計算和控制,還必須有軟件(Software)的配合。只有將各種正確的程序“灌入”(存入)單片機,它才能有效地工作。就以兩個數(shù)相加這一簡單的運算來說,當需要運算的數(shù)已存入存貯器后,還需要進行以下幾步: 第一步:把第一個數(shù)從它的存貯單元(Location)中取出來,送至運算器?! ∷羞@些取數(shù)、送數(shù)、相加、存數(shù)等等都是一種操作(Operation),我們把要求計算機執(zhí)行的各種操作用命令的形式寫下來,這就是指令。一條指令,對應(yīng)著一種基本操作;單片機所能執(zhí)行的全部指令,就是該單片機的指令系統(tǒng)(Iustruction Set),不同種類的單片機,其指令系統(tǒng)亦不同。這些指令必須是選定的單片機能識別和執(zhí)行的指令。指令通常分為操作碼(Opcode)和操作數(shù)(Operand)兩大部分。因為單片機是一種可編程器件,只“認得”二進碼(0、1)。例如,在Intel公司的MCS-51系列單片機中,從存貯器中取出一數(shù)到CPU中的累加器(在運算器中,參與運算、存放運算結(jié)果的專用寄存器)的指令代碼為74H,累加器內(nèi)容加立即數(shù)的代碼為24H,再加上立即數(shù)代碼,累加器送數(shù)到內(nèi)部RAM存貯器的代碼為F6H~F7H等?! CS-51單片機的字長為8位,有時,要完成某些操作用一個字節(jié)尚不能充分表達。機器碼是由一連串的0和1組成,沒有明顯的特征,不好記憶,不易理解,易出錯。因而,人們就用一些助記符(Mue monic)——通常是指令功能的英文縮寫來代替操作碼,如MCS-51中數(shù)的傳送常用MOV(Move的縮寫)、加法用Add(Addition的縮寫)來作為助記符。用助記符來編寫的程序稱為匯編語言程序。匯編可借助于人工查表法來實現(xiàn),也可借助PC機通過所謂“交叉匯編程序”來完成。單片機8051的CPU由運算器和控制器組成。累加器ACC是一個八位寄存器,它是CPU中工作最頻繁的寄存器。寄存器B主要用于乘法和除法操作。其每位的具體含意如下所示?!?1 進位標志CY(PSW 7)。如果操作結(jié)果在最高位有進位(加法)或者借位(減法),則該位為1,否則為0。又稱半進位標志,它反映了兩個八位數(shù)運算低四位是否有半進位,即低四位相加(或減)有否進位(或借位),如有則AC為1狀態(tài),否則為0。MCS-51反映帶符號數(shù)的運算結(jié)果是否有溢出,有溢出時,此位為1,否則為0。反映累加器ACC內(nèi)容的奇偶性,如果ACC中的運算結(jié)果有偶數(shù)個1(如11001100B,其中有4個1),則P為0,否則,P=1。由于PSW存放程序執(zhí)行中的狀態(tài),故又叫程序狀態(tài)字?運算器中還有一個按位(bit)進行邏輯運算的邏輯處理機(又稱布爾處理機)。二、控制器 控制器是CPU的神經(jīng)中樞,它包括定時控制邏輯電路、指令寄存器、譯碼器、地址指針DPTR及程序計數(shù)器PC、堆棧指針SP等。要單片機執(zhí)行一個程序,就必須把該程序按順序預(yù)先裝入存儲器ROM的某個區(qū)域。因此,必須有一個電路能找出指令所在的單元地址,該電路就是程序計數(shù)器PC。只有當程序遇到轉(zhuǎn)移指令、子程序調(diào)用指令,或遇到中斷時(后面將介紹),PC才轉(zhuǎn)到所需要的地方去。三、存儲器 存儲器是單片機的又一個重要組成部分,圖6給出了一種存儲容量為256個單元的存儲器結(jié)構(gòu)示意圖。存儲器中每個存儲單元可存放一個八位二進制信息,通常用兩位16進制數(shù)來表示,這就是存儲器的內(nèi)容。一、程序存儲器 程序是控制計算機動作的一系列命令,單片機只認識由“0”和“1”代碼構(gòu)成的機器指令。在單片機處理問題之前必須事先將編好的程序、表格、常數(shù)匯編成機器代碼后存入單片機的存儲器中,該存儲器稱為程序存儲器。由于PC程序計數(shù)器為16位,使得程序存儲器可用16位二進制地址,因此,內(nèi)外存儲器的地址最大可從0000H到FFFFH。不過,這時應(yīng)使8051的第{31}腳(即EA腳)保持低電平。二、數(shù)據(jù)存儲器 單片機的數(shù)據(jù)存儲器由讀寫存儲器RAM組成。8051內(nèi)部有256個單元的內(nèi)部數(shù)據(jù)存儲器,其中00H~7FH為內(nèi)部隨機存儲器RAM,80H~FFH為專用寄存器區(qū)。因為將來在學(xué)習(xí)指令系統(tǒng)和程序設(shè)計時會經(jīng)常用到它們。而用做特殊功能寄存器的地址為80H~FFH。對于那些需要進行位操作的數(shù)據(jù),可以存放到這個區(qū)域。究竟選用那一組寄存器,由前述標志寄存器中的RS1和RS0來選用。三、特殊功能寄存器 特殊功能寄存器(SFR)的地址范圍為80H~FFH。其中5個是雙字節(jié)寄存器,它們共占用了26個字節(jié)。其中帶*號的可位尋址。用于CPU PSW便是典型一例。與芯片引腳有關(guān)的特殊功能寄存器是P0~P3,它們實際上是4個八位鎖存器(每個I/O口一個),每個鎖存器附加有相應(yīng)的輸出驅(qū)動器和輸入緩沖器就構(gòu)成了一個并行口。其余用于芯片控制的寄存器中,累加器A、標志寄存器PSW、數(shù)據(jù)指針DPTR等的功能前已提及,而另一些寄存器的功能在后面有關(guān)部分再作進一步介紹單片機的指令系統(tǒng)和尋址方式 單片機要正常運作,事先需編制程序,再把程序放入存貯器中,然后由CPU執(zhí)行該程序。單片機的品種很多,設(shè)計時怎樣表示操作碼和操作數(shù),都有各自的規(guī)定,再有指令代碼也各不相同,因此,必須對所選單片機的全部指令,也就是所謂“指令系統(tǒng)”,有足夠的了解。掌握一種單片機的指令系統(tǒng),對其它系列單片機可以起到觸類旁通的作用。單片機的應(yīng)用 目前單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。更不用說自動控制領(lǐng)域的機器人、智能儀表、醫(yī)療器械以及各種智能機械了。 單片機廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個范疇: 單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。例如精密的測量設(shè)備(功率計,示波器,各種分析儀)。例如工廠流水線的智能化管 芯片理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。 現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計算機網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實現(xiàn)了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。 某些專用單片機設(shè)計用于實現(xiàn)特定功能,從而在各種電路中進行模塊化應(yīng)用,而不要求使用人員了解其內(nèi)部結(jié)構(gòu)。如:音樂信號以數(shù)字的形式存于存儲器中(類似于ROM),由微控制器讀出,轉(zhuǎn)化為模擬音樂電信號(類似于聲卡)。 單片機在汽車電子中的應(yīng)用非常廣泛,例如汽車中的發(fā)動機控制器,基于CAN總線的汽車發(fā)動機智能電子控制器,GPS導(dǎo)航系統(tǒng),abs防抱死系統(tǒng),制動系統(tǒng)等等。附錄二:外文資料原文Singlechip ponentsTo autoplete singlechip basis, it should be the most important part of what it? Calculated as an example we calculate on an abacus math problems together. Cases: 36 +163 156166 247。 34, then it results from a minus, it has been the final oute. Now, we use singlechip to plete the process, it is clear that it should be instead of thinking first of all the ponents for puting, which is the calculator。 the third step: add。 single chip can implement all the mands, the mand is the singlechip system (Iustruction Set), different types of singlechip, and its mand system is also different. The use of singlechip, the prior should be the problem to be solved into a series of mands. These instructions must be selected to identify and implement singlechip instructions. Singlechip customers to solve their own problems by the instructions for the procedure, known as source code (Source Program). Usually divided into opcode instruction (Opcode) and operand (Operand) of two major parts. Operation of the puter code that the implementation of any operation, that is, the function of mand。s MCS51 series singlechip, from a number of memory out of the accumulator to the CPU (in the puting device, the participation in puting, puting the results of the dedicated storage registers) for the mand code 74H , an immediate increase in the number of accumulator the contents of the code for the 24H, together with the numbe