background image

     ORG    0
     AJMP  START

;*****************检测是否开启启动电机键***************************
START:
     MOV   P0,#0             ;清显示
     SETB  MARK           ;预启动电机工作,标识为 1
     MOV   TEMP,#5        ;开始工作于 5Hz
     MOV   CYCLENUM,#01H   ;循环 1 次
     JNB   SWITCH,NEXT     ;按键按下?
     SJMP  START           ;没有返回继续检测
NEXT:
     CALL  DELAY          ;消抖确认
     JNB   SWITCH,MAIN    ;再次确认按键,不为 1 说明按键按下
     SJMP  START          ;没有按下,继续检测

;*****************开始运行电机***************************************
MAIN:
     MOV   A,TEMP
     MOV   DPTR,#TAB4
     MOVC  A,@A+DPTR
     MOV   LEDBUF,A       ;送显示
     CALL  DISPLAY
LOOP:
     JB    MARK,WORK      ;检测运行标识是否为 1,为 1 则继续运行,为 0 则停止运行
NOTWORK:
     CLR   ENA
     CLR   ENB
     SJMP  START
WORK:
     MOV    P1,#000010111B          ;步进电机运行方式为两相四拍
     CALL  TIMER
     CALL  TESTSTOP

     MOV    P1,#000011011B          ;第二拍
     CALL  TIMER
     CALL  TESTSTOP