butona basıldıgı sürece devrenin aktif olması

ahmetozken

Üye
Katılım
9 Eki 2007
Mesajlar
82
Puanları
1
merhaba arkadaşlar benim şöyle bir sorunum var aşagıda verdiğim kodlarda devreye elektrik verildiğinde 1 ve 2 nolu ledler sırayla yanıyor aynı anda 3 te yanıyor daha sonra 2.led yanık kalıyor ve ben 1 numaralı butona her bastıgımda sıra ile bir birinci buton bir ikinci buton yanıyor.benim eklemek istediğim şeyse devreye elektrik geldiğinde hiç bir şey çalışmayacak 4 numaralı butona bastıgımda 1 ve 2 numaralı ledler flaşör gibi sırayla bir süre yanacak(aynı anda 3 numaralıda yanacak) daha sonra 2 numaralı led yanık kalıcak yine aynı şekilde 1 numaralı butona her bastıgımda bir 2 numaralı bir 1 numaralı buton yanacak.ve sanırım işin zor kısmı burası ki 4 numaralı basıldıktan 15 dakka içinde tekrar basılsa dahi program en başa dönüp flaşör gibi yanmaya başlamayacak..yardımcı olursanız sevinirim


LIST P=16F628A
INCLUDE "P16F628A.INC"
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF
;----------------------------------------------------------
SAYAC1 EQU H'20' ;SAYAC1 saklayıcısının adresi
SAYAC2 EQU H'21' ;SAYAC2 saklayıcısının adresi

ORG h'00' ;Program kodlarının başlangıcı
CLRF PORTB ;PortB'yi sıfırla
BANKSEL TRISB ;BANK1'e geç
CLRF TRISB ;PortB'nin tüm uçları çıkış
MOVLW H'FF' ;W ? h'FF'
MOVWF TRISA ;PortA'nın tüm uçları giriş
BANKSEL PORTB ;BANK0'a geç
MOVLW h'07' ;W saklayıcıya h’07’ yükle
MOVWF CMCON ;CMCON?W,PORTA girişleri dijital
START
MOVLW h'05' ;W? d'255'
MOVWF PORTB
CALL GECIKME ;Buton arkını ele
MOVLW h'06' ;W? d'255'
MOVWF PORTB
CALL GECIKME ;Buton arkını ele
MOVLW h'02' ;W? d'255'
MOVWF PORTB
CALL GECIKME ;Buton arkını ele

RA0_TEST
BTFSC PORTA,0 ;RA0 butonuna basıldı mı?
GOTO RA0_TEST ;Hayır, RA0 butonunu test et.
ARTIR
MOVLW h'01' ;W? d'255'
MOVWF PORTB
CALL GECIKME ;Buton arkını ele
MOVLW h'00' ;W? d'255'
MOVWF PORTB
CALL GECIKME ;Buton arkını ele
RA7_TEST
BTFSC PORTA,0 ;RA7 butonuna basıldı mı?
GOTO RA7_TEST ;Hayır, RA0 butonunu test et.
AZALT
MOVLW h'02' ;W? d'255'
MOVWF PORTB
CALL GECIKME ;Buton arkını ele
MOVLW h'00' ;W? d'255'
MOVWF PORTB
CALL GECIKME ;Buton arkını ele
GOTO RA0_TEST ;RA0 butonunu test et.

GECIKME ;Gecikme alt programı başlangıcı
MOVLW h'FF' ;Dış döngü (M sayısı)
MOVWF SAYAC1
DONGU1
MOVLW h'FF' ;İç döngü (N sayısı)
MOVWF SAYAC2
DONGU2
DECFSZ SAYAC2, F
GOTO DONGU2
DECFSZ SAYAC1, F
GOTO DONGU1
RETURN


END
;-----------------------------------------------------------
 
Son düzenleme:

Forum istatistikleri

Konular
128,191
Mesajlar
915,726
Kullanıcılar
449,961
Son üye
omr70

Yeni konular

Geri
Üst