單片機是一種可編程器件,單片機的出現(xiàn)使硬件設計變得更為簡單,產(chǎn)品的功能也更強大,而程序就是單片機的靈魂。 目前功能稍微復雜一點的電子產(chǎn)品,都是以單片機為核心,再加以不通的外設電路實現(xiàn)不通的功能需求。 單片機的編程可以通過匯編語言和C語言來實現(xiàn)。 1 匯編編程的特點 匯編是一種更接近于硬件底層的低級語言。 硬件在編程時總線和地址非常重要,在匯編語言中,一般用助記符來替代機器指令的操作碼,用標號代表操作數(shù)的地址,所以匯編語言和機器指令之間存在著唯一對應的關系,這就導致了不通系列的單片機其匯編指令集是完全不通的。 這樣做是比較麻煩的,因為更改了單片機或者升級老產(chǎn)品之后,原有的匯編代碼難以跨平臺移植,只能再重新編寫。 所以,匯編的移植性非常差,由于是直接操作機器指令,所以在可讀性上也非常差。 這是匯編語言的兩個最大的缺點,但是其優(yōu)點就是執(zhí)行效率非常高。 從方便的角度上來說,匯編方便了硬件,但對工程師卻不友好。 2C語言編程的特點
在前幾年使用匯編編程的人還是挺多的,現(xiàn)在使用匯編的人原來越少,即使是寫驅動的人也不完全使用匯編而是使用匯編和C語言結合的方式。 單片機的C語言編程具有兩個最大的優(yōu)點。 第一個優(yōu)點:易于移植 有過單片機C語言編程的同行都有這樣的經(jīng)歷,在編程時,首先要在初始化中配置單片機的寄存器,配置完之后的代碼不再頻繁的和寄存器打交道,所以使得C語言的層次非常清晰,在移植代碼時,只需要根據(jù)新的平臺修改一下寄存器的配置部分就可以了,功能主體部分幾乎不用修改。 這也就是很多優(yōu)秀程序員所倡導的當文檔層次化編程的原因,每個功能塊都對應一個C文件和H頭文件,在移植時只需要把這兩個文件拷走即可,方便了移植。
從這個方面來講,完全可以拋開單片機的寄存器配置來實現(xiàn)編程,這方面做的比較好的如STM32的官方庫編程和CMSIS等。 第二個優(yōu)點:易于閱讀 由于C語言通過寄存器和硬件驅動/接口建立關系,編程者不用再去記憶枯燥的指令,而且C語言編程的層次化、模塊化編程也大大提高了代碼的可讀性。 相比于匯編,C語言可以用更少的代碼實現(xiàn)更復雜的功能,而且還更易于理解。 這也是C語言越來越受歡迎的原因。 3C語言對比匯編的優(yōu)勢
通過前面的描述可以看得出來,C語言占有更多得優(yōu)勢,C語言易于跨平臺移植、C語言易于理解、C語言易于延續(xù)。 總之,從編程得角度C語言更受程序員們得歡迎。 關注微信公眾號『玩轉嵌入式』,后臺回復“128”獲取干貨資料匯總,回復“256”加入技術交流群。
精彩技術文章推薦
01
|求伯君:中國最“?!背绦騿T,一己之力挑戰(zhàn)微軟
|
02
|一個博士應聘華為,大疆的經(jīng)歷...
|
03
|華為員工裸辭之后悟出的那些“坑”!
|
04
|學習經(jīng)歷分享,單片機大神是如何煉成的!
|
免責聲明:本文內(nèi)容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!