7 Segment Display ile 0-9 sayıcı Uygulaması

Standart

Merhaba Arkadaşlar. Bu yazımda Display ile 0-9 sayıcı uygulaması hakkında anlatıcam. Bildiğimiz gibi elektronik cihazlarının çoğunda (Asansör, saatlar, kombiler, firinlar, bombalar, klima gibi) bilgilendirme ekranı olarak kullanılan ve digital adı ile tanımlanan Display dir.  Okumaya devam edin

CCS-C ile BCD Sayıcı Uygulaması

Standart

BCD KODU;

BCD (Binary Coded Decimal) Kodu, bilgisayar ve elektronik sistemlerinde onluk tabandaki (decimal) sayıların ikilik tabana (binary) dönüştürülmesi için kullanılan sayısal kodlama metodudur. Bu dönüştürme işlemi yapılırken öncelikle sayının her bir basamağı tek tek ikilik tabana (genellikle dört veya sekiz bit ile ifade edilir ancak farklı uzunluklarda da olabilir) çevrilir ve ardından her basamağın karşılık geldiği binary değerler sırasıyla birleştirilerek sayının BCD Kodu ile gösterimi elde edilir. Okumaya devam edin

CCS – C ile LED Yakma-Söndürme

Standart

Geçen yazımda CCS-S nedir? ve Program kurulumu hakkında anlatmıştım. Bu yazımın amacı PIC16F877 ile LED’i Yakmak ve Söndürmek. Yani belirlediğimiz zaman içerisinde LED’in yanması ve kapanmasıdır. Burada CCS-C PIC C Derleyici programı ile c tabanında bir kodların yazılışını göstericem. Serdar ÇİÇEK Hocamızın “CCS C İle PIC Programlama” kitabını tavsiye ederim. Bu kitapta hem CCS-C PIC derleyici hemde PIC16F877 ve PIC16F877A mikrodenetleyicilerin donanım mimarisi de güzel bir şekilde anlatılmıştır.

Okumaya devam edin

Yazılımsal PWM ve LED’in Dimlenmesi

Standart

Yazılımsal olarak nerdeyse her PIC ile PWM sinyal üretebiliriz. Buradaki mantık bir pin’i belirli bir süre 1 yapmak ve diğer bir süre sıfır yapmaktır. Böylece bir PWM elde etmiş oluruz. Fakat bu işlemi PIC sürekli yapmalıdır. Yani komut sürekli çalışmalıdır. Bunu işlemci sürekli yaptığı için aynı anda başka bir işlem yapılamamaktadır.

3 kanal yazılımsal PWM yapılışını göstereceğim. Siz bu kodlara göre kanal çoğaltabilirsiniz. Ben burada hem PWM hem LED kayması yaptım. Kodları değiştirerek istediğimiz animasyon yapabiliriz.

KODLAR: Okumaya devam edin

PWM YÖNTEMİ

Standart

Elektronik ile uğraşanlar PWM kelimesini çok defa duymuş olabilir. PWM, genişliği değişen kare dalgadır aslında. PWM, DC sinyal kullanılan yerlerde, DC sinyalin genliğini değiştirmek için kullanılan etkili ve verimli bir yöntemdir. Günümüzde PWM yönteminin en çok duyulduğu yer; dc motorların hızlarının ayarlanması ve güç kaynaklarıdır. SMPS (Switch Mode Power Supply) güç kaynaklarında, düzenlenecek olan çıkış voltajlarını bu teknikten yararlanarak elde etmektedirler. Yani bunlara Anahtarlama Güç Kaynakları da denilmektedir.

PWM

Şekil-1.

Okumaya devam edin

PIC16F628A ile YÜRÜYEN IŞIK UYGULAMASI

Standart

Merhaba Arkadaşlar. Bu yazımda PIC16F628A mikrodenetleyicisi ile yürüyen ışık (karaşimşek) uygulamasının yapılışını ve kodlarını göstericeğim. Geçen yazımda LED ON/OFF örneğini göstermiştim. Bu da ona benzer bir uygulamadır. Bu uygulamda 8 tane Led’i belli bir aralıkla ON/OFF yapıcağız. Mantık aynıdır. Sadece for döngüsü vardır. for döngüsünün mantığı: for(i=başlangıç; i=bitiş; i=arttırma veya azaltma); budur.

