Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .org 0000
- jmp START
- .org INT0addr
- rjmp BCD
- .org INT1addr
- jmp MUX
- .def Raknare = r20
- START:
- ;Set stack
- ldi r16,HIGH(RAMEND)
- out SPH,r16
- ldi r16,LOW(RAMEND)
- out SPL,r16
- ;Ladda rotation på display
- ldi r16,$03
- out DDRB,r16
- ldi r16,$00
- out PORTB,r16
- ENABLE_INTERUPTION:
- ldi r16,(1<<INT0)|(1<<INT1)
- out GICR,r16
- ldi r16, (1<<ISC01)|(1<<ISC00)|(1<<ISC11)|(1<<ISC10)
- out MCUCR,r16
- RESET:
- ldi r16,HIGH(TIME)
- mov ZH,r16
- ldi r16,LOW(TIME)
- mov ZL,r16
- ;Clear Display
- ldi r16,$0
- st Z,r16
- std Z+1,r16
- std Z+2,r16
- std Z+3,r16
- ;PORT FÖR DISPLAy
- ldi r16,$FF
- out DDRA,r16
- sei
- DONE:
- rjmp DONE ; Så att programmet fortsätter att leva
- BCD:
- ;Pusha sreg
- push r16
- in r16, SREG
- push r16
- ldi r16,HIGH(TIME)
- mov ZH,r16
- ldi r16,LOW(TIME)
- mov ZL,r16
- ld r22,Z ; LADDA IN VÄRDEN FRÅN TIME
- ldd r23,Z+1
- ldd r24,Z+2
- ldd r25,Z+3
- ADD_SEC_ENTAL: ; BÖRJA ADDERA
- inc r22
- cpi r22,10
- brne ALL_DONE
- ldi r22,0 ; ÄR SIFFRAN 10, LADDA MED 0 OCH GÅ NER OCH FYLL PÅ TIOTAL
- ADD_SEC_TIOTAL:
- inc r23
- cpi r23,6
- brne ALL_DONE
- ldi r23,0
- ADD_MIN_ENTAL:
- inc r24
- cpi r24,10
- brne ALL_DONE
- ldi r24,0
- ADD_MIN_TIOTAL:
- inc r25
- cpi r25,6
- brne ALL_DONE
- ldi r25,0
- ALL_DONE:
- st z,r22
- std z+1,r23 ; STOREA NYA VÄRDET
- std z+2,r24
- std z+3,r25
- pop r16
- out SREG,r16
- pop r16
- reti
- MUX:
- ;Pusha sreg
- push r16
- in r16, SREG
- push r16
- inc Raknare
- sbrc Raknare,2
- ldi Raknare,0
- call SHOW
- out PORTB, Raknare
- pop r16
- out SREG,r16
- pop r16
- reti
- SHOW:
- ldi r16,HIGH(TIME)
- mov ZH,r16
- ldi r16,LOW(TIME)
- mov ZL,r16
- add ZL,Raknare ; Pekar ut var i time
- ld r16,Z
- push ZH
- push ZL
- ldi ZH, HIGH(TAB * 2)
- ldi ZL, LOW(TAB * 2)
- add ZL, r16
- lpm r16,Z
- pop ZL
- pop ZH
- out PORTA,r16
- ret
- TAB:
- .db $FC,$60,$DA,$F2,$66,$B6,$BE,$E0,$FE,$F6
- .dseg
- TIME: .byte 4
- DISPLAY: .byte 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement