C语言延时程序编程

C语言延时程序编程,第1张

在单片机中,要延时程序尽量准确,可以:

-延时循环尽量简单,尽量少开变量比如:

Delay(unsigned int uDelay) { while ( uDelay-- )}

-在主程序中用一个GPIO测试,如:

SetGPIOHigh()Delay(1000)SetGPIOLOW()

-用示波器测量该GPIO波形及频率

-调整Delay函数的调用值,可以用变量,在调试时实时修改变量值,找到延时1毫秒的值,把Delay函数改名为Delay1ms,之后调用这个函数完成精确延时

-其他的延时函数也可以类似上述方法完成,但记住在调试和实际使用时要用同样的CPU主频。

-最精确的还是用定时器中断程序计时

下面的延时的基本程序(中断加计数器)

********

void

T0_int(void)

interrupt

1

{

TH0

=

0x4C

//重新装载,50MS定时器初值

TL0

=

0x00

T0_count++

if(T0_count==20)

//1S到

{

T0_count

=

0

//在这写程序

}

}

main()

{

TMOD

=

0x01//定时器0,工作方式1,16位计数

TH0

=

0x4C

//50MS定时器初值

TL0

=

0x00

IE

=

0x82

//开总中断,开T0中断

EA

=

1

ET0

=

1

TR0

=

1

T0_count

=

0

i

=

0

loop:

goto

loop

}

还有:

for(us=0us<60us++)

/*延时500us*/

for(us=0us<1us++)

/*

延时15微秒*/

for(us=0us<5us++)

/*

延时51微秒*/


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/10958579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存