舵机控制原理

;********************************************

; SL-DIY-02-1 通用伺服电机(舵机)实验

; 通用伺服电机(舵机)来回摆动基本工作原理

; 当单片机信号是1ms正脉冲时,通用伺服电机转向0度位置

; 当单片机信号是1.5ms正脉冲时,通用伺服电机转向-60度位置

; 当单片机信号是2ms正脉冲时,通用伺服电机转向+60度位置

; 注意:不同伺服电机控制时序及转动角度是不同的,最好自已实际测试。

; 不同伺服电机控制速度指标也不同,应按技术说明书研究处理。

;********************************************

;* AT90S8515 8MHz

;* PB0 输出舵机信号

;* 双龙电子 www.sl.com.cn

;* 2002.12.20修改

;********* [email protected] **************

;********************************************

.include "8515def.inc" ; 器件配制文件, 本实验使用AT90S8515

.def dt = r22 ; 定义dt等于r22

.org $000 ; 程序首地址

rjmp reset4 ; 跳过中断区

.org $010 ; 主程序首地址,注意,不同器件的中断地址范围是不同的! reset4:

ldi r17,$02 ;置堆栈指针,AT90S8515的RAM最大地址为$025F, 设堆栈底为$025F ldi r16,$5f

out sph,r17 ; 高位堆栈sph=$02

out spl,r16 ; 低位堆栈spl=$5f

shiyan4:

ldi r17,$ff

out ddrb,r17 ; pb口方向寄存器设置为输出,1为输出

out portb,r17 ; 设pb口内部上拉

out ddrd,r17 ; pd口方向寄存器设置为输出,1为输出

out portd,r17 ; 设pd口内部上拉

start3: ; 设置舵机摆动周期常数, 即调节节拍常数

LDI R23,$11

LDI R25,$11

;R23=R25=$50摆动周期1S; 如=$30摆动周期0.5S

; 如=20-10摆动周期, 也可理解为调节拍范围

;$8强劲舞曲 ; $18 男儿当自强 ;$11 少年梦

; 可作自唱自演跳舞机器人设计用。

start6: ; 舵机向-60度方向移动

sbi $18,0 ; 置pb.0为1

rcall de10 ;1ms,-60度

cbi $18,0 ; 清pb.0为0

rcall de10 ;1ms,-60度

rcall de185 ;19ms

DEC R23 ;R23-1

CPI R23,$01 ;R23 与立即数$01比较

BRSH start6 ;大于等于则转移到, 小于顺序执行

rcall de200 ; 调用2ms延时程序

start60: ; 舵机向+60度方向移动

sbi $18,0 ; 置pb.0为1

rcall de20 ;2ms,+60度

cbi $18,0 ; 清pb.0为0

rcall de20 ; 调用2ms,+60度

rcall de18 ; 调用18ms

DEC R25 ;R25-1

CPI R25,$01 ; ;R25 与立即数$01比较

BRSH start60 ;大于等于则转移到, 小于顺序执行

rcall de200 ; 调用20ms

rjmp start3 ;循环检测

de10: ; 1ms延时子程序

ldi dt,21 ;1ms

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

de15: ; 1.5ms延时子程序

ldi dt,26 ;1.5ms

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

de20: ; 2ms延时子程序

ldi dt,28 ;2ms

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

de18: ; 18ms延时子程序

ldi dt,63 ;18ms

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

de185: ; 19ms延时子程序

ldi dt,64 ;18.8ms

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

de19: ; 20ms延时子程序

ldi dt,65 ;19.6ms

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

de200: ;20ms延时子程序

ldi dt,50 ;2ms,DT=100-10无多大变化

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

;延时时间对照表

;**********************************

;fos=8MHz

;dt time dt time dt time

;22 1ms 26 1.5ms 29 2ms

;51 10ms 63 18ms 64 18.8ms

;65 19.6ms 144 200ms 197 500ms

;249 1s

;**********************************

delay: ; 通用延时子程, 子程序2级嵌套

push dt ; 进栈,需2t

del1: push dt ; 进栈,需2t

del2: push dt ; 进栈,需2t

del3: dec dt ; dt-1,需1t

brne del3 ; 上条指令执行后Z=0转, Z=1顺执, 需1t/2t

pop dt ; 出栈, 需2t

dec dt ; dt-1,需1t

brne del2 ; 上条指令执行后Z=0转, Z=1顺执, 需1t/2t

pop dt ; 出栈, 需2t

dec dt ; dt-1,需1t

brne del1 ; 上条指令执行后Z=0转, Z=1顺执, 需1t/2t

