2942|4

79

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

用51单片机对伺服电动机进行脉宽调制,编程? [复制链接]

请教各位高手用51单片机对伺服电动机进行脉宽调制,怎么编程,能给个流程图也可以,谢谢!

最新回复

请看:http://bo-8888.blog.163.com/  详情 回复 发表于 2008-11-14 15:43
点赞 关注

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
给一个方波他就能运转了。
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
定时器改变输出方波的频率
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
;用单片机来控制伺服电机转动
;作者:全立波,quanlibo@126.com
  Timers    EQU     57H ;用查表的方法来进行脉宽控制(PWM)
  ORG 0000H
  AJMP START
  ORG 000BH
  AJMP ITL
  ORG 30H
START:
   MOV  SP,#5FH
   MOV  R7,#0
   MOV  Timers,#0
   ;设置定时器工作方式1
   MOV TMOD,#00000001B
   ;开机自动偏向(-90度),(0.5,19.5)
   ;记数高位
   MOV DPTR,#InitTime
   MOV A, Timers
   MOVC A,@A+DPTR
   MOV  TH0,A
   ;记数低位
   INC         Timers
   MOV DPTR,#InitTime
   MOV A, Timers
   MOVC A,@A+DPTR
   MOV TL0,A
   SETB P1.0
   SETB EA
   SETB ET0
   SETB TR0
LOOP:
AJMP LOOP
;中断处理程序   
ITL:
   ;重新设置定时时间
   PUSH ACC
   PUSH        PSW
   JNB  P1.0,D_L0;如果bit=0则转移,否则顺序执行
   CPL  P1.0
   AJMP D_L1
D_L0:
   INC R7
   MOV A,R7
   CJNE A,#10,D_L2
   MOV R7,#0
   CPL P1.0
D_L1:
   INC         Timers
   MOV         A,Timers
   CJNE        A,#32,D_L3
   MOV  Timers,#0
D_L3:
   MOV DPTR,#InitTime
   MOV A, Timers
   MOVC A,@A+DPTR
   MOV  TH0,A
   
   INC         Timers
   MOV DPTR,#InitTime
   MOV A, Timers
   MOVC A,@A+DPTR
   MOV TL0,A
D_L2:
   POP  PSW
   POP  ACC
  RETI
;(0.5,1,1.5,2,2.5,2,1.5,1) 刚好循环一次
InitTime: DB 0FEH,33H,12H,66H,0FCH,66H,12H,66H,0FAH,99H,12H,66H,0F8H,0CCH,12H,66H,0F7H,00H,12H,66H,0F8H,0CCH,12H,66H,0FAH,99H,12H,66H,0FCH,66H,12H,66H
END
实际使用的时候负脉冲时间不要太在意,正脉冲的时间要严格控制好就行了.通过实践发现如果按照周期20ms,伺服电机会抖动的厉害.下面这段代码就是有意延长正脉冲的时间,可以通过CJNE A,#10,D_L2 更改电机的转动速度.
D_L0:  
  INC R7  
  MOV A,R7  
  CJNE A,#10,D_L2  
  MOV R7,#0  
  CPL P1.0  
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 
请看:http://bo-8888.blog.163.com/
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表