微控制器入門

2021-06-06 15:31:56 字數 4842 閱讀 1248

微控制器簡介可以說,二十世紀跨越了三個「電」的時代,即電氣時代、電子時代和現已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱pc機。它由主機、鍵盤、顯示器等組成。還有一類計算機,大多數人卻不怎麼熟悉。這種計算機就是把智慧型賦予各種機械的微控制器(亦稱微控制器)。顧名思義,這種計算機的最小系統只用了一片積體電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機械的「肚子」裡。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病,整個裝置就癱瘓了。現在,這種微控制器的使用領域已十分廣泛,如智慧型儀表、實時工控、通訊裝置、導航系統、家用電器等。各種產品一旦用上了微控制器,就能起到使產品公升級換代的功效,常在產品名稱前冠以形容詞——「智慧型」,如智慧型洗衣機等。現在有些工廠的技術人員或其它業餘電子開發者搞出來的某些產品,不是電路太複雜,就是功能太簡單且極易被仿製。究其原因,可能就卡在產品未使用微控制器或其它可程式設計邏輯器件上。

1.

微控制器的組成

微控制器要自動完成計算,它應該具有哪些最重要的部分呢?

我們以打算盤為例計算一道算術題。例:36+163×156-166÷34。現在要進行運算,首先需要一把算盤,其次是紙和筆。我們把要計算的問題記錄下來,然後第一步先算163×156,把它與36相加的結果記在紙上,然後計算166÷34,再把它從上一次結果中減去,就得到最後的結果。

現在,我們用微控制器來完成上述過程,顯然,它首先要有代替算盤進行運算的部件,這就是「運算器」;其次,要有能起到紙和筆作用的器件,即能記憶原始題目、原始資料和中間結果,還要記住使微控制器能自動進行運算而編制的各種命令。這類器件就稱為「存貯器」。此外,還需要有能代替人作用的控制器,它能根據事先給定的命令發出各種控制訊號,使整個計算過程能一步步地進行。但是光有這三部分還不夠,原始的資料與命令要輸入,計算的結果要輸出,都需要按先後順序進行,有時還需等待。如上例中,當在計算163×156時,數字36就不能同時進入運算器。因此就需要在微控制器上設定按控制器的命令進行動作的「門」,當運算器需要時,就讓新資料進入。或者,當運算器得到最後結果時,再將此結果輸出,而中間結果不能隨便「溜出」微控制器。這種對輸入、輸出資料進行一定管理的「門」電路在微控制器中稱為「口」(port)。在微控制器中,基本上有三類資訊在流動,一類是資料,即各種原始資料(如上例中的36、163等)、中間結果(如166÷34所得的商4、餘數30等)、程式(命令的集合)等。這樣要由外部裝置通過「口」進入微控制器,再存放在存貯器中,在運算處理過程中,資料從存貯器讀入運算器進行運算,運算的中間結果要存入存貯器中,或最後由運算器經「出入口」輸出。使用者要微控制器執行的各種命令(程式)也以資料的形式由存貯器送入控制器,由控制器解讀(解碼)後變為各種控制訊號,以便執行如加、減、乘、除等功能的各種命令。所以,這一類資訊就稱為控制命令,即由控制器去控制運算器一步步地進行運算和處理,又控制存貯器的讀(取出資料)和寫(存入資料)等。第三類資訊是位址資訊,其作用是告訴運算器和控制器在何處去取命令取資料,將結果存放到什麼地方,通過哪個口輸入和輸出資訊等。

存貯器又分為唯讀存貯器和讀寫存貯器兩種,前者存放除錯好的固定程式和常數,後者存放一些隨時有可能變動的資料。顧名思義,唯讀存貯器一旦將資料存入,就只能讀出,不能更改(eprom、e2prom等型別的rom可通過一定的方法來更改、寫入資料——編者注)。而讀寫存貯器可隨時存入或讀出資料。

實際上,人們往往把運算器和控制器合併稱為**處理單元——cpu。微控制器除了進行運算外,還要完成控制功能。所以離不開計數和定時。因此,在微控制器中就設定有定時器兼計數器,其基本結構與本**之(二)中的舉例類似。到這裡為止,我們已經知道了微控制器的基本組成,即微控制器是由**處理器(即cpu中的運算器和控制器)、唯讀存貯器(通常表示為rom)、讀寫存貯器(又稱隨機存貯器通常表示為ram)、輸入/輸出口(又分為並行口和序列口,表示為i/o口)等等組成。實際上微控制器裡面還有乙個時鐘電路,使微控制器在進行運算和控制時,都能有節奏地進行。另外,還有所謂的「中斷系統」,這個系統有「傳達室」的作用,當微控制器控制物件的引數到達某個需要加以干預的狀態時,就可經此「傳達室」通報給cpu,使cpu根據外部事態的輕重緩急來採取適當的應付措施。

現在,我們已經知道了微控制器的組成,餘下的問題是如何將它們的各部分連線成相互關聯的整體呢?實際上,微控制器內部有一條將它們連線起來的「紐帶」,即所謂的「內部匯流排」。此匯流排有如大城市的「幹道」,而cpu、rom、ram、i/o口、中斷系統等就分布在此「匯流排」的兩旁,並和它連通。從而,一切指令、資料都可經內部匯流排傳送,有如大城市內各種物品的傳送都經過幹道進行。

2

.mcs-51的cpu和儲存器

(1)cpu結構

微控制器8051的cpu由運算器和控制器組成。

一、運算器

運算器以完成二進位制的算術/邏輯運算部件alu為核心,再加上暫存器tmp、累加器acc、暫存器b、程式狀態標誌暫存器psw及布林處理器。累加器acc是乙個八位暫存器,它是cpu中工作最頻繁的暫存器。在進行算術、邏輯運算時,累加器acc往往在運算前暫存乙個運算元(如被加數),而運算後又儲存其結果(如代數和)。暫存器b主要用於乘法和除法操作。標誌暫存器psw也是乙個八位暫存器,用來存放運算結果的一些特徵,如有無進製、借位等。其每位的具體含意如下所示。psw cy ac fo rs1 rs0 ov -p對使用者來講,最關心的是以下四位。 1

進製標誌cy。它表示了運算是否有進製(或借位)。如果操作結果在最高位有進製(加法)或者借位(減法),則該位為1,否則為0。 2

輔助進製標誌ac。又稱半進製標誌,它反映了兩個八位數運算低四位是否有半進製,即低四位相加(或減)有否進製(或借位),如有則ac為1狀態,否則為0。 3

溢位標誌位ov。mcs-51反映帶符號數的運算結果是否有溢位,有溢位時,此位為1,否則為0。 4

奇偶標誌p。反映累加器acc內容的奇偶性,如果acc中的運算結果有偶數個1(如11001100b,其中有4個1),則p為0,否則,p=1。

二、控制器

控制器是cpu的神經中樞,它包括定時控制邏輯電路、指令暫存器、解碼器、位址指標dptr及程式計數器pc、堆疊指標sp等。這裡程式計數器pc是由16位暫存器構成的計數器。要微控制器執行乙個程式,就必須把該程式按順序預先裝入儲存器rom的某個區域。微控制器動作時應按順序一條條取出指令來加以執行。因此,必須有乙個電路能找出指令所在的單元位址,該電路就是程式計數器pc。當微控制器開始執行程式時,給pc裝入第一條指令所在位址,它每取出一條指令(如為多位元組指令,則每取出乙個指令位元組),pc的內容就自動加1,以指向下一條指令的位址,使指令能順序執行。只有當程式遇到轉移指令、子程式呼叫指令,或遇到中斷時(後面將介紹),pc才轉到所需要的地方去。8051 cpu碢c指定的位址,從rom相應單元中取出指令位元組放在指令暫存器中寄存,然後,指令暫存器中的指令**被解碼器譯成各種形式的控制訊號,這些訊號與微控制器時鐘振盪器產生的時鐘脈衝在定時與控制電路中相結合,形成按一定時間節拍變化的電平和時鐘,即所謂控制資訊,在cpu內部協調暫存器之間的資料傳輸、運算等操作。

三、儲存器

儲存器是微控制器的又乙個重要組成部分,其中每個儲存單元對應乙個位址,256個單元共有256個位址,用兩位16進製制數表示,即儲存器的位址(00h~ffh)。儲存器中每個儲存單元可存放乙個八位二進位制資訊,通常用兩位16進製制數來表示,這就是儲存器的內容。儲存器的儲存單元位址和儲存單元的內容是不同的兩個概念,不能混淆。 1

、程式儲存器

