seri haberleşme problemi

Başlatan minti34, 10 Kasım 2010, 04:05:47

minti34

merhaba arkadaslar.yaptıgım projede kumanda devresi çalışıyor fakat alıcı kısmı çalışmıyor yardımcı olursanız sevinirim.program simülasyonda gayet iyi çalışıyor.arx34 ve atx34 modul kullandım sorunun burda olduğunu düşünüyorum.arkadasların yardımını bekliyorum.
verici
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2010 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 29.10.2010                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
DEFINE HSER_RCSTA 90h     
DEFINE HSER_TXSTA 24h     
DEFINE HSER_SPBRG 25    
DEFINE HSER_BAUD 337      
DEFINE HSER_CLROERR 1       
'****************************************************************

TRISB=%00001111
TRISA=%00010000
TRISD=%00000000
TRISC=%10111110
OPTION_REG.7=0
'*****************************************************************
tus var word
onluk VAR word
onlar var byte
birler var byte
kntrl var byte
SAYI VAR BYTE
X VAR WORD
y var word
SORU VAR BYTE
'******************************************************************
Symbol YATAY_A= PORTB.4
Symbol YATAY_B= PORTB.5
Symbol YATAY_C= PORTB.6
Symbol YATAY_D= PORTB.7
Symbol DIKEY_1= PORTB.1
Symbol DIKEY_2= PORTB.2
Symbol DIKEY_3= PORTB.3
SYMBOL VERICI=PORTA.4
SYMBOL SSORU=PORTC.1
SYMBOL BESLEME=PORTC.0
'******************************************************************

LOW BESLEME
KNTRL=%00000100
'******************************************************************
BASLA:

IF KNTRL=%00000100 THEN
GOSUB SIFIRLA
ENDIF

IF KNTRL=%00000011 OR KNTRL=%00000001 THEN
IF VERICI=0 THEN 
GOSUB GOSTER
WHILE VERICI=0
WEND
ENDIF

IF SSORU=0 THEN
SORU=1
GOSUB GOSTER
WHILE SSORU=0
WEND
SORU=0
ENDIF

portb=254
YATAY_D=0
If DIKEY_1=0 Then
kntrl=%00000100
GOSUB GOSTER
GOTO BASLA
WHILE DIKEY_1=0
WEND
HIGH YATAY_D
Endif 
ELSE

portb=254 

YATAY_A=0
If DIKEY_1=0THEN
Tus=1:GOSUB EKRAN
y=1
While DIKEY_1=0
Wend
Endif


If DIKEY_2=0 Then
Tus=2:GOSUB EKRAN
y=1
While DIKEY_2=0
Wend
Endif

If DIKEY_3=0 Then
Tus=3:GOSUB EKRAN
y=1
While DIKEY_3=0
Wend
Endif

High YATAY_A
YATAY_B=0
If DIKEY_1=0 Then
Tus=4:GOSUB EKRAN
y=1
While DIKEY_1=0
Wend
Endif

If DIKEY_2=0 Then
Tus=5:GOSUB EKRAN
y=1
While DIKEY_2=0
Wend
Endif

If DIKEY_3=0 Then
Tus=6:GOSUB EKRAN
y=1
While DIKEY_3=0
Wend
Endif

High YATAY_B
YATAY_C=0
If DIKEY_1=0 Then
Tus=7:GOSUB EKRAN
y=1
While DIKEY_1=0
Wend
Endif

If DIKEY_2=0 Then
Tus=8:GOSUB EKRAN
y=1
While DIKEY_2=0
Wend
Endif

If DIKEY_3=0 Then
Tus=9:GOSUB EKRAN                    
y=1
While DIKEY_3=0
Wend
Endif 

High YATAY_C
YATAY_D=0
If DIKEY_2=0 Then
    if onluk=1 and y=0 then
    goto basla
    else
    Tus=0:GOSUB EKRAN
    endif
While DIKEY_2=0
Wend
Endif

If DIKEY_3=0 Then
tus=11:gosub basamak
While DIKEY_3=0
Wend
Endif
High YATAY_D
PAUSE 50

 
ENDIF
Goto BASLA

EKRAN:  
    if onluk=1 then
        if y=0 then
            x= tus:GOSUB AL
            SHIFTOUT PORTd.2,PORTd.3,1,[SAYI] 
            HiGH PORTd.0:PAUSEUS 2:LOW PORTd.0
            ONLAR=SAYI
            KNTRL=%00000010
        else
            x= tus:GOSUB AL
            SHIFTOUT PORTd.2,PORTd.3,1,[SAYI] 
            HiGH PORTd.1:PAUSEUS 2:LOW PORTd.1
            BIRLER=SAYI
            KNTRL=%00000011
        endif
    else 
    x= tus:GOSUB AL 
    SHIFTOUT PORTd.2,PORTd.3,1,[SAYI] 
    HiGH PORTd.1:PAUSEUS 2:LOW PORTd.1     
    BIRLER=SAYI
    KNTRL=%00000001
    endif           
pause 50
RETURN

basamak:
if onluk=0 then         
    x= 10:GOSUB AL 
    SHIFTOUT PORTd.2,PORTd.3,1,[SAYI] 
    HiGH PORTd.1:PAUSEUS 2:LOW PORTd.1
    HiGH PORTd.0:PAUSEUS 2:LOW PORTd.0
    onluk=1       
    y=0
    ONLAR=0
    BIRLER=0
    KNTRL=%00000000
    pause 20
else 
 onluk=1        
    x= 10:GOSUB AL 
    SHIFTOUT PORTd.2,PORTd.3,1,[SAYI] 
    HiGH PORTd.1:PAUSEUS 2:LOW PORTd.1
    x=11:gosub al
    SHIFTOUT PORTd.2,PORTd.3,1,[SAYI]
    HiGH PORTd.0:PAUSEUS 2:LOW PORTd.0
    onluk=0
    y=0
    ONLAR=0
    BIRLER=0
    KNTRL=%00000000
    pause 20
endif
return

GOSTER:
HIGH BESLEME
PAUSE 20
IF KNTRL=%00000011 THEN
hserout [REP$AA\5,REP$00\5,REP$FF\5]
hserout ["k","n","y",kntrl,birler,onlar,soru]
hserout ["k","n","y",kntrl,birler,onlar,soru]
hserout ["k","n","y",kntrl,birler,onlar,soru]
ENDIF
IF KNTRL=%00000001 THEN
hserout [REP$AA\5,REP$00\5,REP$FF\5]
hserout ["k","n","y",kntrl,birler,onlar,soru]
hserout ["k","n","y",kntrl,birler,onlar,soru]
hserout ["k","n","y",kntrl,birler,onlar,soru]
ENDIF
IF KNTRL=%00000100 THEN
hserout [REP$AA\5,REP$00\5,REP$FF\5]
hserout ["k","n","y",kntrl,birler,onlar,soru]
hserout ["k","n","y",kntrl,birler,onlar,soru]
hserout ["k","n","y",kntrl,birler,onlar,soru]

ENDIF 
PAUSE 20
LOW BESLEME
RETURN

SIFIRLA:
Tus=0
y=0
kntrL=%00000000
onlar=0
birler=0 
PORTB=0
SORU=0

    SHIFTOUT PORTd.2,PORTd.3,1,[8] 
    HiGH PORTd.1:PAUSEUS 2:LOW PORTd.1
    HiGH PORTd.0:PAUSEUS 2:LOW PORTd.0
    

X=10:GOSUB AL
SHIFTOUT PORTd.2,PORTd.3,1,[SAYI] 
HiGH PORTd.1:PAUSEUS 2:LOW PORTd.1
HiGH PORTd.0:PAUSEUS 2:LOW PORTd.0
onluk=1 
RETURN

AL: LOOKUP X,[63,6,91,79,102,109,125,7,127,111,8,0],SAYI :RETURN


END


alıcı
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2010 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 29.10.2010                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
DEFINE HSER_RCSTA 90h     
DEFINE HSER_TXSTA 24h     
DEFINE HSER_SPBRG 25    
DEFINE HSER_BAUD 337      
DEFINE HSER_CLROERR 1
'************************************************************

TrisB=%00000000
TRISE=%00000000
TRISD=%00000000
TRISC=%10000000

'*************************************************************
PortB=%00000000
PORTE=%00000000
PORTD=%00000000
LOW PORTC.0
LOW PORTC.1
LOW PORTC.2
LOW PORTC.3
LOW PORTC.4
LOW PORTC.5
LOW PORTC.6
'********************************************************* 
adcon1 = 7



SYMBOL BIR=PORTB.0
SYMBOL IKI=PORTB.1
SYMBOL UC=PORTB.2
SYMBOL DORT=PORTB.3
SYMBOL BES=PORTB.4
SYMBOL ALTI=PORTB.5
SYMBOL YEDI=PORTB.6
SYMBOL SEKIZ=PORTB.7
SYMBOL DOKUZ=PORTE.0
SYMBOL ONN=PORTD.0
SYMBOL YIRMI=PORTD.1
SYMBOL OTUZ=PORTD.2
SYMBOL KIRK=PORTD.3
SYMBOL ELLI=PORTD.4
SYMBOL ALTMIS=PORTD.5
SYMBOL YETMIS=PORTD.6
SYMBOL SEKSEN=PORTD.7
SYMBOL DOKSAN=PORTE.1
'******************************************************************
kntrl VAR BYTE
birler var byte
ONLAR VAR BYTE
SORU VAR BYTE
CEVAP VAR BYTE

PAUSE 200
kntrl=%00000100 
PORTB=%00000000
PORTD=%00000000
PORTE=%00000000
'******************************************************************    

BASLA:
if kntrl=%00000100   then
GOSUB SIFIRLA  
endif    

HSERIN[wait ("k","n","y"),kntrl,birler,onlar,soru]


IF kntrl=%00000001 AND SORU=0 THEN 
portd=%00000000
low doksan
LOW DOKUZ
GOSUB SAYILARB 
GOSUB EKRAN    
ENDIF
IF KNTRL=%00000011 AND SORU=0 THEN                              
low doksan
LOW DOKUZ
GOSUB EKRAN
GOSUB SAYILARO
GOSUB SAYILARB
 
ENDIF
if KNTRL=%00000100 AND SORU=0 THEN
goto basla
ENDIF

IF SORU=1 THEN
    IF KNTRL=%00000011  THEN
     GOSUB SAYILARO
     GOSUB SAYILARB
    ENDIF
    IF KNTRL=%00000001  THEN
     GOSUB SAYILARB
    ENDIF
     IF KNTRL=%00000100  THEN
     GOto basla
    ENDIF
   
ENDIF 
PAUSE 20
GOTO basla

SIFIRLA:
PORTB=%00000000
PORTD=%00000000
PORTE=%00000000
kntrl=%00000000 
birler=0
ONLAR=0
low doksan
LOW DOKUZ
SHIFTOUT PORTC.2,PORTC.3,1,[8] 
HiGH PORTC.1:PAUSEUS 2:LOW PORTC.1
HiGH PORTC.0:PAUSEUS 2:LOW PORTC.0  

RETURN

SAYILARB:
PORTB=0
LOW DOKUZ

IF BIRLER=6 THEN
HIGH BIR
ENDIF

IF BIRLER=91 THEN
portb=%00000011
ENDIF

IF BIRLER=79 THEN
portb=%00000111
ENDIF

IF BIRLER=102 THEN
portb=%00001111
ENDIF

IF BIRLER=109 THEN
portb=%00011111
ENDIF

IF BIRLER=125 THEN
portb=%00111111
ENDIF

IF BIRLER=7 THEN
portb=%01111111
ENDIF

IF BIRLER=127 THEN
portb=%11111111
ENDIF

IF BIRLER=111 THEN
HIGH DOKuz
portb=%11111111
ENDIF
PAUSE 20

RETURN

SAYILARO:
PORTD=0
LOW DOKSAN


IF ONLAR=6 THEN
portd=%00000001
ENDIF

IF ONLAR=91 THEN
portd=%00000011
ENDIF

IF ONLAR=79 THEN
portd=%00000111
ENDIF

IF ONLAR=102 THEN
portd=%00001111
ENDIF

IF ONLAR=109 THEN
portd=%00011111
ENDIF

IF ONLAR=125 THEN
portd=%00111111
ENDIF

IF ONLAR=7 THEN
portd=%01111111
ENDIF

IF ONLAR=127 THEN
portd=%11111111
ENDIF

IF ONLAR=111 THEN
portd=%11111111
high doksan

ENDIF
PAUSE 20
RETURN


EKRAN:

if KNTRL=%00000001 then            
   SHIFTOUT PORTC.2,PORTC.3,1,[BIRLER]
   HiGH PORTC.1:PAUSEUS 2:LOW PORTC.1
   SHIFTOUT PORTC.2,PORTC.3,1,[0]
   HiGH PORTC.0:PAUSEUS 2:LOW PORTC.0
    ENDIF
IF KNTRL=%00000011 THEN
   SHIFTOUT PORTC.2,PORTC.3,1,[BIRLER]
   HiGH PORTC.1:PAUSEUS 2:LOW PORTC.1
   SHIFTOUT PORTC.2,PORTC.3,1,[ONLAR]
   HiGH PORTC.0:PAUSEUS 2:LOW PORTC.0
   ENDIF     
pause 100
RETURN
END



rf

KOSGEB Girişimcilik Desteği Bilgi ve Paylaşım Platformu http://www.girisimcilikdestegi.com/