Şimdi Ara

pic programlama için yardımmmmm

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
32
Cevap
0
Favori
2.968
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • selam arkadaşlar karaköyden basit bir pic programlayıcı ve 16f84a aldım.bir de bu pic ile ilgili iki kitap okudum ve ic programını da indirdim.programları mplab'da yazıyorum simule ediyorum gayet güzel çalışıyor.yaptığım programlar port b'ye bağlı ledleri değişik biçimlerde yakma işine yarıyor.programı entegreye yüklüyorum devreyi breadboard'a kuruyorum programın baş kısmı çalışıyor diğer kısımlar çalışmıyor.hep aynı işlemi yapıp duruyor.belli yere kadar gelip yeniden başa dönüyor.delirecem tam bir haftadır bununla uğraşıyorum bir türlü çözemedim.lütfen yardım edin.



  • Yazdigin programin kodunu burada yayinlarsan yardimci olmaya calisabilirim. Sanirim programin kodunda birseyler var...
  • quote:

    Orijinalden alıntı: BlueICE

    Yazdigin programin kodunu burada yayinlarsan yardimci olmaya calisabilirim. Sanirim programin kodunda birseyler var...
    anladığım kadarıyla aldığın hazır program komutlarında sonsuz döngü kullanılmış bu yüzden sürekli program başa dönüyor eğer program komutlarını yollarsan yardımcı olabiliriz
  • Arkadasların dedigi gibi programı gonderirsen yardımcı olabiliriz. Asemblerde cok kolay hata yapılır, eğer pic konusunda yeni isen sana picbasic tavsiye edebilirim. Kullanımı çok kolay ve asemblerde 20 sayfalık programın yaptıgını 1 sayfada halledebiliyorsun (derlerken asm dosyasına bakarsan 30 sayfa oluyo ama hobi devrelerde o kadar önemli değil).

    İnternette livro picbasic arattırırsan çok iyi bir kaynağa sahip olabilirsin
    derleyici olarakta pibaricpro yu tavsiye edebilirim (windows penceresinde çalışıyo)
  • quote:

    Orijinalden alıntı: icemg

    Arkadasların dedigi gibi programı gonderirsen yardımcı olabiliriz. Asemblerde cok kolay hata yapılır, eğer pic konusunda yeni isen sana picbasic tavsiye edebilirim. Kullanımı çok kolay ve asemblerde 20 sayfalık programın yaptıgını 1 sayfada halledebiliyorsun (derlerken asm dosyasına bakarsan 30 sayfa oluyo ama hobi devrelerde o kadar önemli değil).

    İnternette livro picbasic arattırırsan çok iyi bir kaynağa sahip olabilirsin
    derleyici olarakta pibaricpro yu tavsiye edebilirim (windows penceresinde çalışıyo)
    Eğer PIC lere yeni başladıysan PIC BASIC tavsiye etmem ilk önce ASSEMBLY yi kavrayıp,PIC içerisindeki register'lara tam anlamıyla hakim olmalısın belki sonra yüksek seviyeli dillerle çalışırsın eğer direk PIC BASIC gibi bir dile girersen o işten bir b..k anlamazsın bir hata çıktı mı halldemezsin kritik zamanlama olaylarını halledemezsin yani PIC hakkında hiç birşey öğrenemzsin Orhan ALTINBAŞAK'ın kitabında bile ÖNSÖZ de adam ilk önce ASM dilini öğrenmelisiniz diyor ondan sonra bu kitabı okuyun diyor yeni başlayan arkadaşları yalnış yönlendirmeyelim

    Arkadaşım sen program kodlarını gönderirsen daha yarımcı oluruz bu arada misal karaşimşek uygulaması gibi birşey yaptın eğer yazdığın tablo yani led hareketleri belirli bir kalıpta yanıp daha sonra başa dönüp tekrar yanı kalıbı yakıyorsa bu SONSUZ DÖNDÜ değildir Program counter yazdığın kodları adresler ve başa dönder sonsuz döngüde ise program counter sabit bir adreste kalır ve o komutu işler dolasıyla buna normalde program çökmesi denir sen kodları yolla bakalım




  • ;===========DENEME.ASM=========
    LIST P=16F84A
    PORTB EQU H'06'
    STATUS EQU H'03'
    TRISB EQU H'86'
    SAYAC EQU H'0C'
    SAYAC1 EQU H'0D'
    SAYAC2 EQU H'0E'
    CLRF PORTB
    BSF STATUS, 5
    CLRF TRISB
    BCF STATUS, 5
    START
    MOVLW D'5' ;5 kez tekrarla
    MOVWF SAYAC
    PROGRAM1
    MOVLW B'11111110'
    MOVWF PORTB
    TEKRAR1
    CALL GECIKME ; yarım sn gecikme yap
    RLF PORTB, F ; sola kaydir
    BTFSC STATUS, 0
    GOTO TEKRAR1
    DECFSZ SAYAC, F
    GOTO PROGRAM1
    PROGRAM2
    MOVLW D'5'
    MOVWF SAYAC
    TEKRAR2
    CALL GECIKME
    MOVLW H'FF'
    MOVWF PORTB ;hepsini yak
    CALL GECIKME
    COMF PORTB ;hepsini sondur
    CALL GECIKME
    DECFSZ SAYAC, F
    GOTO TEKRAR2
    PROGRAM3
    MOVLW D'5'
    MOVWF SAYAC
    TEKRAR3
    CALL GECIKME
    MOVLW H'0F'
    MOVWF PORTB ;dort tane yak
    CALL GECIKME
    SWAPF PORTB ;diger dordunu yak
    CALL GECIKME
    DECFSZ SAYAC, F
    GOTO TEKRAR3
    PROGRAM4
    MOVLW D'5'
    MOVWF SAYAC
    TEKRAR4
    MOVLW B'01111111'
    MOVWF PORTB
    TEKRAR5
    CALL GECIKME
    RRF PORTB, F ;saga kaydır
    BTFSC STATUS, 0
    GOTO TEKRAR5
    DECFSZ SAYAC, F
    GOTO TEKRAR4
    PROGRAM5
    MOVLW D'5'
    MOVWF SAYAC
    TEKRAR6
    CALL GECIKME
    MOVLW B'01010101'
    MOVWF PORTB
    CALL GECIKME
    COMF PORTB ;tersle
    DECFSZ SAYAC, F
    GOTO TEKRAR6
    GOTO START
    GECIKME
    MOVLW H'FF'
    MOVWF SAYAC1
    DONGU1
    MOVLW D'50'
    MOVWF SAYAC2
    DONGU2
    DECFSZ SAYAC2, F
    GOTO DONGU2
    DECFSZ SAYAC1, F
    GOTO DONGU1
    RETURN
    END


    arkadaslar yaptığım program bu ,burada sadece sola kaydırma işlemi çalışıyor hep aynısını yapıyor. osilatorun hızını yavaşlattığımda sola kaydırma işlemini yarım yapıp başa dönüyor.yardımcı olursanız çok sevinirim.teşekkürler bir de sütünlar burada gözükmüyor normalde komutlar orta sütünda döngülerin başlangıçları baş sütünda bu programı mplab da simüle ettim animate yaptım düzgün çalışıyor.




  • quote:

    Orijinalden alıntı: sitegun

    ;===========DENEME.ASM=========
    LIST P=16F84A
    PORTB EQU H'06'
    STATUS EQU H'03'
    TRISB EQU H'86'
    SAYAC EQU H'0C'
    SAYAC1 EQU H'0D'
    SAYAC2 EQU H'0E'
    CLRF PORTB
    BSF STATUS, 5
    CLRF TRISB
    BCF STATUS, 5
    START
    MOVLW D'5' ;5 kez tekrarla
    MOVWF SAYAC
    PROGRAM1
    MOVLW B'11111110'
    MOVWF PORTB
    TEKRAR1
    CALL GECIKME ; yarım sn gecikme yap
    RLF PORTB, F ; sola kaydir
    BTFSC STATUS, 0
    GOTO TEKRAR1
    DECFSZ SAYAC, F
    GOTO PROGRAM1
    PROGRAM2
    MOVLW D'5'
    MOVWF SAYAC
    TEKRAR2
    CALL GECIKME
    MOVLW H'FF'
    MOVWF PORTB ;hepsini yak
    CALL GECIKME
    COMF PORTB ;hepsini sondur
    CALL GECIKME
    DECFSZ SAYAC, F
    GOTO TEKRAR2
    PROGRAM3
    MOVLW D'5'
    MOVWF SAYAC
    TEKRAR3
    CALL GECIKME
    MOVLW H'0F'
    MOVWF PORTB ;dort tane yak
    CALL GECIKME
    SWAPF PORTB ;diger dordunu yak
    CALL GECIKME
    DECFSZ SAYAC, F
    GOTO TEKRAR3
    PROGRAM4
    MOVLW D'5'
    MOVWF SAYAC
    TEKRAR4
    MOVLW B'01111111'
    MOVWF PORTB
    TEKRAR5
    CALL GECIKME
    RRF PORTB, F ;saga kaydır
    BTFSC STATUS, 0
    GOTO TEKRAR5
    DECFSZ SAYAC, F
    GOTO TEKRAR4
    PROGRAM5
    MOVLW D'5'
    MOVWF SAYAC
    TEKRAR6
    CALL GECIKME
    MOVLW B'01010101'
    MOVWF PORTB
    CALL GECIKME
    COMF PORTB ;tersle
    DECFSZ SAYAC, F
    GOTO TEKRAR6
    GOTO START
    GECIKME
    MOVLW H'FF'
    MOVWF SAYAC1
    DONGU1
    MOVLW D'50'
    MOVWF SAYAC2
    DONGU2
    DECFSZ SAYAC2, F
    GOTO DONGU2
    DECFSZ SAYAC1, F
    GOTO DONGU1
    RETURN
    END


    arkadaslar yaptığım program bu ,burada sadece sola kaydırma işlemi çalışıyor hep aynısını yapıyor. osilatorun hızını yavaşlattığımda sola kaydırma işlemini yarım yapıp başa dönüyor.yardımcı olursanız çok sevinirim.teşekkürler bir de sütünlar burada gözükmüyor normalde komutlar orta sütünda döngülerin başlangıçları baş sütünda bu programı mplab da simüle ettim animate yaptım düzgün çalışıyor.
    Normalde yazdığın program kodlarında bir hata gözükmüyor belkide devren doğru çalışıyor sen başka bişey yapmak istiyorsun şu yazdığın kodlarla ledler senin belirlediğin kalıplarda yanar ve başa döner zaten böyle yazmışsın yalnız hatan şu sola ve sağa kaydırma işlemlerinde ilk önce STATUS register'ının C bitini "1" yapmalısın yani kaydırmaya başlamadan önce ilk önce C bitini set etmelisin bu karışıklıkları önler bir diğer konu sen PIC konusunda yenisin galiba yazdığın program biraz saçma olmuş eğer kendin yazdıysan başka yerden aldıysan o adam saçma yazmış ilk önce programda ledler belirli kalıplar halinde yanıyor bu kalıpları program içerisinde değiştirmek yerine bir LOOKUP tablosu hazırlaybilirsin hesaplanmış goto komutu ile yani gidilecek adres ile PCL içeriği toplanarak tablodan istediğin değeri alıp ana programa dönebilirsin genelde bu yöntem kullanılır zaten sen ilk önce sağa ve sola kaydırma işlemini yap daha sonraki kalıpları tablodan çağır istersen kaydırma işleminide tablodan çağırırsın ama biraz uzar tablo sen illa ben kaydırma işlemini öğrenicem diyorsan kaydırmaya başlamadan evvel C bitini set et

    Tablo'yu is şöyle kullanabilirsin

    INDEX EQU 0X20
    COUNT EQU 0X21
    CLRF INDEX
    **TEKRAR**
    MOVLW 5
    MOVWF COUNT
    INCF INDEX,F
    MOVF INDEX,W
    CALL LOOKUP
    MOVWF PORTB
    DECFSZ COUNT,F
    GOTO TEKRAR
    ......................................Burada programını bitirebilir yada sonsuz döngüye sokabilirsin

    **LOOKUP**

    ADDWF PCL,F

    RETLW 0XFF
    RETLW 0X0F
    RETLW 0XF0
    .....................

    Umarım işini görür kolay gelsin




  • quote:

    Orijinalden alıntı: PanDa

    Normalde yazdığın program kodlarında bir hata gözükmüyor belkide devren doğru çalışıyor sen başka bişey yapmak istiyorsun şu yazdığın kodlarla ledler senin belirlediğin kalıplarda yanar ve başa döner zaten böyle yazmışsın yalnız hatan şu sola ve sağa kaydırma işlemlerinde ilk önce STATUS register'ının C bitini "1" yapmalısın yani kaydırmaya başlamadan önce ilk önce C bitini set etmelisin bu karışıklıkları önler bir diğer konu sen PIC konusunda yenisin galiba yazdığın program biraz saçma olmuş eğer kendin yazdıysan başka yerden aldıysan o adam saçma yazmış ilk önce programda ledler belirli kalıplar halinde yanıyor bu kalıpları program içerisinde değiştirmek yerine bir LOOKUP tablosu hazırlaybilirsin hesaplanmış goto komutu ile yani gidilecek adres ile PCL içeriği toplanarak tablodan istediğin değeri alıp ana programa dönebilirsin genelde bu yöntem kullanılır zaten sen ilk önce sağa ve sola kaydırma işlemini yap daha sonraki kalıpları tablodan çağır istersen kaydırma işleminide tablodan çağırırsın ama biraz uzar tablo sen illa ben kaydırma işlemini öğrenicem diyorsan kaydırmaya başlamadan evvel C bitini set et

    Tablo'yu is şöyle kullanabilirsin

    INDEX EQU 0X20
    COUNT EQU 0X21
    CLRF INDEX
    **TEKRAR**
    MOVLW 5
    MOVWF COUNT
    INCF INDEX,F
    MOVF INDEX,W
    CALL LOOKUP
    MOVWF PORTB
    DECFSZ COUNT,F
    GOTO TEKRAR
    ......................................Burada programını bitirebilir yada sonsuz döngüye sokabilirsin

    **LOOKUP**

    ADDWF PCL,F

    RETLW 0XFF
    RETLW 0X0F
    RETLW 0XF0
    .....................

    Umarım işini görür kolay gelsin

    Alıntıları Göster
    movlw 5
    movwf count

    satırını **tekrar** etiketinin altına yazmışım yalnış olmuş sen o etiketin üstüne bir yere yazarsın ok




  • quote:

    Orijinalden alıntı: PanDa

    movlw 5
    movwf count

    satırını **tekrar** etiketinin altına yazmışım yalnış olmuş sen o etiketin üstüne bir yere yazarsın ok

    Alıntıları Göster
    Tavsiyelerin için teşekkür ederim.pic konusunda yeniyim programı ben yazdım.tablo yapmasını bilmiyordum.bende öğrendiğim kadarıyla birşeyler yapmaya çalıştım.benim problemim, yaptığım programın hepsini tamamlamadan başa dönmesiydi ve problemin çözümünü buldum konfigirasyon ayarlarından kaynaklanıyormuş IC programında sigortalar var ,oradaki sigortalarda power timer'ı aftif hale getirmek gerekiyormuş.tekrar herkese teekkürler.




  • quote:

    Orijinalden alıntı: sitegun

    Tavsiyelerin için teşekkür ederim.pic konusunda yeniyim programı ben yazdım.tablo yapmasını bilmiyordum.bende öğrendiğim kadarıyla birşeyler yapmaya çalıştım.benim problemim, yaptığım programın hepsini tamamlamadan başa dönmesiydi ve problemin çözümünü buldum konfigirasyon ayarlarından kaynaklanıyormuş IC programında sigortalar var ,oradaki sigortalarda power timer'ı aftif hale getirmek gerekiyormuş.tekrar herkese teekkürler.

    Alıntıları Göster
    Power Timer ?????
  • quote:

    Orijinalden alıntı: PanDa

    Power Timer ?????

    Alıntıları Göster
    kısaltması PWRT belki ben yanlış yazmış olabilirim.
  • quote:

    Orijinalden alıntı: sitegun

    kısaltması PWRT belki ben yanlış yazmış olabilirim.

    Alıntıları Göster
    merhaba arkadaslar
    bende 16F84A programlamak için yapatığım kartı çalıştıramıyorum.
    ic-prog ile yüklerken 0000h adresinde doğrulama hatası veriyor. kartı çıkartıyorum. aynı hatayı yine veriyor. ben bu işi çözemedim.
    yardımcı olursanız sevinirim.
  • quote:

    Orijinalden alıntı: ysf172

    merhaba arkadaslar
    bende 16F84A programlamak için yapatığım kartı çalıştıramıyorum.
    ic-prog ile yüklerken 0000h adresinde doğrulama hatası veriyor. kartı çıkartıyorum. aynı hatayı yine veriyor. ben bu işi çözemedim.
    yardımcı olursanız sevinirim.

    Alıntıları Göster
    ahahaa

    o hata benim basıma uzun süre kemirdi, ama sonunda sorunu cözdüm.




  • quote:

    Orijinalden alıntı: klutch

    ahahaa

    o hata benim basıma uzun süre kemirdi, ama sonunda sorunu cözdüm.

    Alıntıları Göster
    http://forum.donanimhaber.com/m_3170576/tm.htm

    bu forumda gereken acıklama yapılmıstır. kolay gelsin





  • Arkadaşım yapman gereken şey PİC'i programlamadan önce kullandığın yazılımın Fuse penceresindeki WDT Fonksiyonunu OFF olarak konumlandırman,İstemediğin resetlerin ana sebebi WATCH DOG TİMER(WTD) Donanım sayıcısının Konfigürasyon bitlerinde açık olarak seçilmiş olmasıdır.Problem devam ederse ki zannetmiyorum gene buralardayız



    < Bu mesaj bu kişi tarafından değiştirildi HEXADECIMAL -- 2 Temmuz 2005, 11:48:15 >

  • Bide pic Programlamaya ilgi duyan arkadaşlara şunu söylemek isterim,IC PROG ADLI PROGRAM Bİ HALTA YARAMIYOR
    MPasm - Assembler dosyalarını derleyip hexadecimal kodlara çevirmek
    Picup-hex kodları pice yazmak (oldukça basit)
    bu iki programıda ücretsiz olarak edinebilirsiniz.Başarılar



    < Bu mesaj bu kişi tarafından değiştirildi HEXADECIMAL -- 2 Temmuz 2005, 19:29:59 >
  • quote:

    Orijinalden alıntı: HEXADECIMAL


    Bide pic Programlamaya ilgi duyan arkadaşlara şunu söylemek isterim,IC PROG ADLI PROGRAM Bİ HALTA YARAMIYOR
    MPasm - Assembler dosyalarını derleyip hexadecimal kodlara çevirmek
    Picup-hex kodları pice yazmak (oldukça basit)
    bu iki programıda ücretsiz olarak edinebilirsiniz.Başarılar
    bence IC-Prog, pic up tan daha iyi ve daha geniş bi program(picup ilkel bi program artık kalktı (16f84 gibi))
  • quote:

    Orijinalden alıntı: klutch

    bence IC-Prog, pic up tan daha iyi ve daha geniş bi program(picup ilkel bi program artık kalktı (16f84 gibi))

    Alıntıları Göster

    Piyasada birçok program mevcut zaten,Burada kapsamdan ziyade önemli olan yaptığı iş.Sonuçta söz konusu olan bir işletim sistemi değil,basit bir Pic programlama konsolu.laf olsun diye mesaj yazmayalım.




  • quote:

    Orijinalden alıntı: HEXADECIMAL


    Piyasada birçok program mevcut zaten,Burada kapsamdan ziyade önemli olan yaptığı iş.Sonuçta söz konusu olan bir işletim sistemi değil,basit bir Pic programlama konsolu.laf olsun diye mesaj yazmayalım.

    Alıntıları Göster
    ne yani basit diye dandik program mı kullancam.

    sen bi sorsana pic up ı duyan var mı




  • quote:

    Orijinalden alıntı: HEXADECIMAL


    Arkadaşım yapman gereken şey PİC'i programlamadan önce kullandığın yazılımın Fuse penceresindeki WDT Fonksiyonunu OFF olarak konumlandırman,İstemediğin resetlerin ana sebebi WATCH DOG TİMER(WTD) Donanım sayıcısının Konfigürasyon bitlerinde açık olarak seçilmiş olmasıdır.Problem devam ederse ki zannetmiyorum gene buralardayız
    quote:

    Orjinalden alıntı: HEXADECİMAL


    Arkadaşım yapman gereken şey PİC'i programlamadan önce kullandığın yazılımın Fuse penceresindeki WDT Fonksiyonunu OFF olarak konumlandırman,İstemediğin resetlerin ana sebebi WATCH DOG TİMER(WTD) Donanım sayıcısının Konfigürasyon bitlerinde açık olarak seçilmiş olmasıdır.Problem devam ederse ki zannetmiyorum gene buralardayız

    quote:

    Orjinalden alıntı: klutch

    ne yani basit diye dandik program mı kullancam.

    sen bi sorsana pic up ı duyan var mı


    Sen nerden duydun peki? madem duymadın dandik olduğunu nereden biliyorsun?gibi birçok soru sorulabilir.Ancak bunlara gerek yok;
    Bahsettiğim programda bi dandiklik yok,
    Farkındaysan Forumdaki yazılan tüm sorunlar IC Prog kullanımından çıkıyor. Picup sorunsuz denilecek bir program.Tekrar söylüyorum Özelliğinin fazla olması o yazılımın iyi olduğu anlamına gelmez
    kimse sana kullan demedi.kendini komik duruma düşürecek saldırılarda bulnuyorsun.
    Soru şöyleydi; "selam arkadaşlar karaköyden basit bir pic programlayıcı ve 16f84a aldım.bir de bu pic ile ilgili iki kitap okudum ve ic programını da indirdim.programları mplab'da yazıyorum simule ediyorum gayet güzel çalışıyor.yaptığım programlar port b'ye bağlı ledleri değişik biçimlerde yakma işine yarıyor.programı entegreye yüklüyorum devreyi breadboard'a kuruyorum programın baş kısmı çalışıyor diğer kısımlar çalışmıyor.hep aynı işlemi yapıp duruyor.belli yere kadar gelip yeniden başa dönüyor.delirecem tam bir haftadır bununla uğraşıyorum bir türlü çözemedim.lütfen yardım edin. "
    Kısaca arkadaşımız bu olaya yeni başlıyor,benim tavsiye ettiğim program onun işini fazlasıyla görür.Amacın kafa karıştırmaksa önce kendi kafanı bi topla.yazmakla anlicanı zannetmiyorum.Galiba komik olmaYA ÇALIŞIYORSUN



    < Bu mesaj bu kişi tarafından değiştirildi HEXADECIMAL -- 2 Temmuz 2005, 21:38:43 >




  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.