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

Assembler - 5. lekceAssembler - 5. lekce

 

Assembler - 5. lekce

Google       Google       30. 8. 2005       20 030×

• 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 Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Reklama
Reklama
Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

Obrázek ke článku Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý