標題: 怎樣學好單片機呢 [打印本頁]

作者: jsming    時間: 2018-3-25 10:04
標題: 怎樣學好單片機呢
自己也學一段時間了,但還是不會。有什么建議怎么學單片機

作者: 123456LYH    時間: 2018-3-25 10:22
我的建議是,先學習一下c/c++的語法結(jié)構(gòu),(如果已經(jīng)學過的跳過這一步),懂得一些簡單的語法和概念,例如聲明頭文件,各種循環(huán)語句,switch語句等等,在單片機編程中都是用地比較多的,然后,開始了解單片機的結(jié)構(gòu),知道什么是定時器,什么是機器時鐘等等這些硬件知識,了解各種IO的作用和異同,這時就有了一些基礎(chǔ)準備,然后就是實踐了,從一些簡單的事例開始,例如流水燈,蜂鳴器等等,多看看別人的例子,學會后要自己進行修改,靈活運用,基礎(chǔ)知識掌握后,可以接觸一些電機的驅(qū)動等等的,PWN波的控制,然后就綜合所學的知識,嘗試參加一些小項目的制作,從中肯定會有所收獲,對單片機有更進一步的了解。
作者: mengyu    時間: 2018-3-25 10:36
單片機屬于入門非常簡單的一門學科,往深了說,你得會電路,模電,會拼個單管,差分,運放,對信號整流,濾波,穩(wěn)壓之類的。還得數(shù)電,數(shù)電主要學會用一些芯片,看懂時序圖之類。還要會C語言,最好再學一下匯編語言,主要鍛煉模塊化思想,會一些常見的算法,看懂程序。等等啊,要這么多的基礎(chǔ)。
往簡單的說,買一塊開發(fā)板,照著視頻做,也能會一些。
我現(xiàn)在大三,看法很粗淺,但我想:你說你只會個單片機,外圍電路都不會,新的芯片就不會用,那算什么呢?

作者: Elio    時間: 2018-3-25 10:38
我也是初學者,最好自己多動動手,做多了應(yīng)該就能理解一點
作者: angmall    時間: 2018-3-25 10:48
我始終認為,扎實的電子技術(shù)基礎(chǔ)是學好單片機的關(guān)鍵,直接影響單片機學習入門的快慢。

有些人覺得單片機很難,越學越復(fù)雜,最后學不下去了。有的人看書時似乎明白了,可是動起手來卻一塌糊涂,究其原因就是電子技術(shù)基礎(chǔ)沒有打好,首先被表面知識給困惑了。

作者: angmall    時間: 2018-3-25 10:49
單片機屬于數(shù)字電路,其概念、術(shù)語、硬件結(jié)構(gòu)和原理都源自數(shù)字電路,如果數(shù)字電路基礎(chǔ)扎實,對復(fù)雜的單片機硬件結(jié)構(gòu)和原理就能容易理解,就能輕松地邁開學習的第一步,自信心也會樹立起來。相反,基礎(chǔ)不好,這個看不懂那個也弄不明白,越學問題越多,越學越?jīng)]有信心。如果你覺得單片機很難,那就應(yīng)該先放下單片機教材,去重溫數(shù)字電路,搞清楚觸發(fā)器、寄存器、門電路、COMS電路、時序邏輯和時序圖、進制轉(zhuǎn)換等理論知識。理解了這些知識之后再去看看單片機的結(jié)構(gòu)和原理,我想你會大徹大悟,信心倍增。

作者: angmall    時間: 2018-3-25 10:49
模擬電路是電子技術(shù)最基礎(chǔ)的學科,它讓你知道什么是電阻、電容、電感、二極管、三極管、場效應(yīng)管、放大器等等以及它們的工作原理和在電路中的作用,這是學習電子技術(shù)必須掌握的基礎(chǔ)知識。一般是先學習模擬電路再去學習數(shù)字電路。扎實的模擬電路基礎(chǔ)不僅讓你容易看懂別人設(shè)計的電路,而且讓你的設(shè)計的電路更可靠,提高產(chǎn)品質(zhì)量。
作者: angmall    時間: 2018-3-25 10:50
單片機的學習離不開編程,在所有的程序設(shè)計中C語言運用的最為廣泛。C語言知識并不難,沒有任何編程基礎(chǔ)的人都可以學,在我看來,初中生、高中生、中專生、大學生都能學會。當然,數(shù)學基礎(chǔ)好、邏輯思維好的人學起來相對輕松一些。C語言需要掌握的知識就那么3個條件判斷語句、3個循環(huán)語句、3個跳轉(zhuǎn)語句和1個開關(guān)語句。別小看這10個語句,用他們組合形成的邏輯要多復(fù)雜有多復(fù)雜。學習時要一條語句一條語句的學,學一條活用一條,全部學過用過這些關(guān)鍵語句后,相信你的C基礎(chǔ)建立了。

作者: bayga456    時間: 2018-3-25 10:53
定一個目標,就是你要用單片機做什么。有了目標就有方向了。
作者: qwerqwerq    時間: 2018-3-25 10:56
在網(wǎng)上看視頻學習
作者: qq9230    時間: 2018-3-25 11:09
把每個寄存器,定時器,外部中斷等
自己一個個整明白,然后自己在開發(fā)板上面修改例程看效果
最后,做一個小作品,例如做小車什么的就可以了,做實物是進步最快的
作者: 嗨你好    時間: 2018-3-25 11:59
我建議多和老師交流,多看有關(guān)的書籍單片機屬于數(shù)字電路,其概念、術(shù)語、硬件結(jié)構(gòu)和原理都源自數(shù)字電路,如果數(shù)字電路基礎(chǔ)扎實,對復(fù)雜的單片機硬件結(jié)構(gòu)和原理就能容易理解,就能輕松地邁開學習的第一步,自信心也會樹立起來
作者: xuexuexi    時間: 2018-3-25 12:55
建議先學C語言基礎(chǔ)或單片機編程和C語言一起學,這兩個方法是我認為最實在的方法,希望對你有用
作者: fire111    時間: 2018-3-25 13:06
主要得多做實驗
作者: eefsdf    時間: 2018-3-25 13:17
先學會編碼語言,之后可以自學
作者: 奎爾塞拉    時間: 2018-3-25 13:49
哇,看了樓上的一些回復(fù)頭有點大,如果當初我這么學可能會被瞎到吧,雖然說得有道理。
樓主的問題是,已經(jīng)自學過一段時間,但是覺得還是什么都不會。正好昨天有個同學跟我聯(lián)系,想學單片機,他的想法是先去看微機原理這本書。這本書主要講的是匯編語言,是原理,而不是應(yīng)用。在我們學校,微機原理是必修課,大家都上過,但是真正會單片機的人不多。
原理、基礎(chǔ)、電學知識固然重要,但是對于一個還沒有入門的同學,拿著個出來,可能就直接嚇退了。因此,如果入門有困難,就暫時拋開原理,談應(yīng)用。

所以,我的建議是,買一塊開發(fā)板,直接跟著開發(fā)板學。當你點亮了led,用對了數(shù)碼管,測量了距離并且顯示到液晶顯示屏上的時候,這一步步的成就感會推動你往前面走的。這個時候,你要記住,原理、電學很重要(但不是必要的,也就是說其實你不會也同樣能實現(xiàn)這些功能,如果你只是玩玩而已就夠了,如果你先深入挖掘還是需要的)。這一步我覺得還不算入門,但是你起碼知道了單片機是什么,大概怎么用,還可以出去吹吹牛。
另外對于C語言,我個人只會for while if,別的我基本都不會。但是我目前發(fā)現(xiàn)編程中真正的難點是通訊協(xié)議,時序,特別是用到了&,~,|,這些東西的時候。難的是你如果實現(xiàn)你想要的功能,而語法上for while if足夠用了。因此,大可不必糾結(jié)于C語言,先入了單片機的門,再慢慢來補。

