pcbway

PIC ile sayıcıda yardım

Başlatan murateroglu, 27 Şubat 2011, 20:37:49

murateroglu

27 Şubat 2011, 20:37:49 Son düzenlenme: 28 Şubat 2011, 19:40:45 murateroglu

İnternetten kendime yakın up down sayıcı buldum.Bunun yanlız down kısmnı kullanıyorum.Röle için çıkış veremedim rakamlar 0 olunca 0 rakam yazıp starta bastığımda 1 olmasını istiyorum. Az bir değişiklikle 16f628a kullanabiliyorum.
not:sayıcıyı dışardan  bir osilator aşağı saydırıyor.
sayıcının asm kodu aşağıdadır.Nerde değişiklik yapmam gerekir lütfen yardım ediniz.

LIST P=16F84A
            #include \"P16F84A.INC\"
     
        __CONFIG _CP_OFF&_PWRTE_ON& _WDT_OFF&_XT_OSC
       
LSB EQU H\'0021\'
MSB EQU H\'0022\'
SAYI1 EQU H\'0023\'
SAYI2 EQU H\'0024\'
SAYI3 EQU H\'0025\'
SAYI4 EQU H\'0026\'
SAYI5 EQU H\'0027\'
DEGER EQU H\'0028\'
BIR EQU H\'0029\'
ON EQU H\'002A\'
YUZ EQU H\'002B\'
BIN EQU H\'002C\'
RAKAM EQU H\'002D\'
RAKAM1 EQU H\'002E\'
TEMP EQU H\'002F\'

BASLA
CLRF MSB
CLRF LSB
BSF STATUS,5
MOVLW B\'11110000\'
MOVWF    TRISA
MOVLW B\'10000000\'
MOVWF TRISB
BCF STATUS,5
CLRF PORTB
CLRF PORTA
CLRF BIR
CLRF ON
CLRF YUZ
CLRF BIN


CLRF SAYI3
CLRF SAYI4   
GOTO ANA

ART

INCF BIN,F
MOVLW .10
SUBWF BIN,W
BTFSS STATUS,Z
GOTO ASON
CLRF BIN
ASON
CALL EKRAN
BTFSS PORTB,7
GOTO ASON
GOTO ANA

AZAL
MOVLW .2
SUBWF BIR,F
BTFSC STATUS,C
GOTO ESON
CLRF BIR
MOVLW .1
SUBWF ON,F
BTFSC STATUS,C
GOTO BIR9
CLRF ON
MOVLW .1
SUBWF YUZ,F
BTFSC STATUS,C
GOTO ON9
CLRF YUZ
MOVLW .1
SUBWF BIN,F
BTFSC STATUS,C
GOTO YUZ9
CLRF BIN
GOTO ESON

YUZ9
MOVLW .9
MOVWF YUZ
ON9
MOVLW .9
MOVWF ON
BIR9
MOVLW .9
MOVWF BIR
ESON
CALL EKRAN
BTFSS PORTA,4
GOTO ESON
GOTO ANA

ANA
CALL EKRAN
BTFSS PORTA,4
GOTO AZAL
BTFSS PORTB,7
GOTO ART
GOTO ANA

EKRAN
MOVLW .2
MOVWF RAKAM
CLRF PORTB
MOVLW .255
MOVWF PORTA
GOSTER


BSF PORTA,2
BSF PORTA,3
MOVF    BIR,W
        CALL TABLO
MOVWF   PORTB
CALL GECIKME
CALL GECIKME
CLRF PORTB


BSF PORTA,2
BSF PORTA,3
MOVF    ON,W
        CALL TABLO
MOVWF   PORTB
CALL GECIKME
CLRF PORTB


BCF PORTA,2
BSF PORTA,3
MOVF    YUZ,W
        CALL TABLO
MOVWF   PORTB
CALL GECIKME
CLRF PORTB


BSF PORTA,2
BCF PORTA,3
MOVF    BIN,W
        CALL TABLO
