16F628A Çalışırken 67 sn Çalışmaya Ara Veriyor

necdet_77

Üye
Katılım
9 Ocak 2012
Mesajlar
3
Puanları
1
Yaş
35
Merhaba arkadaşlar.
Benim sorunum 628A ile yaptığım LED Animasyon devresi ilk çalıştırdığımdan yaklaşık 10-12 sn sonra duruyor , 66 ile 68 sn arasında bir süre zarfında tepki vermiyor , sonra kendiliğinden programlandığı şekilde çalışmaya devam ediyor. Bu kesinti her çalışmada sadece bir defa oluşuyor.
Sorunun çözümü hakkında yardımcı olabilir misiniz ?
Konular arasında bu tür bir sorun aradım ama bulamadım. Gözümden kaçtıysa affola.
 
Eğer sakıncası yok ise kodu burada bizimle paylaşabilir misin?
 
Hallettim hocam
Kesme kullanmamıştım ama kod satırında kesmeleri açık bırakmışım. Kavrayamadığım bir olaydan ötürü kesmeye giriyormuş sanırım .
Kod üzerinde kesme ile ilgili satırları kaldırınca düzgün çalışmaya başladı.

ilginize çok teşekkür ederim , sağlıcakla kalın .
 
Hallettim hocam
Kesme kullanmamıştım ama kod satırında kesmeleri açık bırakmışım. Kavrayamadığım bir olaydan ötürü kesmeye giriyormuş sanırım .
Kod üzerinde kesme ile ilgili satırları kaldırınca düzgün çalışmaya başladı.

ilginize çok teşekkür ederim , sağlıcakla kalın .

Ne demek, estağfurullah, kolay gelsin...
 
Merhaba ben Assembly dili ile animasyon programı yazdım. Devrem 4x3 tane ledden oluşan basit bir devre. entegre olarakpic16f628a'yı kullandım. Isıs'ta similasyonu gazyet güzel gösterdi fakatt bu programı pice attığımda sadece ilk led yanıyor. Devrem bozukmu diye baktım sıkıntı yok devrede başkalarının farklı bir dilde yazdığı programı takır takır çalıştırıyor fakat benim yazdığım programı çalıştırmıyor yardım ederseniz sevinirim.

buda programım:

Kod:
;*************************************************************
;****** ALPEREN KOLAMUÇ
;******
;*************************************************************
LIST P=16F628A
INCLUDE "P16F628A.INC"
SAYAC1 EQU H'0C'
SAYAC2 EQU H'0D'
SAYAC3 EQU H'0E'
SAYAC4 EQU H'0F'
SAYAC5 EQU H'10'
SAYAC6 EQU H'11'
SAYAC7 EQU H'12'
SAYAC8 EQU H'13'
SAYAC9 EQU H'14'
SAYACE EQU H'15'
SAYACA EQU H'16'
SAYACSS EQU H'17'
SAYACT EQU H'20'
SAYACS EQU H'21'
BSF STATUS,5
CLRF TRISA
CLRF TRISB
BCF STATUS,5
CALL TEK
CALL ESKORT
CALL SAGSOL
CALL AD
CALL YUZ
CALL SNAKE
;***********************************************************
SNAKE MOVLW D'2'
MOVWF SAYACS
SBAS MOVLW B'00001'
MOVWF PORTA
MOVLW B'00000010'
MOVWF PORTB
CALL TIMER
MOVLW B'00000011'
MOVWF PORTB
CALL TIMER
MOVLW B'00010011'
MOVWF PORTB
CALL TIMER
MOVLW B'00110011'
MOVWF PORTB
CALL TIMER
MOVLW B'01110011'
MOVWF PORTB
CALL TIMER
MOVLW B'11110011'
MOVWF PORTB
CALL TIMER
MOVLW B'11111011'
MOVWF PORTB
CALL TIMER
MOVLW B'01001'
MOVWF PORTA
CALL TIMER
MOVLW B'01101'
MOVWF PORTA
CALL TIMER
MOVLW B'01111'
MOVWF PORTA
CALL TIMER
MOVLW B'01110'
MOVWF PORTA
CALL TIMER
MOVLW B'11111100'
MOVWF PORTB
CALL TIMER
MOVLW B'11101100'
MOVWF PORTB
CALL TIMER
MOVLW B'11001100'
MOVWF PORTB
CALL TIMER
MOVLW B'10001100'
MOVWF PORTB
CALL TIMER
MOVLW B'00001100'
MOVWF PORTB
CALL TIMER
MOVLW B'00000100'
MOVWF PORTB
CALL TIMER
MOVLW B'00110
MOVWF PORTA
CALL TIMER
MOVLW B'00010'
MOVWF PORTA
CALL TIMER
MOVLW B'00000'
MOVWF PORTA
CALL TIMER
DECFSZ SAYACS,F
GOTO SBAS
RETURN
;------------------------------------------------------
SAGSOL CALL CLR
MOVLW D'5'
MOVWF SAYACSS
SS MOVLW B'01111'
MOVWF PORTA
CALL TIMER

