BU KODLARDA ANORMAL BİR DURUM GÖREN VAR MI?

Başlatan sozkarabacak, 11 Şubat 2008, 13:40:20

sozkarabacak

Arkadaşlar selamlar,
Aşağıdaki kodları sağolsun  bir arkadaşım yolladı. Yazılım bana ilk geldiğinde Protonda yazılımıştı. Ben bu yazılımı Basic diline göre yapabildiğim kadarı ile modifiye ettim.Proteusta cm8870 DTMF entegresinin similasyonu bulunmadığından burda anlayan arkadaşlarımızın yorumlarını almak istedim. Görünüşte gözünüze çarpan bir olumsuzluk mantık dışı bir işlem var mı? Yorumlarınızı bekliyorum.Bu haliyle derledim hatasız derlendi.
'**************************************************************
  'YAZAN     :ŞÜKRÜ ÖZKARABACAK                                  *
  'ADI       : TB5CVN                                            *
  'TARIH     : 11/02/2008                                        *
  'ÇALIMA ADI: ROLE UZAKTAN  KONTROL SISTEMI                     *
  ' #565     : ROLE1 AÇ                                          *
  ' #564     : ROLE1 KAPA                                        *
  '	#563     : ROLE2 AÇ                                          *
  '	#562     : ROLE2 KAPA                                        *
  '**************************************************************
     
  TRISB=%11111111
  TRISA=%00000000
  PORTA=0
@ DEVICE pic16F84A                                                   
@ DEVICE pic16F84A, WDT_OFF              
@ DEVICE pic16F84A, PWRT_ON             
@ DEVICE pic16F84A, PROTECT_OFF         
  
  STD var  PORTB.6   '1 STD  8870)TONE enable
  E1  var  PORTB.0    'Q1 du 8870
  E2  var  PORTB.1    'Q2 du 8870
  E3  var  PORTB.2    'Q3 du 8870
  E4  var  PORTB.3    'Q4 du 8870
 
  SIFRE_1 var  PORTA.1    ' 
  SIFRE_2 var  PORTA.3    ' 
  
  b1 VAR BYTE
  b2 VAR BYTE
  b3 VAR BYTE
  b1=0
  b2=0
  b3=0
      
  c1  var BYTE   '1° code DTMF
  c2  var BYTE   '2° code DTMF
  c3  var BYTE   '3° code DTMF
  c4  var BYTE   '4° code DTMF
  Q1  var BIT
  Q2  var BIT
  Q3  var BIT
  Q4  var BIT
 
BASLA:
DTMF1:    
            BUTTON STD,1,255,0,b1,1,DECODER1	
            PAUSE 20
    		BUTTON STD,0,255,0,b2,1,RAZ          
           	GOTO DTMF1
DECODER2:	
            Q1=E1		
    		Q2=E2
    		Q3=E3
    		Q4=E4
     		c2 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4 	
    		IF c2=5 THEN	'DTMF 5 RAKAMI 	
      	    GOTO DTMF3
        	ENDIF       
           	GOTO DTMF1
DTMF3: 	
            b3=0
            WHILE b3<75	
    		BUTTON STD,1,255,0,b1,1,DECODER3	
         	PAUSE 20
	        b3=b3+1
            WEND
            GOTO DTMF1
DECODER3:	
            Q1=E1		
    		Q2=E2
    		Q3=E3
    		Q4=E4
     		c3 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4 	
            GOTO DTMF4      	
            
DTMF4: 
            
			b3=0
            WHILE b3<75	
    		BUTTON STD,1,255,0,b1,1,DECODER4	
            PAUSE 20
 	        b3=b3+1
            WEND
            GOTO DTMF1
DECODER4:	
            Q1=E1		 
            Q2=E2
    		Q3=E3
    		Q4=E4
     		c4 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4 	
 	        GOTO SIFRE
              
RAZ:  
	  
        	Q1=0
        	Q2=0
		    Q3=0
		    Q4=0
       	    GOTO DTMF1
            END
