Problema com LCD Proteus?

S

SphinX

Guest
Salam, eu uso LM016L Módulo LCD no proteus e este código do driver LCD. O código funciona muito bem para escrever algo na primeira linha apenas. O código funciona bem em linha1 e linha2 no teste real. Porque é que o ROW2 não é trabalhar em Proteus? Obrigado
 
Isto é porque a maioria dos módulos od LCD são muito sensíveis à temporização de procedimento de inicialização. Eu acho que, Proteus caras só tentou refletir isso no seu modelo de LCD. Eu também tive alguns problemas como o seu com módulos de LCD reais - em algum momento após inicialização pelo uC ele liga em 1 linha de modo, em algum momento - em 2 linhas de modo. Da minha experiência, aqui é o melhor procedimento de inicialização: LCD RS = Delay 0 15 ms LCD DATA = 3 LCD Delay Strobe 5 ms LCD Strobe Delay 100 nós LCD Strobe Atraso 5 ms LCD Comando Write 0x38 ... Você pode usar o temporizador HW ou postou em algum lugar aqui no fórum programa para calcular 8051 com atraso loops habituais. Boa sorte! Ace-X.
 
Salam, Aqui está o arquivo contém o DSN. E Keil código-fonte com o arquivo hex. Como eu disse antes que o código funciona bem na minha placa de teste. Mas no proteus a linha 0 só funciona. Obrigado
 
Sphinx É surpreendente ouvir que o aplicativo funciona muito bem com a sua placa de teste! Não deveria. Para a função que você fez aqui em baixo calcular uma posição de caractere usando linha e coluna. Isso é bom. Mas em LM016L a 2 ª fila começa a se basear 40h deslocamento (hexadecimal) não a 40 (decimal), como você forneceu, e isso é errado! vazio gotoxy (BYTE r, BYTE c) {RS = 0; DATA_BUS = 0x02; EnableLCD (255); para (r = r * 40 + c, c = 0; c
 
Cobre Salam, Muito obrigado por tua AVISO IMPORTANTE! [Color = green] Eu percebi que você é novato aqui, doou-o com 20 pontos extra! :) [/Color] Mas eu não uso LM016L Módulo LCD. Eu uso LCD Compatível com HD44780. Pensei LM016L é o mesmo. Vou testar seu tomrrow modificação, e tenho certeza que ele vai trabalhar. Finalmente, por que esse código funciona bem com o meu LCD! Esfinge
 
Esfinge Salam Você é muito gentil. Obrigado. Eu vou fazer bom uso com estes. :) Há muitos controladores alfanuméricos que muitos fabrica pretensão de ser totalmente compatível com o Hitachi HD44780. Futaba, Samsung e muitos outros têm desenvolvido bastante cheaps controladores para enfrentar com o aumento da demanda, quando os fabricantes de LCD HD44780s genuínos não têm sido mais disponível. Penso que a razão o código funciona bem com o seu LCD pode ser o controlador não é totalmente compatível. Você pode querer olhar para este link que relata algumas fichas controladores. http://www.eio.com/datashet.htm Cu
 
[Quote = Ace-X] Isto é porque a maioria dos módulos LCD od são muito sensíveis ao tempo do procedimento de inicialização. Eu acho que, Proteus caras só tentou refletir isso no seu modelo de LCD. Eu também tive alguns problemas como o seu com módulos de LCD reais - em algum momento após inicialização pelo uC ele liga em 1 linha de modo, em algum momento - em 2 linhas de modo. Da minha experiência, aqui é o melhor procedimento de inicialização: LCD RS = Delay 0 15 ms LCD DATA = 3 LCD Delay Strobe 5 ms LCD Strobe Delay 100 nós LCD Strobe Atraso 5 ms LCD Comando Write 0x38 ... Você pode usar o temporizador HW ou postou em algum lugar aqui no fórum programa para calcular 8051 com atraso loops habituais. Boa sorte! Ace-X. [/Quote] Obrigado. Atrasos de temporização funciona bem para mim, nas rotinas de escrita lcd .. Cumprimentos
 
Salam, eu uso LM016L Módulo LCD no proteus e este código do driver LCD. O código funciona muito bem para escrever algo na primeira linha apenas. O código funciona bem em linha1 e linha2 no teste real. Porque é que o ROW2 não é trabalhar em Proteus? Graças
O resto das respostas foi tudo errado sobre row2 no caso de LM016L. Você também pode ir para a linha 2 no Proteus, mas as configurações do LCD-intialization deve estar correto. Agora, se tudo está bem, você pode alternar no visor. Então, aqui estão as instruções. Tente isto: $ 3C (aqui RS = 0 modo de instrução), $ F0 (aqui RS = 0 modo de instrução), $ C0 (aqui RS = 1, o modo de conjunto de dados). $ 3C-Conjuntos de interface de dados lengthk (DL), número de linhas de exibição (N), e fonte de caracteres (F)-veja mais em HD44780 datasheet. $ F0-Define tela inteira (D) liga / desliga, cursor de ligar / desligar (C), e piscar de caráter posição do cursor (B)-veja mais em HD44780 datasheet. $ C0-salto para a próxima linha (endereço $ 80 + $ 40 = $ C0)-veja mais em HD44780 datasheet. Testado e 100% funciona muito bem!
 

Welcome to EDABoard.com

Sponsor

Back
Top