接觸單片機已經一年有余了,記得入門還是從www.zg4o1577.cn首頁的28課,看完之后對51單片機有了一個整體認識,自從學習了C語言之后,覺得單片機其實很簡單,現在的我能夠隨心所欲地編程,即使程序再復雜,也難不倒我,只是時間問題而已?墒牵易罱笥押献鞲阋恍┬≈谱鲿r,發現51單片機內的硬件資源太少,說白了就是51單片機太簡單了,做稍微復雜一點的東西,就有點勉強了。
例如我們想做一個基于單片機的簡易自制示波器,其中涉及到數據采集、USB等,用51單片機的話,真的是力不從心。對此我查找了相關的資料,也了解到比較常用的高性能8位單片機有PIC和AVR兩種,這兩種單片機的性能各有千秋,PIC的低功耗在業界是比較出名的,還有它的每個I/O口的高低電平的驅動能力都在20mA左右,因此PIC更適合于工業控制,另外PIC的速度約為51的3倍左右。而AVR單片機跟PIC一樣,都是采用RISC指令集,因此AVR的指令執行速度也比51快,與PIC不同的是,AVR還要比PIC快3倍左右,比51要快10倍以上,我覺得更重要的是,AVR甚至能夠做嵌入式系統,當然是很簡單的那種。曾經有一段時間,我很矛盾,是用PIC好呢,還是用AVR好,后來聽取了同學的意見,轉型到AVR單片機,所以今天特別到購書中心買了一本書叫《AVR單片機C語言程序設計實例精粹》,希望能快點搞懂AVR,也希望我和同學的自制示波器早點弄出來。
說到單片機的轉型,并不代表我會徹底摒棄51,原因很簡單,就是它的內部資源少,控制起來比較簡單,而且成本也比較低,這在很多場合下是最佳的選擇,再說,51的資料在單片機世界里是最多的,不管你遇到什么難題,上面搜一下總是可以找到解決的辦法。我學AVR,只是想彌補51在8位機的不足而已,也許在應用上會以AVR為主,51為副。其實我最想學的是FPGA和ARM,這些應該是后話了,等學會了AVR之后再說吧。