單片機系統學習總結1

從剛開始接觸單片機,到現在已經有4年的時間了,在這期間學習和使用了51單片機、飛思卡爾單片機,lpc2138,pic16f887等系列的單片機,每接觸一款單片機,都會經歷熟悉其基本開發,然后將其用于項目中的過程,對于如何學習一款單片機,自己做了如下的總結。
大家都知道,51單片機是最容易入門的,不僅因為其編程簡單,更重要的是網上的資料非常豐富。所以一般學習單片機開發的都將51單片機作為入門開發的首選。我學習51單片機的時候是采用這樣的一個步驟進行學習的:
第一步(熟悉的過程):買了一款51單片機開發板,然后就開始了我的學習之旅,剛開始的時候沒有去看視頻教程,而是對著一本實驗教材進行學習,那本實驗教材的名字記不清楚了,但是其內容就是圍繞單片機的led燈進行控制,將51單片機內部的各個功能部件全部都使用到了,這樣就能使我在很短的時間內,通過控制led燈的亮、滅熟悉了51單片機的內部的各種資源,這時對51單片機也就沒有感到陌生了。所以,個人覺得,學習單片機,要從實驗入手,先熟悉單片機再說,開發語言開始使用的是c語言。
第二步(進階的過程):有了第一步的基礎之后,接下來的便是進階的過程,當時,我看的是郭天祥十天學會單片機的視頻教程,因為這個教程從基礎到復雜的編程慢慢深入,講的比較的全面,而且也生動,所以那一階段,也是我學習單片機進步最快的階段,每次聽課的時候,按照上面的實驗,以及課堂上面調試程序時出現的一些問題,自己認真的在電腦上進行調試,并分析產生故障的原因,讓我有了一定的開發基礎。在看完了視頻教程之后,后面又對基礎的知識進行了下補習,主要是看單片機原理性的教材,因為有些細節性的東西還是要從教材上面獲得。
第三步(項目實戰的階段):學習單片機的時候,雖然也編寫了一些程序,但是那些都是一些很小的模塊程序,并沒有起到綜合應用的目的,所以在這之后,我和另外一個學習硬件的同學一起組成了一個小的團隊,進行項目實踐開發,那時候,實驗室的條件比價好,有很多的器件可以自己使用。所以,我們就設計了我們的第一個作品,基于單片機的液體點滴監控系統。做這個系統時,就將以前單片機所學的知識,做了一個綜合的應用,包括有lcd1602控制,串口的控制等。
經過以上三個步驟的學習之后,對于51單片機的開發基本上就算入門了。而對于其他類型的單片機,如飛思卡爾單片機,lpc2148arm7單片機,pic16f887等,雖然每個系列的功能不一樣,但是最基本的編程思想還是一樣的,不同的可能就是編譯器,程序下載的軟件等差別,所以有了51單片機的開發基礎之后,學習其他單片機所采用的方法就是一個差異化的學習,學習各種單片機不同的地方,這樣,就能很快的熟悉一款新的型號的單片機。
如在學習pic16f887這個系列的單片機時,我首先做的工作不是去閱讀數據手冊,而是先拿著demo代碼,在編譯軟件中編譯、鏈接、生成hex文件,然后將其下載到開發板中跑起來,這個過程主要就是學習其軟件的基本操作,有了這個基礎之后,就能自己進行編程、測試。之后就是熟悉其編程的模式,所謂其編程模式,就是寄存器的控制,中斷程序的編寫,熟悉了這個操作,也就能控制其他的功能模塊了,如串口的控制、i2c硬件控制器的控制。這些基本的開發熟悉了之后,接下來便是學習差異的部分,例如pic單片機c語言中,其堆棧深度不能超過8級,超過了之后,將會使得程序出現跑飛的現象。而且內存的分配完全要靠自己來控制,分成了4個bank的數據,bank0,bank1,bank2,bank3等。這些就是每個系列單片機所獨有的一些東西,這些東西需要詳細的了解,因為它們可能為你的編程帶來很大的便利。
以上就是我學習單片機的總結,如果大家有更好的學習方法,希望大家能夠提出來,一起討論,共同進步。
單片機系統學習總結[篇2]
人的一生是一個不斷學習、不斷成長的過程。轉眼間,研究生的學習生涯結束了,走上新的工作崗位。回頭看看,發現自己不知不覺已經走過了五年的單片機學習之旅。
在2017年最初接觸單片機的時候,在我心中覺得51就是單片機,單片機就是51,根本不知道還有其他單片機的存在。那時候老師只教會了我們匯編語言,根本不知道用c語言也可以進行單片機開發。幸運的是,我加入了單片機興趣小組,在老師的指導下,做了一系列實驗,有“基于ds18b20的溫度采集系統”、“有基于164的移位寄存器的燈光控制系統”、“有步進電機和直流電機的控制系統”。這時候我才發現,這是學習單片機的一個最好途徑——在實踐中領悟理論,用理論指導實踐。在上課的整整一個學期中,雖然老師講得很詳細,但是大部分概念都是到了實際動手做東西的時候才弄明白的。而且在經歷了迷惑之后再搞清楚,印象就特別深刻。直到現在我對那些概念和接口都非常清晰。其實我也很慶幸學習和使用了兩年多的匯編語言。由于有這些鍛煉,我對單片機底層結構和接口時序就弄得很清楚。在使用c語言開發的時候,優化代碼和處理中斷也就不會太費勁。我覺得,雖然現在絕大部分單片機開發都使用c語言,甚至有些公司還推出了圖形化編程的工具,這樣對于項目的開展從時間上快了很多,在管理上也規范了不少,但是從學習和想深入掌握單片機精髓的角度來說,還是需要熟練掌握匯編語言的使用。
機會總是青睞于有準備的人。也許有了前面一段時間的理論和實踐的積累,我才慢慢得到了一些參加科技競賽和參與科研項目的機會。在參加第一屆浙江省機械設計競賽的時候,我們設計的由多單片機系統協調控制的“月球車”機器人奪得了唯一的一個特等獎。這個競賽給我最大的收獲是我對單片機的認識改變了,它不再僅僅是一門學科了,它是一個可以讓你的創意得到充分發揮的平臺。后來參與了“基于視頻分劃技術的鋼卷尺自動切零位機”、“電能表渦杠渦輪嚙合深度檢測系統”、“基于公共電話網的水表集抄數據路由器”、“高精度電感微位移測量系統”等一些實際的項目。在這些過程中,我發現只是精通單片機技術還不能很好的解決問題。體會最深的是,單片機只有融合到各種應用領域中,才能展現它的最大活力。然而單片機僅僅是一個工具而已,要做好單片機系統還需要各種應用領域的專業知識的支持。例如,在“基于視頻分劃技術的鋼卷尺自動切零位機”中,就需要搞清楚全電視信號的時序,弄明白鋼卷尺切零位機的工作原理,懂得怎么利用疊加在視頻信號中的橫豎線來進行刻度的瞄準等。沒有這些專業知識,就算單片機技術再厲害也不可能做好這個項目。脫離應用背景的單片機開發,就像一個沒有靈魂的軀體一樣。
本文來源:http://www.nvnqwx.com/gongwen/xuexizongjie/1275678.htm