Arne Basic 2k - Experiência 3 - Enviando mensagens para um LCD serial


LCD's seriais

Um LCD serial é ideal para uso com microcontroladores por vários motivos. Acredito que dois deles são o fato do mesmo consumir apenas um único pino de I/O, usado para comunicação e o outro é que o desenvolvedor não precisa desperdiçar precisosos bytes da área de programa de um microcontrolador com as rotinas de configuração do LCD.

Nesta terceira experiência demonstrarei como  conectar um LCD Serial ao Arne Basic 2k, e como enviar menagens para o mesmo. A conexão entre o LCD e o Arne Basic 2k pode ser vista na figura abaixo. Como você mesmo pode ver, trata-se também de um circuito extremamente simples. Eu recomendo a montagem do mesmo em uma matriz de contatos, afinal você está apenas "testando" um circuito.


Neste circuito foi usado o pino +5V como entrada para a tensão de alimentação (5VDC) do Arne Basic 2k. Lembre-se que ao usar este pino a tensão não deve sofrer nenhuma variação para "cima" maior que 10%, ou seja, tensões maiores que 5,5VDC neste pino serão fatais para o microcontrolador. Você deve estar se perguntando: porque não foi usado o pino Vin com 12VDC como nas experiências anteriores e o pino +5V para alimentar o LCD serial? Infelizmente a corrente máxima tolerável pelo regulador presente no Arne Basic 2k é de 80mA e o LCD Serial tem um consumo maior que isso, principalmente as versões com Back Ligth. Para alimentar o LCD, use uma fonte externa de 5VDC +/- 10% (a mesma que você usará para alimentar o microcontrolador).

Um outro detalhe importante sobre esta experiência é que a mesma foi feita para o LCD Serial do Arne. Sendo assim, se você for utilizar um outro qualquer vai precisar alterar os comandos para o LCD presentes no programa que será dado a seguir. A configuração do LCD Serial do Arne é bem simples: JP1 fechado, JP3 configurado para entrada TTL (fechar com o strap o pino central e pino esquerdo). Ah, e não se esqueça que o LCD não possui proteção contra inversões. Qualquer inversão de polaridade pode ser fatal! Use o esquema elétrico acima para ligar seu LCD ao circuito (a conexão acima é válida apenas para o LCD Serial do Arne!).

Você pode ver o código fonte logo abaixo. Este programa é mais um excelente exemplo da estrutura da Linguagem de programação BASIC utilizada pelo compilador BASCOM-AVR. Eu imagino que você deva estar ansioso por exemplos mais, digamos, "complexos". Mas como diria o sr. Miagui - "Calma Daniel San!!! Primeiro pinta cerca lado de dentro... agora pinta cerca lado de fora, depois aprender karatê né!!!" ehehehehe

Código fonte:
'*******************************************************************************
'* Programa teste_lcdser_ArneBasic2K.BAS
'* Desenvolvido por Márcio José Soares - Arne
'* Exemplo de uso do LCD serial Arne Robotics
'*
'* Compilador usado: BASCOM AVR 1.11.9.8 Demo
'*
'* Obs.: Este foi desenvolvido para rodar com o Arne Basic 2k
'*******************************************************************************
 
'*******************************************************************************
'Configs necessários ao microcontrolador
$crystal = 10000000
$regfile = "attiny2313.dat"
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
$baud = 9600
 
'*******************************************************************************
'Declaração das subrotinas
Declare Sub Msg_display()
Declare Sub Apaga_disp()
Declare Sub Muda_linha(byval Ln As Byte)
 
'*******************************************************************************
'Variáveis globais
Dim Command As Byte
Dim Clrd As Byte
Dim Lin1 As Byte
Dim Lin2 As Byte
 
'*******************************************************************************
'Configura portas
Config Portb = &B11111111                         'PortB é saída
Config Portd = &B11111110                         'PortD é saída, exceto PD0
 
Led Alias Portb.0
 
'*******************************************************************************
'Início do programa
 
Command = 254
Clrd = 1
Lin1 = 3
Lin2 = 2
 
Wait 3                                            'tempo para iniciar sistemas
Printbin &HFE                                     'envia comando para LCD
Waitms 10                                         'aguarda
Printbin &H07                                     'muda velocidade para 19200
Waitms 10
Baud = 19200                                      'seta baud a 19200 bps
 
Call Msg_display()                                'msg principal
Wait 2                                            'espera para iniciar
 
'*******************************************************************************
'Laço principal
Do
 
   Toggle Led                                     'pisca led
   Waitms 500
 
Loop
 
 
'*******************************************************************************
'Subrotina para apagar LCD
Sub Apaga_disp()
 
   Printbin &HFE                                  'coloca LCD em modo comando
   Waitms 10                                      'espera processar
   Printbin &H01                                  'envia comando
   Waitms 10
 
End Sub
 
'*******************************************************************************
'Subrotina para muda de linha no LCD
Sub Muda_linha(byval Ln As Byte)
 
   Printbin &HFE                                  'coloca LCD em modo comando
   Waitms 10                                      'espera processar
 
   If Ln = 1 Then                                 'se ln é 1
      Printbin &H03                               'comando HOME
   Elseif Ln = 2 Then                             'mas se for 2
      Printbin &H02                               'muda para linha 2
   End If
 
   Waitms 10
 
End Sub
 
'*******************************************************************************
'Subrotina para imprimir mesagem no LCD
Sub Msg_display()
 
   Waitms 100                                     'aguarda qualquer processamento anterior
   Call Apaga_disp()                              'apaga display
   Print "LCD Serial 19200";                      'insere mensagens
   Call Muda_linha(2)
   Print "  ARNE ROBOTICS ";
 
End Sub
 
 
End                                               'final do programa


Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.