16f84 RF İletişim Sorunu

Başlatan smooty, 14 Mayıs 2012, 19:41:37

smooty

Merhabalar, forumda aktif olarak yazmasam da sürekli olarak takip ediyorum, çok şey öğrendiğimi düşünüyorum öncelikle herkese teşekkür ediyorum...
16F84A ile RF haberleşme üzerine bir devre tasarladım. Devrenin verici kısmında bir LCD ekran var ve menüden istediğimiz animasyonu seçerek alıcıya gönderiyoruz. Alıcıda ise bu animasyonu görüyoruz. Devre isiste sorunsuz çalışıyor. Devrenin baskı devresini yaptım ancak şöyle bir sorun var: Vericiden animasyonu seçiyorum, alıcıda bu animasyon yaklaşık 1 saniye çalışıp sönüyor. Menüden tekrar aynı animasyonu seçtiğimde yine 1 saniye çalışıp sönüyor. Sanırım yazılımda eksik bıraktığım bir döngü var. Verici ve alıcı yazılımını ekliyorum. Yardımlarınızı bekliyorum.

Verici:

'*  Name    : UNTITLED.BAS                                      *
'*  Author  : Abdullah Cem DURMUS                               *
'*  Notice  : Copyright (c) 2011 081202057 ABDULLAH CEM DURMUS  *
'*          : All Rights Reserved                               *
'*  Date    : 10.12.2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
TRISA=%11110    	  'A0 'ı çıkış; A1,A2,A3 ve A4 pinlerini giriş yaptık.
PORTB=255		  'B portunun tüm pinlerini 1 yaptık.
SYMBOL ARMATUR=PORTA.0    'A0 pinini ARMATUR değişkeni olarak atadık.
SYMBOL SEC=PORTA.1	  'A1 pinini Seç butonu olarak atadık.
SYMBOL IPTAL=PORTA.2	  'A2 pinini İptal butonu olarak atadık.
SYMBOL ASAGI=PORTA.3	  'A3 pinini Aşağı butonu olarak atadık.
SYMBOL YUKARI=PORTA.4	  'A4 pinini Yukarı butonu olarak atadık.
PORTA.0=0
'****************************************************************

DEFINE LCD_DREG	PORTB	       'LCD data bacakları PortB ye bağlı
DEFINE LCD_DBIT		4      'LCD data bacakları 4. bit den başlıyor
DEFINE LCD_RSREG	PORTB  'LCD RS Bacağı PortB ye bağlı 
DEFINE LCD_RSBIT	1      'LCD RS bacağı 1. Bite bağlı 
DEFINE LCD_EREG	PORTB	       'LCD Enable Bacağı PortB ye bağlı
DEFINE LCD_EBIT		3      'LCD Enable Bacağı 3. bite bağlı 
DEFINE LCD_RWREG     PORTB     'LCD RW Bacağı PortB ye bağlı
DEFINE LC_RWBIT     	2      'LCD RW Bacağı 2. bite bağlı
DEFINE LCD_BITS		4      'LCD 4 bit olarak bağlı
DEFINE LCD_LINES	2      'LCD 2 sıra yazabiliyor
DEFINE A0=0
'***************************************************************
VERICI VAR BYTE	
	VERICI=0


ACILIS:
PAUSE 100
LCDOUT $FE,1,"  RF KONTROLLU  "
LCDOUT $FE,$C0,"ARMATUR PROJESi"

PAUSE 110
GOTO ACILIS2

'*****************************************************************
ACILIS2:
LCDOUT $FE,1,"    081202057   "
LCDOUT $FE,$C0,"  A.CEM DURMUS  "

PAUSE 110
GOTO MENU1

'*****************************************************************

MENU1:
pause 300
LCDOUT $FE,1,"   MOD SECiMi   "
LCDOUT $FE,$C0,"> SUREKLi YANMA "
VERICI=0

IF SEC=1 THEN SUREKLI_YANMA
IF IPTAL=1 THEN MENU1
IF YUKARI=1 THEN MENU3
IF ASAGI=1 THEN MENU2
GOTO MENU1

SUREKLI_YANMA:

VERICI=10
GOSUB GONDER
PAUSE 100


EKRAN1:
PAUSE 100
LCDOUT $FE,1,"AKTIF ANIMASYON:"
LCDOUT $FE,$C0,"  SUREKLI YANMA  "
IF IPTAL=1 THEN MENU1

GOTO SUREKLI_YANMA


'*****************************************************************

MENU2:
pause 300
LCDOUT $FE,1,"  SUREKLi YANMA "
LCDOUT $FE,$C0,"> YAVAS FLASH   "
IF SEC=1 THEN YANIP_SONME
IF ASAGI=1 THEN MENU3
IF YUKARI=1 THEN MENU1
IF IPTAL=1 THEN menu1
GOTO MENU2 

YANIP_SONME:

VERICI=20
GOSUB GONDER
pause 100

EKRAN2:
PAUSE 100
LCDOUT $FE,1,"AKTIF ANIMASYON:"
LCDOUT $FE,$C0,"  YAVAS FLASH   "
IF IPTAL=1 THEN MENU1
GOTO YANIP_SONME
'*****************************************************************

MENU3:
PAUSE 300
LCDOUT $FE,1,"  YAVAS FLASH   "
LCDOUT $FE,$C0,"> HIZLI FLASH    "
IF ASAGI=1 THEN MENU1
IF YUKARI=1 THEN MENU2
IF IPTAL=1 THEN menu1
IF SEC=1 THEN HIZLI_YANMA
goto MENU3

HIZLI_YANMA:

VERICI=30
GOSUB GONDER
PAUSE 100

EKRAN3:
PAUSE 100
LCDOUT $FE,1,"AKTIF ANIMASYON:"
LCDOUT $FE,$C0,"  HIZLI FLASH   "
IF IPTAL=1 THEN MENU1
GOTO HIZLI_YANMA


GONDER:
SEROUT2 PORTA.0,396,["A","C","E","M",VERICI]
SEROUT2 PORTA.0,396,["A","C","E","M",VERICI]
SEROUT2 PORTA.0,396,["A","C","E","M",VERICI]
SEROUT2 PORTA.0,396,["A","C","E","M",VERICI]
RETURN

END


Alıcı:

'
*  Name    : UNTITLED.BAS                                      *
'*  Author  : Abdullah Cem DURMUS                               *
'*  Notice  : Copyright (c) 2011 081202057 ABDULLAH CEM DURMUS  *
'*          : All Rights Reserved                               *
'*  Date    : 10.12.2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************



TRISA=255
TRISB=0
PORTA=0
PORTB=0

ALICI VAR BYTE
ALICI=0
PAUSE 500


BASLA:

SERIN2 PORTA.0,396,[WAIT("ACEM"),ALICI]

	IF ALICI=10 THEN
    SABIT_YANMA:
    HIGH PORTB.0
    PAUSE 1000
    GOTO BASLA
    ENDIF

	
    IF ALICI=20 THEN
	YANIP_SONME:
    HIGH PORTB.0
	PAUSE 400
	LOW PORTB.0
	PAUSE 400
    GOTO BASLA
    ENDIF
    
	IF ALICI=30 THEN
	HIZLI_YANMA:
    HIGH PORTB.0
	PAUSE 100
	LOW PORTB.0
	PAUSE 100
    GOTO BASLA
    ENDIF
    
GOTO BASLA
END