當年去學習一個東西的時候,如果你太過糾結(jié)于他的鋪墊知識,這種知識是很多的,你會花很多精力去學,最后反而害怕起來了。如果是之前在學校學過,而且很熟練自然很好,如果沒有,先上路后面再補吧
作者: 845262466    時間: 2018-3-25 14:04
單片機需要c語言的基礎(chǔ),如果想快一點,你得會用c語言編寫幾個代碼,不用太深,基礎(chǔ)的邏輯語言就行了。
之后主要是單片機的入門,網(wǎng)上有郭天祥的,可以看著學一下,關(guān)鍵是實操,不買一個單片機寫寫代碼測試測試,真的很難學好的,主要就是一個邏輯的問題,單片機就像一個很小很簡單的電腦,每個接口都有定義,所有的模塊都需要先入門,在深度研究,其實只要入門了感興趣了,成為大神不是夢
作者: JACKLI    時間: 2018-3-25 22:52
首先,你得先學會C語言的基本邏輯運算;
其次,如果有條件的話就買一個單片機開發(fā)板(會有附帶一些學習的資料),或者自己買幾個單片機,焊一個單片機最小系統(tǒng)(因為每做成一件事情就會給自己帶來一點動力,然后學習興趣才會越來越大!這樣學起來會很有成就感,這是每個人都想要得到的東西。
從最簡單的 LED 燈的亮滅開始, 再到 流水燈,然后再繼續(xù)一點點的加大難度 (如果學習能力比較好的話,一周就可以做出一個遙控小車。)
先從小的方面學起,千萬不要不會走路就想要跑,這樣遇到了難題決解不了很容易挫敗自己的自信心!
加油吧 ~

作者: yiyi778899    時間: 2018-3-26 15:48
單片機有軟硬件兩方面的內(nèi)容,有時一個程序怎么調(diào)都不出效果,然而從理論分析卻又是對的,這是就要仔細找原因了,學習單片機經(jīng)常碰到很多問題,有時一兩天都不能解決,這是就要有耐心,從底層找起,相信每找出一個錯誤都會有一個新的收獲。切不可輕言放棄!。
作者: yiyi778899    時間: 2018-3-26 15:49
在有數(shù)電c語言基礎(chǔ)上,可以實踐再去理解晦澀的理論。理論再指導(dǎo)掌握單片機。
作者: 610140988qq    時間: 2018-3-26 16:17
買一塊開發(fā)板,直接跟著開發(fā)板學。實驗一個一個恨著視頻做,
作者: xzh5508    時間: 2018-3-26 16:34
最好是有一塊開發(fā)板,照著學,沒那么枯燥,而且容易看到效果,這樣就有興趣一些!
作者: htrees    時間: 2018-3-26 16:49
買一塊單片機板子,實踐是最好的學習途徑
作者: lhr333    時間: 2018-3-26 16:56
多打代碼
作者: htrees    時間: 2018-3-26 17:04
給你一組入門實驗,對照學習,多動手,很快會入門
作者: 1215健    時間: 2018-3-26 17:09
上網(wǎng)看視頻啊,如果還在讀書的話多問問老師和班里的大神。
作者: sunrider1982    時間: 2018-3-26 17:33
好吧,看了這么多雖然年齡可能沒我的大,但是經(jīng)驗比我豐富的各位前輩的建議,我還是規(guī)規(guī)矩矩買個板子來吧,數(shù)模電確實感覺都忘完了。。。
作者: xuyuzuishuai    時間: 2018-3-26 18:07
基礎(chǔ)知識,在我們學習單片機的過程中十分重要。打好基礎(chǔ),就可以從一個點出發(fā),逐漸觸及其他知識。這也就是為什么網(wǎng)上有人認為先學好51單片機再去學arm會更好
作者: scott666666    時間: 2018-3-26 18:19
自己根據(jù)論壇里面的實例做幾個吧
作者: _Blue    時間: 2018-3-26 18:25
在學校就去實驗室,在社會就去培訓
作者: 250895587    時間: 2018-3-27 10:23
我也是自學的,我覺得先看C然后在學硬件
作者: jokerq    時間: 2018-3-27 12:35
多去實踐寫代碼,多逛論壇看官方文檔
作者: 啊小    時間: 2018-3-27 13:03
先學好C語言,再買一塊開發(fā)板看視頻教程學習,從最基礎(chǔ)的流水燈慢慢往上做。
作者: Sid227    時間: 2018-3-27 13:55
先買個板子,多看看郭天祥視頻
作者: 程同123    時間: 2018-3-27 14:25
用心去學
作者: 小胖波波    時間: 2018-3-27 14:31
最簡單的方法,就是視頻,看原理圖,看人家代碼,自己嘗試的寫代碼,一步一步來,急不得
作者: spring001    時間: 2018-3-27 14:56
可以先分別簡要學習硬件部分(數(shù)電,模電)和軟件部分(C語言),基本了解后買塊板子自己聯(lián)系,教程從網(wǎng)上下載。
作者: 對對對我問問    時間: 2018-3-27 15:08
你得先學會C語言的基本邏輯運算;
其次,如果有條件的話就買一個單片機開發(fā)板(會有附帶一些學習的資料),或者自己買幾個單片機,焊一個單片機最小系統(tǒng)(因為每做成一件事情就會給自己帶來一點動力,然后學習興趣才會越來越大!這樣學起來會很有成就感,這是每個人都想要得到的東西。
從最簡單的 LED 燈的亮滅開始, 再到 流水燈,然后再繼續(xù)一點點的加大難度 (如果學習能力比較好的話,一周就可以做出一個遙控小車。
作者: kwj620    時間: 2018-3-27 15:11
平時多熟悉程序,多動手,加油吧!
作者: 001002003    時間: 2018-3-27 15:27
先買一塊開發(fā)板,然后多看看單片機的書,再去下載網(wǎng)上的視頻跟著做,堅持就能學會的。!加油啊!
作者: zlf1997    時間: 2018-3-27 16:01
我也是新手,多照著例子程序?qū)憣懣纯,寫得多就會了,和學車一個道理,關(guān)鍵是要下功夫
作者: bitfym    時間: 2018-3-27 16:26
學會keil軟件編程,學會proteus仿真調(diào)試,剩下的就是實際動手了
作者: bitfym    時間: 2018-3-27 16:27
學會keil軟件編寫程序,學會protel模擬仿真,剩下的就是實際動手了。
作者: luoxiaodong    時間: 2018-3-27 19:54
建議買芯片以及一些小器件回來按著書上的一些步驟簡單的弄些小實驗有用
作者: zjczjcza    時間: 2018-3-27 22:47
先學好C語言,然后找個教程把程序都寫一遍,多動手就熟了。
作者: liangjiayi    時間: 2018-3-28 00:06
看視頻學咯
作者: zhumenglu    時間: 2018-3-28 23:26
先學一個入門的51,再學別的比較容易,可以先學一下理論知識,然后在看幾個歷程,然后自己試著變一下
作者: 我是天才    時間: 2018-3-29 00:37
最快的方法是看視頻學習
作者: ke_xichun    時間: 2018-3-29 08:49
學好C語言是關(guān)鍵!
作者: 111111158    時間: 2018-3-29 09:26
看視頻
作者: cuifuzhang    時間: 2018-3-29 09:35
首先要多看單片機相關(guān)方面的書籍,如51系列單片機,懂得編程語句的應(yīng)用; 第二,從最小應(yīng)用程序著手,自己焊接簡單電路,如跑馬燈點亮電路等; 第三,學會使用KEILC51編程軟件,包括建立工程、程序輸入、保存、生成HEX文件等; 第四,把程序生成的HEX文件下載到單片機,可以用編程器或ISP下載線; 第五,運行單片機程序。通過以上步驟的學習,自己頭腦中就會比較清晰,至少會用; 最后根據(jù)運用的場合進行實踐學習,如鍵盤輸入、顯示、定時輸出等等,邊實踐邊學習,目的性才會更明確,同時學習的效率也會明顯提高。
作者: sdbzwhh    時間: 2018-3-29 10:19
雖然說用proteus仿真也是可以學的,但是非常建議買一個開發(fā)板,畢竟這是軟件硬件都需要的知識,多練習,多試著去做一些小設(shè)計,哪怕是從一個簡單的流水燈開始
作者: iwanna被uguy    時間: 2018-3-29 15:18
多實際動手操作
作者: yjh12345    時間: 2018-3-29 15:31

單片機的學習離不開編程,在所有的程序設(shè)計中C語言運用的最為廣泛。C語言知識并不難,沒有任何編程基礎(chǔ)的人都可以學,在我看來,初中生、高中生、中專生、大學生都能學會。當然,數(shù)學基礎(chǔ)好、邏輯思維好的人學起來相對輕松一些。C語言需要掌握的知識就那么3個條件判斷語句、3個循環(huán)語句、3個跳轉(zhuǎn)語句和1個開關(guān)語句。別小看這10個語句,用他們組合形成的邏輯要多復(fù)雜有多復(fù)雜。學習時要一條語句一條語句的學,學一條活用一條,全部學過用過這些關(guān)鍵語句后,相信你的C基礎(chǔ)建立了。
作者: wyhlhywyb    時間: 2018-3-29 16:01
先弄清基本的硬件原理,再找個教程,最好實際過一個簡單的硬件開發(fā)項目
作者: xijunkk    時間: 2018-3-30 11:59
從基礎(chǔ)原理開始學習
作者: xijunkk    時間: 2018-3-30 12:02
首先,你得先學會C語言的基本邏輯運算;
其次,如果有條件的話就買一個單片機開發(fā)板(會有附帶一些學習的資料),或者自己買幾個單片機,焊一個單片機最小系統(tǒng)(因為每做成一件事情就會給自己帶來一點動力,然后學習興趣才會越來越大!這樣學起來會很有成就感,這是每個人都想要得到的東西。
從最簡單的 LED 燈的亮滅開始, 再到 流水燈,然后再繼續(xù)一點點的加大難度 (如果學習能力比較好的話,一周就可以做出一個遙控小車。)
先從小的方面學起,千萬不要不會走路就想要跑,這樣遇到了難題決解不了很容易挫敗自己的自信心。
加油吧 ~

作者: xijunkk    時間: 2018-3-30 12:20
單片機屬于數(shù)字電路,其概念、術(shù)語、硬件結(jié)構(gòu)和原理都源自數(shù)字電路。我的建議是,買一塊開發(fā)板,直接跟著開發(fā)板學。焊一個單片機最小系統(tǒng),因為每做成一件事情就會給自己帶來一點動力,然后學習興趣才會越來越大!這樣學起來會很有成就感,這是每個人都想要得到的東西!從最簡單的 LED 燈的亮滅開始, 再到 流水燈,從一些簡單的事例開始,例如流水燈,蜂鳴器等等,多看看別人的例子,學會后要自己進行修改,靈活運用,基礎(chǔ)知識掌握后,可以接觸一些電機的驅(qū)動等等的,PWN波的控制,然后就綜合所學的知識,嘗試參加一些小項目的制作,從中肯定會有所收獲,對單片機有更進一步的了解。最好自己多動動手,做多了應(yīng)該就能理解一點。

作者: zhj666    時間: 2018-3-30 13:05
先買一塊開發(fā)板,然后多看看單片機的書,再去下載網(wǎng)上的視頻跟著做,堅持就能學會的!!加油啊!
作者: 可愛你個頭阿    時間: 2018-3-30 13:55
學習單片機快速入門的方法就是有一份好的資料,下面的資料非常好,能幫助你快速入門。

http://hi.baidu.com/dzkfw/blog/item/4a188216fd986b12c83d6d05.html   
不平凡的單片機學習資料,很好的單片機教程,超好用,一個不占內(nèi)存的教程,有案例。

1、最新版單片機編程寶典下載地址,學習單片機編程必備手冊

2、單片機c語言運用例子

3、十天學會單片機c語言和單片機制作,最好的單片機資料  

電路公式計算器:http://hi.baidu.com/dzkfw/blog/item/7a947b4f588099d1d0c86a3e.html
作者: Jun默默淡定    時間: 2018-3-30 15:01
1、最重要的就是實踐,很多人學單片機都只是停留在看書和看視頻階段,這樣子反反復(fù)復(fù)不管你學了多久都是學不會;
作者: Jun默默淡定    時間: 2018-3-30 15:11
1、最重要的就是實踐:買一塊開發(fā)板(也叫學習板),也可以叫會單片機的人幫你搭一塊,在看書和看視頻學習之余,要多寫程序去驗證,要多根據(jù)學習板的電路來寫程序,特別需要注意的是:*要學會自己寫程序,看書看視頻的過程中學習人家的編程思路,通過多實踐多敲代碼來形成自己的單片機編程思路*。好多人成天看書看視頻,然后去跟著書本或是視頻中人家的步驟來照敲,到自己去寫代碼的時候根本不知道該怎么寫。所以說要多實踐,多自己寫代碼,形成自己的單片機編程思路;
作者: 馬先生    時間: 2018-3-30 15:54
同問,我是做硬件的,自學了一段時間單片機。一直未入門,
作者: 神來也也    時間: 2018-3-30 17:23
這個問題就是仁者見仁了,還是得看你自身得情況,是在校學生當然是像老師請教還有就是圖書館,要不是的話就多多上這個論壇看視頻學習
作者: feifei1884    時間: 2018-3-30 17:58
多看源碼
作者: Ruc    時間: 2018-3-30 21:08
個人經(jīng)驗,先多看看C語言的書,譚浩強的就行,然后多看郭天祥的51的書,然后在學32入門
作者: ly1539386879    時間: 2018-3-30 22:07
一起努力
作者: xiaomianyang    時間: 2018-3-30 22:44
本人覺得要學好單片機,首先要懂C語言,這個不難學,推薦用譚浩強的C程序設(shè)計,其次再去看有關(guān)單片機的書本和視屏,郭天祥的書本和教學視屏挺通俗易懂的,在學習的過程中,最好買塊單片機學習版,這樣讓你在學習掌握的更快,更有成就感
作者: xiaomianyang    時間: 2018-3-30 22:48
我覺得最好得先懂C語言,推薦譚浩強的《c程序設(shè)計》里面的例子很有針對性,然后再去看單片機的書籍和視頻,郭天祥的配套書籍和視屏挺不錯的,在學習的過程中,最好買一塊學習版,這樣學習起來非常有成就感。
作者: jialong_2018    時間: 2018-3-30 22:57
推薦你買一本51單片機的好書,再買個開發(fā)板
作者: pmsjzj    時間: 2018-3-30 23:32
多練習多問
作者: GeniusXF    時間: 2018-3-30 23:42
多去動手做,看看大神的研究過程。
作者: 青出于藍    時間: 2018-3-31 09:51
多動手,多畫
作者: x94bp6ru6    時間: 2018-3-31 10:51
我也是初學,覺得買學習套件邊做邊學效果應(yīng)該比較好
作者: 123456m    時間: 2018-4-26 17:12
看看郭天祥單片機教程
作者: 7712    時間: 2018-4-26 22:59
做幾個項目,在實踐中學習
作者: 576932550    時間: 2018-4-26 23:08
看網(wǎng)上視頻 愛課程網(wǎng)站一般有大學老師的課程
作者: cym@    時間: 2018-4-27 01:18
1、熟悉單片機的原理,結(jié)構(gòu);  2、學好數(shù)電,模電,為設(shè)計電路打好基礎(chǔ);  3、熟練使用C語言,多學習別人的程序; 4、對操作系統(tǒng)原理有一定的了解;  5、Protel至少要有點基礎(chǔ); 6、要實際動手調(diào)試電路的能力。
作者: wakaYG    時間: 2018-4-27 08:57
跟著一本教材走  學會了單片機的內(nèi)部外設(shè)怎么用 就開始玩外部的外設(shè)比如藍牙  WIFI等
作者: wld1101    時間: 2018-4-27 09:07
首先學好編程的基礎(chǔ)
作者: wld1101    時間: 2018-4-27 09:08
買些書籍,在網(wǎng)上查找相關(guān)的視頻
作者: DREAMCATCHER_XM    時間: 2018-4-27 09:21
先學好數(shù)字電路,和C語言,然后就是多操作,多寫程序調(diào)試
作者: 庸人自擾2018    時間: 2018-4-27 09:36
1.學習基本的c語言編程。
2.買個開發(fā)板用c語言將外設(shè)都驅(qū)動一遍。
3.找份c語言相關(guān)的工作,比如單片機。
4.工作上碰到問題,先自己多思考解決下,實在不型上網(wǎng)。
5.嘗試獨立做一些感興趣的,自己有可能能做的小項目。有基礎(chǔ)的話,建議從原理圖-電路板-焊接-軟件調(diào)試。做幾遍。每次碰到的問題都是你學習的寶貴經(jīng)驗。
6.最后請熱愛你的工作。
作者: huallin01    時間: 2018-4-27 09:47
先動手,如果你太過糾結(jié)于他的鋪墊知識,這種知識是很多的,你會花很多精力去學,最后反而害怕起來了。如果是之前在學校學過,而且很熟練自然很好,如果沒有,先上路后面再補吧
作者: m640359    時間: 2018-4-27 09:47
用c語言,不建議匯編語言
作者: huallin01    時間: 2018-4-27 09:49
先動手,如果你太過糾結(jié)于他的鋪墊知識,這種知識是很多的,你會花很多精力去學,最后反而害怕起來了。如果是之前在學校學過,而且很熟練自然很好,如果沒有,先上路后面再補吧
作者: 123456dmq    時間: 2018-4-27 11:13
先買開發(fā)板,然后學習一些基礎(chǔ)知識,然后實踐,邊實踐,邊完善學習
作者: 77582581234    時間: 2018-4-27 12:59
首先你得先學習C語言,然后再進一步的學習單片機
作者: 77582581234    時間: 2018-4-27 13:00
C語言功底不扎實
作者: 夜零穎    時間: 2018-4-27 13:58
多看書,不放棄,就像玩游戲練級一樣不可能一下子就成為大神的,得從基礎(chǔ)開始
作者: 云云    時間: 2018-4-27 14:13
自己上網(wǎng)搜些教學視頻看看,再結(jié)合書本
作者: Yhuasis    時間: 2018-4-27 14:41
先學會編碼語言,之后可以自學
作者: qwerqwerq    時間: 2018-4-29 15:03
可以上網(wǎng)查
作者: 不要不要    時間: 2018-4-29 16:48
去圖書館找點書籍,自己使勁啃的同時,多編程練習
作者: 970611    時間: 2018-11-21 16:52
先學代碼,然后再學單片機
作者: isgoodmm    時間: 2018-11-21 17:27
我的經(jīng)驗是多練習,多做項目
作者: zc980403    時間: 2018-11-21 18:33
先學C51,做個東西
作者: 弓長小賤    時間: 2018-11-22 17:40
自學的話有點麻煩啦,有老師就簡單了,最重要還是c語言得好,這是核心哎,要不然編碼都不會
作者: 6467778399    時間: 2018-12-11 17:17
多加練習
作者: a89588038    時間: 2018-12-14 15:30
工程師教你如何學習單片機   

1、萬事開頭難、要勇敢邁出第一步。

開始的時候,不要老是給自己找借口,說KEIL不會建項目啦、沒有實驗板啦之類的。遇到困難要一件件攻克,不會建項目,就先學它,這方面網(wǎng)上教程很多,隨便找找看一下,做幾次就懂了。然后可以參考別的人程序,抄過來也無所謂,寫一個最簡單的,讓它運行起來,先培養(yǎng)一下自己的感覺,知道寫程序是怎么一回事,無論寫大程序還是小程序,要做的工序不會差多少,總得建個項目,再配置一下項目,然后建個程序,加入項目中,再寫代碼、編譯、生成HEX,刷進單片機中、運行。必須熟悉這一套工序。個人認為,一塊學習板還是必要的,寫好程序在上面運行一下看結(jié)果,學習效果會好很多,仿真器就看個人需要了。單片機是注重理論和實踐的,光看書不動手,是學不會的。

2、知識點用到才學,不用的暫時丟一邊。

厚厚的一本書,看著人頭都暈了,學了后面的,前面的估計也快忘光了,所以,最好結(jié)合實際程序,用到的時候才去看,不必說非要把書從第一頁看起,看完它才來寫程序。比如你寫流水燈,完全就沒必要看中斷的知識,專心把流水燈學好就是了,這是把整本書化整為零,一小點一小點的啃。

3、程序不要光看不寫,一定要自己寫一次。

最開始的時候,啥都不懂,可以抄人家的程序過來,看看每一句是干什么用的,達到什么目的,運行后有什么后果,看明白了之后,就要自己寫一次,你會發(fā)現(xiàn),原來看明白別人的程序很容易,但到自己寫的時候卻一句也寫不出來,這就是差距。。。當你自己能寫出來的時候,說明你就真的懂了。。。

4、必須學會掌握調(diào)試程序的方法。

不少人寫程序,把代碼寫好了,然后一運行,不是自己想要的結(jié)果,就暈了,然后跑到論壇上發(fā)個帖子,把程序一貼,問:為什么我的程序不能正常運行?然后就等別人來給自己分析。這是一種很不好的行為,應(yīng)該自己學會發(fā)現(xiàn)問題和學會如何解決問題。這就需要學習調(diào)試程序的方法,比如KEIL里,可以下斷點啦,查看寄存器內(nèi)容等等,這些都是調(diào)試程序的手段,當你發(fā)現(xiàn)你寫的程序運行結(jié)果和你想象中不一樣的時候,你可以單步,也可以下斷點,然后跟蹤,查看各相關(guān)寄存器內(nèi)容,看看程序運行過中是不是有什么偏差,找出影響結(jié)果的地方,改正過來。這一個過程非常重要,通過程序的排錯,你可以學到的知識是書上得不到的。

5、找到解決問題思路比找到代碼更重要。

我們用單片機來控制周邊器件,達到我們想到的目的,這是一個題目,而如何寫出一個程序,來控制器件按你想要的結(jié)果去運作,這個就是解題的思路。要寫程序,就得先找到解決問題的思路,你學會找出這個解題思路,比你找到代碼更為重要。不少人很喜歡找人家的代碼,有的人甚至有了代碼就直接復(fù)制到自己的程序中,可以說,這不是一種學習的態(tài)度,無助于你編程水平的提高。我?guī)缀醪辉趺纯慈思业拇a,多數(shù)時候是看別人的思路,有方框圖最好,沒有的話文字說明也可以,要從代碼中看出別人處理問題的思路,是相當困難的,特別是大型的程序,看起來是非常的累人,所以現(xiàn)在我也明白了,以前讀書時說的程序流程圖很重要,現(xiàn)在算是知道了。當你知道一個問題怎么去解決了,那么剩下的只是你安排代碼去完成,這就已經(jīng)不是什么問題了。舉個例子:數(shù)碼管動態(tài)掃描,沒寫過的初學者可能搞不清是怎么回事,其實,就是分時讓每一時間段時只控制一只數(shù)碼管顯示數(shù)字,幾只數(shù)碼管輪流顯示,由于速度很快,人眼的看起來是全部數(shù)碼管都亮的。明白是這么一回事,事情就好辦了,剩下的事情,無非是你安排讓一只只數(shù)碼管輪流顯示出相應(yīng)的數(shù)值。顯示數(shù)字,然后延時一下,再下一只顯示數(shù)字,延時,知道是這樣,我們實際程序上只要做到這樣就可以:往段口送段碼,然后打開位選顯示一只,延時一下,再關(guān)閉位選,再送出段碼,再打開另一只位選..僅此而已。有了解決問題的思路,我們就能問題拆分開來,然后逐一的解決,如果動態(tài)掃描的原理都沒懂,不知道如何做,那么這個程序是怎么也寫不出來的。

6、開動腦筋,運用多種方法,不斷優(yōu)化自己的程序。

想想用各種不同方法來實現(xiàn)同一功能。這是一個練習和提高的過程,一個問題,你解決了,那么你再想想,能不能換種寫法,也可以實現(xiàn)同一功能,或者說,你寫出來的代碼,能不能再精簡一點,讓程序執(zhí)行效率更高,這個過程,就是一個進步的過程。很多知識和經(jīng)驗的獲得,并不是直接寫在書讓你看就可以得到的,需要自己去實踐,開動腦筋,經(jīng)驗才能得到積累,編程水平才能有所提高。

7、看別人的代碼,學習人家的思路。

這個在學習初期是很有用,通過看別人的代碼,特別是有多年編程經(jīng)驗的人寫出的具有一定水平的代碼,可以使自己編程水平得到迅速的提高,同時,也可以結(jié)合別人的編程手法,與自己的想法融合在一起,寫出更高水平的代碼,從中得到進步。但要注意,切忌將學習變成抄襲,更不是抄襲完了就認為自己學會了,這樣做只會使你退步。

8、嘗試編寫一下綜合應(yīng)用的程序。

從流水燈學起,到動態(tài)掃描,再到中斷,那么,你可以試試寫一下時鐘這種綜合性應(yīng)用的程序,不要小看時鐘,要寫好它不是一件容易的事情,它包括了單片機大部分的知識,比如有按鍵(IO讀取)、動態(tài)掃描(IO輸出)、中斷等,如何協(xié)調(diào)好各功能模塊正常工作,才是編程者需要學習的地方,當你單獨寫一個功能的時候,比如按鍵讀取,你可能感覺很容易,因為你的程序啥也不做,只是讀按鍵。但把它和其它功能混合在一起,如何在整個程序運行中使每一部分都正常工作,這就不是寫一個按鍵讀取這么容易的事情,功能模塊之間有可能會互相影響,比如你需要讓數(shù)碼管既能顯示,又要去處理按鍵讀取,怎么使這兩部分都正常工作,這就是一個協(xié)調(diào)過程。當你有了這個處理協(xié)調(diào)能力,你就算是入門了。

9、著重于培養(yǎng)解決問題的能力,而不是具體看自己編寫了多少代碼或者做過什么。

“學單片機重點在于學習解決問題的思路,而不是局限于具體的芯片類型和語言”這一直是我的座右銘,是我學單片機多年來感悟出來的。經(jīng)常看到有人說“你會驅(qū)動XX芯片,真牛啊”“你搞過XX項目,真厲害”之類的話,其實這是非常片面的,搞過XX芯片,搞過XX項目,只能說明你做過這一項目,它只是你的業(yè)績,并不是代表能力就一定高。真正的能力應(yīng)該是:“遇到?jīng)]有解決過的問題或器件,能利用自己已學的知識,迅速找到解決問題的方法。”這個才是能力。寫程序的過程就是一個創(chuàng)造的過程,幾乎沒有完全一樣的項目,每次你遇上的幾乎都不相同,所以你擁有的必須是你面對新項目時的創(chuàng)造能力,而不是標榜著你以往做過多少項目。當然,業(yè)績也能從另一側(cè)面反映你的經(jīng)驗和水平。

