Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .NOLIST
- .INCLUDE "m128def.inc"
- .LIST
- INICIALIZACE:
- .DEF presun = r16
- .DEF kontrola = r17
- .DEF timer = r18
- .DEF opakovani = r19
- ldi presun, low(RAMEND)
- out spl, presun
- ldi presun, high(RAMEND)
- out sph, presun
- KLAVESNICE:
- ldi presun, 0x0F
- out DDRB, presun
- .MACRO tabkontrola
- ldi presun, @0
- lpm kontrola, Z+
- out PORTB, presun
- call DELAY
- in presun, PINB
- cp presun, kontrola
- brne TNIC
- jmp @1
- TNIC:
- inc opakovani
- cpi opakovani, @2
- brne @3
- .ENDMACRO
- KONT:
- ldi opakovani, 0
- ldi Zl, low(TKONTROLA*2)
- ldi Zh, high(TKONTROLA*2)
- KONT1:
- tabkontrola 0xFE, OUT1, 4, KONT1
- KONT2:
- tabkontrola 0xFD, OUT2, 8, KONT2
- KONT3:
- tabkontrola 0xFB, OUT3, 12, KONT3
- KONT4:
- tabkontrola 0xF7, OUT4, 16, KONT4
- jmp KONT
- TKONTROLA:
- .DB 0xEE, 0xDE, 0xBE, 0x7E
- .DB 0xED, 0xDD, 0xBD, 0x7D
- .DB 0xEB, 0xDB, 0xBB, 0x7B
- .DB 0xE7, 0xD7, 0xB7, 0x77
- OUT1:
- jmp OUT1
- OUT2:
- jmp OUT2
- OUT3:
- jmp OUT3
- OUT4:
- jmp OUT4
- DISPLEJ:
- ldi presun, 0xFF
- out DDRB, presun
- ldi presun, 0b000_111_00
- out DDRD, presun
- SVIT:
- ldi presun, 0xE1
- out PORTB, presun
- ldi presun, 0b000_100_00 ;100,101,110,111
- out PORTD, presun
- call DELAY
- jmp SVIT
- //0(C0),1(F9),2(A4),3(B0),4(99),5(92),6(82),7(F8),8(80),9(90,A(88),B(80),C(C6),D(C0),E(86),
- //F(8E),G(82),H(89),I(F9),J(E1),L(C7),O(C0),P(8C),S(92),Y(99),
- DELAY:
- ldi timer, 0xFF
- TIME:
- dec timer
- brne TIME
- ret
- //.MACRO sviceni bude pro kazdy znak svuj (out PORTB, 0x03) primo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement