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