關於微控制器的學習經驗

2021-07-10 14:29:29 字數 1450 閱讀 6744

從51開始,到現在也有一年半的時間了,剛開始學51時,花了整整半年時間才覺得對它的功能有了基本掌握,後來在不斷地做了些東西後,才感覺比較熟練了。但當時,對如何快速上手一款從未接觸過的微控制器這個問題,仍然一片茫然。這種感覺一直持續到熟練32後,終於對微控制器的學習有一種一通百通的感覺。感覺到學習一款新的微控制器,其流程不外乎以下幾步,走完這幾步後,這款微控制器基本沒太大問題了。

1,對微控制器的基本情況進行了解(引腳,最小系統,電壓,rom,,ram,主頻 定址空間的分配,時鐘樹,常用外設)。

其實,如果說硬體來說,學到這就算學完了。但是從51到32的轉變,困難主要不在於硬體的學習,而是軟體,或者說是開發思維的轉變,我列舉一些比較鮮明的變化。

1,從單檔案程式設計到多檔案程式設計的變化,這個c語言學得好的同學應該不會有太大的問題,但我的c語言比較差(是從學51開始,才一點一點補起來的),當時所有的程式都寫在乙個c檔案裡,而且往往在main函式裡放一大堆東西。

2,從暫存器開發到庫開發,從51到32,微控制器變得越來越複雜,暫存器也越來越多,比如51的一組io口,只有1個八位的暫存器來控制,而32的一組io口,得7個32位的暫存器來控制。功能越來越強大,結構也越來越複雜,如果還以開發51的方式(直接配置暫存器)來開發32的話,工作將會變得異常麻煩,所以人們主要以庫開發的方式來開發32,(庫的作用是將微控制器的功能封裝成乙個個函式,使用某功能時直接呼叫配置函式就行,其實還是操作暫存器,庫的架構是這樣,首先將某外設(比如io口)所涉及到的暫存器封裝為結構體,然後以不同的值填充結構體,以構成不同功能的函式,(未完。。)

還有對外圍電路(感測器,顯示屏,通訊模組等)的理解

1,cpu與外圍模組訊號的傳輸無非數字量與模擬量,模擬量比較簡單,只是ad或da.

2,如果以數字量傳輸,傳輸方式一般就是 串列埠,並口,iic,spi,can,單匯流排。

3,顯示屏一般為6800或8080時序。攝像頭經常為vga時序。

4,模組的結構一般是這樣:功能模組(比如顯示器的顯示屏,通訊模組的發射與接收電路,感測器的探頭),配置模組(暫存器,乙個模組往往有很多暫存器。)通訊的內容分為兩類,命令(cmd)與資料(data),命令就是暫存器位址,而資料就是以資料內容配置暫存器。(有點模組比較簡單,將命令與資料放在乙個位元組裡,前幾位是暫存器的位址(或者說,前幾位進行位址的選擇),後幾位是資料,來配置暫存器,如1602,12864這些液晶顯示器。而si4432,mpu6050,ili9341這樣比較複雜的模組(上百組暫存器),命令與資料分開放置,命令一般以暫存器表的形式寫在datasheet裡,操作時,一條命令後面有時會跟著好幾條資料)。

模組學習,使用的一般思路是這樣的:

(1)了解模組的命令格式與時序。

(2)按需求初始化模組(配置暫存器)

(3)寫好基本操作函式(寫命令,寫資料,讀資料,延時操作等)

(4)將一些巨集定義,宣告放入h檔案,基本操作函式,初始化函式,還有其他一些寫好的功能函式儲存為c檔案。

(5)然後啥時間需要,啥時候將你儲存好的h檔案和c檔案新增進你的工程,直接呼叫即可。

關於微控制器中斷

中斷 cpu停止當前任務,去處理中斷內容,處理完後自動恢復以前任務。微控制器有5個中斷源,2個中斷優先順序,中斷受兩級控制 1 cpu開總中斷 2 中斷源開中斷。中斷源 引起中斷事件的型別。5個中斷源 1 外部中斷請求0,由int0 p3.2 輸入 2 外部中斷請求1,由int1 p3.3 輸入 3...

關於微控制器串列埠原理

c語言中 ea 1 允許總中斷 es 1 允許串列埠中斷 彙編中可用 setb ea 允許總中斷 setb es 允許串列埠中斷 當微控制器接收到一幀資料後,ri會置1,向cpu申請中斷,若之前有中斷允許,則產生了中斷,進入中斷服務程式。當然,微控制器傳送完一幀資料,ti也會置1,同樣會產生中斷!一...

關於微控制器的中斷問題

中斷,顧名思義就是停止當前正在做的一切事物。微控制器中的中斷系統包括中斷發生,中斷響應和中斷服務,以及中斷返回。是指cpu在接受到訊號以後暫停當前任務轉而去迅速完成另乙個任務,完成任務後在返回至之前的任務的過程。而當下列三個條件全部能滿足時cpu才有可能相應中斷 中斷源有中斷請求 此中斷源的中斷允許...