BOARD ÜZERİNDEKİ DEVRE ŞEMASI:

1

ŞEKİL-1. DEVRE ŞEMASI

Okumaya devam edin

PIC16F628A ile LED ON/OFF

Standart

Merhaba Arkadaşlar. Bu yazımda size PIC16F628A ile Led’i butonsuz aç/kapa uygulamasını göstericeğim. İlk önce MicroC programı hakkında bahsedeceğim.

MicroC:  PIC mikrodenetleyicileri için zengin bir kütüphaneye sahip PIC yazılım geliştirme programıdır. MikroC, Mikroelektronika  isimli bir Yugoslav firmasının üretmiş olduğu C tabanlı bir derleyicidir. Temelinde C programlama dilini barındırdığı için, C programlama dilini bilenler kolaylıkla MikroC üzerinde uygulamalar geliştirilebilir. Bu derleyici Microchip firmasının PIC ailesinden ürünler olan 12 , 16 ve 18 serisi mikrodenetleyiciler için destek vermektedir.

Mikroelektronika’nın sayfasından 2KB sınırlı ücretsiz olarak sunulan MikroC derleyicisini buradan bulabilirsiniz veya MicroC Pro 5.61+CRACK sürümünü buradan indirebilirsiniz.

MikroC programının kütüphanesi oldukça geniştir. İletişim; (SPI, USB, Ethernet, PS/2 …) grafik; (LCD, TFT, Dokunmatik Panel …) depolama; (MMC, FAT16, EEPROM, …) gibi kütüphanelerinin yanı sıra Buton, Keypad, Ses, PWM, ADC ve daha birçok kütüphanesi mevcuttur.

Şimdi MicroC Pro ile proje oluşturalım:

İlk önce programı MicroC Pro buradan indirin ve kuralım. Sonra programı açalım ve sırasıyla:

  1. New>>New Project

Adsız

2. Next tıkla

a

3. Ayarları yapıcaz ve Next tıkla

b

4. ve 5. adımlar var olan .C dosyasını ekleme adımları. Biz yazılımı kendimiz yapacağımız için Next diyerek bu adımları geçiyoruz.

6. Finish diyoruz ve programı yazmaya başlıyoruz.

c

PROGRAM KODLARI:

   void kurulum()
{
TRISB=0;                      /* PortB’yi çıkış olarak ayarladık*/
PORTB=0;                     /* PortB’nin tüm pinlerini sıfır yaptık*/
}

void main ()
{
kurulum();
while (1)
{

/*Burada B portunun 0-7 pinlerini bir yapıyoruz. Yani Led’leri ON yapıyoruz*/
PORTB.B0=1;                       /* B portunun 0.pinini 1 yaptık. */
PORTB.B1=1;                  /*NOT: 1, 0x01, 0x0001 bunların hepsi aynı anlama gelir*/
PORTB.B2=1;                /* B portunun 2.pinini 1 yaptık.*/
PORTB.B3=1;
PORTB.B4=1;
PORTB.B5=1;
PORTB.B6=1;
PORTB.B7=1;                 /* PB7’ni 1 yaptık. Yani Led’i ON yaptık*/
delay_ms(100);               /* 100 ms gecikme*/

/*Burada ise B portunun 0-7 pinlerini sıfır yapıyoruz. Yani Led’leri OFF yapıyoruz*/
PORTB.B0=0;                       /* burada ise PB0’ı sıfır yaptık*/
PORTB.B1=0x00;             /*PB1’i 0 yaptık. 0x00, 0x0000 ve 0 aynı*/
PORTB.B2=0;
PORTB.B3=0;
PORTB.B4=0x0000;                 /* PB4 sıfır, Led’i OFF yaptık*/
PORTB.B5=0;
PORTB.B6=0;
PORTB.B7=0;
delay_ms(100);
}
}

PROTEUS ÇİZİMİ:

d

BOARD ÜZERİNDE YAPIMI:

2016-03-23 11.48.28

VİDEO LİNK: PIC16F628A LED ON/OFF

 PROTEUS+MikroC+HEX DOSYALARI

Ben bu uygulamada dahili osilatör kullandım. Dikkat etmemiz gereken; dahili osilatör kullandığımızda hex dosyasını oluşturmadan önce ayar yapmamız gerekiyor:

Project>>Edit Project tıklıyoruz ve “INTOSC oscillator:CLKOUT..” seçiyoruz.

e

En son hex dosyasını oluşturuyoruz ve PIC programlayıcı ile PIC16F628A ya oluşturulan .hex dosyamızı atıyoruz.

Bu yazımı burada tamamlıyorum. Gelecek yazımda yürüyenışık uygulamasını göstericeğim. Görüşmek üzere HOŞÇAKALIN…

 

MİKRODENETLEYİCİLER (MİKROCONTROLLER)

Standart

Merhaba Arkadaşlar, geçen yazılarım da Mikroişlemciler ve 8051 Ailesi hakkında bahsetmiştim. Bu yazımda ise Mikrodenetleyiciler hakkında bahsedeceğim.

MİKRODENETLEYİCİ NEDİR?

Bir bilgisayar içerisinde bulunması gereken temel bileşenlerden RAM, I/O ünitesinin  tek  bir  chip  içerisinde  üretilmiş  biçimine  Mikrodenetleyici (Microcontroller) denir [1]. Bilgisayar teknolojisi gerektiren uygulamalarda kullanılmak üzere tasarlanmış olan mikrodenetleyiciler, mikroişlemcilere göre çok daha basit ve ucuzdur. Günümüz mikrodenetleyicileri otomobillerde, kameralarda, cep telefonlarında, fax-modem cihazlarında, fotokopi, radyo, TV, bazı oyuncaklar gibi sayılamayacak kadar pek çok alanda kullanılmaktadır.

Bir mikrodenetleyici kullanıldığı sistemin bir çok özelliğini aynı anda izleme (monitoring) ihtiyaç anında gerçek-zamanda cevap verme (real time responding), ki bu mikrodenetleyicinin işaretleri hazır olduğu anda alıp ortamı bekletmeden işleyebilmesi demektir ve sistemi denetlemekten (control) sorumludur.

Günümüz mikrodenetleyicileri birçok chip üreticisi tarafından üretilmektedir. Örneğin: Microchip ürettiklerine PIC adını, chip numarası olarak da 10Fxx, 12Fxx, 12Cxxx, 16Fxx, 16Cxxx gibi kodlamalar verir.   Intel ise ürettiği mikrodenetleyicilere MCS-51 ailesi adını, parça numarası olarak da 8031AH, 8051AH, 8751AHP, 8052AH, 80C51FA gibi kodlamalar kullanılmaktadır.

MİKROİŞLEMCİ İLE MİKRODENETLEYİCİLER ARASINDAKİ FARKLAR:

  • Mikroişlemci ve Mikrodenetleyiciler arasındaki en temel fark, mikrodenetleyici program değişikliği olmayan sabit bir programın sürekli çalışması gereken durumlarda kullanılır.
  • Mikroişlemci ise geniş kapsamlı ve duyarlı işlemler yapmak için seçilen bir sistemdir.
  • Diğer bir fark ise mikrodenetleyicilerde bütün birimlerin (CPU,RAM,ROM,Portlar…) tek yonga üzerinde bulunması
  • Ve mikroişlemcilere göre daha az yer kaplayarak daha az maliyetlerde çalışabilmesidir.

 PIC ve PIC16Fxx SERİSİ?

PIC’i üç ayrı katagoride inceleyebiliriz:

  1. Düşük Seri: 12 Bit kelime (Word lengt) boyuna sahip eski kuşak PIC’ lerdir.(model numarası: 12C5xx, 16C5x)
  2. Orta Seri: 14 Bit kelime boyuna sahip PIC’ lerdir. Bu seri oldukça kullanışlı ve tercih edilen bir seridir. Analoğu digitale çeviren ve seri porta sahip PIC tir. Aşağıdaki PIC ler bu serinin elemanlarıdır. ( model numarası: 12C6xx, 16C55x, 16C62x, 16C6xx, 16C7xx, 16F8xx, 16C92x )
  3. Yüksek Seri: 16 Bit kelime boyuna sahip PIC’lerdir. Yüksek performanslı olan bu PIC lerin kullanımı zordur. ( model numarası:17Cxxx,18Cxxx )

Word Lengt NEDİR?

Mikroişlemciler veya mikro denetleyiciler kendi içlerindeki dâhili veri saklama alanları olan registerleri arasındaki veri alış verişini farklı sayıdaki bitlerle yaparlar. Bunlara word lengt (kelime boyu) denir.

PIC’ler farklı kelime boylarında üretilmelerine rağmen harici veri yolu tüm PIC ailesinde 8-bittir. Yani bir PIC, I/O portu aracılığı ile çevresel ünitelerle veri alış verişi yaparken 8-bitlik veri yolu kullanır.

Bu yazımda PlC’in 16F84 serisini seçmemin en önemli nedeni: PIC16F84 (veya PIC16F84A) mikrodenetleyicisinin program belleğinin flash teknolojisi ile üretilmiş olmasıdır. Yani Flash memory teknolojisi ile üretilen bir belleğe yüklenen program, chip’e uygulanan enerji kesilse bile silinmez ve Flash belleğe   sahip olan PIC16F84’i programlayıp deneylerde kullandıktan sonra, silip yeniden program yazmak PIC ile yeni çalışmaya başlayanlar için büyük kolaylıktır ve pratik yapmak için uygundur.

PIC PROGRAMLAMAK İÇİN NELERE İHTİYAÇ DUYARIZ?

  • Kişisel Bilgisayara

Assembly program kodlarını kolayca yazabilmek, doğru ve hızlı bir şekilde PIC’in program belleğine gönderebilmek için bilgisayara ihtiyaç vardır. Bir metin editörü kullanarak yazılan program kodları, derlendikten sonra PIC’e gönderilmesi gerekir. Program kodlarının PIC’e yazdırma işlemi paralel veya seri porta bağlanan bir elektronik devre aracılığı ile yapılır. Bu işleri yapabilmek için bilgisayarın temel kullanım fonksiyonlarını bilmeniz gerekir.

  • PIC Mikrodenetleyicisine

Her hangi bir istediğiniz devreye göre PIC model seçimi yapmak. Örneğin: LED KÜPÜ devresinde PIC16F877A modeline ihtiyaç var.

  • Bir Assembler Programına

Assembly dilinde yazılmış olan program kodlarını PIC’in anlayabileceği makine diline çeviren bir programa ihtiyacımız vardır. MPASM isimli program hem DOS hem de Windows altında, PIC Assembly dilinde yazılmış program kodlarını makine diline dönüştüren sürümleri bulunmaktadır. Microchip firması tarafından geliştirilen MPLAB programı içersinde hem bir metin editörü hem de MPASM assembler programı bulunmaktadır.

  • PIC Programlayıcı Donanımına

Makine diline çevrilmiş olan “.hex” uzantılı program kodlarının PIC içerisine
yazdırılabilmesi için bir elektronik donanıma ihtiyaç vardır. Bu donanım PIC programlayıcı
olarak isimlendirilir.

  • PIC Programlayıcı Yazılımına

MPASM tarafından derlenerek makine diline dönüştürülmüş assembly programı kodlarının yani “.hex” dosyasını PIC’e yazdırılmasında kullanılan bir programa gereksinim vardır. Programlayıcı yazılımları, PIC’i programlamak için kullanılan elektronik karta bağımlıdır. Yani her programlayıcı yazılımı ile elinizde bulunan karta kod gönderemeyebilirsiniz. Genellikle programlama kartı üreticileri, ürettikleri karta uygun yazılımı da birlikte sunarlar. Yukarıdaki  PIC Programlayıcı donanımı için  USBURN programı vardır. Bunları linklerden indirebilirsiniz.

 

KAYNAKLAR:

MikroDenetleyici