單片(pian)機編程用什么語言 哪個適合新手
時(shi)間(jian):2018-01-24 來源:未知
單(dan)片機(ji)(ji)編程的(de)語言有好幾種,可以用(yong)(yong)C,也可以用(yong)(yong)匯(hui)編語言。這就讓(rang)很(hen)多還不(bu)是很(hen)懂(dong)的(de)新手為難了,到底(di)單(dan)片機(ji)(ji)編程用(yong)(yong)什么語言好呢(ni)?哪(na)個更適合新手呢(ni)?
用匯編的(de)(de)優勢主要(yao)是:程(cheng)序(xu)可(ke)以被編程(cheng)者優化(hua),而不是由編譯器(qi)(qi)優化(hua),這樣(yang)就(jiu)可(ke)以絕對可(ke)控(kong),程(cheng)序(xu)的(de)(de)安全(quan)性和執行(xing)速(su)(su)度受編程(cheng)者水平限制,不過總的(de)(de)執行(xing)速(su)(su)度較(jiao)C語(yu)言(yan)(yan)快,代碼占程(cheng)序(xu)存儲(chu)(chu)器(qi)(qi)的(de)(de)容(rong)量較(jiao)C語(yu)言(yan)(yan)小(xiao)。這樣(yang),匯編程(cheng)序(xu)更適合(he)程(cheng)序(xu)存儲(chu)(chu)器(qi)(qi)和數(shu)據(ju)存儲(chu)(chu)器(qi)(qi)較(jiao)小(xiao)的(de)(de)老式單片機。但是,匯編程(cheng)序(xu)畢竟是機器(qi)(qi)語(yu)言(yan)(yan)的(de)(de)匯編助記符,所(suo)以存在指令(ling)(ling)難記,指令(ling)(ling)功能弱的(de)(de)缺點,造成學(xue)習困難。
C語(yu)言(yan)(yan)的(de)優勢(shi)與缺點正好(hao)與匯(hui)編(bian)(bian)相反:C語(yu)言(yan)(yan)畢竟是一種高級語(yu)言(yan)(yan),具有較(jiao)好(hao)的(de)學(xue)習性,幾(ji)乎不(bu)必(bi)記(ji)憶指令(ling),學(xue)習容易,而且編(bian)(bian)譯時的(de)優化由編(bian)(bian)譯器(qi)(qi)管理,一般不(bu)受編(bian)(bian)程者水平限制(zhi)。由于(yu)機器(qi)(qi)優化的(de)局限性,C語(yu)言(yan)(yan)總的(de)執行速度較(jiao)匯(hui)編(bian)(bian)語(yu)言(yan)(yan)慢(man),代碼(ma)占程序存儲器(qi)(qi)的(de)容量較(jiao)匯(hui)編(bian)(bian)語(yu)言(yan)(yan)大(da)。這樣,C程序更(geng)適合程序存儲器(qi)(qi)和(he)數據存儲器(qi)(qi)較(jiao)大(da)的(de)新式單片機。