SIFRE:	
           PAUSE 10	
  	       IF c3=2 AND c4=5 THEN   ' # 5 2 5 ROLE1 KAPAMA
           SIFRE_1=1   
           ENDIF

           IF c3=2 AND c4=4 THEN   ' # 5 2 4 ROLE1 AÇMA 
           SIFRE_1=0      
           ENDIF
                  IF c3=2 AND c4=2 THEN   ' # 5 2 2 ROLE2 KAPAMA
           SIFRE_2=0      
           ENDIF
	         
		  c1=0	
          c2=0
          c3=0
   	      c4=0
          GOTO DTMF1     
   RETURN
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]

teknikelektronikci

selam
asagida return komutu var ama gosub göremedim bilginiz olsun
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

sozkarabacak

Yazılım konusunda daha çok yeniyim. Verdiğiniz bilgiye teşekkür ederim.Ne yapmam gerektiğinide açık bir şekilde yazarsanız sevinirim. Bu yazılım üzerinde iki adet röle bulunan bir devreyi kontrol edecek kısmet olursa DTMF şifreleriyle.
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]

bulut86

abicim o kadar da yeniysen böyle projeleri yapmaya kalkışman biraz abes geliyo bana bilmiyorum yanlışmı düşünüyorum.öteki arkadasım return diyor ondan bile haberin yok açıkcası size göre bir proje deil bu anladığım kadarıyla.hiç bilmediğiniz bir konuda insanlar ne kadar yardım etse yinede yapamazsınız.ancak alıp projeyi birisi yapacakki  size yardımı dokunsuun varsa böyle biri bi zahmet arkadsımıza yardım etsin.çok komik açıkçası
başarılar!

sozkarabacak

Arkadaşım haklısın komikte gelebilir ama yapmak zorundayım ne yaparsın. İdare et.:)
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]

ilker_32

Derlerken konfigürasyon ayarlarını kapat programlama yaparken yazılımdan yaparsın. Kodunda sorun yok. Ayrıca kodları koymuşsun ama şemayı göremedik.  :lol:

;-------------------------

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 11.02.2008                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
 TRISB=%11111111
 TRISA=%00000000
 PORTA=0
;@ DEVICE pic16F84A                                                    
;@ DEVICE pic16F84A, WDT_OFF              
;@ DEVICE pic16F84A, PWRT_ON              
;@ DEVICE pic16F84A, PROTECT_OFF          
 
 STD var  PORTB.6   '1 STD  8870)TONE enable
 E1  var  PORTB.0    'Q1 du 8870
 E2  var  PORTB.1    'Q2 du 8870
 E3  var  PORTB.2    'Q3 du 8870
 E4  var  PORTB.3    'Q4 du 8870
 
 SIFRE_1 var  PORTA.1    '
 SIFRE_2 var  PORTA.3    '
 
 b1 VAR BYTE
 b2 VAR BYTE
 b3 VAR BYTE
 b1=0
 b2=0
 b3=0
     
 c1  var BYTE   '1° code DTMF
 c2  var BYTE   '2° code DTMF
 c3  var BYTE   '3° code DTMF
 c4  var BYTE   '4° code DTMF
 Q1  var BIT
 Q2  var BIT
 Q3  var BIT
 Q4  var BIT
 
BASLA:
DTMF1:    
           BUTTON STD,1,255,0,b1,1,DECODER1    
           PAUSE 20
         BUTTON STD,0,255,0,b2,1,RAZ          
             GOTO DTMF1
DECODER1:    
           Q1=E1      
         Q2=E2
         Q3=E3
         Q4=E4
          c1 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4    
         IF c1=12 THEN                   '  DTMF 12 = #
            GOTO DTMF2
          ENDIF
          GOTO DTMF1
DTMF2:    
           b3=0
           WHILE b3<75    
         BUTTON STD,1,255,0,b1,1,DECODER2    
             PAUSE 20
          b3=b3+1
           WEND
           GOTO DTMF1
DECODER2:    
           Q1=E1      
         Q2=E2
         Q3=E3
         Q4=E4
          c2 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4    
         IF c2=5 THEN   'DTMF 5 RAKAMI    
            GOTO DTMF3
          ENDIF        
             GOTO DTMF1
DTMF3:    
           b3=0
           WHILE b3<75    
         BUTTON STD,1,255,0,b1,1,DECODER3    
           PAUSE 20
          b3=b3+1
           WEND
           GOTO DTMF1
DECODER3:    
           Q1=E1      
         Q2=E2
         Q3=E3
         Q4=E4
          c3 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4    
           GOTO DTMF4          
           
DTMF4:
           
        b3=0
           WHILE b3<75    
         BUTTON STD,1,255,0,b1,1,DECODER4    
           PAUSE 20
           b3=b3+1
           WEND
           GOTO DTMF1
DECODER4:    
           Q1=E1      
           Q2=E2
         Q3=E3
         Q4=E4
          c4 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4    
           GOTO SIFRE
             
RAZ:  
   
          Q1=0
          Q2=0
         Q3=0
         Q4=0
             GOTO DTMF1
           END
SIFRE:    
          PAUSE 10    
           IF c3=2 AND c4=5 THEN   ' # 5 2 5 ROLE1 KAPAMA
          SIFRE_1=1    
          ENDIF

          IF c3=2 AND c4=4 THEN   ' # 5 2 4 ROLE1 AÇMA
          SIFRE_1=0      
          ENDIF
           
        IF c3=2 AND c4=3 THEN   ' # 5 2 3 ROLE2 AÇMA
          SIFRE_2=1    
          ENDIF

          IF c3=2 AND c4=2 THEN   ' # 5 2 2 ROLE2 KAPAMA
          SIFRE_2=0      
          ENDIF
           
       c1=0    
         c2=0
         c3=0
           c4=0
         GOTO DTMF1      
  RETURN

;---------------------------------------

sozkarabacak

Arkadaşım şeması malesef yok. Ama baskı devresi var lazımsa yollarım. HT9170 entegresinin similasyonu olmadığı için şema çizme gereği duymadım.
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]

sozkarabacak

Kodlarda sağolsun bir ağabeyimiz bazı düzenlemeler yaptı burdan yine sizden fikir bekliyorum.


  cmcon = 7
 
 TRISB=%11111001
 TRISA=%11111111
   
 
 
 
 
 
   
Data @0,1,2,3,4      '1. Role ac şifresi
Data @5,5,6,7,8      '1. Role kapa şifresi
Data @10,9,1,2,3      '2. Role ac şifresi
Data @15,4,5,6,7      '2. Role kapa şifresi
 
 SDATA var  PORTA    '1 STD  8870)TONE enable     'A4,A5,A6,A7 PORTLARI - polarize
 DATAPALS var  PORTB.0    '

 ROLE1 var  PORTB.1    '
 ROLE2 var  PORTB.2    '
 
  şifre   VAR BYTE[4]

  Aşifre1   VAR BYTE[4]
  kşifre1   VAR BYTE[4]
  Aşifre2   VAR BYTE[4]
  kşifre2   VAR BYTE[4]
 
Read 0,Aşifre1[1]
Read 1,Aşifre1[2]
Read 2,Aşifre1[3]
Read 3,Aşifre1[4]   



Read 5,kşifre1[1]
Read 6,kşifre1[2]
Read 7,kşifre1[3]
Read 8,kşifre1[4]
 
Read 10,Aşifre2[1]
Read 11,Aşifre2[2]
Read 12,Aşifre2[3]
Read 13,Aşifre2[4]
   
Read 15,kşifre2[1]
Read 16,kşifre2[2]
Read 17,kşifre2[3]
Read 18,kşifre2[4]  
 
 
     
 c1  var BYTE   '1° code DTMF
 c2  var BYTE   '2° code DTMF
 c3  var BYTE   '3° code DTMF
 c4  var BYTE   '4° code DTMF
 DURUM  var BYTE  
 SAY VAR byte
 
 DURUM = 0
 SAY = 0
 
 LOW ROLE1
 LOW ROLE2

BASLA:





IF DATAPALS = 1 THEN
   say = say + 1
   şifre[say] = SDATA
   
   If SAY = 4 THEN
   
   If şifre[1] = Aşifre1[1] AND şifre[2] = Aşifre1[2] AND şifre[3] = Aşifre1[3] AND şifre[4] = Aşifre1[4] THEN
     HIGH ROLE1
       say = 0
   ENDIF
   
   If şifre[1] = Aşifre2[1] AND şifre[2] = Aşifre2[2] AND şifre[3] = Aşifre2[3] AND şifre[4] = Aşifre2[4] THEN
     HIGH ROLE2
      say = 0
   ENDIF
   
   If şifre[1] = kşifre1[1] AND şifre[2] = kşifre1[2] AND şifre[3] = kşifre1[3] AND şifre[4] = kşifre1[4] THEN
     low ROLE1
      say = 0
   ENDIF
   
   If şifre[1] = kşifre2[1] AND şifre[2] = kşifre2[2] AND şifre[3] = kşifre2[3] AND şifre[4] = kşifre2[4] THEN
     low ROLE2
       say = 0
   ENDIF
   
   
   
ENDIF
  pause 100
ENDIF







goto basla
end
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]

mustafa_cmbz

Alıntı yapılan: "sozkarabacak"Arkadaşım şeması malesef yok. Ama baskı devresi var lazımsa yollarım. HT9170 entegresinin similasyonu olmadığı için şema çizme gereği duymadım.

hocam bir ara ht9170'in simulasyonunu 16f877a ile yapmıştım,belki işinize yarar....

http://rapidshare.com/files/90987842/Yeni_Klasoer.rar.html

sozkarabacak

Arkadaşım çok teşekkür ederim bu similasyona stb diye bir çıkış eklersen işime yarar.STB şu işe yarıyor diyelim bir tuşa bastık tuşun basılı olduğu sürece stb çıkış verecek herhangi bir tuşa basmazsak 0 olacak yani işlemciye bilgilerin geldiğini haber verecek. Birde proteusta şunu hiç denememiştim tek bir şemaya iki adet işlemci yerleştirip ikisine farklı hexleri atsak çalışır mı? Deneyen var mı eğer çalışırsa Mustafa arkadaşımız bu similasyona STB çıkışını eklerse devreyi kurmayı planlıyorum.
CM8870 SİMİLASYONU ŞU ŞEKİLDE OLUYOR ANİMASYON OLARAK.
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]

mustafa_cmbz

hocam isiste 1'den fazla pic'i çalıştırabilirsin

anlatmak istediğinizi anladım hocam dediğiniz işlemi gerçekleştirmeye çalışıyorum..

Veli B.

2-3 sene kadar once bunun icin ornek bir dsn dosyasi vermistim. 8870 emulasyonu yapiyordu. O baslikta istediginiz diger konular ile ilgili de mesajlar vardi.

mustafa_cmbz

hocam bahsettiğiniz şekilde bir hex. dosyası oluşturdum yanlız devredeki std led'ini pic'in 23 nolu bacağına bağlayın...kolay gelsin..bu arada eğer pll entegersini kontrol edebilirseniz banada yardımcı olurmusunuz şu sıralar bu işin ustaları bizlere küskün  gibiler kimse yardım etmiyor..

http://rapidshare.com/files/91185245/MT8870.HEX.html

sozkarabacak

Alıntı yapılan: "katana"2-3 sene kadar once bunun icin ornek bir dsn dosyasi vermistim. 8870 emulasyonu yapiyordu. O baslikta istediginiz diger konular ile ilgili de mesajlar vardi.
Selamlar dediğiniz dosyayı aradım fakat sitede 6 sayfa buluyor diyelim konu ile ilgili ilk sayfadan sonraki sayfaları görüntüleyemiyor. Eğer elinizde var ise böyle bir döküman bir siteye upload ederseniz çok makbule geçer.
 Birde ben Mustafa arkadaşımızın gönderdiği bir uygulamada similasyon yapmaya çalıştım ama bu sisteme göre picin a portundan röleyi tetikleyecek çıkış olmadı acaba similasyon mu yanılttı yoksa yazılım mı sorunlu similasyonu ve açık kodları bu linke atıyorum. İlgilenen arkadaşlar bir  inceleyebilirlerse çok sevinirim.
LİNK:
http://rapidshare.com/files/91224105/Yeni_Klasoer.rar.html
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]

Mustafa48

TRISB=%11111111
TRISA=%00000000

A portunu çıkış olarak tanımlamışsın PIC olarak 16F84A kullanıyorsun
A portunun 5 pini var. TRISA=%00000 şeklinde olması gerektiğini düşünüyorum. Yoksa yanılıyormuyum.