PIC PROJELERI - DERS1

GİRİŞ
PIC PROJELERİ
PIC ÖĞRENİYORUM
=> DERS1
=> DERS-2
=> DERS-3
=> DERS-4
DEVRELER
FAYDALI LİNKLER
DOWNLOAD



 

A-GİRİŞ

1-Mikrodenetleyici nedir?

            Bir mikroişlemcili sistemde bulunması gereken CPU,ROM,RAM, I/O ünitelerin tek bir entegre içerisinde oluşturulmuş haline mikrodenetleyici denir. Mikroişlemcli bir sistemin tasarımına göre mikrodenetleyicili bir kontrol sisteminin kurulması daha kolay ve pratiktir. Mikrodenetleyici iç yapısında program hafızası, RAM hafıza ve giriş/çıkış portları hazırdır.

 

 

2-PIC16f84 Donanım Özellikleri: 

a-Pin görünüşü:

Pin no:1, 2                    RA2 port A 2., 3. uçları

Pin no:3                       RA4/TOCKI port A 4. ucu / TOCK1 (zamanlayıcı)

Pin no:4                       MCLR reset ucu / Vpp programlama gerilim girişi

Pin no:5                       Vss güç kaynağı toprak bağlantı ucu.

Pin no:6                       RB0 port B 0. ucu / kesme girişi.

Pin no:7, 8, 9,10,11  RB1 port B 1., 2., 3., 4., 5. uçları

Pin no:12          RB6 port B 6. ucu / programlama clock girişi.

Pin no:13                      RB7 port B 7. ucu /programlama data girişi.

Pin no:14                      Vdd güç kaynağı pozitif bağlantı ucu.

Pin no:15, 16     OSC2, OSC1 osilatör elemanları bağlantı uçları.

Pin no:17                      RA1 port A 0. ucu.

Pin no:18                      RA0 port A 1. ucu.

 

            Tekrar programlanabilen ve silinebilen 1024 kelimelik 1 Kbyte ‘lık program hafızası, FLASH teknolojisiyle yapılmıştır. Bu da PIC16F84 ‘ü çekici kılmaktadır.

Besleme gerilimi kesildiğinde dahi önemli bilgilerin saklanabileceği 64 byte’lık EEPROM hafızaya sahiptir.

Program içerisinde kullanılan çeşitli değişkenlerin tanımlanması için 68 byte’lık bir RAM hafızası da bulunmaktadır. Komutlar işletilmesi sırasında elde edilen sonuçlar veya geçici bilgiler burada saklanır.

            Mikrokontrolcü ile dış dünya arasında fiziksel bağlantıyı sağlayan PORTA ve PORTB isimli portları vardır. PORTA beş , PORTB  sekiz tane  giriş / çıkış olabilen uçlara sahiptir.
            Programdan bağımsız olarak çalışan 8-bit’lik bir TMR0 ve  WDT isimli iç sayıcıları da bulunur. Bu saycılar, osilatör sinyalinin her dört darbesinde değerini  255 ‘e ulaşana kadar bir artırır. 255 ‘e ulaşınca tekrar sıfırdan itibaren saymaya başlar. Bu bağımsız sayıcı birçok uygulamada kendini gösterir.

Merkezi  İşlem Birimi ( CPU );  RAM bilgi hafızası, EEPROM bilgi hafızası , FLASH program hafızası,  bağımsız sayıcılar TMR0 ve WDT, PORTA , PORTB  birimleri arasında birleştirici bir role sahptir. Bu birimleri koordine eder ve kullanıcı programını işletir.

 

c-Osilatör bağlantısı:

KRİSTALLİ OSİLATÖRLER

Komutların işletilmesi için saat sinyaline ihtiyaç vardır. PIC16F84 genellikle RC (direnç-kondansatör) veya XT(kristal) tip osilatörler kullanılarak çalıştırılır.

 

            Kristal osilatörler, üzerlerinde salınım frekansları yazılı , iki uçlu metal kılıflı elemanlardır.  30 pf gibi iki kondansatörle topraklama yapılır. Kristal ve kondansatörler aynı kılıf içerisinde bulunabilir. Oluşan yapı üç uçlu olur ve seramik rezenatör olarak adlandırılır. Orta uç topraklanır. Diğer uçlar mikrokontrolcünün OSC1 ve OSC2 uçlarına bağlanır. Osilatör bağlantı uçları  mümkün olduğunca kısa tutulmalıdır.

