Mikrodenetleyiciler.

Slides:



Advertisements
Benzer bir sunumlar
ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama
Advertisements

Hazırlayan ve Sunan Ali Yasin Çakılcı HUNROBOTX
Anakartlar Sistemin merkezi bileşenidir.
BİLGİSAYAR DONANIM ELEMANLARI
BİLGİSAYAR PORTLARI.
TEMEL ELEKTRONİK EĞİTİMİ
Ufuk Sevim C ile mC 1. Hafta Ufuk Sevim
8259A Programlanabilir Kesme Denetleyicisi (PIC)
Numbers of Opcodes Nihal Güngör.
ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama
CPU (Merkezi İşlem Ünitesi)
CEIT 101 Teorik Emrah Soykan - Konu 2 -.
CEIT 101 Teorik Vasfi Tuğun - Konu 2 -.
BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI
Register ve Türleri Nihal GÜNGÖR.
BİLGİSAYARIN MİMARİSİ, TEMEL BİLEŞENLERİ VE ÇALIŞMA MANTIĞI
İSTANBUL İLİNDEKİ ENDÜSTRİ MESLEK LİSELERİN KONUMUNU BELİRTEN HARİTA
Mikroişlemciler ve Mikrobilgisayarlar
İŞLETİM SİSTEMLERİ Öğr. Gör. S.Serkan TAN.
DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ
DERS 5 PIC 16F84 PROGRAMLAMA.
CPU.
BİLGİSAYAR SİSTEMLERİ
DERS 13 PIC 16F84 ile DONANIM SAYICI KULLANIMI
İŞLEMCİ MİMARİLERİ – Derya Işık
Bilişim Teknolojileri Öğretmeni İsmail ÖZTÜRK
RAM Memory-Rasgele Erişimli (Random Access Bellek )
Bilgi Teknolojisinin Temel Kavramları
Programlama Dilleri Visual Basic C# C++ Pascal Delphi.
CCS C İLE PİC PROGRAMLAMA DERS -1-
Bilgisayar Mühendisliği Bölümü
CCS C İLE PIC PROGRAMLAMA DERS-2-
Hafta2 Bilgisayar Donanımı Dersi
CCS C İLE PIC PROGRAMLAMA DERS-3-
DERS 4 MİKROİŞLEMCİ PROGRAMLAMA. Dr. Emin Argun Oral, Atatürk Üniversitesi 2008 Ders 4, Slayt 2İÇERİK Yüksek seviyeli programlama dilleri Düşük sevyeli.
MİKRODENETLEYİCİLER.
BİLİŞİM TEKNOLOJİSİNİN TEMELLERİ
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
BELLEKLER Bellekler, bilgi depolama üniteleridir. Bilgisayarlar her türlü bilgiyi (resim, ses, yazı gibi) ikilik sayılar ile kullanır ve saklar. Bir bilgi.
Mikrodenetleyiciler. M IKROIŞLEMCI N EDIR ? Mikrodenetleyiciler ve mikroişlemciler transistörlerden oluşmakta ve sadece 1-0 değerleriyle işlem yapmaktadır.
Anakart Bilgisayarın tüm parçalarını üzerinde barındıran ve bu parçalar arasında iletişimi sağlayan birincil devre kartıdır. Anakartlar elektriği geçirmeyen.
Bilgisayar Mühendisliğine Giriş
DERS 5 PIC 16F84 PROGRAMLAMA.
Mikrobilgisayar Tasarım Yapıları
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI
Bilgisayar Donanım ve Sistem Yazılımı
Mikroişlemciler Giriş.
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI
BİLGİSAYAR DONANIM ELEMANLARI * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir. * Donanım somut bir kavramdır. Bu nedenle donanımı, elle tutulur,
DERS 1 Gömülü Sistemlere Giriş
Mikroişlemcili Sistem Tasarımı
Ders 6 Atmega328P Mikrodeneyleyicisi
İşletim Sistemleri (Operating Systems)
Bilgisayar Mühendisliğine Giriş
Bilgisayar Mühendisliğine Giriş
Mikrobilgisayar Tasarım Yapıları
İşletim Sistemleri (Operating Systems)
BİLİŞİM TEKNOLOJİLERİ
Konu: EĞİTİM AMAÇLI BLDC MOTOR HIZININ PID KONTROLÜ
DERS 14 PIC 16F84 ile EEPROM VERİ BELLEĞİ KULLANIMI
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
BİLGİSAYAR DONANIM ELEMANLARI * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir. * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir.
BİLGİSAYAR DONANIM ELEMANLARI * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir. * Fiziksel olarak bir bilgisayarı oluşturan tüm birimlerdir.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Bellekler.
Bilgisayar Donanımı Dersi Bilgisayarın Mimarı Yapısı ve Çalışma Mantığı.
Sunum transkripti:

