標題: 單片機步進式電機控制步數程序問題 [打印本頁]
作者: 1697809501 時間: 2020-5-23 18:43
標題: 單片機步進式電機控制步數程序問題
要求(匯編):采用單片機控制一個三相單三拍的步進電機工作。步進電機的旋轉方向由正反轉控制信號控制。步進電機的步數由鍵盤輸入,可輸入的步數分別為3、6、9、12、15、18、21、24和27步,且鍵盤具有鍵盤鎖功能,當鍵盤上鎖時,步進電機不接受輸入步數,也不會運轉。只有當鍵盤鎖打開并輸入步數時,步進電機才開始工作。
電機運轉的時候有正轉和反轉指示燈指示。 使用上述程序時,DJNZ直接進行跳轉,并且前面的step程序也不起作用,沒有讓下面的程序循環
作者: 1697809501 時間: 2020-5-23 18:45
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP TIM0
ORG 0013H
LJMP TIM1
ORG 0030H
MAIN:MOV R0,#1
SETB EA
SETB EX0
SETB EX1
step_3:JB P1.0,step_6
MOV R0,#1
step_6: JB P1.1,step_9
MOV R0,#2
step_9: JB P1.2,step_12
MOV R0,#3
step_12:JB P1.3,step_15
MOV R0,#4
step_15:JB P1.4,step_18
MOV R0,#5
step_18:JB P1.5,step_21
MOV R0,#6
step_21:JB P1.6,step_24
MOV R0,#7
step_24:JB P1.7,step_27
MOV R0,#8
step_27:JB P3.0,step_3
MOV R0,#9
TIM0: DJNZ R0,ZHEN
作者: 1697809501 時間: 2020-5-23 18:45
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP TIM0
ORG 0013H
LJMP TIM1
ORG 0030H
MAIN:MOV R0,#1
SETB EA
SETB EX0
SETB EX1
step_3:JB P1.0,step_6
MOV R0,#1
step_6: JB P1.1,step_9
MOV R0,#2
step_9: JB P1.2,step_12
MOV R0,#3
step_12:JB P1.3,step_15
MOV R0,#4
step_15:JB P1.4,step_18
MOV R0,#5
step_18:JB P1.5,step_21
MOV R0,#6
step_21:JB P1.6,step_24
MOV R0,#7
step_24:JB P1.7,step_27
MOV R0,#8
step_27:JB P3.0,step_3
MOV R0,#9
TIM0: DJNZ R0,ZHEN
RETI
ZHEN:MOV DPTR,#Vn_step1
MOVC A,@A+DPTR
MOV P0,A
INC A
CJNE A,#3,ZHEN
CLR A
SJMP TIM0
TIM1: DJNZ R0,FAN
RETI
FAN:MOV DPTR,#Vn_step2
MOVC A,@A+DPTR
MOV P0,A
INC A
CJNE A,#3,FAN
CLR A
SJMP TIM1
Vn_step1: DB 0F1H,0F3H,0F2H,0F6H,0F4H,0FCH,0F8H,0F9H
Vn_step2: DB 04H,02H,01H
END
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |