Download ppt - Opakovanie 8051

Transcript
Page 1: Opakovanie  8051

Opakovanie 8051

Page 2: Opakovanie  8051

VIIČíselné sústavy

10110010

8EH

9415 10

2

7528

Page 3: Opakovanie  8051

Základné pojmy

• Číselná sústava je systém jednoznačných pravidiel pre zobrazenie číselných hodnôt pomocou konečného počtu znakov (číslic, cifier)

• Číslo je reprezentované v danej číselnej sústave postupnosťou číslic

• Číselnú sústavu charakterizuje z vonkajšieho pohľadu použitá množina znakov - číslic

Page 4: Opakovanie  8051

Delenie číselných sústav

• Polyadické (pozičné) – význam číslice vždy závisí od jej pozície v zápise

• Pozičné sústavy sú napr. desiatková, osmičková, dvojková, šestnástková

• Nepolyadické (nepozičné) – význam číslice nemusí vždy závisieť od jej pozície v zápise

• Nepozičné sústavy sú napr. rímska alebo „pivná“

• Vo výpočtovej technike sa používajú len pozičné sústavy

Page 5: Opakovanie  8051

PríkladPríklad:

Preveďte číslo 39 z desiatkovej do dvojkovej sústavy.

Dané:Nc=Nc0=39z=2A=?

Vzťahy:ai = zvyšok po delení (Nci /z)

Nci je celočíselný podiel Nci-1/z

i Nci Nci+1 ai

0 39 39/2=19 39%2= 1

1 19 19/2=9 19%2= 1

2 9 9/2=4 9%2= 1

3 4 4/2=2 4%2= 0

4 2 2/2=1 2%2= 0

5 1 1/2=0 1%2= 1

VÝZNAM

(39)10 = (100111)2

Page 6: Opakovanie  8051

PríkladPríklad:

Preveďte číslo 100111 z dvojkovej do desiatkovej sústavy.

Dané:z=2a5=1,a4=0,a3=0,

a2=1,a1=1,a0=1

Nc=?

Vzťahy:

(100111)2 = (39)10

n

i

ii zaNc

0

Riešenie:

Nc = a5*25 + a4*24 + a3*23 + a2*22 + a1*21 + a0*20

Nc = 1*32 + 0*16 + 0*8 + 1*4 + 1*2 + 1*1 Nc = 32 + 0 + 0 + 4 + 2 + 1Nc = 39

Page 7: Opakovanie  8051

PríkladPríklad:Preveďťe číslo 1110011.1101 z dvojkovej do osmičkovej sústavy

Riešenie:Základ dvojkovej sústavy je 2=21, teda j=1. Základ osmičkovej sústavy je8=23, teda k=3.

1. K celej časti pridáme nuly zľava tak, aby počet číslic bol násobkom k.Počet číslic celej časti je 7. Najbližší násobok čísla 3 je 9. Teda celá časťčísla bude mať 9 číslic => 001110011

2. K desatinnej časti pridáme nuly sprava tak, aby počet číslic bol násobkom k.

Počet číslic desatinnej časti je 4. Najbližší násobok čísla 3 je 6. Tedadesatinná časť čísla bude mať 6 číslic => 110100

Page 8: Opakovanie  8051

Príklad3. Z cifier ai vytvoríme k-tice, ktoré potom prevádzame na cifry pi. Teda z cifier

čísla 001110011.110100 vytvoríme trojice, ktoré potom prevádzame.

001 | 110 | 011 . 110 | 100

1 6 3 . 6 4

(1110011,1101)2 = (163,64)8

Page 9: Opakovanie  8051

PríkladPríklad:Preveďťe číslo 163.64 z osmičkovej do dvojkovej sústavy

Riešenie:Základ osmičkovej sústavy je 8=23, teda j=3. Základ dvojkovej sústavy je2=21, teda k=1.

1. Jednotilvé číslice ai prevádzame na trojice

1 6 3 . 6 4

001 110 011 . 110 100

(1110011,1101)2 = (163,64)8

Page 10: Opakovanie  8051

ZhrnutieZo sústavy so základom 10 do sústavy so základom j

Delíme číslom j a zapisujeme zvyšky po delení. Výsledné číslo tvoria zvyšky po delení čítané odzadu

Zo sústavy so základom j do sústavy so základom 10

Násobíme jednotlivé číslice odzadu číslom 10i, kde i je pozícia čísla (začíname 0) a potom spočítame

Zo sústavy so základom j do sústavy so základom k, j≠k≠10

Najprv prevedieme číslo zo sústavy so základom j do desiatkovej a potom z desiatkovej do sústavy so základom k

Zo sústavy so základom 2 do sústavy so základom j, kde j je mocnina dvoch (4,8,16)

Nech j=2k. Potom číslo v dvojkovej sústave rozdelíme od konca na k-tice a jednotlivé čísla premieňame do požadovanej sústavy

Zo sústavy so základom j, kde j je mocnina dvoch (4,8,16) do sústavy so základom 2

Nech j=2k. Potom jednotlivé číslice čísla v sústave so základom j rozpisujeme na k-tice čísel v dvojkovej sústave

Page 11: Opakovanie  8051

Reprezentáciainformácie v

počítači

Page 12: Opakovanie  8051

Úvod

• Informácie v počítači sa reprezentujú prostredníctvom hodnôt určitých fyzikálnych veličín

• V reálnych počítačoch môžu tieto fyzikálne veličiny nadobúdať hodnoty iba z istej konečnej množiny hodnôt

• Otázka: Aká fyzikálna veličina je nositeľom informácie v počítačoch?

• Odpoveď: Elektrické napätie.

Page 13: Opakovanie  8051

Analógové zobrazovanie informácií

• Pri analógovom zobrazení ide o spojité zobrazenie, tj. každej hodnote vstupnej veličiny zodpovedá istá hodnota fyzikálnej veličiny (ktorá je nositeľom informácie)

• Tento spôsob zobrazenia sa používal v analógových počítačoch a v súčasnosti sa s ním nestretneme.

Page 14: Opakovanie  8051

Číslicové zobrazenie informácií

• Pri číslicovom zobrazovaní informácie sa na uchovanie informácií používajú pamäťové prostriedky, ktoré sa nazývajú registre a pamäte.

• Registre a pamäte sa skladajú z pamäťových elementov, tzv. buniek, ktoré sú schopné uchovávať jednu z dvoch hodnôt a to:– H (high) – vysokú úroveň fyzikálnej veličiny– L (low) – nízku úroveň fyzikálnej veličiny

Page 15: Opakovanie  8051

Číslicové zobrazenie informácií

• Týmto dvom hodnotám môžeme priradiť logické hodnoty 0 a 1.

• V kladnej logike reprezentuje H logickú 1 a L logickú 0. V zápornej je to naopak.

• Register je usporiadaná n-tica pamäťových buniek. Počet týchto buniek vyjadruje veľkosť registra.

• Otázka: V čom sa vyjadruje veľkosť registrov a pamätí?

• Odpoveď: V bitoch.

Page 16: Opakovanie  8051

Registre

• Jednotlivé bity registra sa označujú sprava doľava a číslovanie bitov začína od 0.

• Posledný bit osembitového registra bude mať poradové číslo 7.

0. bit

1. bit

(n-1). bit

Page 17: Opakovanie  8051

Pamäte

• Pamäť je množina rovnakých buniek, z ktorých každá je samostatne identifikovateľná svojou pozíciou - adresou.

• Pre reprezentáciu informácií v pamäti čislicového počítača sa používa kódovanie pomocou postupnosti číslic 0 a 1 .

• Sú to číslice, ktoré používa dvojková (binárna) číselná sústava. Preto uvedené postupnosti 0 a 1 budeme nazývať binárny kód .

Page 18: Opakovanie  8051

Pamäte vs. registre

• Pamäte majú väčšiu veľkosť ako registre, ich veľkosť sa udáva v násobkoch Byte-ov

• Registre majú menšiu veľkosť ako pamäte, ich veľkosť sa udáva v bitoch alebo byte-och

• V registroch nás väčšinou „zaujímajú“ jednotlivé bity a v pamätiach byte-y

Page 19: Opakovanie  8051

Typy informácií

• V číslicovom počítači sú binárne (bitovo) zobrazované (kódované) všetky druhy informácií: – údaje (údajové štruktúry) -

informácie, ktoré sú predmetom alebo výsledkom spracovania (operandy, výsledky)

– inštrukcie - informácie, ktoré definujú spôsob spracovania (operácie s operandami, operácie bez operandov)

Page 20: Opakovanie  8051

ArchitektúryČP

Page 21: Opakovanie  8051

Základné pojmy

• Počítač je stroj na spracovanie údajov, ktorý pracuje samočinne podľa programu vopred zadaného a uloženého v pamäti.

• Program je postupnosť inštrukcií vyjadrujúcich postup riešenia určitého problému

• Procesor je základná jednotka počítača, t.j. logický automat pre spracovanie informácií.

Page 22: Opakovanie  8051

Procesor

• Hlavnými stavebnými prvkami procesora je ALJ a RJ

• ALJ – aritmeticko logická jednotka slúži na vykonávanie aritmetických a logických operácií ( v angličtine sa označuje ako ALU )

• RJ – riadiaca jednotka pomocou riadiacich signálov riadi činnosť počítača

Page 23: Opakovanie  8051

Procesor

• Procesor okrem ALJ a RJ obsahuje ešte:– Registre (ACC, B, ...)– Programové počítadlo (PC)– Register inštrukcií– Hodiny– Dekóder inštrukcií– ...

Page 24: Opakovanie  8051

Architektúra von Neumanna

Page 25: Opakovanie  8051

Architektúra von Neumanna

• Spojenie pamäte + ALU + RJ sa nazýva centrálna jednotka.

• Styk počítača s okolím sa realizuje prostredníctvom V/V obvodov (jednotiek)

• Sled inštrukcií – program, je uložený v pamäti, ktorej často hovoríme operačná pamäť.

• Činnosť ČP riadi riadiaca jednotka.

Page 26: Opakovanie  8051

Architektúra von Neumanna

• Počítač von Neumanna používa jednu pamäť pre program a pre dáta a jeho jadrom je procesor, ktorý pozostáva z:– Inštrukčného registra– Čítača inštrukcií– Akumulátora– ALJ– RJ

Page 27: Opakovanie  8051

Architektúra von Neumanna

ALJ

A B

C

Inštrukčnýregister

Programovépočítadlo

Akumulátor

n-bitová obojsmernázbernica

Page 28: Opakovanie  8051

Architektúra von Neumanna

• V inštrukčnom registry je v uložený kód práve vykonávanej inštrukcie

• V čítači inštrukcií je v uložená adresa nasledujúcej inštrukcie. Inkrementuje sa po vykonaní inštrukcie.

• Akumulátor – zapamätáva dáta, ktoré budú spracovávané alebo výsledky operácií

• ALJ vykonáva operácie s dátami na vstupoch A,B a výsledok je na výstupe C

• Architektúra je sústredená okolo obojsmernej zbernice, po ktorej sa prenášajú dáta aj inštrukcie

Page 29: Opakovanie  8051

Architektúra von Neumanna

• Hlavnou zásadou von Neumana je, že počítač by sa nemal prispôsobovať potrebám konkrétnej aplikácie svojou vnútornou štruktúrou, ale len programovým vybavením.

• Typické znaky architektúry riešenia von Neumana:– pevná inštrukčná sada– pevný operačný kód– pevný dekodér inštrukcií.

Page 30: Opakovanie  8051

Harvardská architektúra

Page 31: Opakovanie  8051

Harvardská architektúra

• Používa dve oddelené pamäte pre dáta a program

Pamäť dátRiadiaca

pamäť

ALJRiadiacajednotka

Page 32: Opakovanie  8051

Harvardská architektúra

• Riadiaca pamäť obsahuje informácie o riadení systému.

• Informácie z tejto riadiacej pamäte sú dekódované riadiacou jednotkou, ktorá zabezpečuje následnosť výberu riadiacich signálov z riadiacej pamäti.

• Podstatným znakom, ktorý odlišuje túto architektúru od von Neumanna je, že zmenou obsahu riadiacej pamäte je možné meniť riadenie systému, tj. meniť inštrukčnú sadu systému a operačný kód.

