16f87 de calısan devre 16f88 de calışmıyor

Başlatan toprak, 25 Şubat 2012, 15:20:57

toprak

merhaba arkadaşlar daha once 16f628 ıle yaptığım DTMF  devresini 16f87 ve 16f88 ıle denedım.16f87 de calışırken 16f88 ıle çalışmıyor. fakat datasheet leri bazı farklılıkları olsada aynı gözüküyor.zaten ikisi için tek datasheet var.datasheet ingilizce ben anlamamış olabilirim ingilizcem iyi degil.yardımcı olursanız sevinirim.teşekkürler.

bigbey

16f87 ile 16f88 arasında sadece ADC farkı var. 16f87 de ADC yok görünüyor.
senin yazılımında nasıl bir etki olabilri anlamak için yazılım ve devrenizi açarsanız yardımcı olabilecek arkadaşlar çıkabilir.
TA6R

toprak

datasheet ten analdıgım kadarıyla 16f87 de adc var yok ise AN0, AN1,AN2,AN3 ne anlam ifade ediyor. adc bılgılerini verirken ayrım gözükmüyor.(aynı datasheet te)
bırde ben adc ile daha bırsey yapmadım kapalıdır.yapmak istedığim dtmf devresiyle role çektirmek.ayrıca  daha once hiç çalıştırılamayan pıc ve sahtetelerıyle karşılaşan olmuş mu? çünkü 16f688  de çalıştıramadım.yazdıgım programada güvenıyorum.

skara1214

hangi dili kullanıyorsunuz?ccs ise eğer(ben onu kullanıyorum)versiyon farkı bile çalışmamasına sebep olabilir
Herkes ölür ama herkes gerçekten yaşamaz

Maxim

#4
16F87 de analog giriş yok, bu datasheet te NET olarak yazıyor
ayrıca 16F628 ile 16F87-88 konfigurasyon ayarları baya bi farklıdır

gene 16F87 ile 16F88 configurasyon ayarlarıda analog girişlerden ötürü farklıdır

eğer 88 kullanıyorsanız ama analog girişleri kullanmıyorsanız yani onları normal giriş olarak kullanıyorsanız
konfigurasyon ayarlarından analog girişleri kapatmanız şart .

yoksa işte böyle çalışmaz devre.


edit:
16F88 de analog - digital giriş ayarları ANSEL registeri ile yapılır

toprak

sanırım  daha fazla araştırmam lazım. acaba buna ılışkin elinde türkçe kaynağı olan var mı? payalşırsa sevinirim.

toprak

codlar şöyle
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 2/23/2012                                         *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
@ DEVICE pic16F88             'i?lemci 16F88
@ DEVICE pic16f88, WDT_OFF     'Watch Dog timer kapal?
@ DEVICE pic16f88, PWRT_ON    'Power on timer aç?k
@ DEVICE pic16f88, MCLR_OFF   'mclr off
@ DEVICE pic16f88, LVP_OFF    'Low voltage off
@ DEVICE pic16f88, PROTECT_Off 'Kod Protek AÇIK
@ DEVICE pic16f88, XT_OSC 'Dahili osilator kullanilmayacak
   
    CMCON=7
   PORTB=0
   TRISB=%10000010
   PORTA=0
   TRISA=%00101111

SAY     var   byte
SAY1  var   byte
SAY2  var   byte
TUS     var   byte
TAMAM var   byte
B1    var   byte
B0    var   byte
I     VAR   BYTE
clear
   pause   200
BASLA:   
   TAMAM=0
   TUS=0
    B1=0
   B0=0

ana_dongu:
   If  PORTB.7=1 AND PORTB.1=0 Then  PORT_OKU   'tusa basilmis ve anahtar ON yani iletim varsa
   IF  PORTB.7=1 AND PORTB.1=1 THEN   KAYDET     'tusa basilmis ve anahtar 12 yani iletim yoksa   
    Goto  ana_dongu

RELAYS:
     IF  PORTA.5=1 THEN                           'dedektor sinyal aliyorsa
     PAUSE 2000
        IF PORTA.5=1 THEN                        'dedektor halen sinyal aliyorsa
        PORTB.3=1:PORTB.0=1:PAUSE 2000:PORTB.3=0:PORTB.0=0
        ENDIF
     ENDIF
     if PORTB.7=1 THEN
     PEEK PORTA, TUS
    TUS=TUS & %00001111
      IF TUS=1 THEN
       PORTB.2=1 : PORTB.0=1 : PAUSE 2000 : PORTB.0=0
       GOTO DUR
       ENDIF
       IF TUS=2 THEN
       PORTB.3=1 : PORTB.0=1 : PAUSE 2000 : PORTB.3=0 : PORTB.0=0
       GOTO DUR
       ENDIF
       IF TUS=3 THEN
       PORTB.4=1 : PORTB.0=1 : PAUSE 2000 : PORTB.4=0 : PORTB.0=0
       GOTO DUR
       ENDIF
       IF TUS=4 THEN
       PORTB.5=1 : PORTB.0=1 : PAUSE 2000 : PORTB.5=0 : PORTB.0=0
       GOTO DUR
       ENDIF
       IF TUS=5 THEN
       PORTB.6=1 : PORTB.0=1 : PAUSE 2000 : PORTB.6=0 : PORTB.0=0
       GOTO DUR
      ENDIF
      IF TUS=6 THEN
      PORTB.2=1 : PORTB.3=1 : PORTB.4=1 : PORTB.5=1 : PORTB.6=1
      PAUSE 2000
      PORTB.2=0 : PORTB.3=0 : PORTB.4=0 : PORTB.5=0 : PORTB.6=0
      GOTO DUR
      ENDIF
      IF TUS=11 THEN
      PORTB.0=1: PAUSE 500: PORTB.0=0
      GOTO BASLA
      ENDIF
      DUR:
         WHILE PORTB.7=1
          WEND
         GOTO RELAYS
    ENDIF
    goto RELAYS

PORT_OKU:
   PEEK PORTA, TUS
   TUS=TUS & %00001111
   IF TUS=11 THEN
   PORTB.0=1: PAUSE 500: PORTB.0=0
   GOTO bekle
   ENDIF
   B1=B1+1
   IF TUS=12 AND B1=4 THEN
      B1=0
      TAMAM=TAMAM+1       
       IF TAMAM=4 THEN
          PORTB.0=1: PAUSE 500: PORTB.0=0
          TUS=0     
          GOTO RELAYS
       ENDIF 
    ENDIF 
      IF B1=1 THEN BIRA
       IF B1=2 THEN IKIA
      IF B1=3 THEN UCA
 
BIRA:
      READ 0, SAY
      IF tus=SAY THEN
      TAMAM=0
      TAMAM=TAMAM+1
      ENDIF
      GOTO   BEKLE
IKIA:   
      READ 1, SAY1
      IF tus=SAY1 THEN
      TAMAM=TAMAM+1
      ENDIF
      GOTO   BEKLE
UCA:
      READ 2, SAY2
      IF tus=SAY2 THEN
      TAMAM=TAMAM+1
      ENDIF
      GOTO   BEKLE 
   
KAYDET:
   PEEK PORTA, TUS
   TUS=TUS & %00001111
   IF TUS=11 THEN
   PORTB.0=1: PAUSE 500: PORTB.0=0
   GOTO   BASLA
   ENDIF
   B0=B0+1
   IF TUS=12 AND B0=4 THEN
    FOR I=0 TO 10
    toggle PORTB.0
    PAUSE 200
    NEXT I
    PAUSE 200
    PORTB.0=0
    B0=0
   ELSE
   IF B0=1 THEN BIR
    IF B0=2 THEN IKI
   IF B0=3 THEN UC
   
BIR:
   WRITE 0, TUS
   GOTO  BEKLE
IKI:
    WRITE 1, TUS
   GOTO  BEKLE
UC:
    WRITE 2, TUS
    ENDIF
BEKLE:   
   WHILE PORTB.7=1
    WEND
   GOTO ana_dongu
   END

medese

toprak
arkadaşım 16f88 in porta giriş çıkış ayarlarını ansel=0 giriş çıkış dijital ansel=1 analog olarak ayarlar sende porta'yı giriş olarak ayarladığın için
program çalışmıyor dataseet ayarlarını iyi okuyarak düzenlemen lazım
medes