25 Temmuz 2013 Perşembe

C İLE PİC PROGRAMLAMA

C İLE PİC PROGRAMLAMA









Giriş

Assembly dili kullanarak mikro programlama, artik söz değil çok sinir bozucu ve hantal. Zaman geçtikçe, geliştiriciler mikro için özel olarak hedeflenen üst düzey diller için Derleyicileri başlamıştır. Ben şahsen PIC kullanın ve onlar için kaynak oldukça çok şey var. MBasic gibi bile iyi bir temel derleyiciler var, ama TEMEL nefret, ben bile bu konuda konuşmak olmaz! Ben CC5X, SDCC (bu açık kaynak) ve HiTech yazılım PIC C gibi çeşitli derleyiciler ile, PIC16F84, çok popüler bir mikroişlemci için uygulamalar oluşturmak için çalıştık. Ben yüksek PIC kullanmayın çünkü henüz, Microchip mikroC kullanmamışlardır. Orada ücretsiz bir Lite versiyonu Bunların her biri kendi güçlü noktaları ve zayıf olanlar vardır, ama bugüne kadar, ben tavsiye ederim en iyi derleyici PIC C olan HiTech Yazılım ve beklendiği gibi, beklediğim olmaz bir şirketten daha az bir şey özellikle PIC mikro denetleyiciler için C derleyicileri geliştirmeyi amacı vardır.

Geçmiş

Her zamanki gibi, kodlama her türlü herhangi bir yeni başlayanlar için, her zaman o ilk "merhaba dünya" uygulaması olmalı! Mikroişlemcilerin programlanması, bu kesinlikle bir LED açık ve kapalı yanıp sönüyor. Şimdi bu yapacağız.
Ben PIC C Pro (45 günlük deneme sürümü) ile HI-TIDE Integrated Development Environment kullanıyorum. Siz de PIC C Lite kullanabilirsiniz (bu her şeyi bilen kod üretimi olmadığı için daha büyük bir hex dosyası üretecektir). Dahası var? PIC C Lite kolayca mikroçipler MPLAB entegre ... bu yüzden oraya gitmek ... iki ücretsiz ürün var.
SDCC DevMic adlı bir IDE vardır (Ben gibi Delphi ile yazılmış olduğunu düşünüyorum DevC + +, onlar çok benzer) ve her ikisi de açık kaynak vardır. Ancak, başka bir zaman için rezerv SDCC izin ... Ben bir acemi için daha iyi söyleyemem.

Yani, eski CodeProject demişler Biraz zzzzt zzzt izin!

<htc.h> Ve <pic.h> standart tanımlar içerir ve birlikte çalıştığınız herhangi bir kaynak dosya dışında bırakılmak asla. Biz LED biraz geciktirmek istediğiniz bu yana, bir fonksiyonu kullanmak zorundadır DelayMs(int) , bu işlevi 255 değerleri sürer. Bu sayı LED açık veya kapalı olmak istediğiniz milisaniye sayısını gösterir. Ayrıca, işaretçilerine olanlar girişler çıkışlar ve hangi hangi portu, ya da daha spesifik olarak, beyan etmek zorunda kalacak. PortB RB0-RB7 8 bağlantı noktası vardır, ve (herhangi bir pin bir giriş ya da çıkış olabilir) iki yönlüdür. PortA RA0-RA5 gelen işaretçilerine vardır ve aynı zamanda iki yönlüdür. Ancak, RB4 için RB7 kesmeleri olarak yapılandırılabilir. Daha sonra bir kesme ne olduğunu göreceğiz. Sizin kod editörü şu şekilde olmalıdır:
  # Include <htc.h> 
  # Include <pic.h> 
  # Include <delay.c> 

 Ana ()
 {
     TRISB = 0; / / outpot olarak PORTB ilan 
    
     (için, ;) / / sonsuza kadar do 
  {
         RB0 = 1 / / LED ON 
  DelayMs (250); 0,25 saniye / / gecikme 
  RB0 = 0; / / OFF LED 
  DelayMs (250);
     }
 } 
Oluşan HEX dosyası almak ve mikro (Bunu nasıl yapacağınızı öğrenmek varsayıyorum) içine yükleyin. Bir PIC16F84 kullandığınızı unutmayın. Eğer başka bir türü kullanıyorsanız, o zaman proje yaparken bu ayrıntıyı belirtmek gerekir. Eğer proje ile çalışmak bile HI TIDE bile, her zaman PIC herhangi bir türü için kaynak kodu uyum sağlar.
PIC (I 26.3mA bazı kez akımları ölçmüş) 25mA akım en fazla kaynağı vardır ve bu yeterli doğrudan LED sürücü etmektir. Eğer RB0 pin ve yere LED bağlamak Yani, bunu bir saniyenin dörtte yanıp görmelisiniz. Bir LED Eğer (kısaca, bir oryantasyon işe yaramazsa, ikinci gerekir!!!) Sağ bağlantısı olması gerekir bu yüzden, bir pn kavşak olduğunu unutmayın.

Normal çalışma müdahale

Her zaman, mikroişlemciler ve mikrodenetleyiciler, biz çok şeyler kontrol isteyip istemediğinizi ve farklı durumlara göre farklı şekilde etkiler. Diğer bir deyişle, orada normal çalışma sequence1 olsun, bu tür ve böyle bir şey olduğunda, sequence2 etkinleştirin. Normalde, bu bir "kesme dizisi" denilen, ama daha deneyimli programcılar (kesme dizileri program dahilinde kendi kod alanı ikamet ve doğrudan değiştirmek için ana rutin yürütülmesine neden gerekir) eleştirilerine önlemek için, bize sadece izin "normal işlemini engelliyor" diyoruz!
Orada C. One bunu yapmak için iki yol kullanmakta olup if ifadeleri, ve başka bir kullanmaktır while tablosu. Sevmiyorum while döngüler, bu yüzden "sadık olacaktır if ".
Biz kod biraz değiştirmek için gidiyor ve yerine milisaniye (üstelik 255!) Sınırlı olma saniye ondalık bizim "gecikme" belirtebilirsiniz böylece bile ekstra bir işlev eklemek vardır.
Yani, bize HITIDE veya MPLAB başka bir proje oluşturmanızı ve bu kodu eklemek. Bu benim yüklenen kaynak kodu Interrupt.c denir.
  # <htc.h> Dahil
 # <pic.h> Dahil
 # <delay.c> Dahil

 int j, ben kullanacak / / genel global değişkenler 

 geçersiz Wait_These_Seconds (float s) / / sadece 3 ondalık 
  {
     milli_Equiv int / / mili saniye eşdeğer tamsayı 
  milli_Equiv = 1000 * s;
     (; j <= milli_Equiv; j + + j = 1) için
     {
         DelayMs (1);
     }
 } 
   
 Ana ()
 {
     TRISB = 0xF0 / / RB4: RB7 girilir, ikili 11110000 
  for (; ;)
     {
 
         if (RB7 == 1)
         {
             RB0 = 1 / / LED ON 
  Wait_These_Seconds (1 8)., 1.8 saniye / / gecikmesi 
  RB0 = 0; / / OFF LED 
  Wait_These_Seconds (0 9).;
          }
     
         (RB7 == 0) / / kesme yere RB7 bağlanıyor ise 
  {
             RB0 = 1 / / LED ON 
  Wait_These_Seconds (0 7)., 0.7 saniye / / gecikmesi 
  RB0 = 0; / / OFF LED 
  Wait_These_Seconds (0 1).;
         }
     }
 } 
Sana onaltılık ikili ve tersi dönüştürmek öğrenmek öneririz. Eğer C ne şimdi yapmış olduğu içinde PIC çalışmak için gidiyoruz eğer ihtiyacınız:
  • Biz girişleri kabul RB7 için işaretçilerine RB4 yapılandırılmış ve böylece kesmeler, onlar bunu tek işaretçilerine olduğu ve var
  • bizim kesme pin olarak RB7 var. Normal operasyonlarda, RB7 = 1. Bizim kesme eylemi RB7 zemin ve sıfır (donanım her zaman yazılım öncelikli!) Için zorlamak için olacaktır.
Yani, proje oluşturmak ve program PIC. Bu kapalı bir saniye için, daha sonra (kesin olarak 1.8) 2 saniye devam edilmelidir. Şimdi, RB7 için bir tel bağlamak ve zemin için pin. Sırası değişecek ve LED saniyenin sadece onda biri için kapalı 0,7 saniye olmak, daha hızlı yanıp, ve olacaktır. Biz başarıyla kesme programlanmış var!

Dahası var?

Yerine büyük bir ampul veya bir DC motor yanıp ister misiniz? Eğer bana bildirin, ben nasıl anlatacağım! Biz sadece mevcut yükseltmek ve bir transistör kullanmak zorunda!
Herhangi bir sorunuz ve sorun giderme açıktır.
Ben dekoratif ışıklar gibi şeyler için karmaşık algoritmalar oluşturmak için nasıl hakkında daha fazla makale yazacağım, aynı anda farklı zaman aralıklarında yanıp sönen LED, ve çok daha fazlası!

12 Temmuz 2013 Cuma

PIC PROGRAMLAMA DERSLERİ

PIC PROGRAMLAMA DERSLERİ

PIC PROGRAMLAMA DERSLERİ

Bu makalede sizlere Pıc Programlama Derslerinden başlangıç derslerini anlatacağız.Haydi başlayalım....:)




PIC Derslerine Başlarken

 Öğretici Microchip C18 derleyici ve nispeten yeni PIC18F1320 çip ile C programlama kullanır. Bu çip analog-dijital dönüştürücüler, seri iletişim yeteneği, ve diğer güzel çevre birimleri vardır. 

Daha önce mikro kullanmadıysanız, sizin projelere istihbarat eklemek için birebir. Sadece küçük, ucuz bilgisayar konum. Microchip PIC mikrodenetleyiciler ucuz ve son derece yetenekli, ancak üretim cihazları hedefleyen konum, bu yüzden başlamak için biraz daha konum ve bu BASIC Stamp serisi olarak hobi hedefleyen mikro, daha anlıyorum. Eğer yeteneklerine oldukça emin olmadıkça ilk BASIC Pullar ile başlayan tavsiye ederiz. (Arduino mikrodenetleyici / daha pahalı öğrenmek benzer kolay ve görünüşte DIY projeler için kullanılacak moda mikro, ama ben şahsen denemedim.) 

Her neyse, burada PIC C programlama için basit bir "Merhaba Dünya" tipi programlama rehber: 

Gerekli yazılımı yükleyin:

<Güncelleme: Aşağıdaki talimatları MPLAB IDE için yazılmıştır. Yeni bir sürümü MPLAB X IDE ve çok daha üstündür. Eğer MPLAB X kullanıyorsanız, zaten dahildir olarak MPLAB C derleyicisi indirmek gerek yoktur. Ayrıca aşağıda yeni bir proje başlangıç ​​bazı ayrıntıları farklı ya da gereksiz olacaktır, bu yüzden sadece onun sihirbazı geçmesi. Aşağıdaki C dosyaları yine de olsa çalışacaktır.> 
  • Indirin ve yükleyin MPLAB IDE . (Bu C derleyicisi önce bu yüklemek için en iyisidir.)
  • Indirin ve kurun MPLAB C derleyicisi (aka C18 derleyici). Ücretsiz "Standart-Eval Sürüm." Alın Eğer yüklediğiniz unutmayın. Ayrıca "MPLAB C18 Kütüphaneler Dokümantasyon" ve aynı sayfada belgeler "Başlarken C derleyicisi" indirin. (Bu seçeneği verirse takarken, "MPLAB IDE güncelleştirme" için bunu söylemek.)

Yeni bir proje başlatın:

  • MPLAB IDE, Proje / Proje Sihirbazı gidin ...
  • PIC18F1320 cihazı kullanmak için söyle.
  • Gelecek Eğer varsayılan bizim istediğimiz değil montaj, içeri programlamak istediğiniz dili soracaktır. Yani "Aktif ToolSuite" altında Microchip C18 ToolSuite seçin. O seçtiğinizde, bazı dosyaları nerede bilmiyor görebilirsiniz. Eğer öyleyse, size C18 yüklü bunu söylemek gerekir. Bu 4 dosyaları için sorar:
    • MPASM Assembler <C18 Kurulum Dizini> \ MPASM olduğunu
    • Diğer 3 resimler <C18 kurulumda directory> \ bin olan
  • İleri'yi tıklatın. Altında ", Yeni Proje dosyası oluştur" Gözat 'ı tıklatın ve işinizi tüm kaydetmek için gidiyoruz bir klasör seçin. Bu "testproject" gibi proje için bir dosya adı yazın ve Kaydet'i tıklatın.
  • İleri'yi tıklatın. Biz daha sonra yapacağız ", projenize Mevcut Dosya Ekle" adımını atlamak. Bu yüzden tekrar İleri'yi tıklatın ve Son'u tıklatın.
  • Artık oldukça boş bir çalışma alanı göreceksiniz.
  • Seçenekler / Proje Yapı / Proje git ...
  • Altında "Dizinler," <C18 kurulum için "dahil arama yolu" dizini> \ h ayarlayın
  • "Kütüphane arama yolu" <C18 yükleme directory> \ lib ayarlayın ve Tamam'ı tıklatın.
  • Eğer sorun varsa, ben karşıdan olduğunu belge "C derleyicisi Başlarken" Daha ayrıntılı talimatlar (Birkaç kullanıcı arayüzü parça MPLAB sürümüne bağlı olarak, farklı isimler olabilir) vardır.

Projeye dosya ekleme:

  • Önce bizim PIC modeli için "bağlayıcı komut dosyası" seçmeniz gerekir. Bu C18 derleyici gerekir bu aygıtın özel bilgiler içeren bir dosyadır. Bizim açımızdan, biz sadece seçim ve unutun. Altında görüntülenen klasörlerin ağaç bak "testproject.mcp." "Linker komut dosyası" sağ tıklayın ve "Dosya Ekle ..." seçin Dizini> \ bin \ LKR <C18 kurulum gidin ve dosyayı "18f1320_g.lkr" seçin.
  • Sonra gerçek C kaynak kodu ekleyin. İlk olarak, unzip indir, ve "kopya tutorial1.c size proje kaydettiğiniz dizine altında "dosyası. Sonra altında "Kaynak Dosyaları" sağ tıklayın "testproject.mcp." Seç "Dosya Ekle ..." ve tutorial1.c seçin. Bu altında görünecek "Kaynak Dosyaları." Onu açmak için çift tıklatın.

Projeyi derlemek

Proje / Tüm Build gidin. Her şey iyi giderse, bir pencere diyerek gelecek "SUCCEEDED YAPI." Eğer projenizin klasörüne giderseniz, adlı bir dosya görmelisiniz "testproject.hex." Tebrikler! Başarılı bir PIC programı derledik. (Orada sorunlar vardı ve dese sorunun ne olduğunu görmek için yukarıdaki metin okumak "YAPI, BAŞARISIZ". Eğer hata bir şey bulmak mümkün değil varlık hakkında, özellikle de yukarıdaki projenin kurulum adımlardan biri atlanır olabilir. Ayrıca C18 Başlangıç ​​Kılavuzu kontrol edin.) 

Bir PIC Edinme

Sen 4 ücretsiz numune kadar alabilirsiniz Microchip web sayfası (, diğerleri bir breadboard üzerinde çalışmaz Eğer PDIP paketleri almak emin olun). Ayrıca pin isimleri ve kendi programları yazmaya başladığınızda ihtiyacınız olacak diğer bilgileri içeren 18F1320 veri indirebilirsiniz.

PIC üzerine program olsun

Programı ve tüm yapılandırma bilgileri bu PIC ihtiyaçlarının - testproject.hex dosyası her şeyi içerir. PIC bu dosyayı almak için çeşitli yolları vardır. Ben aslında Ebay ucuz bir üçüncü taraf "JDM programcı" kullanılır. Bu sizin en PC'ler artık yok olsa, hangi bilgisayarınızda bir seri bağlantı noktası olması gerekir. Çoğu USB-seri dönüştürücüler ucuz ve aslında standart seri bağlantı noktası gerilim seviyeleri üretmek değil, çünkü genellikle, ya USB-seri dönüştürücüler ile çalışmaz. 

Yani, sadece Microchip resmi USB tabanlı programcılar biri satın öneririz. Mevcut en popüler PICkit 3 PIC için PICkit 3 bağlamak için (sadece bizim için 45 $ programcı kendisi değil, kalkınma kurulları, vb gerekir), PICkit 3 Kullanım Kılavuzu bakmak, bu programlama bağlayıcı bir yapısından. Kendi veri gelen PIC pin çıkışı kullanarak, karşılık gelen PIC pin bu her Pin. İşte bir örneğidir bağlantı. Satın alabileceğiniz başlık bağlantı PICkit programlama konnektörüne bağlamak için, ya da bir yerde priz ve bant her şeyi içine sadece reçel 22-gauge tel yapabilirsiniz. Ben bir yedek breadboard doğru bağlanmış teller bırakın ve sadece programlamak için bu breadboard olarak PIC koydu. MPLAB IDE doğrudan PIC programlamak için PICkit 3 bağlanabilirsiniz. 

PIC programı test

Yapmak için bir sonraki şey bir devrede PIC koymak ve gerçekten çalışıp çalışmadığını görmek olduğunu. Aşağıdaki devre yapacağız. Ben kuvvetle olarak benim üzerinde tartışılan bir kaynaksız breadboard, kullanarak devre inşa tavsiye nasıl yapılır-build-elektronik sayfa. Bazı isteyeceksiniz 22-gauge tel breadboard bağlantıları yapmak için, internet veya Radio Shack,. 

PIC PROGRAMLAMA DERSLERİ
İşte devrenin kısa bir açıklama var: 

LM1805 voltaj regülatörü, giriş az yaklaşık 7 ve 12 volt arasında bir süre alır ve çıkışında bir sıkı kontrol 5 volt verir. Bu bir sabit gerilim tutmak için çıktı bir kondansatör ihtiyacı var. (Bu bilgiler veri değil.) Giriş gerilimi iyi bir kaynak bir 9V pil, ya da eski bir telefondan bir DC duvar güç kaynağı, LAN yönlendirici veya diğer tüketici elektroniği olduğunu. Sen 9V pil bağlanmak için klipsli bağlantı satın alabilirsiniz. DC duvar güç kaynağı için, marifet (mevcut tellerine Ben genellikle sadece lehim 22-göstergesi teller.) Kullanın. 

PIC - Hangi işaretçilerine olduğunu öğrenmek hangi PIC18F1320 veri sayfasında resimden. Güç bağlantıları ve pin RA0 - Şimdilik, biz sadece + ve kullanıyorsanız. Pin RA0 genel bir giriş / çıkış pin. Öğretici kodu bir çıkış olarak yapılandırır. Bir mantık "1" (5 volt) ve mantık "0" (0 volt) arasına dönüşümlü çıkışını. 

LED ve direnç (isterseniz yerine bir multimetre kullanabilirsiniz) RA0 ne yaptığını görmek için kullanılır. RA0 5V'ta olduğunda, LED yanacaktır. (Direnç LED'ler için tipik olan, yaklaşık 10mA geçerli sınırlar her yerde 200-500 ohm aralığında ışığa almalısınız..) İsterseniz, ayrıca + ve başka bir LED ve direnç koyabilirsiniz - hatları, Devre açıldığında göstermek için. 

Kondansatör, yukarıda tartışıldığı gibi, voltaj regülatörünün çıkış gereklidir. PIC aynı zamanda girişler arasında bir kapasitör gerekmektedir.Eğer bir vermeyin, size PIC garip davranış olsun yaparsanız, daha büyük bir kondansatör (Ben genellikle aslında bir 1000uF kapasitör kullanın) kullanın ve yakından olarak bağlı olduğundan emin olun garip davranış, yeniden, vb gösterir PIC işaretçilerine - + ve mümkün. Yan - (. Uzun tel çalışır PIC için gerilim düzeltme de daha az etkili hale getirecek) Ayrıca, bir elektrolitik kondansatör (tipik olarak mavi bizleriz) kullanıyorsanız, kondansatör bir + ve vardır. "-" Iki tarafında "---" ile işaretlenmiş veya daha kısa bir tel vardır. Eğer gösterildiği gibi bağlayın emin olun. 

2 Temmuz 2013 Salı

PIC PROGRAMLAMA DEVRESİ

PIC PROGRAMLAMA DEVRESİ


Bu makalede size Pıc Programlama Devresinden bahsedeceğim.Hadi başlayalım..




PIC Programlama Devre Şeması

Ardından uJDM PIC programcısı devre bir devre basit PIC16F84, PIC16F84A, 16c84, 16F628 grup programcı yapmak için uygun olan.
PIC PROGRAMLAMA DEVRESİ
PARÇA LİSTESİ
R110KQ
R23.3KΩ
R315KΩ
C1100μF 16V
D1LED
Z15,1 V Zener
Q1BC547'nin
PICPIC16F84, PIC16F84A, 16C84, 16F628
Rs232RS232 femail Bağlayıcı
IC BankasıPIC için 18 pin ic tabanı
BC547'nin Transistör Pin Yapılandırma
  • PIC için IC tabanı kullanılarak
  • RS232 tel kullanarak 1 veya bilgisayar 2. COM PORT için PIC programcısı bağlayın.
  • KULLANIM MPLAB VE IC-PROG bu PIC Programcı programı ile PIC (ya da herhangi bir ic programlama yazılımı).
PIC PROGRAMLAMA DEVRESİ
PIC16F84A Mikro Denetleyici

PIC PROGRAMLAMA DEVRESİ
PIC 16F84A Programcı

21 Haziran 2013 Cuma

PIC MİKRODENETLEYİCİ

PIC MİKRODENETLEYİCİ



Bugün size Pıc Mikrodenetleyici hakkında bir kaç bilgi vereceğiz..

PIC Mikrodenetleyici Giriş

Bir mikroişlemci ile ne yapabilirim?
Cevap: hemen hemen her Projeyi kolayca ...
Mikrodenetleyiciler size projeler oluşturmanız için fantastik bir yol verir. Bir PIC mikro hafıza ve RAM inşa ve size projeleri (veya etrafında projeleri oluşturmak) kontrol etmek için kullanabilirsiniz.Bu yüzden bina kaydeder bir devre . Ayrı bir harici RAM, ROM ve periferik fiş Modül birçok yararlı yerleşik olan çok güçlü bir cihaz olması bu gerçekten sizin için ne anlama gelir?

 Örneğin
PIC MİKRODENETLEYİCİ


