olá pessoal eu estou desenvolvendo um projeto de tcc, elaboreio código e o circuito, testei td no proteus e funcionou, porém quando fui testar na protoboard o display liga mas não aparece digito algum.
o código a baixo é um trecho do código original, esse é o q eu estou usando para teste:
;inicialição do display lcd
org 0000h
mov p2, #00h
mov p0, #00h
;controle do display
rst equ p2.0
e equ p2.2
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; inicio do programa
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
clr rst ;reseta reset
mov p0, #0ch ;ativa display s/ cursor
acall envdado
mov p0, #3ch ;estabaelece o numeri da linhas(2)
lcall envdado
;mensagem de iniciando
;============================================================================
lcall linha2 ;vai para proxima linha
mov dptr, #iniciando ;carreba o dptr com bom_dia
lcall escreve ;escreve mensagem da tabela
lcall tempo ;aguarda 2s
lcall tempo
;escreve na segunda tala
;=============================================================================
lcall limpa
mov dptr, #etec
lcall escreve
lcall linha2
mov dptr, #etec2
lcall escreve
lcall linha4
mov dptr, #santos
lcall escreve
lcall tempo
lcall tempo
lcall tempo
;mensagem1
;escreve terceira tela
;==============================================================================
lcall limpa
mov dptr, #tcc ;carreba o dptr com tcc
lcall escreve
lcall linha2 ;vai para proxima linha
mov dptr, #sem ;carreba o dptr com 2sem
lcall escreve
lcall linha4 ;vai para proxima linha
mov dptr,#santos ;carrega dptr com a tabela santos
lcall escreve
lcall tempo
lcall tempo
lcall tempo
;==========================================================================
;================ sub rotinas =================
;enviar dados
;============================================================================
envdado: clr rst ;limpa reset (p/ enviar instruções)
setb e ;seta enable
clr e ;reseta enable
lcall delay ;chama rotina de delay
ret
;pula linha
;=============================================================================
linha2: mov p0, #0c0h ;envia informação p/ portas de dados
lcall envdado ;habilita leitura dos dados p/ display
ret
linha4: mov p0, #0d4h ;envia informação p/ portas de dados
lcall envdado ;habilita leitura dos dados p/ display
ret
;linpando display
;==============================================================================
limpa: clr rst ;reseta o reset
mov p0, #01h ;limpa display retorna cursor ao inicio
lcall envdado
mov p0, #0ch ;ativa display s/ cursor
lcall envdado
mov p0, #3ch ;estabaelece o numeri de linhas(2)
lcall envdado
ret
;frases
;==============================================================================
iniciando: db ' iniciando '
tcc: db ' tcc de eletronica '
sem: db ' 2 sem. de 2017 '
santos: db ' santos-2017 '
etec: db ' etec '
etec2: db 'aristoteles ferreira'
;escreve caracteres no display
;==============================================================================
escreve: setb rst
mov r5,#20 ;indice
volta: clr a ;limpa o acc
movc a,@a+dptr ;mov p/ acc o conteúdo apontado por
;dptr+acc
setb e ;seta enable
mov p0,a ;move para p0 o conteudo de acc
lcall delay
clr e ;reseta enable (escreve)
lcall delay
inc dptr ;incrementa dptr
djnz r5, volta ;decrementa r5 e salta p/ volta
ret
;rotina de delay
;==============================================================================
delay: mov r0, #100
djnz r0,$
ret
;rotina de tempo
;==============================================================================
tempo: mov r0, #8
volta2: mov r1, #250
volta1: mov r2, #250
djnz r2, $
djnz r1, volta1
djnz r0, volta2
ret
end