exactdly.c

来自「Keil C 写的51单片机DS18B20温度传感器的驱动」· C语言 代码 · 共 40 行

C
40
字号
#include<intrins.h>
#include"inc/define.h"

/**************************************************
*			Exact Delay 精确延时函数
*注意: 以下所有延时程序工作于传统8051单片机(指每个时
*钟周期包含12个振荡周期,如AT89C51)12MHz外部晶振下
****************************************************/

void Delay10us()	//LCALL: 2us
{
	_nop_();		//每个_nop_() 1us;共6us
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
}			  		//RET: 2us   

void Delay50us()
{
	Delay10us();
	Delay10us();
	Delay10us();
	Delay10us();
	_nop_();		//每个_nop_() 1us;共6us
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
}

void Delay200us()	//实际延时为202us,因为函数调用LCALL耗时2us,
{					//最后一个Delay50us()会直接跳回主调函数而非
	Delay50us();	//Delay200us(),不存在Delay200()的RET耗时
	Delay50us();
	Delay50us();
	Delay50us();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?