Picproje Elektronik Sitesi

DERLEYİCİLER => PICBasic => Konuyu başlatan: POWER - 17 Şubat 2017, 21:52:41

Başlık: 12f675 ile ds1302 sorunu
Gönderen: POWER - 17 Şubat 2017, 21:52:41
Herkeze iyi geceler,
basit bir devre.12f675 ve ds1302 kullanılarak basit bir zamanlama devresi.fakat ne yaptıysam saniyenin hızlı çalışmasını düzeltemedim.muhtemelen 12f675 ayarları ile ilgili bir sorun.çünkü bu işlemciyi çok fazla kullanmadım.ilgili dosyayı ekliyorum.
define OSC 4
Include "MODEDEFS.BAS"

@ DEVICE pic12F675                      'işlemci 12F675                               
@ DEVICE pic12F675, WDT_OFF             'Watch Dog timer açık
@ DEVICE pic12F675, PWRT_ON             'Power on timer açık
@ DEVICE pic12F675, PROTECT_OFF         'Kod Protek açık
@ DEVICE pic12F675, MCLR_OFF            'MCLR pini kullanılmıyor
@ DEVICE pic12F675, INTRC_OSC_NOCLKOUT  'Dahili osilatör kullanılacak

DEFINE OSCCAL_1K 1 'OSCCAL değerini yeniden pice yazdırıyor

CMCON=7
ANSEL=%00010000       
OPTION_REG.7=1
WPU=%00000000
TRISIO=%011010
GPIO=0     

SN      VAR BYTE
DAK     VAR BYTE
SAAT    VAR BYTE
MEM     VAR BYTE
GUN     VAR BYTE
AY      VAR BYTE
YIL     VAR BYTE
HGUN    VAR BYTE
BOS     VAR BYTE
TEMP    VAR BYTE
SAYI    VAR BYTE
ONLAR   VAR BYTE
BIRLER  VAR BYTE
HAFTA   VAR BYTE

SYMBOL  RTC_CLK=GPIO.2
SYMBOL  RTC_DTA=GPIO.4   
SYMBOL  RTC_RST=GPIO.1

symbol ROLE=GPIO.5
PAUSE 300

BASLA:
        GOSUB ZAMAN_OKU
IF SAAT=21 AND DAK=23 AND SN<20  THEN
   ROLE=1
ELSE
   ROLE=0
ENDIF
        GOTO BASLA

ZAMAN_OKU:
    high RTC_RST:OUTPUT RTC_DTA
shiftout RTC_DTA, RTC_CLK, 0, [$BF]:INPUT RTC_DTA
SHIFTIN RTC_DTA, RTC_CLK, 1, [SN, DAK, SAAT,GUN , AY, HAFTA, YIL, MEM]  'OKU
         MEM=SN:GOSUB CEVIR:SN=SAYI
         MEM=DAK:GOSUB CEVIR:DAK=SAYI
         MEM=SAAT:GOSUB CEVIR:SAAT=SAYI
         MEM=GUN:GOSUB CEVIR:GUN=SAYI
         MEM=AY:GOSUB CEVIR:AY=SAYI
         MEM=YIL:GOSUB CEVIR:YIL=SAYI
         MEM=HAFTA:GOSUB CEVIR:HAFTA=SAYI
     low RTC_RST
     return
ZAMAN_YAZ:
         MEM=sn:gosub TERSCEVIR:sn=SAYI
         MEM=DAK:gosub TERSCEVIR:DAK=SAYI
         MEM=SAAT:gosub TERSCEVIR:SAAT=SAYI
         MEM=GUN:gosub TERSCEVIR:GUN=SAYI
         MEM=AY:gosub TERSCEVIR:AY=SAYI
         MEM=YIL:gosub TERSCEVIR:YIL=SAYI
         MEM=HAFTA:GOSUB TERSCEVIR:HAFTA=SAYI
    high  RTC_RST
SHIFTOUT RTC_DTA, RTC_CLK, 0, [$8E, 0]    'WRT Protek açıldı
     low RTC_RST:PAUSEUS 10
    high RTC_RST         
SHIFTOUT RTC_DTA, RTC_CLK, 0, [$BE, SN, DAK, SAAT,GUN , AY, HAFTA, YIL, 128]'YAZ
     low RTC_RST
PAUSEUS 10
  return
CEVIR:
         ONLAR=MEM & %01110000
         ONLAR=ONLAR>>4
         BIRLER=MEM & %00001111
         SAYI=ONLAR*10+BIRLER
  return
TERSCEVIR:
         ONLAR=MEM DIG 1
         ONLAR=ONLAR<<4
         BIRLER=MEM DIG 0
         SAYI=ONLAR+BIRLER
  return
END

http://s3.dosya.tc/server10/qmkd64/TIMER.rar.html

Başlık: Ynt: 12f675 ile ds1302 sorunu
Gönderen: mg1980 - 17 Şubat 2017, 22:36:46
Hocam,
DS1302 kristal frekansı 32.768 midir?
Başlık: Ynt: 12f675 ile ds1302 sorunu
Gönderen: F.T - 17 Şubat 2017, 23:09:45
sn işlemci ile alakalı değilde rtc ile alakalı olmalı.
Başlık: Ynt: 12f675 ile ds1302 sorunu
Gönderen: Andromeda - 17 Şubat 2017, 23:47:51
Saniyenin hızlı çalışması ne demek?
saat ileri gidiyorsa kristale paralel kond.
takılması gerekiyor.hatta ayarlı kond. ile frekans 32768 e ayarlanmalı..
Başlık: Ynt: 12f675 ile ds1302 sorunu
Gönderen: POWER - 18 Şubat 2017, 02:07:50
kristal frekansı 32.768 zaten devreyi isis de deniyorum gerçek devresinde değil.similasyonu başlattığım zaman  saniyenin saymasına gözle bakıldığı zaman zaten anlaşılıyor hızlı ilerlediği.pc nin saniyesiyle karşılaştırdım pc nin saniyesi 39 sn geldiğinde ds1302 bir dakikayı tamamlıyor.yani benim sorunum o klasik saatin ileri yada geri kalması değil.bu sorun isis kaynaklı olabilirmi? fakat aynı proğramı 628a da denediğimde hiç bir problem yok.
Başlık: Ynt: 12f675 ile ds1302 sorunu
Gönderen: ilyas KAYA - 18 Şubat 2017, 03:35:33
Define osc 4 komutunu ekleyin ve İsis den de işlemci osilator ayarını 4 mhz yapın. Gerçek devrede yüksek ihtimal normal çalışır. İsis te zamanlamalari tutturmak icin simulasyon hız ayarlarını yapmanız gerekir ki yinede tam düzgün çalışmıyor.
Başlık: Ynt: 12f675 ile ds1302 sorunu
Gönderen: dursuncemal - 18 Şubat 2017, 04:24:33
hocam kristal frekansi tamam ise benc devreyi gercekte deneyin.buyuk bir ihtimal ile sorun kalmayacaktir.bu konuda simulasyon programina fazla guvenmeyin.