CLRF PORTA ;2. SÜTUNA GEÇTİ 1. SÜTUN SÖNDÜ
MOVLW B'00001111'
MOVWF PORTB
CALL TIMER

MOVLW B'11110000' ;3.SÜTUNA GEÇTİ 2.SÜTUN SÖNDÜ
MOVWF PORTB
CALL TIMER

MOVLW B'00001111' ;2. SÜTUNA GEÇTİ 3. SÜTUN SÖNDÜ
MOVWF PORTB
CALL TIMER

CLRF PORTB ;1. SÜTUNA GEÇTİ 2.SÜTUN SÖNDÜ
MOVLW B'01111'
MOVWF PORTA
CALL TIMER
DECFSZ SAYACSS
GOTO SS
RETURN
;---------------------------------------------------------------------------------------------------------------
AD CALL CLR ;TEMİZLİK YAPILDI VE AD YAZMA İŞLEMİNE GEÇİLDİ.
;---------------------------------------------------------------------------------------------------------------
MOVLW B'01110'
MOVWF PORTA ;A
MOVLW B'11100101'
MOVWF PORTB
CALL ADTIMER
CALL CLR
CALL TIMER
;-----------------------------------------------------------
CLRF PORTA
MOVLW B'10001111'
MOVWF PORTB ;L
CALL ADTIMER
CALL CLR
CALL TIMER
;-----------------------------------------------------------
CLRF PORTB
MOVLW B'01111'
MOVWF PORTA
MOVLW B'01110101' ;P
MOVWF PORTB
CALL ADTIMER
CALL CLR
CALL TIMER
;-----------------------------------------------------------
CLRF PORTA
MOVLW B'01111'
MOVWF PORTA
MOVLW B'10111011' ;E
MOVWF PORTB
CALL ADTIMER
CALL CLR
CALL TIMER
;----------------------------------------------------------
CLRF PORTB
MOVLW B'00000001'
MOVWF PORTB
MOVLW B'01111'
MOVWF PORTA ;r
CALL ADTIMER
CALL CLR
CALL TIMER
;-----------------------------------------------------------
CLRF PORTA
MOVLW B'01111'
MOVWF PORTA
MOVLW B'10111011' ;E
MOVWF PORTB
CALL ADTIMER
CALL CLR
CALL TIMER
;------------------------------------------------------------
MOVLW B'01111'
MOVWF PORTA
MOVLW B'11110001'
MOVWF PORTB ;n
CALL ADTIMER
CALL CLR
CALL TIMER
RETURN
;---------------------------------------------------------------------
YUZ CALL CLR
MOVLW D'5'
MOVWF SAYAC4
YUZBAS MOVLW B'01101001'
MOVWF PORTB ;GÜLÜCÜK
MOVLW B'01111'
MOVWF PORTA
CALL ADTIMER
CLRF PORTA
CLRF PORTB
CALL MINITIMER
;---------------------------------------------------------------------
MOVLW B'01101111'
MOVWF PORTB ;TRİPLER
CALL ADTIMER
CLRF PORTB
CALL MINITIMER
;-------------------------------------------------------------------------
MOVLW B'01101111'
MOVWF PORTB
MOVLW B'01001' ;AĞLAYIŞ
MOVWF PORTA
CALL ADTIMER
CLRF PORTB
CLRF PORTA
CALL MINITIMER

DECFSZ SAYAC4,F
GOTO YUZBAS
RETURN
;-----------------------------------------------------------------------------
ESKORT CALL CLR
MOVLW D'10'
MOVWF SAYACE
DONGU CLRF PORTA
CLRF PORTB
MOVLW B'11110000'
MOVWF PORTB
CALL MINITIMER
CLRF PORTB
CALL MINITIMER
MOVLW B'11110000'
MOVWF PORTB
CALL MINITIMER
CLRF PORTB
CALL MINITIMER
MOVLW B'11110000'
MOVWF PORTB
CALL MINITIMER
CLRF PORTB
CALL MINITIMER
MOVLW B'01111'
MOVWF PORTA
CALL MINITIMER
CLRF PORTA
CALL MINITIMER
MOVLW B'01111'
MOVWF PORTA
CALL MINITIMER
CLRF PORTA
CALL MINITIMER
MOVLW B'01111'
MOVWF PORTA
CALL MINITIMER
CLRF PORTA
CALL MINITIMER
MOVLW B'01111'
MOVWF PORTA
CALL MINITIMER
CLRF PORTA
CALL MINITIMER
DECFSZ SAYACE,F
GOTO DONGU
RETURN

