[an error occurred while processing this directive]
|
Что может быть неправильно. Ну не инициализируется. Понимаю, что всех заебал хуже доктора, но...
Код такой:
;
; Target device: ATmega64L 3.3V
; Using LCD: DV20400 5V
; Programing: AVReal, SPI, Altera ByteBlaster
; Sync.: Int. RC-osc. F=1MHz
; Reset: Int. Power-On-Reset
.INCLUDE "m64def.inc"
.CSEG
.include "definitions.inc"
.ORG 0x0000
rjmp _RESET
_reset: ldi acc,$30 ;acc=r25
ldi bcc,$1 ;bcc=r27
out spl,acc
out sph,bcc
ldi acc,$0ff
out DDRB,acc
out DDRE,acc
init_LCD: call _30_ms_delay
ldi ccc,$20 ;ccc=r28 //4 bit data bus length
call out_instr
call _30_ms_delay
ldi ccc,$28 ;2 line
call out_instr
call _100_mks_delay
ldi ccc,$8
;display - off, cursor - off, blink - off
call out_instr
call _100_mks_delay
ldi ccc,$1 ;clear display
call out_instr
call _30_ms_delay
ldi ccc,$0e ;display - on, cursor - on, blink - off
call out_instr
call _100_mks_delay
ldi ccc,$6 ;increment - on
call out_instr
call _100_mks_delay
cycle: cbi PortE,5
nop
sbi PortE,5
nop
jmp cycle
;---------------
out_instr: mov acc,ccc
swap acc
ori acc,$0c0
out PortB,acc
nop
cbi PortB,6 ;EN
nop
mov acc,ccc
ori acc,$0c0
out PortB,bcc
nop
cbi PortB,6 ;EN
nop
ret
;---------------
_100_mks_delay: ldi acc,20
_100_mks_cycle: dec acc
cpse acc,zero ;register zero always = 0
jmp _100_mks_cycle
ret
;---------------
_1_ms_delay: ldi acc,200
_1_ms_cycle: dec acc
cpse acc,zero
jmp _1_ms_cycle
ret
;---------------
_30_ms_delay: ldi bcc,30
_30_ms_cycle: call _1_ms_delay
dec bcc
cpse bcc,zero
jmp _30_ms_cycle
ret
сторожевой таймер отключен.
фузы, вроде, в порядке.
старшая тетрада данных дисплея подключена к младшей тетраде порта B
сигналы дисплея RS, R/W, EN соответственно к PortB.4, PortB.5, PortB.6
Задержки увеличивал и втрое и вчетверо...
E-mail: info@telesys.ru