Há algum tempo nossos leitores vêm solicitando a publicação deste projeto: um display LCD tipo caractere com comunicação serial para uso com microcontroladores e outros dispositivos com comunicação RS-232. Nesta edição o leitor receberá as informações necessárias para montar o seu próprio Display Serial.

 

Nota: O artigo é de uma Eletrônica Total de 2006

 

O Display Seriai Mecatrônica Fácil possui as seguintes características:

- Desenvolvido com microcontrolador Microchip (figura 1 - A)

- LCD tipo caractere com 16 colunas e duas linhas (figura 1 - B)

- Velocidade de comunicação selecionável através de jumper (figura 1 -C)

- Dois formatos para a comunicação (selecionáveis por jumper —figura 1 - D): RS-232 e TTL

- Presença de um "Drive" para comunicação RS-232 (figura 1 - E)

- Tamanho reduzido para facilitar a sua instalação na parte traseira de um LCD (16 x 2)

- Quatro comandos previamente implementados:

- Apaga display;

- Muda para linha 1;

- Muda para linha 2;

- Posiciona cursor na linha/ coluna desejada.

 


| Clique na imagem para ampliar |

 

 

Observando as características apresentadas o leitor perceberá que este display, apesar de simples em sua concepção, poderá atender as suas necessidades. Para o leitor com experiência na linguagem de programação utilizada ficará bem simples a implementação de mais comandos internos, aumentando assim as possibilidades de uso para o display.

 

 

ONDE USAR

 

Um display serial pode ser utilizado em uma série de aplicações. Suas principais vantagens em relação a um display LCD normalmente são:

- Redução do número de pinos de I/O usados de um microcontrolador qualquer para o controle do LCD. Geralmente, para um display LCD comum (paralelo) são necessários de 6 a 11 pinos, contra apenas um único pino para o Display Serial.

- Tamanho reduzido para o programa final. Com o uso de um display serial, o leitor não terá que se preocupar com o desenvolvimento das rotinas de controle do LCD, inicialização do mesmo, etc. Desta forma, o código fonte final fica menor e mesmo os microcontroladores com área de programa reduzida podem se beneficiar da utilização de um LCD Serial.

- Entre outras.

O leitor já deve ter percebido que este display é ideal para aplicações com microcontroladores, mesmo com aqueles que não possuem grandes espaços em sua memória de pro-grama. Porém, ele também pode ser ligado a equipamentos que possuam uma porta de comunicação RS-232 como um PC, por exemplo. Deste modo, pode-se levar informações a uma certa distância a um usuário de uma máquina no chão de fábrica ou a um balcão de atendimento (no caso de uma automação comercial), etc.

As chances de aplicação deste display são grandes e só dependerão da criatividade de cada um.

 

O CIRCUITO

Na figura 2 o leitor pode ver o circuito eletrônico do Display Serial Mecatrônica Fácil. Todo o controle é feito pelo microcontrolador (Cl) PIC16F628 Microchip, um velho conhecido dos nossos leitores. As principais características deste microcontrolador são:

- Memória de programa com 2 kbytes de FLASH;

- 224 bytes de RAM;

- 128 de EEPROM;

- 15 pinos de I/O com dreno de corrente na ordem de 20 mA;

- Dois comparadores Analógicos;

- Dois "timer's" de 8 bits e um de 16 bits;

- Um canal CCP (Capture, Compare and PWM);

- Um canal USART para comunicação RS-232 ou SPI;

- Várias opções para oscilador inclusive interno a 4 MHz;

- Watch Dog Timer (cão de guarda) interno;

- Controle de "Power-on Reset" e "Power-up Timer";

- Proteção de código contra cópias;

- Código de instruções reduzido (35 instruções);8

- Encapsulamento DIP com 18 pinos;

- Etc.

 


 

 

 

Para aqueles que desejam maiores informações sobre este microcontrolador, aconselhamos o "download" do "data sheet" no site do fabricante, www.microchip.com.

Cl2, um MAX232 ou equivalente, permite converter os níveis de tensão do padrão RS-232 de um PC (+1-12 VDC) para o padrão TTL (0-5 VDC) do PIC, e vice-versa. Na figura 3 o leitor tem o diagrama interno do MAX232.

 


| Clique na imagem para ampliar |

 

 

O jumper JP1 permite selecionar a velocidade de comunicação do display. Com o jumper aberto a mesma é de 2400 bps (nível lógico "1" no pino 3 - RA4 - do microcontrolador) e fechado de 9600 bps (nível lógico "0" no pino 3 - RA4 - do microcontrolador).

O jumper JP3 permite selecionar o tipo de "entrada" desejada. Quando na posição 1-2 ela será feita no padrão RS-232 (no caso da ligação do mesmo em um PC), e na posição 2-3 esta será feita no padrão TTL (para a ligação do display em um microcontrolador, por exemplo).

Os capacitores C1 e C6 atuam como "desacopladores" (filtros) para Cl1 e Cl2, respectivamente. Os capacitores C2 a C5 são capacitores auxiliares para Cl2. Eles ajudam na "adaptação" dos níveis de tensão TTL para RS-232 e vice-versa. O "trimpot "P1 permite ajustar o contraste do LCD.

O LCD utilizado deve ser, necessariamente, um LCD tipo caractere com 16 colunas e duas linhas. Acreditamos que um LCD 16x2 é mais que suficiente para a maioria das aplicações de nossos leitores. Nenhum outro é admitido, pois o programa de controle do microcontrolador foi desenvolvido apenas para este tipo. A adaptação de outros tipos de LCD tipo caractere (20x4, 16x4, 16x1, 40x2) é possível, porém o leitor deverá providenciar as devidas alterações no programa para obter sucesso.

A entrada da comunicação, assim como da fonte são feitas através do conector "IN". No pino "1" deste conector deverá ser ligado o sinal TX do transmissor (PC ou microcontrolador), no pino "2" a tensão de alimentação 5 VDC e no pino "3" o GND da comunicação e alimentação.

A alimentação do circuito deverá ser retirada do próprio circuito onde o Display Serial for ligado ou ainda de uma fonte externa com 5 VDC e capacidade de fornecer pelo menos 300 mA de corrente.

 

 

MONTAGEM

Na figura 4 o leitor tem nossa sugestão do layout para a confecção do circuito impresso. O mesmo tem apenas uma face e sua confecção não será trabalhosa. A montagem do circuito em placas tipo padrão ou mesmo em matrizes de contato também é possível. A escolha de um método ou outro é livre.

 


| Clique na imagem para ampliar |

 

 

Utilize suportes para todos os Cls (Cl1 e Cl2). Os capacitores C2 a C5, são do tipo eletrolítico e, portanto, polarizados. Tome cuidado ao montá-los na placa. Os jumpers JP2, JP4 e JP5 podem ser feitos com pequenos pedaços de fio rijo.

O uso de "barra de pinos" para JP1 e JP3 é recomendável. Desta forma, com o uso de "straps" (figura 5) fica fácil a seleção da velocidade (2400 ou 9600 bps) e tipo de entrada admitida (TTL ou RS-232). Na falta deste tipo de terminal, o leitor poderá usar chaves "H-H" comuns.

 


 

 

 

Para o conector "IN", o leitor poderá utilizar também "barra de pinos" 180° ou ainda 90°. Outros tipos de conectores também podem ser experimentados. A montagem de fios diretamente na placa também é possível, sendo esta uma opção bem barata e também muito funcional.

O trimpot P1 deve ser necessariamente do tipo mini horizontal. A montagem de outros tipos na placa dependerá de alterações na mesma.

Aconselhamos o uso de um terminal "barra de pinos fêmea" para o encaixe do LCD a placa (figura 6). Assim, o leitor poderá utilizar o LCD em outras montagens e testes. No caso de desejar uma montagem definitiva, o uso de uma barra de pinos macho 180° com 14 pontos, soldada diretamente ao display e à placa, é uma excelente alternativa. O uso de fios para as ligações também é possível. Use a opção que melhor lhe convier.

 


| Clique na imagem para ampliar |

 

 

Durante a montagem da placa de controle ao LCD, observe que a mesma seja feita de maneira que os componentes da placa de controle fiquem voltados para fora. Oriente-se pela numeração dos pinos de ligação tanto da placa quanto do LCD (14 pinos). Alguns LCDs com "back ligth" possuem dois pinos a mais, e estes devem ser ignorados durante a montagem. Um outro cuidado muito importante é não encostar as placas! Não monte uma placa encostada na outra!!! Tenha muita atenção para evitar curtos-circuitos!!!

O leitor que desejar utilizar um LCD com "backligth" com a placa deverá fazer as ligações do sistema de iluminação à parte, com fios. Para isso basta ligar o "anodo" do "backligth" ao 5 VDC da placa através de um resistor limitador de 56 a 100 Ω com 1/4 Watt de dissipação e o catodo ao GND da placa. Estas ligações podem ser feitas no conector "IN", por exemplo. Lembramos que a ausência do resistor limitador poderá causar a queima do "backligth" do seu display.

O cabo de comunicação serial a ser utilizado com este circuito, no caso do uso do mesmo com equipamentos RS-232 (como um PC, por exemplo) deverá ser construído a partir das informações presentes na figura 7.

 


| Clique na imagem para ampliar |

 

 

No caso da comunicação TTL (entre um circuito microcontrolador e o display, por exemplo) o cabo terá o formato apresentado na figura 8. Trata-se de um cabo simples, com três vias, sem nenhum segredo em sua montagem.

 


| Clique na imagem para ampliar |

 

 

 

O PROGRAMA

 

No site da revista, o leitor encontrará o programa de controle do display. Está disponível no pacote o código-fonte e o arquivo HEX, necessário a gravação do microcontrolador. Desta forma o leitor não precisará recompilar o código-fonte. Isto só será necessário, caso o leitor realize alguma alteração no programa original.

Utilizamos para o desenvolvimento e compilação deste programa o compilador PICC CCS (www.ccsinfo.com). A empresa CCS fornece uma versão demo que poderá ser usada pelo leitor em seus testes. Esta versão possui algumas limitações como os tipos de microcontroladores habilitados e também no tamanho máximo do programa a ser compilado, porém é uma boa alternativa para aqueles que desejam "entrar" no mundo da programação na linguagem C, mais especificamente dedicada aos microcontroladores PIC Microchip.

É importante salientar novamente que o leitor não precisa baixar da Internet o compilador, pois juntamente com o código-fonte, também foi fornecido o arquivo compilado com mesmo nome, porém extensão HEX (DISPLAY_SERIAL.HEX). Este arquivo será utilizado para a gravação do microcontrolador, sendo o uso do compilador necessário apenas para alterações ou estudos.

O código-fonte foi ricamente comentado para ajudar o leitor em sua compreensão. Porém, a seguir abordaremos um pouco o seu funcionamento, descrevendo alguns detalhes do programa.

Na figura 9 temos o fluxograma que descreve a operação do programa desenvolvido para o circuito proposto neste artigo. Ele começa por iniciar o microcontrolador: a direção dos pinos (entrada ou saída), o "Watch Dog Timer" - relógio cão de guarda que evita que o programa se "perca" e assim, que o microcontrolador trave por algum motivo - e a USART do microcontrolador para a comunicação RS-232/TTL com o dispositivo de controle do display (PC, equipamentos com porta RS-232 ou um microcontrolador).

 


| Clique na imagem para ampliar |

 

 

Durante a inicialização, o microcontrolador configura o display LCD e lê o jumper JP1 que determinará a velocidade desejada de trabalho. Se o mesmo estiver aberto, o resistor R1 fornecerá nível lógico "1" ao pino RA4 e o programa manterá a velocidade "default" de 2400 bps. Caso o mesmo esteja fechado, o pino RA4 receberá nível lógico "0" e a velocidade de comunicação será reprogramada para 9600 bps.

É importante que o leitor perceba que, a condição de JP1 só é lida durante o "startup" (ligar) do circuito. Após isso, de nada adiantará alterar a condição de JP1, pois a velocidade não será alterada. Apenas desligando o display, e alterando JP1 que uma nova velocidade poderá ser reprogramada.

Após a inicialização do microcontrolador e LCD, o programa ficará preso na função "main" (principal). Nesta, nada é feito, a não ser a reinicialização do relógio "cão de guarda" (WDT), evitando assim que o mesmo "reset" o microcontrolador desnecessariamente. Pode parecer estranho para os leitores sem muito conhecimento em microcontroladores, mas todas as outras funções presentes no processo são operadas por meio da interrupção da USART.

No programa, a interrupção para tratamento da USART é a mais importante. Sempre que um caractere for recebido pela USART do microcontrolador, ela gera uma interrupção e então o programa é desviado para a função "RDA_isr()". Esta faz o tratamento do dado recebido.

Este tratamento consiste em verificar se o caractere recebido é de controle ou um caractere a ser grafado no display. Para facilitar o controle do display foram inseridos alguns comandos internos. Estes comandos estão apresentados na tabela 1.

 


| Clique na imagem para ampliar |

 

 

Para enviar um "byte" de controle ao display, é necessário enviar antes deste um "byte" de "abertura de comando" FEH (254 decimal). Nenhum comando é aceito, sem que este esteja precedido do "byte" de "abertura de comando". Este "byte" informará ao microcontrolador que o próximo "byte" a ser recebido é, na verdade, um caractere (byte) de controle e não um caractere a ser grafado no display.

Ainda sobre os caracteres de controle, o leitor deverá compreender que eles não são os caracteres ASCII 1, 2, 3, etc. Para grafar o caractere "1" no display o programa de controle (seja ele no PC ou em um microcontrolador) enviará o byte 31 H (49 decimal). Aconselhamos ao leitor estudar atentamente a tabela 1 e se achar necessário, pesquisar a tabela ASCII para compreender melhor o que foi dito.

Um outro detalhe também muito importante sobre o programa é que o compilador CCS insere no código final a ser gravado no microcontrolador (arquivo HEX), comandos que permitem ligar e desligar as interrupções. Isso evita que ao atender uma determinada interrupção, o microcontrolador sofra uma segunda interrupção, e assim consecutivamente. Ou seja, ao entrar em uma função de tratamento de interrupção, todas as outras (e a própria) são desabilitadas. Enquanto as operações dentro da função de tratamento da interrupção atual não se finalizarem, nenhuma outra será chamada ou atendida. Agora o leitor pode entender a importância do "Watch Dog Timer". Caso algo na lógica do programa saia errado, o WDT "resetará" o microcontrolador, reiniciando as operações.

Para os leitores sem conhecimento da linguagem C, aconselhamos a leitura da série "Linguagem C para eletrônica" publicada entre as edições 98 e 103 da revista Eletrônica Total (outra revista da Editora Saber). Nesta série abordamos os fundamentos da linguagem C, passando informações e dicas importantes para o uso da linguagem tanto em PCs corno em microcontroladores. Esta série foi também inserida na revista Saber Especial com CD n° I I (formato PDF) e como se trata de apenas uma revista, os custos para sua aquisição são menores.

 

 

TESTE E USO

 

Após a montagem, seja qual for o método escolhido, aconselhamos uma verificação minuciosa na mesma. Reveja todas as ligações, as soldas, posições dos componentes, etc. Gaste alguns minutos nesta verificação. Não tenha pressa em ligar o circuito. Alguns minutos gastos em uma boa checagem poderão representar a diferença entre o sucesso e o fracasso nesta montagem. Faça o "download" do arquivo HEX disponível em nosso "site" para gravar o microcontrolador. Grave-o e insira-o na placa, através de seu respectivo suporte.

Não entraremos nos detalhes envolvidos na programação do microcontrolador PIC Microchip neste artigo. Acreditamos que o leitor que se propôs a montar o circuito aqui sugerido possui a experiência necessária com a gravação do microcontrolador utilizado. Aos leitores que não têm esta experiência aconselhamos que busquem auxílio técnico com amigos e/ou professores com experiência comprovada no assunto. A leitura de outros números da revista também poderá ajudar o leitor.

Muitas informações foram passadas a respeito da gravação do microcontrolador PIC e uma série sobre o mesmo também já foi apresentada pela revista. Infelizmente não podemos repetir estas informações a cada artigo, pois isto o tornaria grande demais e também "chato e repetitivo" para aqueles que acompanham a revista há algum tempo.

Por isso, aconselhamos ao leitor que tem agora o primeiro contato com a revista, que complete sua coleção na medida do possível. Seguir as dicas sobre livros (e outras dadas a cada artigo) também poderá ajudar o leitor iniciante que deseja adquirir os conhecimentos necessários para realizar nossas montagens com sucesso.

Para testar o circuito o leitor tem duas alternativas: a primeira delas é testar o display ligado a um PC. Para este teste, ele precisa de uma fonte de 5 VDC, um PC com porta RS-232 e um cabo de comunicação RS-232, conforme descrito anteriormente.

1°) Configure os jumpers como segue: JP1 "fechado" (9600 bps) e JP3 na posição 1-2 (RS-232).

2°) Conecte o cabo de comunicação entre o display e o PC, utilizando o conector IN.

3°) Execute o programa "Hyper Terminal" (para ambiente Windows) e configure-o conforme a figura 10.

 


| Clique na imagem para ampliar |

 

 

4°) Ligue a fonte e aguarde surgir o cursor no LCD.

5°) Atue sobre P/ para que o cursor fique com o contraste desejado.

6°) Tecle algo na tela do PC. Nesse momento o leitor verá o caractere teclado grafado no display.

Para testar o comando "Apagar display", por exemplo, basta segurar a tecla "ALT" enquanto digita "0254", solte-a, e em seguida volte a pressioná-la novamente (tecla ALT) enquanto digita "01". Desta forma o programa não enviará os caracteres "2", "5" e "4", além dos caracteres "0" e "1", mas sim os caracteres FEH e 01H, respectivamente.

Um segundo teste consiste em utilizar o circuito com um microcontrolador qualquer. Para nosso pequeno exemplo, selecionamos o microcontrolador Basic Step 1. Monte o circuito proposto na figura 11 e grave no Basic Step 1 o programa sugerido a seguir em "Código-Fonte 1".

 


| Clique na imagem para ampliar |

 

 

Não se esqueça de mudar a posição de JP1 para "aberto", pois o BS-1 não trabalha com taxas de velocidade para comunicação serial acima de 2400 bps e colocar JP3 na posição 2-3 (TTL).

 


| Clique na imagem para ampliar |

 

 

Ligue o circuito. Neste momento, o display serial apresentará a mensagem "Display Serial" na linha 1 e "123456" na linha 2. Estude este programa e veja a diferença entre os caracteres usados para enviar os comandos para apagar o display e troca de linha, com relação aos caracteres grafados na segunda linha. Na figura 12 o leitor poderá ver a montagem para este teste realizada na placa STEP LAB Fácil, publicada na edição passada.

 


| Clique na imagem para ampliar |

 

 

O teste sugerido poderá ser montado em qualquer matriz de contatos ou placa de avaliação já disponível no mercado como a Step Lab e Super Step Lab, ambas da Tato Equipamentos Eletrônicos. A opção pela montagem em nossa versão Step Lab Fácil se deve ao fato de que isso nos permitiu mais um teste (já foram vários) sobre a referida placa (Step Lab Fácil).

 

 

CONCLUSÃO

 

Esperamos que com a montagem deste display nosso leitor possa usufruir de mais uma "ferramenta" em sua bancada de teste e ainda possa ter muitas ideias para o uso da mesma. É nossa intenção ajudá-lo na construção de pequenas "ferramentas", pois estas além de auxiliá-lo em sua bancada, também fornecerão informações preciosas sobre o controle e uso de dispositivos interessantes. Boa montagem e até a próxima!