Elektronik / Mikrodenetleyici Projeleri/

Pic Basic Pro Kaynakları ile Örnek Uygulamalar

Sponsorlu Bağlantılar

İsis Simülasyon ve kaynak .pbp .hex vb. kodları ile bir çok örnek proje var kullanılan mikro denetleyiciler pic16f877 ve pic16f84 bir çoğu Aykut Yılmaz tarafından yazılmış Emeği geçen kişilere Teşekkürler

Picbasic projelerinin her bölümü ayrı sayfalar halinde verildi her sayfada ilgili konunun tüm kaynak dosyaları bulunuyor

Aşağıda liste ve örnek resimler verildi diğer sayfalarda ise projelerin şema ve yazılımlarını görebilirsiniz

ACD Uygulama Örnekleri
3 kanal adc
Potans değeri değiştirerek displaydeki karşılığı okumak
Picbasic ile 4 kanal pil ölçümü
pic-basic-pro-adc-devreleri pic-basic-pro-pbp-adc-devreleri1

Display Uygulama Örnekleri
Alfanumerik display ile sabit yazı yazdırma
Alfa numerik display 0—-9 sayıcı
7 segment display ile sabit yazı gösterimi
Display tarama yöntemi
picbasic-tarama-devresi-display display-alfa

Dotmatrix Uygulama Örnekleri
8X8 yukari kayan yazı
Dotmatrix sayıcı
dotmatrix-display dotmatrix-kayan-yazi

Çıkış çoğullayıcılar
74hc595 çıkış çoğullama
Shıftout komutu bilgi
74ls164 çıkış çoğullama
74hc595-cikis-cogullama 74ls164-cikis-cogullama

Led Uygulama Örnekleri
Flip flop
8 led efekt
Picbasic flaşör
Trafik ışıkları dikkat
Ledli kayan ışık efekti
Butona basıldıktan belli bir süre ledi yakmak
pic-basic-pro-pbp-trafik-led-dikkat buton-led-kontrol

Lcd Uygulama Örnekleri
Grafik lcd
Lcd kayan yazı
Sola kayan yazı
Anahtar kontrollü lcd yazı devresi
Buton kontrollü lcd yazı devresi
Sayı karşıkları lcd gösterimi binary hex
Türkçe karekterli sabit yazı
grafik-lcd lcd-turkce-karakter

PBP komutları ile örnekler devreler
Branch random sound komutuna örnek uygulama
Button komutu
Eeprom örnek
Frekans
Hpwm
I2c read ve I2 wrıte
If then komutu
Poke komutu
Pwm
Read + write örnek
Step motor kontrolü
Toogle komutu

PWM uygulamaları
Rgb led pwm
Hpwm motor kontrol
Led parlaklık potans
Multi spwm
Hpwm kullanımı
Pwm kalp 8 led
Start stop motor kontrolü
pic-basic-pro-pwm pbp-pwm-kalp

Saat devreleri
Lcd saat
Rtc 1302 saat

Pic basic pro Sayıcı Devreleri
0-9 ileri sayıcı
0-99 ileri sayıcı
0-999 ıleri sayıcı
0-9999 ileri sayıcı
0-65535 sayıcı
Bcd sayıcı
7-segment-led-sayici 65535-display-sayici

Picbasic Seri iletişim uygulamaları
Buton kontrollü lcd
Çift yönlü seri iletişim
Fonksiyonlu seri iletişim
Keypad + lcd
Rf 12knl
Seri haberleşme
Seri iletişim
Seri iletişim buton + led
Seri lcd
Serlcd2 kayan yazı
pic-basic-pro-ile-seri-iletisim picbasic-pbp-seriiletisim

ADC (analog dijital çevirici) Uygulamaları

Lcd göstergeli 3 Kanal ADC Uygulaması (pic-16f877,lm324)

picbasci-adc-pic16f877-lm324-lcd

ADC 1,2,3 Çeşitli uygulamalar

pic-basic-pro-adc-1

pic-basicpro-adc-2

adc-picbasic-uygulama-devresi-3

NOT:Amaç PIC16F877 ile 8 kanal 10 BIT ADC yapmak LCDOUT $FE,1,”AN0:”,DEC AN0 komutta yazan DEC komutu ekrana gelecek sayının decimal olması DEC komutu yerine DEC4 de yazsak devre çalışır arada gösterim açısından bir fark var oda

DEC KOMUTUNDA 1’DEN 1024’kadar sayarken
DEC4 KOMUTUNDA 0001’DEN 1024’e kadar sayarken

Herkese Kolay Gelsin

Potu değiştirerek displaydeki karşılığı okumak

adc-display-okuma-picbasic

display-adc-degeri-okumak

4 Display ADC CD4511 PIC17F877

adc-potans-display-cd4511-pic16f877

Picbasic ile dijital avometre pil ölçümü

picbasic-avometre-pil-olcumu

'*****************************************
'*  Name    : PILADC.BAS                                      *
'*  Author  : [AYKUT YILMAZ]                                    *
'*  Notice  : Copyright (c) 2007 [end. elektronik teknikeri]    *
'*          : All Rights Reserved                               *
'*  Date    : 31.01.2007                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'*****************************************
TRISA=255       'A PORTUNUN TAMAMI GİRİŞ
'*****LCD TANIMLAMALARI*****
DEFINE LCD_DREG     PORTB       'LCD DATA BACAKLARI PORTB YE BAĞLI
DEFINE LCD_DBIT     4           'LCD DATA BACAKLARI PORTB.4 DEN BAŞLIYOR
DEFINE LCD_RSREG    PORTB       'LCD RS BACAĞI PORTB YE BAĞLI
DEFINE LCD_RSBIT    1           'LCD RS BACAĞI PORTB.1 BAĞLI
DEFINE LCD_RWREG    PORTB       'LCD RW BACAĞI PORTB YE BAĞLI
DEFINE LCD_RWBIT    2           'LCD RW BACAĞI PORTB.2 BAĞLI
DEFINE LCD_EREG     PORTB       'LCD ENABLE BACAĞI PORTB YE BAĞLI
DEFINE LCD_EBIT     3           'LCD ENABLE BACAĞI PORTB.3 BAĞLI
DEFINE LCD_LINES    4           'LCD 4 SATIRLI
DEFINE LCD_BITS     4           'LCD 4 BİT VERİ ALIŞ VERİŞİ YAPIYOR
'*****ADC TANIMLAMALAR*****     
DEFINE ADC_BITS        10        'ADC 10 BİTLİK
DEFINE ADC_CLOCK       0
ADC_DEGERI0 VAR WORD             'PORTA.0 DAKİ PİL İÇİN
ADC_DEGERI1 VAR WORD             'PORTA.1 DAKİ PİL İÇİN
ADC_DEGERI2 VAR WORD             'PORTA.2 DAKİ PİL İÇİN
ADC_DEGERI3 VAR WORD             'PORTA.3 DAKİ PİL İÇİN
GERILIM0 VAR WORD                 '1.5V PİL İÇİN
GERILIM1 VAR WORD                 '3V   PİL İÇİN
GERILIM2 VAR WORD                 '4.5V PİL İÇİN
GERILIM3 VAR WORD                 '6V   PİL İÇİN
ADCON1=%10000010                'ADC AÇIK


LCDOUT $FE,$93,"A"
PAUSE 100 
LCDOUT $FE,$92,"Ay"
PAUSE 100
LCDOUT $FE,$91,"Ayk"
PAUSE 100
LCDOUT $FE,$90,"Ayku"
PAUSE 100
LCDOUT $FE,$8F,"Aykut"
PAUSE 100
LCDOUT $FE,$8E,"Aykut Y"
PAUSE 100
LCDOUT $FE,$8D,"Aykut Yi"
PAUSE 100
LCDOUT $FE,$8C,"Aykut Yil"
PAUSE 100
LCDOUT $FE,$8B,"Aykut Yilm"
PAUSE 100
LCDOUT $FE,$8A,"Aykut Yilma"
PAUSE 100
LCDOUT $FE,$89,"Aykut Yilmaz   "
PAUSE 100 
LCDOUT $FE,$88,"Aykut Yilmaz   "
PAUSE 100
LCDOUT $FE,$87,"Aykut Yilmaz   "
PAUSE 100
LCDOUT $FE,$86,"Aykut Yilmaz   "
PAUSE 100
LCDOUT $FE,$85,"Aykut Yilmaz   "
PAUSE 100
lCDOUT $FE,$84,"Aykut Yilmaz   "
PAUSE 100
                     

lcdout $fe,$ce,"Sa"
pause 100
lcdout $fe,$cd,"Sak"
pause 100
lcdout $fe,$cc,"Saka"
pause 100
lcdout $fe,$cb,"Sakar"
pause 100
lcdout $fe,$ca,"Sakary"
pause 100
lcdout $fe,$c9,"Sakarya"
pause 100
lcdout $fe,$c8,"Sakaryal"
pause 100
lcdout $fe,$c7,"Sakaryali"
pause 100
lcdout $fe,$c6,"Sakaryali 5"
pause 100
lcdout $fe,$c5,"Sakaryali 54   "
pause 100
lcdout $fe,$c4,"Sakaryali 54   "
pause 100
lcdout $fe,$96,"PIC BASIC ILE 4 "
lcdout $fe,$d5,"KANALLI OLCU ALETI "
pause 5000