Page 33: Opakovanie  8051

Rozdiel architektúr

Page 34: Opakovanie  8051

Rozdiel architektúr

1. PC register u von NEUMANovskej koncepcie adresuje RAM pamäť a u HARWARDskej adresuje  ROM pamäť.   

2. HARWARDská architektúra nemá v inštrukčnom cykle krok  prenášajúci kód inštrukcie z RAM pamäte do Registra inštrukcií.  ROM pamäť supluje funkciu Registera inštrukcií. Jej výstup je priamo napojený na RJ a tak stačí mať v  PC registri adresu inštrukcie, ktorá sa bude vykonávať. 

3. U von NEUMANovskej koncepcie v RAM sa nachádzajú inštrukcie aj dáta (t.j. premenné aj konštanty), u HARWARDskej sa v RAM nachádzajú z len premenné dáta  a v ROM sa nachádzajú inštrukcie a z dát len konštanty (zapísujú sa tam spolu s programom). 

Page 35: Opakovanie  8051

Bloková štruktúra

mikropočítača Intel 8051

Page 36: Opakovanie  8051

CPU

ROM RAM

Vstupná jednotka Výstupná jednotka

Stykovájednotka

Magnet.pamäť

Hodiny

adresová zbernica

dátová zbernica

riadiaca zbernica

Bloková schéma

Page 37: Opakovanie  8051

CPU

• CPU (central processor unit) – centrálna procesorová jednotka slúži na vykonávanie inštrukcií a riadi činnosť počítača

• CPU=ALJ + RJ

• CPU potrebuje k svojej činnosti tzv. hodiny, ktoré udávajú taktovaciu frekvenciu, teda počet impulzov za sekundu, počas ktorých dokáže CPU vykonať práve jednu operáciu

Page 38: Opakovanie  8051

Pamäte

• Mikropočítač Intel 8051 má dva typy pamätí:– ROM – read only memory, nazýva sa tiež

riadiaca pamäť a obsahuje inštrukcie, ktoré má vykonať procesor

– RAM – random access memory, nazýva sa tiež pamäť dát a obsahuje dáta, ktoré vstupujú do výpočtu, resp. z neho vystupujú

Page 39: Opakovanie  8051

Vstupno-výstupné jednotky

• Realizujú styk počítača s okolím• Vstupná jednotka slúži na načítanie

informácií z okolia počítača, je akýmisi „očami a ušami“ počítača

• Výstupná jednotka poskytuje informácie z počítača do okolia, je akýmisi „ústami“ počítača

• V/V jednotky komunikujú so svojim okolím prostredníctvom elektrických signálov

Page 40: Opakovanie  8051

Porty

• Ako vstupno-výstupné jednotky slúžia v ČP 8051 takzvané porty

• 8051 má 4 porty (P0 až P3)• Na porty je možné zapisovať údaje

alebo z nich môžeme údaje čítať• Údaje, ktoré chceme zapísať/čítať

zapisujeme/čítame do/z RAM (oblasť SFR), kde má každý port vyhradené svoje miesto o veľkosti 1B

Page 41: Opakovanie  8051

Styková jednotka a magnetická pamäť

• Magnetická pamäť je prídavná pamäť, ktorá sa dá pripojiť ako ďalšia RAM v prípade, že základná RAM nepostačuje k riadnemu chodu programu

• Styková jednotka slúži na styk počítača s magnetickou pamäťou

Page 42: Opakovanie  8051

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

Page 43: Opakovanie  8051

Púzdro a piny 8051

Page 44: Opakovanie  8051

Porty P0-P3

• P0 - P3 sú tvorené špeciálnym zapojením registrov, ktoré umožňuje využívať porty oboma smermi.

• Aby sme mohli prečítať vstupujúci údaj z pinu daného portu, musíme najprv na port  vyslať logickú "1". Pri reštarte počítača sa tento stav nastavuje automaticky.

Page 45: Opakovanie  8051

Pin EA (External Access)

• Má význam len pre I8051 a ovplyvňuje používanie CODE memory (ROM) v ktorej sa nachádza programový kód.

