B
bvan3
Guest
Chci ovládat své PWM s mou 8051 přepínačů DIP a já potřebovat pomoci
ORG 0000h
Hlavní:
CLR P1.0
CLR P1.1
CLR P1.2
CLR P2.7
CLR P2.6
CHECKMOTOR:
JB P2.0, CONTROL
JNB P2.0, MOTOROFF
CONTROL:
SETB P1.0
JNB P2.7 ve směru hodinových ručiček
CLR P1.1
SETB P1.2
SJMP CHECKMOTOR
Směru hodinových ručiček:
SETB P1.1
CLR P1.2
SJMP CHECKMOTOR
Normální:
JNB P2.6, FIFTYPERCENT
SETB P1.0
MOV R5, # 25
ACALL DELAY
CLR P1.0
MOV R5, # 75
ACALL DELAY
SJMP NORMAL
FIFTYPERCENT:
SETB P1.0
MOV R5, # 50
ACALL DELAY
CLR P1.0
MOV R5, # 50
ACALL DELAY
SJMP NORMAL
DELAY:
H1: MOV R2, # 100
H2: MOV R3, # 255
H3: DJNZ R3, H3
DJNZ R2, H2
DJNZ R5, H1
MOTOROFF:
SETB P1.0
RET
END
ORG 0000h
Hlavní:
CLR P1.0
CLR P1.1
CLR P1.2
CLR P2.7
CLR P2.6
CHECKMOTOR:
JB P2.0, CONTROL
JNB P2.0, MOTOROFF
CONTROL:
SETB P1.0
JNB P2.7 ve směru hodinových ručiček
CLR P1.1
SETB P1.2
SJMP CHECKMOTOR
Směru hodinových ručiček:
SETB P1.1
CLR P1.2
SJMP CHECKMOTOR
Normální:
JNB P2.6, FIFTYPERCENT
SETB P1.0
MOV R5, # 25
ACALL DELAY
CLR P1.0
MOV R5, # 75
ACALL DELAY
SJMP NORMAL
FIFTYPERCENT:
SETB P1.0
MOV R5, # 50
ACALL DELAY
CLR P1.0
MOV R5, # 50
ACALL DELAY
SJMP NORMAL
DELAY:
H1: MOV R2, # 100
H2: MOV R3, # 255
H3: DJNZ R3, H3
DJNZ R2, H2
DJNZ R5, H1
MOTOROFF:
SETB P1.0
RET
END