Need help with the following Homework assignment…
Design a fire alarm system using a 8051 microcontroller. The specs are as follows:
A) If the alarm is detected (one of the switches is activated) it should start flashing 4 LEDS (4 on the right (LEDS 1-4) and 4 on the left (LEDS 5-8), alternating).
B) If the alarm is not detected, the display should show only 2 middle LEDS (LEDS 4 & 5) steadily ON (not flashing) indicating NORMAL operation.
This is the code I’ve come up with so far, but I appear to be stuck. I would appreciate and assistance. Thank you.
Code…
ORG 0H ;Program starting location
MOV A, #0 ;
MOV P2, A ;
MOV A, #OFFH;
MOV P1, A ;
INPUT: MOV A, P1 ;
HERE: JNB A, HERE ;
MOV P2, #1 ;
DELAY:
MOV R3, #15 ;
OUTER:
MOV R2, #240 ;
INNER:
DJNZ R2, INNER ;
DJNZ R3, OUTER ;
RET
SDELAY:
MOV R5, #45 ;put 45 in R5
H3: MOV R4, #242 ;put 242 in R4
H2: MOV R3, #255 ;put 255 in R5
H1: DJNZ R3, H1 ;Decrement R3 keep @ H1 if not zeroed
DJNZ R4, H2 ;Decrement R4 keep @ H2 if not zeroed
DJNZ R5, H3 ;Decrement R5 keep @ H3 if not zeroed
RET ;Return & Go back to line after ACALL
;--------------------
END
Design a fire alarm system using a 8051 microcontroller. The specs are as follows:
A) If the alarm is detected (one of the switches is activated) it should start flashing 4 LEDS (4 on the right (LEDS 1-4) and 4 on the left (LEDS 5-8), alternating).
B) If the alarm is not detected, the display should show only 2 middle LEDS (LEDS 4 & 5) steadily ON (not flashing) indicating NORMAL operation.
This is the code I’ve come up with so far, but I appear to be stuck. I would appreciate and assistance. Thank you.
Code…
ORG 0H ;Program starting location
MOV A, #0 ;
MOV P2, A ;
MOV A, #OFFH;
MOV P1, A ;
INPUT: MOV A, P1 ;
HERE: JNB A, HERE ;
MOV P2, #1 ;
DELAY:
MOV R3, #15 ;
OUTER:
MOV R2, #240 ;
INNER:
DJNZ R2, INNER ;
DJNZ R3, OUTER ;
RET
SDELAY:
MOV R5, #45 ;put 45 in R5
H3: MOV R4, #242 ;put 242 in R4
H2: MOV R3, #255 ;put 255 in R5
H1: DJNZ R3, H1 ;Decrement R3 keep @ H1 if not zeroed
DJNZ R4, H2 ;Decrement R4 keep @ H2 if not zeroed
DJNZ R5, H3 ;Decrement R5 keep @ H3 if not zeroed
RET ;Return & Go back to line after ACALL
;--------------------
END