Upload
ciara-rojas
View
56
Download
2
Embed Size (px)
DESCRIPTION
Opakovanie 8051. 9415. 10. 8E. H. 752. 8. VII. Číselné sústavy. 10110010. 2. 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) - PowerPoint PPT Presentation
Citation preview
Opakovanie 8051
VIIČíselné sústavy
10110010
8EH
9415 10
2
7528
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
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
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
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
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
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
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
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
Reprezentáciainformácie v
počítači
Ú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.
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.
Čí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
Čí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.
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
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 .
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
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)
ArchitektúryČP
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í.
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
Procesor
• Procesor okrem ALJ a RJ obsahuje ešte:– Registre (ACC, B, ...)– Programové počítadlo (PC)– Register inštrukcií– Hodiny– Dekóder inštrukcií– ...
Architektúra von Neumanna
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.
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
Architektúra von Neumanna
ALJ
A B
C
Inštrukčnýregister
Programovépočítadlo
Akumulátor
n-bitová obojsmernázbernica
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
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í.
Harvardská architektúra
Harvardská architektúra
• Používa dve oddelené pamäte pre dáta a program
Pamäť dátRiadiaca
pamäť
ALJRiadiacajednotka
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.
Rozdiel architektúr
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).
Bloková štruktúra
mikropočítača Intel 8051
CPU
ROM RAM
Vstupná jednotka Výstupná jednotka
Stykovájednotka
Magnet.pamäť
Hodiny
adresová zbernica
dátová zbernica
riadiaca zbernica
Bloková schéma
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
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ú
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
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
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
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
Púzdro a piny 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.
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.
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
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)
Inštrukčný cyklus
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
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
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
PamäteRegistreZbernice
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
• 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
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
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
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
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
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
111010110+1101110011110001111
Operácie sčítania a odčítania v
binárnej sústave
Inverzný a doplnkový kód
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
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
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
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
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
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
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
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
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
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!
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!
Stavovéslovo
programuPSW
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
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
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
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
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
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
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
Spôsoby adresovania
v 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
Spôsoby adresovania
1. Priame adresovanie s registrom2. Adresovanie s priamym operandom3. Priame adresovanie4. Nepriame adresovanie5. Manipulácia s bitmi
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
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.
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.
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)
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
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!
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.
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
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
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)
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