Makaleler / Elektronik / Mikrokontrolür Mikroişlemci / Pic Basic Pro Uygulamaları


Yazar: Mehmet Can
Gönderen: Elektronik   Tarih: 12-01-2002 12:53
Yorumlar: (0)   Oylar:
Üyelerin oylama ortalaması (10 dışında) : 10.00   
Oylar: 1 den itibaren 11-03-2008 18:03

Pic Basic Pro ile programlamayı öğrendikten sonra size basit örneklerlerle Pic Basic Pro'nun nasıl kullanıldığını öğreteceğim. Bu örneklerde Pic 16F84 mikrodenetleyicisi kullanılmıştır.

Pic Basic Pro ile program yazmak çok kolay olmasına rağmen, programda takip edilebilir ve anlaşılır program yazmak için bir şablon kullanmayı tavsiye ederim. Bu şablon aşağıdaki gibi olabilir.

'***************************************************************
'* Name : Deneme.BAS
'* Author :Mehmet Can
'* Notice :
'* Date : 30.11.2002
'* Version :
'* Notes :
'* :
'***************************************************************
'DEFINE tanımlamalar
'***************************************************************
'Başlangıç işlemleri
'***************************************************************
'Program
Basla:





Goto Basla
End
'****************************************************************


Şablonumuzun nasıl hazırlandığını gördük. Program yazarken bazı Türkçe karakteler kullanılmaması gerekmektedir( ı,ş,ğ,ü,ö ). Program yazarken yanında açıklamalar yaparak yazdım. Aslında bunu yazmanıza gerek yoktur. Fakat program yazarken takip ededebilmeniz için, bazı satırlara yazarsanız program yazmanız çok kolaylaşır. Açıklamalar yaparken programdan ayırmak için ( ' ) işaretini kullanmanız gerekmektedir. Açıklamalarda Türkçe karekter kullanabilirsiniz. Şimdi ilk programımız olan Led flaşörü yazalım. Led Flaşör için şekil 1'deki devre kullanılacaktır.

'***************************************************************
'* Name : LED.BAS
'* Author : Mehmet Can
'* Notice :
'* Date : 30.11.2002
'* Version :
'* Notes :
'* :
'***************************************************************

TRISB= %00000000     'TRISB, B portunun tüm kanalları çıkıştır
Led var PortB.0 'B portunun 0. kanalı için Led değişkenini
' kullanılıyor.
'****************************************************************
PORTB= %00000000   'PORTB'nin tüm kannalları lojik "0" dır
'****************************************************************
Basla:                    
  High Led 'PortB.0 kanalını Lojik "1" yap  (Lojik "1" = +5V)
  Pause 750                                '750 msn bekle
  Low Led 'PortB.0 kanalını Lojik "0" yap
  Pause 750 '750 msn bekle
Goto Basla
End
'****************************************************************



İkinci program olarakta şekil 1 deki flip-flop'ın nasıl çalıştığı anlatılacaktır.

'****************************************************************
'* Name :FlipFlop.BAS
'* Author : Mehmet Can
'* Notice :
'* Date : 30.11.2002
'* Version :
'* Notes :
'* :
'****************************************************************
TRISB= %11111100       'TRISB, B portunun ilk iki kanalı çıkış
'diğer kanallar giriştir.
Led var PortB.0 'B portunun 0. kanalı için Led değişkenini kullanılıyor.
Led2 var PortB.1 'B portunun 1. kanalı için Led2 değişkenini kullanılıyor.
Sure CON 500 ' yanma/sönme süresi olan 500 msn Sure
'degiskenine antandı
'****************************************************************
PORTB= %00000000 'Programın başında PORTB'nin tüm kanalları
' lojik "0" dır
'****************************************************************
Basla:
   High Led          'PortB.0 kanalını Lojik "1" yap (Lojik "1" = +5V)
   Pause Sure                    '500 msn bekle
   Low Led 'PortB.0 kanalını Lojik "0" yap
   Pause Sure '500 msn bekle
   High Led2 'PortB.1 kanalını Lojik "1" yap
   Pause Sure '500 msn bekle
   Low Led2 'PortB.1 kanalını Lojik "0" yap
   Pause Sure '500 msn bekle
Goto Basla
End
'****************************************************************

Şimdi de elektronikcilerin ilk hayali olan bir devreye. Karaşimşek olarak biline bu devreyi yine Pic Basic Pro ile yazalım. Devrenin uygulama şeması şekil 2 dedir.



'****************************************************************
'* Name : Karasimsek.BAS
'* Author : Mehmet Can
'* Notice :
'* Date : 30.11.2002
'* Version :
'* Notes :
'****************************************************************
TRISB= %00000000                                   'TRISB, B portunun tüm kanalları çıkıştır
'****************************************************************
PORTB= %00000001                                  'Programın başında PORTB'nin 0. kanalı
' lojik "1" (yanık) diğerleri ise
' lojik "0" dır (sönük)
'****************************************************************
Sola:
    Pause 500 '500 msn bekle
    PORTB = PORTB << 1 'B portunun bitlerini sola doğru
' bir kaydır
    IF PORTB = %10000000 Then Saga 'PortB nin 7. kanalını kontrol et
'Eğer Lojik= 1 ise sağa kaydırmak
'için Saga rutunine git değilse bir
'alt satıra geç.
Goto sola
Saga:
     Pause 500 '500 msn bekle
     PORTB = PORTB >> 1 'B portunun bitlerini sağa doğru
'bir kaydır
     IF PORTB = %00000001 Then Sola 'PortB nin 0. kanalını kontrol et
'Eğer Lojik= 1 ise sola kaydırmak
'için Sola rutunine git değilse bir
'alt satıra geç.
Goto Saga
End
'****************************************************************


LCD UYGULAMALARI

Uygulamamızda karakter Lcd göstergeler kullanılacaktır. Bu uygulamada Hitachi firmasının 44780 kontrollü 2 satır 24 karakter LCD modülü kullanılmıştır.

Lcd Komutları
Komut Operasyon
$FE, 1 Ekranı temizle
$FE, 2 Birinci satırın başına dön
$FE, $0C imleç Kapalı
$FE, $0E Altçizgili
$FE, $0F Yanar söner imleç
$FE, $10 İmleci bir pozisyon sola taşı
$FE, $14 İmleci bir pozisyon sağa taşı
$FE, $C0 İmleci 2. satırın başına taşı
$FE, $94 İmleci 3. satırın başına taşı
$FE, $D4 İmleci 4. satırın başına taşı


Özel tanımlanmadıkça, LCD'nin Pic'in belli bacaklara bağlanması gerekir. Yani PIC BASIC PRO, Lcd'nin 4-bit bus modunda kullanıldığında ve DB4-DB7 data hatlarının Pic'in PortA.0-PortA.3, RS'nin (register Select) PortA.4 ve E'nin de (ENABLE) PortB.3 bağlı olduğu var sayılır.



'****************************************************************
'*Name : LCD.BAS
'* Author : Mehmet Can
'* Notice :
'* Date :30.11.2002
'* Version :
'* Notes :
'****************************************************************
Pause 500 'Lcd için bekleme suresi
Basla:
   LCDOUT $FE,1,"Elektronik Magazin" 'ekranı temizler ve "Elektronik Magazin" yazar
   Pause 1500 '1500 msaniye bekler
   LCDOUT $FE,$C0,"Mehmet Can" 'ikinci satıra geçer ve "Mehmet Can" yazar
   Pause 1500 '1500 msaniye bekler
Goto Basla
End
'****************************************************************

Eğer değişik bir Pic mikrodenetleyicisi kullanılacaksa farklı şekilde Lcd nin tanımlanması gerekebilir. Bunun için aşağıdaki tanımlamaların yapılması gerekmektdir.

'****************************************************************
'* Name :LCD.BAS
'* Author : Mehmet Can
'* Notice :
'* Date : 30.11.2002
'*Version :
'* Notes :
'****************************************************************
DEFINE LCD_DREG PORTB  'LCD data portunun bağlandığı Pic portu
DEFINE LCD_DBIT 4 '4-Bit bus için data biti (0 veya 1) başlangıcı
DEFINE LCD_RSREG PORTB 'LCD RS'in bağlandığı Pic portu
DEFINE LCD_RSBIT 1 'LCD RS'in bağlandığı Pic portunun biti
DEFINE LCD_EREG PORTB 'LCD E'in bağlandığı Pic portu
DEFINE LCD_EBIT 0 'LCD E'in bağlandığı Pic portunun biti
DEFINE LCD_BITS 4 'LCD bus boyutu (4 veya 8 bits) ayarı
DEFINE LCD_LINES 2 'LCD satır sayısının ayarlanması
DEFINE LCD_COMMANDUS 2000                   'Komut geçikme süresi mikrosaniye cinsinden
DEFINE LCD_DATAUS 50 'Veri geçikme süresi mikrosaniye cinsinden
'****************************************************************
Pause 500                           'Lcd için bekleme suresi
'****************************************************************
Pause 500 'Lcd için bekleme suresi
Basla:
   LCDOUT $FE,1,"Elektronik Magazin" 'ekranı temizler ve "Elektronik Magazin" yazar
   Pause 1500 '1500 msaniye bekler
   LCDOUT $FE,$CE,"www.elektronikmagazin.com" 'ikinci satıra geçer ve
' "www.elektronikmagazin.com " yazar
   Pause 1500 '1500 msaniye bekler
Goto Basla
End
'****************************************************************


Elektronik devreler, projeler, makaleler, katalog, forum, temel basit devre şemaları, hobi devreleri içeren bir sitedir.
2018-08-21 12:00
Fatal error : Shield protection activated, please retry in 49 seconds...
After this duration, you can refresh the current page to continue.
Last action was : Hammering