A. 各類單片機的性能比較
按處理速度來看的話,ARM>>AVR>51 ARM遠大於AVR,AVR大於51
同時ARM也有不同分類比如我們常見的ARM7,ARM9甚至ARM11他們在同一架構和指令集下肯定數大的運算能力強,處理速度快。他們的速度是百兆甚至G為單位的。當然ARM也有不同分類或分工,有致力於運算處理的,比如A8,A10,還有致力於控制方面運算的比如M3,M0等當然這個就屬於低端些的了,主要就是搶占傳統51,AVR,PIC等
還有個MSP430主打就是低功耗。運行速度可能低些,但省電,全速運行也都不超過1,2MA這是其他MCU不能比擬的。
另外上面提到PIC順道說下,這是MCU中的個怪胎。。字長不是我們常見的8位而是7位。指令集也不同於我們傳統的指令,但他高抗干擾性能使他在汽車電子應用比較廣泛。
AVR和51有差別但懸殊就不是那麼大了,AVR的速度和內配比如ADC。PWM等要優於51。當然有些特殊的51如AT89C51SND1C這款內部自帶有MP3解碼器。而AVR一般不行。還需外擴VS1003這類的硬體解碼器。或是80C51有的運行頻率也在百兆甚至內部還帶有USB,LAN等網路配置。
B. 單片機行業經常提到的M0 M1 M2 M3 M4 M7指的是什麼
是指單片機的內核類型,Cortex-M0一直到Cortex-M7。
Cortex-Mx系列是ARM公司出品的一種內核,Mx系列主要面向低成本的實時性應用,進一步按照性能和特性劃分為M0、M1、M2、M3、M4、M7等不同的系列產品。
C. 單片機中時間問題
C語言的執行時間,從來就沒有計算公式。
C程序的執行時間,和操作系統有很大的關系,和編譯軟體也有關,在單片機中,更和變數的存儲類型有關(如單位元組變數、兩位元組變數)。
因為有如此多的不確定因素,所以,從來就沒有辦法計算C的執行時間。
只是可以在模擬調試的時候,進行實際測量,得到一些(難以通用的)經驗數據。
樓主要想准確的控制時間,應該研究使用匯編語言,或者使用硬體定時器。
C語言,只能幹些粗活。
D. STM32 M0和M3內核單片機做浮點除法運算和整型除法運算,分別的用時。希望能給大概數據參考。
這個只能這樣建議你;
編寫C語言代碼,然後編譯調試,可得到匯編語言代碼,把代碼復制出來;
統計其指令周期數,及一個指令周期的實際時間(需要獲得STM32的相關資料);
1)機器指令中沒有直接浮點運算指令,而是由很多相關指令的等效(高級CPU則是採用微指令)所以也叫做偽指令;
2)這些單片機代碼的運行還是獨佔CPU的,沒有時間片的概念,就是說一個函數過程的運行,除了中斷的打擾,就沒有其他能夠干擾其運行時序。
至於說,影響其他過程的運行問題,如果你把浮點運算放到中斷函數內運行,是會影響到中斷外的其他過程的運行時效,否則代碼是線性運行的,一個個排隊執行,沒有誰影響誰的問題;
E. 單片機定時器計數器如何使用
使用12MHz晶振,其機器周期為1us
欲產生5000us周期方波,只需在p1.0以2500us時間交替輸出高低電平
1.T0為方式0,則M1M0=00H。使用定時功能,C/T=0,GATE=0。T1不用,其有關位設為0。因此,TMOD=00H
2.方式0為13長度計數(TL0高3位不使用),設計數初值為X,則(8192-X)*1us=2500us,得X=5692D。X=1011000111100B。因為TL0高3位不用,所以10110001-00011100B得TH0=B1H,TL0=1CH
3.由控制寄存器TCON的TR0位來控制定時的啟動和停止,TR0=1啟動,TR0=0停止
C語言程序如下(編譯器Keil C)
#include<REG51.H>
sbit FB=p1^0;
void initial(void)
{
TMOD=0x00;
TH0=0xb1;
TL0=0x1c;
IE=0x00;
TR0=1;
}
void main(void)
{
initial();
for(;;)
{
while(!TF0);
TF0=0;
FB=!FB;
}
}
匯編程序如下
ORG 0000H
AJMP START
ORG 30H
START: MOV P1.0,#0FFH
MOV TMOD,#00H
MOV TH0,#0B1H
MOV TL0,#1CH
SETB TR0
LOOP: JBC TF0,NEXT
LJMP LOOP
NEXT: CPL P1.0
MOV TH0,#0B1H
MOV TL0,#1CH
LJMP LOOP
END
F. M0晶元靠譜嗎和M3晶元功能上有什麼區別,詳細說說
M0是微控制器使用的,M3是給嵌入式系統使用的。
打個比方吧,M0相當於單片機,M3相當於ARM。
如果只是做微控制器的話,不建議使用M0,編程門檻太高,而且實際使用的話開發周期也太長。
目前感覺MEGA 128是這個領域用的最廣的片子,性能可靠,編程門檻也不高。