25 Mart 2009 Çarşamba

0-9-0 İleri Geri Proteus Sayıcı Simülasyonu

0 yorum

ileri-geri-sayici.JPG

0-9-0 şeklinde sayan devrenin kaynak kodlarına aşağıda inceleyebilirsiniz.

#include <16f84.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)

main
(VOID)
{
INT i
;

FOR
(;;)
{
FOR
(i = 0; i<10; i++)
{
output_b
(i);
Delay_Ms (500);
}
FOR
(i = 8; i>0; i–)
{
output_b
(i);
Delay_Ms (500);
}
i
= 0;
}
}
Şema ve diğer dosyaları buradan indirebilirsiniz."

Çeşitli Microchip Pic Projeleri

0 yorum

pic-proje.JPG

2007 yılında Microchip ve Circuit Cellar sponsorluğunda düzenlenmiş olan projelere ve tüm dökümanlarına aşağıdaki linklerden ulaşabilirsiniz. Tasarımların hepsi orijinal ve profesyoneldir.

Microchip 16-Bit Embedded Control 2007 Design Contest

The Microchip 16-Bit Embedded Control 2007 Design Contest was a great opportunity for the world’s most talented engineers to learn more about Microchip’s 16-bit microcontroller and digital signal controller (DSC) families. The challenge for each entrant was to incorporate any of Microchip’s high-performance, versatile, commercially available 16-bit microcontrollers or 16-bit DSCs in an exciting, novel design.

First Place
Richard Wotiz
Variable Speed Induction Motor Controller

Second Place
DJ Delorie
Multifunctional Alarm Clock

Third Place
Miguel Rusch
Full-Feature Portable LCR Meter

Subcategory Prize – Effective Use of SMPS Resources
George Anderson
MiniTron Amplifier

Subcategory Prize – Effective Use of Motor Control Resources
Dena Ponech, Doug Krahn, Adam McIntyre, Tristan Kasmer, and Dan Hall
EV Inverter Project

Subcategory Prize – Connected (Communications) Applications
DJ Delorie
Multifunctional Alarm Clock

Subcategory Prize – Use of Peripheral Pin Select
Jan Szymanski
Electronic Mini-Badge

Subcategory Prize – Effective Use of DSP Technology
George Heron and Milton Cram
NUE-PSK Digital Modem

Subcategory Prize – Best Use of Bonus Parts
Peter McCollum
Data Acquisition System for Radiation Measurement

Subcategory Prize – Use of Smart Sensing Methodologies
Hoa Phan, Vincent Dinh, Tu-Anh Ton, & Nghia Tran
Braille Glove

Diğer Başarılı projeler

Kit Church
UltimateTremolo: Guitar Effect Processor

Steve Lubbers
Doppler Radar System

Neal Martini
Portable Spectrum Analyzer

Guido Ottaviani
dsNavCon Control Board

David Ludington
Precision Temperature Controller

Naubert Aparicio
The Ultimate IR Controller

Mariano Lizarraga Fernandez
CAN-Controlled Servo

Michael Mullins
GPS-Locked Clock for PICs

Glen Worstell
LIN Touch-Switch & LED Display

Kevin Tiplady
Remote Environmental Critical Area Monitor

John Peterson
Puzzlemation: A Dynamic Tile Display

Carlos Lozano-Espinosa
Humidity Meter for Soils

Alexander Popov & Jordan Popov
Digital Subwoofer Amplifier with Electromotive Feedback

Marco Signorini
LED Psychedelic Lights

George Adamidis
Audio Spectrum Analyzer

Peter McCollum
MeterClock

Daniel Ramirez
Microchip dsPIC Alert Driver System

Kevin Gorga
Cable Tracer

John Peck, Ray Bejjani, and Daniel Kurtz
Drop-In Woofer Servo

Arnold Stadlin
Power Frequency Monitor

Carlos Cossio
Enigma

Jaime Garnica
Scopey II

Josh Lemke
Universal Automotive Racing Performance Monitor

Nghia Tran, Victor Tran, Tammy Tran, Andy Tran, and Mai Nguyen
Robotic Puppet Theater

Gregory Cloutier
Determining Surface Roughness by Laser Light Backscatter

Gregory Ciavattone
PO Box

Mike Hamilton
IR Spectrometer

Scott Coppersmith
MIDI Laser Show

Indranil Majumdar
A Fixed Cellular Phone with Emergency Auto-Dial

Sivakumar Govindarajan
Doctor’s Icon

Antonios Chorevas
Parallel Processing Computer

Michael Herman
dsPIC_Synth

"

A’dan Z’ye CCS C Örnekleri

0 yorum
Serdar Çiçek’in CCS C ile ile pic programlama kitabında yer alan bütün örneklere ait programlar ve proteus isis simülasyon örneklerine aşağıdaki linklerden ulaşabilirsiniz.

http://www.altaskitap.com/CCS_C/CCS_C_HEX_DSN.rar

http://rapidshare.com/files/204580454/ccs-c-orneklerdevreler-isis-c-hex.rar

