C51微控制器入門知識

2021-08-04 22:44:17 字數 2942 閱讀 2820

接觸微控制器也快兩年了,雖然期間偶然玩一玩,但是還是沒有形成乙個完整的微控制器系統。藉著這次同學想學習的機會,再次回到頭來系統的學一遍。其實真正入手微控制器挺容易的,稍微會那麼一點c語言知識,會定義引腳,會置成高低電平就算入門了吧,個人觀點,非喜勿噴。

把微控制器總的來分為幾大塊,剩下的就是演算法或者說是c語言搭邊的事了:引腳(io)、中斷(interrupt)、定時器/計數器(t0、t1)、序列口(usart),這是學習微控制器最基本的內容,剩下的就是需要自我提公升的內容,可在學習完以上內容的同時完成以下的學習:a/d(模數轉換)、lcd1602(液晶屏)、eeprom(儲存器)、18b20(溫度感測器)、pwm(脈衝調製)、紅外線等。

把所有的模組劃分好了後就是系統的學習了。接下來就說一下學習微控制器所需要的基礎知識。首先說一下為什麼這個cpu為什麼會完成那些引腳變換高低電平這些工作,cpu內部是怎麼工作的呢,或者說大致流程是怎麼樣的呢?首先是上電,然後等待微控制器初始化完成,初始化完成後按自己編寫的**依次執行,要說的具體點就是從特定的儲存空間取出要執行的資料,然後去執行,最後把執行後得到的資料輸出。而這個執行的過程是比較複雜的,涉及到了各種各樣的對暫存器進行讀寫的操作。

既然是學習微控制器所需要的基本知識,就從兩大方面說起:硬體和軟體。首先就說一下硬體吧,從外**上去必然看到的就是微控制器的封裝。微控制器本質上就是乙個晶元,封裝形式有很多種,例如 dip (dual in-line package雙列直插式封裝)、 sop (small out-line package小外形封裝)、 plcc (plastic leaded chip carrier帶引線的塑料晶元封裝)、qfp(quad flat package塑料方型扁平式封裝)、pga(pin grid array package插針網格陣列封裝)、bga(ball grid array package球柵陣列封裝)等。其中,dip封裝的微控制器可以在萬能板上焊接,其它封裝形式的微控制器須製作印製電路板(printed circuit board,pcb),pga和bga一般用於超大規模晶元封裝,微控制器用得較少。

了解完封裝後就可以接著下一步了,了解微控制器的家族。這個就不多說了,網上很多都有介紹,但是呢,為了支援國產,說一下stc的微控制器,我自己也是學的這款微控制器,然後往stm32及arm11轉型的,貼出來stc的官網:(類似的還有美國、日本的,但是都沒學過,就不說了。

可能硬體說的比較簡陋,接下來就說軟體方面需要注意的事項吧。

一:一般**裡面只有乙個死迴圈,也就是只有乙個while(1),不過也有特殊情況。

二:必須包含51的標頭檔案。即#include ,因為此檔案中定義了51的一些特殊功能暫存器。

三:主函式只有乙個。即int main(),為什麼呢?因為在c99標準未發布前,一般把main函式定義為void,即無返回值型別,c99標準發布後,裡面明確規定定義main時要定義成int型,原因是因為main函式是系統呼叫的,在main函式執行結束後,要返回乙個值給作業系統,以此main函式是否執行正常,如果main返回值為0說明正常結束,否則說明程式執行出錯,需要呼叫一些錯誤處理。如記憶體分配失敗,資源申請失敗等。

微控制器工作的基本時序:

振盪週期:也稱時鐘週期,是指為微控制器提供時鐘脈衝訊號的振盪源的週期。

狀態週期:每個狀態週期是時鐘週期的二倍,是振盪週期二分頻得到的。

機器週期:乙個機器週期包括6個狀態週期也就是12個時鐘週期。

指令週期:他指cpu完成乙個操作所需要的全部時間。

當8051通電,時鐘訊號開始工作,在reset引腳上出現24個時鐘週期以上的高電平,系統即初始復位,初始化後,程式計數器pc指向0000h,p0-p3輸出口全部為高電平,堆疊指標寫入07h,其他專用暫存器被清「0」。reset由高電平下降為低電平後,系統即從0000h位址開始執行程式。然而,初始復位不改變ram(包括工作寄存r0~r7)的狀態。

復位的過程:剛開始電容內無電荷,vcc有電後,電流給電容充電,電流流向reset,產生復位,當電容充滿後,產生阻隔作用,阻隔了vcc,reset與乙個下拉電阻相連,變為低電平。如果想復位,可以按下按鍵,使短接,reset引腳再次產生高電平。

c-51包含的標頭檔案通常有:

reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h

常用的有:

reg51.h reg52.h math.h

中斷服務程式:

函式名()interrupt n

定義微控制器電平為ttl電平:

高+5v 低0v

rs232電平:

高-12v 低+12v

所以微控制器與計算機通訊時需要加電平轉換晶元max232

下一次跟微控制器的io口.最後,感謝那位同學,讓我重新拾起了好久都沒寫部落格的壞習慣!謝謝你!

51微控制器與C51

微控制器又稱單片微控制器,是在一塊晶元中整合了cpu 處理器 ram 資料儲存器 rom 程式儲存器 定時器 計數器和多種功能的i o 輸入 輸出 介面等一台計算機所需要的基本功能部件,從而可以完成複雜的運算 邏輯控制 通訊等功能。51微控制器是對所有相容intel 8031指令系統的微控制器的統稱...

51微控制器C51程式

學習c51程式之前需要對c語言有一定的了解和學習 這裡只介紹與c語言有區別的地方 具體的不同如下 1 c51中增加了幾種針對msc 51微控制器的特有資料型別 a sfr和sfr16 用於定義特殊功能暫存器,如 sfr psw 0xd0 一般情況下這些特殊功能暫存器不需要使用者自定義,通常包含在標頭...

C51微控制器 外部中斷

cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷發生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 如圖 引起cpu中斷的根源,稱為中斷源。中斷源向cpu提出的中斷...