相信很多電子科技愛好者都時常會聽到“單片機”這個詞,對很多電子電氣專業的學生來說更是如此。的確,單片機在生活中的應用也已經覆蓋了方方面面,那么就會有很多人想問:學習單片機難嗎?我該怎么入手?
以下僅僅是個人學習單片機的經驗,希望對新手有所幫。
基礎知識(磨刀不誤砍柴工)
欲罷不能的B站
(如果還沒接觸C語言的同學,建議出門左拐,B站搜索C語言,你會有一種找到“親兄弟”的感覺)
1. C語言知識
由于匯編語言不具備良好的移植性,而比較接近底層的編程語言也不多,使得C語言成為單片機開發的首選語言。
所以,要想學會單片機開發,C語言必不可少,且越精越好。單片機對于C語言的要求隨著單片機的高級程度增加而提高。
2. 常用的C語言知識
- 宏定義
- 數組
- 位運算
- 循環結構
- 順序結構
- 指針
- 結構體
3. 由于空洞的話容易讓人覺得不著邊際,在此貼出一個簡單程序,欣賞一番
- #include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
- typedef unsigned int u16; //對數據類型進行重新聲明定義
- typedef unsigned char u8;
- sbit LSA=P2^2;
- sbit LSB=P2^3;
- sbit LSC=P2^4; //位定義
- u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F的值
- /*******************************************************************************
- * 函 數 名 : main
- * 函數功能 : 主函數
- *******************************************************************************/
- void main()
- {
- LSA=0;
- LSB=0;
- LSC=0; //控制38譯碼器的Y0輸出低電平
- P0=smgduan[0];
- while(1);
- }
復制代碼
可能乍一眼看上去看不懂,沒關系,誰都有個過程,慢慢來,不著急!
從這程序中,你至少要體會到,要學習那些C語言知識,這才是這個程序的目的。
學習準備(工欲善其事,必先利其器)
硬件準備
新手建議購買51單片機,淘寶搜索51單片機開發板,(在此不做推薦,免得有推銷的嫌疑),大概在50塊左右,在購買之前,一定要向商家索要資料,沒有資料的強烈建議不要買!不要買!
資料準備
商家提供的基本夠解決問題,遇到不懂的問題,首先獨立思考,然后百度,當然,也可以詢問一些前輩。
軟件準備
現在最火熱的開發軟件就是Keil了,Keil我就不做介紹了,用過的基本都說好。keil官網
如果想要更加便捷的使用的話,請參考教程,可以轉戰:https://pan.baidu.com/s/18Tco65__XgBF-7WawL6ihQ 提取碼:1g0
注重過程(不積跬步,無以至千里;不積小流,無以成江海)
學習永遠是一條沒有盡頭的路,選擇了就不要輕易放棄,行百里者半九十,所以要有恒心、有毅力。
注重平時的積累過程,厚積薄發才能一鳴驚人。
勤于思考、融會貫通(學而不思則罔,思而不學則殆)
切忌眼高手低!!! 切忌眼高手低!!! 切忌眼高手低!!!
就算你照著源程序打一遍,你也可能會出錯,所以這個時候一定要老實點,不要以為聽懂就萬事大吉了
勤于思考,多問幾個問什么,感覺自己會了,開始有些膨脹的時候,需要撒泡尿清醒清醒(有本事默寫一遍?)
善于重復,一遍不行來兩遍,兩遍不行再來一遍,總會慢慢懂的。
|