51单片机与AVR单片机运行速度的快慢是不是就是在于晶振频率的不同?

来源:百度知道 编辑:UC知道 时间:2024/05/29 07:54:19
51单片机与AVR单片机运行速度的快慢是不是就是在于晶振频率的不同?
51是不是最大接的晶振频率只能为12MHz,而AVR单片机最大可以接多大的频率呢?

不是的,即使两个芯片同时使用同样的晶振,比如12M的。因为AVR是RISC指令集,它在同样外部晶振频率下,比51要快。
51最快能接40M,AVR是16M的晶振。

单独比较两种单片机在相同频率下的指令执行速度是还不够的,还要考虑软件编写时的情况,如果单独比较工作频率,那么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

殊不知现在的 51内核很多已经可以全数运行 你12MHz晶振,现在已经不是那种 1/12的速度的时代了. 内部总线就是按照12MHz 运行的,而不是1MHz

不是的,还要看指令效率。
51最大有几十兆的。不过普通的51好像最高可以接24Mhz。avr最大是16Mhz。

晶震关系到时钟周期,的确影响运行速度,但是不要忘记,你编的程序也是关键,看你编的巧不巧妙.