• V prípade že EA = 0 tak sa program vykonáva iba z vonkajšej CODE pamäti.

• Ak sa EA = 1 potom sa kombinuje vnútorná pamäť pre kód od adresy 0-0FFFH a externá pamäť 1000H-FFFFH.

• Do prekrytej externej pamäte (internou pamäťou) sa pristupuje cez rozdielne inštrukcie.

Page 46: Opakovanie  8051

ALE, PSEN*, RD*, RW*• ALE - Adress Low Enable

– Pretože nižších 8 bitov adresovej zbernice sa musí deliť o port P0 s dátovou zbernicou, rieši sa to v priebehu inštrukčného cyklu tak, že najprv sa na porte objaví adresa a jej prítomnosť signalizuje signál ALE.

– Ten sa využíva na zápis adresy do pomocných externých registrov.

– Po odovzdaní adresy signál ALE sa vracia na pôvodnú hodnotu "1" a port P0 je uvoľnený pre dátovú zbernicu.  

• PSEN*,RD*,WR* – Sú riadiace signály, ktoré sú generované pri vykonávaní

inštrukcií MOV,  MOVX a MOVC. – Spolu s Adresnou a  Dátovou zbernicou  (Porty P0 a P1) a so

signálom ALE sa podieľajú na komunikácii s externou ROM pamäťou (PSEN* - čítanie) a s externou RAM pamäťou (RD*- čítanie, WR*- zápis).

– Hviezdička (*) znamená, že signál je aktívny, ak je na príslušnom pine logická 0

Page 47: Opakovanie  8051

Ostatné piny

• INT0*, INT1* - obsluha externých prerušení• RXD, TXD – pin pre prijímanie a vysielanie

údajov pri sériovej komunikácii dvoch zariadení

• T0,T1 umožňujú riadiť vnútorné časovače pre synchronizáciu toku dát

• VCC, GND – pin pre napájanie mikropočítača (VCC) a pre uzemnenie mikropočítača (GND)

Page 48: Opakovanie  8051

Inštrukčný cyklus

Page 49: Opakovanie  8051

Inštrukčný cyklus

• Je to postupnosť krokov, počas ktorých procesor vyberie inštrukciu, dekóduje inštrukciu, spracuje inštrukciu a uloží výsledky vykonania inštrukcie

• Po ukončení IC sa programové počítadlo zvýši o požadovanú hodnotu, najčastejšie o 1

Page 50: Opakovanie  8051

Fázy inštrukčného cyklu

• F (Fetch) – fáza výberu inštrukcie• D (Decode) – fáza dekódovania

inštrukcie• O (Operate) – fáza výberu operandu• E (Execute) – fáza vykonania

inštrukcie • S (Store) – fáza uloženia výsledku

Page 51: Opakovanie  8051

Vývojový diagram IC

ŠTART

Vyslanie adresyinštrukcie

Prenos inštrukcie zROM do dekódera

Dekódovanieoperačného kódu

InštrukcieNastavenie novej

hodnoty PC

Výber operandov

Vykonanie inštrukcie Uloženie výsledku

Page 52: Opakovanie  8051

PamäteRegistreZbernice

Page 53: Opakovanie  8051

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

Page 54: Opakovanie  8051

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.

Page 55: Opakovanie  8051

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)

Page 56: Opakovanie  8051

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)

Page 57: Opakovanie  8051

Štruktúra vnútornej RAM

• 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

FREE RAM

128 byteov

FFH

80H7FH

00H

Page 58: Opakovanie  8051

Banka 0

Banka 1

Banka 2

Banka 3

Bytovéadresovanie

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

00H

08H

10H

18H

07H

0FH

17H

1FH

20H

21H

22H23H

24H

25H26H

27H

28H29H

2AH2BH

2CH

2DH2EH

2FH30H

7FH

•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

RS0 RS1 Banka

0 0 0

0 1 1

1 0 2

1 1 3

Banky registrov

Page 59: Opakovanie  8051

Bitovo adresovateľná oblasť (zelená)

• 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.

Banka 0

Banka 1

Banka 2

Banka 3

Bytovéadresovanie

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

00H

08H

10H

