03.06 開發單片機學什麼語言好?

用戶471843830451


單片機是一種可編程器件,單片機的出現使硬件設計變得更為簡單,產品的功能也更強大,而程序就是單片機的靈魂。目前功能稍微複雜一點的電子產品,都是以單片機為核心,再加以不通的外設電路實現不通的功能需求。單片機的編程可以通過彙編語言和C語言來實現。

1

彙編編程的特點

彙編是一種更接近於硬件底層的低級語言。硬件在編程時總線和地址非常重要,在彙編語言中,一般用助記符來替代機器指令的操作碼,用標號代表操作數的地址,所以彙編語言和機器指令之間存在著唯一對應的關係,這就導致了不通系列的單片機其彙編指令集是完全不通的。這樣做是比較麻煩的,因為更改了單片機或者升級老產品之後,原有的彙編代碼難以跨平臺移植,只能再重新編寫。所以,彙編的移植性非常差,由於是直接操作機器指令,所以在可讀性上也非常差。這是彙編語言的兩個最大的缺點,但是其優點就是執行效率非常高。從方便的角度上來說,彙編方便了硬件,但對工程師卻不友好。

2

C語言編程的特點

在前幾年使用匯編編程的人還是挺多的,現在使用匯編的人原來越少,即使是寫驅動的人也不完全使用匯編而是使用匯編和C語言結合的方式。單片機的C語言編程具有兩個最大的優點。

第一個優點:易於移植

有過單片機C語言編程的同行都有這樣的經歷,在編程時,首先要在初始化中配置單片機的寄存器,配置完之後的代碼不再頻繁的和寄存器打交道,所以使得C語言的層次非常清晰,在移植代碼時,只需要根據新的平臺修改一下寄存器的配置部分就可以了,功能主體部分幾乎不用修改。這也就是很多優秀程序員所倡導的當文檔層次化編程的原因,每個功能塊都對應一個C文件和H頭文件,在移植時只需要把這兩個文件拷走即可,方便了移植。

從這個方面來講,完全可以拋開單片機的寄存器配置來實現編程,這方面做的比較好的如STM32的官方庫編程和CMSIS等。

第二個優點:易於閱讀

由於C語言通過寄存器和硬件驅動/接口建立關係,編程者不用再去記憶枯燥的指令,而且C語言編程的層次化、模塊化編程也大大提高了代碼的可讀性。相比於彙編,C語言可以用更少的代碼實現更復雜的功能,而且還更易於理解。這也是C語言越來越受歡迎的原因。

3

C語言對比彙編的優勢

通過前面的描述可以看得出來,C語言佔有更多得優勢,C語言易於跨平臺移植、C語言易於理解、C語言易於延續。總之,從編程得角度C語言更受程序員們得歡迎。


以上就是這個問題的回答,感謝留言、評論、轉發。更多電子設計、硬件設計、單片機等內容請關注本頭條號:玩轉嵌入式。感謝大家。


玩轉嵌入式


既然要學習單片機開發,那麼選擇合適的開發語言肯定是一個比較重要的。

比較推薦C語言

為什麼推薦C語言,首先來說C語言是結構化的語言,擁有指針這一靈魂產物,單片機是非常底層的東西,當然我們就要用接近底層的語言去開發它。C語言又被稱為高級語言中的低級語言,但我覺得這句話是不太合理的,沒有底層的支持,那麼上層的一切都是虛無的。作為開發底層的首選語言,C語言是比較適合開發單片機的。並且也解決的彙編語言的兩個缺點。對於執行效率來講,現在的單片機性能已經有很大提升了,這點差距幾乎都是微秒級別的,有差距但可以忽略。

瞭解彙編語言

彙編語言是的執行效率是非常高的。但問題也很多,比如可移植性差,它執行效率高的原因就是直接操作機器指令,但不同的機器又有不同的架構,那麼在不同的平臺上運行就顯得很吃力,或者根本就不能運行。在一個就是程序員讀起來很費勁,可讀性差。

但還是要了解彙編,彙編語言更能接近機器底層,那麼對機器執行的過程就更加清晰,對我們嵌入式程序員來說,瞭解機器底層的執行過程還是比較重要的,可以更清晰的去實現功能代碼。


一枚科技仔


開發單片機學什麼語言好?主流的單片機開發主要有兩種語言,即彙編語言和C語言,下面我來說說我的理解。

1、彙編語言,對於初學者最好掌握,因為它更貼切地表達單片機寄存器間的邏輯轉移關係,讓你理解單片機更加透徹。

2、C語言,主流的開發語言,程序設計起來更加容易,不需要太深入瞭解單片機的內部結構即可開發。

3、其實,編譯軟件是把C語言轉化為彙編語言,再轉為單片機能讀懂的二進制文件即HEX文件,然後燒錄到單片機裡。

隨著技術的發展,單片機變得越來越模塊化,目前用C語言來開發的居多,這兩種語言各有各的優缺點點,不能說誰好誰不好。

其實,語言本身是沒啥好糾結的,一個優秀的設計師並不是敲代碼的,而是設計整個程序的架構,這才是核心。試想一下,假如程序的邏輯結構設計得不清晰,你再熟練各種語言又有何用呢?


圖說的都是理


目前大多都用C語言,有較高的編寫和硬件性能效率; 彙編語言則更能發揮底層性能,但相對初學者相對晦澀難記; 如果只是自學玩玩或者快速做驗證則可瞭解下Arduino,對非專業編程人員很友好,甚至國內都有好幾家公司推出了圖形化界面,拖拖鼠標就可以編寫程序。

往今後走,大趨勢是硬件的軟件化,編程會越來越普及,越來越面向編程者而不是硬件,其中Python就以易學、能在前人肩膀上快速開發著稱,在小型單片機上的MicroPython發展得也很快,不排除今後Python能成開發主力的可能; 而FPGA則是硬件描述語言,不算是傳統編程,能提供強大的實時輸出效果,如果今後以單片機為專業的話可以多關注。

社會行業從古至今都是越分化越細的,新技術也不斷與各行業融合交匯,除作為愛好外,為自己儘早定個細分方向能走得更好。


行進探索


語言只是一種工具,計算機語言和人類語言本質是一樣的,語言學好的好,只能說明可以做一個很好的翻譯。開發單片機,最重要的還是要有適當的思維模式以及邏輯能力,如果思考問題的方式錯了,語言學的再好,再多也沒有任何實用價值


maxhw


建議c(不含c++)。


kissblueice


彙編語言


謝謝國忠


c


考研精靈


每一種單片機有官方自己的彙編語言指令集和編譯器,熟練掌握彙編語言的運用,有助於對該單片機的系統架構、尋址方式、地址分配深入的瞭解,對編譯的優化,效率的提高大有益處;

再進階的運用C語言,工作效率事半功倍!


sharpxcb


彙編+c 拓展plc labview


分享到:


相關文章: