Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

rf

Başlatan selvi, 26 Nisan 2007, 15:15:35

selvi

PBP ile verici-alici programi yazdim.calismadi.kisaca soyle bir sistem ongordum.vericinin portb ayaklarina 8'li dipswitch bagladim.bunla alicida birden fazla datayla alicinin cikisinda birden fazla led yakmak istedim,proteusda calismadi.verici-alici olarak duzenledigim kodlar asagidaki gibidir.yardimci olursaniz sevinirim
verici kismi:

@ DEVICE pic16F628 'iþlemci 16F628
@ DEVICE pic16F628, WDT_OFF 'Watch Dog timer kapalý
@ DEVICE pic16F628, PWRT_ON 'Power on timer açýk
@ DEVICE pic16F628, PROTECT_OFF 'Kod Protek kapalý
@ DEVICE pic16F628, MCLR_ON 'MCLR pini kullanýlýyor.
@ DEVICE pic16F628, XT_OSC 'Dahili osilatör kullanýlacak
@ DEVICE pic16F628, LVP_OFF
@ DEVICE pic16F628, BOD_OFF

'------------------------------------------------------------------------------
CMCON=7           '16F628 de komparatör pinleri iptal hepsi giriþ çýkýþ
OPTION_REG.7=0    'Dahili pull-up lar AKTÝF yapýldý
PortA=0
TrisA=$01
PortB=0
TrisB=$FF
'------------------------------------------------------------------------------
BILGI    var  BYTE
'------------------------------------------------------------------------------
PAUSE 200
'------------------------------------------------------------------------------
START: PORTA.2=0
      BILGI=0
      IF PORTA.0=0 THEN   START
         PORTA.2=1
         BILGI=PORTB^$FF
         GOSUB GONDER
         WHILE PORTA.0=1
         GOSUB GONDER1
         WEND
         PORTA.2=0
         PAUSE 10
         PORTA.2=0    
   
      PAUSE 100
      GOTO START
'-------------------------ALT PROGRAMLAR---------------------------------------
GONDER:
     SEROUT2 PORTA.1,140,[REP$AA\5,REP$00\5,REP$FF\5]
GONDER1:
     SEROUT2 PORTA.1,140,["S","E","R",dec BILGI,137]
       RETURN
END

alici kismi:

PORTA=0
PORTB=0
TRISA=%00000011   'A portu A.0 giriþ diðerleri çýkýþ yapýldý.
TRISB=%00000000   'B portu tamamý çýkýþ yapýldý.
'-----------------------------------------------------------------
@ DEVICE pic16F628 'iþlemci 16F628
@ DEVICE pic16F628, WDT_OFF 'Watch Dog timer kapalý
@ DEVICE pic16F628, PWRT_ON 'Power on timer açýk
@ DEVICE pic16F628, PROTECT_OFF 'Kod Protek kapalý
@ DEVICE pic16F628, MCLR_ON 'MCLR pini kullanýlýyor.
@ DEVICE pic16F628, XT_OSC 'Dahili osilatör kullanýlacak
@ DEVICE pic16F628, LVP_OFF
@ DEVICE pic16F628, BOD_OFF
'---------------------------deðiþkenler------------------------------
AL     VAR  BYTE
HAFIZA VAR  BYTE
W0     var  byte
W1     var  byte
i      var  byte
k      var  byte
'-----------------------------B A Þ L A N G I Ç ---------------------------    
CMCON=7

