51单片机的延时函数快速生成技巧

本文介绍如何使用STC-ISP软件快速生成单片机延时代码,并提供了C语言及汇编语言的延时函数改造示例,使程序更加灵活。

      可以借助软件快速生成代码。利用STC-ISP 就可以

1.打开stc-isp后点击软件延时计算器

2.选择好使用的单片机型号、晶振频率、延时的时间

3.点击生成代码 即可。

有时候生成的c代码会有

_nop_();            //这句指令执行仅仅耗费1微秒的时间,可以删除,影响不大

        我们可以将这句代码给删除掉 ,不删除程序就会报错(你没有定义_nop_()的前提下)。删除后其实基本上不会产生太大的误差,因为1微妙实在是太短了。

使用心得:

        我们可以将生成的代码稍微改造一下,可以让我们的程序更加灵活,例如生成一个一毫秒的延时函数,通过在函数定义时增加一个形参变量,通过形参变量来控制1ms延时程序执行的次数来随意调节时长。

生成后复制过来的代码是这样的:

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

	_nop_();
	i = 2;
	j = 199;
	do
	{
		while (--j);
	} while (--i);
}

        在花括号里面的那一堆程序段就可以空耗CPU一毫秒,从而达到延时。

下面我们对它进行稍微的改造

void Delay(int n)		//@11.0592MHz
{
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值