Popis programové a datové paměti
Programová paměť je dostupná jen pro některé operace,
v zásadě slouží jen k uložení programu.
Můžeme ji použít k uložení konstant pomocí direktivy DB:
DB |
1,2,3,5,7 |
Do paměti se uloží 5 Byte dat |
Musíme ji použít k nastavení počátků pomocí direktivy ORG:
ORG ORG ORG ORG ORG ORG |
000h 003h 00Bh 013h 01Bh 023h |
První instrukce programu První instrukce obsluhy přerušení od INT0 První instrukce obsluhy přerušení od C/T0 První instrukce obsluhy přerušení od INT1 První instrukce obsluhy přerušení od C/T1 První instrukce obsluhy přerušení od sériového kanálu |
Datová paměť mikropočítače 8051 má velikost 128B
a lze ji externě rozšířit až na 64kB. Skládá se ze 4 bloků:
Blok | Adresa | Použití |
1 2 3 4 |
00h-07h 08h-0Fh 10h-17h 18h-1Fh 20h-2Fh 30h-7Fh 80h-FFh |
Banka 0 registrů R0-R7 Banka 1 registrů R0-R7 Banka 2 registrů R0-R7 Banka 3 registrů R0-R7 Bitově adresovatelný prostor Uživatelská paměť Registry speciální funkce |
Registry Speciální funkce:
Adresa | Název | Popis |
080h 081h 082h-083h 087h 088h 089h 08Ah+08Bh 08Ch+08Dh 090h 098h 099h 0A0h 0A8h 0B0h 0B8h 0D0h 0E0h 0F0h |
P0 SP DPTR PCON TCON TMOD TH0+TL0 TH1+TL1 P1 SCON SBUF P2 IE P3 IP PSW ACC B |
I/O brána 0 Ukazatel vrcholu zásobníku DPH+DPL - ukazatel do paměti Řízení napájení Řízení čítačů / časovačů Řízení čítačů / časovačů Čítač / časovač 0 Čítač / časovač 1 I/O brána 1 Řízení sériového kanálu Datový registr sériového kanálu I/O brána 2 Povolení přerušení I/O brána 3 Nastavení priotity přerušení Registr stavového slova Akumulátor (Střadač) Registr B |
Bitově adresovatelný prostor
7F 77 6F 67 5F 57 4F 47 3F 37 2F 27 1F 17 0F 07 |
7E 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E 16 0E 06 |
7D 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D 15 0D 05 |
7C 74 6C 64 5C 54 4C 44 3C 34 2C 24 1C 14 0C 04 |
7B 73 6B 63 5B 53 4B 43 3B 33 2B 23 1B 13 0B 03 |
7A 72 6A 62 5A 52 4A 42 3A 32 2A 22 1A 12 0A 02 |
79 71 69 61 59 51 49 41 39 31 29 21 19 11 09 01 |
78 70 68 60 58 50 48 40 38 30 28 20 18 10 08 00 |
02Fh 02Eh 02Dh 02Ch 02Bh 02Ah 029h 028h 027h 026h 025h 024h 023h 022h 021h 020h |
Způsoby adresování:
Přímá adresa Nepřímá adresa Bitové adresování |
Např: Např: Např: |
Mov Mov Mov Mov Mov Mov Movc setb clr |
80h,#5 P0,#5 R0,#030h @R0,#5 A,#2 dptr,#030h A,@A+dptr ACC.0 00h |
-Na adresu 80h zapíše přímou hodnotu 5 -totéž, ale adresu označujeme symbolicky -do R0 vložíme adresu -na adresu 030h vložíme hodnotu 5 -do akumulátoru vložíme tzv. offset -do DPTR vložíme tzv. bázovou adresu -do A načteme hodnotu z adresy 032h prog.paměti -nastaví nultý bit akumulátoru -nuluje nultý bit adresy 020h |