实验七 步进电机驱动 一.实验目的   掌握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.如步进电机为四相八拍的方式工作,修改什么地方?