回覆列表
  • 1 # 電源漫談

    微控制器程式設計可以用匯編也可以用C語言。彙編速度快、佔空間小、但不好維護、可讀性不強、重利用率不高等特點。C語言則相反。 還有一點就是C語言可開發所有微控制器型別,但不同型別微控制器彙編是不一樣的。還有一點,在工作中用什麼語言開發不是你定的,是由公司定的。公司要考慮成本問題,能用最便宜的微控制器實現所需要的功能這是老闆最喜歡的。所以微控制器資源較少,又要實現較多功能時,有時用C語言生成的程式碼大小超了,微控制器都裝不了,那隻能用匯編了。

  • 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

  • 中秋節和大豐收的關聯?
  • 為什麼老蜜蠟的價格這麼高?蜜蠟鑑別有哪些方法呢?