关于单片机控制步进电机
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/05 17:15:28
关于单片机控制步进电机
$NOMOD51
P0 DATA 80H
P1 DATA 90H
K1 EQU P0.0
K2 EQU P0.1
K3 EQU P0.2
ORG 0000H
LJMP MAIN
MAIN:MOV SP,50H
STOP:MOV P1,#0FFH
LOOP:JNB K1,MZZ2
JNB K2,MFZ2
JNB K3,STOP1
JMP LOOP
STOP1:ACALL DELAY
JNB K3,$
ACALL DELAY
JMP STOP
MZZ2:ACALL DELAY
JNB K1,$
ACALL DELAY
JMP MZZ
MFZ2:ACALL DELAY
JNB K2,$
ACALL DELAY
JMP MFZ
MZZ:MOV R0,#00H
MZZ1:MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ MZZ2
MOV P1,A
JNB K3,STOP1
JNB K2,MFZ2
ACALL DELAY
INC R0
JMP MZZ1
RET
MFZ:MOV R0,#05
MFZ1:MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ MFZ
MOV P1,A
JNB K3,STOP1
JNB K1,MZZ2
ACALL DELAY
INC R0
JMP MFZ1
RET
DELAY:MOV R5,#40
DEL1:MOV R6,#248
DJNZ R6,$
DJNZ R5,DEL1
RET
TABLE:DB 0FCH,0F9H,0F3H,0F6H
DB 00H
DB 0F7H,0F3H,0FBH,09H
DB 0FDH,0FCH,0FEH,0F6H
DB 00H
END
有这样一段程序,请教高手帮改一些指令,程序可以运行就行.
这段程序是可以运行,老师要求我们在这个程序的基础上改动一下指令,使程序一样可以运行的就行,问题就是一定要改动一些指令!
$NOMOD51
P0 DATA 80H
P1 DATA 90H
K1 EQU P0.0
K2 EQU P0.1
K3 EQU P0.2
ORG 0000H
LJMP MAIN
MAIN:MOV SP,50H
STOP:MOV P1,#0FFH
LOOP:JNB K1,MZZ2
JNB K2,MFZ2
JNB K3,STOP1
JMP LOOP
STOP1:ACALL DELAY
JNB K3,$
ACALL DELAY
JMP STOP
MZZ2:ACALL DELAY
JNB K1,$
ACALL DELAY
JMP MZZ
MFZ2:ACALL DELAY
JNB K2,$
ACALL DELAY
JMP MFZ
MZZ:MOV R0,#00H
MZZ1:MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ MZZ2
MOV P1,A
JNB K3,STOP1
JNB K2,MFZ2
ACALL DELAY
INC R0
JMP MZZ1
RET
MFZ:MOV R0,#05
MFZ1:MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ MFZ
MOV P1,A
JNB K3,STOP1
JNB K1,MZZ2
ACALL DELAY
INC R0
JMP MFZ1
RET
DELAY:MOV R5,#40
DEL1:MOV R6,#248
DJNZ R6,$
DJNZ R5,DEL1
RET
TABLE:DB 0FCH,0F9H,0F3H,0F6H
DB 00H
DB 0F7H,0F3H,0FBH,09H
DB 0FDH,0FCH,0FEH,0F6H
DB 00H
END
有这样一段程序,请教高手帮改一些指令,程序可以运行就行.
这段程序是可以运行,老师要求我们在这个程序的基础上改动一下指令,使程序一样可以运行的就行,问题就是一定要改动一些指令!
编译了一下,这个程序可以运行.
楼主发现什么错误了?
----------------------------
按照楼主提示,进行了简单的修改.
调整了两小段程序的位置,这样就可以删除两个"JMP"指令;
原程序中,有两个"RET",是没有用的,也可以删除;
这四行可删的指令,我在前面加上了“;”作了标记.
另外,原程序中,少了个井号#.
程序如下:
; P0 DATA 80H
; P1 DATA 90H
K1 EQU P0.0
K2 EQU P0.1
K3 EQU P0.2
ORG 0000H
LJMP MAIN
MAIN:MOV SP,#50H ;原文在这里中少了个井号"#"
STOP:MOV P1,#0FFH
LOOP:JNB K1,MZZ2
JNB K2,MFZ2
JNB K3,STOP1
JMP LOOP
;------------------------------------
STOP1:ACALL DELAY
JNB K3,$
ACALL DELAY
JMP STOP
;------------------------------------
MZZ2:ACALL DELAY
JNB K1,$
ACALL DELAY
; JMP MZZ
MZZ:MOV R0,#00H
MZZ1:MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ MZZ2
MOV P1,A
JNB K3,STOP1
JNB K2,MFZ2
ACALL DELAY
INC R0
JMP MZZ1
; RET
;------------------------------------
MFZ2:ACALL DELAY
JNB K2,$
ACALL DELAY
; JMP MFZ
MFZ:MOV R0,#05
MFZ1:MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ MFZ
MOV P1,A
JNB K3,STOP1
JNB K1,MZZ2
ACALL DELAY
INC R0
JMP MFZ1
; RET
;------------------------------------
DELAY:MOV R5,#40
DEL1:MOV R6,#248
DJNZ R6,$
DJNZ R5,DEL1
RET
;------------------------------------
TABLE:DB 0FCH,0F9H,0F3H,0F6H
DB 00H
DB 0F7H,0F3H,0FBH,09H
DB 0FDH,0FCH,0FEH,0F6H
DB 00H
END
楼主发现什么错误了?
----------------------------
按照楼主提示,进行了简单的修改.
调整了两小段程序的位置,这样就可以删除两个"JMP"指令;
原程序中,有两个"RET",是没有用的,也可以删除;
这四行可删的指令,我在前面加上了“;”作了标记.
另外,原程序中,少了个井号#.
程序如下:
; P0 DATA 80H
; P1 DATA 90H
K1 EQU P0.0
K2 EQU P0.1
K3 EQU P0.2
ORG 0000H
LJMP MAIN
MAIN:MOV SP,#50H ;原文在这里中少了个井号"#"
STOP:MOV P1,#0FFH
LOOP:JNB K1,MZZ2
JNB K2,MFZ2
JNB K3,STOP1
JMP LOOP
;------------------------------------
STOP1:ACALL DELAY
JNB K3,$
ACALL DELAY
JMP STOP
;------------------------------------
MZZ2:ACALL DELAY
JNB K1,$
ACALL DELAY
; JMP MZZ
MZZ:MOV R0,#00H
MZZ1:MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ MZZ2
MOV P1,A
JNB K3,STOP1
JNB K2,MFZ2
ACALL DELAY
INC R0
JMP MZZ1
; RET
;------------------------------------
MFZ2:ACALL DELAY
JNB K2,$
ACALL DELAY
; JMP MFZ
MFZ:MOV R0,#05
MFZ1:MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ MFZ
MOV P1,A
JNB K3,STOP1
JNB K1,MZZ2
ACALL DELAY
INC R0
JMP MFZ1
; RET
;------------------------------------
DELAY:MOV R5,#40
DEL1:MOV R6,#248
DJNZ R6,$
DJNZ R5,DEL1
RET
;------------------------------------
TABLE:DB 0FCH,0F9H,0F3H,0F6H
DB 00H
DB 0F7H,0F3H,0FBH,09H
DB 0FDH,0FCH,0FEH,0F6H
DB 00H
END
关于51单片机控制步进电机
51单片机控制步进电机
关于单片机控制步进电机的英文参考文献
步进电机;单片机;驱动;控制的英语单词是什么啊?
谁用过步进电机?单片机控制步进电机,声音太大!
步进电机选型我想用单片机接步进电机驱动器来控制步进电机,再用步进电机带动一小型车床,不知道怎么确定步进电机的型号,要计算
步进电机PLC控制方式
C51单片机控制三相步进电机的程序,要实现的功能是正转反转和加速减速
请问步进减速电机和直流减速电机有什么区别,我想用单片机来控制,不知它们有什么区别.控制方式是什么?
如何实现步进电机快慢控制?
请问步进电机噪音能控制到什么程度
步进电机旋转速度是由什么来控制的?