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ı