pop dt ; 出栈, 需2t

ret ; 子程序返回, 需4t

广州市天河双龙电子有限公司 http://WWW.SL.COM.CN

广州双龙:广州天河路561号新赛格电子城331室(510630)

电话:020-87578852、87505012 传真:分机620

北京双龙:北京海淀知春路132号中发大厦616室(100086)

电话:010-82623551、62653785 传真:010-82623550

上海双龙:上海北京东路668号科技京城东搂12H2室(200001)

电话:021-53081501 、53081502 传真:分机213

;********************************************

; SL-DIY-02-1 通用伺服电机(舵机)实验

; 通用伺服电机(舵机)来回摆动基本工作原理

; 当单片机信号是1ms正脉冲时,通用伺服电机转向0度位置

; 当单片机信号是1.5ms正脉冲时,通用伺服电机转向-60度位置

; 当单片机信号是2ms正脉冲时,通用伺服电机转向+60度位置

; 注意:不同伺服电机控制时序及转动角度是不同的,最好自已实际测试。

; 不同伺服电机控制速度指标也不同,应按技术说明书研究处理。

;********************************************

;* AT90S8515 8MHz

;* PB0 输出舵机信号

;* 双龙电子 www.sl.com.cn

;* 2002.12.20修改

;********* [email protected] **************

;********************************************

.include "8515def.inc" ; 器件配制文件, 本实验使用AT90S8515

.def dt = r22 ; 定义dt等于r22

.org $000 ; 程序首地址

rjmp reset4 ; 跳过中断区

.org $010 ; 主程序首地址,注意,不同器件的中断地址范围是不同的! reset4:

ldi r17,$02 ;置堆栈指针,AT90S8515的RAM最大地址为$025F, 设堆栈底为$025F ldi r16,$5f

out sph,r17 ; 高位堆栈sph=$02

out spl,r16 ; 低位堆栈spl=$5f

shiyan4:

ldi r17,$ff

out ddrb,r17 ; pb口方向寄存器设置为输出,1为输出

out portb,r17 ; 设pb口内部上拉

out ddrd,r17 ; pd口方向寄存器设置为输出,1为输出

out portd,r17 ; 设pd口内部上拉

start3: ; 设置舵机摆动周期常数, 即调节节拍常数

LDI R23,$11

LDI R25,$11

;R23=R25=$50摆动周期1S; 如=$30摆动周期0.5S

; 如=20-10摆动周期, 也可理解为调节拍范围

;$8强劲舞曲 ; $18 男儿当自强 ;$11 少年梦

; 可作自唱自演跳舞机器人设计用。

start6: ; 舵机向-60度方向移动

sbi $18,0 ; 置pb.0为1

rcall de10 ;1ms,-60度

cbi $18,0 ; 清pb.0为0

rcall de10 ;1ms,-60度

rcall de185 ;19ms

DEC R23 ;R23-1

CPI R23,$01 ;R23 与立即数$01比较

BRSH start6 ;大于等于则转移到, 小于顺序执行

rcall de200 ; 调用2ms延时程序

start60: ; 舵机向+60度方向移动

sbi $18,0 ; 置pb.0为1

rcall de20 ;2ms,+60度

cbi $18,0 ; 清pb.0为0

rcall de20 ; 调用2ms,+60度

rcall de18 ; 调用18ms

DEC R25 ;R25-1

CPI R25,$01 ; ;R25 与立即数$01比较

BRSH start60 ;大于等于则转移到, 小于顺序执行

rcall de200 ; 调用20ms

rjmp start3 ;循环检测

de10: ; 1ms延时子程序

ldi dt,21 ;1ms

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

de15: ; 1.5ms延时子程序

ldi dt,26 ;1.5ms

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

de20: ; 2ms延时子程序

ldi dt,28 ;2ms

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

de18: ; 18ms延时子程序

ldi dt,63 ;18ms

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

de185: ; 19ms延时子程序

ldi dt,64 ;18.8ms

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

de19: ; 20ms延时子程序

ldi dt,65 ;19.6ms

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

de200: ;20ms延时子程序

ldi dt,50 ;2ms,DT=100-10无多大变化

rcall delay ; 调用通用延时子程序

ret ; 子程序返回

;延时时间对照表

;**********************************

;fos=8MHz

;dt time dt time dt time

;22 1ms 26 1.5ms 29 2ms

;51 10ms 63 18ms 64 18.8ms

;65 19.6ms 144 200ms 197 500ms

;249 1s

;**********************************

delay: ; 通用延时子程, 子程序2级嵌套

push dt ; 进栈,需2t

del1: push dt ; 进栈,需2t

del2: push dt ; 进栈,需2t

del3: dec dt ; dt-1,需1t

brne del3 ; 上条指令执行后Z=0转, Z=1顺执, 需1t/2t

pop dt ; 出栈, 需2t

dec dt ; dt-1,需1t

brne del2 ; 上条指令执行后Z=0转, Z=1顺执, 需1t/2t

pop dt ; 出栈, 需2t

dec dt ; dt-1,需1t

brne del1 ; 上条指令执行后Z=0转, Z=1顺执, 需1t/2t

pop dt ; 出栈, 需2t

ret ; 子程序返回, 需4t

广州市天河双龙电子有限公司 http://WWW.SL.COM.CN

广州双龙:广州天河路561号新赛格电子城331室(510630)

电话:020-87578852、87505012 传真:分机620

北京双龙:北京海淀知春路132号中发大厦616室(100086)

电话:010-82623551、62653785 传真:010-82623550

上海双龙:上海北京东路668号科技京城东搂12H2室(200001)

电话:021-53081501 、53081502 传真:分机213


相关文章

  • 舵机的相关原理与控制原理
  • 1.       什么是舵机: 在机器人机电控制系统中,舵机控制效果是性能的重要影响因素.舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口. 舵机是一种位置(角度)伺服的驱动器,适用于那些 ...查看


  • 舵机驱动原理
  • 舵机驱动原理 1.舵机简介 2.舵机的组成 3.舵机工作原理 4.舵机选购 5.舵机控制原理及编程方法 6.实验室用舵机Futaba S3003使用说明 7.程序举例 1 概述 舵机也叫伺服电机,最早用于船舶上实现其转向功能,由于可以通过程 ...查看


  • 四足机器人的设计制作与实现
  • 文章编号:1008-0570(2011)09-0099-03 嵌入式与SOC 四足机器人的设计制作与实现 DesignAndImplementationofTheQuadrupedRobotics (上海理工大学) 宫赤坤张智斌谷根王慧 G ...查看


  • 双足机器人使用说明
  • 双足步行机器人 一:项目目标: 1. 掌握舵机控制方式 2. 了解机器人串口通讯方式 3. 掌握双足机器人步伐调整原理 二:项目描述: 行走机器人是现在机器人研究领域的一个热点,无论是SONY公司不断更新的"阿西莫"机器 ...查看


  • 机器人舵机说明
  • 机器人舵机说明 一.舵机简介 舵机,顾名思义,大海航行靠舵手,舵机早期是应用在航模中控制方向的,在航空模型中,飞行器的飞行姿态是通过调整发动机和各个控制多面来实现的,后来有人发现这种机器的体积小.重量轻.扭矩大.精度高,由于具备了这样的优点 ...查看


  • 基于激光传感器的智能车循迹系统
  • 装 订 线 河北大学工商学院 本科生毕业论文(设计) 题目: 学 部 信息科学与工程学部 学科门类 工学 专 业 电气工程及自动化 学 号 姓 名 指导教师 2013年5月16日 基于激光传感器的智能车循迹系统 摘 要 智能汽车是未来汽车发 ...查看


  • 多路舵机控制器设计
  • 基于AT89C2051的多路舵机控制器设计 摘要 舵机是机器人.机电系统和航模的重要执行机构.舵机控制器为舵机提供必要的能源和控制信号.本文提出一种以外部中断计数为基础的PWM 波形实现方法.该方法具有简单方便,成本低,可实现多路独立PWM ...查看


  • 创意之星机器人套件实验
  • 实验一 熟悉创意之星机器人套件实验 一. 实验题目 熟悉创意之星机器人套件实验 二. 实验目的 1. 熟悉创意之星软硬件结构及其编程环境. 2. 了解各种机器人传感器. 3. 熟悉季了解机器人执行器-舵机.了解其工作原理. 三. 实验器材 ...查看


  • 六足爬行机器人使用说明
  • 教学型六足爬行机器人参考手册 1.主要技术参数: 包括 : 1) 六足爬行机器人机器人: ● 主控制器为MT-U 控制盒 ● ● ● ● ● 2) 12自由度 独立驱动电源/电池供电:6V ,2000 mAH, 专用充电器,自动检测充电状态 ...查看


  • [船舶辅机]教学大纲
  • <船舶辅机>教学大纲 课程编号: 课程名称:船舶辅机/Marine Auxiliary Machinery 学时/学分:88/5.5 (其中含实验10学时) 先修课程:工程材料,机械原理及机械零件,液压技术基础 适用专业:轮机工 ...查看


热门内容