编写延时函数的简单方法
RET;2指令周期;循环体延时时间:[(249*2+1+2)*200+1+2]*10*12/12000000=1.002030s;加上ACALL指令和第一条mov指令以及最后一条RET指令算出来整个函数的时间为1.002035s;===通常选用的是11.0592MHZ的晶振:[(249*2+1+2)*200+1+2]*10*12/11059200=1.08727213541666666...S汇编延时子程序的延时...
用C51编写单片机延时函数
实际中使用11.0592MHz的时钟,这个延时函数的精度将为2.2us,最小时间延时为7.7us,最大时间延时为566.5us.这个时间延时函数,对于与DS18B20进行单总线通信,已经足够准确了。现在,我们将时钟换成11.0592MHz这个实际用到的频率,每个机器周期约为1.1us.现在让我们来分析一下这个之前用过的延时函数延时函数,对于11...
51单片机的软件延时
常用单片机的晶振为11.0592MHz,12MHz,24MHz。其中11.0592MHz的晶振更容易产生各种标准的波特率,后两种的一个机器周期分别为1μs和2μs,便于精确延时。接下来列出这三种不同的晶振的延时函数1、11.0592MHz//Nms延时voiddelay_ms(uintn)uinti,j;for(i=n;i>0;i–)for(y=114;y>0;y–)...
实现单片机延时方法总结
Delay10us()函数中共用了6个_NOP_()语句,每个语句执行时间为1μs。主函数调用Delay10us()时,先执行一个LCALL指令(2μs),然后执行6个_NOP_()语句(6μs),最后执行了一个RET指令(2μs),所以执行上述函数时共需要10μs。可以把这一函数当作基本延时函数,在其他函数中调用,即嵌套调用[4],以实现较长时间...
51单片机的几种精确延时
在很多情况下,定时器/计数器经常被用作其他用途,这时候就只能用软件方法延时。下面介绍几种软件延时的方法。2.1短暂延时可以在C文件中通过使用带_NOP_()语句的函数实现,定义一系列不同的延时函数,如Delay10us()、Delay25us()、Delay40us()等存放在一个自定义的C文件中,需要时在主程序中直接调用。如...
盘点,关于时间触发器的多任务思路,小白学习
while(--time){Delay1ms();}}/***函数名:Delay1ms**输入参数:none**返回值:none**说明:1ms延时函数***/voidDelay1ms(void)//@11.0592MHz{uint8_ti,j;_nop_();_nop_();_nop_();i=11;j=190;dowhile(--j);}while(--i);}/...
一文读懂红外遥控解码
接好电路,就要进行解码工作了.其实解码工作主要是识别引导码,还有数据“0”“1”。我们看波形图,只要识别红外接收头“OUT”引脚高低电平持续的时间就可以了。这个可以用定时器中断完成,也可以用延时来判断。由于只完成解码工作,我们就用延时的方法更方便。
硬见小百科:红外遥控解码
接好电路,就要进行解码工作了.其实解码工作主要是识别引导码,还有数据“0”“1”。我们看波形图,只要识别红外接收头“OUT”引脚高低电平持续的时间就可以了。这个可以用定时器中断完成,也可以用延时来判断。由于只完成解码工作,我们就用延时的方法更方便。