Assembler - 5. lekce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Assembler - 5. lekceAssembler - 5. lekce

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

Assembler - 5. lekce

Google       Google       30. 8. 2005       22 568×

• Vnější přerušení
• Neprobrané registry..

Reklama
Reklama
Vnější přerušení


Po vnějším ovlivnění určitého bitu portu procesor ihned skončí příkaz a přejde na adresu přerušení (03H a 13H) a po vykonání programu přerušení se příkazem RETI vrátí tam, kde zrovna skončil v hlavním programu, ovšem nejdřív je zapotřebí povolit přerušení, to se nastavuje v osmi bitovém registru IE, významy jednotlivých bitů jsou popsány v závěru lekce.

µprocesor, který my budeme používat má dvě vnější přerušení:
INT0 a INT1 a jsou vyvedené na portu P3 na druhém a třetím bitu.


Ukázka níže vytváří "maják" s osmi LED diodami které jsou připojené na port P2 a rychlost otáčení měníme změnou úrovně na portu P3.2 - zpomalení a P3.3 - zrychlení

Ukázka: ORG 0
RYCHLOST EQU 30H
JMP START
ORG 03H ;ADRESA PRERUSENI P3.2
MOV RYCHLOST,#15 ;PROGRAM PRERUSENI
RETI ;NAVRAT DO HLAVNÍHO PROGRAMU

ORG 13H ;ADRESA PRERUSENI P3.3
MOV RYCHLOST,#5 ;PROGRAM PRERUSENI
RETI ;NAVRAT DO HLAVNÍHO PROGRAMU

START: ;HLAVNI PROGRAM
MOV IE, #10000101 ;POVOLENI PRERUSENI
MOV TMOD,#1 ;NASTAVENI MODU CASOVACE
SETB TR0 ;POVOLENI CASOVACE
MOV RYCHLOST,#5 ;ZAKLADNI RYCHLOST

MOV A, #0FFH

ROTACE: MOV P0, A
RLC A
CALL CAS
JMP ROTACE


CAS: MOV R5, RYCHLOST ;CASOVAC
ZPET: JBC TF0, DAL
SJMP ZPET
DAL: DJNZ R5, ZPET
RET
END


Příklad si opět můžete vyzkoušet v simulátoru As51, abyste nemuseli tak dlouho čekat, dejte středník před CALL ZPOZDENI a už budete vidět, jak akumulátor rotuje. Pokud budete chtít simulovat vnější přerušení, pak jen zmáčknete F5 a najedete na port P3 a přepíšete ho na FB – interup 0, nebo F7 – interup 1, poté se vrátíte k trasování F10-kou, jednou odtrasujete a v programu vám to odskočí na adresu 03H nebo 13H, poté můžete zpět přepsat P3 na FF, aby to po skončení programu přerušení neskočilo zase na přerušení, záleží jak je nastavený TCON.


Neprobrané registry

Pokud chcete mít přehled v nastavení, nebo aktuálního stavu čehokoli v mikroprocesoru, pak čtěte pozorněji. V programu AS51 v hlavním nabídkovém menu v položce VIEW první a druhá položka nás nebude zajímat, protože to slouží k prohlížení externích pamětí, ale další položkou pod názvem REGISTER BANK se dá přepínat banky registru R0 – R7 využívá se to třeba, když v podprogramu využíváte registry, které už používáte někde jinde v programu.

Poslední dvě položky 1st a 2nd Remember obsahují stejné detailní zobrazení jednotlivých registrů v pravém dolním okénku s názvem ZOOM.


IE – Interrup enable
EA Je-li v 1, pak globálně povoluje přerušení
ES Povolení přerušení od sériové linky (23H)
ET1 Povolení přerušení přetečením časovače 1 (1BH)
EX1 Povolení přerušení externím zdrojem přerušení INT1 (13H)
ET0 Povolení přerušení přetečením časovače 0 (0BH)
EX0 Povolení přerušení externím zdrojem přerušení INT0 (03H)

IP - Interrup priority (které přerušení je důležitější)
PX0 Externí 0
PT0 Timer0
PX1 Externí 1
PT1 Timer1
PS Sériový port

PSW
CY Carry flag
AC Auxiliary carry
F0 Flag0 - pro volné použití
RS1 Register bank selector bit1
RS0 Register bank selector bit0
OV Overflow flag
-
P Parity flag. Každá instrukce jej nastaví dle počtu jedniček v A

SCON - Nastavení sériového rozhraní


Registry které nejsou bitově adresovatelné:
(je třeba je naplnit celé jedním bajtem v kuse)

