Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .org 0x32
- count: .DB 0x7e, 0x30, 0x6d, 0x79, 0x33, 0x5b, 0x5f, 0x70, 0x7f, 0x7b, 0x77, 0x1f, 0x4e, 0x3d, 0x4f, 0x47
- .org 0x100
- start:
- ldi r20, 0x00
- ldi r23, 0x00
- call setup
- ldi r24, 164 ;FAHRENHEIT
- subi r24, 0x20 ;odejmij 32 stopnie
- mov r16, r24
- lsr r16
- mov r17, r16
- lsr r17
- lsr r17
- lsr r17
- lsr r17
- add r16, r17
- mov r24, r16
- mov r20, r24
- call display
- rjmp start
- set_pointer:
- ldi zl, low(2*count)
- ldi zh, high(2*count) ;z to wskaźnik na tablicę count
- ret
- setup:
- push r16
- ldi r16, $00
- out portd, r16 ;ustaw same 0 na porcie d
- ldi r16, $ff
- out ddrd, r16 ;ustaw portd jako wyjście
- out ddrc, r16 ;ustaw portc jako wyjście portc steruje anodami
- call set_pointer
- pop r16
- ret
- display:
- push r16
- push r17
- push r18
- push r19
- push r22
- ldi r22, 20 ;ODŚWIEŻ 10 RAZY
- loop10:
- ldi r17, 0x08
- call set_pointer
- ;SEKCJA 4 i 3
- com r17
- out portc, r17
- com r17
- lsr r17
- mov r19, r23
- andi r19, 0x0F
- add zl, r19
- call print ;WYPISZ
- call set_pointer ;USTAW WSKAŹNIK NA 0
- call wait ;CZEKAJ
- mov r19, r23
- andi r19, 0xF0
- swap r19
- add zl, r19
- com r17
- out portc, r17
- com r17
- lsr r17
- call print ;WYPISZ
- call set_pointer ;USTAW WSKAŹNIK NA 0
- call wait ;CZEKAJ
- ;SEKCJA 2 i 1
- com r17
- out portc, r17
- com r17
- lsr r17
- mov r19, r20
- andi r19, 0x0F
- add zl, r19
- call print ;WYPISZ
- call set_pointer ;USTAW WSKAŹNIK NA 0
- call wait ;CZEKAJ
- mov r19, r20
- andi r19, 0xF0
- swap r19
- add zl, r19
- com r17
- out portc, r17
- call print ;WYPISZ
- call set_pointer ;USTAW WSKAŹNIK NA 0
- call wait ;CZEKAJ
- dec r22
- brne loop10
- pop r22
- pop r19
- pop r18
- pop r17
- pop r16
- ret
- print:
- lpm r18, z ;WYPISZ
- com r18 ;WYPISZ
- out portd, r18 ;WYPISZ
- ret
- wait: ;ustawione na 1/20s
- push r16
- push r17
- push r18
- ldi r16, 4;tu było 2
- loop1:
- ldi R17, 20 ;tu było 20
- loop2:
- ldi R18, 10 ;tu było 100
- loop3:
- dec R18
- brne loop3
- dec R17
- brne loop2
- dec R16
- brne loop1
- pop r18
- pop r17
- pop r16
- ret
- wait1s: ;ustawione na 1s
- push r16
- push r17
- push r18
- ldi r16, 20 ;tu było 2
- loop4:
- call display
- ldi R17, 25 ;tu było 20
- loop5:
- ldi R18, 5;tu było 100
- loop6:
- dec R18
- brne loop6
- dec R17
- brne loop5
- dec R16
- brne loop4
- pop r18
- pop r17
- pop r16
- ret
- end:
- rjmp end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement