談?wù)勛詫W(xué)C51單片機(jī)的一些見解僅作參考
說真的,當(dāng)你學(xué)會(huì)C51,我想你不會(huì)再用匯編編程了,這種現(xiàn)象足以說明C語言相對(duì)于匯編的優(yōu)越性,舉個(gè)簡單的例子,叫你用匯編語言和機(jī)器語言寫個(gè)跑馬燈程序,你會(huì)選擇哪一種?
本文引用地址:http://butianyuan.cn/article/201611/323640.htm我想每個(gè)人都會(huì)選匯編吧,再笨的人也不至于笨到放著匯編不用,用機(jī)器語言寫01串,寫到最后你未必看得懂,都是0101的字樣,看得懂我覺得你應(yīng)該可以當(dāng)機(jī)器了。而C語言是一種高級(jí)語言,相對(duì)匯編正如匯編相對(duì)機(jī)器語言有優(yōu)勢(shì)。這里并不是說匯編沒有用,只是C語言編程比匯編來得簡單的多,比如你寫一個(gè)發(fā)聲的程序,用C語言只要四條指令就夠了,而匯編要寫很多條。而且,在設(shè)計(jì)大型的項(xiàng)目時(shí),用C語言會(huì)有一種清晰的思路。但并不是說C語言什么都好,在某些時(shí)候,用匯編設(shè)計(jì)會(huì)比c語言簡單的多,就拿我遇到的例子來講,你要寫一個(gè)延時(shí)程序,用C語言寫的話,延時(shí)的效果并不精準(zhǔn),用匯編會(huì)好些,當(dāng)然排除你用定時(shí)來寫。還有用C語言來寫你不知道運(yùn)行結(jié)果會(huì)發(fā)生什么,有可能發(fā)生不可預(yù)知的錯(cuò)誤,而匯編則是可預(yù)知的,這是C語言最大的缺點(diǎn)。這是我對(duì)C語言和匯編的見解,僅作參考。
總的來說,要想學(xué)好學(xué)精單片機(jī),你最好把匯編和C都學(xué)好,匯編每一條指令都可以讓你清楚地控制單片機(jī)的IO口,通過了解單片機(jī)的內(nèi)部結(jié)構(gòu)和外圍部件,可以清晰的編寫自己所要的程序。用C語言編寫較大的程序思路會(huì)比較清晰,學(xué)好c語言通過外圍模塊時(shí)序的學(xué)習(xí),很容易就能編出該模塊的驅(qū)動(dòng)程序。就拿 LCD1602來講,在我空間日志有專門一篇寫LCD1602的驅(qū)動(dòng)程序,從這篇來看,只要我們清楚LCD1602的工作時(shí)序,設(shè)計(jì)一個(gè)程序就比較簡單。設(shè)計(jì)LCD1602無非要寫這些內(nèi)容:讀忙,延時(shí),寫數(shù)據(jù),寫指令,初始化,顯示。要了解LCD1602各個(gè)引腳的功能,比如RS為寄存器選擇,高電平為數(shù)據(jù)寄存器,低電平為指令寄存器,RW為讀寫信號(hào)線,高電平為進(jìn)行讀操作,低電平為寫操作,E為使能端,當(dāng)E端由高電平跳變低電平,液晶模塊執(zhí)行命令。寫到這里,估計(jì)你對(duì)C51有初步的認(rèn)識(shí)吧。
還有學(xué)習(xí)單片機(jī)還要掌握模電,數(shù)電,和電力電子技術(shù),protel 99se,wave,stc-isp,keil ,isis.有些我沒有學(xué)好,也要努力咯,因?yàn)閷?duì)于電路的設(shè)計(jì)和程序下載,這些必不可少的。最后一點(diǎn),是多上機(jī)操作,實(shí)驗(yàn)是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。興趣是學(xué)習(xí)的老師,有興趣你會(huì)學(xué)的很快的。
評(píng)論