Ir ao conteúdo
  • Cadastre-se

Display RG2004A (20x4) não aparece digitos


Posts recomendados

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

 

circuito proteus.PNG

Link para o comentário
Compartilhar em outros sites

Eu não domino essa tua linguagem... mas já tentou um "hello Word" neste lcd fora do proteus no circuito real? Está funcionando? Pois precisa de resistores nesses LCDs ou ajuste no potenciômetro na parte de trás se for o caso.. 

 

Se tiver funcionando alguém vai lhe ajudar abaixo, acaso não reveja seu circuito só do lcd.

 

 

Link para o comentário
Compartilhar em outros sites

5 horas atrás, Thiago Lima Lopes disse:

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.

 

circuito proteus.PNG

 

 

Bom, não posso falar nada sobre o display... mas duvido muito esse seu circuito de teclado funcionar na prática ...

 

Paulo

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Não sei quanto ao datasheet mas eu (eu) gosto de colocar um capacitor entre reset e gnd. PSEN e ALE também não gosto de deixar abertos. Se não for lhe pedir muito e achar que deve, consulte o datasheet por gentileza.

13 horas atrás, aphawk disse:

circuito de teclado

...sinistro mesmo...

adicionado 12 minutos depois

ops... capacitor entre reset e vcc...

ds pfv

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...
Em 07/09/2017 às 19:10, aphawk disse:

 

 

Bom, não posso falar nada sobre o display... mas duvido muito esse seu circuito de teclado funcionar na prática ...

 

Paulo

Então paulo, funcionou aq era só o port P0 q tava sem resistores de pullup. Coloquei uma ponte resistiva e ficou uma beleza, depois arrumei uns erros q tinha no programa nesse trecho principalmente :

 

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

 

o "setb e                ;seta enable" saiu dai e foi pro lugar do "lcall delay" q eu deletei.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
2 horas atrás, Thiago Lima Lopes disse:

era só o port P0 q tava sem resistores de pullup

...estranho .. eu podia jurar que vi uma rede RN1 lá no esquema. Acho que foi alucinação...

Ah .. o sinistro.... aqueles bc´s fazem pouco ou nenhum sentido. Como estão ligados, é o mesmo os pinos do tec direto nos ports. Ou estão só como diodos.. que penso ser melhor...

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
Em 05/10/2017 às 14:06, Isadora Ferraz disse:

...estranho .. eu podia jurar que vi uma rede RN1 lá no esquema. Acho que foi alucinação...

Ah .. o sinistro.... aqueles bc´s fazem pouco ou nenhum sentido. Como estão ligados, é o mesmo os pinos do tec direto nos ports. Ou estão só como diodos.. que penso ser melhor...

você viu a RN1 no circuito do proteus, mas na protoboard eu não tinha colocado... monta no proteus e ve se funciona sem os bc"s espertão... ;)

Entendeu o código pelo menos?

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...