Presentation is loading. Please wait.

Presentation is loading. Please wait.

Opakovanie 8051.

Similar presentations


Presentation on theme: "Opakovanie 8051."— Presentation transcript:

1 Opakovanie 8051

2 9415 10 VII 8E H Číselné sústavy 752 8 2

3 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

4 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

5 Príklad (39)10 = (100111)2 i Nci Nci+1 ai 39 39/2=19 39%2= 1 1 19
Preveďte číslo 39 z desiatkovej do dvojkovej sústavy. Dané: Nc=Nc0=39 z=2 A=? Vzťahy: ai = zvyšok po delení (Nci /z) Nci je celočíselný podiel Nci-1/z i Nci Nci+1 ai 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 2/2=1 2%2= 0 5 1/2=0 1%2= 1 V Ý Z N A M (39)10 = (100111)2

6 Príklad (100111)2 = (39)10 Riešenie:
Preveďte číslo z dvojkovej do desiatkovej sústavy. Dané: z=2 a5=1,a4=0,a3=0, a2=1,a1=1,a0=1 Nc=? Vzťahy: Riešenie: Nc = a5*25 + a4*24 + a3*23 + a2*22 + a1*21 + a0*20 Nc = 1*32 + 0*16 + 0* * * *1 Nc = Nc = 39 (100111)2 = (39)10

7 Príklad Príklad: Preveďťe číslo 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 je 8=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 => 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. Teda desatinná časť čísla bude mať 6 číslic =>

8 Príklad 3. Z cifier ai vytvoríme k-tice, ktoré potom prevádzame na cifry pi. Teda z cifier čísla vytvoríme trojice, ktoré potom prevádzame. 001 | | | 100 ( ,1101)2 = (163,64)8

9 Príklad (1110011,1101)2 = (163,64)8 Príklad:
Preveďťe číslo 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 je 2=21, teda k=1. 1. Jednotilvé číslice ai prevádzame na trojice ( ,1101)2 = (163,64)8

10 Zhrnutie Zo 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

11 Reprezentácia informácie v počítači

12 Ú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.

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

14 Čí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

15 Čí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.

16 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

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

18 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

19 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)

20 Architektúry ČP

21 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í.

22 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

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

24 Architektúra von Neumanna

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

26 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

27 Architektúra von Neumanna
Inštrukčný register Programové počítadlo Akumulátor n-bitová obojsmerná zbernica ALJ A B C

28 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

29 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í.

30 Harvardská architektúra

31 Harvardská architektúra
Používa dve oddelené pamäte pre dáta a program Pamäť dát Riadiaca pamäť ALJ Riadiaca jednotka

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

33 Rozdiel architektúr

34 Rozdiel architektúr PC register u von NEUMANovskej koncepcie adresuje RAM pamäť a u HARWARDskej adresuje  ROM pamäť.    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ť.  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). 

35 Bloková štruktúra mikropočítača Intel 8051

36 Bloková schéma ROM RAM CPU Hodiny Vstupná jednotka Výstupná jednotka
Styková jednotka Magnet. pamäť CPU adresová zbernica dátová zbernica riadiaca zbernica Hodiny Vstupná jednotka Výstupná jednotka

37 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

38 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ú

39 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

40 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

41 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

42 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

43 Púzdro a piny 8051

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

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

46 ALE, PSEN*, RD*, RW* ALE - Adress Low Enable PSEN*,RD*,WR*
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

47 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)

48 Inštrukčný cyklus

49 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

50 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

51 Vývojový diagram IC ŠTART Vyslanie adresy inštrukcie
Vykonanie inštrukcie Uloženie výsledku Prenos inštrukcie z ROM do dekódera Výber operandov Dekódovanie operačného kódu Inštrukcie Nastavenie novej hodnoty PC

52 Pamäte Registre Zbernice

53 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

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

55 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)

56 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)

57 Š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

58 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

59 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

60 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

61 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

62 Zbernice

63 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

64 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

65 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

66 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

67 Operácie sčítania a odčítania v binárnej sústave Inverzný a doplnkový kód

68 Sčítanie troch binárnych jednobitových čísel
a+b+c 00 1 01 10 11

