Ⅰ 单片机做乘除法运算与浮点运算相比耗时吗
是的,对于没有浮点运算单元FPU的单片机,一般就是采用这种方式来计算。
例如原本要计算的数据是个电压值,在0~3.3V之间,通过12位采样之后得到0~4095的采样值AD_value。按照AD_value*2/5计算之后得到的就是0~1638内的结果,再反向换算为电压0~1.32V。
Ⅱ 学会单片机得多长时间呢
学单片机是件很愉快的事情,大致需要以下阶段:
1)了解常见的模拟、数字电路。这个需要平时积累,至少半年的时间,若电路知识不扎实,越学到深入就越感到痛苦。
2)计算机基础。包括进制转换,计算机原理,常见接口,计算机语言(特别是C)等,大概需要三个月时间,若计算机基础没打牢,会严重制约单片机的开发能力。
3)选择一种较为适合的单片机教材,阅读之。我推荐初学者学习51或PIC,特别是51。这一阶段是初学者最为痛苦的阶段,往往不知道书中所云,所以最好的方法是反复地看书,另外如前面所说,基础很重要。记得我初学51的时候用了三个月的时间把书看了七遍。
4)做实验板,做一些简单的控制,初尝单片机开发的滋味。这一阶段给人初恋般的感觉,妙不可言,大概一个月的时间就对整个体系比较熟悉了。
5)尝试用不同的语言开发单片机,如用汇编写一些涉及多字节运算或数据处理的项目,用C做简单控制,交叉运用,逆向思维。
6)做一些涉及较复杂数据处理的项目,学习高级的计算机算法,如数据结构等;下意识积累单片机外围器件,培养硬件设计能力。
7)当有了上述基础后,可以学习别的一些同级别单片机了,这时候会发现自己居然可以用很短的时间就能掌握一种单片机了。
8)尝试学习更高级别的体系,如ARM等。
Ⅲ Re:单片机的乘法运算到底耗时多少
乘除法运算与外围无关,可以用软件仿真的办法测运算时间
当然与你参加运算的数据类型有关,如是8位还是16位,是浮点型还是整型
一般8 位乘除法两个机器周期就 能完成,而16位的则要很多个机器周期才能完成
Ⅳ 单片机指令周期的计算
计算方法:PIC单片机的每四个时钟周期为一个内部指令周期,例如:8MHz的晶振,则内部指令周期为1/(8/4)= 0.5 uS
实例一:35us, 8MHz的晶振, 8位定时器, 分频比1/2 , 初值 E4
实例二:156.25us , 32768Hz的晶振, 8位定时器, 分频比1/32 , 初值 FC
计算方法一: 35 = =(256-初值)*分频*4/晶振 + 14/分频 =(256-初值)+14/2
计算方法二:0.015625 =(256-初值)*分频*4/晶振 = (256-初值)*32*4/32768
特别注意:分频比1-8 需要加上一个14/分频
指令周期是指令周期执行某一条指令所消耗的时间,它等于机器周期的整数倍。传统的80C51单片机的指令周期大多数是单周期指令,也就是指令周期=机器周期,少部分是双周期指令。
(4)单片机平方运算花多长时间扩展阅读
在MCS-51系统中,有单周期指令,双周期指令。四周期指令只有乘,除两条指令。指令的运算速度和它的机器周期直接相关,机器周期数较小则执行速度快。
在编程时要注意选用具有同样功能而机器周期数小的指令。每一条指令的执行都可以包括取指和执行两个阶段。在取指阶段,CPU从内部或者外部ROM中取出指令操作码及操作数,然后再执行这条指令。
在8051指令系统中,根据各种操作的繁简程度,其指令可由单字节,双字节和三字节组成。从机器执行指令的速度看,单字节和双字节指令都可能是单周期或双周期,
而三字节指令都是双周期,只有乘,除指令占四个周期,一条指令的字节数表征这条指令在存储器中所占空间大小,而周期数表征运行这条指令所花时间长短,即运行速度。
Ⅳ 51单片机执行一条指令需多久
这个与单片机型号、指令类型和使用的晶振频率有关,比如AT89C51,是一个12个时钟周期等于1个机器周期的单片机,如果使用的晶振是12MHz的话,执行一条单指令的 NOP 需要 12x(1/12M)=1微秒的时间,
Ⅵ 单片机的运算速度怎么计算
每一条程序都有所需要的机器周期数,在很多单片机书的附录中都有,你可以根据自己的程序查一下,然后把它们都加起来(注意循环语句)的总机周乘以每个机周的时间(你的是1us),就知道执行所需要的时间了。
Ⅶ 单片机c语言平方是写pow(x,2)快呢 还是x*x快 差距有多少 stc89c52rc 22M
差距太大了,要快还是直接用乘法。
pow函数是用来计算x的y次方的,这里的y可是一个浮点数,你实际是可以计算x的1.234次方,所以,你可以想象一下pow函数有多么复杂的。
Ⅷ 单片机一次加减乘除运算要多少时间
单片机有硬件乘除法的极少。51系列中的也只有一个八位的乘除法指命“MUL AB或DIV AB”。它们是基本指命周期时间的四倍。就是在12M晶振下它们运行一次是4微秒。如果用软件来做就看你所需处理位数和编法了,一般要数毫秒。
Ⅸ 想问一下关于单片机运算时间的问题
1. 取决于单片机内核的类型,以及运算的数据类型/长度。在没有明确说明的前提下,你这个问题很空泛……
2. 要看你想实现何种精度。精度要求不高的话查表法,并且代数式应尽量化简、对数运算尽量化为加减法运算。
3. 根据你表的大小(每项大小以及总项数)计算即可。
Ⅹ 怎么根据单片机晶振计算每段程序的运算时间啊
1.
可以看单片机的晶振,比如是12Mhz,那么运行一次的时间看指令了,
2.
有的单周期,有的两个周期,如加法指令就是两个周期,
3.
做一次加法就用了两个周期的时间1/12000000*2(秒),以此类推其他的时间。