在C里写的代码:
delay=0x64;
while(--delay);
编译出来的汇编源代码是这样的:
;SOURCELINE#62
00107F64MOVR7,#064H;2B,2CLK
0012?C0006:
;SOURCELINE#63
0012DFFEDJNZR7,?C0006;2B,2/3CLK
如果我们采用24MHZ的晶振,每个时钟周期是41.6ns那么上面的延时语句的延时精度可以是41.6×8/3=111ns,已经足够精确了。
如果我们要产生xns的延时,只要代入计算公式:(x-83.2)/27.7得到delay的初始值就可以了!!
文章来源于:电子工程世界 原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关文章
stm32delay函数怎么写(2024-08-08)
stm32delay函数怎么写;STM32的延时函数可以使用SysTick定时器来实现。SysTick定时器是一个24位的计数器,它可以在每个时钟周期自动减少计数值,直到计数值为0时触发中断。我们......
51单片机控制步进电机-让电机转起来(2024-02-22)
送一个脉冲,电机就转一步。通过单片机延时的方式,切换PUL口电平产生脉冲,从而控制电机转动。
三、程序代码
//毫秒延时函数
void delay(unsigned int z)
{
unsigned
int......
8051系列单片机软件精确延时研究(二)(2024-07-23)
都有的、固定不变的;for循环判断x>0并跳转产生额外的5个机器周期的误差。
改进
根据《在单片机KeilC开发环境中设计精确的延时函数》中提到的内容,可将for循环......
51单片机C语言程序100例分析(1)IO+C语言+头文件(2022-12-07)
delay(); //调用延时函数
}
}
}
分析:右移运算
//实例17:用if语句控制P0口8位LED的流水方向
#include //包含单片机寄存器的头文件
sbit S1=P1......
STC89C51单片机对LCD显示的串口调试关照强度程序设计(2023-06-27)
STC89C51单片机对LCD显示的串口调试关照强度程序设计;最近在调试传感器的那块程序,这里总结一下自己的心得。
调试程序的方法
方法1:led显示法,在程序中调用这一句函数led = 0;可以......
80C51单片机-LED流水灯效果(2024-07-31)
8051单片机的寄存器定义头文件
void delay(unsigned int i); // 声明延时函数
char LED; // 定义一个字符变量LED,用于存储LED灯的状态
void main......
STM32单片机的延时原理和延时函数方法(2023-09-05)
STM32单片机的延时原理和延时函数方法;当涉及到单片机编程时,延时是一项常见但关键的任务。在许多应用中,我们需要控制程序暂停一段时间,以实现精确的时间控制或协调不同设备之间的操作。本文......
51单片机学习笔记(一):LED(2023-01-06)
.h"sbit LED1=P2^0;void main(){
LED1=0;
while(1);}
设定P2.0管脚为低电平即可让连接在P2.0的LED发光。
二、延时函数
如果要让LED......
如何实现stm32单片机每次接上电源就进行一次重启动?(2023-10-08)
采用如下代码进行软重启:```cNVIC_SystemReset(); //调用此函数进行软重启```1.2 硬重启硬重启是指通过硬件控制单片机重新开始执行,实现系统的重启。在stm32单片机中,硬重启通常是通过复位按键进行操作的。复位按键的功能是将单片机......
make the OC8051 run(2024-07-31)
使用此头文件是没有问题的,你会有疑问,主函数怎么写成
了umain,是不是笔误,不是的,它就是这样,当然这需要一些其他的操作;在此先略过。
4、3中生成的hex使用一个小工具,可以生成可作为仿真的.in;.in会被......