第1个回答 2009-04-28
单独比较两种单片机在相同频率下的指令执行速度是还不够的,还要考虑软件编写时的情况,如果单独比较工作频率,那么1MHz的AVR至少相当于6MHz的51,但是要考虑软件编写的效率的话,那就是另外一回事了,比如计算16位减法,要求是:已知R7:R6=aH:aL=a,R5:R4=bH:bL=b,计算R7-R6=a-b,对于51单片机的指令是:
CLR C
MOV A,R6
SUBB A,R4
MOV R6,A
MOV A,R7
SUBB A,R5
MOV R7,A
一共需要7个机器周期,如果对于普通的51单片机,则需要84个时钟周期
对于AVR:
SUB R6,R4
SBC R7,R5
一共2个机器周期,即2个时钟周期
所以这时AVR比51快84/2=42倍。
当然如果AVR编程时不考虑效率,那51使用不高的频率都能胜过AVR
第2个回答 2009-04-29
殊不知现在的 51内核很多已经可以全数运行 你12MHz晶振,现在已经不是那种 1/12的速度的时代了. 内部总线就是按照12MHz 运行的,而不是1MHz
第3个回答 2009-04-28
不是的,还要看指令效率。
51最大有几十兆的。不过普通的51好像最高可以接24Mhz。avr最大是16Mhz。
第4个回答 2009-04-29
晶震关系到时钟周期,的确影响运行速度,但是不要忘记,你编的程序也是关键,看你编的巧不巧妙.