程式是控制計算機動作的一系列命令,微控制器只認識由「0」和「1」**構成的機器指令。如前述用助記符編寫的命令mov a,#20h,換成機器認識的**74h、20h:(寫成二進位制就是01110100b和00100000b)。在微控制器處理問題之前必須事先將編好的程式、**、常數彙編成機器**後存入微控制器的儲存器中,該儲存器稱為程式儲存器。程式儲存器可以放在片內或片外,亦可片內片外同時設定。由於pc程式計數器為16位,使得程式儲存器可用16位二進位制位址,因此,內外儲存器的位址最大可從0000h到ffffh。8051內部有4k位元組的rom,就占用了由0000h~0fffh的最低4k個位元組,這時片外擴充的程式儲存器位址編號應由1000h開始,如果將8051當做8031使用,不想利用片內4krom,全用片外儲存器,則位址編號仍可由0000h開始。不過,這時應使8051的第腳(即ea腳)保持低電平。當ea為高電平時,使用者在0000h至0fffh範圍內使用內部rom,大於0fffh後,微控制器cpu自動訪問外部程式儲存器。 2

、資料儲存器

微控制器的資料儲存器由讀寫儲存器ram組成。其最大容量可擴充套件到64k,用於儲存實時輸入的資料。8051內部有256個單元的內部資料儲存器,其中00h~7fh為內部隨機儲存器ram,80h~ffh為專用暫存器區。實際使用時應首先充分利用內部儲存器,從使用角度講,搞清內部資料儲存器的結構和位址分配是十分重要的。因為將來在學習指令系統和程式設計時會經常用到它們。8051內部資料儲存器位址由00h至ffh共有256個位元組的位址空間,該空間被分為兩部分,其中內部資料ram的位址為00h~7fh(即0~127)。而用做特殊功能暫存器的位址為80h~ffh。在此256個位元組中,還開闢有乙個所謂「位位址」區,該區域內不但可按位元組定址,還可按「位(bit)」定址。對於那些需要進行位操作的資料,可以存放到這個區域。從00h到1fh安排了四組工作暫存器,每組占用8個ram位元組,記為r0~r7。究竟選用那一組暫存器,由前述標誌暫存器中的rs1和rs0來選用。在這兩位上放入不同的二進位制數,即可選用不同的暫存器組,如附表1所示。

三、特殊功能暫存器

特殊功能暫存器(sfr)的位址範圍為80h~ffh。在mcs-51中,除程式計數器pc和四個工作暫存器區外,其餘21個特殊功能暫存器都在這sfr塊中。其中5個是雙位元組暫存器,它們共占用了26個位元組。各特殊功能暫存器的符號和位址見附表2。其中帶*號的可位定址。特殊功能暫存器反映了8051的狀態,實際上是8051的狀態字及控制字暫存器。用於cpu psw便是典型一例。這些特殊功能暫存器大體上分為兩類,一類與晶元的引腳有關,另一類作片內功能的控制用。與晶元引腳有關的特殊功能暫存器是p0~p3,它們實際上是4個八位鎖存器(每個i/o口乙個),每個鎖存器附加有相應的輸出驅動器和輸入緩衝器就構成了乙個並行口。mcs-51共有p0~p3四個這樣的並行口,可提供32根i/o線,每根線都是雙向的,並且大都有第二功能。其餘用於晶元控制的暫存器中,累加器a、標誌暫存器psw、資料指標dptr等的功能前已提及,而另一些暫存器的功能在後面有關部分再作進一步介紹。

微控制器入門

微控制器入門需了解的概念 微控制器 一片積體電路晶元上整合微處理器 儲存器 i o介面電路 電平 數位電路中只有高 低電平 定義微控制器為ttl電平 高 5v 低0v rs232電平 計算機串列埠 高 12v 低 12v 二進位制計算 1.與 2.或 3.非 4.異或 匯流排 計算機各部件之間傳遞資...

微控制器入門

微控制器簡介可以說,二十世紀跨越了三個 電 的時代,即電氣時代 電子時代和現已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱pc機。它由主機 鍵盤 顯示器等組成。還有一類計算機,大多數人卻不怎麼熟悉。這種計算機就是把智慧型賦予各種機械的微控制器 亦稱微控制器 顧名思義,這種計算機的最小系統...

微控制器入門基礎

1什麼時鐘?首先我們先講講什麼是時鐘。時鐘就是微控制器的心臟。每跳動一下。整個微控制器的各個電路就同步的動作一下。就好像我們做廣播體操的時候 廣播上喊的節拍1234 2234 3234。然後我們全部的同學就按照這個節奏進行乙個個動作。節拍越快我們動作越快。節拍越慢我們動作的越慢。內部時鐘和外部時鐘?...