隨著各IC廠商推出各種高性能的單片機,51單片機已經遠遠不能滿足大家對高性能單片機的需求。目前很多公司和學校已經開始轉向AVR單片機了,相信在未來幾年,AVR將會(hui) 非常興(xing) 旺,所以學習(xi) AVR單片機將會(hui) 很有前途。
相比經典的51係列來說,AVR單片機突出的優(you) 點主要有以下幾點:
一、速度快。AVR是精簡指令集單片機,其速度可以達到1MIPS/秒,理論上是傳(chuan) 統的51的12倍,實際上在10倍左右。
二、片上資源豐(feng) 富。MEGA係列片上具備JTAG仿真和下載功能。片內(nei) 含有看門狗電路、片內(nei) 程序Flash、片內(nei) 數據RAM、同步串行接口SPI、異步串口UART、內(nei) 嵌AD轉換器、EEPROM、模擬比較器、PWM定時計數器、TWI(IIC)總線接口、硬件乘法器、獨立振蕩器的實時計數器RTC、片內(nei) 標定的RC振蕩器等片內(nei) 外設,可以滿足各種開發需求。
三、驅動能力強。I/O口可以直接驅動數碼管、LED、繼電器等器件,節省很多外圍電路,即節省開發難度,又降低成本。
四、功耗低。低功耗雖然比不上430單片機,但是在單片機中也是佼佼者。
五、可選擇型號種類多。各種不同的型號可以滿足不同的需求,讓你的項目有很多的選擇餘(yu) 地。
六、性價(jia) 比高。在高性能的前提下,並沒有增加芯片的價(jia) 格,價(jia) 格可以和51相比,而功能確是51不可以比的。
綜合以上的優(you) 點和今後的趨勢,學習(xi) AVR單片機是很必要的。
下麵就我個(ge) 人的體(ti) 會(hui) 怎麽(me) 樣才能更快的學好AVR單片機!!很多想學習(xi) AVR的人都問我怎樣才能學好?下麵我就把我自己是如何學習(xi) AVR單片機,如何開始上手,如何開始熟練這個(ge) 過程給大家講講。
下麵簡要介紹一下步驟:
一、找本書(shu) 大概了解一下AVR單片機結構、功能。大概了解就行,不用看的很細。(五天)
二、找學習(xi) 板練習(xi) 編寫(xie) 程序,學單片機主要是練習(xi) 編寫(xie) 程序,遇到不會(hui) 的再請教別人或查書(shu) 。(四十天)
三、如果你學習(xi) 的是MEGA係列的AVR單片機,你還要學會(hui) 怎麽(me) 樣設置熔絲(si) 位,讓它更高效、更方便的為(wei) 你工作。(一天)
四、自己在網上找些小電路類的資料練習(xi) 設計外圍電路。焊好後自己調試,熟悉過程。(十天)
五、自己獨立設計具有個(ge) 人風格的電路、產(chan) 品,……你已經是高手了。
計算一下時間,兩(liang) 個(ge) 月左右你就可以熟練操作AVR單片機了,至於(yu) 多長時間成為(wei) 高手,看你的努力程度了。
任何一款單片機的學習(xi) 都應該是和實踐緊密結合的過程,不能長時間的停留在書(shu) 本上。但是學習(xi) 單片機也是學習(xi) 知識,所以首先還必須得看書(shu) ,因為(wei) 從(cong) 書(shu) 中你需要大概了解一下,單片機是什麽(me) 東(dong) 西?都可以幹什麽(me) ?如何控製它才能達到我們(men) 的目的等等?第一次,第二次你可能看不明白,但這不要緊,因為(wei) 還缺少實際的感觀認識。可以把它當做小說來看,隻要了解個(ge) 大概就行。推薦一本書(shu) ,書(shu) 名是《AVR係列單片機C語言編程與(yu) 應用實例》,是清華大學出版社出版的。大概了解一下書(shu) 上的內(nei) 容,然後實踐,這是非常關(guan) 鍵的,因為(wei) 學單片機你不實踐是不可能學會(hui) 的。
關(guan) 於(yu) 實踐有兩(liang) 種方法你可以選擇,一種方法:你自己花錢買(mai) 一塊單片機的學習(xi) 板,功能少的花錢少,入門過後就沒什麽(me) 用處了。功能多的雖然貴點,但是你可以學習(xi) 到更多的東(dong) 西。好的學習(xi) 板可以當作開發板,很多人以為(wei) 學習(xi) 板和開發板這是一個(ge) 東(dong) 西,其實不然,學習(xi) 板隻能來簡單的學習(xi) ,開發板呢?上麵的東(dong) 西很專(zhuan) 業(ye) ,程序中的子函數很獨立,在你開發的時候,很多東(dong) 西拿來就可以用直接調用,很方便。所以我個(ge) 人建議買(mai) 個(ge) 好點的可以用做開發板的學習(xi) 板。流水燈、數碼管、獨立鍵盤、矩陣鍵盤、AD或DA(原理一樣)、液晶、蜂鳴器等很基礎的實驗,如果你能熟練應用,那可以說對於(yu) 單片機方麵的硬件你已經入門了,剩下的就是自己練習(xi) 設計電路,不斷的積累經驗。隻要過了第一關(guan) 的入門,後麵的路就好走多了。
方法二:你身邊如果有單片機方麵的高手,向他求助,讓他幫你搭個(ge) 簡單的最小係統板。對於(yu) 高手來說,做個(ge) 單片機的最小係統板隻需要幾分鍾的時間,而對於(yu) 初學者可就難多了,因為(wei) 隻有對硬件了解了,才能熟練運用,而你還沒入門。而如果你身邊沒有這樣的高手,又找不到可以幫助你的人,那我勸你最好是自己買(mai) 上一塊,畢竟自己有一塊要方便的多,以後做單片機類的實驗時都能用得上,省時省事,為(wei) 了學習(xi) ,投入一下還是很值得的,因為(wei) 以後它為(wei) 你創造的價(jia) 值是無法比擬的,少買(mai) 一件衣服,少下兩(liang) 頓館子,少上網吧,省點錢學習(xi) 些有用的東(dong) 西,這才是年輕人該做的事。
有了單片機學習(xi) 板之後你要多練習(xi) ,最好是自己有台電腦,多研究程序,少玩遊戲、少看電影。首先學會(hui) 使用開發軟件,如何編輯、編譯源程序?如何仿真程序?目前使用C語言開發AVR的人占90%,而初學者大都使用ICCAVR(AVR的C語言環境)作為(wei) 編輯、編譯源程序的軟件,用AVR Studio來進行仿真(如果需要這兩(liang) 個(ge) 軟件可以聯係本文的作者QQ:475661158)。然後從(cong) 最簡單的流水燈實驗做起,等你能讓那八個(ge) 流水燈按照你的意願隨意流動時你已經入門了,你會(hui) 發現單片機是多麽(me) 有趣的東(dong) 西啊,太有意思了(當你編寫(xie) 的程序按你的意願實現時你會(hui) 感到很愜意,慢慢的你會(hui) 愛上電子這行的)。然後讓數碼管亮起來,這兩(liang) 項會(hui) 了後,你已經陷入其中了。就是要這樣練習(xi) ,在寫(xie) 程序的時候你肯定會(hui) 遇到很多問題,而這時你再去翻書(shu) 找,或是請教別人,當得到答案後,你會(hui) 印象很深的,記得很牢固。這樣下去,很快你就熟悉AVR單片機了。
程序練習(xi) 的差不多的時候,你就開始動手做硬件了,查找相關(guan) 資料,自己動手做電路,幾個(ge) 月下來,你就成為(wei) 高手了。再簡單說一下C語言和匯編語言。單片機編程用C語言或匯編語言都可以,但是我建議用C語言比較好,如果原來有C語言的基礎那學起來會(hui) 更好,如果沒有,也可以邊學單片機邊學C語言,C語言也挺簡單,隻是一門工具而已,我勸你最好學會(hui) ,將來肯定用得著,要不你以後也得學,你一點匯編都不會(hui) 根本無所謂,但你一點C語言都不會(hui) 那你將來會(hui) 吃苦頭。匯編寫(xie) 程序代碼效率高,在時序要求嚴(yan) 格的場合下用的多,但相對開發難度較大,而且很麻煩,尤其是遇到算法稍微複雜點的問題時,用匯編寫(xie) 起代碼來很容易把自己搞的一塌糊塗。AVR單片機的主頻可以高達20MHz,頂200多MHz的51單片機,這樣高頻率的時鍾,我們(men) 采用C語言來編寫(xie) 代碼就沒問題了。單片機的程序存儲(chu) 器(ROM、FLASH)容量也在不斷的提高,足夠裝得下你用C語言寫(xie) 的任何代碼,C語言的資料豐(feng) 富、移植性非常好,隻需要稍微修改就可以移植,所以我勸大家用C語言。
總得來說,隻要你有信心,做事能堅持到底,有不成功不罷休的精神,不管你學習(xi) 沒學習(xi) 過單片機,學好AVR單片機就是件非常容易的事。