|
Mikrokontrolér AT89Cxx51 časť 3. |
Konečne po dlhej dobe sa stretávame v tretej časti serialu o mikrokontroléri AT89Cxx51. Od tohoto članku začneme vysvetĺovať samotné programovanie na praktických príkladoch. Ako inšpiráciu som si zvolil logické obvody. A prečo som si zvolil práve ako prvý praktický príklad logické obvody? Dočítate sa v článku.
Logické obvody ako prvý príklad som si zvolil pre to lebo zabijem dve muchy jednou ranou. Vysvetlím vám praktické použitie vstupno / výstupné linky a náhrady log. obvodov za tranzistorové ...
Poznáme týchto 5 základných logických operácii (členov):
- OR
- AND
- NOR
- NAND
- Negátor (invertor)
OR - logický súčet
Tu je výber z logických typov OR obvodov: 7432(4x2 vstup), 4071(4x2 vstup), 4072(4x vstup), 4075(3x3 vstup)
NOR - negácia logického súčtu
Tu je výber z logických typov NOR obvodov: 7402(4x2 vstup), 7427(3x3 vstup),4001(4x2 vstup), 4002(2x4 vstup), 4025(3x3 vstup)
AND - logický súčin
Tu je výber z logických typov AND obvodov: 7408(4x2 vstup), 4073(3x3 vstup), 4081(4x2 vstup), 4082(2x4 vstup)
NAND - negácia logického súčinu
Tu je výber z logických typov NAND obvodov: 7400(4x2 vstup), 7403(4x2 vstup), 7410(3x3 vstup), 7420(2x4 vstup), 7430(1x8 vstup), 74132(4x2 vstup SCHMITT), 74133(1x13 vstup), 4011(4x2 vstup), 4012(2x4 vstup), 4023(3x3 vstup), 4068(1x8 vstup)
Negácia (invertor) - invertuje logický stav
Tu je výber z logických typov invertor obvodov: 7404(6x), 7405(6x), 7414(6x SCHMITT), 4007(6x), 4049 (6x inv budič), 4069(6x)
Univerzálny logicky obvod s AT89Cxx51
Navrhite program, ktorý bude mať v sebe všetky základné typy log. operácii, po jednom kuse. Ako príklad vývodov si zvolíme:
* OR = A-P1.0 , B-P1.1, Y-P1.2
* NOR = A-P1.3 , B-P1.4, Y-P1.5
* AND = A-P3.0 , B-P3.1, Y-P3.2
* NAND = A-P3.3 , B-P3.4, Y-P3.5
* Invertor = A-P1.6 , Y-P1.7
V tomto programe budeme využívať prikazy typu JB, EQU, MOV, CPL, ANL, ORL, JMP.
Este pred programom si vysvetlime tieto prikazy:
JB je to v podstate podmieneny skok, pokial testovani bit bude mat log 1 (pri JNB to naopak pri log.0). Systaxia: JB bit, skok (napriklad JB P1.0, START). Tento prikaz zaberie 3 bity s pamete a protrebuje k vykonaniu 2 cykly. Dalej bude zavat tento udaj takto: (3/2)
EQU sluzi nam na vytvaranie premmennych a k pridelovaniu k premennej adresu alebo nejaku linku. Syntaxia: PREMENNA EQU HODNOTA (napriklad CAK EQU 235).
MOV tento príkaz nám slúži na prenos dát alebo bitu (2/2) . Syntaxia MOV kam,hodnota. Príklady:
- MOV A,#15 = do stradača A sme uložili číslo 15
- MOV R0,A = do stradača sme uložili obsah z stradača, čiže cislo 15
- MOV 78h,#25 = do adresy 78h sme uložili číslo 25
- MOV R0,78h = do registra R0 sme uložili obsah adresy 78h, čiže číslo 25
- MOV R1,#78h = do registra R1 sme uložili hexadecimálne číslo 78
- MOV A, @R1 = v registri je cislo 78h, ktoru bere ako adresu a obsah tej adresy cize 78h uloží do stradača A, čize číslo 25
CPL je to logická negácia, čiže 0->1 alebo 1->0. Syntaxia CPL co (napríklad CPL P1.0 (2/1), CPL C (1/1), CPL A (1/1)...)
ANL je to príkaz operácie logického súčinu (násobenia) (2/2). Syntaxia ANL A,B (napriklad ANL A,R0 kde logický súčin stradača A a registra R0 uloží do stradača A).
ORL je to príkaz logického súčti (2/2). Syntaxia ORL A,B (napríklad ORL A,R1 kde logicky súčet stradača A a registra R1 uloží do stradača A).
JMP Tento prikáz skáčne mezi prodprogramami (1/1). Systaxia: JMP kam (napríklad JMP CYKLUS kde program skoci na podpodprogram s nazvom CYKLUS)
Výsledný program aj s vysvetlovkami v assemleri (4kB)
Skompilovaný program v hexadecimálnom tvare (400B)
Skompilovaný program v binárnom tvare. Ten sa priami ukladá do mikrokontroléra (135B)
|
|
|
|
 |
| |
| Súvisiace odkazy | |
|  |
 | Hodnotenie článku |
Priemerné hodnotenie: 3.75 Hlasov: 4
 | |  |
 | Možnosti | |
|  |
 |