刘小姐:136-1796-2469
传 真:0755-27808905
邮 箱:421496682@qq.com
Q Q:421496682
网 址: www.sz-hqkj.com
地 址:深圳市宝安区福海街道和平社区福园一路高新建工业园厂房3栋202
正是舵机的操控信号是一个脉宽调制信号,所以很便利和数字系统进行接口。只要能发生规范的操控信号的数字设备都能够用来操控舵机,比如PLC、单片机等。这儿介绍使用51系列单片机发生舵机的操控信号来进行操控的办法,编程语言为C51。之所以介绍这种办法仅仅由于笔者用2051实现过,本着负责的态度,所以敢在这儿写出来。程序用的是我的四足步行机器人,有修改。单片机并不是操控舵机的好办法,期望在此能起到抛砖引玉的作用。舵机模块
2051有两个16位的内部计数器,咱们就用它来发生周期20ms的脉冲信号,根据需要,改动输出脉宽。基本思路如下(请对照下面的程序):
我用的晶振频率为12M,2051一个时钟周期为12个晶振周期,正好是1/1000ms,计数器每隔1/1000ms计一次数。以计数器1为例,先设定脉宽的初始值,程序中初始为1.5ms,在for循环中能够随时通过改动a值来改动,然后设定计数器计数初始值为a,并置输出p12为高位。当计数结束时,触发计数器溢出中止函数,便是voidTImer0(void)interrupt1using1,在子函数中,改动输出p12为反相(此刻跳为低位),在用20000(代表20ms周期)减去高位用的时刻a,便是本周期中低位的时刻,c=20000-a,并设定此刻的计数器初值为c,直到定时器再次发生溢出中止,重复上一过程。电动液压舵机