微控制器C語言 最小系統

2021-04-25 03:59:57 字數 1494 閱讀 9127

我們已經了解了微控制器的基本引腳功能,現在我們就來看一看要讓微控制器能夠工作,我們應該做些什麼呢。

上面的圖就是微控制器的最小系統示意,一般來說,微控制器的最小系統包括電源(地),晶振(一般使用11.0592m或者12m),復位電路。有了以上三塊內容,微控制器就能夠工作了。另外要注意的一點是,ea(31腳)也要接高電平,告訴微控制器不使用片外儲存器,這樣微控制器系統才會老老實實地執行你燒寫進去的程式。

在以上的最小系統中,我們還接了乙個發光二極體電路,來驗證我們的最小系統是不是能夠正常工作。

還記得keil的使用方法嗎?用keil把以上**編譯一下,生成.hex檔案,然後就可以燒寫了。

一切就緒後,接上電源,復位一下,如果最小系統工作的話,應該顯示出乙個一閃一閃的發光二極體。

下面我們簡單看一下程式。良好的注釋習慣是程式設計序必備的要素,首先看一下keil c編譯器所支援的注釋語句。一種是以「//」符號開始的語句,符號之後的語句都被視為注釋,直到有回車換行。另一種是在「/*」和「*/」符號之內的為注釋。注釋不會被c 編譯器所編譯。與c語言一樣,keil c也應該有乙個main主函式,main函式可以呼叫別的功能函式,但其它功能函式不允許呼叫main函式。不論main函式放在程式中的那個位置,總是先被執行。

程式中p1_0是在標頭檔案中宣告的,有興趣可以開啟at89x51.h看看所有定義。它的意思就是微控制器i/o口的p1.0,p1_0=0意思就是把p1.0置低電平,反之,p1_0=1就是置高電平。

while迴圈是所有微控制器程式必須的要素,因為微控制器程式不像普通的c程式,算完後printf出來就行了,微控制器要能夠永遠工作下去,所以必須做成死迴圈,不然微控制器程式結束了,微控制器就失去控制了,這就是程式跑飛了~常見的用法就是直接在微控制器main函式最後加上while(1);,意思是微控制器執行到這裡就停止了,但是先前處理過的資料,i/o狀態等都還沒有丟失,並且一旦來了中斷,微控制器就能夠繼續響應中斷,再次執行中斷程式。

在示例中,我們採用的是do-while迴圈構成死迴圈,這樣做可以實現微控制器不斷重複某乙個操作,比如流水燈,按鍵掃瞄等等。for迴圈實質是乙個延時程式,我們知道,程式每執行一步都要花時間,將a自加50000次,這個時間足夠人眼分辨燈的閃爍了。當然,這種計時是相當不精確的。首先c語言不像彙編那樣能夠精確控制執行時間(執行一條彙編語句需要乙個機器週期,乙個機器週期通常等於12個時鐘週期,所以12m晶振大約1us),每條c語句通過不同的編譯器生成的對應的彙編**都不一定一樣,當然不能夠知道c語言一條語句需要多長時間了;其次不同的微控制器執行語句的機器週期也不一定一樣(比如:atmel 51系列及大多數51的乙個機器週期是12個時鐘週期,華邦的只需要4個時鐘週期)。不過大體來說,一條for迴圈大概8個機器週期,在12m晶振下,通常用以下**實現1ms的延時:

大概算一下,120*8*1us=1ms,如果需要精確的定時,還是得用定時器,我們以後介紹。

到這裡,我們大概了解了微控制器硬體和軟體的最小系統,俗話說得好,好的開始是成功的一半~

微控制器最小系統

微控制器最小系統 1 什麼是最小系統 能讓微控制器正常工作的最小電路 我們稱之為最小系統 2 最小系統包含哪些電路 至少 電源電路 晶振電路 復位電路 晶振電路 晶振就是為電路提供頻率基準的元器件 通常分為有源晶振和無源晶振兩個大類 復位電路 51晶元 通常在上電的瞬間需要乙個短暫的時間進行內部引數...

51微控制器最小系統

微控制器最小系統,或者稱為最小應用系統,是指用最少的元件組成的微控制器可以工作的系統.對51系列微控制器來說,最小系統一般應該包括 微控制器 晶振電路 復位電路.下面給出乙個51微控制器的最小系統電路圖.復位電路 由電容串聯電阻構成,由圖並結合 電容電壓不能突變 的性質,可以知道,當系統一上電,rs...

PCB 微控制器最小系統

今天自己利用dxp軟體做了乙個微控制器的最小系統,首先在dxp上新建乙個工程,工程建立完畢後繼續建立乙個原理圖,在原理圖上從元件庫里新增自己所需要的元件,在圖中的原件不需要用線一一連線起來,可以放置網路標號來實現管腳的連線,這樣會方便很多,放置元件的時候一定要注意元件有沒有footprint,也就是...