24
Mikroprotsessorid PIC16F876A MÄLUJAOTUS Mikroprotsessorid 2010 Alvo Aabloo

Mikroprotsessorid

Embed Size (px)

DESCRIPTION

Mikroprotsessorid. PIC16F876A MÄLUJAOTUS. RAM + Registrid 512 baiti Vaja vähemalt 9 bitti Mälu on jagatud bankadeks Kuskil on veel 2 bitti Need on mälus endas!. 386 Baiti. See, missugune Bank on aktiivne, on määratud registris STATUS. PROGRAMMI MÄLU. PROGRAMMI MÄLU. - PowerPoint PPT Presentation

Citation preview

Alvo Aabloo

Mikroprotsessorid

PIC16F876A MÄLUJAOTUS

Mikroprotsessorid 2010

Alvo AablooMikroprotsessorid 2010

Alvo Aabloo

RAM + Registrid512 baiti

Vaja vähemalt 9 bitti

Mälu on jagatud bankadeks

Kuskil on veel 2 bitti

Need on mälus endas!

Mikroprotsessorid 2010

Alvo Aabloo

386 Baiti

Mikroprotsessorid 2010

Alvo AablooMikroprotsessorid 2010

Alvo Aabloo

See, missugune Bank on aktiivne,

on määratud registris STATUS

Bank RP1,RP0 Address

0 00 000h-07Fh

1 01 080h-0FFh

2 10 100h-17Fh

3 11 180h-1FFh

7 6 5 4 3 2 1 0

x3h STATUS RP1 RP0

Mikroprotsessorid 2010

Alvo Aabloo

PROGRAMMI MÄLU

Mikroprotsessorid 2010

Alvo Aabloo

PROGRAMMI MÄLU

2007h Configuration word

CALL, RETURN

Aadress – 13 bitti

Programm – 14 bitti

CP – Code Protection

Stack – 13 bitti

Mikroprotsessorid 2010

Alvo Aabloo

PROGRAMMI MÄLU

Programmi mälus on programmJärjestik programm läheb algusest kuni lõpuniMeie PICil on 8192x14bittiSelleks et seda addresseerida on vaja 13bitti ...13bitine loendur (PC)Programmis (goto, call) ülimalt 11bittiOn 2k käsused blokid. (0-7FF,800-FFF,1000-17FF,1800-1FFF)Osa aadressist on registris PCLATH (Program Counter Latch High)See mõjub ainult käskude “GOTO” ja “CALL” ajal.

Mikroprotsessorid 2010

Alvo Aabloo

STACK

Mikroprotsessorid 2010

Alvo Aabloo

STACK1

2

3

4

5

6

7

8

CALL

PC

RETURN

InterruptKatkestus

RETFIE

Mikroprotsessorid 2010

Alvo Aabloo

1

5

37

2

8

6

4

PC1

CALL1

STACK

Mikroprotsessorid 2010

Alvo Aabloo

2

6

48

3

1

7

5

PC1

CALL1

PC2

CALL2

STACK

Mikroprotsessorid 2010

Alvo Aabloo

2

6

48

3

1

7

5

PC1

CALL1

PC2

CALL2 RETURN2

STACK

Mikroprotsessorid 2010

Alvo Aabloo

1

5

37

2

8

6

4

PC1

CALL1 RETURN2CALL2 RETURN1

STACK

Mikroprotsessorid 2010

Alvo Aabloo

8

4 PC4

2 PC

26

PC

6

1 PC1

7 P

C7

5 P

C5

3 PC3

PC8

CALL8

STACK

Mikroprotsessorid 2010

Alvo Aabloo

PC11

5 PC5

3 PC

37

PC

7

2 PC2

8 P

C8

6 P

C6

4 PC4

PC9

CALL8 CALL9

STACK

Mikroprotsessorid 2010

Alvo Aabloo

1FFFh + 1 = 0000h

Mikroprotsessorid 2010

Alvo Aabloo

Käsk, mis kasutab registrit Indirect addr, pöördub tegelikult selle registri poole, mille aadress on registris FSR.

Registri aadress on 9 bitti, aga FSR-i mahub ainult 8

9. bitt on registris STATUS

Kaudne adresseerimine – Indirect addressing

7 6 5 4 3 2 1 0

x3h STATUS IRP RP1 RP0

Mikroprotsessorid 2010

Alvo Aabloo

Kaudne adresseerimine – Indirect addressing

7 6 5 4 3 2 1 0

x3h STATUS RP1 RP0

Kirjutada aadressile 0x20h 0xFFh

Sea IRP nulliks

IRP0

Kirjuta FSR-i 0x20h

Kirjuta aadressile 0 0xFFh

Kirjuta aadressile 0x20h 0xFFh

0xFF

Mikroprotsessorid 2010

Alvo Aabloo

indirect adresseerimine Aadress peab

olema kirjutatud spetsiaalsesse registrisse (FSR 0x04)

Tulemuse lugemine toimub teisest spetsiaalsest registrist (INDF 0x00)

IRP (1-2/2-3 bank)

Mikroprotsessorid 2010

Alvo Aabloo

7 6 5 4 3 2 1 0

IRP RP1 RP0

Kaudne adresseerimine – Indirect addressing

Mikroprotsessorid 2010

Alvo Aabloo

7 6 5 4 3 2 1 0

IRP RP1 RP0 Z DC C

STATUS

Z=1 – eelmise operatsiooni tulemus oli 0Z=0 – eelmise operatsiooni tulemus ei olnud 0C=0 – eelmisel operatsioonil toimus MSB-st carry outC=0 – eelmisel operatsioonil ei toimunud MSB-st carry outDC=0 – eelmisel operatsioonil toimus carry 3.bitist 4-ndasseDC=0 – eelmisel operatsioonil ei toimunud carry 3.bitist 4-ndasse

Mikroprotsessorid 2010

Alvo Aabloo

7 6 5 4 3 2 1 0

IRP RP1 RP0 _TO _PD Z DC C

STATUS

_TO 0 – WatchDogi Time-Out_PD 0 - Sleep

Mikroprotsessorid 2010