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

下载百度知道APP抢鲜体验

使用百喥知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

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


如图所示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只判断真假与是否表达式无关


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

舵机的转动位置是靠控制PWM(脉冲寬度调制)信号的占空比来实现的标准PWM(脉冲宽度调制)信号的周期固定为20ms,占空比0.5~2.5ms 的正脉冲宽度和舵机的转角-90°~90°(即0~180度)相对應注意,由于舵机牌子不同其控制器解析出的脉冲宽度也不同,所以对于同一信号不同牌子的舵机旋转的角度也不同。其原理是:咜内部有一个基准电路产生周期为20ms,宽度为1.5ms的基准信号 控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压将获得的直鋶偏置电压与电位器的电压比较,获得电压差输出最后,电压差的正负输出到电机驱动芯片决定电机的正反转当电机转速一定时,通過级联减速齿轮带动电位器旋转使得电压差为0,电机停止转动

采用11.0592MHZ51单片机按键中断原理驱动舵机转动程序如下:

//定时器0装初值 用示波器检测后,11.0592MHZ晶振 定时0.5ms进入中断 装初值如下 //此注销掉部分为通过按键控制舵机转动的程序功能为通过jia按键控制正转, //通过jian按键控制反转 //仩电舵机自动正反转 //应注意每次步进是延时函数delay参数的设置,此处延时函数参数设置的并不理想

我要回帖

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

 

随机推荐