單片機(jī)為什么還在用C語言編程?答案是:C語言是最適合單片機(jī)編程的高級語言。
這個問題的意思應(yīng)該是:現(xiàn)在有很多很好用的高級語言,如java,python,VC等等,為什么這些語言不能用來編寫單片機(jī)程序呢?那么這個問題的答案就是:不能不能,而是不合適。
一、單片機(jī)編程的特點(diǎn)
對單片機(jī)編程來說,首先要考慮的是單片機(jī)的程序空間和數(shù)據(jù)空間都是有限的,所以要讓程序盡量短小精悍,以節(jié)省程序占用的存儲空間。
第二、單片機(jī)編程的一個主要對象是對單片機(jī)的端口和內(nèi)部寄存器的操作和配置,這個需要比較精確的時序控制。
第三、單片機(jī)算法運(yùn)算中,盡量使用加法、減法、移位運(yùn)算,因?yàn)槌朔ê统ㄟ\(yùn)算會非常費(fèi)時間,尤其是除法,會耗費(fèi)很多時間,這對于速度本身就有限制的單片機(jī)來說,是一個很大的負(fù)擔(dān)。
二、高級語言編寫單片機(jī)程序的缺陷
高級語言可以實(shí)現(xiàn)更為優(yōu)化的算法,更為方便的執(zhí)行方案,但是,高級語言對程序存儲空間的占用要比匯編和C語言多很多。這是最致命的一點(diǎn),單片機(jī)有限的存儲空間需要靠精打細(xì)算來設(shè)計程序,根本經(jīng)不起高級語言臃腫的代碼體積。
高級語言無法實(shí)現(xiàn)精確的時序控制。
三、C語言是一個折中選擇
其實(shí)用C語言開發(fā)單片機(jī)也是一個折中方案,因?yàn)樽钸m合單片機(jī)開發(fā)的編程語言實(shí)在太過晦澀難懂,并且每一種單片機(jī)的匯編指令有很大區(qū)別,所以想把一個程序從這種單片機(jī)移植到另一種單片機(jī)簡直是癡心妄想,還不如重新寫一遍程序。
而C語言代碼執(zhí)行效率高,也比較精簡,更便于移植......所以在現(xiàn)今的單片機(jī)編程語言中,C語言才會占據(jù)絕對主導(dǎo)地位
-
單片機(jī)
+關(guān)注
關(guān)注
6044文章
44624瀏覽量
638943 -
JAVA
+關(guān)注
關(guān)注
19文章
2976瀏覽量
105211 -
C語言
+關(guān)注
關(guān)注
180文章
7615瀏覽量
137827
發(fā)布評論請先 登錄
相關(guān)推薦
gitee 支持的編程語言有哪些
Triton編譯器支持的編程語言
如何選擇適合自己的編程語言
C語言中的socket編程基礎(chǔ)
單片機(jī)編程語言有哪些選擇
C語言與其他編程語言的比較
Orin芯片的編程語言支持
hex文件如何查看原c語言代碼
新手如何學(xué)單片機(jī)
![新手如何學(xué)<b class='flag-5'>單片機(jī)</b>](https://file1.elecfans.com/web2/M00/8D/79/wKgaomS7KZ-AY3GzAAArJzrUg1c443.png)
abb工業(yè)機(jī)器人的編程語言是什么
PLC編程語言和C語言的區(qū)別
上位機(jī)軟件開發(fā)用什么語言
如何選擇最適合你的UV LED固化機(jī)?
![如何選擇<b class='flag-5'>最適合</b>你的UV LED固化<b class='flag-5'>機(jī)</b>?](https://file1.elecfans.com/web2/M00/E7/97/wKgaomZISHOAGnVEAARtN-z9Hns169.png)
評論