永发信息网

12编写实验程序,利用8255的输出来控制步进电机的运转

答案:1  悬赏:30  手机版
解决时间 2021-03-24 23:58
  • 提问者网友:孤山下
  • 2021-03-24 15:48
12编写实验程序,利用8255的输出来控制步进电机的运转
最佳答案
  • 五星知识达人网友:等灯
  • 2021-03-24 17:04
单片机的
C8255 EQU 8406H
D8255C EQU 8404H
D8255A EQU 8400H
SPDTR EQU 20H
STEPPT EQU 21H
DIRL EQU 22H
DIRH EQU 23H
SWITCH EQU 24H

ORG 0000H
LJMP START
ORG 000BH
LJMP RUNINT
ORG 0100H
START:
MOV SP,#40H
LCALL INIT
LCALL CHKSWITCH
SJMP $-3
INIT:
CLR EA
MOV DPTR,#C8255
MOV A,#90H
MOVX @DPTR,A
MOV DPTR,#MRSTEP
MOV DIRH,DPH
MOV DIRL,DPL
MOV SPDTR,#00H
MOV SWITCH,#00H
MOV TMOD,#00H
SETB ET0
SETB EA
RET

CHKSWITCH:
MOV DPTR,#D8255A
MOVX A,@DPTR
ANL A,#8FH
CJNE A,SWITCH,$+6
LJMP SWITCHRET
MOV SWITCH,A
CLR TR0
RLC A
JC $+7
MOV DPTR,#MLSTEP
SJMP $+5
MOV DPTR,#MRSTEP
MOV DIRL,DPL
MOV DIRH,DPH

RLC A
RLC A
RLC A
RLC A
JC SPD4
RLC A
JC SPD3
RLC A
JC SPD2
RLC A
JC SPD1
SJMP SPD0
SPD4: MOV A,#04H
SJMP CHGSPD
SPD3: MOV A,#03H
SJMP CHGSPD
SPD2:MOV A,#02H
SJMP CHGSPD
SPD1: MOV A,#01H
SJMP CHGSPD
SPD0:MOV A,#00H

CHGSPD:MOV DPTR,#SPD
MOVC A,@A+DPTR
MOV SPDTR,A
JZ $+4
SETB TR0
SWITCHRET:RET
RUNINT:

PUSH PSW
PUSH ACC
PUSH DPH
PUSH DPL
CLR TR0
MOV TH0,SPDTR
MOV TL0,#00H
SETB TR0
MOV DPH,DIRH
MOV DPL,DIRL
MOV A,STEPPT
INC A
ANL A,#07H
MOV STEPPT,A
MOVC A,@A+DPTR
MOV DPTR,#D8255C
MOVX @DPTR,A
POP DPL
POP DPH
POP ACC
POP PSW
RETI
SPD: DB 00H,17H,77H,0A7H,0C7H
MRSTEP:DB 01H,03H,02H,06H,04H,0CH,08H,09H
MLSTEP:DB 08H,0CH,04H,06H,02H,03H,01H,09H

END
接线是PA0-PA7接K1-K8
PC0-PC3接SMA-SMD
CS55接8400H
还有另外一种自动实现快速正转反转或慢速正转反转之类的.如果是微机原理课的用8086/8088
ORG 0003H
LJMP KEY
ORG 001BH
LJMP TINT
ORG 4000H
LJMP REST
ORG 4200H
REST: MOV SP,#70H
ANL TMOD,#0F0H
ORL TMOD,#02H
MOV TH0,#05H
MOV TL0,#05H
MOVX @DPTR,A
MOV DPTR,#1B31H
MOV A,#0D3H
MOVX @DPTR,A
MOV A,#2AH
MOVX @DPTR,A
MOV A,#00H
MOVX @DPTR,A
MOV A,#40H
MOVX @DPTR,A
MOV A,#90H
MOVX @DPTR,A
MOV 20H,#00H
MOV 21H,#00H
MOV 22H,#00H
MOV 23H,#00H
MOV 24H,#0FFH
MOV 25H,#00H
MOV R0,#21H
MOV R2,#02H
MOV R7,#33H
SETB EX0
SETB ET1
SETB EA
MAIN: LCALL MANI
LJMP MAIN
MANI: MOV DPTR,#1B31H
MOV A,#90H
MOVX @DPTR,A
MOV DPL,#30H
MANI1: MOV A,@R0
LCALL TABLE
MOVX @DPTR,A
INC R0
DJNZ R2,MANI1
MOV R0,#21H
MOV R2,#02H
RET
TABLE: INC A
MOVC A,@A+PC
RET
DB 3FH,06H,5BH,4FH
DB 66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH
DB 39H,5EH,79H,71H
DB 73H
KEY: PUSH ACC
PUSH PSW
PUSH DPL
MOV DPL,#30H
MOVX A,@DPTR
ANL A,#3FH
ACCEL: CJNE A,#02H,DECEL
CLR TR1
MOV 25H,#01H
MOV 21H,#0AH
MOV 23H,#00H
SETB TR1
LJMP OUTK
DECEL: CJNE A,#06H,BACK
CLR TR1
MOV 25H,#02H
MOV 21H,#0EH
MOV 23H,#0C0H
SETB TR1
LJMP OUTK
BACK: CJNE A,#03H,FRONT
MOV 20H,#01H
MOV 22H,#0BH
LJMP OUTK
FRONT: CJNE A,#07H,STOP
MOV 20H,#00H
MOV 22H,#0FH
LJMP OUTK
STOP: MOV 25H,#00H
CJNE A,#08H,STEP1
CLR TR1
MOV 21H,#00H
LJMP OUTK
STEP1: CJNE A,#09H,STEP2
CLR TR1
MOV 21H,#01H
MOV 23H,#00H
SETB TR1
LJMP OUTK
STEP2: CJNE A,#0AH,STEP3
CLR TR1
MOV 21H,#02H
MOV 23H,#3FH
SETB TR1
LJMP OUTK
STEP3: CJNE A,#0BH,STEP4
CLR TR1
MOV 21H,#03H
MOV 23H,#66H
SETB TR1
LJMP OUTK
STEP4: CJNE A,#0CH,STEP5
CLR TR1
MOV 21H,#04H
MOV 23H,#7FH
SETB TR1
LJMP OUTK
SREP5: CJNE A,#0DH,POINT
CLR TR1
MOV 21H,#05H
MOV 23H,#0C0H
SETB TR1
LJMP OUTK
POINT: CJNE A,#05H,OUTK
CLR TR1
MOV 21H,#0DH
LCALL DIREC
OUTK: POP DPL
POP PSW
POP ACC
RETI
TINT: PUSH ACC
PUSH PSW
PUSH DPL
LCALL DIREC
LCALL REL
OUTT: POP DPL
POP PSW
POP ACC
RETI
DIREC: MOV DPL,#08H
MOV R1,20H
MOV A,R7
CJNE R1,#00H,BACKD
FRONTD: RR A
LJMP OUTD
BACKD: CJNE R1,#01H,OUTD
RL A
OUTD: MOVX @DPTR,A
MOV R7,A
RET
REL: MOV R1,25H
CJNE R1,#01H,REL2
MOV A,23H
CJNE A,#0C0H,REL1
MOV TH1,A
RET
REL1: MOV TH1,A
INC A
MOV 23H,A
RET
REL2: CJNE R1,#02H,REL0
MOV A,23H
JNZ REL3
MOV TH1,A
RET
REL3: MOV TH1,A
DEC A
MOV 23H,A
RET
REL0: MOV TH1,23H
RET
END
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