Keyped ve Seri veri Hakkında bi soru

Başlatan kayanay, 22 Ağustos 2003, 11:31:56

kayanay

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

axanc

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..  :?
Uzmanlık: Bilgisayar Müh. öğrenci Derleyici: PicBasic Pro Compiler Ver. 2.45 Program: Proteus 6.2.5 ve MCSP