有什麼語言可以玩單片機?

Beautiful乾貨


目前大部分單片機都可採用C語言和彙編語言,部分高級單片機如DSP,可採用C++進行面向對象的編程。

1、彙編語言。採用彙編語言進行編程,優點是會對單片機的架構理解的比較透徹,軟件運行速度較快,可控性比較高。缺點是不同單片機的彙編指令不同,可移植性較差。所以目前大部分編程都採用C語言。但對於時間可控性較高的,則還需要彙編編程,以及實時系統移植也需要彙編語言。

2、C語言。C語言是目前單片機編程最常用的語言。C語言具有易編程,結構化,可移植性的優點,因此被廣泛利用。

3、C++。由於DSP具有處理速度快,可處理較為複雜的系統,因此某些開發壞境支持C++面向對象的編程,如Code Composer Studio。


二進制君


首先解釋一下什麼是單片機。

單片機也被稱為微控制器,英文為Microcontroler,它最早被用在工業控制領域。“單片機由芯片內僅有CPU的專用處理器發展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個芯片中,使計算機系統更小,更容易集成進複雜的而對提及要求嚴格的控制設備當中。”早期的單片機是4位或者8位。其中最成功的是INTEL的8031。

單片機有一個很重要的優勢,就是可編程,通過程序可以實現各種各樣的邏輯功能,修改更靈活,更能減少硬件成本,尤其單片機已經發展到16位,32位,片上集成了各種豐富的片上資源後,單片機已經滲透到了我們生活的各個領域、各個方面。

控制單片機執行邏輯功能,就需要編程。編程需要用到彙編語言或者是C語言。

1.彙編語言

彙編語言,英文為assembly language,是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。在彙編語言中,用助記符(Mnemonics)代替機器指令的操作碼,用地址符號(Symbol)或標號(Label)代替指令或操作數的地址。在不同的設備中,彙編語言對應著不同的機器語言指令集,通過彙編過程轉換成機器指令。普遍地說,特定的彙編語言和特定的機器語言指令集是一一對應的,不同平臺之間移植較為困難。早期單片機編程彙編比較普遍。

2. C語言

C語言是一門通用計算機編程語言,應用廣泛。比較彙編,C語言是高級語言,可移植性好,顆結構化編程。使用標準C語言的程序,幾乎都可以不作改變移植到不同的微機平臺上,對於嵌入式等的微控制芯片,屬於標準C語言的部分也很少需要修改,而且程序很容易讀懂。

現在單片機編程,C語言已經很普及了,彙編用的少了,從寫代碼、讀代碼的角度來講,C語言的優勢太明顯了。

以上就是我的觀點,歡迎評論。更多精彩問答,請關注我的頭條號“玩轉嵌入式”。謝謝。


玩轉嵌入式


簡單說一下單片機。

單片機從數據總線的位寬來說,最早有4位單片機(我曾經用過4位單片機編程,是EPSON的單片機),8位單片機(51,AVR,PIC等)、16位單片機(MSP430等),32位單片機(一般32位的都稱作ARM,)。

從單片機的開發語言來說,有:機器語言、彙編語言、C語言、BASIC、C++、PYTHON,JAVA等。

單片機編程語言的發展歷程也基本是這個順序。

從執行效率來看,也基本是機器語言、彙編語言、C語言這個順序。

首先需要著重說明的是,單片機只能識別機器語言,但是機器語言最難記憶和使用,所以人們九不斷地開發出更適合、更方便、更快捷、更高效的語言來編寫單片機程序,但是,最終這些語言都會經由編譯器變成機器語言才能讓單片機“識別並執行”。

下面分別介紹一下幾種單片機編程語言:

1、機器語

所謂機器語言就是用用二進制代碼編寫程序的語言。在用機器語言編程時,不同的指令用不同的二進制代碼代表,這種二進制代碼構成的指令就是機器指令。在用機器語言編寫程序的時候,由於需要記住大量的二進制代碼指令及這些代碼代表的功能,很不方便且容易出錯,現在基本上很少有人用機器語言對單片機進行編程了。

