实验七步进电机驱动 实验目的 掌握MCS-51单片机应用于驱动步进电机的程序设计和调试方法。 二.实验设备 1.ME-5103在线仿真器1台: 2. IBM-PC微机1台; 3.直流稳压电源1台; 4.步进电机驱动系统1套。 三.实验内容 1.实验设计 定时器1于方式1,16位,10ms中断一次 40OH10ms计数单元 41H秒计数单元 42H分计数单元 43H时计数单元 定时方式1为10MS:THX=0ECH,TLX=78H 方式0为10MS:THX=63H,TLX=18H 步进电机驱动实验定时中断程序 正转后反转,显示计数值 步进电机按三相六拍的工作方式运动 X轴 C B A P1.2P1.1P1.0 用键盘上方的发光二极管(3FH对应指示 正转:A-AB-B-BC-C-CA-A 反转:ACA→C-BC-B-AB-A 2.参考程序 ;42H,41H为BCD码计数单元 内存分配 TCTER EQU 10ms计数单元 ;进给步数 45H;最大9999步 SMOUT EQU 55H 位地址,工作标志 EQU02H;X轴正反转 工作标志 DISP EQU ODEOOH;显示子程序入口
实验七 步进电机驱动 一.实验目的 掌握 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 定时器0中断服 AJMP mn 务程序入口 DRG 0030H MAIN: MOV RO,#39H;显示缓冲区初始化 MAIN 0: MO\ @RO,#0 INC CJNE RO, #44H, MAIN O MOV STAT, #Ol SMOUT, #OlH CTCL. #50H ;150步 MOV CTCH #01H SETB CLR XP MOV TMOD. #o1H Mov THO, #oECH: 10ms: EC78H MOV TL0,#78H SETB TRO MAIN 1: JNB XW, Main 2 ACALL CONT 主程序循环 SJMP MAIN 1 MaIN 2: CLR TRO ;关定时器 main 3: LCALL DISP SJMP MAIN 3 CONT 3FH, SMOUT LCALL DISP 控制程序 Pl SMOUT 定时器0中断服务程序 TOINT: MOV THO. #OECH MOV TLO. #78H PUSH ACC 保护现场 PU PUSH 01H MOV A. TCTER CJNE A, #50, TOINTR
; 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 #O ACALL XPDO ACALL COUNT TOINTR: POP POP PSW 恢复现场 POP ACC RETI COUNT: JB XP, COUNTO MOVA,4H;个十单元 DA A MOV 41H,A COUNTI CLR C A,42H;百千单元 A MOV 42H A SJMP COUNTI COUNT0:MOVA,41H;个十单元 ADD A #9 9H 41H,A CJNE A, #99H, COUNT2 MOVA,42H;百千单元 ADD A,#99H DA A MOv 42 SJMP COUNT2 COUNT1: MOV A, CTCH JNZ TINTO A 41H A, CTCL JNZ TINTO SETB XP TINTO COUNT MOV A, 41H JNZ TINTO TINT0:MOVA,41H;第一拆字
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 ;第一拆字
A #OFH 39H,A MOV anl A #OFOH 3AH. A M0VA,42H;第二拆字 ANL A #OFH Mov 3BH. A A,42H SWAP A MOV 3CH. A Mov 3DH #10H 格 XP, TINTI MOV 3EH #OAH TINTI. MOV 3EH. #OBH 反转 RET 步进电机驱动处理 XPDO 1. #STAT KP, XPD1 正转 @R1. #07H. XPD2 Mov R1,#1 SJMP (PD2 KPDI: DEC 反转 CJNE @ R1, #OOH, XPD2 MOV@R1,#06 XPD2: MOV A, OR1 A, @A+PC SMOUT. A RET 03H 01H 05H 04H,O6H,02H 四.实验报告 1.写出本程序调试过程和运行结果 2.步进电机的速度如何改? 3.如步进电机为四相八拍的方式工作,修改什么地方?
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.如步进电机为四相八拍的方式工作,修改什么地方?