实验七 步进电机驱动
一.实验目的
掌握MCS-51单片机应用于驱动步进电机的程序设计和调试方法。
二.实验设备
1.ME-5103在线仿真器1台;
2.IBM-PC微机1台;
3.直流稳压电源1台;
4.步进电机驱动系统1套。
三.实验内容
1.实验设计
定时器1于方式1,16位,10ms中断一次
40H 10ms计数单元
41H 秒计数单元
42H 分计数单元
43H 时计数单元
定时方式1为10MS:THX=0ECH,TLX=78H
方式0为10MS: THX=63H,TLX=18H
步进电机驱动实验 定时中断程序
正转后反转,显示计数值
步进电机按三相六拍的工作方式运动
X轴
C B A
P1.2 P1.1 P1.0
用键盘上方的发光二极管(3FH)对应指示:
D2 D1 D0
正转:A-AB-B-BC-C-CA-A
反转:A-CA-C-BC-B-AB-A
2.参考程序
; 42H,41H为BCD码计数单元
;内存分配
TCTER EQU 40H ;10ms计数单元
CTCL EQU 44H ;进给步数
CTCH EQU 45H ;最大9999步
STAT EQU 52H
SMOUT EQU 55H
; 位地址,工作标志
XP EQU 02H ;X轴正反转
XW EQU 04H ;工作标志
;
DISP EQU 0DE00H ;显示子程序入口
;
ORG 0000H
START: AJMP MAIN
;
ORG 000BH ;定时器0中断服
AJMP T0INT ;务程序入口
;
ORG 0030H
MAIN: MOV R0,#39H ;显示缓冲区初始化
MAIN_0: MOV @R0,#0
INC R0
CJNE R0,#44H,MAIN_0
MOV STAT,#01
MOV SMOUT,#01H
MOV CTCL,#50H ;150步
MOV CTCH,#01H
SETB XW
CLR XP
MOV TMOD,#01H
MOV IE,#10000010B
MOV TH0,#0ECH;10ms:EC78H
MOV TL0,#78H
SETB TR0
MAIN_1: JNB XW,MAIN_2
ACALL CONT ;主程序循环
SJMP MAIN_1
MAIN_2: CLR TR0 ;关定时器
MAIN_3: LCALL DISP
SJMP MAIN_3
;
CONT: MOV 3FH,SMOUT
LCALL DISP ;控制程序
; MOV P1,SMOUT
RET
;
;定时器0中断服务程序
T0INT: MOV TH0,#0ECH
MOV TL0,#78H
PUSH ACC ;保护现场
PUSH PSW
PUSH 01H
INC TCTER
MOV A,TCTER
CJNE A,#50,T0INTR
MOV TCTER,#0
ACALL XPD0
ACALL COUNT
T0INTR: POP 01H
POP PSW ;恢复现场
POP ACC
RETI
COUNT: JB XP,COUNT0
MOV A,41H ;个十单元
INC A
DA A
MOV 41H,A
JNZ COUNT1
CLR C
MOV A,42H ;百千单元
INC A
DA A
MOV 42H,A
SJMP COUNT1
COUNT0: MOV A,41H ;个十单元
ADD A,#99H
DA A
MOV 41H,A
CJNE A,#99H,COUNT2
MOV A,42H ;百千单元
ADD A,#99H
DA A
MOV 42H,A
SJMP COUNT2
COUNT1: MOV A,42H
XRL A,CTCH
JNZ TINT0
MOV A,41H
XRL A,CTCL
JNZ TINT0
SETB XP
SJMP TINT0
COUNT2: MOV A,42H
JNZ TINT0
MOV A,41H
JNZ TINT0
CLR XW
;
TINT0: MOV A,41H ;第一拆字
ANL A,#0FH
MOV 39H,A
MOV A,41H
ANL A,#0F0H
SWAP A
MOV 3AH,A
MOV A,42H ;第二拆字
ANL A,#0FH
MOV 3BH,A
MOV A,42H
ANL A,#0F0H
SWAP A
MOV 3CH,A
MOV 3DH,#10H ;空格
JB XP,TINT1
MOV 3EH,#0AH ;正转
RET
TINT1: MOV 3EH,#0BH ;反转
RET
;步进电机驱动处理
XPD0: MOV R1,#STAT
JB XP,XPD1
INC @R1 ;正转
CJNE @R1,#07H,XPD2
MOV @R1,#1
SJMP XPD2
XPD1: DEC @R1 ;反转
CJNE @R1,#00H,XPD2
MOV @R1,#06
XPD2: MOV A,@R1
ADD A,#2
MOVC A,@A+PC
MOV SMOUT,A
RET
SM_TAB: DB 03H,01H,05H
DB 04H,06H,02H
四.实验报告
1.写出本程序调试过程和运行结果.
2.步进电机的速度如何改?
3.如步进电机为四相八拍的方式工作,修改什么地方?