Ir ao conteúdo
  • Cadastre-se

Caracter no LCD


meca.07

Posts recomendados

meca.07

tem de ver o modelo desse modulo lcd e qual o controlador

depois baixar o datasheet do controlador

neste vai ver os caracteres predefinidos e ver se o "♥" esta incluido

caso nao esteja o controlador deve permitir definir novos caracteres

veja no datasheet deve aparecer algo como

Character Generator RAM (CGRAM): 64¥8 bits (8 characters¥5¥8 dots)

estude esta parte e vera como pode definir esse caractere

Link para o comentário
Compartilhar em outros sites

Isso não depende do compilador, e sim, da tabela de fontes do controlador do próprio LCD.

Dos que eu tenho aqui, nenhum deles tem esse símbolo do coração, logo, a solução vai ser desenhar o símbolo e depois de desenhado, usá-lo como um caractere comum.

Veja esse documento se te ajuda:

http://www.reniemarquet.cjb.net/arquivos/lcd_car20050119.pdf

[]´s

Link para o comentário
Compartilhar em outros sites

Isso não depende do compilador, e sim, da tabela de fontes do controlador do próprio LCD.

Dos que eu tenho aqui, nenhum deles tem esse símbolo do coração, logo, a solução vai ser desenhar o símbolo e depois de desenhado, usá-lo como um caractere comum.

Veja esse documento se te ajuda:

http://www.reniemarquet.cjb.net/arqu...ar20050119.pdf

[]´s

Fala Mauricio, então sei disso, porém no caso dela, se estiver usando o MikroC, existe um applet dentro dele que permite criar o codigo para desenho de caracteres personalizados, por isso perguntei o compilador.

abs.

Link para o comentário
Compartilhar em outros sites

void cria_caractere_cedilha()

{

lcd_16x2_send(INST,0b01000000); //Seta o endereco 0 da CGRAM (Character Generator RAM)

lcd_16x2_send(DATA,0b00001110); //| *** |

lcd_16x2_send(DATA,0b00010001); //| * * |

lcd_16x2_send(DATA,0b00010000); //| * |

lcd_16x2_send(DATA,0b00010000); //| * |

lcd_16x2_send(DATA,0b00010101); //| * * *|

lcd_16x2_send(DATA,0b00001110); //| *** |

lcd_16x2_send(DATA,0b00010000); //| * |

lcd_16x2_send(DATA,0b00000000); // Linha destinada ao cursor. Deve ser sempre 0

}

Envia um byte de instrucao pro LCD:

0b010XXXXX

sendo XXXXX o endereco da CGRAM que voce deseja armazenar o caractere.

Se nao me engano sao 8 enderecos disponiveis (0 a 7) e depois envia 8 bytes de dados, cada byte signicando uma linha do caractere a ser criado

Ex: 0b000XXXXXX, sao utilizados somente os 5 ultimos bits, pois há 5 colunas por caractere no LCD, e os 3 bits mais significativos devem ser 0.

------------------------------

Exemplo para gravar o caractere cedilha no endereco 0 da CGRAM:

instrucao: pino RS = 0

dado: pino RS = 1

enviar instrucao 0b01000000 (seleciona endereco 0 da CGRAM)

enviar dado 0b00001110

enviar dado 0b00010001

enviar dado 0b00010000

enviar dado 0b00010000

enviar dado 0b00010101

enviar dado 0b00001110

enviar dado 0b00010000

enviar dado 0b00000000

Pronto, até aqui foi gerado o caractere no endereco 0 da CGRAM.

Agora para fazer o display mostrar o cedilha basta enviar um byte de dados com o valor 0. EX: Se você tivesse gravado o cedilha no endereco 3 da CGRAM, você deveria enviar um byte de dados (RS=1) com o valor 3 (decimal) para o LCD mostrar o caractere.

01110

10001

10000

10000

10101

01110

10000

00000

Tirei os 3 bits mais significativos, tenta encontrar o cedilha aí, que está formado pelos bits 1.

Use o mesmo procedimento para criar os caracteres que desejar.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...