





























Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
A definição de pinos para um display lcd conectado a um microcontrolador pic, incluindo a rotina para enviar um 'nibble' para o lcd. Além disso, são fornecidas informações sobre a inicialização rápida dos pinos de i/o e a definição do pic utilizado.
Tipologia: Notas de estudo
1 / 37
Esta página não é visível na pré-visualização
Não perca as partes importantes!
/* Envio de "Nibble" para o LCD */ /*******************************************************************************/ //Esta rotina lê o "Nibble" inferior de uma variável e envia para o LCD. void envia_nibble_lcd(int dado) { //Carrega as vias de dados (pinos) do LCD de acordo com o nibble lido output_bit(lcd_db4, bit_test(dado,0)); //Carrega DB4 do LCD com o bit DADO<0> output_bit(lcd_db5, bit_test(dado,1)); //Carrega DB5 do LCD com o bit DADO<1> output_bit(lcd_db6, bit_test(dado,2)); //Carrega DB6 do LCD com o bit DADO<2> output_bit(lcd_db7, bit_test(dado,3)); //Carrega DB7 do LCD com o bit DADO<3> //Gera um pulso de enable output_high(lcd_enable); // ENABLE = 1 delay_us(1); // Recomendado para estabilizar o LCD output_low(lcd_enable); // ENABLE = 0 return; // Retorna ao ponto de chamada da função }
/* Envio de Byte para o LCD */ /********************************************************************************/ //Esta rotina irá enviar um dado ou um comando para o LCD conforme abaixo: // ENDEREÇO = 0 -> a variável DADO será uma instrução // ENDEREÇO = 1 -> a variável DADO será um caractere void envia_byte_lcd(boolean endereco, int dado) { output_bit(lcd_rs,endereco); // Seta o bit RS para instrução ou caractere delay_us(100); // Aguarda 100 us para estabilizar o pino do LCD output_low(lcd_enable); // Desativa a linha ENABLE envia_nibble_lcd(dado>>4); // Envia a parte ALTA do dado/comando envia_nibble_lcd(dado & 0x0f);// Limpa a parte ALTA e envia a parte BAIXA do // dado/comando delay_us(40); // Aguarda 40us para estabilizar o LCD return; // Retorna ao ponto de chamada da função }
#define lcd_enable pin_b5 // pino enable do LCD #define lcd_rs pin_b4 // pino rs do LCD #define lcd_db4 pin_b0 // pino de dados d4 do LCD #define lcd_db5 pin_b1 // pino de dados d5 do LCD #define lcd_db6 pin_b2 // pino de dados d6 do LCD #define lcd_db7 pin_b3 // pino de dados d7 do LCD
Exercício 1 – Inicializando o LCD e “Olá Mundo”
Início Define Microcontrolador Define configurações para gravação Define configurações para rotinas de delay Define constantes internas Define e inicializa os PORTs Define bibliotecas para o LCD: envia_nibble_lcd(); envia_byte_lcd(); escreve_lcd(); limpa_lcd(); inicializa_lcd(); Configura o PIC: Reseta PORTs Configura TRIS Inicializa o LCD Escreve na tela Define rotina principal Final Figura 24: Fluxograma para a placa McLAB
//Este é o bloco com as rotinas necessárias para manipular o LCD /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Início Define Microcontrolador Define configurações para gravação Define configurações para rotinas de delay Define constantes internas Define e inicializa os PORTs Define bibliotecas para o LCD: envia_nibble_lcd(); envia_byte_lcd(); escreve_lcd(); limpa_lcd(); inicializa_lcd(); Configura o PIC: Reseta PORTs Configura TRIS Inicializa o LCD Escreve na tela Define rotina principal Final Figura 25: Fluxograma para a placa de testes
// Como não há outra execução, a rotina principal fica vazia while (true) { } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Exercício 2 – A função PRINTF()