
.include "m162def.inc"
;*********************** DEKLARACJE PORTOW *************************
.equ DANA = PORTC
.equ STER = PORTD
.equ CS3 = 0
.equ CS2 = 1
.equ RST = 2
.equ CS1 = 3
.equ E = 4
.equ RW = 5
.equ RS = 6
.equ SYS_FREQ = 16
.def A = R22
.cseg
;zainicjalizuj stos:
ldi R16, high(RAMEND)
out SPH, R16
ldi R16, low(RAMEND)
out SPL, R16
;ustaw porty w ATMEGA162:
ldi R16, 0xFF
out DDRC, R16
out DDRD, R16
ldi A, 0x3F ;Dispaly 1 ON
rcall instrukcje_CS1
ldi A, 0x3F ;Dispaly 2 ON
rcall instrukcje_CS2
ldi A, 0x3F ;Dispaly 3 ON
rcall instrukcje_CS3
ldi A, 0x41 ;ustaw Y
rcall instrukcje_CS1
ldi A, 0xB9 ;ustaw strone (0 do 7)
rcall instrukcje_CS1
ldi A, 0xC1 ;ustaw X
rcall instrukcje_CS1
ldi A, 0x01 ;dana
rcall dane_CS1
dane_CS1:
cbi STER, E
cbi STER, RS
sbi STER, CS1
cbi STER, CS2
cbi STER, CS3
out DANA, A
cbi STER, RW
cbi STER, E
nop
sbi STER, E
ldi R16, 200 ;2ms opoznienia
rcall czekaj_us
cbi STER, E
ret
instrukcje_CS1: ;instrukcje_CS2 i CS3 to samo tylko inna linia CS aktywna
cbi STER, E
sbi STER, RS
cbi STER, CS1
sbi STER, CS2
sbi STER, CS3
cbi STER, RS
out DANA, A
cbi STER, RW
cbi STER, E
nop
sbi STER, E
ldi R16, 200 ;2ms opoznienia
rcall czekaj_us
cbi STER, E
ret