KRİSTAL DEĞERİ

C1 , C2

100 KHz

15 – 33 pf

1MHz

15 – 33 pf

2 MHz

15 – 33 pf

4 MHz

15 – 33 pf

10 MHz

15 – 33 pf

RC OSİLATÖRLER

Saat pals frekansına  hassas olmayan PIC16F84 uygulamalarında RC tipi osilatör kullanılabilir. RC osilatör frekans değeri, güç kaynağı,  R ve C elemanlarının değerleri ve ortam sıcaklığına bağlıdır. R ve C elemanlarının tolerans değerleri de osilatör frekans değeri hesaplanırken dikkate alınmalıdır.OSC1 ucundan verilen saat sinyali, OSC2 ucunda dörde bölünmüş olarak görülür. OSC2 ucundan f/4 alınarak çeşitli yerlerde kullanılabilir.

PIC16F84  kararlı çalışması için tavsiye edilen direnç ve kondansatör değerleri       5 KW <  R < 100 KW  ,  C > 20 pf dır. Bu değerlere dikkat edilmelidir. Elde edilen frekans değeri 4 ‘e bölünebilir olmalıdır. Aşağıda R ve C  elemanlarının PIC16F84  OSC1 girişine bağlantı şekli verilmiştir.

d-Reset devresi:

SIFIRLAMA (RESET ) DEVRESİ

Reset işlemi, kaydedicilerin başlangıç durumlarına dönmesi manasını taşır. Pratik olarak mikrokontrolörün istenmeyen şartlar altında düzgün çalışmasını sağlamak için yapılan işleme de denebilir. PIC16F84 değişik yollarla resetlenebilir. Bu yollar aşağıda verilmiştir.

    Reset ucu bir direnç ile Vdd üzerinden lojik “1” yapılmıştır. Reset ucu bu durumde aktif değildir. PIC16F84 dışardan reset bilgisi almamaktadır. Aşağıda basitleştirilmiş reset devresi görülmektedir. MCLR girişine istenmeyen sinyallerin yok edilmesi amacıyla bir gürültü filitresi konulmuştur. Bazı kaydediciler reset durumundan etkilenmezler.

 

POWER-ON RESET (POR):

            Vdd gerilimi PIC16F84 ‘ e uygulandığında Vdd dedektör devresi algılar ve reset palsi üretir. PIC16F84 ‘ün çalışma şartları (Vdd, Fosc vb..)oluşunca reset durumu ortadan kalkar.

POWER-UP TIMER (PWRT):

            72 ms’lik bir gecikme sağlar. Dahili bir RC osilatörden oluşur. PWRT  aktif olduğu sürece PIC16F84 reset durumunda kalır. 72 ms’lik bu gecikme, Vdd’nin normal çalışma değerine ulaşılması için gereklidir. Konfigürasyon bilgisi içerisinde on/off durumlarına alınabilir. Konfigürasyon bilgisinde;

PWRT_ON   ise PWRT etkin.

PWRT_OFF  ise PWRT çalışmaz.

e-I/O giriş/çıkış portları (buton,led ve transistör bağlantıları):

PORTLAR

            PIC16F84 ‘ün sekiz adet PORTB ‘de ve beş adet PORTA ‘da olmak üzere toplam onüç tane bilgi ( lojik 0 / 1) gönderilebilen veya bilgi okunabilen (çıkış ya da giriş) uçları vardır.

Portlar mikrokontrolörün dış dünyayla olan bağlantısını sağlar. Portlara bağlı olan devreler veya cihazlar PIC16F84 ile yapılan program vasıtasıyla istenilen şekilde kontrol edilebilir. RA4 / TOCKI ucu iki fonksiyona sahip bir uçtur.  PORTA giriş/çıkış ucu, veya TMRO  sayıcısının saat pals giriş ucu olarak kullanılabilir.

            Tüm port uçları giriş veya çıkış yapılabilecek şekilde düzenlenebilir. Bunun için doğru bilginin TRISA/TRISB kaydedicilerine yüklenmesi gerekir. Yüklenen “1” bilgileri ilgili port uçlarını giriş ucu, “0” bilgileri çıkış ucu yapar. PORTA için TRISA (85h adresinde), PORTB için TRISB (86h adresinde) kaydedicileri kullanılır.

PORTA

PORTA ‘nın  beş ucu vardır.  TRISA kaydedicisi ile giriş veya çıkış olarak yönlendirilir. Daha sonra PORTA ‘ya istenen bilgi gönderilir veya PORTA ‘dan okunur.

Örneğin :

TRISA=00h=(0000 0000)2  yapılırsa PORTA’nın tüm uçları çıkış ucu olarak çalışır.

 

TRISA=04h=(0000 0100)2  yapılırsa PORTA’nın  RA2 ucu giriş,diğerleri çıkış ucu olur.

PORTB

PORTB ‘nin 8 ucu vardır. TRISB kaydedicisi ile giriş veya çıkış olarak yönlendirilir. Daha sonra PORTB ‘ya istenen bilgi gönderilir veya PORTB ‘dan okunur.  Her uç çıkışında (dahili) pull-up dirençleri bulunur. Bu dirençler seçenekler kaydedicisinin (OPTION REGISTER) 7. biti RBPU ile devre alınır veya devre dışı bırakılır. İlk çalışma anında pull-up dirençleri devre dışıdır.

Örneğin :

TRISB=00h=(0000 0000)2  yapılırsa PORTb’nın tüm uçları çıkış ucu olarak çalışır.

TRISB=04h=(0000 0100)2  yapılırsa PORTB’nın  RB2 ucu giriş,diğerleri çıkış ucu olur.

 

3-PIC16f84 hafıza haritası:

            a-Program hafızası:

HAFIZA ORGANİZASYONU

            PIC16F84 birbirinden ayrı iki tane hafıza bloğuna sahiptir. Bunlardan biri verilerin (data)  , diğeri ise  programın saklanmasında kullanılır. EEPROM ve genel amaçlı kaydediciler (GPR) verilerin, FLASH hafıza  ise programın saklanması içindir.

PROGRAM HAFIZASI

Program hafızası defalaca programın yazılıp silinebildiği FLASH teknolojisiyle gerçekleştirilmiştir. 14 bit genişliğinde 1024 tane hafıza yerleşimine sahiptir. 0. ( 0000h) ve 4. (0004h) yerleşimler sıfırlama (reset) ve kesme (interrupt) vektörleri için ayrılmıştır.

VERİ (DATA) HAFIZASI

            Veri hafızası EEPROM ve RAM hafızadan oluşur.

EEPROM belleği 64 X 8 bit kapasitede, elektrik kesintisiyle bile içeriğini saklayabilen bir hafızadır. EEPROM direkt olarak  adreslenemez. Fakat EEADR ve EEDATA kaydedicileri yardımıyla dolaylı olarak adreslenebilir. EEPROM genellikle bazı özel parametrelerin (ısı, hız vb.) saklanmasında kullanılır.  EEPROM belleğe bilgi kaydedilirken izlenmesi gereken işlem sırası vardır. Bu işlem sırasına uyulmazsa EEPROM belleğe zarar verilebilir.

RAM bellek verilerin saklanmasında  kullanılan , 000Ch – 004Fh adresleri arsında 68 tane yerleşime sahip bir hafızadır. Bu 68 tane yerleşime genel amaçlı kaydediciler de (GPR) denir. GPR kaydedicilere BANK  seçimi yapılmaksızın giriş/çıkış yapılabilir. Programlama sırasında kullanılan değişkenlerin tanımlanması burada olur.

ÖZEL AMAÇLI KAYDEDİCİLER (SFR   REGISTERS)

Hafıza bölgesi BANK0 ve BANK1’ de ilk 12 yerleşimde yer alan kaydedicilere özel amaçlı kaydediciler (SFR) denir.

 

 

BANK0 SFR kaydedicileri

 

BANK1 SFR kaydedicileri

Adres

 

Adı

 

Adres

 

Adı

 

00h

INDF

80h

INDF

01h

TMR0

81h

OPTION

02h

PCL

82h

PCL

03h

STATUS

83h

STATUS

04h

FSR

84h

FSR

05h

PORTA

85h

TRISA

06h


=> Sen de ücretsiz bir internet sitesi kurmak ister misin? O zaman burayı tıkla! <=