首页> 中国专利> 一种基于52系列单片机的多路舵机控制方法

一种基于52系列单片机的多路舵机控制方法

摘要

本发明涉及一种基于52系列单片机的多路舵机控制方法,其包括:(1)搭建控制框架;(2)按照周期为20ms,脉冲宽度为0.5ms~2.5ms标准舵机进行定时时间分配,每路舵机的高电平持续时间为0.5ms~2.5ms,然后将需要控制的端口等分成多个端口组,并对该多个端口组进行排序;(3)将所有端口组的端口的电平变为低电平;(4)对T0定时器和T1定时器进行初始化配置;(5)对T0定时器和T1定时器进行赋值;(6)遍历所有的端口组,直到T0定时器和T1定时器中断关闭为止。

著录项

  • 公开/公告号CN105911921A

    专利类型发明专利

  • 公开/公告日2016-08-31

    原文格式PDF

  • 申请/专利权人 西安科技大学;

    申请/专利号CN201610428812.5

  • 申请日2016-06-16

  • 分类号

  • 代理机构北京世誉鑫诚专利代理事务所(普通合伙);

  • 代理人仲伯煊

  • 地址 710054 陕西省西安市雁塔中路58号

  • 入库时间 2023-06-19 00:22:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-05

    授权

    授权

  • 2019-02-19

    著录事项变更 IPC(主分类):G05B19/042 变更前: 变更后: 申请日:20160616

    著录事项变更

  • 2016-10-26

    实质审查的生效 IPC(主分类):G05B19/042 申请日:20160616

    实质审查的生效

  • 2016-08-31

    公开

    公开

说明书

技术领域

本发明属于机器人应用控制领域,具体涉及一种基于52系列单片机的多路舵机控制方法。

背景技术

随着当今社会科技发展迅速,处理器的功能在不停的提升,性能不断的被优化,而在各行业应用了很多年的52系列的单片机由于没有自带pwm的端口,所以在很多领域的应用受到了很大的限制,尤其是机器人的领域,没有多路的pwm使得52系列单片机被挡在了多自由度机器人的门外;但是52系列单片机由于在价格和稳定性等方面的优势勉强没有被市场淘汰;如何将52系列单片机应用到在多机舵机的控制板上,进而降低成本成为一个急需解决的问题。

发明内容

发明目的:本发明针对上述现有技术存在的问题做出改进,即本发明公开了一种基于52系列单片机的多路舵机控制方法,其可以使没有pwm输出口的52系列单片机实现高精确度多路可调pwm波,可以利用这些可以调节的pwm波来控制多路舵机,使52系列的功能更加的完善。

技术方案:一种基于52系列单片机的多路舵机控制方法,包括 以下步骤:

(1)搭建控制框架,该控制框架包括:

T0中断模块:按照设定的中断顺序依次给T0定时器中需要控制的端口赋初值;

T1中断模块:按照设定的中断顺序依次给T1定时器中需要控制的端口赋初值;

定时器定时初值比较模块,用于判断T0定时器和T1定时器初值的大小,依据比较的结果更改低优先级的定时器的定时初值;

舵机控制模块,用来存放和改变T0定时器和T1定时器所需要控制的端口的定时初值;

(2)按照周期为20ms,脉冲宽度为0.5ms~2.5ms标准舵机进行定时时间分配,每路舵机的高电平持续时间为0.5ms~2.5ms,然后将需要控制的端口等分成多个端口组,并对该多个端口组进行排序,每一个端口组包括两个端口,该端口两个分别受T0定时器和T1定时器控制;

(3)将所有端口组的端口的电平变为低电平;

(4)对T0定时器和T1定时器进行初始化配置,同时T0定时器和T1定时器初始化的初值差小于0.5ms;

(5)对T0定时器和T1定时器进行赋值;

(51)通过T0中断模块控制TO定时器进入中断,将第一端口组中T0定时器控制的端口变为高电平,同时为T0定时器赋初值,T0定时器初值为舵机控制模块中此路端口对应的定时初值;

(52)通过T1中断模块控制T1定时器进入中断,将第一端口组中T1定时器控制的端口变为高电平,同时为T1定时器赋初值,T1定时器初值为舵机控制模块中此路端口对应的定时初值;

(53)通过定时器定时初值比较模块比较中步骤(51)得到的T0定时器初值和步骤(52)得到的T1定时器初值的大小,通过比较的结果改变低优先级T1定时器的高电平的初值

(531)若T0定时器初值大于T1定时器初值,则对T1定时器初值重新进行赋值,其值等于步骤(52)得到的T1定时器初值减去T1,T1的值为T0定时器进入中断时到赋初值开始时的时间;

(532)若T0定时器初值等于T1定时器初值,则对T1定时器初值重新进行赋值,其值等于步骤(52)得到的T1定时器初值减去T2,T2的值为T0定时器进入中断时到赋初值开始时的时间;

(532)若T0定时器初值小于T1定时器初值,则调换T0和T1的中断优先级,对T0定时器初值重新进行赋值,其值等于步骤(52)得到的T0定时器初值减去T3,T3的值为T1定时器进入中断时到赋初值开始时的时间;

