@ DEVICE pic16F84A, WDT_OFF
@ DEVICE pic16F84A, PWRT_ON
@ DEVICE pic16F84A, PROTECT_OFF
@ DEVICE pic16F84A, XT_OSC
TRISA=0
TRISB=0
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
PAUSE 200
LCDOUT $FE,1
BASLA:
LCDOUT $FE,2,"TONMAİSTERDAL"
GOTO BASLA
END
Şimdi kardeş bu devren şeman doğru ama döngüye biraz yorum yapalım
Pic 4 Mhz yani üç aşağı beş yukarı bir komut asm ile bakarsak 1 mikro saniye basicde de olsun olsun 5 mikro saniye yada 15 mikro saniye tam olarak ne kadar süre olduğunu ben bilmiyorum bayağıda tartışıldı bu konu yani basicde komutların süre karşılığı...
döngüyü bu şekilde yapmışsın basla demiş hemen altına yazı yazdırmış hemen altına da goto basla yazmışsın yani pic basla ya geliyo ve basla ile goto basla arasında daimi olarak pic in enerjisini kesene kadar LCDOUT $FE,2,"TONMAİSTERDAL" komutunu işlemeye devam ediyor yani daimi olarak bu yazıyı ekrana yazabilmek için ekranı devamlı olarak taramaya alıyor.
Bu durumda 4 Mhz ile bu komutu basla ile goto basla arasında daimi olarak işlemesi bir nevi ekranda karelerin çıkmasına neden olacaktır. oysa sen bu programı şu şekilde yaparsan sorun çıkmayacaktır.
@ DEVICE pic16F84A, WDT_OFF
@ DEVICE pic16F84A, PWRT_ON
@ DEVICE pic16F84A, PROTECT_OFF
@ DEVICE pic16F84A, XT_OSC
TRISA=0
TRISB=0
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
PAUSE 200
LCDOUT $FE,1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''buraya dikkat lütfen'''''''''''''''''''''''''''''''''''
LCDOUT $FE,2,"TONMAİSTERDAL"' burada $FE,2, değil de LCDOUT $FE,1,"TONMAİSTERDAL" şeklinde yaparsan daha doğru olacaktır.EKRANI SİLİP O YAZIYI YAZDIRACAKSIN VE ALT TARAFINDAKİ KOMUTA GEÇECEKTİR...
BASLA:'''''''''''''''''''''''BURADA DA PİC KENDİ BAŞINA SONSUZ DÖNGÜYE GİRECEK
GOTO BASLA ' DEVAMLI BAŞLAYA GİT...DOLAYISI İLE YAZIYI SADECE 1 KERE YAZACAK VE SONSUZ DÖNGÜYE GİRECEKTİR.birde o 200 milisaniyelik süreyi 500 mili saniye yaparsan daha iyi olur.
END
En doğru olacağı :
@ DEVICE pic16F84A, WDT_OFF
@ DEVICE pic16F84A, PWRT_ON
@ DEVICE pic16F84A, PROTECT_OFF
@ DEVICE pic16F84A, XT_OSC
TRISA=0
TRISB=0
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
PAUSE 500
LCDOUT $FE,1
LCDOUT $FE,1,"TONMAİSTERDAL"
BASLA:
GOTO BASLA
END