當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 單片機(jī)學(xué)習(xí) > 單片機(jī)編程入門 > 單片機(jī)編程用什么語言 哪個(gè)適合新手
單片機(jī)編程的語言有好幾種,可以用C,也可以用匯編語言。這就讓很多還不是很懂的新手為難了,到底單片機(jī)編程用什么語言好呢?哪個(gè)更適合新手呢?
用匯編的優(yōu)勢(shì)主要是:程序可以被編程者優(yōu)化,而不是由編譯器優(yōu)化,這樣就可以絕對(duì)可控,程序的安全性和執(zhí)行速度受編程者水平限制,不過總的執(zhí)行速度較C語言快,代碼占程序存儲(chǔ)器的容量較C語言小。這樣,匯編程序更適合程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器較小的老式單片機(jī)。但是,匯編程序畢竟是機(jī)器語言的匯編助記符,所以存在指令難記,指令功能弱的缺點(diǎn),造成學(xué)習(xí)困難。
C語言的優(yōu)勢(shì)與缺點(diǎn)正好與匯編相反:C語言畢竟是一種高級(jí)語言,具有較好的學(xué)習(xí)性,幾乎不必記憶指令,學(xué)習(xí)容易,而且編譯時(shí)的優(yōu)化由編譯器管理,一般不受編程者水平限制。由于機(jī)器優(yōu)化的局限性,C語言總的執(zhí)行速度較匯編語言慢,代碼占程序存儲(chǔ)器的容量較匯編語言大。這樣,C程序更適合程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器較大的新式單片機(jī)。
建議新手先使用C語言快速入門,然后再研究匯編語言,優(yōu)化程序設(shè)計(jì)。
單片機(jī)編程語言推薦,單片機(jī)常用的編程語言有:機(jī)器語言 匯編語言和高級(jí)語言(主要是c語言)
1.機(jī)器語言
單片機(jī)是一種大規(guī)模的數(shù)字集成電路,它只能識(shí)別 0 和 1 這樣的二進(jìn)制代碼。以前在單片機(jī)開發(fā)過程中,人們用二進(jìn)制代碼編寫程序,然后再把所編寫的二進(jìn)制代碼程序?qū)懭雴纹瑱C(jī),單片機(jī)執(zhí)行這些代碼程序就可以完成相應(yīng)的程序任務(wù)。
用二進(jìn)制代碼編寫的程序稱為機(jī)器語言程序。在用機(jī)器語言編程時(shí),不同的指令用不同的二進(jìn)制代碼代表,這種二進(jìn)制代碼構(gòu)成的指令就是機(jī)器指令。在用機(jī)器語言編寫程序的時(shí)候,由于需要記住大量的二進(jìn)制代碼指令及這些代碼代表的功能,很不方便且容易出錯(cuò),現(xiàn)在基本上很少有人用機(jī)器語言對(duì)單片機(jī)進(jìn)行編程了。
2.匯編語言
由于及其語言編程很不方便,人們便用一些有意義并且容易記憶的符號(hào)來表示不同的二進(jìn)制代碼指令,這些符號(hào)稱為助記符。用助記符表示的指令稱為匯編語言指令,用助記符編寫出來的程序稱為匯編語言程序。
01110100 00000010 (機(jī)器語言)
MOV A, #02H (匯編語言)
這兩行程序的功能是一樣的,都是將二進(jìn)制數(shù)據(jù)00000010送到累加器A中?梢钥闯,機(jī)器語言程序要比匯編語言難寫,并且很容易出錯(cuò)。
單片機(jī)只能識(shí)別機(jī)器語言,所以匯編語程序言要匯編(翻譯)成機(jī)器語言程序,再寫入單片機(jī)中。一般都是用軟件匯編自動(dòng)將匯編語言翻譯成及其指令。
3.高級(jí)語言
高級(jí)語言是依據(jù)數(shù)學(xué)語言設(shè)計(jì)的,在用高級(jí)語言編程時(shí)不用過多的考慮單片機(jī)的內(nèi)部結(jié)構(gòu)。與匯編語言相比,高級(jí)語言易學(xué)易懂,而且通用性很強(qiáng)。高級(jí)語言的種類很多,如:B語言 Pascal語言 C語言和JAVA語言等。單片機(jī)常用C語言作為高級(jí)編程語言。
單片機(jī)不能識(shí)別高級(jí)語言的程序,因此也需要用編譯器對(duì)高級(jí)語言程序翻譯成機(jī)器語言程序后再寫入單片機(jī)。
在上面三種單片機(jī)編程語言中,高級(jí)語言編程較為方便,但實(shí)現(xiàn)相同的功能,匯編語言代碼少,運(yùn)行效率高,另外對(duì)于單片機(jī)編程的新手朋友,學(xué)習(xí)匯編語言編程有利于更好的理解單片機(jī)的結(jié)構(gòu)與原理,也能為以后學(xué)習(xí)高級(jí)語言編程打下扎實(shí)的基礎(chǔ)。