PIC16F84  YAPISAL GÖRÜNÜM

 

 

        PIC16CXX ailesinin yüksek performansı, RISC mikroişlemcilerinde sıkça bulunan bir dizi yapısal niteliğe atfedilebilir. Başlangıç olarak, PIC16CXX bir Harvard Yapısı kullanmaktadır. Bu yapı, ayrı hafızalardan kabul edilen program ve verilere sahiptir. Bu yüzden gereç bir program hafıza taşıyıcısı ve bir veri hafıza taşıyıcısına sahiptir. Bu, program ve verilerin aynı hafızadan edinildiği (aynı taşıyıcı üzerinden erişimler) geleneksel von Neumann yapısı üzerinde bant genişliğini geliştirmektedir. 

          Program ve veri hafızasını ayırmak dahası 8 bit genişliğindeki veri dünyasından farklı olarak boyutlandırılması için talimatlara izin vermektedir. PIC16CXX opkodları, tek kelime talimatlarını mümkün kılan 14 bit genişliğindedir. Tam 14 bit genişliğinde program hafıza taşıyıcısı tek bir döngü dahilinde bir 14 bitlik talimat sağlamaktadır. İki kademeli bir boru hattı talimatların alınması ve gerçekleştirilmesini kısmen kaplamaktadır (Örnek 3 – 1). Sonuç olarak, program

dalları için hariç tüm talimatlar tek bir döngüde gerçekleştirilmektedir (400 ns @ 10 MHz).

PIC16C84, 1 K x 14 program hafızasına hitap etmektedir. Tüm program hafızası içeridedir.

PIC16CXX gereçleri, kayıt dosyaları veya veri hafızasına doğrudan veya dolaylı olarak hitap etmektedir. Program sayacı dahil tüm özel işlev kayıtları veri hafızası dahilinde haritalandırılmıştır. Bir ortogonal (simetrik) talimat, herhangi hitap etme modunu kullanan herhangi bir kayıt hakkında herhangi bir işlemi gerçekleştirmesini mümkün kılacak şekilde ayarlamaktadır. Bu simetrik yapı ve “özel optimal durumlar”ın eksikliği, PIC16CXX ile programlamayı basit bir şekilde etkin hale getirmektedir. Ek olarak, öğrenim eğrisi belirgin bir şekilde azaltılmıştır.

PIC16C84, 36 x 8 SRAM ve 64 x 8 EEPROM veri hafızasına sahiptir.

PIC16C XX gereçleri, bir 8 bitlik ALU ve çalışan bir kaydedici içermektedir. ALU genel amaçlı bir aritmetik birimdir. Çalışan bir kaydedici ve herhangi bir kayıt dosyasındaki veriler arasındaki aritmetik ve Boolean işlevlerini gerçekleştirmektedir.

ALU, 8 bit genişliğinde ve ekleme, çıkarma değişim ve mantıksal işlem yeteneğidir. Aksi belirtilmediği sürece, aritmetik işlemler doğal olarak ikinin bileşenleridir. İki işlenen talimatları dahilinde, tipik olarak bir işlenen çalışan kaydedicisidir (W kaydedicisi), ve diğer işlenen bir dosya kaydedicisi veya bir anlık sabitidir. Tek işlenen talimatlarında, işlenen ya W kaydedicisi veya bir dosya kaydedicisidir.

W kaydedicisi, ALU işlemleri için kullanılan 8 bitlik bir çalışan kaydedicisidir. Yönlendirilmiş bir kayıt değildir.

Gerçekleştirilen talimata bağlı olarak ALU, STATUS (Statü) kaydında Taşıma (C), Basamak Taşıma (DC) ve Zero (Sıfır) (Z) bitlerinin değerlerini etkileyebilir. C ve DC bitleri, çıkarımda sırasıyla alıcı ve basamak alıcı dış biti olarak çalışmaktadır. Örnekler için SUBLW ve SUBWF talimatlarına bakınız.

PIC16C84  için basitleştirilmiş bir blok diyagramı aşağıda gösterilmiştir.

 

 

 ŞEKİL 3-1 :PIC16C84 BLOCK DIAGRAM

 

TABLO 3-1: PIC16C8X  PINOUT DESCRIPTION

Pin Name

DIP No.

SOIC No.

I/O/P Type

Buffer Type

Description

OSC1/CLKIN

16

16

I

ST/CMOS(1)

Oscillator crystal input/external clock source input

OSC2/CLKOUT

15

15

O

 

Oscillator crystal output. Connects to crystal or

 

 

 

 

 

resonator in crystal oscillator mode. In RC mode

 

 

 

 

 

OSC2 Pin outputs  CLKOUT which has 1/4 the

 

 

 

 

 

freguency of OSC1,and denotes the instruction cycle

 

 

 

 

 

rate.

MCLR

4

4

I/P

ST

Master clear(reset) input/programming voltage input.

 

 

 

 

 

This pin is an active low reset to the device.

 

 

 

 

 

PORTA is a bi -directional I/O port.

RAO

17

17

I/O

TTL

 

RA1

18

18

I/O

TTL

 

RA2

1

1

I/O

TTL

 

RA3

2

2

I/O

TTL

 

RA4/TOCKI

3

3

I/O

ST

Can also be selected to be the clock input to the

 

 

 

 

 

TMR0 timer/counter.Output is open drain type.

 

 

 

 

 

PORTB is a-bi directional I/O port.PORTB can be

 

 

 

 

 

software programmed for internal weak pull-up on all

 

 

 

 

 

inputs.

RBO/INT

6

6

I/O

TTL

RBO/INT can also be selected as an external interrupt pin.

RB1

7

7

I/O

TTL

 

RB2

8

8

I/O

TTL

 

RB3

9

9

I/O

TTL

 

RB4

10

10

I/O

TTL

İnterrupt on change pin.

RB5

11

11

I/O

TTL

İnterrupt on change pin.

RB6

12

12

I/O

TTL/ST(2)

İnterrupt on change pin.Serial programming clock.

RB7

13

13

I/O

TTL/ST(2)

İnterrupt on change pin.Serial programming data.

Vss

5

5

P

*

Ground reference for logic and I/O pins.

Vdd

14

14

P

*

Positive supply for logic and I/O pins.

 

 

 

 

 

 

Legend: I=input

O=output

I/O=input/output

P=power

 

* =not used

TTL=TTL input

ST= Schmitt Trigger input

Note    1:This buffer is a Schmitt Trigger input when configured in RC oscillator mode and a CMOS input otherwise.

           2:This buffer is a Schmitt Trigger input when used in serial programming mode.

 

3.1 Zamanlayıcı Şeması / Talimat Döngüsü

 

(OSC1’den) Saat girdisi, Q1, Q2, Q3 ve Q4 olarak adlandırılan dört kısmen kaplamayan dördülleme saatlerini oluşturmak amacıyla içten dörde bölünmüştür. Dahili olarak, program sayacı (PC) her bir Q1’i artırmakta olup talimat program

hafızasından alınıp Q4 dahilinde talimat kaydı içine kilitlemektedir. Q1’den Q4’e doğru takip ederken talimat çözülüp gerçekleştirilmektedir. Saatler ve talimat gerçekleştirme akışı Şekil 3 – 2 dahilinde gösterilmiştir.

 

3.2 Talimat Akışı / Boru Hattı

 

Bir “Talimat Döngüsü” dört Q döngüsünden (Q1, Q2, Q3 ve Q4) oluşmaktadır. Talimat alımı ve gerçekleştirilmesi, çözülüp gerçekleştirme diğer bir talimat döngüsünü oluştururken, bir talimat döngüsünü oluşturmaktadır. Yine de, boru hattı dolayısı ile, her bir talimat etkin bir şekilde tek döngüde gerçekleştirmektedir. Eğer bir talimat program sayacının değişmesine neden olursa, (ÖR: GOTO) bu durumda talimatı tamamlamak için iki döngü gereklidir (Örnek 3 – 1).

Bir alım döngüsü, Q1 dahilinde artan Program Sayacı (PC) ile başlamaktadır.

Gerçekleştirme döngüsünde, alınan talimat, Q1 döngüsündeki “Talimat Kaydı” içine kapatılmaktadır. Bu talimat daha sonra Q2, Q3 ve Q4 döngüleri esnasında çözülür ve gerçekleştirilir. Veri hafızası Q2 esnasında okunmakta olup (işlenen okuması) ve Q4 esnasında yazılır (amaç yazılımı).

 

3.0 YAPISAL GÖRÜNÜM

 

PIC16CXX ailesinin yüksek performansı, RISC mikroişlemcilerinde sıkça bulunan bir dizi yapısal niteliğe atfedilebilir. Başlangıç olarak, PIC16CXX bir Harvard Yapısı kullanmaktadır. Bu yapı, ayrı hafızalardan kabul edilen program ve verilere sahiptir. Bu yüzden gereç bir program hafıza taşıyıcısı ve bir veri hafıza taşıyıcısına sahiptir. Bu, program ve verilerin aynı hafızadan edinildiği (aynı taşıyıcı üzerinden erişimler) geleneksel von Neumann yapısı üzerinde bant genişliğini geliştirmektedir. Program ve veri hafızasını ayırmak dahası 8 bit genişliğindeki veri dünyasından farklı olarak boyutlandırılması için talimatlara izin vermektedir. PIC16CXX opkodları, tek kelime talimatlarını mümkün kılan 14 bit genişliğindedir. Tam 14 bit genişliğinde program hafıza taşıyıcısı tek bir döngü dahilinde bir 14 bitlik talimat sağlamaktadır. İki kademeli bir boru hattı talimatların alınması ve gerçekleştirilmesini kısmen kaplamaktadır (Örnek 3 – 1). Sonuç olarak, program

dalları için hariç tüm talimatlar tek bir döngüde gerçekleştirilmektedir (400 ns @ 10 MHz).

PIC16C84, 1 K x 14 program hafızasına hitap etmektedir. Tüm program hafızası içeridedir.

PIC16CXX gereçleri, kayıt dosyaları veya veri hafızasına doğrudan veya dolaylı olarak hitap etmektedir. Program sayacı dahil tüm özel işlev kayıtları veri hafızası dahilinde haritalandırılmıştır. Bir ortogonal (simetrik) talimat, herhangi hitap etme modunu kullanan herhangi bir kayıt hakkında herhangi bir işlemi gerçekleştirmesini mümkün kılacak şekilde ayarlamaktadır. Bu simetrik yapı ve “özel optimal durumlar”ın eksikliği, PIC16CXX ile programlamayı basit bir şekilde etkin hale getirmektedir. Ek olarak, öğrenim eğrisi belirgin bir şekilde azaltılmıştır.

PIC16C84, 36 x 8 SRAM ve 64 x 8 EEPROM veri hafızasına sahiptir.

PIC16C XX gereçleri, bir 8 bitlik ALU ve çalışan bir kaydedici içermektedir. ALU genel amaçlı bir aritmetik birimdir. Çalışan bir kaydedici ve herhangi bir kayıt dosyasındaki veriler arasındaki aritmetik ve Boolean işlevlerini gerçekleştirmektedir.

ALU, 8 bit genişliğinde ve ekleme, çıkarma değişim ve mantıksal işlem yeteneğidir. Aksi belirtilmediği sürece, aritmetik işlemler doğal olarak ikinin bileşenleridir. İki işlenen talimatları dahilinde, tipik olarak bir işlenen çalışan kaydedicisidir (W kaydedicisi), ve diğer işlenen bir dosya kaydedicisi veya bir anlık sabitidir. Tek işlenen talimatlarında, işlenen ya W kaydedicisi veya bir dosya kaydedicisidir.

W kaydedicisi, ALU işlemleri için kullanılan 8 bitlik bir çalışan kaydedicisidir. Yönlendirilmiş bir kayıt değildir.

Gerçekleştirilen talimata bağlı olarak ALU, STATUS (Statü) kaydında Taşıma (C), Basamak Taşıma (DC) ve Zero (Sıfır) (Z) bitlerinin değerlerini etkileyebilir. C ve DC bitleri, çıkarımda sırasıyla alıcı ve basamak alıcı dış biti olarak çalışmaktadır. Örnekler için SUBLW ve SUBWF talimatlarına bakınız.

PIC16C84  için basitleştirilmiş bir blok diyagramı Şekil 3 – 1 dahilinde gösterilmiş ve ilgili pim tanımı Tablo 3 – 1 dahilinde gösterilmiştir.

ŞEKİL 3-1 :PIC16C84 BLOCK DIAGRAM

 

TABLO 3-1: PIC16C8X  PINOUT DESCRIPTION

Pin Name

DIP No.

SOIC No.

