实验八 数控工作台“点动” 一.实验目的   掌握MCS-51单片机应用于输入和输出结合的驱动步进电机的程序设计和调试方法。 二.实验设备   1.ME-5103在线仿真器1台;   2.IBM-PC微机1台;   3.直流稳压电源1台;   4.步进电机数控工作台驱动系统1套。 三.实验内容   1.实验设计 数控工作台“点动”驱动实验; 定时中断程序控制步进电机速度 定时器0于方式1,16位,10ms中断一次键盘上数字分别表示方向, 如8为上, 7为左上等,如下表示: U-L UP U-R 7 8 9   LEFT STOP RIGHT 4 5 6 D-L DOWN D-R 1 2 3 当按下对应的数字键时,X轴(左右)和Y轴(上下)的步进电机按三相六拍的工作方式运动: Y轴 X轴 C B A C B A P1.6 P1.5 P1.4 P1.2 P1.1 P1.0 用键盘上方的发光二极管(3FH)对应指示: Y轴 X轴 D6 D5 D4 D2 D1 D0 2.参考程序 ;内存分配 TCER EQU 40H ;10ms计数单元 XSTAT EQU 52H YSTAT EQU 53H SM_OUT EQU 55H ; 位地址,工作标志 XP EQU 02H ;X轴正反转 YP EQU 03H ;Y轴正反转 XW EQU 04H ;X轴工作 YW EQU 05H ;Y轴工作 ; DISP EQU 0DE00H ;显示子程序入口 TKB EQU 0DE60H ;判键子程序 KEYB EQU 0DE70H ;键分析子程序 ; ORG 0000H START: AJMP MAIN ; ORG 000BH ;定时器0中断服 AJMP TINT0 ;务程序入口 ; ORG 0030H MAIN: MOV R0,#39H ;显示缓冲区初始化 MAIN_0: MOV @R0,#0 INC R0 CJNE R0,#40H,MAIN_0 MOV XSTAT,#01 MOV YSTAT,#01 MOV SM_OUT,#11H MOV TMOD,#01H MOV IE,#10000010B MOV TH0,#0ECH;10ms:EC78H MOV TL0,#78H SETB TR0 MAIN_1: ACALL CONT ;主程序循环 ACALL KEY_0 SJMP MAIN_1 ; CONT: MOV 3FH,SM_OUT LCALL DISP ;控制显示程序 RET ; KEY_0: LCALL TKB ;有键? JNZ KEY_1 CLR XW ;清标志 CLR YW RET ;无键返回 KEY_1: LCALL KEYB JZ KEY_0 ;=0 CJNE A,#0AH,KEY_2 KEY_2: JNC KEY_0 ;>9 CJNE A,#1,KEY_3 SJMP KEYB_1 KEY_3: CJNE A,#2,KEY_4 SJMP KEYB_2 KEY_4: CJNE A,#3,KEY_5 SJMP KEYB_3 KEY_5: CJNE A,#4,KEY_6 SJMP KEYB_4 KEY_6: CJNE A,#5,KEY_7 RET KEY_7: CJNE A,#6,KEY_8 SJMP KEYB_6 KEY_8: CJNE A,#7,KEY_9 SJMP KEYB_7 KEY_9: CJNE A,#8,KEY_A SJMP KEYB_8 KEY_A: SJMP KEYB_9 KEYB_1: SETB XW CLR XP SETB YW SETB YP RET KEYB_2: CLR XW SETB YW SETB YP RET KEYB_3: SETB XW CLR XP SETB YW SETB YP RET KEYB_4: SETB XW SETB XP CLR YW RET KEYB_6: SETB XW CLR XP CLR YW RET KEYB_7: SETB XW CLR XP SETB YW CLR YP RET KEYB_8: CLR XW SETB YW CLR YP RET KEYB_9: SETB XW CLR XP SETB YW CLR YP RET ; ;定时器0中断服务程序 TINT0: MOV TH0,#0ECH MOV TL0,#78H PUSH ACC ;保护现场 PUSH PSW PUSH 01H INC TCER MOV A,TCER CJNE A,#50,TINT0R MOV TCER,#0 JNB XW,TINT_1 ACALL XPD TINT_1: JNB YW,TINT0R ACALL YPD TINT0R: MOV P1,SM_OUT ;输出到P1口 POP 01H ;恢复现场 POP PSW POP ACC RETI ;步进电机驱动处理 XPD: CLR 01H ; 01H=0为X轴 MOV R1,#XSTAT MOV C,XP AJMP PPD YPD: SETB 01H ; 01H=1为Y轴 MOV R1,#YSTAT MOV C,YP PPD: JC PPD2 INC @R1 CJNE @R1,#07H,PPD3 MOV @R1,#1 AJMP PPD3 PPD2: DEC @R1 CJNE @R1,#00H,PPD3 MOV @R1,#06 PPD3: MOV A,@R1 ADD A,#1 MOVC A,@A+PC AJMP PPD5 SM_TAB: DB 33H,11H,55H DB 44H,66H,22H PPD5: JB 01H,PPD6 ANL A,#0FH ;X轴低4位新值 ANL SM_OUT,#0F0H ;Y保持 ORL SM_OUT,A RET PPD6: ANL A,#0F0H ;Y轴高4位新值 ANL SM_OUT,#0FH ;X保持 ORL SM_OUT,A RET ; 四.实验报告 1.写出本程序调试过程和运行结果.   2.如按某键运动,而用5作停止,如何修改?