1. 程式人生 > >微控制器學習方法總結

微控制器學習方法總結

             從剛開始接觸微控制器,到現在已經有4年的時間了,在這期間學習和使用了51微控制器、飛思卡爾微控制器,LPC2138,PIC16F887等系列的微控制器,每接觸一款微控制器,都會經歷熟悉其基本開發,然後將其用於專案中的過程,對於如何學習一款微控制器,自己做了如下的總結。

             大家都知道,51微控制器是最容易入門的,不僅因為其程式設計簡單,更重要的是網上的資料非常豐富。所以一般學習微控制器開發的都將51微控制器作為入門開發的首選。我學習51微控制器的時候是採用這樣的一個步驟進行學習的:

              第一步(熟悉的過程):買了一款51微控制器開發板,然後就開始了我的學習之旅,剛開始的時候沒有去看視訊教程,而是對著一本實驗教材進行學習,那本實驗教材的名字記不清楚了,但是其內容就是圍繞微控制器的LED燈進行控制,將51微控制器內部的各個功能部件全部都使用到了,這樣就能使我在很短的時間內,通過控制LED燈的亮、滅熟悉了51微控制器的內部的各種資源,這時對51微控制器也就沒有感到陌生了。所以,個人覺得,學習微控制器,要從實驗入手,先熟悉微控制器再說,開發語言開始使用的是C語言。

             第二步(進階的過程):有了第一步的基礎之後,接下來的便是進階的過程,當時,我看的是郭天祥十天學會微控制器的視訊教程,因為這個教程從基礎到複雜的程式設計慢慢深入,講的比較的全面,而且也生動,所以那一階段,也是我學習微控制器進步最快的階段,每次聽課的時候,按照上面的實驗,以及課堂上面除錯程式時出現的一些問題,自己認真的在電腦上進行除錯,並分析產生故障的原因,讓我有了一定的開發基礎。在看完了視訊教程之後,後面又對基礎的知識進行了下補習,主要是看微控制器原理性的教材,因為有些細節性的東西還是要從教材上面獲得。

           第三步(專案實戰的階段):學習微控制器的時候,雖然也編寫了一些程式,但是那些都是一些很小的模組程式,並沒有起到綜合應用的目的,所以在這之後,我和另外一個學習硬體的同學一起組成了一個小的團隊,進行專案實踐開發,那時候,實驗室的條件比價好,有很多的器件可以自己使用。所以,我們就設計了我們的第一個作品,基於微控制器的液體點滴監控系統。做這個系統時,就將以前微控制器所學的知識,做了一個綜合的應用,包括有LCD1602控制,串列埠的控制等。

          經過以上三個步驟的學習之後,對於51微控制器的開發基本上就算入門了。而對於其他型別的微控制器,如飛思卡爾微控制器,LPC2148  ARM7微控制器,PIC16F887等,雖然每個系列的功能不一樣,但是最基本的程式設計思想還是一樣的,不同的可能就是編譯器,程式下載的軟體等差別,所以有了51微控制器的開發基礎之後,學習其他微控制器所採用的方法就是一個差異化的學習,學習各種微控制器不同的地方,這樣,就能很快的熟悉一款新的型號的微控制器。

          如在學習PIC16F887這個系列的微控制器時,我首先做的工作不是去閱讀資料手冊,而是先拿著DEMO程式碼,在編譯軟體中編譯、連結、生成HEX檔案,然後將其下載到開發板中跑起來,這個過程主要就是學習其軟體的基本操作,有了這個基礎之後,就能自己進行程式設計、測試。之後就是熟悉其程式設計的模式,所謂其程式設計模式,就是暫存器的控制,中斷程式的編寫,熟悉了這個操作,也就能控制其他的功能模組了,如串列埠的控制、I2C硬體控制器的控制。這些基本的開發熟悉了之後,接下來便是學習差異的部分,例如PIC微控制器C語言中,其堆疊深度不能超過8級,超過了之後,將會使得程式出現跑飛的現象。而且記憶體的分配完全要靠自己來控制,分成了4個BANK的資料,BANK0,BANK1,BANK2,BANK3  等。這些就是每個系列微控制器所獨有的一些東西,這些東西需要詳細的瞭解,因為它們可能為你的程式設計帶來很大的便利。

             以上就是我學習微控制器的總結,如果大家有更好的學習方法,希望大家能夠提出來,一起討論,共同進步。