-
1 # 電源漫談
-
2 # 老馬識途微控制器
這個問題要從兩方面來說:第一是微控制器是用什麼程式設計環境(開發平臺)程式設計?第二是微控制器是用什麼程式語言程式設計?
我們分別來看看:
一、微控制器的程式設計環境微控制器的程式設計環境說起來就太多了,基本上每個微控制器生產廠家的微控制器都有自己的程式設計環境,並且不同廠家的微控制器程式設計環境都有各自的特色,說到各自的特色,我們應該就會明白,正是因為這些各自的特色,使得不同廠家的程式設計環境的操作有很大差異,這給我們在用不同微控制器開發時增加了很大麻煩。
大多數的程式設計環境都支援彙編和C語言,但是也有個別的程式設計環境只支援組合語言,這是我們選擇微控制器開發環境時需要注意的。
還有一些程式設計環境需要再安裝一些外掛才能完全使用,這也是我們需要注意的。
目前比較通用的微控制器開換環境有兩種:MDK和IAR。
隨著這些年基於ARM技術得CORTEX系列晶片的大規模推廣,MDK也應用也是越來越多,MDK的前身是KEIL C,對於從事微控制器開發比較長時間的人來說keil c應該不陌生,它最初是51微控制器最好的程式設計環境,後來ARM收購了它,並在此基礎上加以增強,現在基本支援ARM全系列晶片的開發。
還有就是IAR,據我所知IAR是目前支援微控制器和ARM種類最多的程式設計環境,從51,AVR,PIC,MSP430到ARM,基本上支援所有的通用微控制器。
但是需要說明的是,雖然IAR支援非常多的微控制器,但是隻是說IAR這個軟體,具體到某一種微控制器,它是有不同的安裝包的,比如要開發AVR微控制器,就需要安裝基於AVR微控制器的安裝包。所以IAR實際上對每一種的那片集都是一個單獨的開發環境,只是他們的介面和功能選項都是基於IAR這個平臺的,僅此而已。
二、微控制器的程式語言相對於微控制器的程式設計環境,微控制器的程式語言就沒有那麼多選擇了。目前微控制器的程式語言主要是組合語言和C語言。其中C語言佔據了絕大部分的程式設計選擇。
關於組合語言的優缺點、C語言的優缺點網上講的已經太多了,我在這裡就不在重複了。
只說明一點,相比較而言,C語言可能是最好的微控制器程式語言。
-
3 # 大學生程式設計指南
微控制器程式設計用到的程式語言:
C語言和組合語言
開發環境MDKIAR入門書籍學好微控制器,下一步的學習方向直接就可以切入到嵌入式,相比微控制器嵌入式更加註重帶有作業系統的程式設計,要求更高一些,有空閒時間可以補充下linux的學習。
-
4 # 網際網路達人李先生
微控制器
程式設計的語言
既可以用C,也可以用匯編。用匯編的優勢主要是程式可以被程式設計者最佳化,而不是由編譯器最佳化,這樣就可以絕對可控,程式的安全性和執行速度受程式設計者水平限制,不過總的執行速度較C語言
快,程式碼佔程式儲存器的容量較C語言
小。這樣,彙編程式更適合程式儲存器和資料儲存
器較小的老式微控制器。但是,彙編程式畢竟是機器語言的彙編助記符,所以存在指令難記,指令功能弱的缺點,造成學習困難
。C語言
的優勢與缺點正好與彙編相反。C語言畢竟是一種高階語言,具有較好的學習性,幾乎不必記憶指令,學習容易,而且編譯時的最佳化由編譯器管理,一般不受程式設計者水平限制。由於機器最佳化的侷限性,C語言總的執行速度較組合語言
慢,程式碼佔程式儲存器的容量較組合語言
大。這樣,C程式更適合程式儲存器和資料儲存
器較大的新式微控制器。建議初學
者先使用C語言快速入門
,然後再研究組合語言
,最佳化程式設計
。 -
5 # 電氣電子視界
首先回答一下微控制器是用什麼程式設計的?後邊詳細會舉例子!
微控制器程式設計的語言即可以用C,也可以用匯編。
用匯編的優勢主要是程式可以被程式設計者最佳化,這樣就可以絕對可控,程式的安全性和執行速度受程式設計者水平限制,不過總的執行速度較c語言快,程式碼佔程式儲存器的容量較C語言小。這樣彙編程式更適合程式儲存器和資料儲存器較小的老式微控制器。但是彙編程式畢竟是機器語言的彙編助記符。所以存在指令難記,指令功能弱的缺點,造成學習困難。
C語言優勢與缺點正好與組合語言相反,C語言雖然畢竟是一種高階語言,具有較好的學習性,幾乎不必記憶指令,學習容易,而且編譯時的最佳化由編譯器管理,一般不受程式設計者水平限制。由於機器最佳化的侷限性,C語言總的執行速度較組合語言慢,程式碼佔程式儲存器的容量較組合語言大。這樣,C程式更適合程式儲存器和資料儲存器較大的新式微控制器。
初學者建議先使用C語言快速入門,再去研究彙編,最佳化程式設計。
下邊給大家分別用匯編和C編寫~LED燈的迴圈移動
彙編org 00h
start:mov r0,#8;
mov a,#1111110b;
loop:mov p1,a
rla
call delay
djnz r0,loop
jmp start
DELAY:MOV R5,#20;延時子程式,延時0.2秒
D1:MOV R6,#20
D2:MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
end
C#include
void delay100ms();//如果函式是在主函式後面定義,那麼一定要在主函式前面宣告
void main()
{
int i;
i=0xfe;
while(1)
{P1=i;
i--;
delay100ms();
if(i==0)
i=0xfe;
}
}
void delay100ms(void)//
{
unsigned char a,b,c;
for(c=19;c>0;c--)
for(b=20;b>0;b--)
for(a=230;a>0;a--)
}
2018.3.12
回覆列表
微控制器程式設計可以用匯編也可以用C語言。彙編速度快、佔空間小、但不好維護、可讀性不強、重利用率不高等特點。C語言則相反。 還有一點就是C語言可開發所有微控制器型別,但不同型別微控制器彙編是不一樣的。還有一點,在工作中用什麼語言開發不是你定的,是由公司定的。公司要考慮成本問題,能用最便宜的微控制器實現所需要的功能這是老闆最喜歡的。所以微控制器資源較少,又要實現較多功能時,有時用C語言生成的程式碼大小超了,微控制器都裝不了,那隻能用匯編了。