BASLIYORUZ:

ADCIN 0,ADC_DEGERI0             'PORTA.0 DAKİ GERILIM DEĞERINI OKU
GERILIM0=ADC_DEGERI0*48/10      'MV ÇEVİR
LCDOUT $FE,1,#GERILIM0,"mV"     'EKRANA MV YAZ
IF GERILIM0<1450 THEN           'ÇIKAN SONUÇ 1.45V KÜÇÜKSE ALT SATIRA GEÇ
LCDOUT $FE,$86," BOS "            '1.45V KÜÇÜKSE BOŞ YAZ
ELSE                            'DEĞİLSE
LCDOUT $FE,$86," DOLU "           'DOLU YAZ
ENDIF                           'IF İŞLEMİNİN SONU

ADCIN 1,ADC_DEGERI1             'PORTA.1 DEKİ GERILIM DEĞERINI OKU
GERILIM1=ADC_DEGERI1*48/10      'MV ÇEVİR
LCDOUT $FE,$C0,#GERILIM1,"mV"    'EKRANA MV YAZ
IF GERILIM1<2500 THEN           'ÇIKAN SONUÇ 2.50V KÜÇÜKSE ALT SATIRA GEÇ
LCDOUT $FE,$C6," BOS "            '2.50V KÜÇÜKSE BOŞ YAZ
ELSE                            'DEĞİLSE
LCDOUT $FE,$C6," DOLU "           'DOLU YAZ
ENDIF 

ADCIN 2,ADC_DEGERI2             'PORTA.2 DEKİ GERILIM DEĞERINI OKU
GERILIM2=ADC_DEGERI2*48/10      'MV ÇEVİR
LCDOUT $FE,$94,#GERILIM2,"mV"    'EKRANA MV YAZ
IF GERILIM2<4000 THEN           'ÇIKAN SONUÇ 4.00V KÜÇÜKSE ALT SATIRA GEÇ
LCDOUT $FE,$9A," BOS "            '4.00V KÜÇÜKSE BOŞ YAZ
ELSE                            'DEĞİLSE
LCDOUT $FE,$9A," DOLU "           'DOLU YAZ
ENDIF 

ADCIN 3,ADC_DEGERI3             'PORTA.3 DEKİ GERILIM DEĞERINI OKU
GERILIM3=ADC_DEGERI3*48/10      'MV ÇEVİR
LCDOUT $FE,$D4,#GERILIM3,"mV"    'EKRANA MV YAZ
IF GERILIM3<5000 THEN           'ÇIKAN SONUÇ 5.00V KÜÇÜKSE ALT SATIRA GEÇ
LCDOUT $FE,$DA," BOS "            '5.00V KÜÇÜKSE BOŞ YAZ
ELSE                            'DEĞİLSE
LCDOUT $FE,$DA," DOLU "           'DOLU YAZ
ENDIF  
PAUSE 500      
GOTO BASLIYORUZ
END
  • bahram

    bunun icin turk site larini severim!!!!

    you are best :D ;)

  • muhammed

    Arkadaslar öncelikle kolay gelsin benim acilen pwm sinyal kontrolüne ihtiyacım var 877a da 2 adet motorla kontrol yapmam gerekiyor şöyleki motorun biri ileri geri diğeri sağ sol yapacak sağa sola dönen motor sabit hızla ama yavaş bi hızla dönecek yani normalde 15 voltta atıyorum 50 devir yapıyorsa aynı gerilimde 20 devir yapsın bu hep sabit değişmez ama ileri geri motoru ölçülen mesafenin değerine göre devir sayısını değiştirsin istiyorum bunu nasıl yapabilirim

  • tolga

    Teşekkür ederim

  • hüseyin

    teşekkürler emeğinize sağlık.

  • Ferdi

    günlerdir o kadar cok site gezdim ki önüne gelen birşeyler bildiğini sanarak insanlara yardımcı olmaya çalışmış. Tamam güzel şey ama olabilir gelebilir gibi teorilerin ortaya konulduğu bir tübitak sitesindemi gezicez yoksa birşeylerin yapılmış denenmiş sonuçlarını mı öğreneceğiz. Bu anlamda AYKUT beyi çalışmalarından dolayı taktir ediyorum ve kendisine teşekkür ediyorum.

  • aykut

    inşallah devamı gelcek daha profesyonel uygulamalarla

  • Mgökhan

    “Anolog bir veriyi (0-5 volt) RF modül ile lcd ye volt cinsinden yazdırma” konusunda yardım edebilecek varmı?

  • ALPAY

    o kadar çok zaman harcadımki düzgün bir bilgi için uygulamalar için örneğin 16f84 ten nasıl ses elde edilir diye site site gezdim bulamadım.ama bu beyefendinin verdiği dosyalar benm için altın değerinde canım ağabeyim çok teşekkür ediyorum.siz ve sizin gibilere borcluyuz saygılar.
    k.maraş alpay…

  • ismail

    Aykut yılmaz bey hazırlamış olduğunuz pic basic çalışmaları çok güzel olmuş bu güzel çalışmaların devamını dilerim.

    ismail

  • hüsnü

    elinize sağlık

  • Fatih ASLAN

    Gerçekten Mükemmel Bir site ve paylaşım. Allah razı olsun 1000 defa kurandan. Ben düz lise mezunu kontrol ve otomasyon bölümü 2. sınıf öğrencisiyim. Özellikle Elektronik ve Programlamada aşırı hevesim var. Sağolsun sitede baslangıctan ileri düzeye kadar bir çok örnek uygulamalar var. Hiç Elektronikten anlamayan birisi bile çok çabuk anlayabilecek tarzda. Teşekkürler emeği geçen herkeze …

  • ferdi

    Aykut arkadaşa teşekkür ediyorum. Bizimle paylaştığı bu bilgiler için. Gerçekten emek harcayıp siteye yüklemiş uğraşmış. Eline sağlık kardeşim. Ben ANTAYA’ dan ferdi.

  • bahadır

    emeği geçen bütün arkadaşlara çok teşekkür ederim.

  • yusuf

    çok teşekkürler.

  • mehmet

    Teşekkürler hocam

  • feyzullah

    Bu en son yayınladığınız seri haberleşmenin kodlarına nasıl ulaşabilirim bana mail atar mısınız… Feyzullah35@hotmail.com

  • mert

    Üstadım emeğine sağlık.Bana bir konuda rica etsem yardımcı olur musunuz ? pic16f877 4 adet buton var .bu butonların hangisine basılırsa basılan butonun numarası lcd de görünecek ayrıca adc’den okuduğumuz bilgi ile basılan butonun basıldığı andaki gerilimini lcd’de yazdırmam lazım.Herkese çok teşekkür ederim .Esen kalın..

  • hawke

    link ölmüş bu konuda yenileme yaparmısınız

    • alternatif rapid linki sağlam

      yinede alternatif linkler;

      http://www.2shared.com/file/aqDh_RP_/pic-basic-pro-kaynaklari-ile-o.html
      http://www.filefactory.com/file/c2dfbd8/n/pic-basic-pro-kaynaklari-ile-ornek-uygulamalar.rar
      http://www.mediafire.com/?mz7l3gna3y7e0dr

  • hasan

    merhaba

    döngü yaptım ama ra.1 karaşimşek ra.2 ye ise 1 led yaktım ve söndürdüm fakat ra.1 bastığımda karaşimşek 1 kere çalısıyor , ra.2 ise 1kere yanıyor ve program dönüp kalıyor biraz yardımcı olurmusunuz döngülerde ne yapmalıyım birden fazla tuş ve işlemlerde devamlılık olması için neleri atlıyorum

    Teşekkürler.

    @ DEVICE pic16F628A ‘islemci 16F84
    @ DEVICE pic16F628A, WDT_on ‘Watch Dog timer kapalı
    @ DEVICE pic16F628A, PWRT_ON ‘Power on timer açık
    @ DEVICE pic16F628A, PROTECT_OFF ‘Kod Protek kapalı
    @ DEVICE pic16F628A, XT_OSC ‘4 MHz Kristal osilatör kullandık

    TRISB=0 ‘port b ıkış olarak ayarlandı
    TRISA=1
    PORTA=0
    PORTB=0

    LED VAR BYTE

    ANA:
    LED=0
    IF PORTA.0 = 1 THEN KARASIMSEK
    IF PORTA.1 = 1 THEN DONGU
    GOTO ANA

    KARASIMSEK:
    LED=0
    FOR LED=0 TO 7
    HIGH LED
    PAUSE 200
    LOW LED
    NEXT LED
    PORTB=0
    FOR LED=7 TO 0 STEP -1
    HIGH LED
    PAUSE 200
    LOW LED
    PAUSE 200
    next led
    RETURN

    DONGU:
    LED=0
    HIGH PORTB=%00000001
    PAUSE 200
    LOW PORTB=%00000001
    PAUSE 200
    RETURN

    END

    Lütfen yardım edebilirseniz sevinirim