如何才能有效的學(xué)習(xí)單片機(jī)編程
如何才能有效的學(xué)習(xí)單片機(jī)編程
如何才能有效的學(xué)習(xí)單片機(jī)編程?想了解更多的信息嗎,和學(xué)習(xí)啦小編一起看看吧!以下是學(xué)習(xí)啦小編分享給大家的有效的學(xué)習(xí)單片機(jī)編程的方法,希望可以幫到你!
有效的學(xué)習(xí)單片機(jī)編程的方法
學(xué)習(xí)單片機(jī)的最有效方法是理論與實踐并重
對一個初學(xué)單片機(jī)的人來說,如果按教科書式的學(xué)法,上來就是一大堆指令、名詞,學(xué)了半天還搞不清這些指令起什么作用,能夠產(chǎn)生什么實際效果,那么也許用不了幾天就會覺得枯燥乏味而半途而廢。所以學(xué)習(xí)與實踐結(jié)合是一個好方法,邊學(xué)習(xí)、邊演練,循序漸進(jìn),這樣用不了幾次就能將用到的指令理解、吃透、扎根于腦海,甚至“根深蒂固”。也就是說,當(dāng)你此次學(xué)習(xí)完某幾條指令后(一次數(shù)量不求多,只求懂),接下去就該做實驗了,通過實驗,使你感受剛才的指令產(chǎn)生了控制效果,眼睛看得見(燈光)、耳朵聽得到(聲音),更能深刻理解指令是怎樣轉(zhuǎn)化成信號去控制電子產(chǎn)品的。說句過分的話,單片機(jī)與其說是學(xué)出來的,還不如說是做實驗練出來的,何況做實驗本身也是一種學(xué)習(xí)過程。因此邊學(xué)邊練的學(xué)習(xí)方法,效果特別好,許多讀者經(jīng)3~6個月的學(xué)習(xí)已能開發(fā)簡單的產(chǎn)品了(如霓紅燈廣告牌控制、累加計數(shù)器等)。
學(xué)習(xí)單片機(jī)要合理安排學(xué)習(xí)時間持之以恒
學(xué)習(xí)單片機(jī)可不能“三天打魚、二天曬網(wǎng)”,要有持之以恒的毅力與決心,學(xué)習(xí)完幾條指令后,就應(yīng)及時做實驗,融會貫通,而不要等幾天或幾個星期有時間后再做實驗,這樣效果不好甚至前學(xué)后忘。另外要有打“持久戰(zhàn)”的心理準(zhǔn)備,不要興趣來時學(xué)上幾天,無興趣時涼上幾星期。學(xué)習(xí)單片機(jī)很重要的一點(diǎn)就是持之以恒。
學(xué)習(xí)單片機(jī)要使用循環(huán)學(xué)習(xí)法使之根深蒂固
筆者曾在其它刊物舉辦過《手把手教你學(xué)單片機(jī)》講座,該講座入門起點(diǎn)低,很多朋友覺得好學(xué)、易學(xué),很快就能將講座從頭至尾學(xué)完、學(xué)懂,但過了幾個月,在開發(fā)產(chǎn)品時對指令的具體作用就有些淡忘了。根據(jù)現(xiàn)代科學(xué)的研究,對只短暫學(xué)過一遍的知識,充其量只比浮光掠影稍好。因此,較好的方法是,過一段時間后(1~2個月)再重新做一遍,這樣反復(fù)循環(huán)幾次就能徹底弄懂消化,永不忘卻。有道是:若人生能細(xì)看《水滸傳》10遍,那么里面的故事內(nèi)容、人物場情將永生不忘。
學(xué)習(xí)單片機(jī)要進(jìn)行適當(dāng)投資購買實驗器材及書籍資料
單片機(jī)技術(shù)是一門含金量高的技術(shù),一旦學(xué)會后,它給你帶來的效益回報當(dāng)然也高,無論是應(yīng)聘求職還是自起爐灶開廠辦公司,其前景是光明無限。因此在學(xué)習(xí)時要舍得適當(dāng)投資購買必要的學(xué)習(xí)、實驗器材,另外還要經(jīng)常去科技圖書店看看,購買一些適合自己學(xué)習(xí)、提高的書籍??傊禾觳徊シN哪來秋天的收獲?考慮到學(xué)習(xí)成本,對初學(xué)者可采用“程序完成后軟件仿真→單片機(jī)燒錄程序→試驗板通電實驗”的方法(現(xiàn)在的快閃型單片機(jī)其程序可燒寫1000次以上),這樣整套實驗器材(不包括PC機(jī))只有幾百元,對大部分已工作的愛好者來說都有這個能力承受。而經(jīng)濟(jì)條件較好的讀者可考慮使用在線仿真器(ICE)進(jìn)行實驗,這樣學(xué)習(xí)時直觀性更好。
總之這里所談的就是作者的親身體驗。我們希望以最實用的方法,最易入門的手法,將初學(xué)者領(lǐng)進(jìn)單片機(jī)世界的大門里,使這些僅稍懂硬件原理的人通過實踐能理解軟件的作用,讓他們知道在單片機(jī)組成的系統(tǒng)中硬件與軟件的區(qū)分并不絕對,硬件能做的工作一般情況下軟件也能完成,軟件的功能也可用硬件替代。等初步學(xué)會了單片機(jī)軟件設(shè)計后,可將通常由硬件完成的工作交由軟件實現(xiàn),這樣,系統(tǒng)的體積、功耗、成本將大大降低,而功能得到提升與增強(qiáng),使習(xí)慣于傳統(tǒng)電路設(shè)計的人對單片機(jī)產(chǎn)生一種妙不可言的相見恨晚之感,感覺到真正找到了一種理想化的器件,真正感受、體會到現(xiàn)代單片微型計算機(jī)的強(qiáng)大作用,從而投身于單片機(jī)的領(lǐng)域中。只要你肯努力、下功夫、多實踐,一定會成功的。
有效的學(xué)習(xí)單片機(jī)編程的建議
1、整體了解
要知道單片機(jī)是什么?單片機(jī)有何用?單片機(jī)系統(tǒng)設(shè)計的流程是怎樣的、需要掌握哪些輔助軟件(當(dāng)然就包括相應(yīng)的編程語言)?怎樣設(shè)計算法、寫出程序?怎樣燒錄程序?單片機(jī)是怎樣工作的?怎樣讓它能支配機(jī)器按照人的需要進(jìn)行動作?
了解這些之后,我們的學(xué)習(xí)就有了目標(biāo)和方向。
至于這些問題的解答,主要應(yīng)該還是在圖書館或網(wǎng)上的各種資料中尋找!
2、探索
單片機(jī)很難學(xué),是因為其內(nèi)部結(jié)構(gòu)、編程語言抽象,且實際應(yīng)用中與其他電子技術(shù)和元器件知識相互關(guān)聯(lián),需結(jié)合起來一起設(shè)計進(jìn)行開發(fā)。
所以,第二階段要了解單片機(jī)的內(nèi)部結(jié)構(gòu)是怎樣的?單片機(jī)開發(fā)經(jīng)常會用到哪些電子技術(shù)和元器件知識?如何將一條條編程指令組合成一段段有效的程序?并不斷嘗試,變換各種不同的描述方法,燒錄不同的程序觀察比較運(yùn)行結(jié)果,分析出現(xiàn)的現(xiàn)象及其原因。這將給你的學(xué)習(xí)帶來很大幫助!并且,程序的成功燒錄和運(yùn)行,也能極大增強(qiáng)你的自信!
3、解密
之所以單片機(jī)能成為控制核心,設(shè)計出包羅萬象的應(yīng)用系統(tǒng)來,是因為開發(fā)者利用了單片機(jī)提供的種種功能及各種外設(shè)。
因此,第三階段我們要掌握單片機(jī)的各種功能,再加上諸如傳感器、模數(shù)轉(zhuǎn)換、掃描顯示、串行、中斷的應(yīng)用思維,結(jié)合更多的元器件、電子電路知識,逐個學(xué)習(xí)、體會實際的單片機(jī)系統(tǒng)的秘密。
4、遠(yuǎn)航
通過以上三個階段,大家基本就可掌握單片機(jī)的應(yīng)用了。但要設(shè)計出豐富的單片機(jī)系統(tǒng),解決復(fù)雜的實際問題,還需要了解更多的外設(shè)知識及其與單片機(jī)的聯(lián)系(如電動機(jī)、各類存儲器、繼電器、紅外管等)。這些需要不斷的學(xué)習(xí)和積累。有時候,接到一些開發(fā)任務(wù),就需要你針對這個任務(wù)自覺地去搜集、學(xué)習(xí)相關(guān)知識,在實踐中不斷學(xué)習(xí)和提高。
5、總之
1)先通過各種文獻(xiàn)資料了解基本結(jié)構(gòu),掌握必備的基礎(chǔ)編程能力;
2)買開發(fā)板動手實踐,遵從教學(xué)視頻做相應(yīng)的更深一步的了解;
3)試著設(shè)計算法,編寫程序,燒錄程序,運(yùn)行,并分析結(jié)果;
4)對程序進(jìn)行修改,同時觀察運(yùn)行結(jié)果的變化,進(jìn)一步了解單片機(jī)的運(yùn)行及控制原理,總結(jié);
5)試著進(jìn)行新的開發(fā),在開發(fā)過程中發(fā)現(xiàn)并解決問題,分析總結(jié)相應(yīng)元件的學(xué)習(xí)套路,才能不斷進(jìn)步!
單片機(jī)編程知識問答
1. C語言和匯編語言在開發(fā)單片機(jī)時各有哪些優(yōu)缺點(diǎn)?
答:匯編語言是一種用文字助記符來表示機(jī)器指令的符號語言,是最接近機(jī)器碼的一種語言。其主要優(yōu)點(diǎn)是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。
C語言是一種結(jié)構(gòu)化的高級語言。其優(yōu)點(diǎn)是可讀性好,移植容易,是普遍使用的一種計算機(jī)語言。缺點(diǎn)是占用資源較多,執(zhí)行效率沒有匯編高。
對于目前普遍使用的RISC架構(gòu)的8bit MCU來說,其內(nèi)部ROM、RAM、STACK等資源都有限,如果使用C語言編寫,一條C語言指令編譯后,會變成很多條機(jī)器碼,很容易出現(xiàn)ROM空間不夠、堆棧溢出等問題。
而且一些單片機(jī)廠家也不一定能提供C編譯器。而匯編語言,一條指令就對應(yīng)一個機(jī)器碼,每一步執(zhí)行什幺動作都很清楚,并且程序大小和堆棧調(diào)用情況都容易控制,調(diào)試起來也比較方便。所以在單片機(jī)開發(fā)中,我們還是建議采用匯編語言比較好。
如果對單片機(jī)C語言有興趣,HOLTEK的單片機(jī)就有提供C編譯器,可以到HOLTEK的網(wǎng)站免費(fèi)下載使用。
2. C或匯編語言可以用于單片機(jī),C++能嗎?
答:在單片機(jī)開發(fā)中,主要是匯編和C,沒有用C++的。
3. 搞單片機(jī)開發(fā),一定要會C嗎?
答:匯編語言是一種用文字助記符來表示機(jī)器指令的符號語言,是最接近機(jī)器碼的一種語言。其主要優(yōu)點(diǎn)是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。
對于目前普遍使用的RISC架構(gòu)的8bit MCU來說,其內(nèi)部ROM、RAM、STACK等資源都有限,如果使用C語言編寫,一條C語言指令編譯后,會變成很多條機(jī)器碼,很容易出現(xiàn)ROM空間不夠、堆棧溢出等問題。而且一些單片機(jī)廠家也不一定能提供C編譯器。而匯編語言,一條指令就對應(yīng)一個機(jī)器碼,每一步執(zhí)行什么動作都很清楚,并且程序大小和堆棧調(diào)用情況都容易控制,調(diào)試起來也比較方便。所以在資源較少單片機(jī)開發(fā)中,我們還是建議采用匯編語言比較好。
而C語言是一種編譯型程序設(shè)計語言,它兼顧了多種高級語言的特點(diǎn),并具備匯編語言的功能。C語言有功能豐富的庫函數(shù)、運(yùn)算速度快、編譯效率高、有良好的可移植性,而且可以直接實現(xiàn)對系統(tǒng)硬件的控制。C語言是一種結(jié)構(gòu)化程序設(shè)計語言,它支持當(dāng)前程序設(shè)計中廣泛采用的由頂向下結(jié)構(gòu)化程序設(shè)計技術(shù)。
此外,C語言程序具有完善的模塊程序結(jié)構(gòu),從而為軟件開發(fā)中采用模塊化程序設(shè)計方法提供了有力的保障。因此,使用C語言進(jìn)行程序設(shè)計已成為軟件開發(fā)的一個主流。用C語言來編寫目標(biāo)系統(tǒng)軟件,會大大縮短開發(fā)周期,且明顯地增加軟件的可讀性,便于改進(jìn)和擴(kuò)充,從而研制出規(guī)模更大、性能更完備的系統(tǒng)。
綜上所述,用C語言進(jìn)行單片機(jī)程序設(shè)計是單片機(jī)開發(fā)與應(yīng)用的必然趨勢。所以作為一個技術(shù)全面并涉足較大規(guī)模的軟件系統(tǒng)開發(fā)的單片機(jī)開發(fā)人員最好能夠掌握基本的C語言編程。
4. 當(dāng)開發(fā)一個較復(fù)雜而又開發(fā)時間短的項目時,用C還是用匯編開發(fā)好?
答:對于復(fù)雜而開發(fā)時間緊的項目時,可以采用C語言,但前提是要求對該MCU系統(tǒng)的C語言和C編譯器非常熟悉,特別要注意該C編譯系統(tǒng)所能支持的數(shù)據(jù)類型和算法。雖然C語言是最普遍的一種高級語言,但不同的MCU廠家其C語言編譯系統(tǒng)是有所差別的,特別是在一些特殊功能模塊的操作上。如果對這些特性不了解,那調(diào)試起來就有的煩了,到頭來可能還不如用匯編來的快。
5. 在教學(xué)中要用到8088和196芯片單片機(jī)教材,請問那里可以找到關(guān)于這方面的書或資料?
答:有關(guān)這方面的教材,大學(xué)里常用的一本是《IBM-PC匯編語言程序設(shè)計》清華大學(xué)出版社出版的,在網(wǎng)上以及書店都是可以找到的,另外網(wǎng)上還可以搜索到很多其他的教材如:《微機(jī)原理及匯編語言教程》(楊延雙 張曉冬 等編著 )和《16/32 位微機(jī)原理、匯編語言及接口技術(shù)》(作者: 鐘曉捷 陳濤 ,機(jī)械工業(yè)出版社 出版)等,可以在較大型的科技書店里查找或者直接從網(wǎng)上訂購。
6. 初學(xué)者到底是應(yīng)該先學(xué)C還是匯編?
答:對于單片機(jī)的初學(xué)者來說,應(yīng)該從匯編學(xué)起。因為匯編語言是最接近機(jī)器碼的一種語言,可以加深初學(xué)者對單片機(jī)各個功能模塊的了解,從而打好扎實的基礎(chǔ)。
猜你喜歡:
1.如何系統(tǒng)有效的學(xué)習(xí)編程知識