- Hatta sadece bu dört modül (bu sadece örnek modülleri not daha vardır) ile birçok proje gibi makyaj yapabilirsiniz: * Frekans sayacı . - UART (RS232) veya LCD çıkışı üzerinden iç sayaçları ve raporlama kullanarak * Kapasite metre - analog karşılaştırıcı osilatör. * Olay sayacı - . dahili sayaçlarını kullanarak * Olay veri kayıt -yakalama dahili ADC kullanarak ve yüksek veri için harici bir I2C kullanarak veri depolamak için (dahili EEPROM kullanarak analog veri depolama kapasitesi . Servo kontrol (UART üzerinden kontrol ) -. dahili PWM modülü kullanılarak veya PWM oluşturulan bir yazılımı kullanarak PIC Mikro olduğu en popüler mikroişlemcisi bir ve durumda bir arasındaki fark merak mikroişlemci ve mikro denetleyici bir mikroişlemci dahili bellek ile bir iç veri yolu olmasıdır . ve çevre birimleri . Aslında 12F675 en 8 pin (DIL) sürüm iç çevre birimleri inanılmaz bir numarası vardır Bunlar:





  • İki sayaçları.
  • 4 seçilebilir girişli bir 10bit ADC.
  • Bir iç osilatör (ya da harici bir kristal kullanabilirsiniz).
  • Bir analog karşılaştırıcı.
  • Program hafızası 1024 kelime.
  • RAM 64 bayt.
  • EEPROM bellek 128 Byte.
  • Dış kesme (aynı zamanda iç çevre birimi kesmeleri).
  • Dış kristal 20MHz kadar gidebilir.
  • ICSP: PIC standart programlama arabirimi.
Ve bir 8 pin DIP paket içinde bu işin her!


Orta sınıf cihazlarda 1k dan 8k (18F parçalar daha fazla olması) için bellek alanı aralıkları - Bu çok gibi görünmüyor ama işlemci etkin bir komut seti vardır ve hatta 1k örneğin LM35 ile yararlı projeler yapabilirsiniz sıcaklık algılama proje seri bağlantı noktasına veri raporlar kolayca 1k dahilinde ulaştırılır.

Özellikler

Aslında bir PIC mikro dahili RAM, EEROM FLASH bellek ve çevre birimleri ile inanılmaz güçlü bir tam özellikli işlemcisi. En küçük olanları biri 555 zamanlayıcı yer kaplar ama 10bit bellek 1k ADC, 2 sayaçları, yüksek akım I / O portları bir karşılaştırma bir saat köpek zamanlayıcı vardır ... Daha fazlası var gibi gidebiliriz!

Programlama

Bir en kullanışlı özelliklerinden biri PIC mikro (Eğer bir F bir parçası seçerseniz onlar flash bellek kullanımı gibi bunları yeniden programlamak gerekebilir parça numarası 12F675 değil 12C509 gibi). Ayrıca her yerleşik ICSP seri arabirim kullanabilirsiniz PIC Mikrodenetleyici programlama ve hala devre takılı var iken bile programlama yoktur! Bu programı bir birini yapabilirsiniz PIC mikro montaj ya da üst düzey bir dil kullanarak ve bir kullanmanızı öneririz yüksek düzeyde dil gibi C olarak (bir başlangıç ​​öğrenme eğrisi sonra) kullanımı çok daha kolay olduğu gibi. Sonra size bir AVR veya Dallas mikro gidin ve hala aynı yüksek düzeyde dil kullanabilirsiniz aynı işlemci örneğin kullanmak zorunda değildir üst düzey dil öğrendim.



Giriş / Çıkış - I / O

Bir PIC Mikrodenetleyici  çıkışları kontrol etmek ve bir röle sürücü veya giriş düğmeleri okuyabilir örneğin girişlerine tepki. daha büyük cihazlar sayesinde LCD veya sürücü mümkün yedi segment tüm iş PIC Mikro içinde yapıldığı gibi çok az kontrol hatları ile görüntülenir.

Bir karşılaştırma frekans sayacı size ayrı bir tasarım için mikro tasarım ve on veya daha fazla için iki veya üç fiş bulacaksınız ayrık web tasarımları için. Bu yüzden onları kullanarak devre çalışmasına çok dikkat çekmek için çevre birimleri inşa kullanabilirsiniz olarak prototip tasarım emek tasarrufu sağlar.

Birçok şimdi ADC yerleşik bir var okuyabilirsiniz harici cihazlar örneğin eklemenize gerek kalmaz analog sinyal seviyeleri okuyabilirsiniz bir LM35 sıcaklık sensörü herhangi bir arayüzü mantığı ile doğrudan.

Çevre Birimleri

PIC mikro birçok çevre birimleri inşa etti ve bu ilk başta oldukça zordur. Her büyük periferik blok bir özeti ile bu giriş sayfası yapmamızın nedeni budur.  

Sonunda kısa bir özetidir projelerde kullanılan ana cihazlar bu sitede gösterilen. başlamak için en iyi yolu bir çip temel özellikleri hakkında bilgi edinmek ve daha sonra bir projede her periferik kullanmaya başlayacak. Ben yaparak öğrenme en iyi yol olduğunu düşünüyorum.





PIC mikro
Özellik
PIC mikro özellik açıklaması 
Flash bellekYeniden programlanabilir programı depolama.
RAMDeğişkenler için bellek depolama.
EEPROMUzun vadeli istikrarlı bellek: Elektrikle Silinebilir Programlanabilir Salt Okunur Bellek.
I / O portlarıYüksek akım Giriş / Çıkış bağlantı noktaları (pin yön değişimi) .
Zamanlayıcılar / SayıcılarGenellikle 3.
USARTRS232 protokolü (sadece seviye tercümecisi çip gerekiyor) Dahili.
ÇKP/ PWM modülü karşılaştırın / yakalayın.
SSPI2C ve SPI Arayüzü.
KarşılaştırmaBir analog karşılaştırıcı ve iç gerilim referans.
ADCDijital dönüştürücü analog.
PSPParalel Slave Bağlantı Noktası (8 bit için mikroişlemci sistemleri).
LCDLCD arabirimi.
ÖzelliklerICSP , WDT, BOR, POR, PWRT, OST, UYKU
ICSPBasit bir programlama Devre Seri Programlama kullanarak.


Not: Bu en önemli özelliklerinden bazılarıdır
(bazı cips bunların hepsi var ve bazı yoktur).

Flash bellek

Bu program depolama alanıdır ve en önemli yararı bir kullanmak için PIC mikro - Cihazın birçok kez programlanması gerekmektedir. Zaman herkes ilk seferde doğru bir program olsun . Cihazlar bu sitede projelerde kullanılan kadar yeniden programlanabilir 100.000 onlar Flash bellek kullanımı gibi kat (muhtemelen daha fazla) - bu bölüm adına F harfi var. Sen daha ucuz (OTP) cihazlar alabilirsiniz ama bu One-Time-Programlanabilir olan, bir kez tekrar programlayamazsınız programlanmış!

ICSP

Devre Seri Programlama ( ICSP ) olan sonraki en önemli yarar. Bunun yerine programcı itibaren gelişimi kurulu için çip aktarma sadece kurulumunda bırakın.Devre için programlama bağlantıları düzenleyerek doğru bir çip kaldırmak gerekmez! Şunları yapabilirsiniz yeniden programlamak hala var iken cihazın devrede sizin programcı sensiz bankta bırakın ve programları test edebilirsiniz kurulum zamanlar çok etrafında çip hareket ve tüm süreç çok daha kolay hale getirir.

I / O Portları

Giriş / Çıkış portları izin iletişim size led, LCD ya da sadece hakkında doğru arayüzü ile bir şey kontrol böylece dış dünya ile. Ayrıca bilgi toplamak için girdi olarak ayarlayabilirsiniz.

Pim yönünde

En PIC mikro işaretçilerine bir giriş veya ve çıkış olarak ayarlanabilir ve bu bir iğne veri oluşturmak ve daha sonraki bir aşamada okumak için yazılabilir bir dallas 1 telli sistem için sinek gibi yapılabilir. TRIS kayıt I / O yönünü kontrol eder ve bu kayıt biraz ayarı sıfır olarak set pin çıkış olarak ayarlarken bir set olarak pin giriş olur. Bu, örneğin birden fazla işlemler için bir iğne kullanmanıza olanak verir Real Time saati proje RA0 kullanan, bir için çıkış verilerine PORTA ilk pim, yedi segment ekran ve daha sonraki bir noktada programı okumak bir giriş olarak analog değer.



Akım

PIC I / O portları doğrudan LED (en fazla 25mA çıkış akımı) sürüş kapasitesine sahip yüksek akım bağlantı noktaları - toplam akım izin genellikle ~ Bu tüm çip (veya birlikte kombine çok portu için belirtilen) için genellikle 200mA. 

Zamanlayıcı / Sayıcılar

Her PIC mikro ya bir zamanlayıcı ya da bir karşı (Zamanlayıcı 1 ve 2) veya baud saat (Zamanlayıcı 2) olarak kullanabileceğiniz üç sayaçları kadar vardır.  

Zamanlayıcı 0


Orijinal Zamanlayıcı: Zamanlayıcı 0 ilk zamanlayıcı geliştirilmiş ve tüm erken cihazlarda bulabilirsiniz g, 16F877A, en güncel e 16F84 kadar örneğin oldu.  Bu tahrik edilebilir bir 8 bit ön ölçekleme ile 8 bit zamanlayıcı dahili (Fosc / 4) veya harici saat. Sayısı 255 den sıfıra gittiğinde bu taşma bir kesme üretir.(dış saat kullanırken) Zamanlayıcı 0 her zaman giriş saati senkronize eder.Not: okuyabilirsiniz ve yazma zamanlayıcı 0 ancak ön ölçekleme okuyamaz.Not: ön ölçekleme kullanımı bağlı olarak 2 ya da 1 kadar aynı ön ölçekleme ayarı olabilir skala - etkisi bir zamanlayıcı ön ölçekleme veya bir saat köpek ön ölçekleme olmasına bağlı olarak değişir!


Zamanlayıcı 1

Bu 65535 den sıfıra gittiğinde bir taşma kesme üreten bir 16 bit zamanlayıcı.Bir 8 bit programlanabilir ön ölçekleme vardır ve dahili saati (Fosc / 4) veya harici bir pin onu sürebilirsin.O tetikleme yanlış harici pin girişi için isteğe bağlı giriş Synchronizer vardır ortadan kaldırmak için. Bu zamanlayıcı uyku modunda kullanılabilir ve taşma bir uyandırma kesme oluşturur.   Zamanlayıcı 1 de bir olay zaman yakalamak için ÇKP modülü tarafından okunur. Not: uyku modunda bu zamanlayıcı kullanarak daha güncel kullanacaktır.



Buna ek olarak düşük güç saat kristal sürmek için kullanılabilir. Bu kulağa hoş geliyor ama izlemek kristalleri doğru sürmek için son derece zor olduğu gibi ben bunu tavsiye etmiyorum. Bir pcb yapmak ve gürültüsüz yapımında tüm kurallara uymayı gidiyoruz, yalnızca kullanmalısınız. Ben bir DS1307 kullanılan Real Time saati proje doğrudan kristal sürücüler ama bu bile doğru çalışma almak zordur.

Zamanlayıcı 2

Bu 8 bit ön ölçekleme ve 8 bit postscaler ile 8 bit zamanlayıcı olduğunu. Bu, sadece iç osilatör (Fosc / 4), giriş alır. PWM aktif olduğunu ve bir veri iletişim saat olarak SSP modülü tarafından seçilen yazılım olabilir Bu zamanlayıcı, PWM tabanı için kullanılır.




Ayrıca dönemin kolay kontrol sağlayan bir dönemde kayıt vardır. zamanlayıcı 2 sonra PR2 kayıt değerine ulaştığında bu sıfırlar. Böylece ana saatin katları dönemleri ile hızlı saatler üretebilir - bu yazılım zamanlayıcı değerini kontrol ve zamanlayıcı sıfırlamak ve donanım yapılır bu yana işlem çok daha hızlı zorunda kaydeder.

USART

USART yararlı bir modül ve değerli program bellek kaydeder böylece bir yazılım sürümünü kodlamak zorundadır. Sen RS232 hakkında daha fazla bilgi bulabilirsiniz burada ve nasıl çalışması . Bakın burada pin çıkışları için. bir PC seri bağlantı noktasına arayüz gereken bir MAX232 çip (veya eşdeğeri). Not: Bir eşdeğer MAX232 çip MAX232 aynı yapısından ancak 100nF kapasitörler kullanmanızı sağlar SP202ECP olan - böylece büyük 1uF kapaklar gerekmez.


Hızları

Bu 'gerçek' hızları ile çok iyi uymaz genel kullanım ve normal osilatör değerleri ana saat bağlı olarak hızları kullanırken dikkatli olmak zorunda.   


Belirli bir saat hızı için beklenen yüzde hata gösterir ve genel olarak daha yüksek ana saat alt hata mikroçip veri sayfası DS33023A içinde hızları bir tablo vardır.


Sen bazen saat hızı ve istediğiniz baud hızı ile daha iyi bir uyum elde etmek kayıt ayarları ile oynamak zorunda. Bir örnek bir 8MHz saat için - Eğer BRGH = 1 ve 38.4kbaud doğru hızları kalkmak bir 8MHz saat (16F88 veri bakınız) kullanıyorsanız. Bu mikroC = 0 böylece 8MHz de iletişim hızı 9.6kbaud sadece doğru USART rutin kullanım BRGH içinde yerleşiktir örneğin çalışmaya zorlar.


Eğer bir süper-doğru iletişim hızı istiyorsanız en iyi yol iletişim hızı yani ihtiyacınız olan kristal bulmak için baud hızı denklemleri geriye çalışmak size veren biten bir saat kristal kullanmaktır.

ÇKP 

Yakalama / PWM modülü üç çalışma modu vardır / karşılaştırın:
  • Yakalama - Bir olay sırasında yakalayın.
  • Karşılaştırma - Zamanlayıcı 1 değere ulaştığında bir çıkış oluşturun.
  • PWM - Darbe Genişlik Modülasyonu.

Ele geçirmek 

Çekim moduna ÇKP pin bir sinyal yüksek gittiğinde (veya ÇKP kurmak nasıl bağlı düşük) Zamanlayıcı 1 değerini yakalamak için kullanılır. Bu darbe zaman yönetimi için kullanılabilir böylece ÇKP doğru ÇKP pin bir sinyal gelişi zaman yakalayabilir.

Karşılaştırmak

Karşılaştırma modu Zamanlayıcı 1 CCPR1 koymak bir değere ulaştığında bir çıktı oluşturmak için kullanılır. Bir özel bir olay tetikleme modu karşılaştırma modu tetikler zaman ADC başlayalım.

PWM

PWM, 10 bit çözünürlük ile ve herhangi bir yazılım havai ile bir Darbe Genişliği Modülasyonu çıkış verir -. Kez görev döngüsü değiştirmek istediğiniz sürece kendi başına faaliyet başlatılmış olur.Bu tanımlamak için kayıt Zamanlayıcı 2 süresi kullanarak işlem için Zamanlayıcı 2 kullanır . PWM frekans Not: görev döngüsü, çıkış yüksek olduğunu PWM saatin dönemi sayısını bir oran değil!



SSP 

Senkron Seri Port ya SPI (Serial Peripheral Interface) veya I2C (Inter IC iletişim) protokolleri kullanan cihazlar ile iletişim sağlar. Tam Yüksek Lisans modu I2C çalışması için MSSP cihazı (Master Senkron Seri Port) olan bir PIC cihaz seçmeniz gerekir unutmayın.

Sadece bir zaman (ya da I2C biraz da rutin çarptım kullanabilirsiniz az bir kullanabilmesi için SPI ve I2C paylaşılır Gerçek Zaman Saati , aynı anda her iki proje için).



Karşılaştırma ve karşılaştırma gerilim referans 

Karşılaştırıcı 8 farklı yollardan biriyle kurulabilir iki analog karşılaştırıcı modülüdür. Ya dijital veya analog giriş referans gerilimleri ile karşılaştırılabilir.bir modunda bir dahili olarak üretilen gerilim referans hem de karşılaştırma için bir girdi olarak ve aynı modda çoğullama içinde en fazla dört farklı giriş işaretçilerine için izlemek sağlaması için kullanılır. Hatta çıkış gönderebilirsiniz Eğer ekstra bir çip gerekmezse bir karşılaştırma gereken yere! bir devrede mikro örneğin bağımsız olarak kullanılır, böylece bir pin karşılaştırıcının analog seviyesi Vdd ve koruma diyotları olarak Vss arasında olmalıdır şey izin vermez başka.   karşılaştırıcı çıkışı değişir., modül bir kesme üretecektir Uyku modunda kullanabilirsiniz ve kesme o uyanacak. analog sinyal kaynağı empedansı 10k daha küçük olmalıdır. 



ADC 

Dijital Converter Analog tek 10 bit kadar giriş işaretçilerine gelen çoğaltılmış bir cihaz için 8 girişlerine sahip olabilir.   ADC uyku sırasında kullanılan ancak RC saat modunu kullanmak zorunda olabilir. Bu bir yararı daha iyi dönüşüm doğruluğu alacak kadar hiçbir dijital anahtarlama gürültüsü olacak olmasıdır.




16F877A için sadece analog giriş işaretçilerine etkin olması için pek çok yol sadece belirli ve sınırlı sayıda var gibi ihtiyacı hissediyorum bir analog giriş kullanmayı seçemezsiniz. Eğer siz de birkaç analog giriş etkinleştirmeniz gerekebilir bulur sadece AN5 kullanarak bir tasarım başladı eğer analog giriş örneğin etkin edilebileceği için veri görmek - Bu AN0 ile başlar ve gerektiğinde daha eklemek için en iyisi!

16F675 4 analog giriş işaretçilerine ölçebilirsiniz!

PSP

Paralel Slave Port mikroişlemci sistemine doğrudan PIC mikro bağlamak için olanak sağlar. Tüm aktif düşük - Bir 8 bit veri yolu ve RD (okuma) WR (yazma) ve CS (chip select) girişleri okuma / yazma sağlar.  


Bu PIC mikro çevre eşlenen bir bellek olarak tedavi edilebilir böylece bir sisteme bir PIC mikro ekleyelim olacaktır. Bu mikro bazı bellek veya ram örneğin başka bir mikroişlemci yapı taşı olduğu gibi olsa görür ancak bu durumda yapı taşı yani yeniden programı PIC mikro hemen her şey yapmak için tam olarak ne üzerinde tam denetime sahip izin verir.

Bu zaten var olan bir 8 bit sistem için bir PIC mikro eklemek için kolay bir yol sağlar.

LCD

LCD arabirimi doğrudan bu tür HD44780 gibi bir LCD modülü kullanmak zorunda tasarrufu LCD için arayüz sağlar. Bir çip (HD44780) kaldırarak bir üretim vadede para tasarrufu başka bir ticari gereklilik olduğu gibi bu özellik kullanmadıysanız. Ben bir grafik LCD sürüş yeteneğine sahip olduğunu düşünüyorum.

Özellikler

ICSPDevre Seri Programlamatıklayın burada (ICSP bölümüne atlar).
WDTKöpek zamanlayıcı izleBu bir yazılım hatası koruyucudur. 
BORSıfırlamak Out KahverengiBu algılar güç kaynağı dips biraz ve sıfırlar cihaz eğer öyleyse.
PORReset GüçBu mikro başlatma başlar.
PWRTPoWeR kadar ZamanBir zaman gecikmesi Vdd artış izin.
OSTOsilatör zamanlayıcı başlangıçPWRT sonra 1.024 devir bekleyin.
UYKUPIC mikro uyku moduDüşük güç moduna girin.

WDT

Yazılım sonra karmakarışık giderse bu süre işlemciyi sıfırlar.Sıfırlama durdurmak için iyi huylu yazılımı periyodik bir resert durdurmak için CLRWDT talimat kesmeniz gerekir. WDT kendi osilatör kullanarak çalışır. Bu uyku ve hisse Timer 0 ön ölçekleme sırasında çalışır.

POR

Bu mclr üzerinde yükselen bir kenar algıladığında Sıfırla başlar Güç Açık mikro başlatma PIC.

PWRT

Bu daha sonra 72ms verirseniz bir POR sonra PIC mikro başlatılır.

OST

Osilatör başladı ve kararlı olduğunu sağlamak PWRT sonra 1.024 osilatör döngü için osilatör Başlangıç ​​Timer gecikmeler (PWRT etkinse). Bu otomatik ve sadece kristal osilatör modları için kullanılan ve uykudan POR veya sonrasında sonra aktiftir.

UYKU

Uyku modu (ya da düşük güç tüketimi moduna) 'UYKU' komutu yürüterek girilir. Cihaz harici reset neden uykudan uyanmak olabilir, Köpek Timer zaman aşımı, INT pin RB port değişim veya çevresel kesme izleyin.

Proje cihaz genel bakış

Bu site özellikle mikroçip ürettiği farklı fiş yüzlerce üç PIC cihazları kullanır. Bu çok gibi görünmüyor ama hemen hemen her projede cihazlar kullanabilir ve onlarla yüzlerce proje yapabilirsiniz çevre birimleri inşa edecek kadar çok var.Diğer mikroçip cihazlar farklı durumlarda yararlıdır - belki de daha fazla var bellek ya da farklı çevre birimleri - Eğer inşa sisteme özel tasarımlarınızı istiyorsanız bu yararlıdır - ticari bir ortamda ama muhtemelen daha yararlı olduğu bir üretim vadede her kuruşu sayar.


Her üç cihazlar son derece güçlüdür ana fark, işaretçilerine ve bellek boyutu farklı sayıda olmasıdır. Not: Orada cihazlar yani kullanarak farklılıklar farklı bazı kayıtları var ama genel olarak bunları değişimi olabilir - bu . kolay yüksek düzeyde bir dil kullanarak yapılan bu sitede kullanılan cihazlar:






PIC mikro CihazMikro No Pins PICMikroişlemci Flash bellek KELİMELER PIC
12F67581k
16F88184k
16F877A408k


Not: bellek boyutu Kwords olan mikroçip sitede bakıldığında - kbytes görmezden - Bu her öğretim kaplar ne gibi kword boyutu gerekiyor - kbyte boyutu mikro (muhtemelen) diğer türleri ile karşılaştırıldığında içindir. Bir 8 bit mikroişlemci (farklı program hafızası ve Harvard mimarisi kullanarak nedeniyle veri belleği) yani ama mikro veri yolu 8 bit genişliğindedir.

(Not:! Hepsinde F harfi var - programlanabilir sadece bir kez - - kendi OTP olarak gidip O ile bir parça satın almayın - Bu bir Flash yeniden programlanabilir bir parçası olduğu anlamına gelir sadece eğer bunu gerçekten emin) nihai tasarım var.

PIC Mikrodenetleyici Flash Bellek boyutu

O 1k hatta 8k yararlı olmayacak ama her PIC mikro sadece sadece birkaç talimatları olan bir akıllıca düzenlenmiş komut seti anlamına gelir RISC (İndirgenmiş Komut Seti Bilgisayar) kullandığı kadar küçük olduğunu düşünebilirsiniz. Orta mesafeli parça 35 talimatları var. Bu sitedeki tavsiye olarak üst düzey dil kullanırsanız o zaman sadece bellek küçük bir miktar ile bir çok şey anlamına gelir belirlenen öğretim çok farkında olmak gerekmez. ! Tam projeler 2k kelimeler sığacak çalışıyoruz rağmen bu sitede projelerin çoğuNot: daha fazla bellek ihtiyacınız varsa her zaman PIC mikroişlemcisi 18F serisi taşıyabilirsiniz. Başka bir seçenek bir I2C seri eprom eklemektir.





PIC mikro RAM ve EEPROM boyutu

PIC mikro RAM boyutu bu tüm değişkenler ve ara veri depolar olarak da önemlidir. Not: Genellikle için programı değiştirebilirsiniz kullanmak daha az RAM doğru değişken boyutları seçerek ya da programın nasıl çalıştığını değiştirerek Örneğin  kayan nokta kullanmayın bu kayan nokta önlemek için sabit bir nokta operasyonu ile uzun tamsayı kullanabileceğiniz farklı değişken türü örneğin kullanmak değiştirmek.





PIC mikro EEROM : Elektrikle Silinebilir ROM gücü yukarı ve aşağı güç arasında kaydedilmesi gerekir veri depolamak için kullanılır.   Bu alan okunabilir ve yazılabilir ve daha sık kullanım için tasarlanmıştır yani ana program mağaza çok daha uzun ömürlüdür.