10、如果有可能,多學習計算機專業(yè)的知識,比如數(shù)據(jù)結(jié)構(gòu)等。

這些是你解決問題的基礎(chǔ)知識,你把這些知識應(yīng)用得越好,就會發(fā)現(xiàn)越容易找到解決問題的方法,這就是為什么一個學計算機專業(yè)的人編的程序和一個非計算機專業(yè)的人編的程序有差異的原因。也是一個菜鳥進軍到高手所要配備的知識。如果我們把編程分為宏觀編程和微觀編程,那么微觀編程就是寫具體的代碼,比如控制某某器件的語句;而宏觀編程就是如何對整個程序進行布局、安排,使功能模塊以你想要的方式去運行,得出你想要的結(jié)果。如前所說“會控制XX器件”這些只能算是微觀編程,能做到這一步還只能算是菜鳥級別,如果面對一個新的器件,你心里沒底,沒把握去寫這個控制程序,那說明你還是一個初級的菜鳥。當你有了一定的編程經(jīng)驗,控制過相當數(shù)量的器件之后,你就會發(fā)現(xiàn),控制器件這些工作都是相似的、重復(fù)的工作,體現(xiàn)不出編程的水平,最多也是寫得好與不好的差別,只能算是一些小技巧的應(yīng)用。而對整個程序進行布局、安排這些才是最頭痛的事情,能達到宏觀編程和微觀編程都做好才是真正的高手。對于規(guī)模越大的程序,越能體現(xiàn)出這一點。