69 Sčítanie v binárnej sústave
01110 =??? Postup: Napíšeme si čísla pod seba, doplníme na rovnaký počet číslic a spočítavame číslice v jednotlivých rádoch. 1 1 1 0+1 = 1 1+0 = 1 1+1 = 10 číslicu nula napíšeme a jednotka prechádza do vyššieho rádu 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

70 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

71 Inverzný kód Inverzný kód binárneho čísla sa
vytvorí tak, že sa každá jedna číslica v binárnom čísle neguje (to znamená že z jednotiek budú nuly a z núl sa stanú jednotky) (-37)D=( )B=(011010)IK

72 Doplnkový kód Doplnkový kód binárneho čísla sa vytvorí
tak, že sa k inverznému kódu čísla pripočíta jednotka (-37)D=( )B=(011010)IK (011011)DK

73 Odčítanie v inverznom kóde
Obe čísla si upravíme na rovnaký počet bitov (pripísaním núl zľava) Číslo, so záporným znamienkom prevedieme do inverzného kódu Spočítame obe čísla Ak po spočítaní vznikne prenos tak ho pripočítame k nultému rádu Ak je výsledok kladný (teda kladné číslo bolo väčšie ako záporné) tak je výsledok v priamom kóde Ak je výsledok záporný (teda kladné číslo bolo menšie ako záporné) tak je výsledok v inverznom kóde

74 Odčítanie v doplnkovom kóde
Obe čísla si upravíme na rovnaký počet bitov (pripísaním núl zľava) Číslo, so záporným znamienkom prevedieme do doplnkového kódu Spočítame obe čísla Ak po spočítaní vznikne prenos tak ho zanedbáme Ak je výsledok kladný (teda kladné číslo bolo väčšie ako záporné) tak je výsledok v priamom kóde Ak je výsledok záporný (teda kladné číslo bolo menšie ako záporné) tak je výsledok v doplnkovom kóde

75 Príklad odčítanie v IK 65-37=65+(-37)=??? 1000001 +1011010 10011011
(65)D=( )B (-37)D=( )B ( )B=( )IK Prenos pripočítame k nultému rádu

76 Príklad odčítanie v DK 65-37=65+(-37)=??? X 1000001 +1011011 10011100
(65)D=( )B (-37)D=( )B ( )B=( )DK X Prenos zanedbáme

77 Príklad odčítanie v IK 37-65=37+(-65)=??? 0100101 +0111110 1100011
(37)D=( )B (-65)D=( )B ( )B=( )IK Výsledok je v inverznom kóde!

78 Príklad odčítanie v DK 37-65=37+(-65)=??? 0100101 +0111111 1100100
(37)D=( )B (-65)D=( )B ( )B=( )DK Výsledok je v doplnkovom kóde!

79 Stavové slovo programu PSW

80 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

81 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

82 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: ––––––––––

83 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

84 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

85 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

86 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

87 Spôsoby adresovania v 8051

88 Ú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

89 Spôsoby adresovania Priame adresovanie s registrom
Adresovanie s priamym operandom Priame adresovanie Nepriame adresovanie Manipulácia s bitmi

90 cieľ a zdroj sú miesta v pamäti alebo operandy
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

91 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 R0A Príkaz zaberá iba 1 pamäťovú bunku.

92 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, # A Príkaz zaberá 2 pamäťové bunky pri 8-bitovom priamom operande alebo 3 pamäťové bunky pri 16-bitovom operande.

93 Adresovanie s priamym operandom
Priamy operand sa zapisuje so znakom mriežka (#) Čísla sa dajú zapisovať ako desiatkové (55d), šestnástkové (5Ah), dvojkové ( b) alebo osmičkové (37o)

94 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

95 Priame adresovanie Napr: Presuň obsah pamäťovej bunky č.55 do A:
MOV A, (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!

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

97 Nepriame adresovanie Napr: Presuň obsah pamäťovej bunky s adresou v DPTR do A: MOVX ((DPTR))A Príkaz MOVX slúži na prenos dát z externej pamäte

98 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 ( (R0) )A

99 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)

100 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


Download ppt "Opakovanie 8051."

Similar presentations


Ads by Google