Dados seriais recebidos do PC e exibidos em LCD 16×2 usando a porta UART do microcontrolador 8051(89c51,89c52)

Neste post vou explicar como receber dados seriais do seu pc e exibi-los em LCD 16×2 usando a porta UART do microcontrolador 89c51. Os componentes de hardware do projeto incluem máx232(conversor / shifter de nível TTL para RS232), microcontrolador 8051 (89c51,89c52) e lcd 16 × 2. No lado do software, estou usando o terminal Hyper. Hyper terminal é um programa através do qual é possível transmitir e receber dados serialmente usando portas seriais de um computador pessoal (PC). O PC padrão possui duas portas seriais, db-9 e db-25. A essas portas seriais normalmente conectamos nossas impressoras, aparelhos de fax, mouse e joysticks.
O diagrama de blocos de transferência de dados entre a porta UART do microcontrolador 89c51 e o computador pessoal é mostrado abaixo.

Transferência serial de dados do microcontrolador 8051 entre o pc e a porta uart 89c51

Transferência serial de dados do microcontrolador 8051 entre o pc e a porta uart 89c51

Conversor de nível Max232

O microcontrolador 8051 funciona em lógica TTL e os computadores pessoais funcionam em lógica rs232. Para a comunicação entre os dois módulos, os dados devem estar na mesma lógica de portadora. Conseqüentemente, um shifter de nível como max232 é usado. Que transforma os dados de uma lógica para outra antes de enviá-los ao receptor. Para saber mais sobre o transceptor max232, sua pinagem, funcionamento e requisitos de energia, siga o tutorial abaixo.

Max232 pinagem e funcionamento

8051(89c51,89c52) Microcontrolador UART

O microcontrolador 89c51 Uart é usado para receber dados do PC. Você também pode usar qualquer outro microcontrolador da série 8051, como o microcontrolador 89c52. Mas primeiro certifique-se de que ele tenha UART (transmissor receptor assíncrono universal) integrado para comunicação serial.

A porta 1 do nosso microcontrolador é usada como porta de saída. Ele está conectado aos pinos de dados do LCD 16×2.

  • O pino nº 5 da porta 3 está conectado ao pino rs (seleção de registro) do LCD 16 × 2.
  • O pino nº 6 da porta 3 está conectado ao pino en (habilitar) do LCD 16 × 2.
  • O pino nº 7 da porta 3 está conectado ao pino rw (leitura e gravação) do LCD 16 × 2.

Se você não sabe como fazer a interface do LCD com o microcontrolador 8051 (89c51,89c52), aqui estão alguns bons tutoriais, basta percorrê-los.

  • LCD 16×2 FUNCIONANDO.
  • DIFERENÇA ENTRE COMANDOS E ENVIO DE DADOS PARA LCD.
  • EXIBINDO SEU NOME NO LCD usando MICROCONTROLADOR 8051.

dados seriais recebidos do hiperterminal do pc e exibidos no lcd usando o microcontrolador 8051 (89c51,89c52)

dados seriais recebidos do hiperterminal do pc e exibidos no lcd usando o microcontrolador 8051 (89c51,89c52)

Código do projeto

Na função principal, chamei primeiro o lcdinit função para inicializar o lcd 16×2. Todos os comandos usados ​​na função são discutidos profundamente nos tutoriais acima. Em seguida, o modo temporizador é definido. TMOD=0x02 significa que Timer1, Mode2 (recarga automática de 8 bits) está selecionado. TH1=0xFD na verdade, é um temporizador de um byte alto, fornecer o valor hexadecimal 0xFD para TH1 significa definir a taxa de transmissão de comunicação entre o microcontrolador 8051 e o PC para 9600 bps (bits por segundo). SCON=0x50 na verdade, está definindo nosso formato de bits de dados seriais Total = 8 Bit de dados com 1 bit de início e 1 bit de parada. TR1=1 significa executar o temporizador um. Todo esse fenômeno com o significado completo das afirmações (SCON,TMOD,TH) é discutido nos dois tutoriais abaixo. Como calcular os valores da taxa de transmissão também é discutido.

  • COMO ENVIAR DADOS SERIAL PARA PC (Hiperterminal).
  • REGISTROS DE TEMPORIZADOR DE 8051(89c51).

enquanto(RI==0) está verificando o sinalizador RI (interrupção de recebimento) continuamente. Este sinalizador torna-se automaticamente um quando 8051(89c51,89c52) recebe quaisquer dados em seu pino RXD(P3^0). quando RI se torna 1, significa que temos um byte de dados em nosso registro SBUF (buffer serial). Então, na próxima instrução, peguei o Byte do registro SBUF e salvei-o em dados variáveis ​​​​de caractere. Então deixei o sinalizador RI baixo novamente para receber o próximo byte. O Byte que salvei na variável de dados agora é enviado para a função de display para ser exibido no LCD 16×2.

Baixe os arquivos do projeto e o código (Hex, c++) compilado usando o compilador keil uvision 4. Se você sentir algum problema no código ou não entender alguma instrução do código, basta escrever suas dúvidas abaixo. O código é testado em hardware e está livre de qualquer bug. << />iv>
Dados seriais recebidos do PC

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

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