Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

16f628a ya geçiş

Başlatan hasqn54, 21 Ocak 2013, 21:43:45

hasqn54

Hocalarım merhabalar
Ben assembly pıc programlama ile uğraşmaktayım. 16f84 entegresine göre programımı yazdım.
Sonra elimde 16f84 bulunmadığı için gittim 85 km yolu arkadaşımında tavsiyesi üzerine 16f628a aldım.
Aksilik buya hiç 16f84 almadım. İlçede duruyorum durduğum ilçede malesef pic satan yer yok  pic değiştirdiğim için ne gibi farklar var diye bi araştırayım dedim Baktım ki ben çağ dışı pic programlıyomuşum baya bir fark olduğunun farkına vardım. Birinde 2 bank var birinde 4 bank var mesela konu konuyu açıyo 4 banktada status var. Şimdi bunların birbirinden farkı nedir? Hadi birinde trisA diğerinde portA olunca anlıyorumda neden  hepsinde status var onu anlamıyorum. İkincisi config ayarını nasıl yapıcam onu bilmiyorum. Yardım sever bir vatandaş config ayarını uzun uzaya anlatırsa çok faydalı olur çünki o kadar aradım pek doyurucu bilgi edinemedim mesela son bitin yazdımız programı okunup okunmayacağını belirliyo ama diğerlerini bilmiyorum.
Körü körüne yapmak inanın insanın içini acayip rahatsız ediyo Sonra dahili osilatörü nasıl kullanıyoruz ve frekans ayarı yapabiliyormuyuz yapabiliyorsak nasıl yapıyoruz gibi, inanın datasheet inceliyorum anlayamıyorum.Bunu yazarken kendimi çok cahil hissediyorum ama forumlarda gezerken ingilizcesi  iyi olan kişilerin bile datasheet incelerken zorlandıklarını görünce yazmalıyım dedim :D Genel olarak pic ten pic e geçiş yapıldığında nelere dikkat edilmesi nelerin incelenmesi gerekir negibi kavramların öğrenilmesi gibi mesela hpwm modülü usart modülü gibi kavramlar timer regıstırının kullanımı ile alakalı ayrı bir konu açılırsa forumda güzel olur. Araştırıyosun param pinçik araştırdın şeyden çok başka şeylerede bakıyosun vs. vs.  Assembly açıklayıcı bir kaynak yok bunları yapmazsanızda bana direk dahili osilatörü kullanmadan hpwm modülü gibi modüllerin kullanılmadan düzden 1 pic olarak config ayarlarını yazarsa bunu ben direk koyup üzerine kendi programımı gömdümmü bana yardım etmiş olursunuz.
Ama aydınlatmış olmazsınız  regıster larım 31h den başlıyor 57h de bitiyo umarım sorun olmaz umarım bu konu ile alakalı forumumuz amacına ulaşır ve bir konuda aydınlığa kavuşur 

Erol YILMAZ

Nokta, virgül ve satırbaşı kullanırsanız cevap alabilirsiniz...

t2

#2
Alıntı YapBaktım ki ben çağ dışı pic programlıyomuşum
Proton basic, Picbasic  bunları kullanırsan  bank değiştirmek ile uğraşmazsın. assembly ile 1 yılda yazacağın programı bunlar ile 1 haftada yazabilirsin. Daha da iyisi C kullanmak.

Alıntı Yapnegibi kavramların öğrenilmesi

http://www.finalpazarlama.com/kitap/altas-yayincilik/mikrodenetleyiciler-ve-pc-programlama-pc16f628a/010003992


Kitap 2008 yılında basılmış. Yazar  şöyle demiş:
Alıntı Yap2000 yılında PIC16F84 mlkro denetleyicisi PIC programlamaya yeni başlayanlar için merdivenin ilk basamağında kabul edilirken aradan geçen 5 yıl çok şeyi değiştirdi. Artık PIC16F877 PIC18F452 gibi çok fonksiyonlu PlC'Ierin birçok özelliğini barındıran PIC16F628A mikro denetleyicisini öğrenme merdiveninin ilk basamağı olarak kabul etmek gerekliliğini ortaya koydu.


Proton Basic:
https://www.picproje.org/index.php/board,40.0.html

Okan AKÇA

bu işte amatörsen  ancak prof gibi  program yazacam dersen ccs

carirt

Alıntı yapılan: t2 - 21 Ocak 2013, 22:16:52
Proton basic, Picbasic  bunları kullanırsan  bank değiştirmek ile uğraşmazsın. assembly ile 1 yılda yazacağın programı bunlar ile 1 haftada yazabilirsin. Daha da iyisi C kullanmak.

(Resim gizlendi görmek için tıklayın.)
http://www.finalpazarlama.com/kitap/altas-yayincilik/mikrodenetleyiciler-ve-pc-programlama-pc16f628a/010003992


Kitap 2008 yılında basılmış. Yazar  şöyle demiş:

Proton Basic:
https://www.picproje.org/index.php/board,40.0.html

ben ilk pic'e resimdeki kitapla başladım 3 ayda bitirdim 30 assembly komutunu ezbere biliyordum kafa yorduktan sonra kitap kolay


mustafa_09

#5
Merhaba bende ilk zamanlarda assamble ile başlamayı düşündüm baktım çok karışıkdı sonra Serdar ÇİÇEK hocanın ccs c kitabını aldım. Assamble göre daha anlaşılır ve kolay bir dil örnek projede çok var. 2 ayda kitabı çok rahat bitirir ve kendi projelerinizi yapmaya başlarsınız.

Ben adam akıllı uğraşmaya başlayalı 3 ay oldu olmadı küçük değişikliklerle pic değiştirebiliyorsunuz. Şu an 12f675, 16f84, 16f628, 16f877, 16f887 ve 18f4520 kullandım picler arasında geçişlerde zorlanmazsın. Ve şu an bir firmaya kontrol kartları tasarlıyorum

carirt

son yazdığım program bu komutlar profesyonel işi oldu yürüyen ışık



      LIST P=16F628A
      INCLUDE   P16F628A.INC
    __CONFIG  _INTOSC_OSC_NOCLKOUT    & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _CP_OFF & DATA_CP_OFF
   
;----------------------------------------------------------

           ORG            H'0000'
           BSF            STATUS,RP0
           BCF            PCON,OSCF
           CLRF           TRISB
           BSF            OPTION_REG,PS2       
           BCF            OPTION_REG,PS1 
           BSF            OPTION_REG,PS0               
           BCF            OPTION_REG,T0CS
           BCF            OPTION_REG,PSA
           BCF            STATUS,RP0
           CLRF           PORTB
BASLA         
           BSF            PORTB,0
           CALL           ALT_PROG
           BSF            PORTB,1
           CALL           ALT_PROG
           BSF            PORTB,2
           CALL           ALT_PROG
           BSF            PORTB,3
           CALL           ALT_PROG
           BSF            PORTB,4
           CALL           ALT_PROG
           BSF            PORTB,5
           CALL           ALT_PROG
           BSF            PORTB,6
           CALL           ALT_PROG
           BSF            PORTB,7
           CALL           ALT_PROG
           CLRF           PORTB
           CALL           ALT_PROG
           GOTO           BASLA

ALT_PROG
           CLRF           TMR0
           BCF            INTCON,T0IF
KONTROL
           BTFSS          INTCON,T0IF
           GOTO           KONTROL
           RETURN
           END

hasqn54

#7
Hocalarım bu işte ben assembly ile dewam edicem ama boş kaldığım her vakit C yi öğrenicem neden bilmiyorum ama assembly cezbediyo direk olarak yönelmek istemiyorum ama c yi kesin kez her boş kaldığımda öğreniyorum yavaş yavaş ve şunu diyim bu gibi yorumlar tartışmaya gidiyo konu dışına çıkılıyo problem çözülmüyo şimdi ben programımın aşağıda vereyim biri bana bunu 16f628a ya göre uyarlasa işim görülür zaten fazla bişe değil bi config ayarı koyulcak bide modül ayarları regısterlar şurdan başlasın burda bitsin derseniz ben düzenlerim ama data sheet'e baktığımda bana göre bir sorun yok register ların adreslerinde düzden aynı 16f84 gibi olucak. hiç bi modül (HPWM gibi )  kullanılmıcak düzden olucak anlıcağınız ama dikkatinizi çekeyim konuyu aydınlatamıyoruz biri yukarıda yazdıklarımı 15 gün sonrada yazar konuyu aydınlatırsa  yinede çok makbule geçer çünki kör bir konu bu konunun forumumuzda olması bize yine bir ayrıcalık tanır ve her geçen gün başka bir arkadaşı daha içimize çekmiş oluruz
#INCLUDE<P16F84A.INC>         
STATUS   EQU   03H
PORTA   EQU   05H
PORTB   EQU   06H
TRISA   EQU   85H
TRISB   EQU   86H
SAY1     EQU   31H
SAY2    EQU   32H
SAY3           EQU   33H
SAY4           EQU   34H
SAY5           EQU   35H
SAY6           EQU   36H   
SAY7    EQU   37H
SAY      EQU   38H
SAYE     EQU   39H
SAYE1   EQU   40H
SAYE2   EQU   41H
SAYE3   EQU   42H
SAYE4   EQU   43H
SAYE5   EQU   44H
SAYE6   EQU   45H
SAYE7   EQU   46H
KAYIT   EQU   47H
SÜRE   EQU   48H
SAYAC1   EQU   49H
SAYAC2   EQU   50H
SAYAC3   EQU   51H
SINYAL   EQU   52H
ASINYAL   EQU   53H
      ORG   00H
      GOTO   ST
ST   BSF      STATUS,.5
   MOVLW   B'00000011'
   MOVWF   TRISA
   CLRF     TRISB      
   BCF      STATUS,.5

kudretuzuner

Merhaba
Buyur arkadaşım,sizin için bir şablon hazırladım.
https://www.dropbox.com/s/9nzn4r5q1vyhubx/hasn54.rar?m
Amatör

hasqn54

#9
HOCAM BURAYA BEN DEVREME GÖRE AYARLADIM ANLADIM KADARIYLA RA'NIN İLK 2 BİTİ GİRİŞ DİĞERLERİ ÇIKIŞ RB'KOMLE ÇIKIŞ OLARAK  YERLEŞTİRDİM. SONRASINI ZATEN YAZDIM DAHİLİ OSİLATÖR KULLANMIYORUZ. ZATEN HOCAM SON OLARAK BÖLE SİZİN VERDİNİZİ AZICIKTA OLASA BANA GÖRE DÜZENLEDİM DÜZENLEMEMDE SIKINTI VARMI Bİ KONTROL EDERMİSİNİZ BU ARADA İLGİNİZ İÇİN ÇO...K TEŞEKKÜR EDERİM

LIST P=16F628
INCLUDE "P16F628.INC"
__CONFIG H'0021'
SAY1    EQU   31H
SAY2     EQU   32H
SAY3           EQU   33H
SAY4       EQU   34H
SAY5     EQU   35H
SAY6    EQU   36H   
SAY7    EQU   37H
SAY           EQU   38H
SAYE           EQU   39H
SAYE1   EQU   40H
SAYE2   EQU   41H
SAYE3   EQU   42H
SAYE4   EQU   43H
SAYE5   EQU   44H
SAYE6   EQU   45H
SAYE7   EQU   46H
KAYIT   EQU   47H
SURE   EQU   48H
SAYAC1   EQU   49H
SAYAC2   EQU   50H
SAYAC3   EQU   51H
SINYAL   EQU   52H
ASINYAL   EQU   53H
SYAC1   EQU   54H
SYAC2   EQU   55H
SYAC3   EQU   56H
SAY1     EQU   31H
SAY2           EQU   32H
SAY3    EQU   33H
SAY4           EQU   34H
SAY5     EQU   35H
SAY6           EQU   36H   
SAY7           EQU   37H
SAY      EQU   38H
SAYE           EQU   39H
SAYE1   EQU   40H
SAYE2   EQU   41H
SAYE3   EQU   42H
SAYE4   EQU   43H
SAYE5   EQU   44H
SAYE6   EQU   45H
SAYE7   EQU   46H
KAYIT   EQU   47H
SURE   EQU   48H
SAYAC1   EQU   49H
SAYAC2   EQU   50H
SAYAC3   EQU   51H
SINYAL   EQU   52H
ASINYAL   EQU   53H
SYAC1   EQU   54H
SYAC2   EQU   55H
SYAC3   EQU   56H
SAY1     EQU   31H
SAY2           EQU   32H
SAY3     EQU   33H
SAY4     EQU   34H
SAY5    EQU   35H
SAY6    EQU   36H   
SAY7           EQU   37H
SAY      EQU   38H
SAYE           EQU   39H
SAYE1   EQU   40H
SAYE2   EQU   41H
SAYE3   EQU   42H
SAYE4   EQU   43H
SAYE5   EQU   44H
SAYE6   EQU   45H
SAYE7   EQU   46H
KAYIT   EQU   47H
SURE   EQU   48H
SAYAC1   EQU   49H
SAYAC2   EQU   50H
SAYAC3   EQU   51H
SINYAL   EQU   52H
ASINYAL   EQU   53H
SYAC1   EQU   54H
SYAC2   EQU   55H
SYAC3   EQU   56H
                ORG 00H
MOVLW H'07';PORTA GİRİŞLERİ DİGİTAL
MOVWF CMCON
BSF STATUS,5;BANKSEL TRISA
MOVLW B'11110011';PORTA';İSTEDİĞİM GİBİ AYRLADIM
MOVWF TRISA
MOVLW B'00000000';PORTB  VE YİNE İSTEDİĞİM GİBİ AYARLADIM
MOVWF TRISB
BCF STATUS,5
CLRF PORTA
CLRF PORTB


BASLA

exkalibur

   list p=16f628
   include "p16f628.inc"
   __CONFIG 3D38h       ;mclr etkin, 4mhz dahili kristal etkin, diğer ayarlar pasif
         ;REGİSTERLERİN TANIMI
   cblock 20h
bek1,bek2,tus1,tus2,tus3,tus4,tus5,tus6
   endc
         ;GİRİŞ ÇIKIŞ VE PORTLARIN YÖNLENDİRİLDİGİ YER

   org 0h
   movlw 7h                 
   movwf CMCON            ;analog girişleri dijitale çevirme komutu
   bsf STATUS,5
   movlw 00h                    ;giriş çıkış ayarı porta için
   movwf TRISA
   movlw b'11110000'             ;giriş çıkış ayarı portb için
   movwf TRISB
                bcf STATUS,5
Arkadaşım bundan sonraki programlarında başlangıç satırlarını bu şeklde yaz. Birde senin yazdıgın programda 31h adresinden 52h adresine kadar degişken tanımlamışsın. (cblock 20h) komutunun alt satırında aralarına virgül koyarak tüm değişkenlerini sırayla yazabilirsin tek tek ugraşma EQU ile deişkenleri yazdıktan sonrada endc komutunu yazarsın tamam.geri kalan tüm özellikleri anı saılır 84 ile 628 in. Kolay gelsin

LukeSkywalker

İlk olarak assembly ile programlama işini yut, C kolay daha sonra geçersin.

