Pic 16f84a LCD LM017L (HD44780) (8 bit)

merakettim

Öpözel Üye :*
Katılım
19 Tem 2006
Mesajlar
2,534
Beğeniler
549
Yaş
30
Şehir
leşim ANKARA:)
#1
Açıklama:cerezforumlcd.h kütüphanesinden fonksiyonlarımızı çekiyoruz ve dilediğimizi yazıyoruz:D
Sadece LM017L'de değil,HD44780 entegreli tüm LCD'lerde çalışır.

Kullanılan derleyici-editör:MPLAB IDE v8.30 editöründe ve PICC v8.05PL2 derleyicisi ile derlendi.

cerezforumlcd.h
PHP:
#include <stdio.h>
#include <string.h>
void bekle (int ns){
unsigned int say;
for(say=0;say<ns;say++){
#asm
NOP
#endasm
}
}
cerezforumlcdTemizle(void){
bekle(0xb0);
PORTB=0x01;
RA2=0;
RA1=0;
RA0=1;
#asm
NOP
#endasm
RA0=0;
}
cerezforumlcdReset(void)
{
unsigned char cx;
for(cx=0;cx<3;cx++)
{
bekle(0xb0);
RA2=0;
RA1=0;
PORTB=0x30;
RA0=1;
#asm
NOP
#endasm
RA0=0;
}
}
cerezforumlcdIkiSatirAktif(void)
{
bekle(0xb0);
PORTB=0x38;
RA2=0;
RA1=0;
RA0=1;
#asm
NOP
#endasm
RA0=0;
}
void cerezforumlcdDisplayOn(void)
{
bekle(0xb0);
PORTB=0x0e;
RA2=0;
RA1=0;
RA0=1;
#asm
NOP
#endasm
RA0=0;
}
void cerezforumlcdCursor1ArtanModda(void)
{
bekle(0xb0);
PORTB=0b00000000;
RA2=0;
RA1=0;
RA0=1;
#asm
NOP
#endasm
RA0=0;
}
void cerezforumlcdPrintf(const char *yazi)
{
unsigned int say,len;
len=strlen(yazi);
for(say=0;say<len;say++)
{
bekle(0xb0);
RA2=1;
RA1=0;
PORTB=yazi[say];	
RA0=1;
#asm
NOP
#endasm
RA0=0;
}
}
program.c
PHP:
#include <pic.h>
#include "cerezforumlcd.h"

void main (void)
{
char a[25];
PORTA=PORTB=TRISA=TRISB=0;
cerezforumlcdReset();
cerezforumlcdTemizle();
cerezforumlcdIkiSatirAktif();
cerezforumlcdDisplayOn();
cerezforumlcdCursor1ArtanModda();
cerezforumlcdTemizle();
cerezforumlcdPrintf("www.cerezforum.com =>                               	           merakettim ;) :D");
for(;;);
}
 

Benzer konular

Top