學習C51有半個月多了,在這短短的半個月里,雖說沒有每天都在學,都是至少投入的時間還是跟天數成正比的。幸運的是有C語言和匯編的知識做基礎,學習 C51還是滿上手的。在這半個月中,通過不斷的學習基礎知識和練習例子,到最后還是取得一定的成功,從什么都不會到會寫一個簡單的跑馬燈程序,再到花樣流水燈,電子琴設計,數碼管顯示,按鍵掃描,點陣輸出,中斷,定時和串口初步設計,最后到LCD1602驅動程序設計,DS1302時鐘電路驅動程序設計,那種漸進的感覺真的會讓你充斥著一種無比的自豪感和成就感,讓你忍不住想把這種感覺帶給別人,讓別人看到你的成就。
說真的,當你學會C51,我想你不會再用匯編編程了,這種現象足以說明C語言相對于匯編的優越性,舉個簡單的例子,叫你用匯編語言和機器語言寫個跑馬燈程序,你會選擇哪一種?
我想每個人都會選匯編吧,再笨的人也不至于笨到放著匯編不用,用機器語言寫01串,寫到最后你未必看得懂,都是0101的字樣,看得懂我覺得你應該可以當機器了。而C語言是一種高級語言,相對匯編正如匯編相對機器語言有優勢。這里并不是說匯編沒有用,只是C語言編程比匯編來得簡單的多,比如你寫一個發聲的程序,用C語言只要四條指令就夠了,而匯編要寫很多條。而且,在設計大型的項目時,用C語言會有一種清晰的思路。但并不是說C語言什么都好,在某些時候,用匯編設計會比c語言簡單的多,就拿我遇到的例子來講,你要寫一個延時程序,用C語言寫的話,延時的效果并不精準,用匯編會好些,當然排除你用定時來寫。還有用C語言來寫你不知道運行結果會發生什么,有可能發生不可預知的錯誤,而匯編則是可預知的,這是C語言最大的缺點。這是我對C語言和匯編的見解,僅作參考。
總的來說,要想學好學精單片機,你最好把匯編和C都學好,匯編每一條指令都可以讓你清楚地控制單片機的IO口,通過了解單片機的內部結構和外圍部件,可以清晰的編寫自己所要的程序。用C語言編寫較大的程序思路會比較清晰,學好c語言通過外圍模塊時序的學習,很容易就能編出該模塊的驅動程序。就拿 LCD1602來講,在我空間日志有專門一篇寫LCD1602的驅動程序,從這篇來看,只要我們清楚LCD1602的工作時序,設計一個程序就比較簡單。設計LCD1602無非要寫這些內容:讀忙,延時,寫數據,寫指令,初始化,顯示。要了解LCD1602各個引腳的功能,比如RS為寄存器選擇,高電平為數據寄存器,低電平為指令寄存器,RW為讀寫信號線,高電平為進行讀操作,低電平為寫操作,E為使能端,當E端由高電平跳變低電平,液晶模塊執行命令。寫到這里,估計你對C51有初步的認識吧。
還有學習單片機還要掌握模電,數電,和電力電子技術,protel 99se,wave,stc-isp,keil ,isis.有些我沒有學好,也要努力咯,因為對于電路的設計和程序下載,這些必不可少的。最后一點,是多上機操作,實驗是檢驗真理的唯一標準。興趣是學習的老師,有興趣你會學的很快的。