11、面對一個新項目時,多自己開動腦筋,不要急于找別人的程序。

有不少人面對一個新項目時,第一步想到的就是網(wǎng)上找別人寫過的代碼,然后抄一段,自己再寫幾句,湊在一起就完成任務(wù),這雖然可能是省時間,但絕對不利你的學習。當你接到一個新項目時,應(yīng)該先自己構(gòu)思一下整個程序的架構(gòu),想想如何來完成,有可能的話,畫一個流程圖,簡單的可以畫在腦子里,對程序中用到的數(shù)據(jù)、變量有一個初步的安排,然后自己動手去寫,遇到實在沒辦法解決的地方,再去請教別人,或看別人是怎么處理的,這樣首先起碼你自己動過腦想過,自己有自己的思路,如果你一開始就看別人的程序,你的思維就會受限在別人的思維里,自己想再創(chuàng)新就更難了,這樣你自己永遠也沒辦法提高,因為你是走在別人的影子里。

12、多利用網(wǎng)絡(luò)的搜索,學會提問題。

一般來說,學習過程中,你遇上的問題,前人們多數(shù)也有遇上的,所以如果有什么不懂,在自己解決不了的時候,最好先到網(wǎng)上搜索一下,看能不能找到答案,找不到再到論壇里發(fā)問,發(fā)問也要有目的性,盡量簡單明了的描述問題,讓幫助你的人可以用最少的時間就看懂你說什么,畢竟人家?guī)椭闶敲赓M的,時間也是有限的。








歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1