Bom, aqui vai mais uma dificuldade que estou enfrentando e gostaria de pedir a ajuda dos colegas novamente.
Estou tentando esvrever a segunda linha no lCD 16 x 2 mas só aparece a primeira linha.
Estou usando o KIT do AT89S8252 onde o LCD fica ligado ao port P1.
No proteus funciona direitinho com o port P0 (I/O mapeado) mas quando utilizo o port P1 só escreve na primeira linha. Por que será que não funciona?
Vou colocar as partes principais do programa:
LCALL LIMPA
MOV DPTR,#MSG1
LCALL ESCREVE
LCALL LIMPA1
MOV DPTR,#MSG2
LCALL ESCREVE
ESCREVE:
MOV A,#0
MOVC A,@A+DPTR
CJNE A,#'&',CONTINUA
RET
CONTINUA:
LCALL GRAVA
INC DPTR
JMP ESCREVE
GRAVA:
CLR EN
MOV P1,A
LCALL DELAY
SETB EN
RET
LIMPA:
CLR RS
MOV A,#80H
LCALL GRAVA
SETB RS
RET
LIMPA1:
CLR RS
MOV A,#10H
LCALL GRAVA
MOV A,#0C0H
LCALL GRAVA
SETB RS
RET
ORG MSG1
DB ' 1ª LINHA &'
ORG MSG2
DB ' 2º LINHA &'