Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LDI R24, 0x20
- LDI R25, 0x30
- LDI R16, 0xFF ;255 used for logic
- LDI R17, 0 ;0 used for logic
- LDI R18, 0 ;Counting Register
- LDI R19, 0x01 ;Increment number
- LDI R20, 0x10 ;Overflow Value
- OUT DDRE, R24
- OUT PORTE, R25
- OUT DDRA, R17 ;PA in input mode
- OUT PORTA, R16 ;enable pull-up for PA
- OUT DDRD, R16 ; PD in output mode
- OUT PORTD, R16 ; Turn off all LEDs
- LDI R25, 0xFF
- SBIS PINA, 0
- CALL Placeone
- SBIC PINA, 0
- CALL Placezero
- SBIS PINA, 1
- CALL Placeone
- SBIC PINA, 1
- CALL Placezero
- SBIS PINA, 2
- CALL Placeone
- SBIC PINA, 2
- CALL Placezero
- SBIS PINA, 3
- CALL Placeone
- SBIC PINA, 3
- CALL Placezero
- Main:
- Call Output
- CHECK_INCREMENT:
- SBIC PINA, 4
- RJMP CHECK_DECREMENT
- CALL Increment
- LatchI:
- CALL LDelay
- SBIC PINA, 4
- RJMP CHECK_DECREMENT
- RJMP LatchI
- CHECK_DECREMENT:
- SBIC PINA, 3
- RJMP StopWatch
- Decrement:
- cp R18,R17
- BREQ LOOP_TO_15;
- SUB R18,R19
- LatchD:
- CALL LDelay
- SBIC PINA, 3
- RJMP StopWatch
- RJMP LatchD
- StopWatch:
- SBIC PINE, 6
- RJMP Main
- Loop:
- CALL Timer
- CALL Increment
- CALL Output
- SBIC PINE, 6
- RJMP Main
- RJMP Loop
- RJMP Main
- LOOP_TO_0:
- LDI R18, 0
- RET
- LOOP_TO_15:
- LDI R18, 15
- RET
- Increment:
- ADD R18, R19
- cp R18,R20
- BREQ LOOP_TO_0;
- RET
- Timer:
- LDI R25,255
- L_outer1:
- LDI R26, 255
- L_middle1:
- LDI R27, 25
- L_inner1:
- DEC R27
- BRNE L_inner1
- DEC R26
- BRNE L_middle1
- DEC R25
- BRNE L_outer1
- RET
- LDelay:
- LDI R25, 25
- L_outer:
- LDI R26, 25
- L_middle:
- LDI R27, 25
- L_inner:
- DEC R27
- BRNE L_inner
- DEC R26
- BRNE L_middle
- DEC R25
- BRNE L_outer
- RET
- Output:
- LDI R21, 0
- ADD R21, R18
- LDI R30, 0
- LDI R28, 4 ;Loop 4 times
- Loop1:
- CLC
- ROR R21
- ROL R30
- DEC R28
- BRNE Loop1
- COM R30 ;Output needs to be complemented, output is active low
- OUT PORTD, R30 ;Outputs the answer to the LEDs
- RET
- Placezero:
- CLC
- ROR R21
- ROL R18
- RET
- Placeone:
- CLC
- ROR R25
- ROL R18
- RET
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement