16f84A ile LED yakma hakkında bir soru

omerce

Üye
Katılım
17 Ocak 2012
Mesajlar
12
Puanları
1
Yaş
46
Merhaba,

Günlerdir uğraştığım ama bir türlü yapamadığım bir konuda sizlerin görüşlerini almak istiyorum.

16f84a pic i ile çok basit bir LED yakma şeması oluşturdum ancak ne yaptıysam LED i yakmayı başaramadım.

Bu konuda yardımlarınızı bekliyor olacağım.

Devre şemam

KODLAR
Kod:
list P=16F84
include <p16f84.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC#DEFINE LED PORTB, 2 ; LED'imizin bağlı olduğu pin'i tanımladık.
#DEFINE YANIK 0X20, 0
SAYAC_1 EQU 0X21 ; Program içinde kullanacağımız sayaç için gerekli
SAYAC_2 EQU 0X22 ; olan değişkenler.
ORG 0x000
GOTO main
GECIKME
MOVLW D'255'
MOVWF SAYAC_1
MOVWF SAYAC_2
SAYAC_AZALT
MOVWF SAYAC_1
SAYAC_1_AZALT
DECFSZ SAYAC_1
GOTO SAYAC_1_AZALT
DECFSZ SAYAC_2
GOTO SAYAC_AZALT
RETURN
LED_YAK_SONDUR
BTFSC LED
CALL LEDYAK ; Basılıysa LED'in durumunu tersle.
GOTO LED_YAK_SONDUR
main
CLRF PORTB
CALL LED_YAK_SONDUR
LEDYAK
BSF LED
CALL GECIKME
CALL GECIKME
CALL GECIKME
END

Yorumlarınızı bekliyorum..
 
mclr ucunu +5 e bağlarsan programın çalışır en önemli ucu boş bırakmışsın.
 
Denedim ancak yine yanmadı LED,

+5v için Terminaller (ISIS Pro) bölümünde bulunan POWER tool unu kullanıyorum ama doğru bir yaklaşım mı? Yardımcı olabilirsen çok sevinirim
 
Yok o tool 2.5 volt veriyormuş. Onun yerine DC Generator kullandım 5V gördüm ancak yinede yanmadı LED
 
hayır power toolu doğrudur 5v verir.
picin üzerine sağ tıklayıp sonra terar sol tıklayıp açarsan kristal ayarı göreceksin oraya kristalı 4mhz olarak yazarsan ve program kısmınada hex kodunu yuklersen çalışır.bağlantılar doğru şemadaki kristali komple sokebilirsin onun bir fonksiyonu yok.
 
Yok hocam çalışmadı kendim kurcalayarak bulmam gerekiyor sanırım projeyi build ederek HEX oluşmasında sorun var. Yardımların için sağol
 
Kodda port tanımlaması yapmamışsın bank1 e gidip movlw h'FF' movwf trisb şeklinde port tanımla çalışır.
 
Kodda port tanımlaması yapmamışsın bank1 e gidip movlw h'FF' movwf trisb şeklinde port tanımla çalışır.

Senin için kodu düzenledim.
Devre tamamıyla çalışmaktadır.
Aşağıdaki bağlantı ile hem koda ve derlenmiş haline hem de Proteus dosyasına ulaşabilirsin.


Önemli Not : MPLAB'da hızlı derleme yapacağın zaman; kodu 16F84A için yazıyorsan, Configure menüsünden Select Device bölümüne girip, Device olarak PIC16F84A'yı seçmelisin. Yoksa kodun %100 doğru olsa dahi hatalı derlenir.

flashled.png


Kod:
LIST        p=16F84A
#INCLUDE    <p16f84.inc>

__CONFIG _CP_OFF & _WDT_OFF & _XT_OSC

#DEFINE        LED        PORTB, 2
#DEFINE     YANIK        0X20, 0
SAYAC_1        EQU        0X21
SAYAC_2        EQU        0X22

    ORG 0x0000

main
    CLRF    PORTB
    BSF    STATUS,RP0        ;PORT I/O ayarları için BANK1'e geçiliyor...
    MOVLW    B'00000000'        ;PORTA çıkış olarak ayarlanıyor...
    MOVWF    TRISA
    MOVLW    B'00000000'        ;PORTB çıkış olarak ayarlanıyor...
    MOVWF    TRISB
    BCF    STATUS,RP0        ;PORT I/O ayarları bitti...

start
    BSF    LED
    CALL    delay
    BCF    LED
    CALL    delay
    GOTO    start

delay
    MOVLW 0xFF
    MOVWF SAYAC_1
    MOVWF SAYAC_2
SAYAC_AZALT
    MOVWF SAYAC_1
SAYAC_1_AZALT
    DECFSZ SAYAC_1
    GOTO SAYAC_1_AZALT
    DECFSZ SAYAC_2
    GOTO SAYAC_AZALT
    RETURN

    END
 

Forum istatistikleri

Konular
127,967
Mesajlar
913,969
Kullanıcılar
449,612
Son üye
esperran

Yeni konular

Geri
Üst