Picproje Elektronik Sitesi

DİJİTAL & ANALOG ELEKTRONİK => Şemalar & Diğer Elk-Elnk.Projeler => Konuyu başlatan: kayanay - 22 Ağustos 2003, 11:31:56

Başlık: Keyped ve Seri veri Hakkında bi soru
Gönderen: kayanay - 22 Ağustos 2003, 11:31:56
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
Başlık: Keyped ve Seri veri Hakkında bi soru
Gönderen: axanc - 29 Ekim 2003, 15:50:59
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..  :?