1.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、在延时子程序设计时,要进行循环体嵌套时,采用先内循环,再减减比先减减,再内循环要好。
2.单片机中用写delay函数做延时和用定时器做延时有什么区别
利用循环处理的方式实现的延时,并不精确。
1、当中断发生时,CPU被打断先执行中断服务。导致执行时间变长。
2、使用高级语言时,编译的结果受优化等级等多方面因素干扰,难以计算。
3、在有MMU和Cache的MCU中,指令的执行速度还会受到缓存的影响。
利用定时器延时:
1、因为定时器累加与CPU无关,即使中断,仍然会保持计数。不受上述问题影响
2、缺点需要占用定时器资源。
3、功耗也会高一些
3.51单片机C语言中delay函数是怎么定义和使用的
这是一个延时函数()里的unsigned int a是一个形参,为int型变量最 大值为32767;{}里的unsigned int i和()里的一样 只是变量的名称不同,为i;while就是循环语句 如果他后面的()里的量不为零就执行他{}里的内容,一旦为零就跳出该语句。
for(i=0;i<600;i++);就是把i定为零,如果i在for里小于600就跳到第三步i++(也就是i自增1);然后i=1但他还是小于600,接着就到第三步。
599次之后i=600,600就不小于600,这时就跳出for。while后的()如果为零就跳出while。
4.单片机c语言中delay()函数的头文件是什么
delay函数是一个自己定义的延时函数,C语言定义延时函数主要通过无意义指令的执行来达到延时的目,并没有一个软件自带头文件专门有delay这个函数的。
单片机c语言中delay()的使用:
voidDelay10us(ucharMs)
{
uchardatai;
for(;Ms》0;Ms--)
for(i=26;i》0;i--);
}
i=[(延时值-1.75)*12/Ms-15]/4
扩展资料
把delay(10000)改为100000
voidmain()
{
inti;
charstr[]="?";
intlen=sizeof(str)/sizeof(char);
for(i=0;i<len;i++)
{
if(str[i]!=''&&str[i]!='\0')
{
delay(100000);
}
delay(100000);
printf("%c",str[i]);
}
getch();
}
5.怎么写段单片机延时函数
1、首先分析您的程序,
void delay()
{
int i;
if(1 == TF0)//if(TF0==1),查询定时器溢出标志位
{
TF0=0;
i=10000;//定时溢出时给i赋值1000
TH0=0xDC;TL0=0x00;
i--;//i=999,如果还没有减到0时定时器又溢出,则i永远不会减到0!!!!所以您的这段程序不应该行不通!!
}
while(1)
{
if(i==0)
break ;
}
}
2、建议做法
(1)定义一个全局变量用于作定时计数如unsigned char n;
(2)定时器采用以某一时间基准(10ms)中断方式,每中断一次中断处理程序里n++;
(3)在延时函数中对n进行操作,如延时1s即1000ms则:
void delay_1s()
{
while(n<100);//如果n<100,即还没有到1s就等待
n=0;如果1s时间到则清零n,退出子程序
}
当然这样定时精度可能需要调整,但思路可以试试。
6.单片机延时计算方法
单片机延时计算方法
用延时函数就可以实现;
首先,设置定时器工作方式,也就是TMOD,在设置TH0/1,TL0/1的初值,也就是定时时间的设置,然后设置中断允许,并开中断就可以;
参考例子如下:
#include<reg51.h>
void main()
{
TMOD=0X01;
TH0=0X3C;
TL0=0XB0;
EA=1;
ET0=1;
TR0=1;
while(1);
}
void timer0() interrupt 1
{
TH0=0X3F;
TL0=0XB0;
}
7.c语言 delay函数
delay函数
功 能: 将程序的执行暂停一段时间(毫秒)
(该函数是TC下特有的函数,VC下应使用Sleep()函数)
用 法: void delay(unsigned milliseconds);
程序例:
/* Emits a 440-Hz tone for 500 milliseconds */
#include<dos.h>
int main(void)
{
sound(440);
delay(500);
nosound();
return 0;
}
转载请注明出处育才学习网 » 单片机delay函数怎么写