发布网友 发布时间:2023-12-05 01:52
共3个回答
热心网友 时间:2024-06-02 15:28
如果不是频繁调用的程序,没有关系的。对于人来说,0.0001秒跟0.01秒没有什么差别。对于我们写的一些小程序来说,如果没有让它进入待机模式,大多数时间都陷入我们的延时程序中了。利用率能到10%就很不错了。当然如果是较长的循环中用到的计算,这种差别累积起来就差太多了。c语言中常讲,用移位优化乘法运算的法则,对51单片机不适用.因为51单片机汇编指令中没有一次移多位,每次只能移一位.热心网友 时间:2024-06-02 15:28
因为51单片机是8位的,所以只能以最大8位计算,就是说超过了8位(256)会将中间值存到寄存器里,所以你像你这个运算量蛮大的,有些单片机像32位的,就一条乘法指令就完成了,而51需要很多条,而且在执行时间上,51属于低频,速度速度有点慢的,因为51的指令执行周期比较慢热心网友 时间:2024-06-02 15:29
51的不行,51是8位机,除T0和T1外,只有一个16位寄存器,16位对应的十进数最大为65535,而你那有一个65536和1048576所以会出与编译错误你运算的数不大于65535,再长,它也可以运行,Keil是先把C语言弄成汇编的,它也是一步一步进行运算的,只不过时间会长一点