PAUSE 200
PORTB=0  'tüm çýkýþlar low seviyesinde
'-------------------------------------------------------------------------------    
START: AL=0  
      FOR  i=0 TO  1
      SerIn2 PORTA.1,140,[WAIT ("SER"),dec AL]
      LOOKUP   i,[64,96],W0
       IF i=0 AND W0=AL  AND W0=64   THEN    BAK
       IF i=1 and W0=al AND W0=96    THEN
           PORTB.0=1
       ENDIF
      BAK:
           PORTB.4=0
           PORTB.5=0
           PAUSE 50
      NEXT i
     
      for  k=0 TO 4
      SerIn2 PORTA.1,140,[WAIT ("SER"),dec AL]
      LooKUP k,[1,2,4,8,16],W1
       IF k=0 AND W1=AL AND W1=1   THEN    BAK1
       IF k=1 AND W1=AL AND W1=2   THEN    BAK1
       IF k=2 AND W1=AL AND W1=4   THEN    BAK1
       IF k=3 AND W1=AL AND W1=8   THEN    BAK1
       IF k=4 AND W1=AL AND W1=16  THEN
           PORTB.1=1
       ENDIF
       BAK1:
           PORTB.4=0
           PORTB.5=0
           PAUSE 50
      NEXT k
       IF  PORTA.0=1   THEN
           WRITE 0,AL
       ENDIF
           IF  PORTA.0=0   THEN
               READ 0,HAFIZA
           IF  HAFIZA=AL   THEN
               PORTB.4=1
               PORTB.5=1
           ENDIF
           ENDIF
           PAUSE   100
           GOTO    START
           END
Yaşam anlamlandırıldıkça kutsaldır....

mech

rx tx 34 udea için

alıcı
include "modedefs.bas"
b var word
trisio=%00000001
low gpio.1
devam:
serin gpio.0,N300,["AA"],b
if b=10 then high gpio.1
if b=20 then low gpio.1
goto devam


include "modedefs.bas"
verici
u var word
trisio=%00000000
devam:
for u =1 to 25
serout gpio.0,N300,["sAA",10]
pause 50
next
pause 200
for u =1 to 25
serout gpio.0,N300,["sAA",20]
pause 50
next
pause 200
goto devam
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Şarttır

selvi

vericiden birden fazla byte lik bilgi gonderildiginde alici gelen bilgileri sirasiyla test etsin siralama ve bilgi ayni ise alicida cikis olarak yonlendirilmis led yansin.ornegin su datalari gonderdigimizi kabuledelim(234,13,87,91,3).alici nasil bir mantikla test edebilirim.nasil bir kod sistemiyle bu olusturulur.
Yaşam anlamlandırıldıkça kutsaldır....

selvi

vericiden birden fazla byte lik bilgi gonderildiginde alici gelen bilgileri sirasiyla test etsin siralama ve bilgi ayni ise alicida cikis olarak yonlendirilmis led yansin.ornegin su datalari gonderdigimizi kabuledelim(234,13,87,91,3).alici nasil bir mantikla test edebilirim.nasil bir kod sistemiyle bu olusturulur.
Yaşam anlamlandırıldıkça kutsaldır....

XX_CİHAN_XX

Eğer asm işini görürse daha önce yaptığım 8 bitlik rf data aktarım çalışmasını yükledim.Udea dahil birçok rf kitlerinde sağlıklı çalışmaktadır.

http://dosyam.net/?id=0wd37i

Kolay gelsin.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

kirvem

veri var byte
TRISA=%00000001
ben söyle bir uygulama yapmıştım butona bir kez basılınca motor ileri 2 kez basılınca geri 3 kez basılınca motor duruyor


ALICI KISMI

TRISB=%00000000
PORTA=0
PORTB=0
SYMBOL GIRIS=PORTA.0
BASLA:
serin GIRIS,0,veri
 IF veri=0       then  portb=0  
 IF veri=1       then  portb=1
 IF veri=2       then  portb=2
 GOTO BASLA
 END
 
VERİCİ KISMI


TRISB=%11111111
SYMBOL CIKIS=PORTA.0
SYMBOL TUS=PORTA.1
d var byte
DEGER  VAR BYTE
veri VAR BYTE
PORTA=0:PORTB=0  
DEGER=0
' ------------------------------------------------
izle:
BUTTON TUS,1,0,254,D,1,SAY
GOTO izle
say :
deger=deger+1
pause 200
if deger=3 then deger=0
select case deger
    case 0
    veri=0
    case 1
    veri=1
    case 2
    veri=2
    end select          
   serout  CIKIS,0,[ veri ]
   pause 200        
GOTO izle