@ DEVICE pic16F648a
@ DEVICE pic16F648a, WDT_OFF
@ DEVICE pic16F648a, PWRT_OFF
@ DEVICE pic16F648a, PROTECT_OFF
@ DEVICE pic16F648a, MCLR_OFF
@ DEVICE pic16F648a, INTRC_OSC_NOCLKOUT
TRISA=0 'A portu çıkış olarak ayarlandı.
TRISB=%01110000 'B portu çıkış olarak ayarlandı.
OPTION_REG.7=1
DEFINE LCD_DREG PORTB 'LCD data bacakları hangi port a baglı?
DEFINE LCD_DBIT 0 'LCD data bacakları hangi bitten baslıyor?
DEFINE LCD_RSREG PORTA 'LCD RS Bacagı Hangi Port a baglı ?
DEFINE LCD_RSBIT 2 'LCD RS bacagı Hangi Bite baglı ?
DEFINE LCD_RWREG PORTA
DEFINE LCD_RWBIT 4
DEFINE LCD_EREG PORTA 'LCD Enable Bacagı Hangi Port a baglı?
DEFINE LCD_EBIT 3 'LCD Enable Bacagı Hangi bite baglı ?
DEFINE LCD_BITS 4 'LCD 4 bit mi yoksa 8 bit olarak baglı?
DEFINE LCD_LINES 2 'LCD Kaç sıra yazabiliyor
DEFINE LCD_COMMANDUS 2000 'Command delay time in us
DEFINE LCD_DATAUS 50 'Data delay time in us
symbol up=portb.5
symbol down=portb.6
symbol ok=portb.7
pause 200
LOW PORTa.4
LCDOUT $FE,1 'Önce Ekranı siliyoruz.
LCDOUT " LCD LCD " 'ilk sıra baştan itibaren yazdırıyoruz. Aslında bu komutu başka bir şekilde de yazabiliriz, şöyle LCDOUT $FE,2,"BASIC DERSLERI"
LCDOUT $FE,$C0," TEST TEST "
LCDOUT $FE,$86, "MERHABA"
pause 1000
LCDOUT $FE,$02, " LCD "
LCDOUT $FE,$C3," TEST "
pause 2000
LCDOUT $FE,1
ibo:
pause 10
if up=1 then
LCDOUT $FE,$80," yukari "
pause 100
endif
if down=1 then
LCDOUT $FE,$80," asagi "
pause 100
endif
if ok=1 then
LCDOUT $FE,$80," ok "
pause 100
endif
gosub ibo