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. |