求单片机按键中断 外部中断0和1,用按键控制舵机90度左右转的程序 请教了?

程序就不给你了给你点思路,吔许这样对你帮助更大先看波形图。


如图所示PWM的周期为20MS,要改变舵机角度就要改变此PWM的占空比
有个方法,假如我们吧这个20MS分成200份那1份的时间就是100US
我们可以用定时器定时100US中断一次,中断200次就是一个周期分了段就简单了,
我们知道普通模拟舵机的控制信号为50HZ高电平寬度为500us对应-90度—2500us对应+90度
如果我们想让舵机移到-90度,我们只需要对中断计数
在第1次进入中断的时候,我们把XI/O口拉高在第6次进中断的时候拉低,我们就得到了500us的高电平
舵机移到-90度位置
在下一个周期来的第一次中断的时候,我们把XI/O口拉高在第7次进中断的时候拉低,这次我們就得到了600us的高电平
当到了2500us的时候我们再来减
周期开始第一次拉高,25次的是时候拉低舵机移到+90度-100/度,
在下一个周期来的第一次中断的時候拉高24次的是时候拉低,舵机移到+90度-100us/度-100us度
以此类推,一直到500us又开加,到2500有减如次往复一个定时器搞定,是不是很简单
至于振膜计数和清零,舵机每次转动多少度以及多少时间动作一次这个就要你自己去悟想办法写了。
其实也并不复杂就是两三个变量,几个IF囷分辨率THXTLX配置的问题,等你看明白了写出来了,普通51软件模拟PWM

IF只判断真假与是否表达式无关


其实你那个程序不需要每次加减,直接給最大或最小
}

3、循环重复100次步骤1 2

3、循环重复100次步骤1 2

你对这个回答的评价是

}

我要回帖

更多关于 单片机按键中断 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信