01110100 00000010 (機器語言)

2、彙編語

由於機器語言的指令需要死記硬背(當然,絕大部分人都記不住,所以需要隨時查閱機器語言指令。)於是就用了一些特殊的字符來代替機器語言指令(二進制碼指令),用這些助記符編寫的程序就稱為彙編語言程序。

MOV A, #02H (彙編語言)

在20年前,基本上都是用匯編語言,直到現在在大學裡入門單片機基本還是從彙編語言開始,這個是基礎,很有必要學習一下。當然,現在完全沒有彙編語言的基礎也可以學習單片機。

3、高級語言

高級語言是依據數學語言設計的,在用高級語言編程時不用過多的考慮單片機的內部結構。與彙編語言相比,高級語言易學易懂,而且通用性很強。

目前來看,C語言是應用最廣泛的單片機編程語言,C語言的執行效率介於彙編語言和高級語言之間,非常適合用來做單片機編程語言。當然,C語言用來做單片機編程語言還要有一些改進,不完全等同於標準C語言,所以單片機C語言又稱為“嵌入式C語言”。

其它可以用來編寫單片機程序的高級語言我本人接觸不多,也就不介紹了,大家可以在用的時候專門學習一下。

綜合以上介紹,我們可以說:高級語言編程較為方便,更便於“讀懂”,非常易於移植,但是在一些對時效性要求很高的場合,需要在高級語言中“插入彙編語言”,以求程序能夠更高效、穩定的工作。

但實現相同的功能,彙編語言代碼少,運行效率高,另外對於初學單片機的朋友,學習彙編語言編程有利於更好的理解單片機的結構與原理,也能為以後學習高級語言編程打下紮實的基礎。


老馬識途單片機


當前總的來說C和彙編最普及,一些不太常用,但有不少鐵粉的有如:basic, pascal, elua, ePython, JavaScript等高級語言。

近年來,隨著單片機計算能力增強,內存和閃存增大,外設增多,帶OS的解釋型語言有大舉進軍單片機之勢,一些分佈式傳感器、控制器等應用,很多既需要聯網使用,又要有很好的可擴展性和在線更新/升級的能力,用傳統的裸奔方式開發,沒有一定用量的話成本就高去了,現在不是講“個性化”嘛,這樣就得用小批量、差異化來做產品。

解釋語言如elua,epython等有大量的pc經驗程序員可以稍加學習就可以做,即使產品不夠完美,也可以先少量出產品,然後不斷在線迭代,逐步滿足用戶不同需求,這是傳統做法達不到的。當然,就當前而言,大量的產品還得靠C和asm。


海底核電站


常規的彙編啊 c啊 c++啊就不過多的介紹了 這可能是現在比較常用和最簡單的玩單片機的語言了 我這裡說的單片機是最簡單的單片機 就8位的。其實 很多語言都能來玩單片機的 給你一個簡單的思路 你可以去看看johnny-five這個開源項目 這就可以直接使用js來玩atmage328p了 類似的例子還有很多 我近期在做怎麼使用python來玩這種簡單的單片機。當然高端一點的單片機 可選擇的語言就更多了 像32位的arm的話 就直接可以用python了 可以去了解micropython。希望這個回答能給你一點幫助。


小5嵌入式


嵌入式和單片機目前基本還是c語言是主流。

原因是,C語言語法簡潔,卻能實現無數功能,然後就是執行效率高

相對於彙編語言,C語言沒有他的晦澀難懂,效率還差不了多少。

除了單片機,目前有些新設備(樹莓派,arduino等)也可以作為一些電子設計,DIY項目的處理器。這些用Python的比較多。


cherishxzh




寵物訓犬師貝貝


用二進制或十六進制機器碼編程很簡捷的,對硬件的理解和設計很有幫助。


分享到:


相關文章: