12 Ağustos 2015 Çarşamba


REGISTER-YAZMAÇLAR İLE İLGİLİ TÜRKÇE BİLGİLER

ANALOG DİGİTAL ÇEVİRİCİ(ADC)
AD

0 Kaydedicisi

7
6
5
4
3
2
1
0
ADCS1
ADCS0
CHS2
CHS1
 CHS0
GO-DONE
-
ADON
           

ADON: A/D çeviriciyi yetkilendirme bitidir. ADON=1 ise A/D çevirici açıktır ve işlem yapılabilir durumdadır. ADON=0 ise A/D çevirici kapalıdır.

GO/DONE: Eğer ADON biti de 1 ise A/D çevirici statü biti görevini üstlenir. GO/DONE=1 ise A/D çevirici işlem yapıyor demektir. GO/DONE=0 ise A/D çevirici üzerinde herhangi bir işlem yapılmıyordur.

CHS0:CHS2: A/D çevirici için kanal seçim bitlerini oluşturur. Bu bitlere verilecek değerlerle A/D çevirme için hangi kanalın seçileceği belirlenir. Daha Önceden de belirtildiği gibi PIC 16F877’de A/D çevirici için 8 kanal mevcuttur.

000 = kanal 0, (RA0/AN0)
001 = kanal 1, (RA1/AN1)
010 = kanal 2, (RA2/AN2)
011 = kanal 3, (RA3/AN3)
100 = kanal 4, (RA5/AN4)
101 = kanal 5, (RE0/AN5)
110 = kanal 6, (RE1/AN6)
111 = kanal 7, (RE2/AN7)

ADCS0:ADCS1: A/D çevirici için clock frekansı seçim bitleridir. Bu bitlere verilecek değerler ile A/D çevirme işlemi esnasında kullanılacak frekans değeri bize sunulan değerler içerisinden seçilir.

00 = FOSC/2
01 = FOSC/8
10 = FOSC/32
11 = FRC (Harici bir RC osilasyon kaynağından gelen clock darbeleri kullanılır.)

 ADCON1 Kaydedicisi

7
6
5
4
3
2
1
0
ADFM
-
-
-
PCFG3
PCFG2
PCFG1
PCFG0

PCFG0: PCFG3: A/D çevirici portunun biçimini düzenlemeyi sağlayan bitlerdir. Yani A/D çevirme işleminde kullanılacak pinlerin nasıl davranacağını belirlememize olanak sağlarlar.

ADFM: A/D çevirme işlemi esnasında meydana gelen verinin biçimini belirlemeye yarayan bittir. ADFM=1 ise ADRESH kaydedicisinin MSB kısmındaki altı biti 0 kabul edilir ve A/D çevirme sonucunda elde edilen veri ADRESH’ın 2 bitlik LSB kısmına ve ADRESL’ye yazılır. ADFM=0 ise ADRESL’nin LSB kısmındaki 6 biti 0 kabul edilir ve A/D çevirme sonucu elde edilen veri ADRESL’nin son iki bitine ve ADRESH’a yazılır.
ADRESH: ADRESL kaydedicileri A/D dönüşümün 10 bit sonucunu kapsar. A/D dönüşümü bittiği zaman, sonuç A/D sonuç kaydedicisinin içine yüklenir.


PCFG3:
PCFG0
AN7(1)
RE2
AN6(1)
RE1
AN5(1)
RE0
AN4
RA5
AN3
RA3
AN2
RA2
AN1
RA1
AN0
RA0
VREF+
VREF-
KANAL/REFS
0000
A
A
A
A
A
A
A
A
VDD
VSS
8/0
0001
A
A
A
A
VREF+
A
A
A
RA3
VSS
7/1
0010
D
D
D
A
A
A
A
A
VDD
VSS
5/0
0011
D
D
D
A
VRE+
A
A
A
RA3
VSS
4/1
0100
D
D
D
D
A
D
A
A
VDD
VSS
3/0
0101
D
D
D
D
VRE+
D
A
A
RA3
VSS
2/1
011X
D
D
D
D
D
D
D
D
-
-
00
1000
A
A
A
A
VREF+
VREF-
A
A
VDD
RA2
6/2
1001
D
D
A
A
A
A
A
A
RA3
VSS
6/0
1010
D
D
A
A
VREF+
A
A
A
RA3
VSS
5/1
1011
D
D
A
A
VREF+
VREF-
A
A
RA3
RA2
4/2
1100
D
D
D
A
VREF+
VREF-
A
A
RA3
RA2
3/2
1101
D
D
D
D
VREF+
VREF-
A
A
RA3
RA2
2/2
1110
D
D
D
D
D
D
D
A
VDD
VSS
1/0
1111
D
D
D
D
VREF+
VREF-
D
A
RA3
RA2
1/2

TMR1 ZAMANLAYICISI

             Zamanlayıcı olan tmr1’in amacı sıralı çalışmakla 65536’nın kaydettiği özel olan 16 parçadır(bit). Kullanılan osilatörün 4 mhz olduğunu farzedelim. Tmr1 ile 0-65536 mikrosaniyelik ölçüm yapılabilir(4mhz’de ,tmr1 artışları 1 mikrosaniyede gerçekleşirr). Eğer bölücü kullanılmışsa bu süre artırılabilir. Bölücü belirli bir orana bölünür.(yerleştirmelerin yapıldığı bölücü T1CON kaydedicisi)
             TMR1’i seçmek için T1CON’un 0.biti 1 yapılır. Tmr1’i çalıştırmak için önemli diğer kaydediciler ise PIR1 VE PIE1’dir. Pır1 ilk taşma bayrağını içerir ve diğer kullanılan PIE1’lede tmr1 kesmesi sağlanır. Tmr1’le kesme sağlanır ve bayrak açılır. Biz sadece  çevresel kesmeyi sağlamaya gerek duyarız ve çevresel kesmeleri INTCON’a kaydederiz.
               Takip ettiğimiz örnekte TMR1 zamanlayıcısında 10 saniyenin nasıl oluştuğunu gösteriyor. Görsel amaçlar için her 10 saniyede bir PORTB’deki ledlerin yaklaşı 10 sn de bir tersini alır. (152*65.536ms(mikrosaniye)=9.96 saniye yani 10 saniye olur.)

T1CON: TIMER1 Kontrol Kaydedicisi


TIMER1’deki işlemlerin kontrol edildiği ve işlemler yürütülürken bazı bilgilerin alındığı kaydedicidir.
Timer1 aşağıdaki modlardan birini işletebilir.
  • Zamanlayıcı olarak
  • Senkronize sayacı olarak
  • Asenkronize sayacı olarak
TMR1CS (T1CON<1>) biti bu modlardan hangisinin çalıştırılacağına karar verir. Zamanlayıcı modunda Timer1 her komut çevrimi artışları, sayaç modunda her harici saat girişi yükselmesini belirler. Timer1 osilatör aktifken RC1/T10SI ve RC0/T10S0/T1CKI pinleri giriş olurlar. TRISC<1:0> değeri ihmal edilir. Timer1 aynı zamanda dahili reset girişine sahiptir. Bu reset CCP modül üretmelidir.
  
7
6
5
4
3
2
1
0
---------
---------
T1CKPS1
T1CKPS0
T1OSCEN
T1SYNC
TMR1CS
TMR1ON
           
TMR1ON: Timer1’e yetki veren bittir. TMR1ON biti 1 yapıldığında Timer1 kullanılır durumdadır,0 ise kullanım dışıdır.

TMR1CS: Timer 1 için clock kaynağının seçildiği bittir. TMR1CS 1 ise clock kaynağı olarak RC0/T1OSO/T1CKI pininden gelen sinyalin yükselen kenarları seçilir. TMR1CS’nin 0 olması halinde ise dahili clock kaynağı kullanılır.

T1SYNC: Harici clock kaynağının senkron kontrolünü yapan bittir. Eğer harici kaynak ile Timer1 eşzamanlı çalışmıyorsa T1SYNC 1 seviyesinde olur. Eğer eşzamanlı bir çalışma var ise T1SYNC 0 seviyesindedir.

T1OSCEN: Timer1 osilatör kaynağı yetkilendirme bitidir. T1OSCEN 1 ise osilatör kaynağı etkindir, 0 ise kullanım dışıdır.

T1CKPS0,T1CKPS1: Timer1 giriş sinyalinin bölme (prescale) oranının seçildiği bilerdir. Bu bitlerin aldığı değerlere göre bölme prescaler değeri değişmekte ve buna bağlı olarak Timer1 artma frekansı değişmektedir.
·         11 = 1/8 bölme değeri
·         10 = 1/4 bölme değeri
·         01 = 1/2 bölme değeri
·         00 = 1/1 bölme değeri

PIE1 Register (Çevresel Kesme Kaydedicisi)

PIE1 kaydedicisi, çevresel kesmelerle ilgili bitleri olan bir kaydedicidir. Bir çevresel kesmenin olabilmesi için, PIE1 (INTCON<6>) biti de set edilmelidir.

7
6
5
4
3
2
1
0
PSPIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE








            Bit 7: PSPIE: Paralel Slave Port okuma/yazma kesmesi biti
                        1= PSP R/W kesmesini aktifleştir
                        0= Kesmeyi kaldırır

            Bit 6: ADIE: A/D çevirici kesmesini aktifleştirme biti
                        1= A/D çevirici kesmesini aktifleştirir
                        0= Kesmeyi kaldırır

            Bit 5: RCIE: USART alma (receive) kesmesini aktifleştirme biti
                        1= USART alma kesmesini aktifleştir
                        0= Kesmeyi kaldırır

            Bit 4: TXIE: USART gönderme (transmit) kesmesi aktifleştirme biti
                        1= USART gönderme kesmesini aktifleştirir
                        0= Kesmeyi kaldırır

            Bit3: SSPIE: Senkron Seri Port kesmesi aktifleştirme biti
                        1= SSP kesmesini aktifleştirir
                        0= Kesmeyi kaldırır

            Bit2: CCP1IE: CCP1 kesmesi biti
                        1= CCP1 kesmesini aktifleştirir
                        0= Kesmeyi kaldırır

            Bit 1: TMR2IE: TMR2 PR2 uyum kesmesi aktifleştirme biti
                        1= TMR2 PR2 uyum kesmesini aktifleştirir
                        0= Kesme yok

            Bit 0: TMR1IE: TMR1 taşma kesmesini aktifleştirme biti
                        1= TMR1 taşma kesmesini aktifleştir
                        0= Kesmeyi kaldırır

PIR1 Register (Çevresel Kesme Kaydedicisi)

PIR1 kaydedicisi, çevresel kesmelerle ilgili uyarı bitlerini taşıyan kaydedicidir.
   
7
6
5
4
3
2
1
0
PSPIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF


Bit 7: PSPIFE: Paralel Slave Port okuma/yazma kesme uyarısı biti
1= PSP R/W kesmesi oluştu (yazılımda temizlenmeli)
0= Okuma ya da yazma yok

Bit 6: ADIF: A/D çevirici kesme uyarısı biti
1= A/D çevirme işlemi bitti
0= Çevirme tamamlanmadı

Bit 5: RCIF: USART alma (receive) kesmesi uyarı biti
1= USART alma tamponu boş
0= Alma tamponu dolu

Bit 4: TXIF: USART gönderme (transmit) kesme uyarısı biti
1= USART gönderme tamponu boş
0= Gönderme tamponu dolu

Bit3: SSPIF: Senkron Seri Port kesme uyarısı biti
1= SSP kesmesi dolu (yazılımda temizlenmeli)
0= SSP kesmesi yok

Bit2: CCP1IF: CCP1 kesmesi uyarı biti
1= TMR1 kaydedicisi yakaladı
0= TMR1 kaydedicisi yakalamadı

Bit 1: TMR2IF: TMR2 PR2 uyum kesmesi uyarı biti
1= TMR2 PR2 uyum kesmesi var
0= Kesme yok

Bit 0: TMR1IF: TMR1 taşma kesmesi uyarı biti
1= TMR1 sayacı taştı, kesme oldu
0= Kesme yok
Capture/Compare/PWM Modülü (CCP)
CCP modülü 16 bitlik bir yazmaca sahiptir. Bu yazmaç Capture yazmacı, Compare yazmacı veya PWM master/slave sinyal oranı (duty cycle) yazmacı olarak kullanılır. Bu 16 bitlik yazmaç iki adet 8 bitlik yazmaçdan oluşur (CCPR1L ve CCPR1H). CCP1CON yazmacı CCP modülünün kontrol edilmesinde kullanılır.

CCP1CON REGISTER


7
6
5
4
3
2
1
0
-
-
CCP1X
CCP1Y
CCP1M3
CCP1M2
CCP1M1
CCP1M0
 CCP1X:CCP1Y = PWM’in en düşük bitleri
            Capture modda kullanılmaz
            Compare modda kullanılmaz
PWM Modda PWM Duty_cycle için en düşük 2 biti ayarlamak üzere kullanılır. Diğer  CCPRxL’dir.
 CCP1M3:CCP1M0 = CCPx mod seçim bitleri            
            0000 = Capture/Compare/PWM kapalı
            0100 = Capture mod, her düşen kenarda
            0101 = Capture mod, her yükselen kenarda
            0110 = Capture mod, her yükselen 4üncü kenarda  
            0111 = Capture mod, her yükselen 16ıncı kenarda
            1000 = Compare mod, eşleşmede çıkışı ayarlarma
            1001 = Compare mod, eşleşmede çıkışı temizleme
            1010 = Compare mod, eşleşmede yazılım kesmesi yaratma
            1011 = Compare mod, tetikleme özel olayı
            11xx = PWM Modu

INTCON REGISTER (KESME KAYDEDİCİSİ)

INTCON kaydedicisi, okunabilir ve yazılabilir bir kaydedicidir. Kapsamında TMR0 / WDT kaydedicisi taşma uyarı bitleri, PORTB değişim ve dış kesme (RB0 / INT pin interrupt) denetim bitleri, TMR0 kesme denetim bitleri bulunur.
7             6             5             4             3             2             1             0

GIE
PEIE
TOIE
INTE
RBIE
TOIF
INTF
RBIF

Bit 7: GIE: Bütün kesmeler geçerli (Global Interrupt Enable) biti

1= Maskelenmemiş kesmeleri aktif yapar

0= Kesmeyi kaldırır

Bit 6: PEIE: Çevresel kesmeleri geçerli yapma biti

1= Çevresel kesmeyi aktifleştirir

0= Çevresel kesmeyi kaldırır

Bit 5: TOIE: TMR0 clock taşma kesmesi biti

1= TMR0 kesmesini aktif yapar

0= Kesmeyi kaldırır

Bit 4: INTE: RB0 / INT dış kesme biti

1= RB0 / INT pininden dış kesmeyi aktif yapar

0= Kesmeyi kaldırır

Bit 3: RBIE:  PORTB değişiklik kesme biti

1= RB port değişimini aktif yapar

0= Kesmeyi kaldırır

Bit 2: TOIF: TMR0 taşma uyarısı bayrak biti

1= TMR0 taştı (taştıktan sonra program içinden temizlenir)

0= TMR0 taşmadı

Bit 1: INTF: TMR0 / INT dış kesme uyarı bayrak biti

1= TMR0 dış kesme oldu (program içinden temizlenir)

0= TMR0 dış kesme yok

Bit 0: RBIF: RB Port değişimi kesme uyarı bayrak biti

1= En az bir RB<7..4> pini durum değiştirdi (Programda kontrol edilir)

0= Hiçbir RB<7..4> pini durum değiştirmedi


   OPTION REGISTER(DURUM KAYDEDİCİSİ)


            Bu register değişik kontrol bitlerini içeren özel bir register'dır. B portunun çıkışlarını pull-up yapan, interrupt  sinyalinin tetikleme kenarını seçen, TMR0 ve WDT için frekans bölme sayısını belirten ve TMR0 veya WDT seçme bayrağı bulunduran bir registerdir.
  
7
6
5
4
3
2
1
0
RBPU’
INTEGD
TOCS
TOSE
PSA
PS2
PS1
PS0

  RBPU' : PORTB pull-up aktif etme bayrağı

1 : PORTB pull-up’ lar pasifleştirilir.
            0 : PORTB pull-up’ lar aktifleştirilir.

   INTEGD : Interrupt kenarı seçme biti

             1 :  Interruptlar RB0/INT sinyalin yükselen kenarında oluşur
             0 :  Interruptlar RB0/INT sinyalin düşen kenarında oluşur.

   TOCS : TMR0 clock sinyali kaynağı seçme biti

             1 : RA4/TOCKI pinden alınan clock sinyali
             0 : Komut dizimi ile oluşturulan clock ( CLK0 )

   TOSE : TMR0 harici clock sinyali kenar seçme biti

             1 : Düşen kenarda artış
             0 : Yükselen kenarda artış

   PSA : Frekans bölücü seçme biti

             1 : Prescaler (frekans bölme sayısı) değeri WDT için geçerli
             0 : Prescaler değeri Timer0 için geçerli

   PS2, PS1, PS0 : Prescaler değeri seçme bitleri






PS2  PS1  PS0
 TMR0 Değeri
WDT Değeri 
0
0
0
 1/2
 1/1
0
0
1
 1/4
 1/2
0
1
0
 1/8
1/4
0
1
1
 1/16
 1/8
1
0
0
 1/32
 1/16
1
0
1
 1/64
 1/32
1
1
0
 1/128
 1/64
1
1
1
 1/256
 1/128


 NOT: pic16f877 baz alınmıştır.

Hiç yorum yok:

Yorum Gönder