(54)通过T0中断模块控制T0定时器进入中断,将第一端口组中T0定时器控制的端口由高电平改为低电平,同时为T0定时器进行二次赋值,T0定时器二次赋值等于2.5ms减去T0定时器初值;

(55)通过T1中断模块控制T1定时器进入中断,将第一端口组中T1定时器控制的端口由高电平变为低电平,并对T1定时器进行二次赋值,T1定时器二次赋值等于2.5ms-T1定时器初值;

(6)遍历所有的端口组,重复步骤(51)~(55),直到T0定时器和T1定时器中断关闭为止。

进一步地,步骤(2)中若所需要控制的端口的数量为奇数,多余的一路端口随机分配给T0定时器或T1定时器。

更进一步地,若所需要控制的端口的数量为奇数,多余出来一路端口不需要对初值进行比较。

有益效果:本发明公开的一种基于52系列单片机的多路舵机控制方法具有以下有益效果:

1、将价格低廉且稳定性好的52系列单片机应用到机器人控制领域,节约成本;

2、同时可以应用到其他需要pwm的领域;

3、对52单片机的应用范围进一步拓展。

具体实施方式:

下面对本发明的具体实施方式详细说明。

具体实施例1

一种基于52系列单片机的多路舵机控制方法,包括以下步骤:

(1)搭建控制框架,该控制框架包括:

T0中断模块:按照设定的中断顺序依次给T0定时器中需要控制的端口赋初值;

T1中断模块:按照设定的中断顺序依次给T1定时器中需要控制的端口赋初值;

定时器定时初值比较模块,用于判断T0定时器和T1定时器初值的大小,依据比较的结果更改低优先级的定时器的定时初值;

舵机控制模块,用来存放和改变T0定时器和T1定时器所需要控制的端口的定时初值;

(2)按照周期为20ms,脉冲宽度为0.5ms标准舵机进行定时时间分配,每路舵机的高电平持续时间为0.5ms,然后将需要控制的端口等分成多个端口组,并对该多个端口组进行排序,每一个端口组包括两个端口,该端口两个分别受T0定时器和T1定时器控制;

(3)将所有端口组的端口的电平变为低电平;

(4)对T0定时器和T1定时器进行初始化配置,同时T0定时器和T1定时器初始化的初值差小于0.5ms;

(5)对T0定时器和T1定时器进行赋值;

(51)通过T0中断模块控制TO定时器进入中断,将第一端口组中T0定时器控制的端口变为高电平,同时为T0定时器赋初值,T0定时器初值为舵机控制模块中此路端口对应的定时初值;

(52)通过T1中断模块控制T1定时器进入中断,将第一端口组中T1定时器控制的端口变为高电平,同时为T1定时器赋初值,T1定时器初值为舵机控制模块中此路端口对应的定时初值;

(53)通过定时器定时初值比较模块比较中步骤(51)得到的T0定时器初值和步骤(52)得到的T1定时器初值的大小,通 过比较的结果改变低优先级T1定时器的高电平的初值

(531)若T0定时器初值大于T1定时器初值,则对T1定时器初值重新进行赋值,其值等于步骤(52)得到的T1定时器初值减去T1,T1的值为T0定时器进入中断时到赋初值开始时的时间;

(532)若T0定时器初值等于T1定时器初值,则对T1定时器初值重新进行赋值,其值等于步骤(52)得到的T1定时器初值减去T2,T2的值为T0定时器进入中断时到赋初值开始时的时间;

(532)若T0定时器初值小于T1定时器初值,则调换T0和T1的中断优先级,对T0定时器初值重新进行赋值,其值等于步骤(52)得到的T0定时器初值减去T3,T3的值为T1定时器进入中断时到赋初值开始时的时间;

(54)通过T0中断模块控制T0定时器进入中断,将第一端口组中T0定时器控制的端口由高电平改为低电平,同时为T0定时器进行二次赋值,T0定时器二次赋值等于2.5ms减去步骤(53)得到的T0定时器初值;

(55)通过T1中断模块控制T1定时器进入中断,将第一端口组中T1定时器控制的端口由高电平变为低电平,并对T1定时器进行二次赋值,T1定时器二次赋值等于2.5ms-步骤(53)得到的T1定时器初值;

(6)遍历所有的端口组,重复步骤(51)~(55),直到T0定 时器和T1定时器中断关闭为止。

进一步地,步骤(2)中若所需要控制的端口的数量为奇数,多余的一路端口随机分配给T0定时器或T1定时器。

更进一步地,若所需要控制的端口的数量为奇数,多余出来一路端口不需要对初值进行比较。

具体实施例2

与具体实施例1大致相同,区别仅仅在于:

步骤(2)中按照周期为20ms,脉冲宽度为2.5ms标准舵机进行定时时间分配,每路舵机的高电平持续时间为2.5ms。

具体实施例3

与具体实施例1大致相同,区别仅仅在于:

步骤(2)中按照周期为20ms,脉冲宽度为1ms标准舵机进行定时时间分配,每路舵机的高电平持续时间为1ms。

上面对本发明的实施方式做了详细说明。但是本发明并不限于上述实施方式,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号