📄 无刷电机霍尔检测.asm
字号:
;p0.0为启动
;P0.1为工作指示
;P0.2为120度电角度
;P0.3为60度电角度
;P0.4为A相指示
;P0.5为B相指示
;P0.6为C相指示
;P0.7为蜂鸣器发声
;120度
;SA=1,SB=0,SC=0,P1=01H,AXIANG=1;
;SA=1,SB=1,SC=0,P1=03H,BXIANG=1;
;SA=0,SB=1,SC=0,P1=02H,BXIANG=1;
;SA=0,SB=1,SC=1,P1=06H,CXIANG=1;
;SA=0,SB=0,SC=1,P1=04H,CXIANG=1;
;SA=1,SB=0,SC=1,P1=05H,AXIANG=1;
;60度
;SA=1,SB=0,SC=0,P1=01H,AXIANG=1;
;SA=1,SB=1,SC=0,P1=03H,BXIANG=1;
;SA=1,SB=1,SC=1,P1=07H,BXIANG=1;
;SA=0,SB=1,SC=1,P1=06H,CXIANG=1;
;SA=0,SB=0,SC=1,P1=04H,CXIANG=1;
;SA=0,SB=0,SC=0,P1=00H,AXIANG=1;
QI BIT P0.0
GONG BIT P0.1
YI_ER BIT P0.2
LIU_SHI BIT P0.3
AXIANG BIT P0.4
BXIANG BIT P0.5
CXIANG BIT P0.6
FEN_MING BIT P0.7
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP ZHONG
MAIN:
MOV P0,#01H
MOV P1,#07H
MOV P2,#0FFH
MOV P3,#0FFH
MOV R0,#250
MAIN1:
MOV @R0,#0
DJNZ R0,MAIN1
MOV R0,#0
MOV P0,#01H
MOV TMOD,#01H
MOV TH0,#0F4H
MOV TL0,#56H
MOV IE,#82H
SETB TR0
MAIN2:
NOP
JNB QI,MAIN3
SJMP MAIN2
MAIN3:
SETB FEN_MING
LCALL YAN_SHI
MAIN4:
JB QI,MAIN5
SJMP MAIN3
MAIN5:
CLR FEN_MING
MOV P0,#01H
MOV P1,#07H
MOV P2,#0FFH
MOV P3,#0FFH
MOV R0,#250
MAIN6:
MOV @R0,#0
DJNZ R0,MAIN6
MOV R0,#0
MOV 23H,#10H
SETB GONG
LCALL PAN_DUAN
SETB 02H
SJMP MAIN7
MAIN7:
JNB 03H,MAIN8
AJMP JIE_SHOU
MAIN8:
LCALL PAN_DUAN
CJNE R1,#00H,MAIN9;00H的寄存器
SETB AXIANG
CLR BXIANG
CLR CXIANG
SETB 0CH
SETB 0EH
AJMP MAIN16
MAIN9:
CJNE R1,#01H,MAIN10;01H的寄存器
SETB AXIANG
CLR BXIANG
CLR CXIANG
SETB 08H
SJMP MAIN16
MAIN10:
CJNE R1,#02H,MAIN11;02H的寄存器
SETB 09H
SETB BXIANG
CLR AXIANG
CLR CXIANG
SJMP MAIN16
MAIN11:
CJNE R1,#03H,MAIN12;03H的寄存器
SETB BXIANG
CLR AXIANG
CLR CXIANG
SETB 0AH
SJMP MAIN16
MAIN12:
CJNE R1,#04H,MAIN13;04H的寄存器
SETB CXIANG
CLR BXIANG
CLR AXIANG
SETB 0BH
SJMP MAIN16
MAIN13:
CJNE R1,#05H,MAIN14;05H的寄存器
SETB AXIANG
CLR BXIANG
CLR CXIANG
SETB 0CH
SJMP MAIN16
MAIN14:
CJNE R1,#06H,MAIN15;06H的寄存器
SETB CXIANG
CLR BXIANG
CLR AXIANG
SETB 0DH
SJMP MAIN16
MAIN15:
CJNE R1,#07H,MAIN16 ;07H的寄存器
SETB 09H
SETB BXIANG
CLR AXIANG
CLR CXIANG
SETB 0EH
SJMP MAIN16
MAIN16:
AJMP MAIN7
JIE_SHOU:
CLR 06H
CLR 05H
CLR 04H
CLR 03H
CLR 02H
CLR 01H
CLR 00H
MOV 22H,#0
CLR AXIANG
CLR BXIANG
CLR CXIANG
MOV R0,#0
MOV R1,#0
MOV R2,#0
MOV R3,#0
MOV R4,#0
MOV R5,#0
MOV R6,#0
MOV R7,#0
MOV 2FH,21H
MOV A,#3FH
ANL A,2FH
CJNE A,#3FH,JIE_SHOU1
AJMP JIE_SHOU29
JIE_SHOU1:
CLR GONG
JNB 0BH,JIE_SHOU2;判断A相好坏
AJMP JIE_SHOU5
JIE_SHOU2:
NOP
AJMP JIE_SHOU3
JIE_SHOU3:
JNB 0DH,JIE_SHOU4
AJMP JIE_SHOU5
JIE_SHOU4:
MOV A,P1
ANL A,#1
MOV 22H,A
CAI:
NOP
AJMP CAI2
CAI2:
MOV A,22H
SETB FEN_MING
MOV R1,#15
CAI3:
MOV R2,#100
CAI4:
MOV R3,#100
CAI5:
MOV A,P1
ANL A,#1
CJNE A,22H,CAI6
DJNZ R3,CAI5
DJNZ R2,CAI4
DJNZ R1,CAI3
CLR FEN_MING
AJMP CAI7
CAI6:
AJMP JIE_SHOU17
CAI7:
SETB AXIANG
CLR BXIANG
CLR CXIANG
SETB 04H
CLR 05H
CLR 06H
AJMP JIE_SHOU25
JIE_SHOU5:
JNB 08H,JIE_SHOU6
AJMP JIE_SHOU9
JIE_SHOU6:
JNB 0AH,JIE_SHOU7
AJMP JIE_SHOU9
JIE_SHOU7:
NOP
AJMP JIE_SHOU8
JIE_SHOU8:
MOV A,P1
ANL A,#1
MOV 22H,A
CAI8:
NOP
AJMP CAI9
CAI9:
MOV A,22H
SETB FEN_MING
MOV R1,#15
CAI10:
MOV R2,#100
CAI11:
MOV R3,#100
CAI12:
MOV A,P1
ANL A,#1
CJNE A,22H,CAI13
DJNZ R3,CAI12
DJNZ R2,CAI11
DJNZ R1,CAI10
CLR FEN_MING
AJMP CAI14
CAI13:
AJMP JIE_SHOU17
CAI14:
SETB AXIANG
CLR BXIANG
CLR CXIANG
SETB 04H
CLR 05H
CLR 06H
AJMP JIE_SHOU25
JIE_SHOU9:
JNB 08H,JIE_SHOU10 ;;判断B相好坏
AJMP JIE_SHOU13
JIE_SHOU10:
JNB 0BH,JIE_SHOU11
AJMP JIE_SHOU13
JIE_SHOU11:
JNB 0CH,JIE_SHOU12
AJMP JIE_SHOU13
JIE_SHOU12:
SETB BXIANG
CLR AXIANG
CLR CXIANG
SETB 05H
CLR 04H
CLR 06H
AJMP JIE_SHOU25
JIE_SHOU13:
JNB 09H,JIE_SHOU14
AJMP JIE_SHOU17
JIE_SHOU14:
JNB 0AH,JIE_SHOU15
AJMP JIE_SHOU17
JIE_SHOU15:
JNB 0DH,JIE_SHOU16
AJMP JIE_SHOU17
JIE_SHOU16:
SETB BXIANG
CLR AXIANG
CLR CXIANG
SETB 05H
CLR 04H
CLR 06H
AJMP JIE_SHOU25
JIE_SHOU17:
JNB 08H,JIE_SHOU18;
AJMP JIE_SHOU21;判断C相好坏
JIE_SHOU18:
NOP
AJMP JIE_SHOU19
JIE_SHOU19:
JNB 0AH,JIE_SHOU20
AJMP JIE_SHOU21
JIE_SHOU20:
SETB CXIANG
CLR BXIANG
CLR AXIANG
SETB 06H
CLR 04H
CLR 05H
AJMP JIE_SHOU25
JIE_SHOU21:
NOP
AJMP JIE_SHOU22
JIE_SHOU22:
JNB 0BH,JIE_SHOU23
AJMP JIE_SHOU25
JIE_SHOU23:
JNB 0DH,JIE_SHOU24
AJMP JIE_SHOU25
JIE_SHOU24:
SETB CXIANG
CLR AXIANG
CLR BXIANG
SETB 06H
CLR 04H
CLR 05H
AJMP JIE_SHOU25
JIE_SHOU25:
SETB 01H
NOP
JNB QI,JIE_SHOU26
SJMP JIE_SHOU25
JIE_SHOU26:
NOP
LCALL YAN_SHI
JB QI,JIE_SHOU27
SJMP JIE_SHOU26
JIE_SHOU27:
MOV P0,#01H
MOV P1,#07H
MOV P2,#0FFH
MOV P3,#0FFH
MOV R0,#250
JIE_SHOU28:
MOV @R0,#0
DJNZ R0,JIE_SHOU28
MOV R0,#0
AJMP MAIN2
JIE_SHOU29:
CLR GONG
JNB 0EH,JIE_SHOU30
SETB LIU_SHI
CLR YI_ER
SJMP JIE_SHOU31
JIE_SHOU30:
SETB YI_ER
CLR LIU_SHI
SJMP JIE_SHOU31
JIE_SHOU31:
SETB FEN_MING
MOV R0,#50
JIE_SHOU32:
LCALL YAN_SHI
DJNZ R0,JIE_SHOU32
CLR FEN_MING
MOV P1,#07H
MOV P2,#0FFH
MOV P3,#0FFH
MOV R0,#250
JIE_SHOU33:
MOV @R0,#0
DJNZ R0,JIE_SHOU33
MOV R0,#0
AJMP MAIN2
PAN_DUAN:
MOV A,P1
MOV 23H,A
NOP
NOP
NOP
NOP
NOP
NOP
MOV A,P1
MOV 24H,A
CJNE A,23H,PAN_DUAN
NOP
NOP
NOP
NOP
NOP
NOP
MOV A,P1
MOV R1,A
CJNE A,24H,PAN_DUAN
NOP
RET
YAN_SHI:
MOV R7,#0
SETB 00H
YAN_SHI1:
NOP
CJNE R7,#2,YAN_SHI1
MOV R7,#0
CLR 00H
RET
ZHONG:
PUSH ACC
PUSH PSW
MOV A,TL0
CJNE A,#8,ZHONGA
NOP
ZHONGA:
MOV TH0,#0F4H
MOV TL0,#56H
ZHONG1:
JNB 00H,ZHONG2
INC R7
SJMP ZHONG2
ZHONG2:
JNB 01H,ZHONG3
INC R6
CJNE R6,#70,ZHONG5
MOV R6,#0
CPL FEN_MING
CPL GONG
JNB 04H,ZHONG3
CPL AXIANG
SJMP ZHONG3
ZHONG3:
JNB 05H,ZHONG4
CPL BXIANG
SJMP ZHONG4
ZHONG4:
JNB 06H,ZHONG5
CPL CXIANG
SJMP ZHONG5
ZHONG5:
JNB 02H,ZHONG6
INC R5
CJNE R5,#250,ZHONG6
MOV R5,#0
INC R4
CJNE R4,#3,ZHONG6
MOV R4,#0
CLR 02H
SETB 03H
SJMP ZHONG6
ZHONG6:
POP PSW
POP ACC
RETI
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -