51单片机用软件定时来控制舵机,延时函数怎么写?求解

51单片机用软件定时来控制舵机,延时函数怎么写?求解,第1张

延时可以用哪散定时器来实现,也可以自己写延时函数。

这是51单片机定时器初始化示例程序

TMOD = 0x10f //GATE=0 01010001

//C/T=0--定时/计数器1工作于定时方式

//M1=1M0=0--选择工作模式1,构成最大定时器

//T0:在此程序不使用

TL1 = 0x13TH1 = 0x2C//指定定时时间为50ms 65536-50/(11.0592/12)=11283=2C13h

EA = 1 //开总中断

TF1 = 0

ET1 = 1 //开定时器中断

TR1 = 1 //开始计时

如果用延时函数,要精确计算时间。

这此弯是精确定时1ms的程序,你可以参考一森缓闷下。

void delay1ms(void)

{

unsigned char a,b,c

for(c=1c>0c--)

for(b=142b>0b--)

for(a=2a>0a--)

}

给你个提示吧,在主程序里面设置好中断,埋橘困然后开中断,定时够6秒,这伍袜个定时不能直接顶出来的,你弯念可以间接得到,你可以定时0.1秒,然后用一个变量装起来,没定时一次,在中断服务程序里面对这个变量加一,然后在主程序里面不断判断这个变量是否够6000,够的话就对你要的那个变量加一,然后对这个6000的变量清零,就可以了。这个单片机的程序一定要自己多写才行的,这样才可以学到东西。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存