单片机延时函数c语言 单片机延时函数c语言怎么设置

51单片机C语言中delay函数是怎么定义和使用的

delay函数是一般自己定义的一个延时函数。

创新互联专注于中大型企业的做网站、成都网站设计和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户上1000家,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注成都品牌网站建设和互联网程序开发,在前进的路上,与客户一起成长!

c语言定义延时函数主要通过无意义指令的执行来达到延时的目的。下面给出一个经典的延时函数。

// 定义一个延时xms毫秒的延时函数

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

{

unsigned int x,y;

for(x=xms;x0;x--)

for(y=110;y0;y--);

}

51单片机用c语言怎么写延时函数?

延时时间的计算与单片机的晶振频率有关。若晶振频率为12Mhz,那么单片机每震动一次所需要的时间是1/12M s。那么再来看看单片机执行一次自减所需要的振动次数是96次,假如我们对时间要求不是特别精确的话,可以约等于100来计算。现在通过上面两个数据可以得出:单片机每执行一次自减所需要的时间是1/12M *100(s),即1/120000 s,逆向计算一下,每1ms需要自减多少次?120次对吧。所以一个简单的延时功能就诞生了,我们只需要自减120次,就可以延时1ms,如果我们要延时50ms呢,那就自减50*120=6000次。那么在程序上如何表达呢?我们可以用两套for循环

void delay(int i){

int x,y;

for(x=i;x0;x--){

for(y=120;y0;y--)

}

}

参数 i 代表该函数延时多少ms

51单片机C语言程序中延时函数delay的原理是什么?

原理:只是执行一些所谓的“无实际意义的指令”,如缩放或执行一个int自加,简单地说,就像高中数学中的“乘法原理”一样,很容易迅速增加上面提到的“无意义指令”的数量

关于大小的值:如果是在C语言中,该值不仅与水晶振动、单片机本身的速度,但也与C的编译器,所以,虽然这个值可以精确计算,但大多数情况下,程序员是经验值。

当然,如果你在汇编中编程,情况就不同了,因为每条指令使用一定数量的机器周期,你当然可以根据所有指令使用的总时间来计算特定延迟的总时间。

扩展资料:

定义延迟XMS毫秒的延迟函数

Voiddelay(unsignedintXMS)//XMS表示需要延迟的毫秒数

无符号intx,y;

For(x=XMS;X0;X-)

For(y=110;Y”0;Y-);

使用:

VoidDelay10us(ucharMs)

Uchar数据我;

(;女士“0;------Ms)

对于(I = 26)我 0;我-);

I=[(延迟值-1.75)*12/ms-15]/4

单片机C语言编程关于延时函数

单片机的C语言关于延时函数主要有两种

一种是用for循环,通过单片机执行空指令达到延时的目的

如:

for(i=0;i100;i++)

{

;

}

这个简单的语句会执行100次空指令

每一次指令的时间可以大概确定

因此这个是最简单的延时函数

第二种是通过定时器的方式来实现

定时器是通过对单片机的晶振进行计数

然后在定时器中断服务函数里面实现定时时间的计算及设置

51单片机的定时器0中断服务函数为

void

time0()

interrupt

1

{

...

}


网站栏目:单片机延时函数c语言 单片机延时函数c语言怎么设置
本文链接:http://cdiso.cn/article/dodesse.html

其他资讯