學習51單片機之前需要的基礎學科

我對於單片機的認識

首先,來跟大家聊聊,我對於單片機是怎麼接觸到的。
我是從大二開始學習的單片機,因爲所學的專業開設了這門課程。在此之前,我也只是聽說有這麼個東西叫做單片機,至於這個傳說中的東西究竟長什麼樣,我也是從來沒有見過滴!!!
下面,來看看它究竟長什麼樣吧~

STC12C5A60S2
這個黑黑的長方形的東西 ,就是我之前最常用的一款單片機,是STC(宏晶科技)出產的一款增強型51單片機。這裏大家可能會有疑問,既然是增強型的,到底是怎麼個增強法呢?(這個問題,我在這裏不做解釋,隨着後面的“劇情發展”,我會逐步列舉)。

那麼,這個單片機究竟是個什麼呢?這個在網上有許多說法,例如微控制器,單片式微控制器等。

但是根據我的個人理解,在最開始的時候,我就將它“粗糙”的理解成是一個開關,0打開1關閉,或者1打開0關閉。不管它內部到底有多麼複雜的東西,總之呢,我暫且就將它當作一個開關 ( 注意以上純屬是個人最開始的理解)。

學習單片機的預備知識

在學習單片機之前呢,我覺得先得需要掌握以下幾門課程。不然的話,我個人認爲,直接上手學習單片機會有很多困難無法解決,從而導致學習效果不太理想。

1、C語言
在行業內,寫單片機的底層驅動代碼,大多用的都是C語言。當然,也不缺乏有一部分的技術大拿,用彙編語言去寫。雖然用彙編語言編寫起來,在基於底層的硬件控制來講,會比C語言寫出來的代碼執行效果好。但是,代碼的可移植性比起C語言是遠遠不如的,在代碼的可閱讀性上也是不如讀C語言方便的。同時,代碼的書寫複雜度也會比起C語言來難上很多很多很多!!!

這樣說的話,可能同學們會認爲,彙編已經被淘汰了,沒有人用了。這樣想的話,大錯特錯。在編寫51單片機的代碼時,咱們大多時候,會直接加載一個頭文件"reg51.h"或者"reg52.h"也可能是其它的。但是同學們有沒有想過這麼一個問題,比如,在做一個工程的時候,代碼是如何找到 void main(void){ } 的?是keil軟件自動找到的嗎?如果是keil軟件找到的,那keil又是通過什麼找到的?在這裏,就涉及到一個特殊的東西,就是51單片機的啓動文件。可能在這裏同學們會問,這個啓動文件,和我剛剛所說學習彙編有什麼關係?在下面做出解答!!!!!

51單片機的啓動文件就是用彙編語言編寫的!!!
同時!!!
STM32的啓動文件也是用會彙編語言寫的!!!

那這個啓動文件有什麼用呢?
就是因爲有這個東西,所以keil纔會找到並跳轉到 void main(void){ } 裏面。當然,啓動文件不只是幹了這一個活,它裏面還有許多的工作,有興趣的同學可以自己去網上了解一下。

C語言既然如此重要的話,那究竟達到什麼程度才能去學習單片機呢?

有的學弟問我:“我C語言現在就會用三大結構:順序、選擇、循環。學到這個程度,我可不可以學習單片機呀?”
答:“如果只是這個程度的話,同學,我勸你再去學一學C語言吧~”

還有人問我:“學長,我現在的C語言的水平已經會用函數,指針,並且都用非常熟練,並且,我數據結構也學的非常好,很多算法我也是理解的非常透徹。”
達到這個水平去學單片機的話,學習些基礎性的知識,是完全沒有問題的,但是我建議,多去網上找一些資料,看看人家的代碼是怎麼寫的,向前輩們汲取一下經驗。

如果有人這樣問我的話:“哥,我現在感覺我的C語言編程能力遇到瓶頸了,我現在能看到操作系統的源碼,我能用C語言寫出來一個系統!!!”
那我會覺得你Good,Very good, Supper very good!!!

總結:我認爲,C語言起碼要把函數和指針這兩面理解透徹了再去學習單片機,能掌握一些經典算法更好,同時也是掌握的越多越好。

2、電路知識(模擬/數字電路)

想要單片機“跑起來”,沒有硬件平臺是不能夠的。爲什麼非要學習電路知識呢?
在實際的項目開發中,得需要設計電源電路吧?也得設計驅動電路吧?
不同的單片機,它的IO驅動能力也是不同的,這個時候,就需要非常紮實的電路知識來靈活的去設計它的相關電路。
當然,學會電路知識的好處不止於此,這裏我就不一一列舉,相信大家後來會慢慢發現的。

3、微機原理
學習了《微機原理》這門課程之後,我感覺只要是認真學了,那麼電路知識也會達到一定的水平。學完這門課之後,學起來單片機會相對輕鬆一些。爲什麼要這麼說呢?
《微機原理》學完之後,只要是做過實驗的,可以將《數字電路》上的內容多多少少用到一些,這樣就爲後面學習的51單片機做了一個很好的鋪墊。去看51單片機數據手冊的手冊的時候,它的最小系統電路,內部框圖,引腳定義,你多多少少都能看明白一部分。

注意:

我上面說的可不是僅僅學會了那三門課程,在今後學起來單片機就可以高枕無憂了。嵌入式這方面要想搞的深入,《操作系統》,《網絡基礎》這些基礎類學科一樣也不可以少。

前面的三門課程掌握了,只是可以初步的去學習單片機!!!

但是隨着大家的技術不斷進步,學習能力不斷提高,我相信,再艱難的課程也是小問題啦~

在這裏,希望大家可以學習快樂,早日將技術達到自己理想的水平。並且,大家在今後的學習中遇到什麼問題,也可以私信或者留言問我,我會盡量給大家一一解答!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章