1-Wire (Tek Hat) İletişim Uygulaması (DS1990A İle)
74138 İle Port Çoğullama Uygulaması
74164 İle 2 Çıkışla 7 Segment Display Sürme
8255 İle Port Kontrol Uygulaması
CCS C ADC Uygulaması
B Portundaki B4…B7 Pinlerinde Değişiklik Kesmesi
Bilgisayar İle Step Motor Kontrol Uygulaması
Buton İle BCD Sayıcı Uygulaması
Buton İle LED Kontrol Uygulaması
Capture Modu Uygulaması
CCS C Dosyalarını Kullanarak 24C02 Harici EEPROM
Compare Modu Uygulaması
Dahili EEPROM Uygulaması
CCS C DC Motor Uygulaması
Display Uygulaması-1(0-F Sayıcı)
Display Uygulaması-2(Buton İle 0-99 Yukarı Sayıcı)
Display Uygulaması-3(7448 Entegresi ve Buton İle 0-99 Yukarı_Aşağı Sayıcı)
Dış Kesme (External Interrupt) Uygulaması
DS1302 RTC Uygulaması
DS1621 Sıcaklık ve Termostat Entegresi Uygulaması
DS1868 Dijital Potansiyometre Uygulaması
Flash Program Hafızası Uygulaması
CCS C Grafik LCD Uygulaması
Karşılaştırıcı ve Voltaj Referans Modülü Uygulaması
Kendi Harici EEPROM Fonksiyonlarımız İle 24C02 EEPROM Uygulaması
Kendi LCD Dosyamızla LCD Uygulaması
CCS C ile LED Toggle
CCS C LED Yakma ve Söndürme
CCS CLM35 Uygulaması
Matris LED Display İle Kayan Yazı Uygulaması
Matris LED Display Uygulaması
Özel Karakterli LCD Uygulaması
Paralel LCD Uygulaması
Paralel Slave Port Uygulaması
Port Okuma ve Porta Bilgi Gönderme
PWM Modu Uygulaması-1
PWM Modu Uygulaması-2
R_C Servo Motor Uygulaması
RS232 Seri İletişim Uygulaması
CCS CSes Uygulaması
Step Motor Uygulaması
CCS C Timer0 Uygulaması 1
CCS C Timer0 Uygulaması 2
CCS C Timer1 Uygulaması 1
CCS C Timer1 Uygulaması 2
CCS C Timer2 Uygulaması
Tuş Takımı Uygulaması 1
Tuş Takımı Uygulaması 2
Tuş Takımı ve LCD Uygulaması
CCS CWDT Uygulaması
Yürüyen Işık Uygulaması"

Programlanabilir LED

0 yorum

programlanabilirled.jpg

İlk olarak Alex Weber tarafından AVR ile yapılan devrenin burada 1f683 ile yapılmış olanına yer verilmiştir. Az malzemeden oluşan devrede önceden belirlenmiş sürelerde basit led yakıp söndürme yerine dışarıdan ledin yanık/kalma süreleri ayarlanabiliyor. Devrede görülen ldr mikrodenetleyicinin analog dijital çeviricisine bağlanmıştır. Ldr’nin önüne engel geldiği analog dijital çevirici ile algılanır ve led söndürülür. Bu arada sönük ve yanık kalma süreleri dahili eproma kayıt edilir. Daha sonra engel ortadan kalktığında yapılan işlemler aynen tekrarlanmış olur. Devrede malzeme miktarı oldukça az 16f873′ün dahili osilatörü kullanılarak kristalden de tasurruf edilmiş, ldr’nin yanında kullanılan 820 ohmluk direnç hassasiyet ayarı için kullanılmış ve son alarak led ve 100 luk akım sınırlayıcı direnci pile tuttrulmuştur.,Devrenin şemasına, ccs c kaynak kodlarına aşağıdaki linklerden ulaşabilirsiniz.

Download detailed instructions ve yazılım LEDRec.c, LEDRec.h, LEDRec.hex bir PIC için programlanabilir LED tabanlı.

Devrenin videosu:



"

Pratik Microchip Pic Projeleri

0 yorum

rgb led

Son zamanlarda oldukça popüler olan yüksek güçlü rgb ledleri ilen yapılan bazı devrelere aşağıdaki linklerden ulaşabilirsiniz.

Mosfet kullanılarak yapılan devreleri yüksek güçlü rgb led devrelerini sürmek için kullanabilirsiniz. Bu sürücülere uzaktan kumandayı da eklerseniz piyasada 35$+KDV ye satılan RGB Controler devresini yapmış olursunuz

RGB LED Controller Projects

"

Elektrik Elektronik Flash Animasyonları

1 yorum

tam-dalga-dogrultmac-animasyon.gif

Elektrik ve elektronikle ilgili motor,anahtar, enerji, elektrik akımı vs her konuyu flash animasyonlarla açıklayan görsel setlere buradan ulaşabilirsiniz. Şifre iesob-elektrikelektronik

"

Elektronikte Kısaltmalar ve Anlamları

0 yorum
ABL: Automatic Brightness Level: Otomatik parlaklık seviyesi

AC: Alternating Current: Alternatif akım

A/D: Analog to Digital: Analogtan dijitale

AM: Amplitude modulation: GM: Genlik modülasyonu

+B: DC kaynak gerilimi (Örneğin ana filtre kondansatörünün pozitif ucu +B'dir. Battery'den gelmektedir.)

BBR: Blown Beyond Recognition: Okunamayacak derecede yanık

BNC: Koaksiyel kablo için soket

CD: Compact Disk

CPS: Characters per Second: Bir saniyede basılan karakter sayısı

CRC: Cyclic Redundancy Check

CRT: Cathode ray tube: Katod ışınlı tüp, resim tüpü

D/A: Digital to Analog: Dijitalden analoga

DC: Direct Current: Doğru akım

D/P: Dot Pitch: Nokta aralığı

DPI: Dots per Inch: Bir inç'teki nokta sayısı

DVD: Digital Versatile (Video) Disk

EMF: Electro-motor force: EMK: Elektromotor kuvvet

EMI: Electromagnetic Interference: Elektromanyetik etkileşim

ESD: Electro Static Discharge: Elektrostatik deşarj

ESR: Equivalent ****** resistance: Eşdeğer seri direnç

E/W: East-West correction: Doğu Batı düzeltmesi

FBT: LOBT: LOT: DST: IHVT(Integrated HV Transformer) : Flyback: EHT Transformer: EHT trafosu: Yüksek gerilim trafosu

FCC ID: Federal Communication Commission ID

FET: Field Effect Transistor: Alan etkili transistör

FIFO: First In First Out

FM: Frequency Modulation: Frekans modülasyonu

G1: Brinci gri

G2: İkinci gri

GND: Ground: Toprak

HDTV: High Definition Television: Yüksek tanımlamalı televizyon

HOT: Horizontal output transistor: YÇT: Yatay çıkış transistörü

HV: High voltage: YG: Yüksek gerilim

Hz: Hertz

IC: Integrated Circuit: Entegre devre

I/F: Interface: Arabirim

I/O: Input/Output: Giriş/Çıkış

IR: Infra Red: Kızıl Ötesi

LCD: Liquid Crystal Display

LIFO: Last In First Out

LPS: Linear Power Supply: Lineer güç kaynağı

LR: Low Radiation: Düşük Radyasyon

MGA: Mono Graphics Adapter: Mono grafik adaptörü

N/A: Not Available: Mevcut değil

NI: Non-interlaced: Titreşimsiz tarama: Gerçek Tarama

NTC: Negative Thermal Coefficient: Termistör

O/C: Open Circuit: Açık devre

OSD: On Screen Display

OSC: Oscillator: Osilatör

PCB: Printed circuit board: Baskılı devre

PIN: Pincushion: Yastık distorsiyonu

PRM: Pulse rate modulation: DOM: Darbe oran modülasyonu

PTC: Positive Thermal Coefficient: Posistor: Pozistör

PWM: Pulse width modulation: DGM: Darbe genişlik modülasyonu

RGB: (Red, Green, Blue): Kırmızı, yeşil ve mavi. Üç temel video rengidir

RMS: Root mean square

S/C: Short Circuit: Kısa devre

SMD: Surface Mount Device

SMPS: Switched Mode Power Supply: Switch mode güç kaynağı: AGK: Anahtarlamalı güç kaynağı

Sync: Syncronization: Senkronizasyon

TTL: Transistor-transistor logic

UPS: Uninterruptible Power Supply: KGK: Kesintisiz güç kaynağı

Vpp: Volts peak to peak: Tepeden tepeye gerilim

Xformer: Transformer: Trafo: Transformatör

Xsistor: Transistor: Transistör

Xtal: Crystal: Kristal
"

18 Mart 2009 Çarşamba

Pıc Nedir? Ne işe Yarar?

0 yorum


PIC:

Pripheral Interface Controller kelimelerinin baş harflerinden oluşuyor ve Çevre birimlerini kontrol eden ünite - demek. Birçok Pıc çeşidi var ama içlerinde en popüleri Microchip firmasının ürettiği Pıcler.

Elektrik ve elektronik ile ilgili akla gelebilecek her türlü şey. Örneğin sayıcı, flaşör, saat, A/D dönüştürücü, dimmer, PWM, motor kontrolleri, aç-kapa devreleri, multiplexer, zamanlayıcı vs. bu tamamen sizin tasarım ve hayal gücünüze bağlı.

Nasıl Yapılıyor?

  • Bir adet entegre (PIC) alıyorsunuz.
  • Yapmak istediğiniz devre için Bilgisayarda kodları yazıyorsunuz
  • Bu Entegre devreye yazdığınız programı yüklüyorsunuz.
  • Tasarladığınız devreyi bağlıyıp çalıştırıyorsunuz ve hayal gücünüz gerçeğe dönüşüyor. (1 mikro saniye bile zaman sapması olmadan) bu kadar.

Zor mu?

Aslında hayır zor değil. İlk başlarda biraz zaman harcıyorsunuz ve sabırlı olmanız gerekiyor.

PIC Çeşitleri:

16F84,16F628,16F876,16F876 .

PIC16F84 Programlama için gerekli olanlar nelerdir?

  • Seri COM Portu aktif olan 1 adet Bilgisayar. (Üzerinde Windows yüklü olması yeterli. 486 bile olabilir. Windows2000 de problem yaşadım. 98 ve XP de sorun yok. Bu konuda paralel portu kullanan programlar da mevcut, seri port ile sınırlı değiliz.)
  • Programlama devresi. (Çok basit bir devre. Gözünüz korkmasın)
  • MPLAB MPASM Assembler derleyici Programı.
  • Bu zaten ücretsiz, programlar bölümünde bulabilirsiniz.
  • PIC programlayıcısı. (Derlediğiniz programı entegre devreye yazan program) Buda kolayca bulunabilen küçük bir program. Yine bunu da programlar bölümünde bulabilirsiniz.

Pıc programlamak için yapacağımız basamaklar aşağıdaki gibi özetlenebilir.

Aslında basamaklar bu kadar değil gözünüz korkmasın.

Aslen basamaklar şöyle;

Yazmak, Derlemek, Yüklemek ve Çalıştırmak.

"

PIC 16F84 Programlama

0 yorum
Öncelikle PIC 16F84 ' ümüzü programlamak için bir programlama devresi yapılmalıdır. Ancak devre yapma işlemi gözünüzü korkutmasın. Zira bu devre yapımı kolay, maliyeti düşük bi devredir. Bu devrenin şeması aşağıdadır.

konnektör ( 9 pin ) PIC soketi (18 pin)


Bu devreyi yaptıktan sonra iş PIC ' in takılıp programlanmasına geliyor.

...Programlamak için birçok devre yapılabilir aslında. Ancak her bir devre ayrı bir programla programlanabilir. Yukarıdaki devre için kullanılan programlayıcı PicUp tır. Bu programı yüklemek için burayı tıklayın.

...Yapacağımız işlemler Bassar'ın forumda söylediği aşamalardır.
Öncelikle bir notepad açıyoruz. Notepad te 16F84'e yazacağımız programın kodlarını uygun bi şekilde yazıyoruz.



...Kodlar şekildeki düzgünlükte ve aynı satırdakilerin arasında bir tab kadar boşluk olacak şekilde yazılmalıdır. Dosyayı ***.asm şekilde kaydediyoruz. Bu dosya 16F84 'e yüklenecek ***.hex dosyasına çevrilecek dosyadır. Bu dosyayı, MPLAB programıyla gelen MPASM programını çalıştırıp çağıracağız. Bu programı çalıştırıp ***.asm dosyamızı bulup çağırdığımız zaman şu pencereyle karşılaşırız.



...'Browse' ile dosyamızı buluruz. 'Assemble' butonuna bastığımızda, ***.asm bilgisayarınızda nerde ise, aynı yerde ***.hex , ***.cod , ***.err , ***.lst dosyaları oluşturulur. Tabi yazılımda hata olmadığını gösteren aşağıdaki pencereyi gördüğümüz zaman oluşturulmuştur bu dosyalar.


Eğer hata varsa ***.asm ' de yazılan kodlarda bi hata vardır demektir.

Hata görmedik diyelim. Artık PIC ' e yüklenecek yazılım ( ***.hex ) hazırdır.
Bundan sonra yapacağımız işlem bu ***.hex dosyasını PicUp programıyla çağırmak.



Bu pencerede " File -> Open " ile ***.hex dosyasını çağırın. Daha sonra Programlama kartını bilgisayarın COM Portlarından birine bağlayın. Ancak COM1 dışında bir porta bağlayacaksanız
" File -> Settings " te bağladığınız COM portunu seçmelisiniz. Bu kısımda ayrıca PIC modelini de seçebilirsiniz. Tabi "Configuration Memory" den osilatör tipini seçmeyi unutmayın. Programlama kartı bilgisayara bağlandıktan sonra herşey hazırdır. Artık programlama kartı üzerindeki PIC ' e yükleme yapılabilir.

Eğer PIC üzerinde daha önceden bir bilgi varsa Read Chip ile bunu okuyabilirsiniz.
Erase Chip ile içindeki bilgi silinebilir. program Chip ile ***.hex dosyasını yükleyebilirsiniz. Verify Chip ile doğrulatabilirsiniz.

Hadi kolay gelsin...."

İDEAL BİR PİC PROGRAMLAMA DEVRESİ

0 yorum
Yeni başlayanlar, amatörler, öğrenciler ve hatta profesyoneller, korkulu rüya artık bitti! Bu sayımızda sizlere çok pratik, kullanışlı pic programlama devresi sunuyoruz. Bu devre TA2FR ve Bir PİC üstadı olan TA2CBA tarafından tasarlanmış, dizayn edilmiş ve gerçekleştirilmiştir.

Benim PİC ile tanışmam daha yenidir fakat, PİC 'i tanıdıktan sonra elektronik hobimin önceki dönemlerini yok sayıyorum. Bu PİC işte böyle birşeydir ve her derde devadır.

PİC Microchip firmasının 1994 yılında ortaya çıkardığı "Peripheral İnterface Controller " denen yani cevre birimleri kontrol eden bir işlemcidir. İlk üyesi de 16C54 artık piyasada yoktur. Amatörlerin kullanabileceği çeşitli tipte ve kapasitede PİC bulunmaktadır fakat ortak özellik 8 bit CMOS olmalarıdır.

Bu yazımızda PİC ve programlama ile ilgili bilgiler verilmeyecektir, çünkü gazetemizde bu konu ile ilgili olarak TA2CBA'nın pek çok yazısı bulunmaktadır.

PİC konusu ile ilgilenenler, biraz bilgi sahibi olunca haklı olarak öğrendiklerini denemek isterler ve bunun için bir PİC programlayıcı edinmeleri gerekir, PİC programlayıcıların bir kısmı çok pahalı profesyonel cihazlardır, Kimi ise çok basit ve kullanışsızdır. " Easypic " adını verdiğimiz bu devre, PİC ile her yeni tanışanın kullandığı 16C84 ve 16F84 için tasarlanmıştır.

16C84 ve 16F84 hemen hemen birbirinin aynı PİC lerdir. Tek fark bellek lerindeki EEPROM ve FLAŞ bellek olmaları (nerede ise aynı şey) ve data memory farkıdır.

PİC assembly dilini bilen herkes bu iki PİC ile 35 komut kullanarak inanılmaz şeyler başarabilir. Biraz gayret, merak ve niyet ile de bu iş birkaç haftanızı alır.

EASYPİC tasarlanırken deneycilerin, hem programlamayı hem de denemeyi kolayca yapabilmeleri için, BREADBOARD kullanılacak şekilde dizayn edilmiştir. Yani EASYPİC 'i breadboard ' a takıp gerekli voltajı verdikten sonra bir swiç yardımı ile program ve deneme modunu seçebilmektesiniz.

Easypic bacak çıkışları kolaylık olsun diye sıra ile dizayn edilmiştir.

1-) RA0
2-) RA1
3-) RA2
4-) RA4
5-) RA5
6-) RB0
7-) RB1
8-) RB2
9-) RB3
10-)RB4
11-)RB5
12-)RB6
13-)RB7
14-)MCLR
15-)GND Devreye verilecek voltajın negatif bağlantısı
16-)9-21 V Breadboard üzerinden devreye verilebilecek voltaj pozitif girişi
17-)+5 V Breadboard üzerinde gerekebilecek 5 volt için çıkış

Bu PİC boardunu kullanmadan önce, PİC programı yazmak ve yüklemek için bir bilgisayara ihtiyacımız olacak. Bu bilgisayarın eski olması, 386 - 486 olması hiç önemli değil iş görür, yeter ki bir seri 9 pin konnektörlü çıkış olsun.

PİC programlama için önce PİC Assembly yazabileceğimiz bir editor programı lazım bu neler olabilir.

1-) DOS' un EDİT'i
2-) WİNDOWS 'un NOTEPAD,
3-) MPLAB'ın PSE'si

En kolay olan DOS Edit 'idir ve ben onu kullanıyorum. Bu editor programı ile PİC Assembly dili ile yazılmış komut paketini, sonu .ASM olacak şekilde kaydediniz.

İkinci aşamada, bu ASM dosyasını HEX file yapacak bir ASSEMLER gerekiyor MPLAB'ın içindeki MPASM bu iş içindir.

MPASM çalıştırılıp daha önce yazılan ASM dosyası pencereden seçilir ve gerekli ayarlar yapıldıktan sonra çalıştırılır. Yazdığınız program doğru ise yaşil renk görünür, bir yanlışlık varsa kırmızı renk ve hataları gösteren ERR dosyası oluşur.

Son aşamada ise bu oluşan HEX file'ı PİC'e yazdırmaktır. EASYPİC bağlantısı kontrol edilip, programlama switch'inin çekili olduğu görülür ve yazma programı PİCPROG çalıştırılır gerekli ayarlar yapıldıktan sonra PİC proramlanır. Daha sonra swic ileri itilerek deney gerçekleştirilir.

Tüm bunların aksamadan yapılabilmesi için, bilgisayar hardware'ini tekrar gözden geçirmeliyiz. Bize lazım olan 9 Pin çıkışlı bir seri porttur. Eski tip makinalarda bu portu mouse kullandığı için geriye 25 pin çıkışlı port kalmaktadır, bu nedenle ya bir 25 / 9 pin konnektör adaptörü kullanmalıyız veya bilgisayar I/O kartı üzerinden 2. Com port çıkışına direk olarak 25 pin konnektörü çıkarıp 9 pin konnektör takmalıyız. Mouse çıkışına bir adaptör bağlayıp mouse'u 25 pin konnektöre kakmak ta mümkün olabilir.Tüm bunlar bilgisayarda nelerin olduğuna ve hangi com portlarını kullandıklarına bağlıdır. Bize lazım olan port com 1 veya com2 portudur. Bu portlardan birini programlamak için kendimize ayırmalıyız. Ps2 mouse kullanan makinalarda bu gerekli değildir orada 9 pin çıkışı boş olduğu için böyle bir sorun olmaz. Özetle bilgisayardaki modem, mouse ve diğer com kullanılıcıları o şekilde ayarlamalıyız ki ,bize programlamak için com 1 veya com 2 portu kalsın çıkış 9 pin konnektörlü olsun.

Bilgisayarımızda bir Klasör altında MPASM PİCPROG bulunsun. Bu dosyaların ve editör programının masa üstümde de kısayolları olsun.

1-) Masaüstündeki MsDos'u açıp EDİT komutu ile editöre girip programı yazıyoruz ve sonu ASM olacak şekilde kaydediyoruz.

2-) MPASM ile bu dosyayı bulup ayarları yapıp HEX file oluşturuyoruz.

3-) PİCPROG ile bu HEX dosyasını PİC'e yazdırıyoruz.

Daha sonra PİC programını breadboard üzerinde gerekli elemanları yerleştirip deniyoruz.

16F84 programlama bacakları olan RB6 ve RB7 bacakları bir switch vasıtası ile devre dışı bırakılır aksi halde, breadbord üzerinde bu bacaklara eleman bağlı iken, PİC in tekrar programlanamaz, switch bu durumu engeller.

Büyük görmek için resme Tıklayın!
Büyük görmek için resme Tıklayın!


Easypic ve Breadboad üzerindeki görünümü


Easypic Gelistirme Çalışmaları Laboratuvar Görünümü

Easypic devresinde Dikkat edilecek noktalar:

Çok kolay bir devre olduğu için ,herşey gayet düzgün çalışır,fakat bilgisayar da hardware ve software hatası olmaması gerekmektedir.

Programlama için swich kendinize doğru çekilmelidir (Bu pozisyon swicth'in esas pozisyonudur)

Programlama bittiğinde swicth ileri itilmelidir ki, RB6 RB7 bacakları port tan ayrılıp ,Breadbord ile bağlansın.

PİCPROG programlama programı eğer iki pencere açmış ise,devre initialize olmaz ve program şaşırır,bu nedenle Masa üstünde birden fazla PİCPROG program penceresi olmamalıdır.

PİCRROG ile seçtiğiniz herhangi bir HEX dosyasını,yüklerken XTAL osc. Tipini seçiniz. WDT yi ve CODE PROTEC'i işaretlemeyiniz, Deneme çalışmalarında bu kolaylık sağlar.

Easypic voltajıile ilgili olarak : 9 volt pili takılı tutup bradboard üzerinden daha yüksek voltaj (10V 12V gibi) verirseniz pil tükenmez.Pil portatif bir devre olsun diye düşünülmüştür.Mesela öğrenciler yaptıkları bir programı öğretmenin masasına götürüp gösterebilirler.

Bilgisayarı açıp devreye voltajı veriniz, port konnektörünü takınız, Switch size doğru çekili iken PİCPROG'u çalıştırınız, hex file seçip yükleyiniz.

Switch pozisyonunu değiştirip deneyi gerçekleştiriniz.

PİCPROG yükleme yaparken devreye müdahale etmeyiniz, PİC ile oynamayınız.

PİCPROG programı programlamanın bittiğini gösterir, o durumda switch i ileri iterek deneyinizi gercekleştiriniz.

Başarılar dileri"

PIC Programlamaya Nasıl Başlamalı?

0 yorum



Merhaba Arkadaşlar,
Bu yazımızda PIC programlamaya başlamak isteyen arkadaşlara yardımcı olmaya çalışacağız. Öncelikle PIC nedir onla girelim. PIC Microchip firmasının üretimi olan mikrodenetleyicilerin model ismidir. PIC 18F2550, 18F4550, 16F877, PIC 16F84, PIC 16F628A gibi, bunlar birer entegre ismi. Microchip firmasının PIC mikrodenetleyicileri o kadar yaygın kullanılıyor ki peçete yerine selpak ifadesinin kullanılması gibi PIC denilince akla mikrodenetleyici geliyor. Neden yaygın kullanılıyor derseniz kolay bulunması ve internette ilgili döküman ve projelerin çok olması hemen söyleyebileceğimiz iki sebep . PIC haricinde piyasada farklı yeteneklere sahip mikrodenetleyiciler bulunabilir. Projeye, fiyatlara göre uygun mikrodenetleyici seçimi yapmak gerekir. Mikrodenetleyici seçiminde geliştirme araçlarının lisans ücretleri de dikkat edilmesi gereken bir durum. Benim görebildiğim kadarıyla PIC ile uygulama geliştirme biraz pahallı, örneğin ATMEL gibi mikrodenetleyicilerin gelişmiş ve ücretsiz derleyicileri bulunurken PIC için mevcut gelimiş derleyicilerin bırakın ücretsiz olmasını lisans ücretleri oldukça yüksek. Şu sıralar ben de geç de olsa geliştirme araçlarının ücretsiz olanlarına doğru kaymaya çalışıyorum. Ayrıca kullanmak istediğiniz PIC modeline muadil diğer firmaların daha düşük fiyatlı mikrodenetleyicileri piyasada bulunabiliyor.
Programlama cihazlarının ucuzluğu veya kolay yapılabilmesi de dikkat edilmesi gereken başka bir durum, özetle PIC ile uygulama geliştirelim ama diğer mikrodenetleyicileri de bir kenara bırakmayalım.

PIC le neler yapabiliriz?
Bu soruya tam bir cevap vermek veya PIC le yapılabilecek uygulamalara bir sınır koymak oldukça zor, elektronik tecrübeniz arttıkça verebileceğiniz cevaplar da artacaktır. Ancak basitçe; mikrodenetleyiciler bizim için karar verirler, ne zaman ne yapması gerektiğini program aracılığıyla söylersiniz ve PIC bunu sizin için yapar. Örn: PIC e ne zaman hangi ledleri yakacağını söylerseniz led panelde kayan yazı yapabilirsiniz veya tuş takımından girilen şifrenin doğruluk kontrolünü yapmasını isterseniz röle yardımıyla şifreli kapı yapabilirsiniz... Çok basit kalan, belki de komik duran iki örnek :)

Genel olarak PIC li bir sistem ne yapar?
Her şeyden önce PIC li bir sistem bir bilgisayar sistemidir, programcı tarafından yapacağı uygulamaya uygun olarak geliştirilmiş ve PIC in içine yüklenmiş bir yazılım vardır ve bu yazılım icra edilir. İçinde yazılımı olmayan bir PIC hiç bir işe yaramaz, açılmayan bir bilgisayar gibi. PIC in çalışması için yazılımın haricinde gereken 2 temel donanım şartı vardır, besleme gerilimi ve osilatör. Aslında saydığımız bu üç unsur (yazılım, besleme, osilatör) tüm bilgisayar sistemlerinin olmazsa olmazıdır.

PIC programlamaya hangi model PIC le başlayalım?
Yeni başlayacak arkadaşlar için en uygun modelin 16F628 veya 16F628A( 16F628A nın resmi için buraya tıklayınız) olduğunu düşünüyorum. Bu model PIC lerde dahili osilatör olduğu için harici osilatör bağlamak durumunda kalmayacaksınız. Bu durumda mikrodenetleyicimizi çalıştırmak için sadece VDD ucuna +5V ve VSS ucunu toprağa bağlamamız yeterli olacaktır. Yani besleme gerilimini vererek ve dahili osilatörü kullanarak bu PIC i çalıştırabiliriz.

-Harici osilatör bağlamadık, peki dahili osilatörü nasıl aktif edeceğiz? Bunu PIC nerden bilecek?
--Yazdığınız programda ilgili konfigürasyonu aktif hale getirerek PIC e dahili osilatör kullanmak istediğimizi söylüyoruz. Bu ve benzeri konfigürasyonlar program içerisinde yapılacağı gibi yazdığınız kodun PIC e aktarılmasını sağlayan yazılım aracılığıyla da yapılabilir ama birinci yöntem daha güvenlidir.

PIC 16F628 modelinde toplam 18 adet pin bulunur, bunlardan 16 tanesi giriş-çıkış pini olarak kullanılabilir kalan 2 pin ise PIC in çalıştırılmasıyla ilgilidir(Besleme pinleri). Bu 16 giriş-çıkış pinimizden 8 tanesi A portuna 8 tanesi de B portuna ait pinlerdir. Hangi pin nerdedir(kaçıncı bacak), ne işe yarar gibi soruların cevabını PIC i üreten firmanın hazırladığı katalogdan(datasheet) öğreniyoruz, katalog uzun uzadıya anlatıyor her şeyi, güzel de anlatıyor ama biz yeni başlarken pin diagramlarının olduğu sadece ilk sayfaları kullanacağız. Hatta bu pin diagramını bir defalığına yazdırıp masanızın karşısına asarsanız rahat edersiniz. Örn pin diagramı. Kataloga ulaşmanın en kolay yolu, google>16F628A yazıp "enter"lamak. Ya da burdan direkt ulaşabilirsiniz.

-Girişi-çıkış pinleriyle ne yapacağız?
--Led yakalım mesela, yanıp sönen led yapalım, bir pini giriş olarak kullanıp düğmeye basıldı mı basılmadı mı anlayıp çıkış yaptığımız başka bir pindeki ledi yakalım... fena mı? Sadece led mi yakacağız.. hayır tabii ki, yukarıda da söylediğim gibi uygulama dünyası çok geniş. Üstelik her pin aynı değil, bazı pinler daha yetenekli... Olaylarla tanıştıkça bana hak vereceksiniz :) İlk uygulama olarak led yakmak ideal, alışveriş listenize kablo, led, direnç, deney tablası, pil ve regülatör gibi malzemeleri eklemeyi unutmayın böylece PIC i programladıktan sonra deneme yapabileceğiniz bir devre kurabilirsiniz.

(bu arada mikrodenetleyici = mikroişlemci + bellek + giriş-çıkış vs çevresel birimler olduğunu bildireyim)

Fiilen PIC programlamaya başlamak için gereken asgari gereçler;
Donanım Olarak;
1) Herhangi bir model PIC Mikrodenetleyicisi
2) PIC Programlama Cihazı (PIC Programlama Devresi=PIC Programlayıcı)
3) Bilgisayar
Yazılım olarak;
4) Derleyici (Seçtiğiniz programlama diline bağlı olarak size bir derleyici(compiler) gerekir)
5) Programlayıcıyla irtibatı kuracak olan(çoğunlukla programlayıcıyla birlikte verilir) yani yazdığınız kodu entegrenize yüklemenizi sağlayan yazılım.

Burda PIC Programlayıcı maddesinden biraz bahsetmek istiyorum:
Seriportu olan bilgisayalar için -ki artık seri port günümüz masaüstü bilgisayarlarında bile pek olmuyor- PIC programlayıcı yapmak oldukça kolay veya 10 TL civarı bir fiyat karşılığında satın alınabilir. Ancak eğer bilgisayarınızda seri portunuz yoksa size bir USB PIC programlayıcı gerekir ki fiyatları 45-80 TL arasında değişen farklı modeller piyasada mevcut. Ben şimdiye kadar K128 model USB programlayıcı kullandım fiyatı bir zamanlar 70 TL idi, sonra 45 TL ye clone PIC KIT2 aldım, ikisinden de memnunum. Siz de kendinize uygun gelen bir USB PIC programlayıcı alarak bu işe başlayabilirsiniz. PIC programlamaya başlarken yaptığım en büyük harcamam bir programlayıcı almak olmuştu.

Şimdi internette pek sık duyduğumuz bazı isimleri bu kategorilere koyalım (terimlerden kafası karışan arkadaşlar için),
ICPROG: 5. maddemizle ilgili; yazdığımız kodların PIC e yükleme amaçlı kullanabileceğimiz aracı yazılımlardan bir tanesidir. PIC programlayıcınızla beraber verilen yazılımı kullanmanız önerilir.

PicBasic: 4. maddemizle ilgili, PIC programlama yapabilmek için alternatif programlama dillerinden bir tanesi, bu dille programlamak istiyorsanız PicBasic derleyicisine ihtiyacınız var demektir.

Pic C: Yine 4. maddemizle ilgili, PIC C de pic programlamada kullanılabilecek alternatif dillerden birisidir. Aslında kendisi bir dil değil kategoridir, PIC C denilince çeşitli firmalar tarafından geliştirilmiş CCS C, HI-TECH C veya Micro C gibi PIC programlama yapmamızı sağlayan ek kodlar barındıran C dilleri kast edilir. Geçtiğimiz haftalarda(Mart 09) microchip HI-TECH firmasını satın aldığını duyurdu, bu da tabii HI-TECH C yi rakip PIC C lere göre öne çıkardı. HI-TECH C nin ücretsiz versiyonu(lite) ve kısıtlamalarla ilgili sayfaya buradan gidebilirsiniz.

- C dilini (veya Visual Basic) biliyorum, pic programlamada nasıl yardımı olabilir?
--PIC programlama için kullanılan PIC C, PIC Basic gibi dillerde standart C ve Visaul Basic gibi dillerde kullandığınız komutlar kullanılır ama ek olarak PIC donanımıyla alakalı bazı komutlar da vardır. Standart dilleri kullanmış biri olarak sadece bazı yeni fonksiyonları ve biraz PIC konfigürasyon ayarları hakkında bilgi edinerek kullandığınız standart dilin PIC versiyonunda uygulama geliştirmeye başlayabilirsiniz.


Pic Assembly: Her mikrodenetleyicinin bir yazılım dili olmak zorundadır, yoksa mikrodenetleyici çalışmayan bilgisayar gibi olur. Microchip de PIC leri üretirken yazılım dili olarak PIC assembly yi üretmiştir. PIC in anadilidir, mikrodenetleyici ve kendisine has asm dili birbirine girmiş iki unsurdur. Aslına bakarsanız assembly haricindeki tüm PIC dilleri bazı yazılım şirketlerinin asm ile program yazım zorluğunu ortadan kaldırma amaçlı alternatifler olarak geliştirilmiştir. Assembly dili bize diğer dillerle karşılaştırılamayacak kadar geniş bir yetki sağlar. Çünkü sistemin kendi dilini kullanıyoruz, C veya Basic gibi bir tercüman kullanmıyoruz. Assembly kullanmanın sağladığı geniş yetkilerin yanında dezavantajları da vardır. En büyük dezavantajı: çok temel komutları kullandığınız için program geliştirme süreci yavaş işler.
Örnek vermezsem olmaz(!) Bir binayı prefabrik gibi hızlıca yapmak var tuğla tuğla yapmak var; yavaş gelişim... buna karşın duvarda bir sorun olunca ne oluyor bu duvara demek var, sorun şu tuğlada olabilir demek var; sisteme hakimiyet... Umarım anlatabilmişimdir.
Assembly programcıları da çeşitli imkanları kullanarak nispeten hızlanabilirler(makro veya altprogramcıkları saklayarak) ancak olayın genel görüntüsü bu şekildedir.

Hangi dili seçelim derseniz(yani bana sorarsanız)? Ben CCS C ile başladım, epeyce uygulama geliştirdikten sonra Assembly öğrenmeye başladım ve bir çok şeyi Assembly ile daha iyi öğrendim. Ben hemen bir şeyler yapmak istiyorum derseniz C, basic gibi yüksek seviyeli dillerden başlayabilirsiniz. Derinlemesine öğreneyim sonra uygulama geliştiririm diyorsanız-ki biraz sabır istiyor- assembly derim.

CCS C nin 30 günlük deneme sürümünü bu bağlantıyı takip ederek temin edebilirsiniz.

