单片机里延时程序怎么用,下面这个不知道错在哪

单片机里延时程序怎么用,下面这个不知道错在哪,第1张

延游敏时变量两个for循环里同时用一个参哪颂数i了。

要改成:

delay1s()

{

unsigned int i,j

for(i=1000i>0i--)

for(j=123j>0j--)

}

最好写成带参数的好神缓枝,如:

void delay_ms(uint xms)

{

unsigned int i,j

for(i=xmsi>0i--)

for(j=123j>0j--)

}

如要延时1S时,函数调用时写为:

delay_ms(1000)

所谓的延时程序,就是让程序进入一段无效循环,达余散到延时目的

有一个延时竖颤氏参数表的。

下面是一个10ms延时子程序(12MHZ)洞基

void delay10ms(void)

{

unsigned char i,j,k

for(i=5i>0i--)

for(j=4j>0j--)

for(k=248k>0k--)

}

汇编语言中,延迟有几种方式:

1、通过一些专门的语句,比如

NOP执行一个空 *** 作磨唤

2、通过空循环,比如:

setb p1.0IO口置1

mov r2,#200R2赋值200

djnz r2,$ 循环200次,延历备时约400微妙

clr p1.0IO口清肢游毁0

3、通过调用延时程序,比如:

lcall delay调用延时子程序

.....

delay:延时约400微妙

mov r2,#200

djnz r2,$

ret


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

原文地址: http://outofmemory.cn/yw/12563277.html

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

发表评论

登录后才能评论

评论列表(0条)

保存