18H

07H

0FH

17H

1FH

20H

21H

22H23H

24H

25H26H

27H

28H29H

2AH2BH

2CH

2DH2EH

2FH30H

7FH

Page 60: Opakovanie  8051

Bytovo adresovateľná oblasť (modrá)

• 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

Banka 0

Banka 1

Banka 2

Banka 3

Bytovéadresovanie

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

00H

08H

10H

18H

07H

0FH

17H

1FH

20H

21H

22H23H

24H

25H26H

27H

28H29H

2AH2BH

2CH

2DH2EH

2FH30H

7FH

Page 61: Opakovanie  8051

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

Page 62: Opakovanie  8051

Zbernice

Page 63: Opakovanie  8051

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

Page 64: Opakovanie  8051

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

Page 65: Opakovanie  8051

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

Page 66: Opakovanie  8051

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

Page 67: Opakovanie  8051

111010110+1101110011110001111

Operácie sčítania a odčítania v

binárnej sústave

Inverzný a doplnkový kód

Page 68: Opakovanie  8051

Sčítanie troch binárnych jednobitových čísel

a b c a+b+c

0 0 0 00

0 0 1 01

0 1 0 01

0 1 1 10

1 0 0 01

1 0 1 10

1 1 0 10

1 1 1 11

Page 69: Opakovanie  8051

Sčítanie v binárnej sústave

1110+101=???Postup:

Napíšeme si čísla pod seba, doplníme na rovnaký počet číslic a spočítavame číslice v jednotlivých rádoch.

01110+ 00101

1 0+1 = 1

1+1 = 10číslicu nula napíšeme a jednotka prechádza do vyššieho rádu

1+0 = 1

1+0+1(z predch. súčtu) = 10číslicu nula napíšeme a jednotka prechádza do vyššieho rádu

0+0+1(z predch. súčtu) = 1

1001

Page 70: Opakovanie  8051

Odčítanie v binárnej sústave

• Odčítanie v binárnej sústave sa rieši pripočítaním záporného čísla.

• 65-37=65+(-37)• Kladné čísla sa v binárnej sústave

vyjadrujú pomocou priameho kódu (to je ten, ktorý dostaneme pri prevádzaní čísel napr. z desiatkovej do dvojkovej sústavy)

• Záporné čísla sa v binárnej sústave vyjadrujú pomocou– inverzného kódu– doplnkového kódu

Page 71: Opakovanie  8051

Inverzný kód

Inverzný kód binárneho čísla sa vytvorí tak, že sa každá jedna číslica vbinárnom čísle neguje (to znamená žez jednotiek budú nuly a z núl sa stanú jednotky)

(-37)D=(-100101)B=(011010)IK

Page 72: Opakovanie  8051

Doplnkový kód

Doplnkový kód binárneho čísla sa vytvorítak, že sa k inverznému kódu číslapripočíta jednotka

(-37)D=(-100101)B=(011010)IK

+000001(011011)DK

Page 73: Opakovanie  8051

Odčítanie v inverznom kóde

1. Obe čísla si upravíme na rovnaký počet bitov (pripísaním núl zľava)

2. Číslo, so záporným znamienkom prevedieme do inverzného kódu

3. Spočítame obe čísla4. Ak po spočítaní vznikne prenos tak ho

pripočítame k nultému rádu5. Ak je výsledok kladný (teda kladné číslo bolo

väčšie ako záporné) tak je výsledok v priamom kóde

6. Ak je výsledok záporný (teda kladné číslo bolo menšie ako záporné) tak je výsledok v inverznom kóde

Page 74: Opakovanie  8051

Odčítanie v doplnkovom kóde

1. Obe čísla si upravíme na rovnaký počet bitov (pripísaním núl zľava)

2. Číslo, so záporným znamienkom prevedieme do doplnkového kódu

3. Spočítame obe čísla4. Ak po spočítaní vznikne prenos tak ho

zanedbáme5. Ak je výsledok kladný (teda kladné číslo bolo

väčšie ako záporné) tak je výsledok v priamom kóde

6. Ak je výsledok záporný (teda kladné číslo bolo menšie ako záporné) tak je výsledok v doplnkovom kóde

