51单片机C语言延时函数怎么定义和使用,51单片机C语言延时函数怎么定义和使用...

本文详细介绍了51单片机使用C语言定义和使用延时函数的方法,包括不同毫秒级别的延时函数实现,如500ms、200ms、10ms和1s的延时子程序。通过三层循环结构,实现了精确到1us的延时。同时,文中还提到了在C51中设计延时子程序的注意事项,以及不同延时函数的汇编代码展示。
摘要由CSDN通过智能技术生成

C语言定义延时函数主要通过无意义指令的执行来达到延时的目的。C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。

以某晶振为12MHz的单片机为例,晶振为12MHz即一个机器周期为1us。现在定义一个延时xms毫秒的延时函数。

void delay(unsigned int xms) // xms代表需要延时的毫秒

{

unsigned int x,y;

for(x=xms;x>=0;x--)

for(y=110;y>=0;y--);

}

1.51单片机C语言延时函数的使用

下面给出一些经典的延时函数,(1)500ms延时子程序如下:

void delay500ms(void)

{

unsigned char i,j,k;

for(i=15;i>=0;i--)

for(j=202;j>=0;j--)

for(k=81;k>=0;k--);

}

计算分析:程序共有三层循环,一层循环n:R52 = 812 = 162us DJNZ 2us;二层循环m:R6*(n+3) = 202165 = 33330us DJNZ 2us + R5赋值 1us = 3us;三层循环: R7(m+3) = 1533333 = 499995us DJNZ 2us + R6赋值 1u

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值