I/O/P Type

Buffer Type

Description

OSC1/CLKIN

16

16

I

ST/CMOS(1)

Oscillator crystal input/external clock source input

OSC2/CLKOUT

15

15

O

 

Oscillator crystal output. Connects to crystal or

 

 

 

 

 

resonator in crystal oscillator mode. In RC mode

 

 

 

 

 

OSC2 Pin outputs  CLKOUT which has 1/4 the

 

 

 

 

 

freguency of OSC1,and denotes the instruction cycle

 

 

 

 

 

rate.

MCLR

4

4

I/P

ST

Master clear(reset) input/programming voltage input.

 

 

 

 

 

This pin is an active low reset to the device.

 

 

 

 

 

PORTA is a bi -directional I/O port.

RAO

17

17

I/O

TTL

 

RA1

18

18

I/O

TTL

 

RA2

1

1

I/O

TTL

 

RA3

2

2

I/O

TTL

 

RA4/TOCKI

3

3

I/O

ST

Can also be selected to be the clock input to the

 

 

 

 

 

TMR0 timer/counter.Output is open drain type.

 

 

 

 

 

PORTB is a-bi directional I/O port.PORTB can be

 

 

 

 

 

software programmed for internal weak pull-up on all

 

 

 

 

 

inputs.

RBO/INT

6

6

I/O

TTL

RBO/INT can also be selected as an external interrupt pin.

RB1

7

7

I/O

TTL

 

RB2

8

8

I/O

TTL

 

RB3

9

9

I/O

TTL

 

RB4

10

10

I/O

TTL

İnterrupt on change pin.

RB5

11

11

I/O

TTL

İnterrupt on change pin.

RB6

12

12

I/O

TTL/ST(2)

İnterrupt on change pin.Serial programming clock.

RB7

13

13

I/O

TTL/ST(2)

İnterrupt on change pin.Serial programming data.

Vss

5

5

P

*

Ground reference for logic and I/O pins.

Vdd

14

14

P

*

Positive supply for logic and I/O pins.

 

 

 

 

 

 

Legend: I=input

O=output

I/O=input/output

P=power

 

* =not used

TTL=TTL input

ST= Schmitt Trigger input

Note    1:This buffer is a Schmitt Trigger input when configured in RC oscillator mode and a CMOS input otherwise.

           2:This buffer is a Schmitt Trigger input when used in serial programming mode.

 

3.1 Zamanlayıcı Şeması / Talimat Döngüsü

 

(OSC1’den) Saat girdisi, Q1, Q2, Q3 ve Q4 olarak adlandırılan dört kısmen kaplamayan dördülleme saatlerini oluşturmak amacıyla içten dörde bölünmüştür. Dahili olarak, program sayacı (PC) her bir Q1’i artırmakta olup talimat program

hafızasından alınıp Q4 dahilinde talimat kaydı içine kilitlemektedir. Q1’den Q4’e doğru takip ederken talimat çözülüp gerçekleştirilmektedir. Saatler ve talimat gerçekleştirme akışı Şekil 3 – 2 dahilinde gösterilmiştir.

 

3.2 Talimat Akışı / Boru Hattı

 

Bir “Talimat Döngüsü” dört Q döngüsünden (Q1, Q2, Q3 ve Q4) oluşmaktadır. Talimat alımı ve gerçekleştirilmesi, çözülüp gerçekleştirme diğer bir talimat döngüsünü oluştururken, bir talimat döngüsünü oluşturmaktadır. Yine de, boru hattı dolayısı ile, her bir talimat etkin bir şekilde tek döngüde gerçekleştirmektedir. Eğer bir talimat program sayacının değişmesine neden olursa, (ÖR: GOTO) bu durumda talimatı tamamlamak için iki döngü gereklidir (Örnek 3 – 1).

Bir alım döngüsü, Q1 dahilinde artan Program Sayacı (PC) ile başlamaktadır.

Gerçekleştirme döngüsünde, alınan talimat, Q1 döngüsündeki “Talimat Kaydı” içine kapatılmaktadır. Bu talimat daha sonra Q2, Q3 ve Q4 döngüleri esnasında çözülür ve gerçekleştirilir. Veri hafızası Q2 esnasında okunmakta olup (işlenen okuması) ve Q4 esnasında yazılır (amaç yazılımı).

 

ŞEKİL 3-2: CLOCK/INSTRUCTION CYCLE

3.0 YAPISAL GÖRÜNÜM
PIC16CXX ailesinin yüksek performansı, RISC mikroişlemcilerinde sıkça 
bulunan bir dizi yapısal niteliğe atfedilebilir. 
Başlangıç olarak, PIC16CXX bir Harvard Yapısı kullanmaktadır. 
Bu yapı, ayrı hafızalardan kabul edilen program ve verilere sahiptir. 
Bu yüzden gereç bir program hafıza taşıyıcısı ve bir veri hafıza taşıyıcısına sahiptir. 
Bu, program ve verilerin aynı hafızadan edinildiği (aynı taşıyıcı üzerinden erişimler) 
geleneksel von Neumann yapısı üzerinde bant genişliğini geliştirmektedir. Program 
ve veri hafızasını ayırmak dahası 8 bit genişliğindeki veri dünyasından farklı olarak 
boyutlandırılması için talimatlara izin vermektedir. PIC16CXX opkodları, tek kelime 
talimatlarını mümkün kılan 14 bit genişliğindedir. Tam 14 bit genişliğinde program hafıza
 taşıyıcısı tek bir döngü dahilinde bir 14 bitlik talimat sağlamaktadır. 
İki kademeli bir boru hattı talimatların alınması ve gerçekleştirilmesini kısmen kaplamaktadır 
(Örnek 3 - 1). Sonuç olarak, program dalları için hariç tüm talimatlar tek bir döngüde 
gerçekleştirilmektedir (400 ns @ 10 MHz).PIC16C84, 1 K x 14 program hafızasına 
hitap etmektedir. Tüm program hafızası içeridedir.PIC16CXX gereçleri, kayıt dosyaları veya 
veri hafızasına doğrudan veya dolaylı olarak hitap etmektedir. Program sayacı dahil tüm 
özel işlev kayıtları veri hafızası dahilinde haritalandırılmıştır. Bir ortogonal (simetrik) talimat, 
herhangi hitap etme modunu kullanan herhangi bir kayıt hakkında herhangi bir işlemi 
gerçekleştirmesini mümkün kılacak şekilde ayarlamaktadır. Bu simetrik yapı ve 
"özel optimal durumlar"ın eksikliği, PIC16CXX ile programlamayı basit bir şekilde etkin hale 
getirmektedir. Ek olarak, öğrenim eğrisi belirgin bir şekilde azaltılmıştır.PIC16C84, 36 x 8 
SRAM ve 64 x 8 EEPROM veri hafızasına sahiptir.PIC16C XX gereçleri, bir 8 bitlik 
ALU ve çalışan bir kaydedici içermektedir. ALU genel amaçlı bir aritmetik birimdir. 
Çalışan bir kaydedici ve herhangi bir kayıt dosyasındaki veriler arasındaki aritmetik
 ve Boolean işlevlerini gerçekleştirmektedir.ALU, 8 bit genişliğinde ve ekleme, çıkarma 
değişim ve mantıksal işlem yeteneğidir. Aksi belirtilmediği sürece, aritmetik işlemler doğal 
olarak ikinin bileşenleridir. İki işlenen talimatları dahilinde, tipik olarak bir işlenen çalışan 
kaydedicisidir (W kaydedicisi), ve diğer işlenen bir dosya kaydedicisi veya bir anlık sabitidir. 
Tek işlenen talimatlarında, işlenen ya W kaydedicisi veya bir dosya kaydedicisidir.
W kaydedicisi, ALU işlemleri için kullanılan 8 bitlik bir çalışan kaydedicisidir. 
Yönlendirilmiş bir kayıt değildir.Gerçekleştirilen talimata bağlı olarak ALU, STATUS (Statü) 
kaydında Taşıma (C), Basamak Taşıma (DC) ve Zero (Sıfır) (Z) bitlerinin değerlerini etkileyebilir. 
C ve DC bitleri, çıkarımda sırasıyla alıcı ve basamak alıcı dış biti olarak çalışmaktadır. 
Örnekler için SUBLW ve SUBWF talimatlarına bakınız.PIC16C84  için basitleştirilmiş bir blok 
diyagramı Şekil 3 - 1 dahilinde gösterilmiş ve ilgili pim tanımı Tablo 3 - 1 dahilinde gösterilmiştir.
 
 
ŞEKİL 3-2: CLOCK/INSTRUCTION CYCLE

 

ÖRNEK 3-1: INSTRUCTION PIPELINE FLOW

 

 

 

 

 

 

 

 

 

1.MOVLW 55h

Fetch 1

Execute 1

 

 

 

 

 

2.MOVWF PORTB

 

Fetch 2

Execute 2

 

 

 

 

3.CALL SUB_1

 

 

Fetch 3

Execute 3

 

 

 

4. BSF  PORTA, BIT3

 

 

 

Fetch 4

Flush

 

 

 

 

 

 

 

 

Fetch SUB_1

Execute SUB_1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

All instructions are single cycle, except for any program branches.These take two cycles since the fetch

 

instruction is "flushed" from the pipeline while the new instruction  is being fetched and then executed.

 

 

 

 

 

 

 

 

 

 

4.0 HAFIZA ORGANİZASYONU

 

PIC16C84  dahilinde iki hafıza bloğu bulunmaktadır. Bunlar program hafızası ve veri hafızasıdır. Her bir blok kendine ait taşıyıcıya sahip olup bu sayede her bir bloğa erişim aynı salınım döngüsü esnasında oluşabilir.

Veri hafızası daha da genel amaçlı RAM ve Özel İşlev Kaydedicisi (SFR) olarak bölünebilir. Çekirdeği kontrol eden SFR’nin çalışması burada tanımlanmıştır. İkincil modülleri kontrol etmek için kullanılan SFR’ler, her bir münferit ikincil modülün tartışıldığı bölümde tanımlanmışlardır.

Veri hafıza alanı aynı zamanda veri EEPROM hafızasını da içermektedir. Bu hafıza doğrudan veri hafızasında haritalanmamış olmasına rağmen dolaylı olarak haritalanmıştır. Okumak / yazmak için veri EEPROM hafızasının adresini belirleyen dolaylı bir adres göstericisidir. Veri EEPROM hafızasının 64 byte’ı 0h – 3Fh adres aralığına sahiptir. EEPROM hafızası hakkında daha fazla detay Bölüm 7.0 dahilinde bulunabilir.

4.1 Program Hafızası Organizasyonu

PIC16CXX, 8K x 14 program hafıza boşluğunun hitap edilebileceği bir 13 bitlik program sayacına sahiptir. PIC16C84  için, sadece ilk 1 K x 14 (0000h – 03FFh) fiziksel olarak geliştirilmişlerdir (Şekil 4 – 1). Fiziksel olarak geliştirilmiş adres üzerinden bir konuma erişim etrafına yapışmasına neden olacaktır. Örnek olarak konumlar 20h, 420h, 820h, C20h, 1020h, 1420h, 1820h ve 1C20h aynı talimat olacaktır.

Sıfırlama vektörü 0000h’da olup kesme vektörü 0004h’dadır.  

ŞEKİL 4-1 : PROGRAM MEMORY MAP AND STACK

 

4.2 Veri Hafıza Organizasyonu

 

Veri hafızası iki alana bölünmüştür. İlki Özel İşlev Kaydedicileri (SFR) alanı olup ikincisi ise Genel Amaçlı Kaydediciler (GPR) alanıdır. SFR’ler, gerecin işleyişini kontrol etmektedir.

Veri hafızasının parçaları depolanmıştır. Bu, hem SFR alanı hem de GPR alanı içindir. GPR alanı, genel amaçlı RAM’in 116 byte’dan fazlasına izin vermek için depolanmıştır. SFR’nin depolanmış alanları, ikincil işlevleri kontrol eden kayıtlar içindir. Depolama, depo seçimi için kontrol bitlerinin kullanımını gerekli kılmaktadır. Bu kontrol bitleri STATUS kaydında bulunmaktadırlar. Şekil 4 – 2 veri hafıza harita organizasyonunu göstermektedir.

Talimatlar MOVWF ve MOWF değerleri W kaydından kayıt dosyasındaki (“F”) herhangi bir konuma hareket ettirebilirler, veya vesaire vesaire.

Tüm veri hafızası, ya doğrudan her bir kayıt dosyasının kesin adresini kullanarak veya dolaylı olarak Dosya Seçim Kaydı vasıtasıyla erişilebilir (Bölüm 4.5). Dolaylı adresleme, veri hafızasının depolanmış alanlarının içine erişim için RP1 : RP0 bitlerinin mevcut değerini kullanmaktadır.

Veri hafızası, genel amaçlı kaydediciler ve özel işlem kaydedicilerini kapsayan iki depo dahilinde bölünmüştür. Depo 0, RP0 bitini temizleyerek seçilmiştir (STATUS <5>). RP0 bit ayarı Depo 1’i seçmektedir. Her bir Depo 7Fh (128 byte)’a kadar genişlemektedir. Her bir Deponun ilk on iki konumu Özel İşlev Kaydedicileri için rezerve edilmiştir. Geriye kalan, statik RAM gibi geliştirilmiş Genel Amaçlı Kaydediciler’dir.

ŞEKİL 4-2: REGISTER FILE MAP

 

4.2.1 GENEL AMAÇLI KAYIT DOSYASI

 

Tüm gereçler aynı miktarda Genel Amaçlı Kayıt (GPR) alanına sahiptir. Her bir GPR 8 bit genişliğinde olup FSR vasıtasıyla dolaylı veya doğrudan erişilebilir (Bölüm 4.5).

Depo 1 dahilindeki GPR adresleri depo 0 dahilindeki adreslere yönlendirilmiştir. Örnek olarak, adres konumu 0Ch veya 8Ch aynı GPR’e erişecektir.

4.2.2  ÖZEL İŞLEV KAYDEDİCİLERİ

 

Özel İşlev Kaydedicileri (Şekil 4 – 2 ve Tablo 4 – 1), gereç işlevini kontrol etmek için CPU ve İkincil işlevler vasıtasıyla kullanılmışlardır. Bu kaydediciler statik RAM’dir.

Özel işlev kaydedicileri iki set dahilinde sınıflandırılabilir, çekirdek ve ikincil. Çekirdek işlevleri ile birlikte çalışanlar bu bölüm dahilinde tanımlanmıştır. İkincil niteliğin işlevleri ile ilgili olanlar özel nitelik için olan bölüm dahilinde tanımlanmıştır.

 

TABLO 4-1: REGISTER FILE SUMMARY

 

                              

                                       TABLO 4-1:

 

4.2.2.1  STATÜ KAYDI

 

STATUS kaydı, veri hafızası için depo seçim biti ve RESET statüsü, ALU’nun aritmetik statüsünü kapsamaktadır.

Herhangi bir kayıtta olduğu gibi, STATUS kaydı herhangi bir talimat için varış noktası olabilir. Eğer STATUS kaydı, Z, DC veya C bitlerini etkileyen bir talimat için varış noktası ise, bu durumda bu üç bite yazma engellenmiştir. Bu bitler, gereç mantığına bağlı olarak ayarlanmış veya silinmiştir. Dahası TO ve PD bitleri yazılabilir değildir. Bu yüzden, Varış Noktasında olduğu gibi STATUS kayıtlı bir talimatın sonucu beklenenden farklı olabilir.

Örnek olarak, CLRF STATUS üst üç biti temizleyecek ve Z bitini ayarlayacaktır. Bu STATUS kaydını 000u u1uu olarak bırakmaktadır (u = değişmemiştir).

Sadece BCF, BSF, SWAPF ve MOVWF talimatları STATUS kaydını değiştirmek için kullanılmalıdır, çünkü bu talimatlar herhangi bir statü bitini etkilemez.  

Not 1:

IRP ve RP1 bitleri (STATUS <7 . 6 >) PIC16C84  tarafından kullanılmamakta olup temizlenmiş olarak programlanmalıdır. Gelecek ürünler ile yukarı doğru uyumunu etkileyebileceğinden, genel amaçlı R / W bitleri olarak bu bitlerin kullanımı tavsiye EDİLMEMEKTEDİR.

Not 2:

C ve DC bitleri, çıkarımda sırasıyla alıcı ve basamak alıcısı biti olarak çalışmaktadır. Örnekler için SUBLW ve SUBWF talimatlarına bakınız.

Not 3:

STATUS kaydı, Z, DC veya C bitlerini etkileyen bir talimat için varış noktası olduğunda, bu üç bite yazılım engellenmiştir. Belirtilen bit(ler) gereç mantığına göre güncellenecektir.