Mikrodenetleyiciler

Mikroişlemci Nedir? Mikrodenetleyiciler ve mikroişlemciler transistörlerden oluşmakta ve sadece 1-0 değerleriyle işlem yapmaktadır. Transistörler birleşerek bir bitlik veriyi tutmaya yarayan Flip-Flop ’ları oluştururlar. Flip-Flop ‘u basit bir şekilde bir sonraki bit gelene kadar çıkışdaki biti saklayan, girişte veri değişikliği olduğunda clock darbesiyle birlikte çıkıştaki değeri de değiştiren lojik devre olarak tanımlayabiliriz. Yani flip-flop ‘un yaptığı şey tam olarak bir biti saklamaktır.

Flip-Flop’ların birleşmesi ile daha fazla verinin saklanmasını sağlayan registerlar (saklayıcı) oluşur. Bir register mikroişlemcinin yapısına göre 8,16 ya da 32 bit olabilir. Registerlar birleşerek işlemcinin hafıza birimlerini oluştururlar.

Mikroişlemci hafıza birimleri dışında bu birimlerdeki verileri işleyen, okuyan ve yazan farklı birimlerde vardır. Aslında sistem içindeki tüm bileşenler, mantıksal olarak saklayıcılardan meydana gelmektedir. Tüm işlemler, saklayıcılarda tutulan bilgilerin mantıksal devreler aracılığıyla birbirleri arasında taşınması veya belirli işlemlere tabi tutulmasıyla gerçekleşir.

ALU(arithmetic logic unit) matematiksel işlemleri gerçekleştirir, giriş çıkış (I/O) birimleri ise tamponlama veya çıkış işlemlerinde mikroişlemciden gelen veriyi tutma, giriş işlemlerinde ise dış dünyadan gelen bilgiyi tutma amacıyla kullanılır. 

Mikroişlemcili sistemleri oluşturan saklayıcılar topluluğunun ve aralarındaki veri alış verişinin şekli sistem mimarisi olarak isimlendirilir. Sistem içindeki saklayıcıların çeşitleri ve transfer şekilleri, kullanılabilecek komut tipleri, komutların çalışma süresi, mikroişlemci mimarisini belirler.

Mikrodenetleyici Nedir? Mikroişlemciden Farkı Nedir? Mikroişlemci ve mikrodenetleyici kavramları genellikle birbirine karıştırılmaktadır. Aslında bu iki kavram birbirinden farklıdır. Bir mikroişlemci sadece işlem ve hafıza birimlerinden oluşurken Mikrodenetleyici hafıza, analog dijital çevirici, zamanlayıcı gibi çevre birimlerini de bünyesinde barındırır. Mikroişlemciler günümüzde genellikle kişisel bilgisayarlarda kullanılmaktadır(Intel, AMD …). 

Mikrodenetleyicileri genellikle endüstriye yönelik olarak kontrol ve otomasyon işlermlerini gerçekleştirmek için tasarlanmış özel mikroişlemciler olarak tanımlayabiliriz(PIC, AVR, MSP430, ARM, 8051). Üzerlerinde mikroişlemcilere göre daha fazla birimi barındırırlar fakat mikroişlemcilere göre daha yavaş çalışırlar. Üretilen mikroişlemci-mikrodenetleyicilerin sadece %2 'si bilgisayarlarda kullanılırklen geri kalan %98 'i gömülü sistemlerde kullanılmaktadır.

Bir gömülü sistem tasarlamamız içim mikrodenetleyiciler mikroişlemcilere göre işimizi çok daha kolay olmasını sağlar. Çünkü gömülü sistem için mikroişlemci kullanmamız durumunda burada bahsettiğimiz RAM, osilatör, program hafızası, ADC gibi tüm birimleri satın alıp bunlar ve mikroişlemci arasında veri yolu, adres yolu bağlantılarını kurmamız gerekirdi. Mikrodenetleyici tüm bu birimlerin birleştirilmiş hali olarak kullanımımıza sunuluyor.

Mikrodenetleyici Üreticileri Günümüzde birçok mikrodenetleyici üreticisi çeşitli modellerde mikrodenetleyici üretmektedir. Bunlardan ülkemizde en çok kullanılanları;   ► 8051 mikrodenetleyiciler ► Microchip firmasının PIC ailesi ► Atmel firmasının AVR ailesi ► Texas Instruments firmasının MSP430 ailesi ► ARM tabanlı TI, ST ve ATMEL mikrodenetleyicileri

Mikrodenetleyici Kavramları Mikrodenetleyicileri kullanılan temel kavramlar

►CPU: Bu birim bir mikroişlemciden oluşur. Komutların okunarak verilerin işlendiği çevre birimlerinin yönetildiği merkezi birimdir. Mikrodenetleyicinin merkezi işlem birimi olan CPU tek bir çip olarak üretirse mikroişlemci olarak adlandırılır. Bugün bilgisayarlarımızda kullandığımız işlemciler CPU biriminden oluşur.

►RAM: Mikroişlemcinin işlemler sırasında geçici olarak verileri hafızada tutmak için çok hızlı çalışan bir harici belleğe ihtiyaç duyar. Yani RAM (Random Access Memory) bilgisayarlarımızda olduğu gibi mikrodenetleyicilerde de geçici hafıza olarak görev yapar. Verilerin işlenmesi aşamasında geçici olarak tutulması gereken bilgiler bu hafıza biriminde depolanır işlem bittiğinde ya da güç kesildiğinde ise silinirler.

►Osilatör-Clock: Osilatör oluşturduğu clock sinyali ile mikrodenetleyicideki tüm işlemlerin senkron-eşzamanlı olarak yapılmasını sağlar. Clock(saat) sinyalini bir komutanın askerlerin uyum için yürümesi için verdiği sağ-sol komutuna benzetebiliriz. Her mikrodenetleyici birimi yaptığı işlemin her adımını saat darbesinin lojik 0 dan 1 e yükseldiği ya da 1 den 0 düştüğü sırada yapar. Bir 0 ve Bir 1 den oluşan süreye bir “cycle” yani bir çevrim denir. Bir komutun kaç saniye süreceği yine mikrodenetleyicinin mimarisine ve komutun türüne bağlıdır.

►Stack: Yığın bellek verilerin üst üste kaydedildiği, veri yazılırken en üste yazıldığı veri okunurken de sadece en üstteki verinin okunduğu adından da anlaşılacağı gibi verilerin yığın olarak tutulduğu bellek türüdür.

Program Counter (PC): Mikrodenetleyici program hafızasında bulunan komutları satır satır sırayla işlediğini söylemiştik. Mikrodenetleyicinin hangi satırda bulunduğu bilgisi Program Counter da tutulur. Kesme geldiğinde Program Counter daki satır bilgisi stack (yığın bellek) a atılır. Kesme vektörünün sonuna geldiğinde stack teki programın son kaldığı satır bilgisi tekrar program counter a yüklenerek program kaldığı yerden devam eder.

►Interrupt(Kesme): Mikrodenetleyiciler hafızalarında yazılan programı satır satır okuyarak ilgili komutun gerektirdiği işlemleri gerçekleştirirler.  Programın akışına göre subroutine denilen alt programlara dallanabilirler. Fakat bazı durumlarda mikrodenetleyicinin program akışının dışına çıkması istenebilir. Bu durumlarda interruptlar devreye girer. Bir Interrupt subroutine den tamamen farklıdır.

Programın alt programa dallanması gereken yerler program yazılırken belirlenir. Fakat kesme program dışında bir dış uyarıcı ile gerçekleşir. Bu dış uyarıcı seri haberleşme biriminden gelen bir veri, timer ın dolmasıyla oluşan bir sinyal, ya da bir sensörün bağlı olduğu pine gelen 5v (lojik 1) olabilir. Kesme sinyali geldiğinde program kesme vektörüne dallanarak burada bulunan komutları işlemeye başlar.

►Program Hafızası: Bu birime çeşitli dillerde yazdığımız kodların derlenerek makine diline çevrilmiş hali tutulur. CPU bu birimden satır satır program komutlarını okuyarak işlemi gerçekleştirir ve bir sonraki satıra geçer. En son hangi satırın okunduğu bilgisi PC(Program Counter) adlı saklayıcıda tutulur.

►Adres: Hafıza biriminin verinin okunacağı yada yazılacağı satırını ifade eder. ►Adres Yolu: Adres yolu verinin gideceği adres bilgisini taşır. ►Veri Yolu: Mikrodenetleyicinin birimleri arasında veri ve güç transfer etmeye yarayan bağlantılardır. Veri yolu genişliği mikrodenetleyicinin bir seferde transfer edebileceği bit sayısını ifade eder. 8 bitlik bir veri yolu bir seferde 8 bit transfer edebilir.

►I/O Port: Mikrodenetleyicinin dışarıya açılan kapısıdır ►I/O Port: Mikrodenetleyicinin dışarıya açılan kapısıdır. Pinler aracılığı ile gelen verileri tutar ve mikrodenetleyiciden dışarıya veri ya da güç gönderilmesini sağlar. ►8 Bit- 16 Bit - 32 Bit: Kişisel bilgisayarlarımız için de sıklıkla duyduğumuz “x Bit” ifadesi mikroişlemci ya da mikrodenetleyicinin bir çevrim yani bir saat darbesi süresinde işleyebileceği veri miktarını ifade eder. 16 bitlik bir veriyi 8 bitlik mikrodenetleyici 2 çevrimde işleyebilirken 16 bitlik işlemci bir çevrimde işler.

►Analog Digital Converter(ADC): İsminden de anlaşılacağı gibi bu birim mikrodenetleyicinin ADC pinine gelen analog sinyali 1 ve 0 lardan oluşan dijital sinyale dönüştürerek mikrodenetleyicinin yorumlayabileceği bir veri halini almasını sağlar. Analog ve dijital sinyal kavramlarını açacak olursak; Analog veriyi gerçek hayatta ölçtüğümüz veriler olarak açıklayabiliriz. Bir duvarın uzunluğu, bir ortamın sıcaklığı ya da nem oranı birer analog veridir. Bu veriler çeşitli sensörlerle analog elektrik sinyaline dönüştürülürler.

Örneğin bir sıcaklık sensörü ortam sıcaklığına göre çıkışında belirli seviyelerde elektrik gerilimi oluştururlar. Bu sensör vasıtasıyla analog veriyi analog sinyale dönüştürmüş oluruz. Fakat mikroişlemciler sadece 1 ve 0  verilerini algılayabilir ve işleyebilirler. Sıcaklık sensörü 40 derecede çıkışında 3,2 V gerilim oluşturuyorsa mikrodenetleyicinin tek göreceği 1 dir.

Burada ADC devreye girerek analog elektriksel sinyali 1 ve 0 lardan oluşan dijital veriye dönüştürür. 8 bitlik bir ADC birimi girişinden 5V okuduğunda mikrodeneteyiciye 8 bitle ifade edilebilecek maksimum değeri yani 255 ‘i gönderir. Çünkü ADC nin okuyabileceği maksimum gerilim genellikle 5V  tur. Bu durumda ADC hassasiyeti 1/255 yani %0,4 dür. 12 ve 16 bitlik ADC ler daha hassas dönüşüm yapabilirler.

►Digital Analog Converter(DAC):Mikrodenetleyiciler analog girişleri anlamayacağı gibi analog çıkış da veremezler. Dijital Analog Çevirici PWM sinyalleri ile mikrodenetkeyiciden analog sinyal üretilmesini sağlar. Pulse Width Modulation (Darbe Genişlik Modülasyonu) kare dalganın genişliklerini değiştirerek çıkışta istenen analog gerilim düzeyinin elde edilmesini sağlar. Duty Cycle yani dalganın doluluk oranı ortalama gerilim seviyesini belirler.

Ortalama Gerilim = (Duty Cycle) x (VLojik_1 – VLojik_0) /100

►Timer (Zamanlayıcı): timer birimi bir çalar saat gibi kurularak zaman dolduğunda mikrodenetleyicide kesme oluşturuyordu. Timer birimi tıpkı lojik devrelerde gördüğümüz sayıcı devreleri gibi çalışır. Clock darbelerinin yükselen ya da düşen kenarları sayarak ilgili registerlarda saklanan değere gelindiğinde kesme üretir.  Ayrıca harici kaynaklardan gelen darbeleri de sayabilir. Eğer timer harici kaynaktan beslenirse sayıcı olarak, dahili kaynaktan beslenirse zamanlayıcı olarak kullanılır. Timer birimi çeşitli mikrodenetleyici ailelerinde değişik çalışma modlarına sahiptir.

►WDT(Watchdog Timer): Watchdog Timer(bekçi köpeği zamanlayıcısı) programın aksaması ya da tıkanması durumları için tasarlanmıştır. WDT belirli aralıklarla programı resetleyerek yeniden başlatır. Sistem saatinden bağımsız RC osilatöre sahiptir. Bu sayede mikrodenetleyici osilatörünün çalışmaması durumunda da devreye girebilir.

►UART(Universal Asynchronous Receiver / Transmitter): UART ‘ı açıklamadan önce seri ve paralel haberleşme kavramlarını açıklamamız gerekiyor. Paralel haberleşmede 8 bitlik bir veri 8 ayrı kablo üzerinden bir defada iletilirken seri haberleşmede tek bir kablo üzerinden 8 defada iletilir. UART paralel veri ve seri veriyi birbirine dönüştürme işini yapar. Mikrodenetleyici sistem yolundaki paralel veri başka bir sisteme gönderilmeden önce seri veriye dönüştürülerek tek bir kablo üzerinden gönderilir. Karşı taraftaki UART modülü ise gelen veriyi paralel veriye dönüştürerek mikrodentleyici yapısına uygun hale getirir. UART ile çift yönlü asenkron haberleşme gerçekleştirilebilir.

Haberleşme hızı baud rate ile ölçülür. Baud rate bps(bit per second) yani saniyede gönderilen bit sayısı ile ölçülür.  Haberleşmenin sağlanabilmesi için alıcı ve gönderici aynı baud rate ile çalışmalıdır.

►SPI(Serail Peripheral Interface): SPI sayısal entegre devrelerin birbirleri ile haberleşmesi için Motorola tarafından geliştirilmiş haberleşme standardıdır. Çift yönlü ve senkron olarak çalışır.

►EEPROM(Electronically Erasable Programmable Read-Only Memory): Küçük boyutlu verileri saklamak için kalıcı olarak yazılabilen ve silinebilen bellek türüdür. RAM ‘e göre daha yavaş çalışır. Mikrodenetleyicinin programının yürütülmesi sırasında kalıcı olarak saklanması gereken veriler EEPROM ‘a yazılabilir. EEPROM ‘a yazılan veriler mikrodenetleyicinin gücü kesilmesi durumunda bile silinene kadar saklanmaya devam eder. RAM deki veriler ise güç kesildiğinde silinir. Günümüzde birçok mikrodenetleyici dahili olarak EEPROM bulundurur. EEPROM bulundurmayan mikrodenetleyicilere harici olarak bağlanarak SPI üzerinden veri yazılabilir/okunabilir. Bu çevre birimleri dışında bazı mikrodenetleyiciler kullanım alanı ve kullanım amacına göre USB, Ethernet, CAN gibi çeşitli çevre birimlerini dahili olarak barındırabilmektedir.

Mikrodenetleyici nasıl programlanır? Mikrodenetleyici programı bir derleyici (compiler) yardımı ile derlenip makine kodlarına dönüştürülerek MCU üreticisinin tasarladığı ya da başka firmalar tarafından üretilen programlayıcı devreler üzerinden mikrodenetleyicinin program hafızasına yazılır. Program hafızasına yazılan kodlar makine dili seviyesinde yani 1 ve 0’lardan oluşur.

Komut Seti (Instruction Set) Her mikrodenetleyici ailesi üretici firmanın belirlediği bir komut seti (Instruction Set) ile birlikte duyurulur. Bu komut seti mikrodenetleyicinin özelliklerine ve çevre birimine göre değişiklikler gösterir. Üretici firmanın duyurduğu bu komut seti Assembly dilindedir. Assembly dili makine diline yakın düşük seviyeli bir dildir. Makine dili komutlarına (0 ve 1 ‘lerden oluşur) İngilizce dilinde getirilen kısaltmalardan oluşmuştur. Bu kodlar yine üreticinin hazırladığı Assembler denilen derleyiciler ile derlenerek makine diline dönüştürülür.

Assembly Dili - C Dili Assembly dilinin makine diline yakın düşük seviyeli bir dildir. Burada düşük seviyeli dil tanımı dilin konuşma dilinden uzaklığını ifade eder. Kısacası bir dilin seviyesi düştükçe o dilde programlama yapmak zorlaşır fakat esneklik artar. Yüksek seviyeli dillerde ise program yazmak kolaylaşırken yazılabilecek programlara bazı kısıtlamalar gelir.

Derleyiciler Son yıllarda en çok kullanılan derleyicileri MPLAB, PIC C, Micro C, IAR, KEIL, CCS, Atmel Studio olarak sıralayabiliriz. MPLAB Microchip firmasının, Atmel Studio Atmel’İn, KEIL ARM’ın, CCS ise Texas Instruments firmasının yayınladığı derleyicilerdir. Burada bahsettiğimiz tüm derleyicilerin farklı mikrodenetleyici aileleri için çeşitli sürümleri bulunmaktadır. Mikrodenetleyici programlama da donanım seçiminin önemli olduğu kadar dil ve derleyici seçimi de çok önemlidir. Her ne kadar Assembly dili az kullanıldığı için gereksiz görülebilse bile mikrodenetleyicinin yapısının iyi öğrenilebilmesi için programcının komut setine hakim olması gereklidir.

Bu nedenle bir gömülü sistem tasarımcısı hem Assembly hem de C dillerini iyi seviyede kullanabilmelidir. Derleyici seçimi konusunda ise arayüze yatkınlık, derleyicin sunduğu ekstra özellikler(simülasyon, özel kütüphaneler vs. gibi) ve kullanıcıların değerlendirmeleri göz önüne alınarak bir seçim yapılabilir.

Mikrodenetleyiciler PIC Ailesi ( Programmable Intelligent Computer ) PIC denetleyiciler, dahili EPROM bellekleri, programlanabilir I/O kanalları, seri iletişim modülleri ve 12, 14, 16 bitten oluşan word birimi ile 256 word'den 64 kilo word'e varan program hafızaları ile PIC Mikro Ailesini oluşturur.

NEDEN PIC ? En temel sebebi Microchip firmasının web sayfaları üzerinden sağladığı teknik destektir. Tüm mikrodenetleyicilere ilişkin ayrıntılı bilgiler ve farklı mikrodenetleyiciler ile yapılmış, farklı uygulama örnekleri firma tarafından ücretsiz olarak dağıtılmaktadır . Hepsinden önemlisi, firma devamlı geliştirmekte olduğu MPLAB adlı simülasyon programını da ücretsiz olarak dağıtmaktadır. Böylece PIC programlamak isteyen bir kişi, assembly editor, derleyici, simülatör ve programlayıcı ihtiyaçlarının hepsini tek bir program ile ve ücretsiz olarak gidermiş olmaktadır. Sadece Assembly değil Basic (Pic Basic Pro) ve C (Hitech PicC, CCS C) ve Pascal dilleri ile de derlenebilirler. Firmanın sağladığı bu desteğe bağlı olarak gelişen bir başka avantaj ise, bu konu ile ilgili kaynağın çok olmasıdır.

Ayrıca PIC'ler az sayıda komut içeren komut kümelerine sahiptirler ve kolayca programlanabilirler. PIC'ler karmaşık olmayan osilatör, reset, besleme devreleri ile sağlıklı olarak çalışabilirler. Elbette en büyük avantajlarından birisi de ekonomik olarak oldukça uygun fiyatlara edinilebilmeleridir.

PIC AİLESİ ►PIC10 ve PIC12 Ailesi, 8-bit veriyolu, 12-bit yazılım mimarisi ►PIC 16 Ailesi, 14-bit yazılım mimarisi, gelişmiş iletişim ve ADC özellikleri, PIC16F628, çok popüler olan PIC16F84'ün yerini almıştır) ►PIC18 Ailesi 16-bit yazılım mimarisi, 16-bit veriyolu ►PIC24 Ailesi, 24-bit yazılım mimarisi ►dsPIC : PIC24 tabanlı, artı DSP ( sayısal sinyal işleme ) fonksiyonları ►PIC32-bit Ailesi, 32-bit veriyolu ►PIC32MX Ailesi : MIPS Mimarisi tabanlı, 32- bit veriyolu