當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 單片機(jī)學(xué)習(xí) > 單片機(jī)編程入門(mén) > 單片機(jī)編程用什么語(yǔ)言 哪個(gè)適合新手
單片機(jī)編程用什么語(yǔ)言 哪個(gè)適合新手
時(shí)間:2018-01-24 來(lái)源:未知
單片機(jī)編程的語(yǔ)言有好幾種,可以用C,也可以用匯編語(yǔ)言。這就讓很多還不是很懂的新手為難了,到底單片機(jī)編程用什么語(yǔ)言好呢?哪個(gè)更適合新手呢?
用匯編的優(yōu)勢(shì)主要是:程序可以被編程者優(yōu)化,而不是由編譯器優(yōu)化,這樣就可以絕對(duì)可控,程序的安全性和執(zhí)行速度受編程者水平限制,不過(guò)總的執(zhí)行速度較C語(yǔ)言快,代碼占程序存儲(chǔ)器的容量較C語(yǔ)言小。這樣,匯編程序更適合程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器較小的老式單片機(jī)。但是,匯編程序畢竟是機(jī)器語(yǔ)言的匯編助記符,所以存在指令難記,指令功能弱的缺點(diǎn),造成學(xué)習(xí)困難。
C語(yǔ)言的優(yōu)勢(shì)與缺點(diǎn)正好與匯編相反:C語(yǔ)言畢竟是一種高級(jí)語(yǔ)言,具有較好的學(xué)習(xí)性,幾乎不必記憶指令,學(xué)習(xí)容易,而且編譯時(shí)的優(yōu)化由編譯器管理,一般不受編程者水平限制。由于機(jī)器優(yōu)化的局限性,C語(yǔ)言總的執(zhí)行速度較匯編語(yǔ)言慢,代碼占程序存儲(chǔ)器的容量較匯編語(yǔ)言大。這樣,C程序更適合程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器較大的新式單片機(jī)。

建議新手先使用C語(yǔ)言快速入門(mén),然后再研究匯編語(yǔ)言,優(yōu)化程序設(shè)計(jì)。
單片機(jī)編程語(yǔ)言推薦,單片機(jī)常用的編程語(yǔ)言有:機(jī)器語(yǔ)言 匯編語(yǔ)言和高級(jí)語(yǔ)言(主要是c語(yǔ)言)
1.機(jī)器語(yǔ)言
單片機(jī)是一種大規(guī)模的數(shù)字集成電路,它只能識(shí)別 0 和 1 這樣的二進(jìn)制代碼。以前在單片機(jī)開(kāi)發(fā)過(guò)程中,人們用二進(jìn)制代碼編寫(xiě)程序,然后再把所編寫(xiě)的二進(jìn)制代碼程序?qū)懭雴纹瑱C(jī),單片機(jī)執(zhí)行這些代碼程序就可以完成相應(yīng)的程序任務(wù)。
用二進(jìn)制代碼編寫(xiě)的程序稱(chēng)為機(jī)器語(yǔ)言程序。在用機(jī)器語(yǔ)言編程時(shí),不同的指令用不同的二進(jìn)制代碼代表,這種二進(jìn)制代碼構(gòu)成的指令就是機(jī)器指令。在用機(jī)器語(yǔ)言編寫(xiě)程序的時(shí)候,由于需要記住大量的二進(jìn)制代碼指令及這些代碼代表的功能,很不方便且容易出錯(cuò),現(xiàn)在基本上很少有人用機(jī)器語(yǔ)言對(duì)單片機(jī)進(jìn)行編程了。
2.匯編語(yǔ)言
由于及其語(yǔ)言編程很不方便,人們便用一些有意義并且容易記憶的符號(hào)來(lái)表示不同的二進(jìn)制代碼指令,這些符號(hào)稱(chēng)為助記符。用助記符表示的指令稱(chēng)為匯編語(yǔ)言指令,用助記符編寫(xiě)出來(lái)的程序稱(chēng)為匯編語(yǔ)言程序。
01110100 00000010 (機(jī)器語(yǔ)言)
MOV A, #02H (匯編語(yǔ)言)
這兩行程序的功能是一樣的,都是將二進(jìn)制數(shù)據(jù)00000010送到累加器A中。可以看出,機(jī)器語(yǔ)言程序要比匯編語(yǔ)言難寫(xiě),并且很容易出錯(cuò)。
單片機(jī)只能識(shí)別機(jī)器語(yǔ)言,所以匯編語(yǔ)程序言要匯編(翻譯)成機(jī)器語(yǔ)言程序,再寫(xiě)入單片機(jī)中。一般都是用軟件匯編自動(dòng)將匯編語(yǔ)言翻譯成及其指令。
3.高級(jí)語(yǔ)言
高級(jí)語(yǔ)言是依據(jù)數(shù)學(xué)語(yǔ)言設(shè)計(jì)的,在用高級(jí)語(yǔ)言編程時(shí)不用過(guò)多的考慮單片機(jī)的內(nèi)部結(jié)構(gòu)。與匯編語(yǔ)言相比,高級(jí)語(yǔ)言易學(xué)易懂,而且通用性很強(qiáng)。高級(jí)語(yǔ)言的種類(lèi)很多,如:B語(yǔ)言 Pascal語(yǔ)言 C語(yǔ)言和JAVA語(yǔ)言等。單片機(jī)常用C語(yǔ)言作為高級(jí)編程語(yǔ)言。
單片機(jī)不能識(shí)別高級(jí)語(yǔ)言的程序,因此也需要用編譯器對(duì)高級(jí)語(yǔ)言程序翻譯成機(jī)器語(yǔ)言程序后再寫(xiě)入單片機(jī)。
在上面三種單片機(jī)編程語(yǔ)言中,高級(jí)語(yǔ)言編程較為方便,但實(shí)現(xiàn)相同的功能,匯編語(yǔ)言代碼少,運(yùn)行效率高,另外對(duì)于單片機(jī)編程的新手朋友,學(xué)習(xí)匯編語(yǔ)言編程有利于更好的理解單片機(jī)的結(jié)構(gòu)與原理,也能為以后學(xué)習(xí)高級(jí)語(yǔ)言編程打下扎實(shí)的基礎(chǔ)。
華清遠(yuǎn)見(jiàn)90+項(xiàng)目獲批!教育部2021最新協(xié)同育人項(xiàng)目名
華清遠(yuǎn)見(jiàn)榮獲2021騰訊教育“年度口碑影響力職業(yè)教育品
華清遠(yuǎn)見(jiàn)受邀參加2021年武漢民辦高校信息學(xué)科合作聯(lián)盟
溫暖同行共創(chuàng)佳績(jī) 2019華清遠(yuǎn)見(jiàn)北京總部年會(huì)大曝光
助力高校AI人工智能學(xué)科建設(shè) 華清遠(yuǎn)見(jiàn)人工智能師資班
華清遠(yuǎn)見(jiàn)受邀參加四川省物聯(lián)網(wǎng)年會(huì),榮獲優(yōu)秀企業(yè)專(zhuān)家
