16f84A ile LED yakma hakkında bir soru

omerce

Üye
Katılım
17 Ocak 2012
Mesajlar
12
Puanları
1
Yaş
45
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..
 

MAIN_LOOP

Onursal Üye
Onursal Üye
Katılım
28 Ara 2011
Mesajlar
2,184
Puanları
935
Yaş
42
Konum
ANKARA
mclr ucunu +5 e bağlarsan programın çalışır en önemli ucu boş bırakmışsın.
 
Konu Sah

omerce

Üye
Katılım
17 Ocak 2012
Mesajlar
12
Puanları
1
Yaş
45
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
 
Konu Sah

omerce

Üye
Katılım
17 Ocak 2012
Mesajlar
12
Puanları
1
Yaş
45
Yok o tool 2.5 volt veriyormuş. Onun yerine DC Generator kullandım 5V gördüm ancak yinede yanmadı LED
 

MAIN_LOOP

Onursal Üye
Onursal Üye
Katılım
28 Ara 2011
Mesajlar
2,184
Puanları
935
Yaş
42
Konum
ANKARA
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.
 
Konu Sah

omerce

Üye
Katılım
17 Ocak 2012
Mesajlar
12
Puanları
1
Yaş
45
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
 

erdi001

Üye
Katılım
13 Ara 2006
Mesajlar
427
Puanları
1
Kodda port tanımlaması yapmamışsın bank1 e gidip movlw h'FF' movwf trisb şeklinde port tanımla çalışır.
 

ULAGA

Üye
Katılım
9 Ocak 2012
Mesajlar
589
Puanları
1
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
 

Yeni mesajlar

Forum istatistikleri

Konular
122,204
Mesajlar
861,911
Kullanıcılar
438,703
Son üye
deneyimligenco

Yeni konular

Üst