Pamäte Registre Zbernice
Rozdelenie pamäťového priestoru Mikroprocesor 8051 má oddelené pamäťové priestory pre pamäť programov a pamäť dát, ktoré sú prístupné rôznymi inštrukciami. Jednočipový mikropočítač Intel 8051 má 3 pamäťové moduly: 64kB pamäť programu – interná ROM aj externá ROM 64kB pamäť vonkajšia – pamäť dát – externá RAM 4kB vnútorná pamäť programu – interná ROM 256B vnútorná pamäť dát – interná RAM
Adresový priestor pamäte programu – ROM interná časť – iROM (vo vnútri jednočipového mikropočítača) externá časť – eROM (samostatný externý modul) Príznak EA určí, ktorá časť ROM bude použitá Ak EA = 1, potom CPU realizuje program z vnútornej ROM, pokiaľ adresa neprekročí hodnotu 0FFFH. Ak je adresa v rozmedzí 1000H až FFFFH, potom CPU realizuje program z externej ROM. Ak EA = 0, potom všetky inštrukcie alebo príkazy sa vyberajú z externej ROM.
Adresový priestor pamäte dát – RAM Vnútorná časť – iRAM Vonkajšia časť – eRAM Vnútorná pamäť dát (iRAM) sa delí na 2 fyzicky oddelené bloky: nižších 128 Bytov RAM vyšších 128 Bytov tvoriacich registre špeciálnych funkcií (SFRs)
Použitie externých pamätí Pre prácu s dátami v externých pamätiach sa používajú špeciálne funkcie (napr. MOVX, MOVC) Zároveň sa pri: Čítaní z externej pamäte ROM aktivuje signál PSEN* (nastaví sa na logickú 0) Čítaní z externej pamäte RAM aktivuje signál RD* (nastaví sa na logickú 0) Zapisovaní do externej pamäte RAM aktivuje signál RW* (nastaví sa na logickú 0)
Štruktúra vnútornej RAM FFH RAM má 256B rozdelených na dve časti Prvá časť - FREE RAM (vnútorná dátová RAM) - zahŕňa byty od adresy 00H až do 7FH. Druhá časť – SFR (špeciálne funkčné registre) – zahŕňa byty od adresy 80H až do FFH. SFR špeciálne funkčné registre 128 byteov 80H 7FH FREE RAM 128 byteov 00H
Banky registrov Banky registrov sú 8 bytové (8 registrov po 1 byte) 7FH Banky registrov Bytové adresovanie 30H 2FH 7F 7E 7D 7C 7B 7A 79 78 77 76 75 74 73 72 71 70 6F 6E 6D 6C 6B 6A 69 68 67 66 65 64 63 62 61 60 5F 5E 5D 5C 5B 5A 59 58 57 56 55 54 53 52 51 50 4F 4E 4D 4C 4B 4A 49 48 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 2EH Banky registrov sú 8 bytové (8 registrov po 1 byte) Umožňujú využívať rôzne byty ako registre R0 – R7 To, ktorá banka je používaná určuje stavové slovo programu Výber banky registrov je uskutočňovaný pomocou definovania obsahu registrov RS0 a RS1 v stavovom slove 2DH 2CH 2BH 2AH 29H 28H 27H 26H 25H 24H 23H 22H 21H 20H RS0 RS1 Banka 1 2 3 1FH Banka 3 18H 17H Banka 2 10H 0FH Banka 1 08H 07H Banka 0 00H
Bitovo adresovateľná oblasť (zelená) 7FH Bytové adresovanie 30H 2FH 7F 7E 7D 7C 7B 7A 79 78 77 76 75 74 73 72 71 70 6F 6E 6D 6C 6B 6A 69 68 67 66 65 64 63 62 61 60 5F 5E 5D 5C 5B 5A 59 58 57 56 55 54 53 52 51 50 4F 4E 4D 4C 4B 4A 49 48 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 Bity v tejto oblasti môžu byť spracúvané jedným z nasledovných spôsobov: Priamym adresovaním bytov 20H až 2FH. Pomocou príkazov pre manipuláciu s bitmi. V tomto type príkazu je každý bit adresovaný priamo a má svoju vlastnú 8-bitovú adresu. Napríklad príkaz SETB 0F nastaví bit s adresou 0F na hodnotu 1. 2EH 2DH 2CH 2BH 2AH 29H 28H 27H 26H 25H 24H 23H 22H 21H 20H 1FH Banka 3 18H 17H Banka 2 10H 0FH Banka 1 08H 07H Banka 0 00H
Bytovo adresovateľná oblasť (modrá) 7FH Bytové adresovanie 30H 2FH 7F 7E 7D 7C 7B 7A 79 78 77 76 75 74 73 72 71 70 6F 6E 6D 6C 6B 6A 69 68 67 66 65 64 63 62 61 60 5F 5E 5D 5C 5B 5A 59 58 57 56 55 54 53 52 51 50 4F 4E 4D 4C 4B 4A 49 48 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 Obyčajná oblasť priamej RAM, ktorá ma 80 bytov a siaha od adresy 30H do 7F V tejto oblasti už nie je možné pristupovať priamo k jednotlivým bitom, ale len k bytom 2EH 2DH 2CH 2BH 2AH 29H 28H 27H 26H 25H 24H 23H 22H 21H 20H 1FH Banka 3 18H 17H Banka 2 10H 0FH Banka 1 08H 07H Banka 0 00H
SFR Druhá časť pamäte RAM nazvaná SFR obsahuje byty, ktoré sú v skutočnosti špeciálne registre Existujú osobitné príkazy pre prácu s takýmito registrami Každý z týchto registrov má svoju funkciu. Registre sú usporiadané trocha neobvyklým spôsobom – nie všetky byty SFR sú využité a sú rezervované Intel-om pre ďalší vývoj I8051
Popis registrov Meno Skratka Adresa Popis Akumulátor ACC E0H Najpoužívanejší register B register B F0H Používaný hlavne pri násobení a delení Stavové slovo programu PSW D0H Jeho bity slúžia ako príznaky a na prepínanie bánk registrov Ukazovateľ zásobníka SP 81H Vysvetlíme neskôr na príklade Ukazovateľ dát DPH 83H Používa sa na nepriame adresovanie (vrchný byte) DPL 82H Používa sa na nepriame adresovanie (spodný byte) Port 0 P0 80H Vstupno/výstupné porty Port 1 P1 90H Port 2 P2 A0H Port 3 P3 B0H Riadenie priority prerušení IP B8H Riadenie povoľovania prerušení IE A8H Riadenie módu časovača/čítača TMOD 89H Riadenie spôsobu použitia čítača/časovača Riadenie časovača/čítača TCON 88H Riadenie čítača/časovača Časovač 0 TH0 8CH Horný byte časovača 0 TL0 8AH Spodný byte časovača 0 Časovač 1 TH1 8DH TL1 8BH Riadenie sériovej komunikácie SCON 98H Určuje spôsob sériovej komunikácie Sériová dátová vyrovnávacia pamäť SBUF 99H Využíva sa na uloženie sériovo prenášaných dát Riadenie napájania PCON 87H Umožňuje odpojenie CPU od časovača
Výber údajov z pamäte CPU 330 330 461 čítaj z pamäte 135 371 811 461 335 334 333 332 331 330 329 328 327 326 CPU 461 461 čítaj z pamäte
Zbernice
Zbernice Sú to paralelne vedené vodiče, po ktorých sa vysiela binárny kód ku rôznym častiam počítača Podľa toho, aké signály sa vysielajú po zbernici, rozlišujeme zbernice na: Dátovú – prenášajú sa po nej dáta Adresovú – prenášajú sa po nej adresy Riadaciu – prenášajú sa po nej riadiace signály
Dátová zbernica Po tejto zbernici sa prenášajú dáta k rôznym zariadeniam počítača napríklad medzi pamäťou a procesorom Podľa šírky zbernice sa počítače delia na 8,16,32,64 bitové Počítač Intel 8051 má 8 bitovú dátovú zbernicu a preto ho zaradzujeme medzi 8 bitové počítače
Adresová zbernica Vysielajú sa po nej adresy zariadení a adresy pamäťových buniek v RAM pamäti V počítači Intel 8051 je 16 bitová adresová zbernica, ktorá dokáže „zaadresovať“ 216=65535 pamäťových buniek
Riadiaca zbernica Slúži na prenos riadiacich signálov medzi zariadeniami počítača Vysiela napríklad signály, ktoré sprístupňujú pamäť pre čítanie resp. zapisovanie alebo napr. prenos kódu inštrukcie z pamäte do inštrukčného registra