Ⅰ 怎么理解这个单片机延迟函数
这个单片机延迟函数,其实就是 空操作 加 计数循环,至于延时时间 就要看用的单片机 指令周期而定,12T指令周期的约40uS左右,1T指令周期的约为5~6uS吧,单片机延迟函数可以有很多方法编写,看行程需要而定,有得较长时间的延时最好不要用延时函数写(因为延时函数是占用CPU时间资源的)。
Ⅱ 51单片机C语言中delay函数是怎么定义和使用的
定义一个延时xms毫秒的延时函数
void delay(unsigned int xms) // xms代表需要延时的毫秒数
{
unsigned int x,y;
for(x=xms;x》0;x--)
for(y=110;y》0;y--);
}
使用:
void Delay10us(uchar Ms)
{
uchar data i;
for(;Ms》0;Ms--)
for(i=26;i》0;i--);
}
i=[(延时值-1.75)*12/Ms-15]/4
1、在C51中进行精确的延时子程序设计时,尽量不要或少在延时子程序中定义局部变量,所有的延时子程序中变量通过有参函数传递。
2、在延时子程序设计时,采用do?while,结构做循环体要比for结构做循环体好。
3、在延时子程序设计时,要进行循环体嵌套时,采用先内循环,再减减比先减减,再内循环要好。
Ⅲ 51单片机C语言中delay函数是怎么定义和使用的
delay函数是一般自己定义的一个延时函数。
c语言定义延时函数主要通过无意义指令的执行来达到延时的目的。下面给出一个经典的延时函数。
// 定义一个延时xms毫秒的延时函数
void delay(unsigned int xms) // xms代表需要延时的毫秒数
{
unsigned int x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
Ⅳ (51单片机)那个大佬给讲解一下这个延时函数
u16 i,这是定义一个16位整型的形参变量 i ,其实信唯,u16 并不是C51的变量类型,而是在程序的前面用#define u16 unsigned int 宏定义的。
延时就是利用循环滑滚培体while(i--); 来实现的,变量x先减1,判断不是0,继续循备键环,继续减1,判断,直到x=0,结束循环,延时结束。