#include <htc.h>
__CONFIG(FOSC_XT & WDTE_OFF & PWRTE_OFF);
#define D0 PORTBbits.RB0
#define D1 PORTBbits.RB1
#define D2 PORTBbits.RB2
#define D3 PORTBbits.RB3
#define D4 PORTBbits.RB4
#define D5 PORTBbits.RB5
#define D6 PORTBbits.RB6
#define D7 PORTBbits.RB7
#define en PORTAbits.RA0
#define rs PORTAbits.RA1
#define rw PORTAbits.RA2
void enable() {
_delay(1);
en=1;
_delay(2);
en=0;
}
void inicijalizuj() {
TRISA=0;
TRISB=0; //postavimo sve pinove da budu izlazni
PORTB=0;
_delay(50000); //po datasheet-u potrebno je vise od 30ms nakon uspostavljanja Vdd
//D5- podesavamo function set
PORTB=0b00111000; //D4- mod sa dve linije, D3- 5x7 dots
enable();
_delay(50); //sacekati vise od 39 us
//D3- kontrola display-a on/off
PORTB=0b00001111; //D2- display on, D1- kursor on, D0- blink on
enable();
_delay(50); //sacekati vise od 39us
PORTB=0b00000001; //clear display
enable();
_delay(2000); //sacekati vise od 1.53ms
//mod upisivanja
PORTB=0b00000110;
enable();
_delay(50000);
PORTB=0;
}`
void main(void) {
inicijalizuj();
while(1){};
}
Kada ovo simuliram u Proteusu sve funkcionise kako treba, medjutim kada probam na protobordu LCD uopste ne reaguje.
Kada na izlaz PIC-a umesto LCD stavim diodu ona blinka, sto znaci da PIC radi svoj posao prema prilozenom kodu.
Moze li neko da prekontrolise ovaj kod ili da mi da neki proveren hex, da bih znao da li mi je LCD uopste ispravan? Mada bi trebalo da jeste jer je nov.
Pisao sam i neke funkcije koje ispisuju karaktere, ali to sada nije bitno s obzirom da je LCD potpuno mrtav(nista ne svetli).
Pozdrav!