Pic Assembler: Pic assembly kodlarını makine koduna(hex) çeviren yazılım, compiler gibi. Compiler ve assembler in amacı aynıdır(makine kodu) ama "input" dosyaları farklıdır. Microchip'in sitesinden mpasm adında sadece assembler indirebileceğiniz gibi güçlü bir hata ayıklama yeteneğine sahip ve ücretsiz olan MPLAB yazılım geliştirme aracını da indirebilirsiniz. MPLAB en yalın haliyle asm yazımı-derlenmesi ve hata ayıklama içindir ancak farklı derleyiciler kurduğunuz taktirde (PIC C gibi mesela) bu derleyicilerle uyumlu olarak çalışabilir, hata ayıklama özelliğini kullanabilirsiniz.

Yukarıda saydığımız 5 şarta sahip olduğunuzda PIC programlamak için yapmanız gerekenler sırasıyla şöyle olacaktır.
1)
Bilgisayarımızı açar, PIC C Derleyicimizi çalıştırırız(PIC C dillerinden birini kullandığımızı varsayalım). Yapmak istediğimiz uygulamaya ve mikrodenetleyicimize göre kodumuzu yazarız.

2) Kodu derleyip, hex dosyası oluşturduktan sonra hex dosyasını PIC e yükleyecek olan ve yukarıda da aracı yazılım olarak bahsettiğimiz yazılımı çalıştırırız.

3) Mikrodenetleyicimizi PIC Programlayıcıya yerleştirdiysek yazdığımız kodun hex uzantılı dosyasını bu yazılım aracılığıyla PIC imize yükleyebiliriz ve artık PIC i programlayıcıdan söküp devremizde kullanabiliriz. Bu 3 adımda bilgisayarla ilgili olan kısmı geride bırakmış oluyoruz. Artık PIC i devremizde çalıştırabiliriz.

Ancak tüm bunları sağlamak ve hatasız uygulamalar geliştirmek yeni başlayan arkadaşlar için epeyce zor olacaktır. Bu yüzden en uygun başlama yönteminin simülasyon programlarıyla olduğunu düşünüyorum. Simülasyon programı kullandığımız durumda yukarıdaki listenin donanım bölümündeki 1)”Herhangi bir model PIC Mikrodenetleyicisi”
2)”PIC Programlayıcı” maddelerinden kurtuluyoruz ve daha da önemlisi yanlış bağlantılarla yanabilecek donanım veya çalışmayı önleyebilecek donanım hatalarından kurtuluyoruz.

Yazılım çevresinde elektronik simülasyonu yapan bir çok program var ancak PIC simülasyonu yapabilen pek yok. PIC simülasyonu yapan ve benim de kullandığım PROTEUS adında gayet güzel bir simülasyon programı var. Bu programın demo versiyonu işimizi görecektir, firma: labcenter. (PIC simülasyonunu mümkün kılan programların özelliği yazdığınız kodları bu programlar sayesinde bilgisayar ortamında PIC e yükleme ve çalıştırma imkanı vermesidir. )
Bu işlemleri fiilen yapmak istediğimizde 1. PIC i programlamak için bir takım işlemler 2. çalıştırmak için birtakım işlemler yapmak durumundasınız, ancak simülasyon programları sayesinde programlamak için PIC inize sağ tıklayıp derleme sonucu oluşan hex dosyasını kaynak olarak göstermek, çalıştırmak için de simülasyon programınızın çalıştır düğmesine basmak yeterli olacaktır.

PIC programlamak için gereken asgari gereçlerin yeni bir listesini yapmamız gerekirse;
1) Yazacağınız kodları derleyip, hex dosyasına çevirecek derleyici. (Seçeceğiniz dile göre değişir, PIC C Dili, PIC Basic dilleri için derleyiciler internette mevcut)
2) Proteus Simülasyon Programı
olacaktır.

Bu şekilde PIC programlama dünyasına hızlı giriş yapabilirsiniz, bu işlemlere illa da fiilen başlamak istiyorsanız bir kaç denemeden sonra yine simülasyon ortamına döneceksiniz çünkü yazdığınız kodları gerçek bir PIC de denemeniz için gereken işlemler sürekli yapıldığında çok can sıkıcı olur, genelde kodumuzdan emin olduğumuzda son işlem olarak gerçek PIC e yükleme yaparız, ha bir aksilik olursa en fazla bir kaç defa değiştirip yükleriz. Kod geliştirme işlemini simülasyon üzerinden ilerletiyoruz son aşamada gerçek bir PIC e yüklüyoruz (hazır olduğunu düşündüğümüzde), bu her seviyeden PIC programcısı için böyledir.

NOTLAR:
CCS C ile kodlanmış ve Proteus ile simülasyon yapılmış örnek yanıp sönen led uygulamasının dosyaları için buraya tıklayınız.
Bu devrenin proteustaki görüntüsü:





Gerçekteki görüntüsü(gerçekte 5V luk gerilimi 7805 regülatör yardımıyla elde ediyoruz, proteus simülasyonda 5V bağlanmasına gerek olmadığından yukarıdaki şemada bu eleman gösterilmedi):




Regülatör kısmında kafası karışan arkadaşlar için:

Kaynağı bağladıktan sonra çıkış 5V mu değil mi diye voltmetrenizle kontrol etmeyi unutmayınız.

Proteusta yapılmış "Yanıp Sönen Led" uygulamasını izlemek için tıklayınız (Dil olarak CCS C seçildi ve dolayısıyla CCS C Compiler kullanıldı).

Programla ilgili partik bilgilere ve dosyalara picproje.org forumlarından ulaşabilirsiniz.
http://www.picproje.org/main/modules.php?name=Forums&file=viewforum&f=44

Arkadaşlar şimdilik bu kadar, yeni başlayacak arkadaşlara yardımcı olmaya çalıştım, umarım faydalı olmuştur. İyi çalışmalar dilerim.
"

Followers

 

elektrik & elektronik. Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com