Mikroprocesorová technika (MIT) – ELP

 

   Otázka: Mikroprocesorová technika (MIT)

   Předmět: ELP, Informatika

   Přidal(a): jasal

 

 

Mikrokontroler řady 8051

Základní rozdělení:

  • Je to 8bitový (jednočipový) kontrolér s Harvardskou strukturou, u které je rozdělena programovací a datová paměť
  • Napájení má hodnotu 5V

 

Základní informace k tvorbě programu:

  • Registr – část paměti, kterou využíváme pro ukládání dat a tvorbu programů
  • Všechny registry u 8051 jsou 8 bitové
  • Značení jednotlivých bitů:
b.7 b.6 b.5 b.4 b.3 b.2 b.1 b.0

 

Číselné soustavy:

Binární soustava – používáme 0 a 1

  • Zápis: 0111 B

Hexadecimální soustava – používáme: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

  • Zápis: 0FF H

Desítková soustava – používáme: 0,1,2,3,4,5,6,7,8,9

  • Zápis: 23 D
128 64 32 16 8 4 2 1

 

Důležité registry paměti RAM u mikrokontroleru řady 8051:

ACC – střadač (akumulátor)

  • Patří mezi nejdůležitější registry (8bitový registr)
  • Slouží pro matematické a aritmetické operace
  • Značení: ACC

B – pomocný registr, který využíváme pro aritmetické operace

  • 8 bitový registr

Vstupně/výstupní porty (brány) – 8 bitové registry

  • Značení: P0,P1,P2,P3

Pomocné registry R0 až R7 – nacházení se v bance (banka 0, banka 1, banka 2, banka 3)

  • V každé bance je 8 registrů (R0, R1, R2, R3, R4, R5, R6, R7)

Instrukce:

  • Základní instrukční soubor obsahuje 102 instrukcí (čím více instrukcí, tím je provádění programu pomalejší – složitost instrukcí)
  • Instrukční soubor se rozděluje do několika skupin

 

Základní instrukce:

1) Přesunové MOV – z 1 paměťového místa přesuneme data do jiného paměťového místa

|tab|MOV|tab|ACC, #45D

  • Existují různé modifikace MOV

 

2) Aritmetické – zde patří:

ADD – aritmetický součet

MUL – aritmetické násobení

DIV – aritmetické dělení

INC – inkrementace – přičte do daného registru hodnotu 1

DEC – dekrementace – odečte od daného registru hodnotu 1

!!! Aritmetické operace se provádějí pomocí registru ACC!!!

PSW – stavové slovo (je to registr z bitů, které nám určují stavy jiných registrů)

  • 8 bitový registr
C . F0 RS1 RS0 . . .
  • C… Carry bit àpříznakový bit – při přetečení registru ACC dochází ke změně hodnoty bitu z0 na 1
  • F0 – uživatelský bit (programátorský bit)
  • RS0, RS1 – určují banku

SP – ukazatel zásobníku

IE – interrupt enable = povolení přerušení

  • 8bitový registr
EA . . ES ET1 EX1 ET0 EX0
  • EA – slouží ke globálnímu povolení přerušení
  • ES – povolení sériové komunikace
  • EX0 – povolení vnějšího přerušení (INT0)
  • ET0 – povolení čítače, časovače (T0)
  • EX1 – povolení vnějšího přerušení (INT1)
  • ET1 – povolení čítače, časovače (T1)
  • Tento registr slouží k povolení přerušení
  • Každý bit tohoto registru povoluje dané přerušení, jestliže má hodnotu 1

SETB             EA; SETB                 EX0 àpovolení vnější INT0

Registr IP – nastavení priorit přerušení

  • uK 8051 – má 2 úrovně priorit přerušení

PCON – řízení napájení

 

Další registry pro řízení a fci. Čítačů a časovačů:

TMOD; TCON; TL0; TH0 àčítače/časovače T0

TL12; TH15 à čítače/časovače T1

 

Skokové instrukce

1) nepodmíněné skokové instrukce:

JMP                NÁVĚŠTÍ

SJMP             NÁVĚŠTÍ àkrátká skoková instrukce

LJMP             NÁVĚŠTÍ àdlouhá skoková instrukce

Př) SJMP       $ àprogramový čítač skáče na stejný řádek

 

2) podmíněné skokové instrukce:

  • Bitové:

JB       bit, START

  • Je-li daný bit roven 1, skáče na návěští
  • Je-li daný bit roven 0, jde dál

JNB    bit, SKOK

  • Je-li daný bit roven 0, skáče na návěští
  • Je-li daný bit roven 1, jde dál

JC – je-li C=1, skočí na NÁVĚŠTÍ

  • Je-li C=0, jde dál

JNC – je-li C=0, skočí na NÁVĚŠTÍ

  • Je-li C=1, jde dál

JZ – jestliže střadač ACC=0, skočí na NÁVĚŠTÍ

  • jestliže střadač ACC=1, jde dál

 

Bitové instrukce jsou to instrukce, které pracují s jednotlivými bity (případně s registrem ACC)

CLR – instrukce, která nuluje daný bit

  • Instrukce nuluje střadač ACC

CLR    bit

CPL – instrukce, která neguje daný bit (případně ACC)

CPL    bit

SETB – do daného bitu uloží log 1 (ACC – nepoužívá)

SETB  bit

 

Přesunové instrukce – instrukce slouží k přesunu jednotlivých bitů ve střadači ACC

  • Mohou být 8 bitové nebo 9 bitové

 

a) 8bitová rotace

RR – rotace doprava – jednotlivé bity se přesunou doprava

RR      A

 

RL – rotace doleva

RL       A

 

b) 9bitová rotace – využíváme přesunu bitu o 1 místo v registru ACC včetně příznakového bito C

RRC – přesun bitu doprava včetně příznakového bitu C

RRL – přesun bitu doleva včetně příznakového bitu C

 

Sdružené instrukce – jsou to instrukce, které provádějí více kroků a trvají nejdelší čas

 

DJNZ – odečte od daného registru 1 a porovná tuto hodnotu s 0

  • Je-li různá od 0, skáče na NÁVĚŠTÍ, je-li rovna 0, pokračuje dál

DJNZ  A,SKOK                    (pokud A=0 po odečtení, jde dál a neskáče na NÁVĚŠTÍ)

CJNE – porovnává obsahy 2 registrů a jestliže se nerovnají, skočí na NÁVĚŠTÍ a jestliže se rovnají, jde dál

CJNE  A1, A2, A3     (A1…argument 1, A2…argument 2, A3…argument 3)

 

Časová prodleva – pauza

 

Pauza DL:

MOV  R1,#225

Pauz:     MOV R2, #11111111B

DJNZ  R2, $

DJNZ  R1, Pauz

RET

 

Pauza KR:

MOV  R1,#225

DJNZ  R1, $

RET

(RET…instrukce pro návrat do programu a vrací se na řádek pod instrukci ACALL [CALL])

 

Přerušení = při přerušení dochází k okamžitému zastavení hlavního programu skoku do podprogramu, jeho vykonání a návrat do hlavního programu (místa přerušení)

  • 5 zdrojů přerušení:
  • INT 0 – vnější přerušení
  • INT 1 – vnější přerušení
  • Čítač/časovač – T0
  • Čítač/časovač – T1
  • Sériová komunikace : TxD, RxD

 

Vnější přerušení: (INT 0, INT 1)

  • Posláním log 0 od pinu 2, nebo P3.3 dojde k zastavení hlavního programu a skoku do podprogramu, jeho vykonání a návratu do místa, kde došlo k přerušení a pokračování v programu
  • Každý program přerušení končí instrukcí RETI

 

Jednotlivé kroky pro definování a použití vnějšího přerušení:

ORG   0H

SJMP  START

ORG   03H

SJMP  PODPROGRAM_0

ORG   30H

;—————————————

START:                      MOV  IE,#10000101B (poslední 1 pro INT0, 3. Od zádu pro INT1)

MOV  TCON,# 00000101B

PODPR:……..…RETI….

 

Nastavení informace pro programový čítač:

ORG   03H – INT0

ORG   13H – INT1

ORG   0BH – T0

ORG   01BH – T1

ORG   023H – SERIOVÁ KOMUNIKACE

 

Registr TCON – patří do skupiny registrů řízení časovačů

  • Tento registr se skládá ze 4 bitů příslušejících oběma čítačům a časovačům a 4 bitů, příslušejících vnějším přerušením
  • 8 bitový registr
pro T0 a T1 pro INT0 a INT1
TF1 TR1 TF0 TR0

TR0 -> log0 à spustí časovač T0

TR1 -> log0 à spustí časovač T1

 

Čítače/časovače – daný mikrokontrolér může pracovat buď v režimu časovače, nebo v režimu čítače

  • Tato fce se nastavuje v registru TMOD (v případě našich příkladů používáme časovače)

 

TMOD

T1 T0
Gate C/T M1 M0 Gate C/T M1 M0

 

C/T     Log0 à časovač        Log1 à čítač

GATE – řízení hradlování – je-li hodnota log0 je čítač řízen pouze v programu

M0/M1 – jsou bity, které určují MOD čítače, časovače = nastavení daného čítače, časovače jak bude pracovat

  • Máme MOD0MOD3

MOD0 – M0 = 0; M1 = 0

  • Čítač/časovač je v MODu0 13 bitový

TLn = 5           THn = 8

 

MOD1 – M0 = 1; M1 = 0

  • Čítač/časovač je 16 bitový

TLn = 8           THn = 8

 

MOD2 – M0 = 0; M1 = 1

  • Čítač/časovač je maximálně 8 bitový

Registr TH = přednastavení hodnoty pro registr TL

 

MOD3 – M0 = 1; M1 = 1

  • v MODu 3 využíváme oba čítače/časovače

 

Definování PODPROGRAMUnávratové instrukce:

RET – (podprogram volaný instrukcí ACALL) à návrat na řádek pod ACALL

RETI – (přerušení) à návrat do místa, kde došlo k přerušení

 

Registry čítačů/časovačů: Registr TL0; Registr TH0; Registr TL1; Registr TH1

DPTR = ukazatel dat – je to 16 bitový registr, ale skládá se ze 2 registrů: DPL, DPH

 

Přerušovací systém:

  • umožňuje jakousi komunikaci mezi probíhajícím hlavním programem a určitými hardwarovými částmi mikroprocesoru
  • je-li přerušení od dané hardwarové části povoleno, procesor přeruší vykonání hl. programu a začne se vykonávat program zajišťující obsluhu vzniklého přerušení
  • je-li program obsluhy přerušení dokončen, procesor se vrací k vykonávání hl. programu od místa, ve kterém skončil před přechodem do programu obsluhy přerušení

 

Instrukční soubor CPU 8051

  • IS – skupina instrukcí

 

Lze rozdělit do 7 skupin:

  • Přesunové instrukce – MOV
  • Aritmetické instrukce – INC, ADD, DEC, MUL, DIV, SUBB, CPL
  • Logické operace – ANL (log. součin), ORL (log. součet)
  • Posunové instrukce – umožňují 8 a 9 bitové log. rotace střadače (RR, RL, RRC, RLC)
  • Bitové operace – umožňují nastavit (SETB), nebo nulovat (CLR), kterýkoliv R 2256 přímo adresovatelných bitů mikrokontroléru 8051
  • Skokové instrukce – umožňují skok – JMP, LJMP (16 BITOVÝ), AJMP (11 BITOVÝ), LCALL, ACALL, JB, JNB, JC, JNC, JZ, JNZ
  • Sdružené instrukce – DJNZ, CJNE
💾 Stáhnout materiál   ✖ Nahlásit chybu
error: Stahujte 15 000 materiálů v naší online akademii 🎓.