
单片机浮点数运算之比较.doc
2页单片机浮点数运算之比较今天心血来潮,做了几种单片机之间浮点数运算速度的比较,实验很简单,编一个实现两个浮点数相乘的小程序,然后编译、仿真,看看每种单片机执行乘法运算需要多少个机器周期,程序如下:void main(void){float i,j;i=12.8;j=3.1415926;i=i*j;for(;i>0;i--); //避免编译警告或被优化掉while(1);}进行比较实验的单片机及相关数据如下(以下执行时间均是指执行 i=i*j 所用指令周周期):AVR:实验芯片型号:ATMAGE16编译仿真环境:IAR FOR AVR5.30执行时间:181MSP430:实验芯:MSP430F2132编译仿真环境:IAR FOR MSP230 5.10执行时间:326STM32:实验芯:STM32F107xC编译仿真环境:IAR FOR ARM 5.41执行时间:38PIC16 单片机:实验芯片:PIC16F877A编译仿真环境:MPLAB 8.53 + PICC9.70执行时间:131451 单片机:实验芯片:AT89C51编译仿真环境:Keil uVision2执行时间:207执行时间(指令周期)比较图从结果可以看出,执行效率最高、速度最快的当属 smt32。
当然,stm32 与其它另外4 种单片机不是一个等级的效率最低、速度最慢的就是 PIC 了,如果采用同样的晶振频率,PIC 的执行时间将是AVR 的 28 倍!做为 16 位单片机的 MSP430 让人有点小失望,竟然还干不过 51,如果换用单周期的 51 单片机,那么它的执行速度也只略逊于 AVR.总结:AVR 不愧于“高速单片机”的称号 ;MSP430 优势有在速度上,在于它的低功耗设计 ;PIC 指令效率太低51 不愧是最经典的单片机;Stm32 不是神话,只因为它是 ARM Cortex-M3。












