<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 談談自學C51單片機的一些見解僅作參考

          談談自學C51單片機的一些見解僅作參考

          作者: 時間:2016-11-30 來源:網(wǎng)絡 收藏
          學習C51有半個月多了,在這短短的半個月里,雖說沒有每天都在學,都是至少投入的時間還是跟天數(shù)成正比的。幸運的是有C語言和匯編的知識做基礎,學習 C51還是滿上手的。在這半個月中,通過不斷的學習基礎知識和練習例子,到最后還是取得一定的成功,從什么都不會到會寫一個簡單的跑馬燈程序,再到花樣流水燈,電子琴設計,數(shù)碼管顯示,按鍵掃描,點陣輸出,中斷,定時和串口初步設計,最后到LCD1602驅動程序設計,DS1302時鐘電路驅動程序設計,那種漸進的感覺真的會讓你充斥著一種無比的自豪感和成就感,讓你忍不住想把這種感覺帶給別人,讓別人看到你的成就。

          說真的,當你學會C51,我想你不會再用匯編編程了,這種現(xiàn)象足以說明C語言相對于匯編的優(yōu)越性,舉個簡單的例子,叫你用匯編語言和機器語言寫個跑馬燈程序,你會選擇哪一種?

          本文引用地址:http://www.ex-cimer.com/article/201611/323640.htm

          我想每個人都會選匯編吧,再笨的人也不至于笨到放著匯編不用,用機器語言寫01串,寫到最后你未必看得懂,都是0101的字樣,看得懂我覺得你應該可以當機器了。而C語言是一種高級語言,相對匯編正如匯編相對機器語言有優(yōu)勢。這里并不是說匯編沒有用,只是C語言編程比匯編來得簡單的多,比如你寫一個發(fā)聲的程序,用C語言只要四條指令就夠了,而匯編要寫很多條。而且,在設計大型的項目時,用C語言會有一種清晰的思路。但并不是說C語言什么都好,在某些時候,用匯編設計會比c語言簡單的多,就拿我遇到的例子來講,你要寫一個延時程序,用C語言寫的話,延時的效果并不精準,用匯編會好些,當然排除你用定時來寫。還有用C語言來寫你不知道運行結果會發(fā)生什么,有可能發(fā)生不可預知的錯誤,而匯編則是可預知的,這是C語言最大的缺點。這是我對C語言和匯編的見解,僅作參考。

          總的來說,要想學好學精單片機,你最好把匯編和C都學好,匯編每一條指令都可以讓你清楚地控制單片機的IO口,通過了解單片機的內部結構和外圍部件,可以清晰的編寫自己所要的程序。用C語言編寫較大的程序思路會比較清晰,學好c語言通過外圍模塊時序的學習,很容易就能編出該模塊的驅動程序。就拿 LCD1602來講,在我空間日志有專門一篇寫LCD1602的驅動程序,從這篇來看,只要我們清楚LCD1602的工作時序,設計一個程序就比較簡單。設計LCD1602無非要寫這些內容:讀忙,延時,寫數(shù)據(jù),寫指令,初始化,顯示。要了解LCD1602各個引腳的功能,比如RS為寄存器選擇,高電平為數(shù)據(jù)寄存器,低電平為指令寄存器,RW為讀寫信號線,高電平為進行讀操作,低電平為寫操作,E為使能端,當E端由高電平跳變低電平,液晶模塊執(zhí)行命令。寫到這里,估計你對C51有初步的認識吧。

          還有學習單片機還要掌握模電,數(shù)電,和電力電子技術,protel 99se,wave,stc-isp,keil ,isis.有些我沒有學好,也要努力咯,因為對于電路的設計和程序下載,這些必不可少的。最后一點,是多上機操作,實驗是檢驗真理的唯一標準。興趣是學習的老師,有興趣你會學的很快的。



          關鍵詞: 自學C51單片

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();