Você está na página 1de 5

LCD usando PIC16F877

#include <16f877.h>
#use delay(clock=8000000)
#device adc=16
#FUSES NOWDT
#FUSES HS
for PCD)

//No Watch Dog Timer


//High speed Osc (> 4mhz for PCM/PCH) (>10mhz

#FUSES NOPUT
#FUSES NOBROWNOUT
#FUSES NOLVP
B5(PIC18) used for I/O
#FUSES NODEBUG
#FUSES NOPROTECT

//No Power Up Timer


//No brownout reset
//No low voltage prgming, B3(PIC16) or
//No Debug mode for ICD
//Code not protected from reading

#FUSES NOCPD

//No EE protection

#FUSES NOWRT

//Program memory not write protected

#byte portd=0x08
#byte porte=0x09

#bit rs=porte.2
#bit en=porte.1

void main()
{
set_tris_d(0b00000000);
set_tris_e(0b00000000);
portd=0;
porte=0;

rs=0;

en=1;
portd=0b00111100;
delay_ms(3);
en=0;

en=1;
portd=0b00001100;
delay_ms(3);
en=0;

en=1;
portd=0b00000001;
delay_ms(3);
en=0;

//Coluna superior.

en=1;
portd=0x80;
delay_ms(3);
en=0;

rs=1;

en=1;

portd='K';
delay_ms(3);
en=0;

en=1;
portd='E';
delay_ms(3);
en=0;

en=1;
portd='L';
delay_ms(3);
en=0;

en=1;
portd='B';
delay_ms(3);
en=0;

en=1;
portd='E';
delay_ms(3);
en=0;

en=1;
portd='R';
delay_ms(3);
en=0;

//Coluna inferior.

rs=0;
en=1;
portd=0xC0;
delay_ms(3);
en=0;

rs=1;

en=1;
portd='S';
delay_ms(3);
en=0;

en=1;
portd='E';
delay_ms(3);
en=0;

en=1;
portd='N';
delay_ms(3);
en=0;

en=1;
portd='A';

delay_ms(3);
en=0;

en=1;
portd='I';
delay_ms(3);
en=0;
}

Você também pode gostar