PCON - Power control register
SMOD Po resetu v 0, při nastavení do 1, zvýší přenosovou rychlost sériového portu na dvojnásobek.
GF1 General purpose flag bit - libovolné použití.
GF0 General purpose flag bit - libovolné použití.
PD Power down bit. Nastavením přejde do power down módu, není u neCMOS 51 implementován.
IDL Idle mode bit. Nastavením přejde do power idle módu, není u neCMOS 51 implementován.

TCON - Program status word
TF1 Nahozením do 1 oznámí, že nám přetekl timer1.
TR1 Nahozením do 1 povolíme timer1, shozením do 0 ho zastavíme.
TF0 Nahozením do 1 oznámí, že nám přetekl timer0.
TR0 Nahozením do 1 povolíme timer0, shozením do 0 ho zastavíme.
IE1 External interrupt 1 edge flag. Nastaví se při shození pinu /INT1 do nuly.
IT1 Interrupt 1 type control bit. nastavení, jestli k externímu přerušení dojde
sestupnou hranou nebo nízkou úrovní na pinu /INT1.
IE0 External interrupt 0 edge flag. Nastaví se při shození pinu /INT0 do nuly.

TMOD -(nižší bity jsou od časovače 0)
GATE Je-li v 1, pak běží čítač/časovač jen je-li pin /INT1 ve vysoké úrovni (a je nastaven TR1=1 v TCON), je-li v 0, pak běží jen v závislosti na TR1.
C/T Přepínání mezi čítačem a časovačem. Je-li 0, pak pracuje jako časovač, je-li 1 pak jako čítač.
M1 Výběr módu 1.
M0 Výběr módu 0.


DU :
Vytvořte program, který rozbliká LED na portu P2 a nultém bitu. Rychlost bude 1 sekunda, ta se ovšem bude měnit pomocí vnějšího přerušení v rozsahu 0,5 až 1 sekunda po 0,1s. Tak že jedním přerušením se sníží rychlost o 0,1 a druhým se navýší. Bude zapotřebí zajistit aby rychlost byla pouze v tomto rozsahu. Rychlost bude zobrazována na P2.2-7, tedy pokud rychlost bude 0,7 pak bude v jedničce P2.2-4 a pokud bude rychlost 0,5 pak bude v jedničce pouze P2.2 .

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor programuje v Assembleru, zajímá se o elektroniku a tunning PC.

Nové články

Obrázek ke článku Open source neznamená „zdarma“

Open source neznamená „zdarma“

Mnoho společností po celém světě, univerzity, vládní organizace a jim podobné dnes používají open source technologie k vytvoření vlastních webových stránek. Tyto technologie se používají čím dál tím více. Jednoduše proto, že je řada poskytovatelů nabízí zcela zdarma. Je to ale opravdu to správné řešení pro všechny? 

Reklama
Reklama
Obrázek ke článku Rádi sledujete obsah streamovacích služeb? Dejte si pozor na pirátské verze Mandaloriana a Netflixu

Rádi sledujete obsah streamovacích služeb? Dejte si pozor na pirátské verze Mandaloriana a Netflixu

Streamovací služby a jejich obsah se v uplynulých měsících těšily velkému zájmu uživatelů, kteří se při pobytu v karanténě chtěli zabavit sledováním filmů a seriálů. Toho bleskově zneužili hackeři, kteří pod názvy oblíbených streamovacích platforem a jejich obsahu maskovali škodlivé soubory. Nejčastěji používali jako návnadu Netflix a seriál The Mandalorian. 

Obrázek ke článku Bionické ruce mění lidem životy. Konference INSPO ukázala nejnovější technologie

Bionické ruce mění lidem životy. Konference INSPO ukázala nejnovější technologie

Bionické myoprotézy rukou jsou ukázkou pokroku, který udělaly za posledních dvacet let technologie pro lidi se zdravotním postižením. Dnešní protézy, které fungují na principu snímání svalových vzorců, umožňují uživatelům operovat s křehkými předměty či provádět úkony složité na kooperaci různých částí těla – ať už jde o hru na hudební nástroje, zavazování tkaniček, nebo třeba pití ze skleničky. Na 20. ročníku konference INSPO se budou zájemci moci naživo seznámit nejen s takzvanou myorukou, ale rovněž s jedním z jejích uživatelů. 

Obrázek ke článku Využití .htaccess na malém webu

Využití .htaccess na malém webu

V dnešní době existuje spoustu cms, které mnohdy ale vůbec nepotřebujeme a stačila by nám pouze základní funkčnost k úpravě url, přesměrování. K tomuto účelu je ideální .htaccess soubor, který nám se všemi těmato úpravami umí pomoct.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý