Opakovanie 8051.

Slides:



Advertisements
Similar presentations
The 8051 MicroController In this module, we will be discussing the MCS-51 family of microcontroller, in particular the 8051, which is the generic IC representative.
Advertisements

Autumn 2012C.-S. Shieh, EC, KUAS, Taiwan1 The 8051 Family Microcontroller Chin-Shiuh Shieh Department of Electronic Engineering.
Chapter 2 HARDWARE SUMMARY
8051 ASSEMBLY LANGUAGE PROGRAMMING
The 8051 Microcontroller architecture
Hardware Summary ECE473/573 Microprocessor System Design, Dr. Shiue.
CoE3DJ4 Digital Systems Design Hardware summary. Microprocessors vs. Microcontrollers Microprocessors are single-chip CPU used in microcomputers Microcontrollers.
An Introduction to Microcontroller (Hardware Specification) Lec note 4
MCS51 - part 1.
8051 Micro controller. Architecture of 8051 Features of 8051.
MCS51 - part 2. Lecture 2 2/17 MCS51 functioning Clock generator Machine & instruction cycles Paralell ports Reset.
1 Global Positioning System (GPS) Joe Montana IT Fall 2003 pp.0-17 preklad: R. Vislai, r.2010, Košice.
Lecture Set 4 Programming the 8051.
Microcontrollers. An embedded microcontroller is a chip which a computer processor with all it’s support functions (clocking and reset), memory, and i/O.
Intel 8051 Another family of microcontroller is the Intel 8051 family. The basic 8051 microcontroller has four parallel input/output ports, port 0, 1,
Atomic Force Microscopy
8051 Micro Controller. Microcontroller versus general-purpose microprocessor.
HJD Institute of Technical Education & Research- Kera(Kutch) The 8051 Microcontroller architecture PREPARED BY: RAYMA SOHIL( )
1 Contents: 3.1 Instruction format and Addressing Modes 3.2 Instruction Introduction Chapter 3 Instruction system.
ΜComputer Structure μProcessor Memory Bus System I/O Ports.
8085 Microprocessor Architecture
8051 Pin - out PORT 0 PORT 1 PORT 2 PORT 3.
CHAPTER ADDRESSING MODES.
Classification of Instruction Set of 8051
Introduction to Micro Controllers & Embedded System Design Microprocessor/Microcontroller Department of Electrical & Computer Engineering Missouri University.
Hardware Source: ttp:// under
Protokoly sieťovej vrstvy
Zariadenia na ochranu pred predpätím a výpadkom napätia.
3. Algoritmy a programovanie v jazyku Pascal Syntax
PROGRAMOVÉ VYBAVENIE Obsah: program programovacie jazyky
Stredná odborná škola automobilová Moldavská cesta 2, Košice
An Introduction to Microprocessor Architecture using intel 8085 as a classic processor
Data bus CPU General Purpose microprocessor RAM ROM I/O Port Timer
Správa pamäti.
Microcontroller Intel 8051
Sme produkty, musíme sa predať
Dôležité snímky : až 17.
Prednáška 8 podprogramy typy podprogramov lokálne a globálne objekty
Procedurálne programovanie: 2. prednáška
Počítač - základná jednotka
Memory Organisation Source: under
Introduction to Micro Controllers & Embedded System Design Microprocessor/Microcontroller Department of Electrical & Computer Engineering Missouri University.
Typy informácií a ich prezentácia a spracovanie
Formáty grafických súborov
Operačné systémy a ich funkcie.
Sieťový operačný systém
Procedurálne riadenie letovej prevádzky
Človek vo sfére peňazí ročník.
Vonkajšie pamäte pre 1. ročnik Šlížková 2006.
Integritné obmedzenia v SQL
Systém riadenia bázy dát Database Management System
(Electrical Engg 6th Semester)
Memory organization On- chip memory Off-chip memory
Webové prehliadače.
OPERAČNÝ SYSTÉM.
Metódy kĺzavých priemerov (MA – moving averages) - Marcel Kocifaj
The 8051 Microcontroller (8 bit )
VYSOKOFREKVENČNÁ INDUKČNÁ PEC
Open Access v H2020 Barbora Kubíková Národný kontaktný bod
Patrik Ort Acount Executive , Stredná Európa
ROVINNÉ (2D) SYMBOLY DWG
Princípy počítačov 1 LS 2002/2003
Tabuľky.
Unit – Microcontroller Tutorial Class - 2 ANITS College
8051 Microcontroller.
8085 MICROPROCESSOR 8085 CPU Registers and Status Flags S Z AC P C A B
Hardware Source: ttp:// under
Important 8051 Features On chip oscillator 4K bytes ROM 128 bytes RAM
UNIT-VIII 8051 Microcontroller Architecture Register set of 8051
The 8051 Microcontroller (8 bit )
Presentation transcript:

Opakovanie 8051

9415 10 VII 8E H Číselné sústavy 752 8 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) Čí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í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

Príklad (100111)2 = (39)10 Riešenie: Preveďte číslo 100111 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*8 + 1*4 + 1*2 + 1*1 Nc = 32 + 0 + 0 + 4 + 2 + 1 Nc = 39 (100111)2 = (39)10

Príklad Prí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 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 => 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. Teda desatinná časť čísla bude mať 6 číslic => 110100

Príklad 3. 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íklad (1110011,1101)2 = (163,64)8 Prí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 je 2=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

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

Reprezentácia informá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 Inštrukčný register Programové počítadlo Akumulátor n-bitová obojsmerná zbernica ALJ A B C

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át Riadiaca pamäť ALJ Riadiaca jednotka

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

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

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

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

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

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

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

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

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

Sčítanie v binárnej sústave 01110 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. + 00101 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

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 v binárnom čísle neguje (to znamená že z 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 čísla pripočíta jednotka (-37)D=(-100101)B=(011010)IK +000001 (011011)DK

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

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

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

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

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

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

Stavové slovo programu PSW

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 Priame adresovanie s registrom Adresovanie s priamym operandom Priame adresovanie Nepriame adresovanie Manipulácia s bitmi

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

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.

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 55A 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