Процедура инициализации LS020. Подключен по SPI. Выдрал из готового пректа. Когда делал, смотрел в примеры на Си. Если что то еще интересует - помогу.
Код: Выделить всё
lcd_init:
ldi temp1,$01
out spsr,temp1
ldi temp1,$50
out spcr,temp1
cbi portb,res
sbi portb,cs
sbi portb,rs
rcall delay8
sbi portb,res
ldi zl,low(init24*2)
ldi zh,high(init24*2)
ldi temp3,24
lcd_i:
lpm temp2,z+
rcall d_out
dec temp3
brne lcd_i
rcall delay8
ldi temp3,48
lcd_i1:
lpm temp2,z+
rcall d_out
dec temp3
brne lcd_i1
ret
d_out: cbi portd,cs
out spdr,temp2
outw:
in temp1,spsr
sbrs temp1,spif
rjmp outw
sbi portd,cs
ret
delay8:
ldi r16,$a0;ff;78
del_: push r16
clr r16
del8: dec r16
brne del8
pop r16
dec r16
brne del_
ret
init24:
.db $FD,$FD,$FD,$FD,$EF,$00,$EE,$04,$1B,$04,$FE,$FE
.db $FE,$FE,$EF,$90,$4A,$04,$7F,$3F,$EE,$04,$43,$06;pause 8ms
.db $EF,$90,$09,$83,$08,$00,$0B,$AF
.db $0A,$00,$05,$00,$06,$00,$07,$00
.db $EF,$00,$EE,$0C,$EF,$90,$00,$80
.db $EF,$B0,$49,$02,$EF,$00,$7F,$01
.db $E1,$81,$E2,$02,$E2,$76,$E1,$83
.db $80,$01,$EF,$90,$00,$00,$e8,$00