ASSEMBLY kodları ile PIC çalışmaları

Başlatan kudretuzuner, 24 Ocak 2023, 23:12:03

kudretuzuner

Merhaba,
Şimdiye kadar öğrendiklerimi, genç arkadaşlar ile paylaşmayı düşünüyorum. Faydalı olmaya çalışacağım.
Aslında genelden de yazdım  .......@gmail yollayan arkadaşlar ile arşivi paylaşmaya başladım.
Ben de ilk önce PIC'ler arası ile PC ve PIC arası haberleşme kodlarını paylaşmaya başlayacağım. Bu işleri başarabilmek için proteusun en alt versiyonu da olsa (ben 7.xx kullanmaktayım internetten rahatlıkla bulabilirsiniz)bir program elde etmeniz gerekecektir. Gerçekte masa üstünde fiziksel uygulamalar için ise ayrıca VB.NET 2010 express edition microsoftun sitesinden indirmeniz gerekecektir. Arzu eden olursa VB.NET kodlarını paylaşırım. Ayrıca da en azından bir PICKIT2 programlayıcıya ihtiyaç olacaktır. Ama bence işi öğrenmek için masraf etmeye gerek yoktur. Sanal ortamda çalışan proje ufak tefek değişiklerle gerçekte de  çalışmaktadır. Gerçekte çalışacak arkadaşlar kartın olası hatasından dolayı USB portu bozma ihtimali vardır. Bu sebepten benim özel olarak tasarladığım ve de uygulamakta olduğum FT232RL ve JDY40 RF kiti kullanarak haberleşmeyi uzaktan yapmak güvenli olmaktedır. İlk uygulamamın full dosyası aşağıdadır. Kolay gelsin.
https://www.youtube.com/watch?v=xZjv8FSThuc
https://www.dropbox.com/s/k2z0sm7ztfrdekw/bera.rar?dl=0
https://www.dropbox.com/s/d7yzlo9k08jwtzf/MPLAB_IDE_v8_63.rar?dl=0
https://www.youtube.com/shorts/3z-gCoBPTXI
https://www.youtube.com/shorts/044vUNByKfE
https://www.youtube.com/shorts/FJjZppWEKPU

 



oguzerdal

arkadaşlar, kırmızı mavi kırpışarak yanan polis lambası denemek istedim.Belli bir noktaya geldim deneye deneye ( A0,A1 btonuna basarak bir birini bir diğerini yaktım,sonra butonları devreden çıkarark gerçeği gibi olsun dedim, kırpışmadan bir kırmızı bir mavi yanıyor. 1-2 saniyelik süreyi nereye koysam olmadı. Basit bir ey aslında , yapan var mı , yardım ???? lütfen...( Asm ile tabii. )

kudretuzuner

Merhaba,
Oğuz bey isis şeması paylaşmadan program yazmak olanaksızdır. Tarifle olmaz. Şemayı paylaşın isteklerinizi yazarsanız her türlü yardımı daha kolay alırsınız diye  düşünüyorum. Not isis şemasını .DSN dosyasını 7.0 versiyon olarak kaydeder paylaşırsanız ben daha kolay yanıt verebilirim.

onurinci

Oğuz bey merhaba. kolaylıklar dilerim,
Forum'un esası şu şekilde çalışıyor,sıfırdan proje kabul görmüyor.
siz bir şeyler yapmaya gayret ediyorsunuz.belli bir noktaya gelip tıkandığınızda, elinizdeki projenin gerekli şema ve kaynak kodlarını buraya yükleyip bekliyorsunuz.

 Forum Basic temelli olduğu için Basic ile ilgili konularda daha kısa cevaplar alabiliyorsunuz.
tabiiki C,ASM ,Proton gibi konulardada yardım geliyor,fakat süre uzuyor,iyi şanslar...

oguzerdal

yok ben zaten o kadar detayla sizi yormak istemedim, mantık olarak algoritma nasıl olur diye yazdım. Şimdilik etrafında dönüyorum. Forumda polis lambası diye bir şey blamadım.Mesela  bir mavi yanıyor bir kırmızı yanıyor, ikisi de hem pır pır etsin hem de birbiri ardına değişsin olmadı daha. Yani iç içe 2 tane Astable Multivibratör yapamadım.( zaten son günlerde çok soru soruyorum  :)  ) 

alisumer

#7
Movlw 4
Movwf pırpır_etsin
Mavi:
     Bsf a ,1
     Call pauseus
     Bcf a ,1
     Call puseus
     Decfsz pırpır_etsin
     Goto mavi
     Movlw 4
     Movwf pırpır_etsin
     Call Pause
 Kırmızı:
    Bsf a ,0
     Call pauseus
     Bcf a ,0
     Call puseus
     Decfsz pırpır_etsin
     Goto kırmızı
     Movlw 4
     Movwf pırpır_etsin
     Goto .....
Pause:
     .....
     Return
Pauseus:
     .....,..
     Return
Hep meraktan

onurinci

bunun gibi en basit karkas ile devam edebilirsiniz bit'i SET ettiğinizde LED yanar ,Clear ettiğinizde söner ,hemen altında LOOP isimli gecikme rutinini çağırabilirsiniz ,örnek iki defa çağırdınız süre uzar gibi.elinizde 16F628 olduğunu varsayıyorum ,LED çıkışları PORTB sıfır ve Bir. sigortaları iç osilatörü kullanıcak şekilde ayarladım.sadece derleyin ve deney tahtanıza atın..
 list      P=16F628A             