建議新(xin)手先使用C語言快(kuai)速入(ru)門,然后再研究匯編語言,優化程(cheng)序設計。
單(dan)片機編(bian)程(cheng)語(yu)言推薦,單(dan)片機常(chang)用(yong)的編(bian)程(cheng)語(yu)言有(you):機器語(yu)言 匯編(bian)語(yu)言和(he)高級語(yu)言(主要(yao)是c語(yu)言)
1.機器語言
單(dan)(dan)片(pian)機是(shi)一種大(da)規(gui)模的(de)數字集(ji)成(cheng)電路,它(ta)只能(neng)識別(bie) 0 和 1 這樣(yang)的(de)二進(jin)制代(dai)碼(ma)(ma)。以(yi)前在單(dan)(dan)片(pian)機開(kai)發過程(cheng)(cheng)(cheng)中,人(ren)們(men)用二進(jin)制代(dai)碼(ma)(ma)編寫程(cheng)(cheng)(cheng)序,然后再把(ba)所編寫的(de)二進(jin)制代(dai)碼(ma)(ma)程(cheng)(cheng)(cheng)序寫入單(dan)(dan)片(pian)機,單(dan)(dan)片(pian)機執行這些代(dai)碼(ma)(ma)程(cheng)(cheng)(cheng)序就可以(yi)完成(cheng)相應(ying)的(de)程(cheng)(cheng)(cheng)序任務。
用(yong)(yong)二進(jin)制代(dai)碼編寫(xie)的(de)(de)程(cheng)序(xu)(xu)稱為(wei)機(ji)器(qi)語(yu)言程(cheng)序(xu)(xu)。在(zai)(zai)用(yong)(yong)機(ji)器(qi)語(yu)言編程(cheng)時(shi),不同的(de)(de)指令用(yong)(yong)不同的(de)(de)二進(jin)制代(dai)碼代(dai)表,這種(zhong)二進(jin)制代(dai)碼構成的(de)(de)指令就是機(ji)器(qi)指令。在(zai)(zai)用(yong)(yong)機(ji)器(qi)語(yu)言編寫(xie)程(cheng)序(xu)(xu)的(de)(de)時(shi)候(hou),由于需要記(ji)住大(da)量的(de)(de)二進(jin)制代(dai)碼指令及這些代(dai)碼代(dai)表的(de)(de)功能(neng),很(hen)不方便且容易出錯,現(xian)在(zai)(zai)基本(ben)上(shang)很(hen)少有人用(yong)(yong)機(ji)器(qi)語(yu)言對單片機(ji)進(jin)行(xing)編程(cheng)了(le)。
2.匯編語言(yan)
由于(yu)及其(qi)語言編(bian)程很(hen)不方便,人們(men)便用(yong)(yong)一些有意義并且容易記憶(yi)的(de)符號(hao)來表示(shi)不同的(de)二進制代碼指(zhi)令,這些符號(hao)稱為(wei)助(zhu)(zhu)記符。用(yong)(yong)助(zhu)(zhu)記符表示(shi)的(de)指(zhi)令稱為(wei)匯(hui)編(bian)語言指(zhi)令,用(yong)(yong)助(zhu)(zhu)記符編(bian)寫出來的(de)程序(xu)稱為(wei)匯(hui)編(bian)語言程序(xu)。
01110100 00000010 (機器(qi)語言)
MOV A, #02H (匯編語言(yan))
這(zhe)兩(liang)行程序(xu)的(de)功(gong)能(neng)是一(yi)樣的(de),都(dou)是將二進制數(shu)據00000010送到累加器(qi)A中。可以看出(chu),機器(qi)語言(yan)程序(xu)要比匯編語言(yan)難寫,并且(qie)很容易出(chu)錯。
單片機只能識別機器(qi)語(yu)(yu)言,所以(yi)匯編(bian)(bian)語(yu)(yu)程序言要匯編(bian)(bian)(翻譯(yi))成(cheng)機器(qi)語(yu)(yu)言程序,再寫入單片機中。一般都是用軟件(jian)匯編(bian)(bian)自動將(jiang)匯編(bian)(bian)語(yu)(yu)言翻譯(yi)成(cheng)及其指令(ling)。
3.高級語言
高級(ji)語(yu)(yu)(yu)(yu)言(yan)(yan)是(shi)依(yi)據數學語(yu)(yu)(yu)(yu)言(yan)(yan)設計(ji)的(de),在用高級(ji)語(yu)(yu)(yu)(yu)言(yan)(yan)編程時不用過多(duo)的(de)考(kao)慮單(dan)片機(ji)的(de)內部結構。與匯(hui)編語(yu)(yu)(yu)(yu)言(yan)(yan)相比,高級(ji)語(yu)(yu)(yu)(yu)言(yan)(yan)易學易懂,而且通用性(xing)很(hen)強。高級(ji)語(yu)(yu)(yu)(yu)言(yan)(yan)的(de)種(zhong)類很(hen)多(duo),如:B語(yu)(yu)(yu)(yu)言(yan)(yan) Pascal語(yu)(yu)(yu)(yu)言(yan)(yan) C語(yu)(yu)(yu)(yu)言(yan)(yan)和JAVA語(yu)(yu)(yu)(yu)言(yan)(yan)等。單(dan)片機(ji)常用C語(yu)(yu)(yu)(yu)言(yan)(yan)作(zuo)為高級(ji)編程語(yu)(yu)(yu)(yu)言(yan)(yan)。
單片機(ji)不(bu)能識別高級語言(yan)的程序(xu),因此(ci)也需要用(yong)編譯器對高級語言(yan)程序(xu)翻譯成(cheng)機(ji)器語言(yan)程序(xu)后再寫入單片機(ji)。
在(zai)上面三種單(dan)片機編程語言(yan)中,高(gao)(gao)級(ji)(ji)語言(yan)編程較為(wei)方便,但(dan)實現相同的(de)(de)功能,匯(hui)編語言(yan)代碼(ma)少,運行效率(lv)高(gao)(gao),另(ling)外對于單(dan)片機編程的(de)(de)新(xin)手朋友,學(xue)習(xi)匯(hui)編語言(yan)編程有利于更好(hao)的(de)(de)理(li)解單(dan)片機的(de)(de)結構與原(yuan)理(li),也能為(wei)以后學(xue)習(xi)高(gao)(gao)級(ji)(ji)語言(yan)編程打下(xia)扎實的(de)(de)基(ji)礎。