Şimdi Ara

PIC programlama hatası

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
751
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Pic programlamaya yeni başaladım. Basit bi alarm devresi kurdum ama benim istediğim gibi çalışmıyor. Program şöyle:
    list p=16F84A
    #include <p16F84A.inc>

    CLRF PORTB
    BSF STATUS,5
    CLRF TRISB
    MOVLW h'FF'
    MOVWF TRISA
    BCF STATUS,5

    BSF PORTB,1

    TEST_PORTA
    BTFSC PORTA,1
    GOTO TEST_PORTA
    GOTO ALARM

    ALARM
    BSF PORTB,2
    BSF PORTB,3

    END

    Burdaki mantığa göre a nın 1 biti 0 ise alarma geçip B nin 2 ve 3 bitleri çıkış olmalı sonra devamlı öyle kalmalı. 2 de led 3 te alarm devresi bağlı. Pici programlayıp kurunca devamlı Port A yı kontrol edior. 0 gelince B nin 2 ve 3 ü çıkış oluo. A1 1 olunca B nin 2 ve 3 ünün çıkışını kesio yani devreyi kesio. Benim istediğim ise A1 i 0 okuduğu andan sonra B nin 2 ve 3 ü devamlı çıkış olsun ve devam etsin.

    birde 2. sorum var:
    Şu gecikme işlemini yazıom programlıom ama gecikmeyi yapmıo.;Anladığım kadarıyla programda gecikmeye gelince duruyor ve ondan önceki işlemler aynen kalıo . gecikme:

    SAYAC1 EQU h'0C'
    SAYAC2 EQU h'0D'

    GECIKME
    MOVLW h'FF'
    MOVWF SAYAC1
    DONGU1
    MOVLW h'FF'
    MOVWF SAYAC2

    DONGU2
    DECFSZ SAYAC2,F
    GOTO DONGU2
    DECFSZ SAYAC1,F
    GOTO DONGU1
    RETURN

    sizce nerde hata yapıom. Pic ustalarından yardım

    teşekkürler







  • INCLUDE "P16F84.INC"
    satırı böyle yap.alakası olabilir.

    butona basınca A1 eksiye bağlanıyormu.yani devren bu şekildemi.
    gecikme programın doğruya benziyor.fakat ana programın tamamını vermemişsin.
    gecikme programı mili-sn süresince gecikme sağlar.çalışmadığını nereden biliyorsun
  • INCLUDE "P16F84.INC" diye deiştirdim bişey farketmedi. Bi de

    ALARM
    BSF PORTB,2
    BSF PORTB,3
    GOTO ALARM

    yazdım program alarm a girdimi devamlı olarak sonsuz döngüye girmesi lazım ama bi işe yaramadı.

    Bi sorum daha olcak : mesala ben programı mplab da derliyorum. derledikten sonra pic up a atıodum ama hata veriodu. hata: Error in hex file on row 1! yazıo.

    bende netten hex'i ve asm'si olan bi dosyayı derledim. Benim derlediğimdeki hex'in ilk satırı netten aldığım hex de gözükmüo. Bende derlediğim her programın hex'inin ilk satırını siliom hem çalışıo hem de pic-up a yüklenio. sence bu neden oluyordur. Mplab ın ayarlarındanmıdır yoksa bilmediğim birşeymi

    örnek benim derlediğim:
    :020000040000FA
    :10000000860183168601FF308500831286148518C9
    :0A00100007280A28061586150A289D
    :00000001FF

    nette olan
    :10000000860183168601FF308500831286148518C9
    :0A00100007280A28061586150A289D
    :00000001FF

    yani :020000040000FA kodu ne ve silince de nasıl çalışıo




  • pic simulator kullanmanı tavsiye ederim, mplab a entegre bir simulator var ya da nette farklı çeşitlerini bulabilirsin. Programını bu simulatora attığında hangi registerlarda ne tür değişimler oluyor adım adım takip edebilme imkanı bulursun. Programı incelemedim ama dediğimi yaparsan sorunu çok rahat çözersin.
  • ayrıca picup ile ilgili sorununu bu linki inceleyerek çözebilirsin kolay gelsin.

    http://www.elektrobilisim.com/content/view/42/30/1/3/
  • derlerken programda f84 ü seçmen lazım.
    asm ve mplab ile çalışmıyorum epey zamandır.
  • saolasın "bjv16" verdiğin adresteki bilgiler işime yaradı. Şu an bazı hatalarımı düzeltiim. Düzgün çalışıyor.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.