Page 75: Opakovanie  8051

Príklad odčítanie v IK

(65)D=(1000001)B

(-37)D=(-0100101)B

(-0100101)B=(1011010)IK

1000001+101101010011011

Prenos pripočítamek nultému rádu

65-37=65+(-37)=???

+ 10011100

Page 76: Opakovanie  8051

Príklad odčítanie v DK

(65)D=(1000001)B

(-37)D=(-0100101)B

(-0100101)B=(1011011)DK

1000001+101101110011100

Prenos zanedbáme

65-37=65+(-37)=???

X

0011100

Page 77: Opakovanie  8051

Príklad odčítanie v IK

(37)D=(0100101)B

(-65)D=(-1000001)B

(-1000001)B=(0111110)IK

0100101+0111110

1100011

37-65=37+(-65)=???

Výsledok je v inverznom kóde!

Page 78: Opakovanie  8051

Príklad odčítanie v DK

(37)D=(0100101)B

(-65)D=(-1000001)B

(-1000001)B=(0111111)DK

0100101+0111111

1100100

37-65=37+(-65)=???

Výsledok je v doplnkovom kóde!

Page 79: Opakovanie  8051

Stavovéslovo

programuPSW

Page 80: Opakovanie  8051

PSW

• PSW je register, ktorý obsahuje príznaky• PSW je na adrese 0D0H• Príznaky sú jednobitové pamäťové bunky v

CPU• Každý príznak má svoje vlastné meno a

pracuje nezávisle na ostatných• Úlohou príznakov je umožniť vykonávanie

príkazov na podmienené vetvenie a skoky

Page 81: Opakovanie  8051

Príznaky v PSW

• PSW je 8 bitový register, ktorého jednotlivé bity sa označujú takto:– CY – carry– AC – aux carry– F0 – flag zero– RS0, RS1 – register bank select– OV – overflow– P - parity

Page 82: Opakovanie  8051

CY - carry

• CY je príznak prenosu, ktorý sa nastaví na 1, keď vznikne deviaty bit ako výsledok operácie vykonanej v ALU

• Napríklad:

10110011

+01110011––––––––––1 00100101

Page 83: Opakovanie  8051

AC – aux carry

• AC je príznak pomocného prenosu• Keby sa v čase vykonávania operácie

uskutočnil prenos z bitu 3 (štvrtého v poradí) na bit 4, vznikne tento príznak

• Príznak je potrebný, keď príkazy pracujú so štvoricou bitov.

• Je to pomocný príznak pre CPU

Page 84: Opakovanie  8051

F0 – zero flag• F0 sa nazýva príznak nuly• Vo všeobecnosti príznak vzniká automaticky pri nulovom výsledku operácie a používa sa pri podmienených skokoch a vetveniach • Pri mikropočítačí 8051 tento príznak nevzniká ani nezaniká automaticky, ale podľa príkazov pre manipuláciu s bitmi, pre podmienené skoky a vetvenia sa používa akumulátor (ACC)• Pri 8051 môže byť tento príznak využitý programátorom ako príznak pre ľubovoľné účely

Page 85: Opakovanie  8051

OV - overflow• OV je príznak pretečenia• Tento príznak naznačuje, že mohol

byť získaný nesprávny výsledok v prípadoch, kde programátor používa celé čísla so znamienkom

• Nastavuje sa ak vznikne prenos na siedmom ALEBO (nie A) ôsmom bite pri sčítavaní/odčítavaní čísel

Page 86: Opakovanie  8051

P - parity• P je príznak parity• Ak vo výsledku operácie je párny

počet jednotiek, príznak sa nastaví na 0

• Ak vo výsledku operácie je nepárny počet jednotiek, príznak sa nastaví na 1

• Tento príznak je dôležitý pre komunikáciu medzi dvoma počítačmi

Page 87: Opakovanie  8051

Spôsoby adresovania

v 8051

Page 88: Opakovanie  8051

Úvod

• Na to, aby CPU mohla vykonávať príkazy, potrebuje dáta.

• Dáta sú uložené v pamäti (RAM alebo ROM), odkiaľ ich môžeme vyvolať.

