Enfim este projeto sai do limbo. Ainda falta uma caixa, mas pelo menos hardware e software estão funcionando.
Eu montei alguns microcomputadores simples de 8 bits (como o 6502 na foto acima), uma das simplificações é que a entrada e saída é serial, para ligação a um terminal. Uma opção é ligar a um PC rodando um emulador de terminal, mas soa a trapaça. Já achei alguns projetos interessantes, mas eu queria algo bem simples. Foi aí que eu achei este diplay alfanumérico.
É um display LCD "comum" mas com 4 linhas de 40 caracteres. Usa o mesmo controlador que os displays 2 x 16, só que precisa de dois controladores pois um sozinho não consegue controlar tantas posições. Do ponto de vista de interface, temos apenas um segundo sinal de enable:
Para controlar o display eu usei um Arduino Pro Mini. É uma opção simples, barata e tem a quantidade de I/Os necessários. As rotinas para interface são uma variação das usadas com o 2 x 16, tomando o cuidado de colocar os caracteres e o cursor no controlador correto conforme a linha atual (selecionar E1 para as duas linhas de cima e E2 para as duas linhas de baixo). Uma complicação foi a rolagem da tela. Eu optei por manter no ATmega uma cópia da tela atual, fazer a rolagem nela e depois enviá-la ao display. Funciona, mas ficou lento e está causando a perda de caracteres se o
A conexão de um teclado PS/2 eu já mostrei antes. A minha rotina faz uma decodificação bem simples dos scancodes enviados pelo teclado, pois só me interessam os códigos ASCII (00 a 7F). Os dois shits e control são tratados, assim como o Caps Lock; Num Lock é ignorado, já que não gero código para as setas. As tabelas usadas são para o layout americano.
O programa principal atualiza o display com os códigos recebidos pela serial (tratando apenas caracteres normal, CR, LF, BS e FF) e envia pela serial os caracteres digitados:
O código do terminal pode ser baixado do github. [https://github.com/dquadros/Terminal4x40]
Nenhum comentário:
Postar um comentário