// usando display de lcd
//
// autor: Aguivone
// DATA: 24/07/2009
// Descrição: lcd no modo 8 bits exemplo
//
//
// ****************************************************************************************************************************************************
#include <16F877A.h>
#ignore_warnings 203, 216
#fuses NOWDT,XT, PUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4M)
/////////////////////////display lcd//////////////////////////////////////////////////////////////////
#define RS PIN_E0
#define RW PIN_E1
#define EN PIN_E2
//função principal////////////////////////////////////////////////////////////////////////////////////
void main(void)
{
////inicializa display
delay_ms(15);
output_low(RW);
output_low(RS);
output_high(EN);
output_b(0x38);//modo de 8 bits
delay_us(2);
output_low(EN);
delay_ms(5);
output_high(EN);
output_b(0x38);//modo de 8 bits
delay_us(2);
output_low(EN);
delay_ms(5);
output_high(EN);
//output_b(0x0E);//cursor ligado
output_b(0x0C);//cursor desligado
delay_us(2);
output_low(EN);
delay_ms(5);
output_high(EN);
output_b(0x06);//direção de movimento
delay_us(2);
output_low(EN);
delay_ms(5);
output_high(EN);
output_b(0x01);//limpa display
delay_us(2);
output_low(EN);
delay_ms(5);
//prepara envio
delay_ms(15);
output_bit(RS,0);// envia comando
output_high(EN);
output_b(0x80); //poe na linha 1 posicão 0
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b(' '); //poe na linha 1 posicão 1
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('P'); //poe na linha 1 posicão 2
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('r'); //poe na linha 1 posicão 3
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('o'); //poe na linha 1 posicão 4
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('g'); //poe na linha 1 posicão 5
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('r'); //poe na linha 1 posicão 6
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('a'); //poe na linha 1 posicão 7
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('m'); //poe na linha 1 posicão 8
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('a'); //poe na linha 1 posicão 9
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,0);// envia comando
output_high(EN);
output_b(0xC0); //poe na linha 2 posicão 0
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b(' '); //poe na linha 2 posicão 1
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b(' '); //poe na linha 2 posicão 2
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('e'); //poe na linha 2 posicão 3
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('x'); //poe na linha 2 posicão 4
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('e'); //poe na linha 2 posicão 5
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('m'); //poe na linha 2 posicão 6
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('p'); //poe na linha 2 posicão 7
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('l'); //poe na linha 2 posicão 8
delay_us(2);
output_low(EN);
delay_us(5);
output_bit(RS,1);// envia dados
output_high(EN);
output_b('o'); //poe na linha 2 posicão 9
delay_us(2);
output_low(EN);
delay_us(5);
}
MODO 4 bits
#include <16F877A.h>
#fuses NOWDT,XT, PUT, NOPROTECT, DEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4M)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
# include
void main ()
{
lcd_init ();
lcd_gotoxy (1,1);
lcd_putc ( " usando lcd :"); //escreve na primeira linha
lcd_putc ( "\n teste");//esccreve na linha 2
delay_ms(1000);
lcd_putc ( " \f "); //manda apagar
delay_ms(500);
lcd_putc ( " ok"); //manda voltar 1 pos
}
// \ f Limpar lcd
// \ n Ir ao início da segunda linha
/*
d0 en
d1 rs
d2 rw
d4 D4
d5 D5
d6 D6
d7 D7 */
Nenhum comentário :
Postar um comentário
olá,digite aqui seu comentário!