#include <P16F628A.inc>         	

 __config        _MCLRE_OFF&_LVP_OFF&_WDT_OFF&_INTRC_OSC_NOCLKOUT&_BOREN_OFF &_PWRTE_ON
 Errorlevel -302

	CLRF	PORTB			; RESET PORTB
	CLRF	PORTA			; RESET PORTA

	BSF	STATUS, RP0		    ; BANK 1 GECILIR
	MOVLW	B'00000000'		; RB0..7=CIKIS
	MOVWF	TRISB
	MOVLW	B'00000000'		; RA0-5=GIRIS
	MOVWF	TRISA
	BCF	STATUS, RP0		    ; BANK 0 GECILIR
   
START:	
	CLRF PORTA
	CLRF PORTB 
	
;*******************************************


	BSF   PORTB,0	;1
	CALL   LOOP

	BCF   PORTB,0	;2
	CALL   LOOP

	BSF   PORTB,0	;3
	CALL   LOOP

	BCF   PORTB,0	;4
	CALL   LOOP


	BSF   PORTB,1	;5
	CALL   LOOP


	BCF   PORTB,1	;6	
	CALL   LOOP


	BSF   PORTB,1	;7
	CALL   LOOP


	BCF   PORTB,1	;8
	CALL   LOOP



;********* Delay Routine  ******
    
    GOTO   START

LOOP:
    MOVLW   0xFF
    MOVWF   0x0F
    MOVWF   0x0E
      
LONE
    DECFSZ   0x0E,1
    GOTO   LTWO
    RETURN
      
LTWO
    MOVLW   0xFF
    MOVWF   0x0C
      
LTHREE
    DECFSZ	0x0C,1
    GOTO   LTHREE
    GOTO   LONE

	END

karkas'a arzu edildiği gibi ekleme çıkarma yapabilirsiniz.

designer.21

Herkese merhabalar, assembly kodu yapılan paylaşımı görünce çok sevindim : ) ben de yaklaşık 1-2 aydır bu dil üzerine uğraşıyorum. Yavaş yavaş, sindire sindire, hiç acele etmeden : )

Kudretuzuner hocam şunu sormak istiyorum. yaptığınız bu uygulamayı pic ile entegre edebileceğimiz masaüstü uygulaması için illa vb.net mi olması gerekiyor. Mesela php ile aynı işi yapabilir miyiz veya şöyle sorayım, pic ile entegre edebileceğimiz bir masaüstü uygulaması için hangi programlari kullanabiliriz

kudretuzuner

Merhaba,
PIC'in ile diğer ortamlar ile haberleşmesi için, iletişim prensibini tam olarak öğrenmek gerekir diye düşünüyorum.
Diğer ortam derken masaüstü, mobil veya başka bir MCU ile. Konuya şöyle başlayayım. PIC'e yazdığımız program gereği PIC'in tahsis edilmiş butonuna(örneğin PORTC,0 diyelim) basıldığı zaman klavye "1" olan HEX'31' yollar. Buraya kadar olan MCU da gerçekleşir. TX ten çıkan bu hex'31' değeri siz hangi uygulama ile alabilirim diye sorabilirsiniz. Ben VB.NET2010 express edition kullanmaktayım. Çünkü onun kodlarını biliyorum. gelen bu Hex'31' değerini başka hangi uygulama ile alınır onun kodlarını bilmek gerekir. PHP nin yazılım formunda RX ve TX ile alakalı kodlar var mı? Bu konuyu genişletirsek ben de çok daha fazla bilgi sahibi olacağım. Var ise özelde ........@gmail.com verebilirseniz arşivimdeki bu konu ile ilgili çalışmalarımı google drive dan link vererek paylaşabilirim.

designer.21

Çok teşekkür ederim hocam. Çalışmalarınıza sabırsızlıkla ulaşmak isterim. gmail adresi gönderiyorum hocam. İlgi ve alakanıza çok teşekkür ediyorum

oguzerdal

Onur bey teşekkürler, ne kadar kolay halletmişsiniz..bravo...registerlara isim vermemişsiniz,biraz zorlandım tabii ilkten. pır pır sürelerini kısaltmaya çalışıyorum.
Ali beyinkine de az sonra bakacağım.Herkese teşekkürler.Yalnız bırakmadınız.

oguzerdal

Ali Sümer bey bana çözmem için bilmece vermişsiniz ama çözdüm. :) . Çok güzel program, çok akıllıca. Baştaki 4 değerini değiştirip istediğiniz kadar pır pır yaparsınız.Ekte.Tertemiz MPLab 8.63 asm dosyası.Bu eki görüntüleyemezsiniz.

oguzerdal

Değerli ustalar sizlere çok teşekkür ederim.Desteğinizi hissetmek insana güven veriyor.Dün geceden beri kırmızı mavi Polis lambası deneyine bakıyorum( mavi led yok tabii) bir şahesere bakarmış gibi... :)  :)

Dün dayanamadım bir tane daha F628 aldım,80 tl bayılarak.Şimdilik bakışıyoruz platonik....satıcıya el sürmeden ver falan dedim..bir şey olmaz bunlara korumalı dedi. :) .

Powered by EzPortal