;-----------------------------------------------------
TEK MOVLW D'10'
MOVWF SAYACT
TEKBAS MOVLW B'00001'
MOVWF PORTA
CALL MINITIMER
CALL CLR
MOVLW B'00000001'
MOVWF PORTB
CALL MINITIMER
MOVLW B'00010000'
MOVWF PORTB
CALL MINITIMER
MOVLW B'00100000'
MOVWF PORTB
CALL MINITIMER
MOVLW B'01000000'
MOVWF PORTB
CALL MINITIMER
MOVLW B'10000000'
MOVWF PORTB
CALL MINITIMER
MOVLW B'00001000'
MOVWF PORTB
CALL MINITIMER
CALL CLR
MOVLW B'01000'
MOVWF PORTA
CALL MINITIMER
MOVLW B'00100'
MOVWF PORTA
CALL MINITIMER
MOVLW B'00010'
MOVWF PORTA
CALL MINITIMER
CALL CLR
DECFSZ SAYACT,F
GOTO TEKBAS
RETURN
;---------------------------------------------------------
MINITIMER MOVLW D'255'
MOVWF SAYAC8
D5 MOVLW D'255'
MOVWF SAYAC7
D9 DECFSZ SAYAC7,F
GOTO D9
DECFSZ SAYAC8,F
GOTO D5
RETURN

;--------------------------------------------------
TIMER MOVLW D'200'
MOVWF SAYAC2
D2 MOVLW D'200'
MOVWF SAYAC1
D1 DECFSZ SAYAC1,F
GOTO D1
DECFSZ SAYAC2,F
GOTO D2
RETURN

;--------------------------------------------------------------
ADTIMER MOVLW D'255'
MOVWF SAYAC6
MOVLW D'255'
MOVWF SAYAC3
D3 MOVLW D'255'
MOVWF SAYAC5
DECFSZ SAYAC3,F
GOTO D3
D4 DECFSZ SAYAC5,F
GOTO D4
DECFSZ SAYAC6,F
GOTO D3
RETURN
;----------------------------------------------------------------
CLR CLRF PORTA
CLRF PORTB
RETURN
;----------------------------------------------------------------
END
 
En azından bir devreni filan da koysaydın.
Ona göre yorum yapardım.
Ve kodun çok düzensiz ve hatalar var.

Ayrıca PIC'in port uçları bir led yakacak kadar mA çekebilmeni sağlar (20mA).
Birden fazla LED süreceksen, transistör ile sürmelisin.
Proteus gerçek hayat gibi görmez her şeyi.

Gerekli ayarları yaparak, kodu yeniden düzenledim.
Hataları ve eksikleri düzelttim ve MPLAB projesi olarak hazırladım.
Aşağıdaki bağlantıyı kullanarak hazırladığım projeyi indirebilirsin.
Projenin içinde hazırlanmış Protues dosyası da var.
Bir de benim derlediğim HEX dosyasını yükle bakayım PIC'e.
Tekrardan söylüyorum;
Birden fazla LED süreceksen transistör kullan.
Ancak ben, senin koduna bakarak, devreyi Proteus'ta hazırladığımda;
Her bir LED'i bir port çıkışına bağladığını sapt ettim.
O yüzden bu devrede transistör gerekmez.
 
Teşekkür ederim uğraştığınız için. Sizin hex çalıştı. Fakat ben kendi hatamı sizin yazdığınıza bakarak buldum.
Hata değişken tanımlarken H'21' den başlamışsınız ben onu pic16f84a nınkiyle karıştırmışım ve H'0c' ile başlamışım bu yüzden animasyonun ilk kodu çalışıyordu.
Programda onu hallettikten sonra benim programda gayet güzel çalıştı ısıs ve asm si burada hatta asm yi biraz daha geliştirdim ve buton ile eskort animasyonundan diğerlerine geçiş sağladım fakat aklıma takılı bir şey kaldı benim devrem rezonatörsüz çalışıyor normalde pic tetiklenmeden komut işlemezmiydi ?
 
PIC içindeki dahili osilatörü kullanmış olabilirsin.
 

Yeni mesajlar

Forum istatistikleri

Konular
127,966
Mesajlar
913,951
Kullanıcılar
449,611
Son üye
ramazansanli@

Yeni konular

Geri
Üst