• Na získavanie dát alebo ich uloženie existujú rôzne metódy zvané spôsoby adresovania

Page 89: Opakovanie  8051

Spôsoby adresovania

1. Priame adresovanie s registrom2. Adresovanie s priamym operandom3. Priame adresovanie4. Nepriame adresovanie5. Manipulácia s bitmi

Page 90: Opakovanie  8051

Inštrukcia MOV

• Pre ukážku použitia adresovania použijeme inštrukciu MOV, ktorá slúži na presun dát a má nasledovnú syntax

MOV cieľ, zdroj

cieľ a zdroj sú miesta v pamäti alebo operandy

Page 91: Opakovanie  8051

Priame adresovanie s registrom

• V príkaze ako je tento sú adresované iba registre, nie pamäte. Príkazový kód označuje osobitný register alebo registre, s ktorými pracujeme

• Napr: Presuň obsah R0 do A: MOV A, R0 R0A

• Príkaz zaberá iba 1 pamäťovú bunku.

Page 92: Opakovanie  8051

Adresovanie s priamym operandom

• V príkaze ako je tento sú prenášané priame operandy (čísla) do registrov alebo pamäťových buniek

• Napr: Presuň obsah R0 do A: MOV A, #55 55A

• Príkaz zaberá 2 pamäťové bunky pri 8-bitovom priamom operande alebo 3 pamäťové bunky pri 16-bitovom operande.

Page 93: Opakovanie  8051

Adresovanie s priamym operandom

• Priamy operand sa zapisuje so znakom mriežka (#)

• Čísla sa dajú zapisovať ako desiatkové (55d), šestnástkové (5Ah), dvojkové (10111101b) alebo osmičkové (37o)

Page 94: Opakovanie  8051

Priame adresovanie

• V priamom adresovaní musí byť označená pamäťová bunka obsahujúca dáta, keďže príkaz, ktorý bude vykonávaný, bude využívať dáta z tejto pamäťovej bunky

• V 8051 je tento adresový mód využívaný iba v iRAM, čiže adresa označenej bunky je 1-byteové číslo

Page 95: Opakovanie  8051

Priame adresovanie

• Napr: Presuň obsah pamäťovej bunky č.55 do A:

MOV A, 55 (55)A

• Príkaz zaberá 2 byte-y.• Pozn: Niektoré pamäťové bunky v RAM sú

špeciálne registre alebo porty• Adresovanie eRAM alebo ROM nie je

možné vykonať priamym adresovaním!

Page 96: Opakovanie  8051

Nepriame adresovanie

• V nepriamom adresovaní nie sú označené ani dáta, ani ich adresa, ale je použitý zvláštny register DPTR (data pointer – ukazovateľ dát)

• Pred jeho použitím je naplnený adresou, na ktorú má ukazovať.

• V príkaze, ktorý ho používa, sa požadované dáta nachádzajú na adrese označenej týmto registrom.

Page 97: Opakovanie  8051

Nepriame adresovanie

• Napr: Presuň obsah pamäťovej bunky s adresou v DPTR do A:

MOVX A, @DPTR((DPTR))A

• Príkaz MOVX slúži na prenos dát z externej pamäte

Page 98: Opakovanie  8051

Nepriame adresovanie

• Pri nepriamom adresovaní je možné miesto DPTR využiť aj registre R0 a R1 pre adresovanie RAM (veľkosť RAM je 256B, teda nám na adresovanie postačí 8 bitový register)

• Napr: Presuň obsah pamäťovej bunky s adresou v R0 do A:

MOV A, @R0 ( (R0) )A

Page 99: Opakovanie  8051

Manipulácia s bitmi

• V 8051 sa vo FREE RAM nachádza oblasť s adresami pre každý bit.

• Adresovanie týchto bitov sa vykonáva prostredníctvom špeciálnych príkazov.

• Napr: Nastav bit na adrese 91 na „1“: SETB 91 1(91)

Page 100: Opakovanie  8051

Poznámka

• Jednotlivé vizuálne príklady (animované obrázky) použitia adresovacích módov nájdete v prezentácii, ktorá sa venuje tejto problematike

Link na prezentáciu je TU