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