Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .NOLIST
- .INCLUDE "m128def.inc"
- .LIST
- init:
- .def podminka = r16
- .def reg = r17
- .def pocet = r18
- .def timer = r19
- .def krok = r20
- .def cas = r21
- ldi reg, 0x0F ;prvni 4 bity jsou vystupni (radky), druhe 4 jsou vstupni (sloupce)
- out ddrb, reg
- ldi reg, 0xFF
- out ddre, reg
- ldi reg, low(RAMEND)
- out spl, reg
- ldi reg, high(RAMEND)
- out sph, reg
- pocatek:
- ldi Xh, high(0x0120)
- ldi Xl, low(0x0120)
- ldi pocet, 0
- test:
- cpi pocet, 15
- brne test_1rad
- jmp init_displej
- test_1rad:
- ldi reg, 0b11111110 ;0 aktivuji prvni radek
- out portb, reg
- in reg, pinb
- ulozeni_EE: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0xEE
- brne ulozeni_DE
- st X+, reg
- inc pocet
- jmp test
- ulozeni_DE: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0xDE
- brne ulozeni_BE
- st X+, reg
- inc pocet
- jmp test
- ulozeni_BE: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0xBE
- brne ulozeni_7E
- st X+, reg
- inc pocet
- jmp test
- ulozeni_7E: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0x7E
- brne test_2rad
- jmp test
- test_2rad:
- ldi reg, 0b11111101 ;0 aktivuji prvni radek
- out portb, reg
- in reg, pinb
- ulozeni_ED: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0xED
- brne ulozeni_DD
- st X+, reg
- inc pocet
- jmp test
- ulozeni_DD: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0xDD
- brne ulozeni_BD
- st X+, reg
- inc pocet
- jmp test
- ulozeni_BD: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0xBD
- brne ulozeni_7D
- st X+, reg
- inc pocet
- jmp test
- ulozeni_7D: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0x7D
- brne test_3rad
- st X+, reg
- inc pocet
- jmp test
- test_3rad:
- ldi reg, 0b11111011 ;0 aktivuji prvni radek
- out portb, reg
- in reg, pinb
- ulozeni_EB: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0xEB
- brne ulozeni_DB
- st X+, reg
- inc pocet
- jmp test
- ulozeni_DB: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0xDB
- brne ulozeni_BB
- st X+, reg
- inc pocet
- jmp test
- ulozeni_BB: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0xBB
- brne ulozeni_7B
- st X+, reg
- inc pocet
- jmp test
- ulozeni_7B: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0x7B
- brne test_4rad
- st X+, reg
- inc pocet
- jmp test
- test_4rad:
- ldi reg, 0b11110111 ;0 aktivuji prvni radek
- out portb, reg
- in reg, pinb
- ulozeni_E7: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0xE7
- brne ulozeni_D7
- st X+, reg
- inc pocet
- jmp test
- ulozeni_D7: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0xD7
- brne ulozeni_B7
- st X+, reg
- inc pocet
- jmp test
- ulozeni_B7: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0xB7
- brne ulozeni_77
- st X+, reg
- inc pocet
- jmp test
- ulozeni_77: ;cislice z prava urcuji aktivni sloupec
- cpi reg, 0x77
- breq dal
- jmp test
- dal:
- cpi pocet, 5
- breq init_displej
- jmp test
- init_displej:
- ldi Xh, high(0x0120)
- ldi Xl, low(0x0120)
- cteni:
- ld reg, X+
- cpi reg, 0xEE
- brne d1
- jmp svitN1
- d1:
- cpi reg, 0xDE
- brne d2
- jmp svitN2
- d2:
- cpi reg, 0xBE
- breq svitN3
- cpi reg, 0xED
- breq svitN4
- cpi reg, 0xDD
- breq svitN5
- cpi reg, 0xBD
- breq svitN6
- cpi reg, 0x7D
- breq svitF1
- cpi reg, 0xEB
- breq svitN7
- cpi reg, 0xDB
- breq svitN8
- cpi reg, 0xBB
- breq svitN9
- cpi reg, 0x7B
- breq svitF2
- cpi reg, 0xE7
- breq svitHV
- cpi reg, 0xD7
- breq svitN0
- cpi reg, 0xB7
- breq svitKR
- jmp init_displej
- svitN1:
- ldi cas, 0xFF
- nastN1:
- ldi Zl, low(N1*2)
- ldi Zh, high(N1*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokN1
- jmp cteni
- krokN1:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastN1
- jmp krokN1
- svitN2:
- ldi cas, 0xFF
- nastN2:
- ldi Zl, low(N2*2)
- ldi Zh, high(N2*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokN2
- jmp cteni
- krokN2:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastN2
- jmp krokN2
- svitN3:
- ldi cas, 0xFF
- nastN3:
- ldi Zl, low(N3*2)
- ldi Zh, high(N3*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokN3
- jmp cteni
- krokN3:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastN3
- jmp krokN3
- svitN4:
- ldi cas, 0xFF
- nastN4:
- ldi Zl, low(N4*2)
- ldi Zh, high(N4*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokN4
- jmp cteni
- krokN4:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastN4
- jmp krokN4
- svitN5:
- ldi cas, 0xFF
- nastN5:
- ldi Zl, low(N5*2)
- ldi Zh, high(N5*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokN5
- jmp cteni
- krokN5:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastN5
- jmp krokN5
- svitN6:
- ldi cas, 0xFF
- nastN6:
- ldi Zl, low(N6*2)
- ldi Zh, high(N6*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokN6
- jmp cteni
- krokN6:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastN6
- jmp krokN6
- svitF1:
- ldi cas, 0xFF
- nastF1:
- ldi Zl, low(F1*2)
- ldi Zh, high(F1*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokF1
- jmp cteni
- krokF1:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastF1
- jmp krokF1
- svitN7:
- ldi cas, 0xFF
- nastN7:
- ldi Zl, low(N7*2)
- ldi Zh, high(N7*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokN7
- jmp cteni
- krokN7:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastN7
- jmp krokN7
- svitN8:
- ldi cas, 0xFF
- nastN8:
- ldi Zl, low(N8*2)
- ldi Zh, high(N8*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokN8
- jmp cteni
- krokN8:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastN8
- jmp krokN8
- svitN9:
- ldi cas, 0xFF
- nastN9:
- ldi Zl, low(N9*2)
- ldi Zh, high(N9*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokN9
- jmp cteni
- krokN9:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastN9
- jmp krokN9
- svitF2:
- ldi cas, 0xFF
- nastF2:
- ldi Zl, low(F2*2)
- ldi Zh, high(F2*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokF2
- jmp cteni
- krokF2:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastF2
- jmp krokF2
- svitHV:
- ldi cas, 0xFF
- nastHV:
- ldi Zl, low(HV*2)
- ldi Zh, high(HV*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokHV
- jmp cteni
- krokHV:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastHV
- jmp krokHV
- svitN0:
- ldi cas, 0xFF
- nastN0:
- ldi Zl, low(N0*2)
- ldi Zh, high(N0*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokN0
- jmp cteni
- krokN0:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastN0
- jmp krokN0
- svitKR:
- ldi cas, 0xFF
- nastKR:
- ldi Zl, low(KR*2)
- ldi Zh, high(KR*2)
- ldi krok, 0
- dec cas
- cpi cas, 0
- brne krokKR
- jmp cteni
- krokKR:
- lpm reg, Z+
- out porte, reg
- call delay
- call podminka_esc
- inc krok
- cpi krok, 10
- breq nastKR
- jmp krokKR
- N1:
- .DB 0b00001000, 0b10001000, 0b00000100, 0b10000100
- .DB 0b00000010, 0b10000010, 0b01111111, 0b11111111
- .DB 0b00000000, 0b10000000
- N2:
- .DB 0b01000110, 0b11000110, 0b01100001, 0b11100001
- .DB 0b01010001, 0b11010001, 0b01001001, 0b11001001
- .DB 0b01000110, 0b11000110
- N3:
- .DB 0b01000001, 0b11000001, 0b01001001, 0b11001001
- .DB 0b01001001, 0b11001001, 0b01001001, 0b11001001
- .DB 0b00110110, 0b10110110
- N4:
- .DB 0b00001111, 0b10001111, 0b00001000, 0b10001000
- .DB 0b01111100, 0b11111100, 0b00001000, 0b10001000
- .DB 0b00001000, 0b10001000
- N5:
- .DB 0b00101111, 0b10101111, 0b01000101, 0b11000101
- .DB 0b01000101, 0b11000101, 0b01000101, 0b11000101
- .DB 0b00111001, 0b10111001
- N6:
- .DB 0b00111110, 0b10111110, 0b01000101, 0b11000101
- .DB 0b01000101, 0b11000101, 0b01000101, 0b11000101
- .DB 0b00111001, 0b10111001
- F1:
- .DB 0b01111111, 0b11111111, 0b01000001, 0b11000001
- .DB 0b01000001, 0b11000001, 0b01000001, 0b11000001
- .DB 0b01111111, 0b11111111
- N7:
- .DB 0b01000001, 0b11000001, 0b00100001, 0b10100001
- .DB 0b00010001, 0b10010001, 0b00001001, 0b10001001
- .DB 0b00000111, 0b10000111
- N8:
- .DB 0b00110110, 0b10110110, 0b01001001, 0b11001001
- .DB 0b01001001, 0b11001001, 0b01001001, 0b11001001
- .DB 0b00110110, 0b10110110
- N9:
- .DB 0b00100110, 0b10100110, 0b01001001, 0b11001001
- .DB 0b01001001, 0b11001001, 0b01001001, 0b11001001
- .DB 0b00111110, 0b10111110
- F2:
- .DB 0b01111111, 0b11111111, 0b01000001, 0b11000001
- .DB 0b01111111, 0b11111111, 0b01000001, 0b11000001
- .DB 0b01111111, 0b11111111
- HV:
- .DB 0b00101010, 0b10101010, 0b00011100, 0b10011100
- .DB 0b01111111, 0b11111111, 0b00011100, 0b10011100
- .DB 0b00101010, 0b10101010
- N0:
- .DB 0b00111110, 0b10111110, 0b01000001, 0b11000001
- .DB 0b01000001, 0b11000001, 0b01000001, 0b11000001
- .DB 0b00111110, 0b10111110
- KR:
- .DB 0b00010100, 0b10010100, 0b01111111, 0b11111111
- .Db 0b00010100, 0b10010100, 0b01111111, 0b11111111
- .Db 0b00010100, 0b10010100
- podminka_esc:
- ldi podminka, 0xFE
- out portb, podminka
- in podminka, pinb
- cpi podminka, 0x7E
- breq dalp
- ret
- dalp:
- jmp pocatek
- delay:
- ldi timer, 0xFF
- time:
- dec timer
- brne time
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement