Exibindo caracteres ASCII em LCD de 16 × 2 caracteres usando o microcontrolador Microchip PIC16f877

Neste tutorial vou imprimir/exibir caracteres ASCII em LCD 16×2 usando o microcontrolador pic16f877. O LCD tem interface com o microcontrolador pic no modo de 8 bits. O código é escrito em linguagem c. O compilador C de alta tecnologia é usado para compilar código e o código é escrito em Mp-lab ide. A interface do LCD 16 × 2 com o microcontrolador pic e a exibição de caracteres no LCD é muito fácil. Apenas a parte um pouco complexa é como gerar/exibir caracteres ASCII no LCD. Bem, você não precisa gerar caracteres ASCII, eles já estão presentes no controlador LCD 16×2 (HD44780) Ram, como outros caracteres e números. Você só precisa saber como invocar os caracteres ASCII para serem exibidos na tela LCD.

Requisitos do projeto

  • Microcontrolador Microchip Pic16f877.
  • LCD de 16×2 caracteres.
  • Cristal 20MHz
  • Fonte de energia
  • Placa de pão ou Design PCB (placa de circuito impresso)
  • Potenciômetro/resistor variável (para definir o contraste do LCD)
Se você é novo na área de microcontroladores e LCDs e não sabe sobre a pinagem do LCD, o funcionamento e a estrutura interna do LCD, siga os seguintes tutoriais. Eles irão esclarecê-lo sobre o funcionamento do LCD 16×2. Você aprenderá como exibir caracteres no LCD? Diferença entre comandos e dados enviados para lcd? Também explicará como usar o LCD no modo de 4 e 8 bits.

Pinagem e funcionamento de LCD 16 × 2

Como exibir dados em LCD 16×2?

Diferença b/w lcd no modo de 4 bits e 8 bits?

O diagrama do circuito do projeto é fornecido abaixo. A porta B do microcontrolador Pic16f877 é conectada com pinos de dados de LCD 16×2. Isso significa que a Porta-B é usada para enviar comandos e dados para LCD 16×2. Sinais de controle LCD (leitura/gravação, ativação, seleção de registro) são fornecidos usando bits individuais da Porta-D. Todas as outras conexões são conexões normais, aplicando +5 volts ao microcontrolador e ao LCD. Você pode ver o diagrama de circuito fornecido abaixo. Rs (seleção de registro) está conectado ao pino nº 6 da porta D. En (Ativar) está conectado ao Pino nº 7 da Porta-D. O pino de leitura/gravação está aterrado. O LCD sempre permanecerá no estado de gravação desde que aterramos o pino R/W.

LCD 16x2 com interface em modo de 8 bits com microcontrolador pic

LCD 16×2 com interface em modo de 8 bits com microcontrolador pic

Código do projeto

Chegando à parte do código, primeiro incluo o arquivo de cabeçalho htc.h. Se você estiver usando um compilador C de alta tecnologia, sempre inclua esta biblioteca, esta biblioteca é necessária para ser incluída em cada projeto que será compilado com o compilador C de alta tecnologia. Ele contém as diretivas dos compiladores, etc. Em seguida, é definida a frequência do oscilador que é 20 MHz. Em seguida, os pinos individuais da Porta-D são definidos. Esses pinos são usados ​​para fornecer sinais de controle ao LCD. A função delay é usada para gerar algum atraso arbitrário quando necessário. A função lcdcmd está enviando comandos para lcd com sinais de controle. A função display está enviando dados para o LCD com sinais de controle. A função lcdint está inicializando nosso lcd (modo de 8 bits, display ligado, cursor desligado, etc.).

Instrução importante

Na função principal, duas instruções invocam caracteres ascii. A instrução i=j/10; onde j é inteiro (int) e eu é caractere (char). Agora, quando dividimos dois números inteiros e salvamos o resultado na variável character(char). O resultado é armazenado em formato ascii. Desde j é 0 e dividir 0 por 10 dá 0. Então eu contém 0, valor ASCII igual a zero.
O caractere ascii 0 está presente no endereço 0x30. Para ir para o endereço 0x00, negue 0x30 de 0x30. A instrução i=i-0x30; está fazendo o mesmo trabalho. Primeiro i contém 0x30 depois de executar i=i-0x30 i contém 0x00. Portanto, estamos no endereço inicial dos caracteres ASCII. Agora aumente o endereço um por um e exiba o caractere ASCII associado a esse endereço na tela LCD.

Endereços de caracteres ASCII HD44780

Endereços de caracteres ASCII HD44780
Observação que os caracteres ascii do controlador HD44780 diferem dos caracteres ascii padrão. O controlador HD44780 contém caracteres ASCII no formato fornecido no lado direito. Alguns endereços também estão nulos. Portanto, não fique confuso ao ver os caracteres abaixo exibidos em sua tela LCD.
O total de dígitos na memória RAM do LCD 16 × 2 é 256. Então decidi exibir todos eles. Ele contém caracteres ASCII, numéricos, alfabéticos e especiais (chinês). Alguns endereços são nulos, portanto nada será exibido na tela LCD nesses endereços.
Baixe os arquivos do projeto, código e simulação. O código é escrito em linguagem c usando software Mp-lab e compilador c de alta tecnologia. A simulação é feita no Proteaus 8.0. Por favor, dê-nos o seu feedback sobre o projeto.
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.