Exibir caracteres personalizados do idioma urdu em LCD 16 × 2 usando o microcontrolador pic16f877a

Neste projeto, vou exibir caracteres do idioma urdu em um lcd 16×2 usando o microcontrolador pic16f877. Urdu é um idioma falado no Paquistão, Índia e Bangladesh. Os lcds de caracteres geralmente contêm um controlador Hitachi HD4478. O HD4478 contém apenas o conjunto de caracteres ASCII e podemos exibir apenas os caracteres predefinidos que estão presentes nele. Ele contém caracteres numéricos, ingleses e chineses.
Portanto, para exibir caracteres urdu, devemos saber como criar caracteres personalizados e exibi-los em LCD de 16 × 2 caracteres. Exibir caracteres personalizados feitos por você mesmo no LCD requer conhecimento sobre a estrutura interna do LCD. Para exibir caracteres personalizados como urdu, você deve conhecer lcd CG-RAM, registros de dados e comandos.

Um tutorial bom e perfeito para entender a estrutura interna da ram lcd CG (character generated) é dado abaixo. Como é um tópico muito importante e longo, não é possível explicá-lo aqui. Recomendo que você faça o tutorial abaixo, caso contrário, você não conseguirá entender o código do projeto abaixo.

  • Como gerar caracteres personalizados em cg ram de lcd de 16×2 caracteres.

Requisitos do Projeto

  • Microcontrolador Pic 16f877
  • LCD 16×2
  • Cristal 20 MHz
  • Potenciômetro (para definir o contraste do LCD)
O LCD é interligado com o microcontrolador Pic16f877 no modo de 8 bits. Os pinos de dados do LCD são conectados diretamente à Porta B do microcontrolador Pic16f877. Os sinais de controle do LCD rw (leitura-gravação), rs (seleção de registro) e en (habilitação) são fornecidos pelos pinos RD5, RD6 e RD7 da Porta D do microcontrolador Pic16f877. O diagrama de circuito do projeto é fornecido abaixo.

Caracteres urdu personalizados exibidos em lcd usando microcontrolador pic

Caracteres urdu personalizados exibidos em lcd usando microcontrolador pic

Chegando à parte do código. O código é escrito em linguagem c usando MP-lab ide. O compilador c de alta tecnologia é usado para compilar o código. O arquivo de cabeçalho htc.h é importado primeiro. Este arquivo deve ser incluído em todos os projetos que usam o compilador c de alta tecnologia para compilar o código. Então a frequência do cristal é definida, que é 20 MHz (20e6 = 20^6). Os pinos de controle do LCD são definidos em seguida. Então a função delay é definida, que está gerando algum atraso arbitrário para nós. A função lcdcmd está enviando comandos para o registro de comando do lcd. A função dispaly está enviando dados para o registro de dados do lcd. Se você não sabe sobre dados do lcd e registro de comando e seu funcionamento, aqui está um bom tutorial.

  • Dados LCD e registros de comando funcionando

A função Lcdint está inicializando nosso lcd. O tutorial dado uma linha acima também abrange a fase de inicialização do lcd e os comandos de inicialização. Na função principal, estou gerando alfabetos urdu em CG-RAM e, em seguida, eles são exibidos em um lcd 16×2. Primeiro, dou o comando lcdcmd(0x40) para lcd. Este 0x40 é o endereço inicial do CG-RAM. Em seguida, os pontos individuais do primeiro caractere urdu “i” são enviados para lcd. O próximo 0x48 é enviado para lcd. Que é o segundo endereço do caractere CG-RAM. Os pontos do segundo caractere são então enviados para CG-RAM do lcd. Este processo se repete para os oito caracteres. Em seguida, todos os oito caracteres gerados personalizados são invocados para exibição no lcd, apenas fornecendo seus endereços (0 a 8).
Depois de exibir os primeiros oito caracteres urdu, os próximos oito são construídos em CG-RAM e exibidos no LCD. Este processo se repete até que o último caractere seja exibido. Após o último caractere, o lcd começa do início e começa a exibir caracteres urdu desde o início.

Observação: A primeira linha do LCD exibe continuamente “Urdu Characters!” e os caracteres urdu são exibidos na segunda linha. Cada caractere urdu é exibido no LCD com uma lacuna de matriz do outro. Como o LCD 16×2 tem 16 coulombs, 8 caracteres com uma separação de matriz dos outros são exibidos perfeitamente na segunda linha do LCD.

Código/Arquivos do Projeto

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.