MOVWF   PORTB
CALL GECIKME
DECFSZ RAKAM,F
GOTO GOSTER
RETURN
GECIKME
MOVLW .5
MOVWF MSB
D11
MOVLW .55
MOVWF LSB
D22
DECFSZ LSB,F
GOTO D22
DECFSZ MSB,F
GOTO D11
RETURN
TABLO
ADDWF PCL,F
RETLW h\'3F\'
RETLW h\'06\'
RETLW h\'5B\'
RETLW h\'4F\'
RETLW h\'66\'
RETLW h\'6D\'
RETLW h\'7D\'
RETLW h\'07\'
RETLW h\'7F\'
RETLW h\'6F\'
RETLW h\'77\'
RETLW h\'7C\'
RETLW h\'39\'
RETLW h\'5E\'
RETLW h\'79\'
RETLW h\'71\'
RETLW h\'80\'
END

subram

hocam merhaba yardım etmek istedim ama yazdıklarınızı anlayamadım. biraz daha detaylı şekilde açıklar mısınız?

murateroglu

ramoon ilgin için sağol.Ben zaman rölesi aradım ama istediğimi bulamadım. Bende Ahmet hocanın 9999 diye bir devresini buldum.Bunun 1 ler ve 10 lar hanesini görünmez yaparak pic in içerisinde sıfırdan 100 e kadar dışardan bir osilatorle saydırıyorum.Yani 100 rakamını 60 saniye yapıyorum. O zamanda baştaki iki rakam (binler ve yüzler hanesi) Dakika olarak çalışıyor.Buraya kadar işlem tamam.
Benim istediğim start düğmesine basıldığı zaman pic in RA1 veya RA0 bacağı \"1\" komutu versin rakamlar 0 olduğu zaman da \"0\" komutu versin.
Devreyi hem 16f84 hemde 16f628 le çalıştırabiliyorum.

subram

hocam zaman ile ilgili olarak bir iş yapacaksanız tavsiyem RTC entegresi kullanmanız. tam olark nasıl bir zaman rölesi istiyorsunuz?

murateroglu

zamanı ayarlarken 10 ar dk atlayarak sayacak düşerken normal saat evresi olarak geri sayacak fakat saniyeler gözükmeyecek.Yani bir mikrodalganın üzerindeki zaman ayar rölesi gibi.
Ayarlarken kolayca ayarlanacak.Geri saymaya başlayınca saat gibi sayacak.

subram

şöyle bişey olacak.  ekranda normalde 00 görrünecek. biz bunu 10\'un katları olarak ayarlayacağız. 10-20-30 dk gibi. sonra start diyeceğiz ve ayarladığımız süreden geriye sayacak. 00 olduğunda röle çekecek. bu mudur? doğru mu anlamışım?

murateroglu

starta bastığımızda röle çekecek. 0 olduğunda röle bırakacak. tam istediğimiz budur. Buna benzer bir proje varsa o da işimi görür.

subram

buna benzer var mı bilmiyorum ama böyle bişey yapılabilir.  devreyi yapabilecekseniz malzeme listesi.

1 adet DS1302
1 adet 16f84
buton
lcd yada 7 segment dispay.
bc237
röle

bunlar kabaca lazım olacak malzemeler. bunun yanında ufak tefek malzemeler (diyot kondasatör kristal vs...) lazım olacak.

murateroglu

28 Şubat 2011, 21:41:20 #8 Son düzenlenme: 28 Şubat 2011, 21:43:01 murateroglu
bu malzemeler var ama benim için sorun olan asm kodu.Ben kod yazmayı pek bilmiyorum.Sadece yazılı asm kodlarında ufak tefek değişiklikler yapabiliyorum.Ben büyük çoğunlukla analog elektronik üzerine bilgi sahibiyim.
Zaten yukarıda gösterdiğim devre elimde hazır var onun üstünde tadilat yapabilirmiyim?

subram

yok zor olur hatta olmaz gibi. ek olarak entegre kristal vs.. birde  asm olması şart mı? bu arada size pm attım kontrol edin.