Aşağıdaki kodu preteus da simule ettiğimde seri prot TXD bağlıyken keyped çalışmıyor, seri veri gönderdiğimde lcd'ye veri gidiyo.
fakat TXD bağlı değilken keyped basıldığında hem lcd'ye hemde seri veri gönderiyo.
bu ikisini birlikte nası yapabilirm. (yani keyped de tuşa basıldığında lcd'ye ve seri porta veri gönderecek, seri prottan veri geldiğinde de lcd'ye veri gidecek)
yardımlarınızı bekliyorum.
PCON=%00000000
Define LCD_DREG PORTD
Define LCD_DBIT 4
Define LCD_RSREG PORTE
Define LCD_RSBIT 0
Define LCD_EREG PORTE
Define LCD_EBIT 1
Include "modedefs.bas" ' Include serial modes
So var PORTC.6 ' Define serial out pin
Si VAR PORTC.7 ' Define serial in pin
B0 var byte
SW var WORD
ADCON1 = 7
Low PORTE.2 ' LCD R/W low = yazma modu
Pause 50 ' LCD başlamak için bekle
OPTION_REG=0 'PORTB Pulluplar etkin.
TRISB=%11110000 'PORTB giriş çıkış olarak ayarlandı
portb=0
PAUSE 100
lcdout $FE,1 'LCD ekranı sil
lcdout $FE,2,"HAZIR"
anadongu:
SW=0
gosub KONTROLET
Serin Si,T2400,B0 ' B0 = input character
If (B0 < "a") or (B0 > "z") Then GOSUB SERGONDER
goto anadongu
KONTROLET:
' 1. SATIR
portb=%11111110
if portb.4=0 then SW=1
if portb.5=0 then SW=2
if portb.6=0 then SW=3
'******* 2.satır taraması ******
portb=%11111101
if portb.4=0 then SW=4
if portb.5=0 then SW=5
if portb.6=0 then SW=6
'******* 3.satır taraması ******
portb=%11111011
if portb.4=0 then SW=7
if portb.5=0 then SW=8
if portb.6=0 then SW=9
'******* 4.satır taraması ******
portb=%11110111
if portb.4=0 then SW=10
if portb.5=0 then SW=11
if portb.6=0 then SW=12
PORTB=%11111111
if SW <> 0 then GOSUB BASILDI
RESUME
BASILDI:
lcdout $FE,$C0, "Buton No ", DEC SW
PAUSE 100
sEROUT So,T2400,["BASILAN ", #SW,13,10]
RESUME
SERGONDER:
Serout So,T2400,[B0]
'lcdout $FE,1,B0
lcdout $FE,2,B0
PAUSE 100
RESUME
END
selam..
arkadaşım bize devrenin şemasını da verirsen bağlantıları daha kolay yapıp soruna çözüm ararız, sen de hak verirsin ki kimse karşısına programı alıp bacak bağlantılarını çözmek istemez... :)
ben de programı aldım ama ben de şekli çözmekten üşendim.. :?