【STC8学习笔记】STC8A8K64S4A12精准延时函数设置

在设置单片机精准的延时函数的时候,给大家一个方法,STC-ISP有一个延时函数计算器,可以计算出想要的延时。

我的例程也是基于这个软件生成的,我生成一个1ms和1us出来,剩下的我再封装成一个函数接口,需要用到的时候直接调用。
【STC8学习笔记】STC8A8K64S4A12精准延时函数设置_第1张图片

例程参考,以11.0592M晶振为例,需要其它晶振要自己生成
注意:需要添加头文件

void Delay1us(void)		//@11.0592MHz
{
	unsigned char i;

	_nop_();
	_nop_();
	i = 1;
	while (--i);
}

void Delay_us(unsigned int timer)
{
	unsigned int i;
	for(i=0; i<timer; i++)
	{
		Delay1us();
	}
}

void Delay1ms(void)		//@11.0592MHz
{
	unsigned char i, j;

	i = 15;
	j = 90;
	do
	{
		while (--j);
	} while (--i);
}


void delay_ms(unsigned int time)
{
	unsigned int i;
	for(i=0; i<time; i++)
	{
		Delay1ms();
	}
}

你可能感兴趣的:(STC8A8K64S4A12库,单片机,c语言)