分享學習51單片機的一點感悟
首先總體上談一談看法:
1、我從不說51是基礎,如果我這么說,也請把這句話理解為微機原理是基礎。
2、對51單片機的操作本質上就是對寄存器的操作,對其他單片機也是如此。庫只是一個接口,方便使用者使用而已。
3、匯編語言在工作中很少用到,了解就好。
4、51的P0口很特別。
5、C語言就是C語言,51單片機就是51單片機,算法就是算法,外圍電路就是外圍電路,傳感器就是傳感器,通信器件就是通信器件,電路圖就是電路圖,PCB圖就是PCB圖,仿真就是仿真。
當你以后再也不使用51了,C語言的知識還在,算法的知識還在,搭建單片機的最小系統的技能還在,傳感器和通信器件的使用方法還在,還會畫電路圖和PCB圖,當然也會仿真。
6、51單片機是這個:
而不是這個:
7、當程序調試不如人意的時候,靜下心來好好查資料,51單片機最大的好處就是網上資料非常多,你遇到的問題別人肯定也遇到過。作為學習者,問人可能更方便點,但一直這樣是培養(yǎng)不出解決問題的能力的。
接下來上點干貨:
首先要放清51的定位,跟我一起再念一遍:51只是個工具51只是個工具51只是個工具。當然51還有一個地位就是大學生單片機啟蒙教程。換句話說:單片機只是個工具單片機只是個工具單片機只是個工具。
然后什么是基礎:模電數電微機原理,然后熟練翻閱數據手冊,可以試著做一些模塊或者最小系統練練手,C語言其實也可以算工具吧,就單片機來說,作為必要條件也算作基礎吧。
再然后是要盡早搞明白自己的專業(yè)方向或者自己準備發(fā)展的方向,然后不同方向又有不同的專業(yè)基礎,你學測控,就需要各種傳感器、控制原理、理論、算法//買測量模塊用不叫測控啊喂;你學信號處理,就需要信號與系統、數字信號處理基礎,然后慢慢接觸DSP、FPGA//信號處理真的不是result=(AD+0.5)/4096*3.3啊喂;你想做嵌入式開發(fā),就慢慢研究ARM的架構,跑一些實時系統甚至高端ARM跑Linux開發(fā)驅動或應用;你要是想做通信,每天晚上拜一拜香農好了,這茬貌似挺苦的,什么通信原理編碼論電磁場blablabla……
總之51/單片機可以實現很多事情,但這不是一定說51重要,而是你如何利用51。哦對了,當你使用更高級的芯片的時候,很多底層的東西慢慢可以忽略了,甚至很多芯片廠商都會提供庫給你,你可以安心的專注于自己的算法而不是如何去控制單片機。當然你最好還是要有一個芯片怎么通過寄存器及各種邏輯電路工作的概念。
還有說一下你大學課余生活的選擇、首先那種機器人實驗室或者學生領導的實驗室,適合打比賽刷獎狀、長期下來你的模數電技能能有很大的鍛煉,甚至你可以收貨一些專利,而且學生之間氣氛也還不錯。另外一種就是找個導師跟著學習、幫忙、做項目,盡管最開始可能感覺導師分配給你的任務怎么都和單片機無關啊好無聊,但是你能在某個領域收獲不一樣的技術。當然前提是你要喜歡導師的研究方向了,一般院網站都有或者去知網看這個老師發(fā)表的論文。
談談我的經歷吧。
1、一個沒有C基礎的的我,從師兄老師那打聽到學51從郭天祥的視頻開始,所以我就下載了全套來看。剛開始看真是頭都暈了,點亮一個LED燈還可以,到了第二課的延時函數就吃不消了,可以說我耐力差吧,沒有堅持,可以說我沒恒心吧,不是真正想學東西的人,當時的我沒有把它放心上,只是看了4課而已,其實對里面的程序不太理解的,于是就停下來不學了。到了大二下學期,我發(fā)現要學點技術,所以重抄舊業(yè),學期單片機,然后再重第1課開始看起,結果發(fā)現以前不明白的東西現在豁然開朗。我寫這經歷是想說,如果當時我堅持下去,不懂的地方看多幾遍,不懂再看再看,就不會浪費大半年的時間了。有些知識理論靠時間的積累,第一遍看不懂,第二遍看不懂,第三遍可能就懂一點了,剛開始上手一件事是會遇到類似的情況的。
2、當我學了1個月后,學校里有個比賽,團隊需要一個人搞硬件,于是我自己提出搞硬件,為什么?因為在學單片機的過程中發(fā)現,自己只會跑程序,連原理圖都不怎么會看,單片機的接線我都是看開發(fā)板提供的資料來接的,很狗血吧。。。于是我就開始接觸Altium Designer了,這是我這學期學的第二個軟件。是看視頻入門的,剛開始看的是郭天祥的視頻,結果發(fā)現看不下去啊,太長太累了,看完一集好痛苦啊,于是我搜搜,結果發(fā)現一個很好的教學視頻,用的也是比較新的版本,叫《邊學邊玩Altium Designer》 四人行工作室開的。我真的提感謝作者這種開源的精神的,對我們初學者幫助很大。跟著他的視頻學習1個月,會畫出51最小系統,基本布線,不過我覺得還是不夠(當然不夠啦,你才學了一個月……)
3、在學Altium Designer的過程中涉及到電路分析,也就是我們現在學的《電子電路基礎》,于是愛折騰的我開始搗鼓起Multisim 12.0,這是一款電路模擬仿真的軟件。跟著老師學挺慢的,但是教材又高深了一點,比如說分析放大電路,穩(wěn)壓電源,教材上的東西大多列出公式,對于零基礎學習的朋友是挺苦逼的,而且老師也是趕鴨子式,講考試內容。這里建議大家買一本書《電子設計零基礎》第二版,這本書是我在圖書館偶然發(fā)現的,但從此就迷戀上了他。剛開始他不會介紹一大堆公式,以一個例子開始教學,一步一步教你認識元器件(這里對學PCB是有幫助的),然后從電路圖的一步分開始分析,接著分析怎么系統,書本結合Multisim 仿真,教你一步一步使用里面的控件。
寫到這里自己總結下:
對于1:學單片機最重要的是
1.先認識單片機,了解單片機的主要組成和各個管腳的定義及功;推薦書《單片機原理及其接口技術》胡漢才(很熟悉吧。。呵呵這就是我們大學的單片機教材啊!!經典中的經典啊!基礎中的基礎啊!!人家?guī)资甑慕滩臎]有變是有道理的,原理這種東西不會變到哪里去的。不用專門去看,當作了解,對你理解編程是很有幫助的。)
2.了解一些單片機匯編知識,方便后續(xù)調試;這本書《單片機原理及其接口技術》里面就是講匯編的,一舉兩得。
3.掌握單片機中斷機制;
4.掌握單片機定時和計數器;(3和4是對單片機內部寄存器的控制,要熟練掌握。那些外部拓展功能大多都基于這些內部控制)
5.掌握單片機的串口通信。
以上是對想從事單片機學習的人必須掌握的基本內容。
對于2、3:2、3可以在一起講,這是硬件部分的。Altium Designer主要學原理圖庫設計,PCB庫設計,布線。沒入門的朋友看下視頻,不要求什么都會畫,起碼要會用人家的庫,把人家的庫移植過來自己用,這樣可以快速上手這個軟件。到后來再慢慢完善自己不熟悉的地方,這在里一直頭疼我的就是封裝的問題,當時我連封裝是什么都不懂,自己看視頻查了資料,才慢慢有點認識。
編輯:admin 最后修改時間:2019-09-17