首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

51单片机驱动步进电机电路及汇编程序

51单片机驱动步进电机电路及汇编程序

在这里介绍一下用51单片机驱动步进电机的方法。
  这款步进电机的驱动电压12V,步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成!!!
  该步进电机有6根引线,排列次序如下:1:红色、2:红色、3:橙色、4:棕色、5: $、6:黑色。


  采用51驱动ULN2003的方法进行驱动。
  ULN2003的驱动直接用单片机系统的5V电压,可能力矩不是很大,大家可自行加大驱动电压到12V。


  ;******************************************************************
  ;****************************步进电机的驱动***************************************
  ; DESIGN BY BENLADN911 FOSC = 12MHz 2005.05.19
  ;---------------------------------------------------------------------------------
  ; 步进电机的驱动信号必须为 脉冲信号!!! 转动的速度和脉冲的频率成正比!!!
  ; 本步进电机步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成!!!
  ;---------------------------------------------------------------------------------
  ; A组线圈对应 P2.4
  ; B组线圈对应 P2.5
  ; C组线圈对应 P2.6
  ; D组线圈对应 P2.7
  ; 正转次序: AB组--BC组--CD组--DA组 (即一个脉冲,正转 7.5 度)
  ;----------------------------------------------------------------------------------
  ;----------------------------正转--------------------------
  ORG 0000H
  LJMP MAIN
  ORG 0100H
  MAIN:
  MOV R3,#144 正转 3 圈共 144 脉冲

START:
  MOV R0,#00H
  START1:
  MOV P2,#00H
  MOV A,R0
  MOV DPTR,#TABLE
  MOVC A,@A+DPTR
  JZ START 对 A 的判断,当 A = 0 时则转到 START
  MOV P2,A
  LCALL DELAY
  INC R0
  DJNZ R3,START1
  MOV P2,#00H
  LCALL DELAY1
  ;-----------------------------反转------------------------
  MOV R3,#144 反转一圈共 144 个脉冲
  START2:
  MOV P2,#00H
  MOV R0,#05
  START3:
  MOV A,R0
  MOV DPTR,#TABLE
  MOVC A,@A+DPTR
  JZ START2
  MOV P2,A
  CALL DELAY
  INC R0
  DJNZ R3,START3
  MOV P2,#00H
  LCALL DELAY1
  LJMP MAIN
  DELAY: MOV R7,#40 步进电机的转速
  M3: MOV R6,#248
  DJNZ R6,$
  DJNZ R7,M3
  RET
  DELAY1: MOV R4,#20 2S 延时子程序
  DEL2: MOV R3,#200
  DEL3: MOV R2,#250
  DJNZ R2,$
  DJNZ R3,DEL3
  DJNZ R4,DEL2
  RET
  TABLE:
  DB 30H,60H,0C0H,90H 正转表
  DB 00 正转结束
  DB 30H,90H,0C0H,60H 反转表
  DB 00 反转结束
  END
返回列表