RaMu

    Mesela 16f84 de programını yazarken başta #INCLUDE<P16F84A.INC>  diyorsun, bu dosyada ne var? Bilgisayarında program files a gir oradam microchip e dal sonra P16F84A.INC yi arat, bulduğun txt belgesinin sonunda config için kullanılan herley tanımlıdır, buradan yardım alabilirsin, bu bütün picler için böyledir istersen 16f628 i aratırsın onunkini bulursun. Aslında konfigurasyon için MPLAB programındayken configure menüsünden configuration bits i seçip buradanda fikir edinebilirsin, ama işin en doğrusu açıp datasheet i konfigurasyon ile ilgili anlatımı okumak olur, konfigurasyonu anlamanın yolları bunlar.
    Şimdi 4 tane bank var ne oluyor, bunun için datasheet de memory organization bölümüne bakacaksın, bank bank ayrılmış şekilde tablo vardır, öyle bank 1 e geçince porta trisa oluyor diye birşey yoktur, ikiside ayrı ayrı register lardır, biri porta yazar veya port dan okuma yapar, biride (tris) portu veya bir-birkaç bitini giriş çıkış yapmaya yarar, banklar ne işe yarar, eğer bütün banklarda aynı isimle kullanılan bir register var ise bu demektirki bu register a herhangibir bank ta iken ulaşılabilir, yok sadece belli-belirli bank-banklarda bu register var ise bu register a ulaşıp işlem yapmak için İllaki bulunduğu bank a geçmek zorundasın demektir. "neden bütün baklarda status var" demişsin;  Bir düşün status kayıtçısı bank değiştirmek için kullanılır, eğer bir bankta status bulunmasaydı ve bu banka geçseydin geri nasıl dönebilirdin?
   Dahili harici osilatör kullanımı için zaten datasheet e bakmak zorundasın, osilatör nerede anlatılıyorsa orada herşeyini yazar, nasıl nerden seçilir mevcuttur, yada hazır anlatmış birisi bulursun (kitap) okursun.
   Picten pice geçerken öğrenilmesi gereken tekşey vardır, herhangibir picte tam donanımlı program yazabilmek, eğer 16F serisinde bir picte istediğin programı yazabiliyorsan, herhangibirbaşka 16F de bu programı nasıl yazacağını zaten biliyorsun demektir, bence senin derdin picten pice geçiş değil, asm derin mevzudur, asm yi  öğrenmemişsin-anlamamışsın henüz, asm ile bir pici programlamayı tam öğrenirsen tüm soruşlarının cevabını almış olursun zaten. Asm zaten bu sorduğun soruların cevabını öğrenebilmek, kullandığın denetleyiciyi, denetleyici çalışma prensibini tanımak için en iyi yoldur, ama bu yolda fazla yürümemek lazım çünkü sonu yok ve hep uzunyoldur, az zamanda çok iş başarmak için işin temelini kavrayıp yüksek seviyeli dillere biran önce geçmek gerekir (bende asm de çok inat ettim ama el mahkum geçiyorum artık c ye).
   Modüllerle ilgili konu açılsa falan demişsin 10 yılı aşkın süredir modüllerle ilgili milyon tane konu açılmış nette, yüzlerce kitap yazılmış, binlerce örnek paylaşılmış, zaten asm nin en bonkör yanı örnekleridir, hemen herşeyle ilgili örnek birçok dilde mevcuttur. Ama yine modülleri öğrenmek için en önemli kaynak datasheet tir takır takır anlatır, bazen algoritma örneği verir, ve microchip te application note olarak örnek kodlar verir, hatta bende hocamdan aldığım 1000küsür sayfalık baskısı mevcut, herşeyin örneği var asm olarak ki dediğim gibi bunu netten temin edebilirsin.

   Uzun sözün kısası, asm öğrenecek adam datasheet le yatar datasheet le kalkar, elinde kullandığı denetleyiciyi anlatan kitap varsa işi çok rahattır, birde net varsa örnek uygulamalara bakar, işini yavaş görür ama herşeyi öğrenir bilir, bildiğiyle yzdığıyla kalır, asm zevklidir ama kapsamlı uygulamalarda taş düşürtür adama. Bu sorduğun soruların cevaabını verebilecek kadar asm yi anladığında, yani modüllerle ilgili örnek yapıp, birkaç farklı model pic içinde bu kodu kullanabildiğin anda yüksek seviyeli dilllere geçmen gerektiğini ben söylemeyeceğim zaten kendin anlamış olacaksın.
  Umarım sorularına cevap olabilmiştir yazdıklarım...
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html