Elektronika | Felsőoktatás » Schwarczenberger Ferenc elektronika leírásai

Alapadatok

Év, oldalszám:1998, 72 oldal

Nyelv:magyar

Letöltések száma:1904

Feltöltve:2004. szeptember 14.

Méret:579 KB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!


Tartalmi kivonat

AZ I NTEL 8085 M I K ROPROCESSZOR Az Intel 8085 mikroprocesszor jellemzôi: • • • • • • • • • • 50%-kal gyorsabb müködés a 8080-hoz képest; egyszerübb HW; kibövitett megszakitási rendszer; egyetlen 5 V-os tápfeszültség igény; a 8080 rendszer elemei illeszthetök; összevont rendszer technikai egységek: ROM/IO, RAM(IO)TIMER; felfelé SW kompatibilis a 8080-al; két új utasitás a 8080-hoz képest; a legkisebb rendszer 3 áramkörbôl áll; multiplex cim/adatsin. Az I8085A mikroprocesszor belsô felépítése: A 8085 JEL EI : Az ábrán látható a 8085A mikroprocesszor jelcsatlakozása a következö. AD0.AD7: Közös csatlakozási pontok a nyolcbites adatsin és a cimsin alsó nyolc bitje számára, ezeket a pontokat 8085A multiplexelten használja. Ezeket háromállapotu, kétirányú, többfunkcios csatlakozási pontok. (Address-Data, cim-data) A8.A15: a cimsin csatlakozási pontjaiHáromállapotú kimenetek (Address, cim) X1, X2: a belsö

óragenerátor csatlakozópontjai. CL K : kimenö vezérlöjel, a 8085 a-re épülö mikroszámitogép órajele, amelyeket a 8085A állit elö az X1, X2 pontokhoz csatlakoztatott idöelemeknek megfelelöen. (Clock, óra) S0, S1: A 8085A belsö müködésére utaló információt nyújtó kimenö vezérlöjelek a következö kódolással: S1 L L H H S0 L H L H CPU állapot HALT (várakozás) WRITE (irás) READ (olvasás) FETRCH (M1, utasitásbeolvasás) Lényegében ez a négy gépiciklus különböztethetö meg a 8085A-nál, de ennek megkülönböztetésnek nincs nagy jelentössége, sokszor ezeket a vezérlöjeleket nem is használjuk. WR: háromállapotú kimenö vezérlöjel, alacsony aktiv szinttel. Aktiv szintje jelzi, hogy a mikroprocesszor az adatsinre informáciot küldött ki. (Write, irás) RD: háromállapotú kimenö vezérlöjel, alacsony szintje aktiv. Aktiv szintje jelzi, hogy a mikroprocesszor az adatsint beolvassa, a rajta lévö adatokat érvényesnek tekinti.

(Read, olvasás) I O/M : háromállapotú kimenö vezérlöjel. Az irási és olvásási müveletek során azt jelzi, hogy a 8085A perifériával (H szint), vagy a tárral (L szint) kiván együttmüködni. (Input-Output/Memory, bemenetikimeneti/tár) AL E: háromállapotú kimenö vezérlöjel, magas aktiv szinttel. A gépiciklusok elején a magas szintje jelzi, hogy a multiplexelt adatcimsinen (AD0.AD7) pillanatnyilag cimérték taláható (Address Latch Enable, cimtárolás-engedélyezés) RESET I N: bemenö vezérlöjel, alacsony szinten aktiv. Aktiv szintje a mikroprocesszort alaphelyzetbe állitja: nullázza a programszámlálot és az utasitás regisztert, letiltja a megszakitásokat. Schmitt-trigger jellegü, nem meredek jelek fogadására képes bemeneti pont. (Reset INput, alaphelyzet-állitó bemenet) RESET OUT: kimenö vezérlöjel, magas aktiv szintü. Magas szintje a külsö áramköröknél lehet alaphelyzetbe állitásra felhasználni. A jel RESET IN hatására

keletkezik (Reset OUTput, alaphelyzet-állitó kimenet) READY: bemenö vezérlöjel, magas szintje aktiv. Ha egy külsö alacsony szintre húzza a READY vonalat, a mikroprocesszor várakozási ciklusokat iktat be a müködés folytatása helyett, és csak a READY H szintjének megjelenése után folytatja a gépi ciklust. (Ready, kész, készenlét) HOL D: bemenö vezérlö jel magas szinten aktiv. Ha magas szint van ezen a ponton, akkor a következö utasitás beolvasása helyett a mikroprocesszor lebegteti az adat- es a cimsint, valamint az RD, a WR, az IO/M és az ALE kimenö pontokat, igy közvetlen tár- periféria adatcsere (DMA) lehetséges. (Hold, visszatartás) HL DA: imenö vezérlö jel magas szintel aktiv. A beérkezö HOLD jel elfogadására utal, a HOLD állapotot jelzi vissza. (Hold Acknowledge,HOLD elfogadás) I NTR: bemenö vezérlö jel magas aktiv szinttel. A külsö elemek ezen a bemeneti ponton programmegszakitást kérhetnek. (Interrupt, megszakitás) I NTA:

kimenö vezérlö jel alacsony aktiv szinttel.L szintjével jelzi, ha a mikroprocesszor egy az INTR pontra érkezett megszakitáskérést elfogadott. (INTerrupt Acknowledge, megszakitáselfogadás) RST 5.5, RST 65, RST 75: bemenö vezérlöjelek, aktiv szintjük magasA külsö eszközök ezeken a pontokon is kérhetnek megszakitást, elfogadásuk esetén kötött cimröl indul a megszakitáskérés kiszolgálása. (Restart, újraindulás) TRAP: bemenö vezérlö jel, H aktiv szinttel. Megszakitáskérö pont, ez a megszakitáskérés programmal nem maszkolható (nem tiltható le). (Trap, csapda) SI D: soros adatmenet, az akkumulator felsö bitjebe olvasható be. (Serial Input Data, soros bemenö adat) SOD: soros adatkimenet, az akkumulator legfelsö bitje küldhetö itt ki. (Serial Output Data, soros kimenö adat) M ûködési leír ás A I8085A egy 8 bites központi feldolgozó egység. Az I8085A az adatokat és a belsö állapot információt egy 8 bites kétirányú

háromállapotú adatsinnek viszi át. A memória és perifériális eszközöket egy külön 16 bites háromállapotú egyirányú cimsinen éri el. Regiszter ek: • • Hat darab 8 bites cimezhetö univerzális regiszter, melyek párokba vannak rendezve: (B,C); (D,E); (H,L). A BC, DE és HL általános célu regiszterek Ezeket az utasitástól függöen lehet használni mint 6 bd 8 -bites, vagy 3 db 16- bites regisztert. A HL regiszterpár a memóriareferens utasitások egy részénél adat mutató szerepet is játssza, mivel a cél- vagy a forrás memória cimét tartalmazza. Néhány utasitásnál a EC és DE regiszterpárokat indirekt cimzésre lehet használni. Programszámláló (PC) 16 bites. A Programszámláló (PC), ami mindig a következö végrehajtandó utasitásra mutat Tartalma mindig egy 16-bites cim. • • • Stack mutató (SP) 16 bites. A STACK Pointer (SP) egy speciális mutató, ami mindig a memoriában elhelyezkedö stack tetejére ( a következö

rendelkezésre álló stack cimre ) mutat. Az SP egy ketté nem osztható 16 -bites regiszter. Flag register 8 bites. A Flag - regiszter 5 db 1 -bites flag-et tartalmaz, amik mindegyike státusz információt hordoz, és a processzor müködését vezérelheti a programnak megfelelöen. Akkumulátor (A) 8 bites. Az Akkumulátor (ACC vagy A regiszter), ami a legtöbbet használt regiszter, mivel a legtöbb aritmetikai, logikai és adatmozggató utasitásban részt vesz. Ez a regiszter 8-bites Ar itmetikai - logikiai egység (AL U): Az ALU az akkumulátort, a flag -regisztert és néhány a programozó által nem hozzáférhetö, atmeneti regisztert tartalmaz. Az aritmetikai, logikai és léptetési müveleteket az ALU hajtja végre Utasitásr egiszter és dekóder : Az utasitás lehivás alatt az utasitás elsö byte-ja, ami a müveleti kódot tartalmazza, a belsö buszról a 8-bites utasitásregiszterbe kerül. Az utasitásregiszter tartalma alapján müködik az utasitásdekóder A

regiszter kimenetei idöjelekkel kapuzva vezérlik a regisztereket, az ALU-t, valamint az adat- és cimbuffereket. Az utasitasdekóder kimenetei és a belsö órajelgenerátor az állapot és a gépi ciklus idözitöjeleket állitják elö. A 8085A megszakítás és sor os I /O kezelése: INTR; INTA; RST 6.5; RST 75; TRAP Az INTA kimenö, a többi bemenö jel Az INTA aktiv L szinttel az jelzi elfogadott megszakitást, akárcsak a 8228 hasonló jele. Az INTR megszakitáskérö bemenet (H szintje aktiv) maszkolhato, a megszakitásengedélyezés flip-flopjának állapotát ez a mikroprocesszor hardver kimenöjelként is kiküldi (INTE). A 8085A megszakitás kérö bemenetei közül az INTR és a három RST bemenet egyaránt és egyidejüleg tilthato a DI utasitással és engedélyezhetö az EI utasitással - ezek tehát maszkolhato megszakitáskérö bemenetek. A TRAP nem maszkolhato megszakitáskérés A megszakitáskéröbemenetek prioritási sorba vannak rendezve, a legalacsonyabb

prioritásu az INTR, ezt követi az RST 5.5, az RST 65, majd az RST 75, és végul a legmagasabb prioritású a nem maszkolható TRAP. A bemenetekre adott kérés elfogadásakor automatikus szubrutinra ugrás történik, rögzitett cimekkel, igy a kulsö hardverkörnyezetnek sem a prioritás kialakitásával, sem a megszakitáskezelö szubrutin elérésével kapcsolatban nincs feladata (hacsak nagyobb számú megszakitásforrást nem épitunk be a rendszerbe, mint ahány megszakitásigény-bemenet rendelkezésre áll). Az egyes megszakitások által aktivizált szubrutinok kezdöcimei: INTR: TRAP: 2 RST 5.5: 2C RST 6.5: 34 RST 7.5: 3C A megszakitástkérö bemenö jelekkel kapcsolatos körulmények is kulönbözöek. A TRAP bemeneten a mintavételi idöszak alatt (az utasitás utolso oraciklusaban, az orajel lefuto elé után) kialakulo lefuto él vagy H szint jelzi az igényt, az RST bemeneteken a jelen lévö H szint, kivéve az RST 7.5 bemenetet: ha ezen a bemeneten bármikor

felfuto él lép fel, ez tárolodik és az utolso oraciklusban aktivizálodik. A 8085A is ismeri, és a 8080A-val azonos modon kezeli a DI/EI utasitáspárost, de ezek nem befolyásolják a TRAP nem maszkolhato megszakitáskérésének elfogadását. További lehetöségeket is kinál azonban ez a mikroprocesszor a megszakitások rugalmas kezelésére, mégpedig a soros adatkezeléssel kapcsolatban már megismert SIM és RIM utasitásokon belul. Az SIM utasitás (Set Interrupt Mask, megszakitási maszk beállitása) a SIM szot az akkumulátorbol az irhato maszkregiszterbe tölti. Láthato, hogy az RST utasitások egyenként is tilthatok, ill engedélyezhetök. Ebben a byte-ban a soros kimenet változását engedélyezö bit (D6) és az új soros kimeneti adat is (D7). Ha csak soros kimenetét kivánunk állitani, a D3 = 0, ha csak megszakitásokat kell kezelnunk, a D6 = 0. Az olvashato maszkregiszter tartalma a RIM ( Read Interrupt Mask, megszakitás-maszk-olvasás) utasitás

végrehajtását követöen jelenik meg az akkumulátorban. Ebben a RIM szoban megtaláljuk a maszkbitek pillanatnyi értékét, az INTE jelenlegi állapotát -mivel a 8085A -nál nincs hardver kimenö jel erre a funkciora - és a várakozo megszakitáskéréseket. A D7 bit a soros bemenet pillanatnyi értéke Soros I/O A 8085A mikroprocesszornál kiegészitö egységek nélkül is megvalósitható az adatmozgatás.A SID soros adatbemenet és a SOD soros adatkimenet az akkumulátor tartalmával hozhatók kapcsolatba, azaz a soros adatkezelés az akkumulátoron keresztül valósul meg. Két utasitás szolgál a soros adatátvitel kezelésére: a SIM utasitással lehet beállitani a kimenetet, a RIM utasitással lehet beolvasni a soros bemenetet. Ha a SIM adatszóval a kimenetet állitjuk, a megszakitási funkciók is változhatnak a többi bit értékétöl függöen. A SIM utasitás nem változtatja meg a jelzöbitek értékét. A RIM utasitás hatására az akkumulátorban megjelenö

RIM adatszó legfelsö (D7) bitje a soros bemenet pillanatnyi értéke. A 8085 VEZÉRL ÖÁRAM K ÖREI : A I8085A mikrprocesszort az INTEL úgy fejlesztette ki, hogy minden, korábban 8080A-hoz készitett program ezzel a processzorral is müködjön ugyan akkor a hardvertervezö, -fejlesztö feladatai egyszerüsödjenek. tulajdonképpen úgy is tekinthetö a 8085A, hogy abban a 8080A-t, a 8224-et és a 8228-at egybeintegrálta a gyártó- néhány további áramköri részlettel együtt.Ilyen kiegészités a soros be- és kimenet, valamint a belsö megszakitás kezelö rendszer.A sinek meghajtó áramköreit is beépitettek a 8085A-ba, igy csak igen nagy rendszerek esetén szükséges a külsö meghajtás. A tár- és perifériavezérlö jeleket a 8085A önállóan képzi. A beépitett óragenerátor két csatlakozási pontjára rezgökvarcot lehet kapcsolni, az a és b ábra szerint. A kis kondenzátorok a biztos berezgést segitik elö, ezek hiányában a tápfeszültség

bekapcsolásakor esetleg nem indul meg az oszcillátor müködése. Nagyon fontos figyelembe venni, hogy a 8085A külsö elemek által meghatározott órafrekvenciája - ebben az esetben a rezgökvarc rezonanciafrekvenciája - a rendszer órafrekvenciájának kétszerese, igy 1.6 MHz frekvenciájú kristályokat lehet felhasználni a 0.5 3 MHz rendszer órafrekvencia elérésére A c ábrán látható megoldás az esetleges felharmonikusberezgés ellen véd, az R értéke az RC = 1/( 2π f q) összefüggés alapján számitható ki, ahol f qa kvarc frekvenciája. Kevésbé igényes megoldás az RC tagok felhasználása. A d ábran látható elemértékek esetén az alapfrekvencia 3 MHz, igy a rendszer órafrekvenciája 1.5 MHz Külsö óragenerátor jelei is felhasználhatók Az e ábrán látható megoldást 50% alatti kitöltési tényezö esetén ajánlja a gyártó, 50% felett az f megoldást javasolják. Mivel a 8085A a RESETIN bemenetnél Schmitt-trigger jellegü belsö

áramkort tartalmaz, a már megismert RESET áramköri rendszer itt minden további nélkül kialakitható. A mikroprocesszorok közül a 8080A rendelkezik a legnagyobb kiegészitöáramkörkészlettel, ezek természetesen a 8080A rendszerek jellegzetes vezérlöjeleit fogadják. Gyakori, hogy más mikroprocesszorok mellett, igy pl: a 8085A kiegészitö áramkört alkalmazunk, ilyenkor ki kell alakitani a 8080A -nál szokásos vezérlöjeleket. A VÁRAK OZÓ (WAI T) ÁL L APOT GENERÁL ÁSA: Ha a rendszer megköveteli a lassú memória, vagy a periférikus eszközök használatát, az ábrán látható kor használható egy WAIT állapot beillesztésére minden 8085A gépiciklusba. A flip-flop választási lehetöségei: -CLK -CLEAR SYSTEM I NTERFACE: A 8085A család olyan memória komponenseket tartalmaz, amelyek kompatibilisek a 8085 CPU-val. Például a három chip-böl álló rendszer, a 8085A, 8156 és 8355 a következökkel rendelkezik -2K Byte ROM -256 Byte RAM -1

Idözitö/ Számlál -4 8 bit I / O port -1 6 bit I / O port -4 Megszakitó szint - Soros In/ Soros Out port A standard I/O mellett, a memória térkép eredményes I/O cimkezelést kinál. Ezzel a módszerrel a memóriacim-ter ületét lehet kijelölni az I/O cimek számára, felhasz- nálva a memóriacimeket az I/O manipulációban. A 8085 cpu is lehet interface a standard memóriával, ami nem igényel multiplex cim/adatbuszt EGYSZERÜ I DÖZI TÖ RENDSZER A következö ábra a 8085A müködését mutatja be az INPUT és az OUTPUT utasitások végrehajtása közben. Az M1 utasitásbeolvasás gépi ciklus alatt olvasódik be a müveleti kód, amiböl kiderül, hogy az utasitásnak második byteja is van.Az M2 tárolvasás gépi ciklus alatt érkezik be a bemeneti vagy kimeneti eszköz cime Ezeknek a cimeknek a megismétlése a felsö cimbitekben azzal az elönnyel jár, hogy a perifériák cimkezelésénél nincs szükség az ALE jel kezelésére, azaz a multiplexelt adat- és

cimsin szétválasztására, hiszen a cimek a felsö cimbitekben is rendelkezésünkre állnak Az IO/M vezérlöjel M1 és M2 alatt L szintü, az M3-ban a perifériakezelési müveletre a H szintje utal. Az INPUT és OUTPUT utasitások nem befolyásolják a jelzöbiteket. Az I 8279 bi l l ent y ûz et / k i j el z õ v ez ér l õ A KDC egy i nt el l i gens por t , amel y k et t ôs f el adat ot l át el . A bi l l ent yûzet kezel ô az adat bev i t el i - a k i j el z és v ez ér l ô az adat megj el ení t és i mûv el et ek et k ez el i 8/ 16 bi t es mi kr oszámí t ógépek ben. A bi l l ent y ûz et k ez el ô hár om k ül önbözô üzemmódban - l ek ér dez és es , mát r i x os , él v ez ér el t beol v asás - f i gyel i a max i mál i s an 8* 8 bi l l ent y ûbôl ál l ó bi l l ent yûzet et , i l l et ve a k ét k i egés z í t ô v ez ér l ô bi l l ent yût - SHI FT, CNTRL - , ha ér z ék el i v al amel y i k bi l l ent yû l enyomását egy k i menet i

v onal on j el z i a mi k r opr ocesszor nak. A k i j el z ô v ez ér l ô 8/ 16 s z ámj egy bôl ál l ó k i j el zôt kezel mul t i pl ex üz emmódban. 1. A bi l l ent yûzet / ki j el zõ f el épí t ése és mükõdése DB 0-7 RESET RD CLK WR A CS 0 vezér l õ bel sõ IRQ adat buffer I/O vezérlés FIFO/ /mátrix RAM állapot regiszter 16*8 kijelzô RAM vezérlés idôzitô regiszterek 8*8 FIFO/ /sensor RAM billentyûzet vezérlés kijelzô regiszterek idôzités kezelô kiválasztó számláló return kijelzô cím regiszterek OUT A 0-3 OUT B 0-3 BD CNTL/ /STB SL 0-3 RL 0-7 SHIFT 1. 1 ábr a A 8279 bel s ô f el épí t és e 1. 1 Adat busz buf f er A hár omál l apot ú, két i r ány ú, 8 bi t es buf f er en k er es z t ül k ommuni kál a KDC a mi k r opr oc es s z or r al . Mi nd az adat , mi nd az ál l apot / vezér l ô by t e- k a buf f er en k er es z t ül moz ognak a mi kr opr ocessz or és a KDC k öz öt t . DB0 - DB7 A KDC buf f er

k ül s ô adat v onal ai , mi kr oszámí t ógép adat bus z ár a c s at l ak oz nak . 1. 2 I r ás/ ol vasás vezér l ô amel y ek a A mi kr opr ocesszor vez ér l ô j el ei t f ogadj a és az ok f üggv ényében mûködt et i a bi l l ent y ûz et k ez el ôt és a k i j el zô vezér l ôt . A vez ér l ô az al ábbi j el ek et f ogadj a a mi k r opr ocesszor t ól : WR ( Wr i t e) / í r ás / A KDC í r ás vezér l ô bemenet e, amel y ha WR =" 0" l es z , az i nt er f ace adat , - v agy v ez ér l ô by t e- t f ogad a pr ocesszor t ól ( ha ki v an v ál as z t v a) . RD ( Read) / ol vasás/ A KDC ol vasás vezér l ô bemenet e, amel y ha RD =" 0" l es z , az i nt er f ace adat , v agy ál l apot by t e- t k ül d a pr ocesszor nak ( ha ki v an v ál as z t v a) . CS ( Chi p Sel ect ) / por t k i v ál as z t ás / A ki vál aszt ás bemenet engedél y ez i / t i l t j a a KDC mûködését . A mi kr opr oc es s z or nem ol v as hat j a/ í r

hat j a az eszközt , ha az ni ncs ki vál aszt va ( CS=" 1" ) . Ebben az eset ben az adat bus z l ebegô ál l apot ban v an és az RD - és WR j el eknek ni nc s hat ás a a KDC- r e. A0 ( Buf f er Addr ess) / buf f er c í m/ Az adat és az ál l apot / v ez ér l ô by t e- k megkül önbözt et ésér e s z ol gál í r ás és ol v as ás mûvel et ek al at t . Ha A0 =" 0" a by t e adat , ha A0 =" 1" , ak kor ál l apot / vezér l ô i nf or mác i ó. Az A0 bemenet et ál t al ában a ci mbusz A0 c í mv onal ár a k öt i k . 1. 3 Vezér l ô- és i dôzí t ôr egi s z t er ek A v ezér l ô r egi szt er f ogadj a és i dei gl enes en t ár ol j a a bi l l ent yûzet kezel ô- és a k i j el z ô v ez ér l ô üz emmódj ai t meghat ár ozó vezér l ô by t e- k at . A beol v as ot t üz emmód par anc sot a KDC dekódol j a és beál l í t j a a megf el el ô üz emmódot . Az i dôzí t ô r egi szt er az i dôel ôs z t ó k ons t ans t ôr

z i , amel y et a Pr ogr am Cl oc k v ez ér l ô by t e- ban k ap meg a mi k r opr ocesszor t ól . A KDC a mi k r opr oc es s z or t ól a v ez ér l ô by t e- t akkor ol vas be, ha az A0 =" 1" és a WR =" 0" . Az i dôz í t ô el ôoszt ó- és a v ez ér l ô i nf or mác i ók at a v ez ér l ô by t e B5 .B7 bi t j ei al apj án k ül önböz t et i meg a KDC A v ez ér l ô- és az i dôzi t ô r egi s z t er ek az al ábbi j el ek et f ogadj ák: bemenet i CLK ( Cl ock) / ór aj el / A bel sô i dôzí t ések hez s z ük s éges ór aj el bemenet . Ál t al ában a pr ocessz or ór aj el ét k el l r ák öt ni . RESET ( Reset ) / al aphel y z et be ál l í t ás / Ha a RESET=" 1" a bi l l ent y ûz et k ez el ô- és k i j el z ô v ezér l ô ár amkör al aphel y z et be k er ül , ahol a KDC a k övet kezô üzemmódokat ál l í t j a be: - ki j el zô 16x 8- bi t es bal ol dal i adat ki j el z és s el 2 s z ámj egy k i j el z és ,

- bi l l ent yûzet - k ódol t bi l l ent y ûl et apogat ás , bi l l ent yû l enyomás t i l t ás - i dôel ôoszt ó - az os z t ás i t ény ez ô=31 k et t ôs 1. 4 I dôz í t ô Ez a bl okk t ar t al maz egy i dôos z t ó l ánc ot , amel y el ôál l í t j a a bi l l ent y ûz et és a k i j el z ô mûk ödés éhez s z ük s éges i dôzí t éseket . Az os z t ól ánc egy el ôos z t óból és egy oszt óból ál l . Az el ôos z t ás ér t ék ét az i dôz í t ô el ôos zt ó r egi szt er t ár ol j a, amel y et a f el has z nál ó hat ár ozhat meg. Az el ôos z t ó a CLK k ül s ô ór aj el bôl egy 100 k Hz- es bel sô ór aj el et ál l í t el ô, ami egy 5, 1 ms - os bi l l ent yûzet ki vál aszt ás i és egy 10, 3 ms- os l et apogat ás i per i ódusi dôt j el ent . Az os z t ó az el ôos z t ó ál t al meghat ár ozot t bel sô ór aj el bôl ál l í t j a el ô a bi l l ent y ûs or , a bi l l ent yûzet mát r i x és a k i j el z ô l et

apogat ás i i dôk et . Az i dôzi t ô kezel ô az al ábbi k i menet et k ez el i : 3 BD ( Bl ank Di spl ay) / Ki j el z ô t ör l és / Ez a ki menet t ör l i a k i j el z ôt v agy s z ámj egy v ál t ás al at t , vagy a ki j el z ô t ör l és par anc s hat ás ár a. 1. 5 Ki vál aszt ó száml ál ó A s z áml ál ó a bi l l ent y ûz et mát r i x s or ai t és a k i j el z õ s z ámj egyei t vál aszt j a k i a bi l l ent y ûz et l et apogat ás i és a k i j el zõ mul t i pl ex el t k i v ál as z t ás i c i k l us ai ban. Két üz emmódban mûködhet : kódol t , dek ódol t . Kódol t üzemmódban a sz áml ál ó bi nár i s an k ódol t f or mában ( 16 kombi náci ó - > 4 v onal ) hat ár oz z a meg az ak t uál i s k i v ál aszt ási vonal at , amel y bõl egy k ül s õ dek óder meghat ár ozza a t ényl eges bi l l ent y ûz et s or és a k i j el z õ s z ámj egy ki vál aszt ó vonal at . Ebben az üz emmódban max i mum 8 bi l l ent yû sor

t és 16 k i j el z õ egy s éget t ud k ez el ni a KDC. Dekódol t üzemmódban a s z áml ál ó dek ódol j a a k ét l egal acsonyabb hel yér t ék û bi t et ( 4 k ombi nác i ó - > 1 k i menet ) és a ki vál aszt ó v onal ak k öz v et l enül meghaj t anak egy bi l l ent yûzet l et apogat ás i és egy k i j el z õ s z ámj egy k i v ál aszt ó vonal at . Dek ódol t üz emmódban c s ak négy bi l l ent yû sor t és négy k i j el z õ egy s éget k ez el a KDC. Mi nd a bi l l ent yûzet , mi nd a k i j el z õ c s ak az onos üz emmódban mûködhet . Pél dául ha a bi l l ent y ûz et k ódol t üz emmódban van, akkor a k i j el z õ i s c s ak ebben az üz emmódban üzemel het . Kódol t üz emmódban a k i v ál as z t ó v onal ak akt i v ál l apot ban magas , dek ódol t üz emmódban ak t i v ál l apot ban al acsony szi nt en v annak . SL 0 − SL 3 ( Scan Li nes) / Ki v ál as z t ó v onal ak / Ezek a vonal ak a bi l l ent y ûz et - , a k apc s ol ó

mát r i x és a ki j el zõ számj egyek egy s or át , v agy egy s z ámj egy ét v ál aszt j ák ki . 1. 6 Bi l l ent yûzet oszl op l et apogat ás i buf f er A buf f er t ár ol j a a bi l l ent y ûz et l et apogat ás i os z l opok - ál l apot át . v onal ak - RL 0 − RL 7 ( Ret ur n Li ne) / Let apogat ás i v onal ak / . A l et apogat ási vonal ak a bi l l ent y û- v agy a k apc s ol ó mát r i x oszl opai val v annak ös s z ek öt v e l et apogat ás os és mát r i x üzemmódokban, i l l et v e 8 bi t es bemenet k ént használ hat ók él vez ér el t üz emmódban. A bemenet ek r e bel sõ f el húzó el l enál l ás ok at k apc s ol nak , amel y ek ezeket a vonal akat l ogi k ai magas s z i nt en t ar t j ák al apál l apot ban - ha ni nc s l eny omv a a bi l l ent y û - . 1. 7 Bi l l ent yû l enyomás el l enõr z õ A l et apogat ásos üzemmódban a KDC c i k l i k us an el l enõr z i a l et apogat ási vonal akat , hogy meg t udj a hat ár oz ni ,

hogy l eny omt ák- e val amel yi k bi l l ent y ût . Ha a bi l l ent y û l eny omás el l enõr zõ debounc e c i r c ui t t al ál egy l eny omot t bi l l ent y ût , v ár k b. 10 ms- ot , maj d i smét el l enõr z i a bi l l ent y ût , hogy az z ár v a mar adt - e. Ha i gen, ak k or a bi l l ent y û mát r i x bel i 4 c i me pl ussz a Shi f t és a Cnt r l FI FO- ba. v onal ak ál l apot a bek er ül a A mát r i x üzemmódban a l et apogat ás i + Shi f t és Ac nt r v onal ak ál l apot a a l et apogat ás ut án k öz v et l enül bek er ül a FI FO megf el el õ sor ába. Az él v ez ér el t beol v as ás üz emmódban a l et apogat ási vonal ak ál l apot át a KDC beol v as s a a CNTL/ STB bemenet r e adot t i mpul z us f el f ut ó él ér e és át adj a a FI FO- nak. SHI FT ( Shi f t ) / Shi f t bemenet / A Shi f t bemenet et a KDC a l et apogat ás i v onal ak k al együt t ol vassa be és t ár ol j a a FI FO- ban l et apogat ás os és mát r i x

üzemmódok ban. A bemenet r e egy bel s õ f el húz ó el l enál l ás van r ák öt v e, amel y a bemenet i v onal at magas szi nt en t ar t j a al apál l apot ban. CNTL/ STB ( Cont r ol / St r obed I nput Mode) / Cont r ol / él vezér el t bemenet / A Cont r ol bemenet et a KDC a l et apogat ás i v onal ak k al együt ol vassa be és t ár ol j a a FI FO- ban l et apogat ás os és mát r i x üzemmódokban a Shi f t bemenet hez has onl óan. Él vezér el t beol vasás üz emmódban a bemenet r e adot t f el f ut ó él a beol v as ás pi l l anat át hat ár oz z a meg. A bemenet r e egy bel sõ f el húz ó el l enál l ás v an r ák öt v e, amel y a bemenet i v onal at magas s z i nt j én t ar t j a al apál l apot ban. 1. 8 FI FO/ mát r i x RAM Ez a bl okk egy ket t õs f unk c i ój ú 8x 8 bi t es RAM. Lek ér dezéses és él vezér el t üz emmódok ban a FI FO f unk c i ót l át j a el . Mi nden egyes bev i t t új adat a s or onk öv et k ez õ FI FO pozi ci

óba ker ül és mi ndegy i k ük a bev i t el s or r endj ében ol vashat ó k i . A FI FO ny i l v ánt ar t j a, hogy hány kar akt er t t ár ol , i l l et v e az t , hogy ür es - e, v agy t el i . Ha az ür es FI FO- ból ol v as , v agy a t el i FI FO- ba i r a mi k r opr ocesszor hi baüzenet et ál l i t el õ a KDC, amel y a FI FO ál l apot r egi szt er ébe k er ül , A mát r i x üz emmódban a memór i a egy RAM mát r i x , amel y mi nden egy es s or ába a bemenet i mát r i x megf el el õ s or ának ál l apot a k er ül bet öl t ésr e. 1. 9 FI FO ál l apot r egi szt er A r egi szt er a l ekér dezés es és az él v ez ér el t üz emmódok ban has z nál at os a FI FO- ban l év õ k ar ak t er ek s z ámának és az es et l eg bekövet kezõ hi bák j el z és ér e. Ebben a k ét üz emmódban két hi ba f or dul hat el õ: t úl c s or dul ás és al ul c sor dul ás. A t úl csor dul ás ak k or k öv et k ez i k be, ami k or a már t el i FI FO- ba új abb

adat ot pr óbál unk meg bei r ni . Az al ul c sor dul ást az okoz z a, hogy a CPU az ür es FI FO- ból ak ar ol vasni . A FI FO ál l apot r egi s z t er j el z i , ha a k i j el zõ RAM el ér het et l en, mi v el a " Cl ear Di s pl ay " , v agy a " Cl ear Al l " par ancsok nem t el j es ül t ek . A mát r i x üz emmódban a FI FO ál l apot r egi s z t er j el z i , hogy a mát r i x RAM- ban l egal ább egy k apc s ol ó l eny omot t ál l apot ban v an. 5 Spec i ál i s hi ba üzemmódban az S/ E bi t hi baj el et gener ál v al ahányszor egyi dej û t öbbs z ör ös z ár ás - hi ba j el ent k ez i k . MSB D LSB S/ E O U F N N N ahol az egyes bi t ek j el ent és e a k öv et k ez õ: D- a ki j el zõ el ér het et l en S/ E egy bi l l ent y û l eny omv a, v agy t öbbs z ör ös bi l l ent yû l enyomás hi ba O- t úl csor dul ás hi ba U- al ul csor dul ás hi ba F - a FI FO megt el t N- a FI FO- ban l évõ k ar ak t er ek s z áma A

FI FO ál l apot a ol vas ás i mûv el et t el k i ol v as hat ó az ál l apot r egi szt er bõl , ha RD ="0",CS ="0" és A0=" 1" . Az ál l apot r egi szt er megszak i t ás t gener ál , ha a FI FO- ban adat v an, i l l et ve ha a RAM- ban adat v ál oz ás t és z l el . I RQ ( I nt er r upt Request ) / Megs z ak i t ás k ér és / Lekér dezéses és él v ez ér el t üz emmódok ban az I RQ=" 1" l esz, ami kor adat v an a FI FO- ban, v agy mát r i x RAMban. A megszaki t ás v onal al ac s ony r a v ál t , ha a mi kr opr ocesszor ki ol v as egy by t e- t a FI FO- ból , v agy a mát r i x RAM- ból . Mát r i x üz emmódban az I RQ=" 1" l es z ak kor ami kor a mát r i x ban v ál t oz ás t ör t éni k . 6 1. 10 Ki j el zõ ci mr egi szt er A k i j el zõ ci mr egi szt er ek t ár ol j ák , hogy a CPU a k i j el z õ RAM mel yi k r egi szt er ébe/ bõl i r t , v agy ol v as ot t ut ol j ár a adat ot . A ki j el zõ

RAM i r ás / ol v as ás ci mei t v agy a CPU ál l í t j a be, vagy aut omat i k us an nônek a c í mek mi nden egy es í r ás / ol vasás mûvel et ut án a KDC üz emmódj át ól f üggõen. 1. 11 Ki j el zõ- RAM és r egi s z t er A k i j el zõ r egi szt er t ár ol j a a k i j el z õnek k i k ül dendõ adat ok at , amel yeket a mi k r opr oc es s z or i r t be a 16* 8 bi t es k i j el zõ RAM- ba. A k i j el z õ RAM c í mei t a k i j el z õ c í mr egi szt er hat ár ozza meg. A RAM t ar t al mát a CPU k öz v et l enül ki ol vashat j a mi ut án beál l i t ot t a a megf el el õ üz emmódot és ci met . OUTA0 − OUTA3 , OUTB0 − OUTB3 ( Out pus ) / Ki menet ek / Ez a két ki menet i por t t ov ábbi t j a a 16x 4 bi t es k i j el zõ f r i ssi t õ r egi s z t er t ar t al mát a k i j el z õnek . A k i menet i por t ok s z i nk r oni z ál z a v annak az SL0 .SL3 k i vál aszt ó vonal akk al . A k ét por t k ez el het õ egy et l en 8 bi t es egységként i

s . RL 2 RL 3 CLK IRQ RL 4 RL 5 RL 6 RL 7 RESET RD WR DB 0 DB 1 DB 2 DB 3 DB 4 DB 5 DB 6 DB 7 GND 1 40 5 35 10 30 15 25 20 21 U CC RL 1 RL 0 CNTL/STB SHIFT SL 3 SL 2 SL 1 SL 0 OUT B0 OUT B1 OUT B 2 OUT B3 OUT A0 OUT A 1 OUT A 2 OUT A 3 BD CS A0 1. 2 ábr a A 8279 l ábk i os z t ás a 2. A bi l l ent yûzet üzemmódj ai kezel õ- ki j el zõ vezér l õ 2. 1 Bi l l ent yûzet kezel és üz emmódok 2. 1 1 Lekér dezés üzemmód Többs z ör ös bi l l ent yû l eny omás t i l t ás Ha l enyomt unk bi l l ent yû( k e) t l et apogat ás i c i k l us ban: 7 a. ha egy bi l l ent yût ny omunk l e, a l eny omás el l enör z ô al aphel yzet be ker ül . A k öv et k ez õ k ét l et apogat ás i c i k l us sor án a KDC megv i z s gál j a, hogy ny omt unk- e l e új abb bi l l ent yûket . Ha nem ny omt unk le új abb bi l l ent yût , a KDC a bi l l ent y û poz i c i ót , a Cnt l és Shi f t v onal akkal együt t beol v as s a a FI FO- ba. Ha a FI FO ür es v

ol t az I RQ vonal j el z i a CPU- nak , hogy adat k er ül t a FI FO- ba. Ha a FI FO t el e v ol t , a bi l l ent y û poz i c i ót nem ol v assa be a KDC és hi baj el z és t ad k i . b. ha az el õször l enyomt at ot t bi l l ent y û mel l et t t ov ábbi , l eny omot t bi l l ent yû( k e) t t al ál a k öv et k ez õ k ét l et apogat ási ci kl usban, a KDC v ár , ami g c s ak egy et l en egy bi l l ent yû mar ad l eny omv a. Ha ez bek öv et k ez et t , ak k or KDC a l enyomot t bi l l ent y û poz i c i ót , a Cnt l és Shi f t vonal akkal egy üt t beol v as s a a FI FO- ba. Ha egy bi l l ent yût l enyomt unk és az el l enõr z õ l et apogat ás i c i k l usokban új abb bi l l ent y ût ny omt unk l e, ak k or a KDC annak a bi l l ent yûnek a k ódj át ol v as s a be, amel y i k ut ol j ár a mar ad l enyomv a. c . ha két vagy t öbb bi l l ent y ût ny omunk l e egy s z er r e, a l enyomás el l enör zô ez t t öbbs z ör ös bi l l ent y û l eny omás nak

ér z ékel i . A KBD nem az onos i t j a egy i k bi l l ent y ût s em mi ndaddi g, ami g t öbb bi l l ent y û v an l eny omv a. Ha már c s ak egy bi l l ent yû mar ad l eny omv a az el õz õ k ét es et hez has onl óan ol vassa be a KDC az adat ok at . Többs z ör ös bi l l ent yû l eny omás k ez el és Ez az üzemmód mi nden bi l l ent y ûl eny omás t egy más t ól f ügget l enül kezel . Ha egy bi l l ent y ût ny omt unk l e, a l eny omás el l enör zô v ár k ét bi l l ent y ûz et l et apogat ás i c i k l ust , maj d el l enõr zi , hogy az adot t bi l l ent y û l e v an- e még nyomva. Ha i gen, a bi l l ent y û k ódj a bek er ül a FI FO- ba Egy i dej ûl eg t öbb bi l l ent y ût i s has z nál hat unk , a por t v al amennyi t azonosi t j a és a k ódj uk bek er ül a FI FO- ba. Ha t öbb bi l l ent yût nyomunk l e a bi l l ent y ûk az onos i t ás a és a bi l l ent yû kódok beol vas ás a a FI FO- ba a megt al ál ás s or r endj ében t ör t

éni k. Spec i ál i s hi bekezel és A t öbbször ös bi l l ent y û üz emmódhoz a f el has z nál ó hoz z ár endel het egy spec i ál i s hi baüz emmódot . Ez az " End I nt er r upt / Er r or Mode Set " par anc c s al ál l i t hat ó be. A l et apogat ás és a bi l l ent y û l eny omás el l enõr z és ugy anúgy t ör t éni k mi nt az el õzõ üz emmódban. Ha egy az on l et apogat ás c i k l uson bel ül két vagy t öbb bi l l ent y üt t al ál l eny omv a a por t , ezt t öbbször ös bi l l ent y ûl eny omás k ént ér z ék el i és hi baüzenet et ad ki . Ez az üz enet meghi ús i t mi nden t ov ábbi bei r ás t a FI FO- ba és megs z ak i t ás t er edmény ez / ha eddi g még ez nem t ör t ént meg/ . A hi baüz enet a FI FO ál l apot r egi szt er ébõl ol v as hat ó. A hi baüz enet t ör öl het õ egy nor mál CLEAR par ancs k ül dés év el ( C f = 1- el ) . 2. 1 2 Mát r i x üzemmód 8 Ebben az üzemmódban a l eny omás el l

enör z és l e v an t i l t v a. A k apcsol ó mát r i x ál l apot a k öz v et l enül a mát r i x RAM- ba k er ül . I gy a mát r i x RAM a k apc s ol ók pi l l anat ny i ál l apot át ny i l v ánt ar t j a. Mi vel a l et apogat ás l ogi k a l e v an t i l t v a, ennek az üzemmódnak megv an az az el õny e, hogy a CPU t udj a, meddi g vol t a k apc s ol ó z ár t / / ny i t ot t ál l apot ban. Hogy könnyebb l egyen a s z of t v er has z nál at a, s or ok ba k el l c s opor t osi t ani a a kapc s ol ók at , mi v el a CPU ebben a f or mában ol vassa be õket . Az I RQ vonal magasr a v ál t , ha bár mel y k apc s ol ó ál l apot a megv ál t ozi k a kapcsol ó mát r i x l et apogat ás a s or án. Az I RQ v onal at t ör l i vagy az el s õ adat beol v as ás a KDC- r õl , ha az " Aut omat i kus ci mnövel és" üz emmódban v an, v agy az " End I nt er r upt " par ancs, ha " Nor mál c i mnöv el és " üz emmódban v an a KDC. Megj

egyzés: Többször i megs z aki t ést okozhat . vál t oz ás a k apc s ol ó mát r i x ban t öbb 9 2. 2 Bi l l ent yûzet adat f or mát um 2. 2 1 A beol SHI FT al ábbi Bi l l ent yû l ekér dez és üz emmód vasot t byt e, amel y a bi l l ent y û- poz i c i ót , a CNTL és vonal ak ál l apot át t ar t al maz z a bek er ül a FI FO- ba az f or mát umban: MSB Cnt l LSB Shi ft Sca n v onal ak Ret ur n v onal ak 2. 2 2 Mát r i x üzemmód A l et apogat ási vonal ak ál l apot a k öz v et l enül k er ül be a mát r i x RAM azon sor ába, amel y megf el el a mát r i x éppen l et apogat ot t sor ának. I gy mi nden egy es bi l l ent y û poz i c i ó k öz v et l enül van l eképez v e a mát r i x RAM megf el el õ poz i c i óban. A SHI FT és CNTL bemenet ek et nem has z nál j a a KDC ebben az üzemmódban. Megj egyzés: Nemcsak k apc s ol ók c s at l ak oz hat nak l et apogat ási vonal akhoz ebben az üz emmódban. MSB RL7 a LSB RL6 RL5 RL4 RL3

RL2 RL1 RL0 2. 2 3 Él vezér el t üzemmód Az adat ok szi nt én a l et apogat ás i v onal ak on k er es z t ül j ut nak a FI FO- ba. Az adat a CNTL/ STB v onal r a adot t i mpul zus f el f ut ó él ér e k er ül beol v as ás r a. Az adat ot a KDC beol v ashat j a egy kódol t bi l l ent y ûz et r õl v agy egy s z er û k apc s ol ó mát r i xr ól i s. MSB RL7 LSB RL6 RL5 RL4 RL3 RL2 RL1 RL0 2. 3 Ki j el zõ adat f or mát um 2. 3 1 Bal ol dal i adat ki j el z és A bal ol dal i adat ki j el z és a l egegy s z er ûbb k i j el z és i f or mát um, mel yben mi nden k i j el z õ poz i c i ó k öz v et l enül megf el el egy byt e- nak( v agy egy ni bbl e- nek ) a k i j el z õ RAMban. A 0 1 2 3 4 5 6 A A b A b C A b C d A b C d E A b C d E F A b C d E F 10 0 7 A b C d E F 0 1 2 b C d E F 0 1 0- s c i m a RAM- ban a bal s z él s õ k ar ak t er , a 15- s ci m( vagy a 7- es ci m 8- kar akt er es ki j el z õ

es et én) pedi g a j obbs z él s õ k ar ak t er a ki j el zõn. Mi v el a bemenõ k ar ak t er ek a 0 poz i c i ót ól kezdve ér k ez nek , ez ér t a k i j el z õ bal r ól t öl t õdi k f el . A 17 ( vagy 9 ) k ar ak t er i s mét a bal s z él s õ poz i c i ór a ker ül , a megj el eni t és i nnen f ol y t at ódi k . 2. 3 2 Jobbol dal i adat ki j el z és A j obbol dal i adat ki j el z és t has z nál j a a l egt öbb el ek t r oni kus számol ógép. Az el s õ k i j el z endõ s z ám a k i j el zõ j obb szél én hel y ez k edi k el . A k öv et k ez õ bemenet ugy aner r e a 0 1 2 3 4 5 6 7 A A b A b C A b C d A b C d E A b C d E F A b C d E F 0 A b C d E F 0 1 b C d E F 0 1 2 hel y r e ker ül mi ut án az el õz õ k ar ak t er egy poz i c i óny i t bal r a ugr ot t . A bal szél s õ k ar ak t er a k i j el z õ s z él én t úl r a k er ül v e el vész. Megj egy ez z ük , hogy i t t a k i j el z õ poz i c i

ó és a r egi szt er ci m nem f el el nek meg egy más nak . Köv et k ezésképpen, egy k ar ak t er bev i t el e egy t et s z õl eges poz i c i ór a aut omat i kus k i j el z õc i m növ el õ üz emmódban nemv ár t er edményr e vezet het . Aj ánl at os a k i j el z õ RAM 0 c i mér õl kezdeni az adat megj el eni t és t . 2. 3 3 Aut omat i kus ki j el z õc i m növ el és Bal ol dal i adat ki j el zés üz emmódban, az aut omat i k us c i mk ezel és eset én a ci m növ ek s z i k eggy el mi nden i r ás i mûv el et ut án és a kar ak t er a k öv et k ez õ poz i c i ón j el eni k meg. Nem- aut omat i kus ci mk ez el és nél a bemenet ugy anar r a a RAM- c i mr e és ki j el zõ poz i c i ór a v onat k oz i k . Aut omat i k us növ el és eset én egy t et s z õl eges c i mr e t ör t énõ bev i t el nem k i v ánat os követ kezmények hez v ez et het és az er edmény el õr e nem l át hat ó. A j obbol dal i adat ki j el z és üz emmódban az aut omat i k

us- és nem- aut omat i kus ci mkezel és ugy anaz t er edmény ez i , mi nt a bal ol dal i adat ki j el zésnél , k i v év e ha a f ol y amat os c i mz és megs z akad. 11 2. 3 4 8/ 16 kar akt er es k i j el z õ f or mát umok Ha a ki j el zõ üzemmódot 8 k ar ak t er es r e ál l i t j uk , a k i j el zési ci kl us i dõ f el ér e c s ök k en a 16 k ar ak t er es üz emmódhoz képest ( pl . 100 k Hz - es bemenõ f r ek v enc i án a 8 k ar ak t er es üzemmódban egy s or t 5. 1 ms al at t , a 16 k ar ak t er esben pedi g10. 3 ms al at t t apogat l e) 12 3. A bi l l ent yûzet pr ogr amozása kezel õ- ki j el zõ vezér l õ 3. 1 Bi l l ent yûzet / ki j el z õ üz emmód beál l i t ás MSB 0 LSB 0 0 D D K K K DD bi t ek j el ent és e ( k i j el z õ üz emmódok ) 0 0 8 db 8 bi t es k ar ak t er k i j el z és e bal r ól bet öl t ve 0 1 16 db 8 bi t es bal r ól bet öl t v e 1 0 8 db 8 bi t es k ar ak t er k i j el z és j obbr ól bet

öl t ve 1 1 16 db 8 bi t es j obbr ól bet öl t v e k ar ak t er k ar ak t er k i j el z és e k i j el z és e KKK bi t ek j el ent és e 0 0 0 Kódol t l et apogat ú bi l l ent y ûz et bi l l ent yû l eny omás t i l t ás k et t õs 0 0 1 Dekódol t l et apogat ás ú bi l l ent y ûz et bi l l ent yû l eny omás t i l t ás k et t õs 0 1 0 Kódol t l et apogat ás ú l enyomás f el i s mer és 0 1 1 Dekódol t l et apogat ás ú bi l l ent y ûz et l enyomás f el i s mer és 1 0 0 Kódol t l et apogat ás ú mát r i x 1 0 1 Dekódol t l et apogat ás ú mát r i x 1 1 0 Él vezér el t bev i t el , k ódol t k i j el z õ l et apogat ás 1 1 1 Él vezér el t l et apogat ás bi l l ent y ûz et bev i t el , N bi l l ent y û N bi l l ent y û dek ódol t k i j el z õ 3. 2 I dõzi t és MSB 0 LSB 0 1 P P P P P Az i dõzi t éseket és a mul t i pl ex el t j el ek et a bel s õ el õos zt ó ál l i t j a el õ a k ül

s õ CLK ór aj el bõl . Az el õos z t ó l eos z t j a a kül sõ ór aj el et egy pr ogr amoz hat ó egés z s z ámmal , amel yet a PPPPP bi t ek hat ár oz nak meg. Az el õos zt ási ér t ék 2 és 31 k öz öt t v ál t oz hat . Az el õos z t ó ér t ék ének ki vál aszt ása megadj a a l et apogat ás i és a bi l l ent yû l enyomás vi zsgál at c i k l us i dej ét i s . 13 Pél dául ha a CLK=2 MHz, a PPPPP- t 10100- r a kel l hogy megkapj uk a 100 k Hz - es l et apogat ás i - és l eny omás vi zsgál at i f r ekv enc i át . ál l i t ani , bi l l ent y û 3. 3 FI FO/ mát r i x RAM ol v as ás a MSB 0 LSB 1 0 AI X A A A A par ancs ki adása ut án a CPU k i ol v as hat j a a KDC FI FO/ mát r i x RAM t ar t al mát . Let apogat ot t bi l l ent y ûz et üz emmódban az aut omat i k us c i mnöv el és f l aggel ( AI ) és a RAM c i mbi t ekkel ( AAA) nem f ogl al k oz i k a por t . Az adat k i ol v asás ugyanabban a s or r endben t ör t éni k , mi

nt ahogy an az adat a FI FO- ba ér kez et t . A par anc s k i adás a ut án mi nden egy es ol vasás a FI FO- ból t ör t éni k , ami g más par anc s ot nem adunk ki . Mát r i x üzemmódban a RAM c i mbi t ek ( AAA) megj el öl nek egy et a mát r i x RAM nyol c sor ából . Ha az AI f l ag be v an ál l i t v a ( AI = 1) , mi nden egy más ut áni ol v as ás a mát r i x RAM k öv et k ezõ sor ából t ör t éni k . 3. 4 Ki j el zõ RAM ol vasása MSB 0 LSB 1 1 AI A A A A A par ancs hat ásár a a CPU el õk és z i t i a KDC- et a k i j el z õRAM ol vasásár a. Az AAAA c í mbi t ek k i v ál as z t ás ának egy et a k i j el zõ RAM 16 sor ából . Ha az AI bi t be v an ál l i t v a ( AI =1) , akkor ez a sor ci m mi nden egy es k i j el z õ- RAM i r ás, v agy ol vasás eset én eggy el nõ. Mi v el ugy anaz t a s z áml ál ót használ j a a por t az i r ás hoz és ol v as ás hoz , ez ér t ez a par ancs ál l i t j a be a k öv et k ez õ ol v as ás , v

agy i r ás c i mét . 3. 5 Ki j el zõ RAM i r ása MSB 1 LSB 0 0 AI A A A A A par ancs beál l i t j a a KDC- t , hogy a mi k r opr oc es s z or í r ni t udj on a ki j el zõ- RAM- ba. A par anc s k i adás a ut án mi nden í r ás müvel et ( A 0 = 0) a k i j el z õ RAM- ba t ör t éni k . A c i mk ezel és és az aut omat i k us c i mnöv el és f unk c i ók ugy anazok, mi nt a ki j el zõ RAM ol v as ás ak or . Ez a par ancs nem bef ol y ás ol j a, hogy a k i j el z ô k öv et k ez ô ol v as ási müvel et e mel y i k RAM- r a vonat k oz i k - ki j el zô, v agy FI FO/ mát r i x RAM - . 3. 6 Ki j el zõ i r ás t i l t ás / t ör l és 14 MSB 1 0 1 X A B A LSB IW IW BL BL Az I W bi t ek engedél yezhet i k / t i l t hat j ák az A. B 4 bi t es k i menet i por t ok használ at át , ha a k i j el z õt k ét 4 bi t es egy s égként kezel j ük. Ha v al amel y i k 4 bi t es por t I W bi t j ét beál l i t j uk ( I W=1) és adat ot i r unk a k

i j el z õ RAM- ba, a por t hoz t ar t ozó RAM t er ül et r e nem k er ül adat . Tehát a k i j el zõ RAM egy 8 bi t es s or át k ét 4 bi t es egy s égk ént i s has z nál hat j uk és a 4 bi t es por t ok egy BCD dek ódol ó bemenet ét haj t hat j ák meg. A BL bi t ek meghat ár ozzák , hogy a k i j el z õ mel y i k r és z ét k el l t ör öl ni - A. B por t ok - A t ör l és bi t ek l ehet õv é t es z i k a ki j el zõ t ör l ését 4/ 8 bi t es egy s égk enk ént i s . A t ör l és kódot az ut ol só k i adot t " Cl ear " par anc s hat ár oz z a meg. 15 3. 7 Tör l és MSB 1 LSB 1 0 CD CD CD CF A C D bi t ek azt az ér t ék et ál l i t j ák be, k i j el zô RAM- ba, mi nt t ör l és i k ód: B4 1 1 1 B3 0 1 1 B2 X 0 1 CA amel y bek er ül a C D bi t ek j el ent és e nul l a k er ül a RAM- ba AB=20H = ( 00100000) egy k er ül a RAM- ba A C D ( B2 .B3 ) bi t ek csak ak k or t ör l i k a k i j el z õt , ami k or C D =1 ( B4

) vagy C A =1. A C D ( B4 ) bi t engedél y ez i / t i l t j a a t ör l ést . Az al at t az i dõ al at t ami al at t a k i j el zõ- RAM t ör l õdi k, ( 160 mi kr os ec ) nem i r hat unk bel e. A FI FO ál l apot r egi szt er MSB bi t j ét ek k or ál l i t j a be a KDC. Ha ez ut án a ki j el zõ- RAM i s mét el ér het õ l es z , ak k or aut omat i kusan al aphel yzet be ál l . Ha a C F =1, akkor a FI FO ál l apot r egi s z t er t ör l õdi k és a megs z aki t ási vonal - I RQ - al aphel y z et be k er ül , t ov ábbá a mát r i x RAM mut at ój a a 0. s or r a f og mut at ni Ha a C A =1 a t ör l ési kód " 1" l esz. Ennek a bi t nek ugy anaz a hat ás a, mi nt a C F és a C D bi t ek nek egy üt t . 3. 8 Megszaki t ás vége/ hi bamód beál l i t ás MSB 1 LSB 1 1 E X X X X ahol - X = nem használ t bi t ek A mát r i x üzemmódban ez a par anc s al ac s ony r a ál l i t j a az I RQ vonal at és l ehet õv é t es z i a RAM- ba v al ó t ov

ábbi i r ás t . Az I RQ vonal at a mát r i x ban bek öv et k ez õ v ál t oz ás ál l i t j a magas szi nt r e. A t öbbször ös bi l l ent yû l eny omás üz emmódban, KCD s peci ál i s hi bamódban f og dol goz ni . ha az E=1, a St át us szó A s t át uszszó t ar t al mazz a a FI FO ál l apot át , a hi bák at és megj el eni t i a nem el ér het õ j el ek et . Ez t a s z ót a CPU ol v as sa ki , ami kor A0=1 CS=0 és RD=0 Adat ol vasás Adat ot ol vashat unk a por t r ól , ha az A0=0, a CS=0 és az RD=0. Az adat f or r ását a Read FI FO v agy Rad Di s pl ay par anc sok speci f i kál j ák. Az RD l ef ut ó él e növ el ni f ogj a a RAM ci met , ha kor ábban beál l i t ot t uk az aut omat i k us c i mnövel és f l ag- et . Ha a FI FO- ból ol v as unk a KDC mi ndi g növ el i a ci met , f ügget l enül az AI ér t ék ét õl . 16 Adat i r ás Ha adat ot i r unk a KDC- be, ami k or A0=0, CS=0 és WR=0, ak k or az adat mi ndi g a k i j el z õ RAM- ba

k er ül . A c i met a l egut ol só Read Di spl ay , v agy Wr i t e Di s pl ay par anc s ál l i t j a be. Aut omat i kus c i mnöv el és a WR f el f ut ó él énél t ör t éni k, ha az AI f l ag be v an ál l i t v a. 17 TARTALOMJEGYZÉK AZ I 8279 BI LLENTYÛZET/ KI J ELZÔ VEZÉRLÔ . 1. A BI LLENTYÛZET/ KI J ELZÔ VEZÉRLÔ BELSÔ FELÉPI TÉSE ÉS MÜKÖDÉSE . 1. 1 Adat busz buf f er 1. 2 I r ás/ ol vas ás v ez ér l ô 1. 3 Vezér l ô- és i dôz í t ôr egi s z t er ek 1. 4 I dôz í t ô 1. 5 Ki vál aszt ó s z áml ál ó 1. 6 Bi l l ent y ûz et os z l op l et apogat ás i buf f er . 1. 7 Bi l l ent yû l eny omás el l enõr z õ 1. 8 FI FO/ mát r i x RAM 1. 9 FI FO ál l apot r egi s z t er 1. 10 Ki j el zõ c i mr egi s z t er

1. 11 Ki j el zõ- RAM és r egi s z t er 2. A BI LLENTYÛZET KEZELÕ/ KI J ELZÕ VEZÉRLÕ ÜZEMMÓDJ AI . 2. 1 Bi l l ent yûz et k ez el és üz emmódok 2. 1 1 Lekér dez és üz emmód Megj egyzés: Többs z ör i v ál t oz ás a k apc s ol ó mát r i xban t öbb megs z ak i t és t ok oz hat . 2. 2 Bi l l ent yûz et adat f or mát um 2. 2 1 Bi l l ent y û l ek ér dez és üz emmód 2. 2 2 Mát r i x üz emmód 2. 2 3 Él vezér el t üz emmód 2. 3 Ki j el zõ adat f or mát um 2. 3 1 Bal ol dal i adat k i j el z és 2. 3 2 Jobbol dal i adat k i j el z és 2. 3 3 Aut omat i k us k i j el z õc i m növ el és 2. 3 4 8/ 16 k ar ak t er es k i j el z õ f or mát umok 3. A BI LLENTYÛZET KEZELÕ/ KI J ELZÕ PROGRAMOZÁSA 3. 1 Bi l l ent y ûz et / k i j el z õ üz emmód

beál l i t ás . 3. 2 I dõzi t és 3. 3 FI FO/ mát r i x RAM ol v as ás a 3. 4 Ki j el zõ RAM ol v as ás a 3. 5 Ki j el zõ RAM i r ása 3. 6 Ki j el zõ i r ás t i l t ás / t ör l és 3. 7 Tör l és 3. 8 Megszaki t ás v ége/ hi bamód beál l i t ás 18 . 1 . . . . . . . . . . . . . . . . . . 1 1 1 2 2 3 . . . . . . . . . . . . . . . . . . 3 3 4 4 5 5 . 5 . 5 . 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7 7 7 7 7 7 8 8 8 9 . . . . . . . . . . . . . . . . . . . . . . . . 9 9 9 10 10 10 11 11 I8251 soros port I8251 programozható soros port A programozható soros port - SIO - egy univerzális szinkron/aszinkron vevô/adó, amelyet a 8/16/32 bites mikroprocesszorokhoz lehet használni soros adatátvitel kezelésére. A SIO működhet szimplex, half-duplex é s dupl

ex üz emmódokban. A S IO t ámogatja m ind a z aszinkron-, m ind a s zinkron a datátvitelt. A dáskor a C PU f elöl érkezô byte formátumú adatokat á talakítja s oros bi t f ormátumú a datokká é s t ovábbítja a ve vônek. V étel s orán fogadja az adó á ltal kül dött s oros bi t f ormátumú a datokat, á talakítja b yte f ormátumú adatokká, majd elküldi a processzornak. A soros port adás alatt beszúr az adathalmazba, a vétel során töröl az adathalmazból, vezérlô biteket illetve karaktereket. Lényegében a byte formátumú adatok be- vagy kivitelekor a port láthatatlan a CPU számára. A CPU és a SIO közötti adatátvitel történhet lekérdezéses vagy megszakításos üzemmódokban. A SIO adó és v evô eg ységei állapot- és v ezérlô j elekkel r endelkeznek, am elyek s egítségével meghatározható az adó és a vevô állapota, illetve vezérelhetô az adás és a vétel. 1. A soros port belsô felépitése és müködése D0.D7

Vezérlô busz Adatbusz puffer Adó puffer Chip vezérlés Adó vezérlés TxRDY TxE TxC Modem vezérlés Vevô puffer RxD Vevô vezérlés RxRDY RxC SYNDET Modem vezérlés Belsô busz TxD 1.1 ábra A 8251 belsô felépítése 1.1 Az adatbusz puffer A há romállapotú, ké tirányú, 8 bi tes puf feren ke resztül kom munikál a SIO a mikroszámítógéppel. Az adatot átveszi i lletve t ovábbítja a puf ferbôl/ba a z I Nput va gy OUTput utasítások végrehajtásakor. A parancs- és az állapotinformációt is az adatbuszon keresztül fogadja és küldi el a SIO. D0.D7 adatvonalak A S IO adatbusz puffer kül sô adatvonalai, am elyek a m ikroszámítógép adatbuszára csatlakoznak. I8251 soros port 1.2 Írás/olvasás vezérlô A mikroprocesszor vezérlô jeleit fogadja és azok függvényében működteti a soros portot. A vezérlô az alábbi jeleket fogadja a mikroprocesszortól: A SIO négy belsô regiszterrel rendelkezik: regiszterek bemeneti adatregiszter

kimeneti adatregiszter. állapot regiszter parancs regiszter C/ D RD WR 0 0 1 1 0 1 0 1 1 0 1 0 A p rocesszor az ad at- és az ál lapotregiszterek k özött a C/ D vonallal, a b e/kimeneti regiszterek között az RD és a WR vonalakkal választ. RESET (Reset=alaphelyzetbe állítás) A Reset bemenetre kapcsolt magas szint a portot ún. lebegô - idle - üzemállapotba kényszeríti (hardware reset). Ebben az állapotban a S IO s em adni, s em venni nem tud. Az eszköz addig marad ebben az állapotban, amíg a processzor be nem állítja a port üz emmódját a z üz emmód pa rancsokkal. A por t a z üz emmód pa ranccsal is alapállapotba hozható (software reset). CLK (Clock=órajel) A belsô idôzítésekhez szükséges órajel bemenet. Általában a processzor órajelét kell rákötni. WR (Write=írás) A SIO írás bemenete, amelyre ha a CPU "Write" parancsot (logikai "alacsony" szint) küld, a por t a datot, va gy ve zérlô pa rancsot f ogad a pr

ocesszortól, ha ki va n választva. RD (Read=olvasás) A S IO o lvasás b emenete, am elyre h a a C PU " Read" p arancsot ( logikai " alacsony" szint) küld, a por t a datot va gy á llapotszót t ovábbit a pr ocesszornak, ha ki va n választva. C/ D (Control/Data=állapot/vezérlés vagy adat) Ez a bemenet határozza meg, hogy az adatbuszon levô byte- adat, vagy vezérlôszó, állapotinformáció. Általában a címbusz A0 címvonalára kötjük C/ D =1 - CONTROL/STATUS; C/ D =0 - DATA. CS (Chip Select=port kiválasztás) A p ort k iválasztás b emenet engedélyezi/tiltja a SIO olvasás/írás műveleteit. Ha a port nincs kiválasztva ( CS ="1") az RD -nek és WR műveleteknek nincs hatása a SIO-ra. 2 I8251 soros port Cím busz A0 Vezérlô busz Adat busz C/D CS D7-D0 RD WR RESET CLK 8251A 1.2 ábra A 8251 csatlakoztatása a rendszerbuszhoz 1.3 Modem vezérlés A 8251A r endelkezik m odem ke zelô be /kimenetekkel, m elyek segítségével a

port együttműködhet a különbözô típusú modemekkel. A modem kezelô jelek általános célúak, és ha szükséges nemcsak a modem vezérlésre használhatók. DTR (Data Terminal Ready) A kimenetet modem vagy más külsô eszköz vezérlésére lehet használni. A kimeneti vonalat a p arancs-byte megfelelô bitjének programozásával lehet állítani. A DTR kimenet jelzi a modemnek, hogy a s zámítógép a datot s zeretne kül deni a s oros vonalon. DSR (Data Set Ready) A DSR bemenet a m odemtôl va gy m ás kül sô e szköztôl f ogad á llapotjelet. Állapotát a p rocesszor t esztelheti az állapot-byte o lvasás p aranccsal. A DSR bemeneten j elzi a m odem a s zámítógépnek, hog y ké pes a datokat f ogadni és továbbítani. RTS (Request to Send) A RTS kimenet a DTR kimenettel e gyütt mo demet v agy v alamilyen k ülsô eszközt v ezérelhet. A k imenet ál lítható a p programozásával. A arancs-byte me gfelelô b itjének RTS kimenet s egítségével a

DTR , DSR jelek kül dése, fogadása után adás üzemmódba kapcsolja a számítógép a modemet. CTS (Clear to Send) A bemenetre kapcsolt logikai "alacsony" szint jelzi a számítógépnek, hogy a modem kész az adásra és a SIO adatokat küldhet a modemnek. A SIO azonban csak akkor továbbítja a soros vonalon az adatokat, ha az adás engedélyezve van (TxEnable=1). Ha a T xEnable= 0 l esz, v agy a CTS 1 á llapotba ke rül m iközben a z adó adatot továbbit a soros vonalon, az adó elküldi a SIO-ban található adatokat (maximum két byte) és csak utána fejezi be az adást. 3 I8251 soros port 1.4 Adó buffer Az adó buffer átveszi az adatbusz pufferbôl a párhuzamos adatokat, átalakítja azokat soros bitfolyammá, b eszúrja a m egfelelô k araktereket ( SYNC) v agy b iteket ( START, S TOP, PARITY), és elküldi a soros adatsorozatot a TxD kimeneten a TxC lefutó éleire. Az adó csak a kkor ke zdi a z a datok kül dését, ha a modem adáskész ( CTS =

0), és az ad ás engedélyezve van ( Tx E nable= 1). A T xD vona l a lapállapotban m arad köz vetlenül a RESET után, vagy ha a T x Enable vagy a CTS ki van kapcsolva, vagy ha az adó üres. Az adó buffer a processzortól két byte-ot tud fogadni és tárolni . TxD soros kimenet Az adó ezen a kimeneten küldi el a soros adatot. 1.5 Adó vezérlô Az a dó ve zérlô m inden, a s oros a datok kül désével ka pcsolatos t evékenységet vé grehajt. Értelmezi és kiadja a vezérlô jeleket (TxRDY, TxE) és a fogadja az órajelet. TxRDY (Transmitter Ready=adó kész) Ha az adó egy karaktert kiküldött a T xD kimeneten, a T xRDY kimenet "1" lesz és jelzi a CPU-nak, hogy az adó készen áll egy karakter fogadására. A processzor vagy lekérdezéses vagy megszakításos ü zemmódban el lenôrizheti az ad óbuffer ál lapotát (üres, teli). A lekérdezés üzemmódban a processzor beolvassa a SIO állapot-byte-ot, amely t artalmazza a T xRDY k imenet ál lapotát.

Megszakításos üzemmódban a TxRDY megszakításkérô jelként használható a rendszerben. Amint a processzor egy karaktert küldött a SIO-nak, a WR felfutó élére a TxRDY automatikusan visszaáll "0"-ra. Megjegyzés: Ha a l ekérdezéses üz emmódot ha sználjuk, a kkor a T xRDY ne m maszkolható a T xEnable-vel, ilyenkor csak jelzi az ad at f ogadó r egiszter ü res/teli állapotát. TxE (Transmitter Empty=adó üres) Ha az adóbufferben nincs küldendô karakter, a TxE kimenet logikai "magas" szintre kerül. A ki menet c sak a kkor á ll vi ssza, ha karakter érkezik a CPU-tól, é s a z a dó engedélyezve van. A TxEMPTY logikai "alacsony" szinten marad ha az adó le van tiltva, m ég a kkor i s, ha é ppen ür es. A T xE ha sználható a z a dás mód végének jelzésére, így a processzor tudja, mikor ér véget az adatátvitel. Szinkron m ódban e ki menet l ogikai " magas" s zintje j elzi, hog y ni ncs ka rakter betöltve, és

a S IO k iegészitô karakterként a utomatikusan S YNC ka raktert va gy karaktereket továbbit a vevônek. A TxE visszaáll logikai "alacsony" szintre, amikor megkezdôdik a SYNC karakter adása. TxC (Transmitter Clock=adó órajel) Ez a b emenet f ogadja az ad ás s ebességét m eghatározó a kül sô ór ajelet. A TxC lefutó é lére kül di e l a S IO a s oros a datokat. S zinkron m ódban a baud-rate megegyezik a TxC frekvenciájával. A szinkron m ódban a baud-rate programozható. A z üz emmód ut asítással be állitható e gy os ztó t ényezô (1, 1/ 16, 4 I8251 soros port 1/64), amellyel az a dó v ezérlô le osztja a p illanatnyi TxC frekvenciát. P éldául a baud-rate egyenlô 110 Baud-dal, ha az osztótényezô=01 és TxC = 110 Hz ha az osztótényezô=16 és TxC =1.76 kHz ha az osztótényezô=64 és TxC =7.04 kHz 1.6 Vevô buffer A vevô buffer fogadja a soros a datokat, á talakítja pá rhuzamos f ormátumra, e llenôrzi a biteket

és karaktereket, majd elküldi az összeállított karaktereket a CPU-nak. A soros adat az RxD lábon az RxC felfutó élére jelenik meg. RxD soros bemenet A vevôbuffer ezen a bemeneti vonalon fogadja a soros adatokat. 1.7 Vevô vezérlô Ez a bl okk m inden, a ve vôvel ös szefüggô t evékenységet ke zel. A ve vô vezérlô RxD inicializáló áramköre megakadályozza, h ogy a S IO eg y p asszív ad atvonalat összetévesszen agy aktív adatvonallal "break"-állapotban. Az RxD vonal logikai "magas" szinten van, ha a vevô nincs vétel üzemmódban. Az adatátvitel kezdetét a startbit jelzi A vevô-vezérlô ál startbit f igyelô ár amköre m egakadályozza a h ibás a datátvitelt, a mit a z adatátviteli vonalakon fellépô villamos zajok okozhatnak. Az áramkör a startbitet az elsô lefutó él után vi zsgálja, a pe riódusidô köz epén. A ve vô-vezérlô f igyeli a p aritást és a stopbiteket, és beállítja a paritás- és a hibabiteket.

RxRDY (Receiver Ready=vevô készenléti állapot) Ez a kimeneti vonal jelzi, hogy a SIO egy karaktert fogadott és a mikroprocesszor átveheti tôle. Az adáshoz ha sonlóan a l ekérdezéses üz emmódban a C PU ellenôrizheti az RxRDY állapotát egy állapot regiszter olvasás művelettel, illetve az RxRDY kimenet összeköthetô a CPU megszakítás-rendszerével. Ha a v étel n incs en gedélyezve ( RxEnable= 0), az RxRDY alapállapotban van. Aszinkron módban a SIO akkor állíthatja be az RxRDY-t, ha a vevô a startbit után egy t eljes ka raktert f ogadott a be meneti a datregiszterben. S zinkron m ódban a z RxRDY b eállításához a v evônek en gedélyezve k ell l ennie, és a k arakternek össze kell állnia a bemeneti adatregiszterben. Ha újabb karakter érkezik és a C PU még nem olvasta ki az elôzô karaktert a vevô bufferbôl vagy még nem fejezte be az olvasási műveletet, a vevô vezérlô beállítja a túlcsordulás hibabitet és a régi karakter elvész. RxC

(Receiver Clock=vevô órajel) 5 I8251 soros port A vevô órajel bemenet vezérli azt a sebességet, amivel a karakterek vétele történik. Az adatot az RxC felfutó élére olvassa be a SIO. Szinkron módban a Baud-rate az RxC aktuális frekvenciájának megfelelô. Aszinkron módban a Baud-rate az RxC aktuális f rekvenciájának t örtrésze. Az ü zemmód u tasítások á llítják b e a tényleges vételi sebességet az adáshoz hasonlóan: Megjegyzés: A legtöbb soros adatátviteli rendszerben a SIO kezeli mind az adást, mind a vételt. K övetkezésképp a ve vô é s a z a dó B aud-rate-je az onos és a TxC és az RxC bemenetek összeköthetôk egymással SYNDET/BRKDET (SYNC/Break Detect)=szinkron karakter/break érzékelés) Ez a láb ki- és bemenetként is használható a beállitott üzemmód függvényében. SYNDET (csak szinkron üzemmódban) Szinkron üzemmódban szinkron karakterek detektálására használható be/kimenetként, amit a parancs byte állít be.

A RESET müvelet után, vagy ha az üzemmód paranccsal kimenetnek állítjuk be, a belsô szinkronjel érzékelésére használható. E bben a z üz emmódban e gy/két S YNC karakter vétele után SYNDET=1 lesz, a beállított szinkron üzemmód függvényében (egy vagy két S YNC ka rakter üz emmód). M iután a pr ocesszor ki olvassa a z állapotregisztert a SYNDET=0 lesz. Ha a l ábat külsô szinkronjel érzékelésére használjuk, a l áb bemenetként üzemel. A bemenetre kapcsolt felfutó él (külsô SYNC jel) elindítja az adatkarakterek vétélét a következô RxC impulzus felfutó élére és a bemenetre logikai "0" kapcsolható. BREAK DETECT (csak aszinkron mód) A k imenetként j elzi ( BREAK D ETECT= 1), ha a vevô vezérlô két egymást követô stopbit szekvencián keresztül (beleértve a s tartbiteket, az ad atbiteket és a paritásbiteket) n em á llítja b e a z R xRDY je let, vagyis nem ismeri fel, hogy karaktereket f ogadott. A B reak ki menet á

llapota s tátuszbitként is kiolvasható az állapot regiszterbôl. D2 D3 RxD GND D4 D5 D6 D7 TxC WR CS C/D RD RxRDY 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 D1 D0 Vcc RxC DTR RTS DSR RESET CLK TxD TxEMPTY CTS TxRDY SYNDET/BD 1.3 ábra A 8251A lábkiosztása Figyelem: A 8251A külön kezeli az adás és a vétel műveleteket a soros port megfelelô vonalait ( TxRDY, R xRDY) f elhasználva é s í gy j elentôsen c sökkenti a m ikroprocesszor terhelését. 6 I8251 soros port A m ikroprocesszor a S IO á llapotát bá rmikor t udja ol vasni, a zonban az állapotregiszter olvasása alatt annak frissítése alatt tiltva van. Megjegyzések: Adó A TxEnable funkció megakadályozza, hogy egy TxDisable parancs megszakítsa az adatátvitelt S IO-ban tá rolt ö sszes a dat ( maximum 2 b yte) e lküldése e lôtt, illetve megakadályozza az adatátvitel felfüggesztését egy karakter kiküldése alatt. Az adás befejezése után a T xD v onal m

indig v isszatér al apállapotba ( TxD= 1), k ivéve h a SBRK van programozva. Vevô Aszinkron működésnél a vevô automatikusan detektálja és kezeli a "BREAK"-et, ezzel tehermentesíti a processzort. A vevô vezérlô a "BREAK" állapotban levô vevô startját m egakadályozza, és m egvédi a S IO-t e gy n em k ívánt me gszakítástól, ha a soros kapcsolat passzív. Ha külsô szinkron detektálás üzemmódot programozunk, a belsô szinkron detektálást letiltja a ve vô ve zérlô. A ha mis s zinkronjel de tektálás lehetôsége minimalizálva van azáltal, hogy ha két szinkron karakter üzemmód van programozva, a kkor a s zinkron karaktereket f olyamatosan f igyeli a vevô vezérlô, illetve a ve vô buf fert t örli a m inden a lkalommal, a mikor E nter Hunt parancs érkezik. 2. A soros port programozása A mikroszámítógép alaphelyzetbe (hardware/software reset) állitása u tán a s oros p ort i s alapállapotba kerül és be kell

állítani a SIO üzemmódját, paramétereit adás és a vétel elôtt. Az ü zemmódot és a S IO p aramétereit a v ezérlô b yte-ok határozzák meg, am elyeket a parancsregiszterben tárol a SIO. A parancsregiszter a vezérlô byte-ok segitségével beállítja: - az üzemmódot (aszinkron vagy szinkron) - az adatátviteli sebességet (baud-rate) aszinkron üzemmódban: - a karakter hosszt; a stopbitek számát; a paritásellenôrzést, stb. szinkron üzemmódban: - a SYNC karakterek számát, a szinkronizálási módot (külsô vagy belsô) - illetve engedélyezi/tiltja az adást és a vételt C/ D =1 Üzemmód utasítás C/ D =1 Szinkron karakter 1 Csak szinkron C/ D =1 Szinkron karakter 2 üzemmódban C/ D =1 Parancs C/ D =0 Adat C/ D =1 Parancs C/ D =0 Adat 7 I8251 soros port Parancs C/ D =1 1.4 ábra Egy tipikus adatblokk felépítése 2.1 Üzemmód beállitás Ez az utasítás határozza meg a SIO általános működését (aszinkron vagy szinkron

üzemmód). Az üzemmód utasítást csak RESET művelet után lehet elküldeni a SIO-nak. A pr ocesszor a z üz emmód ut asítás ki küldése után folytathatja a SIO inicializálását parancs utasításokkal vagy SYNC karakter(eke)t küldhet ki. 2.11 Üzemmód utasítás definíció Az üzemmód u tasítás ü zemmód f üggô, ez ért r észletes i smertetését az as zinkron és szinkron üzemmódok leírása tartalmazza. 2.2 Parancsmód beállitás A parancs byte a soros port működését állitja be az üzemmód byte-val együtt. Elôször az üzemmód utasítást kell elküldeni, ezt köve tik a S YNC ka rakterek ( szinkron m ódban), majd a p arancs b yte-k. A pa rancs by te-k a z üz emmód by te be írása után bármikor beírhatók a SIO-ba. Ahhoz hogy visszatérjünk az üzemmód beállitáshoz egy belsô resetet (a RESET bitet a parancs utasításban be k ell ál lítani), v agy eg y k ülsô r eset ( RESET= 1) műveletet kell végrehajtani. 2.21 Parancs utasítás

definíció A parancs ut asítások ve zérlik a ki választott üz emmód ( szinkron va gy a szinkron) pillanatnyi mükôdését, mint például az adás és a vétel engedélyezése, hiba törlése, modem vezérlések. H a a z üz emmód ut asítást be írtuk a s oros por tba é s ( ha ke llett) a szinkron karaktereket e lküldtük a S IO-nak, a kkor a z ös szes t ovábbi írás művelet a parancsregiszterbe (C/ D =1) parancs utasítást fog betölteni. A parancs vezérlô byte bitjeinek kiosztása: D7 EH D6 IR D5 RTS D4 ER D3 SBRK D2 RxE D1 DTR D0 TxEN A parancs vezérlô byte bitjeinek jelentése: TxEN RxE ER IR Adás engedélyezés 0 - tiltás 1 - engedélyezés Vétel engedélyezés 0 - tiltás 1 - engedélyezés Hiba törlése 0 - Nincs hatása 1 - Hiba flag törlés/PE,OE,FE Belsô reset 0 - Normál működés 1 - SIO software reset DTR SBRK RTS EH Data Terminal Ready 0 - DTR kimenet = 1 1 - DTR kimenet = 0 Break karakter küldés 0 - Normál működés 1 -

TxD = "0" Request to send 0 - RTS kimenet = 1 1 - RTS kimenet = 0 Enter Hunt Mode 0 - Normál működés 1 - SYNC karakter keresés 3. Üzemmódok 3.1 Aszinkron adás/vétel üzemmód Az aszinkron üzemmód vezérlô byte bitjeinek kiosztása: 8 I8251 soros port D7 S2 D6 S1 D5 EP D4 PEN D3 L2 9 D2 L1 D1 B2 D0 B1 I8251 soros port Az aszinkron üzemmód vezérlô byte bitjeinek jelentése: B2 0 0 1 1 B1 0 1 0 1 PEN 0 1 EP 0 1 Sebesség faktor szinkronmód 1x 16x 64x Paritásteszt tiltva engedélyezve Paritásteszt páratlan páros L2 0 0 1 1 S1 0 0 1 1 L1 0 1 0 1 S0 0 1 0 1 Karakter hossz 5 bit 6 bit 7 bit 8 bit Stop bitek száma érvénytelen 1 bit 1 és 1/2 bit 2 bit Megjegyzés: Ha a paritás k épzés/teszt en gedélyezve v an, a p aritásbit ak kor s em tekintendô az adatbitek egyikének. Az RxD adatvonalon vett paritásbit nem olvasható be az adatbuszon. Abban az esetben, ha a programozott karakterhossz kisebb mint 8 bit, az utolsó é rtékes b

itek me gtartják a z a datot; a nem ha sznált bi tek é rdektelenek í ráskor, é s nullát adnak, amikor olvasunk az áramkörbôl. 3.11 Adás aszinkron üzemmódban Start bit Adat bitek Paritás Stop bit bit(ek) 3.11 ábra Adás és vétel aszinkron módban Ahányszor a CPU e lküld e gy ka raktert a s oros por tnak, a z a utomatikusan hoz záad e gy startbitet, e zt k övetik a z a datbitek ( elôször a le gutolsó értékes bit), végül a megadott számú stopbit minden egyes karakternél. A paritásbiteket a SIO beszúrja a stopbit(ek) elé, ha a zt a z ü zemmód u tasítás d efiniálta. E zután a soros port e lküldi a ka raktert a T xD kimeneten, mint egy s oros a datfolyamot. A S IO a bi teket a TxC lefutó é lére kül di ki azzal a s ebességgel, m elyet a z üz emmód ut asítás de finiál ( 1, 1/16, 1/64). Ha nincs karakter a soros portban, és úgy programoztuk (aszinkron módban), BREAK karaktereket küld, egyébként a kimenet magas szinten marad. 3.12

Vétel aszinkron üzemmódban Az R xD v onal a lapállapotban ma gas s zinten v an. A le futó é l je lzi a startbit kezdetét A startbit érvényességét a j el közepén ellenôrzi a soros port (csak 16x v. 64x módban) Ha ismét alacsony szintet érzékel, akkor ez egy érvényes startbit, és a bitszámláló megkezdi a vett bitek számlálását. Az ad atbitek, a p aritásbit ( ha v an) és a s topbitek ér tékének beolvasása a b ittartomány k özepén t örténik. H a a S IO paritáshibát érzékel, beállítja paritáshiba bitet . A start-, az adat-, a p aritás- és a stopbiteket a soros port az RxD lábon mintavételezi a z RxC felfutó él ére. A s topbit j elzi a k arakter v égét H a a s topbit(ek) beolvasásakor logikai "alacsony" szintet olvas be a SIO, az állapot regiszterben beállítja a kerethiba bitet. Jegyezzük meg, hogy a vevônek csak egy stopbitre van szüksége, tekintet nélkül arra, hogy hány stopbitet programoztunk. Ha a vevô fogadta

egy karakter bitjeit, a bitsorozatot párhuzamos adattá a lakítja á t é s a ka rakter be kerül a s oros por t ve vô 10 I8251 soros port bufferébe. Az RxRDY láb f elfut és j elzi a C PU-nak a k arakter v ételét H a az el ôzô karaktert a C PU m ég n em v ette át , a v ett k arakter f elülírja a v evô b ufferben t alálható karaktert, és a S IO az ál lapot r egiszterben b eállítja a túlcsordulás-hiba bi tet ( az e lôzô karakter elvész). Megjegyzés: Az összes hibajelzô bit visszaállítható egy hiba-reset utasítással. Ezeknek a hibáknak az elôfordulása nincs hatással a SIO működésére. 3.2 Szinkron adás/vétel üzemmód A szinkron üzemmód vezérlô byte bitjeinek kiosztása: D7 SCS D6 ESD D5 EP D4 PEN D3 L2 D2 L1 D1 - D0 - A szinkron üzemmód vezérlô byte bitjeinek jelentése: SCS 0 1 ESD 0 1 Szinkron karakterek Két szinkronszó Egy szinkronszó Külsô szinkronizáció SYNDETbemenet SYNDET kimenet L2 L1 Karakter hossz 0 0 1

0 1 0 5 bit 6 bit 7 bit 1 1 8 bit A vezérlô byte D0.D1 bitjei nincsenek értelmezve A D4D5 bitek - PEN, EP - jelentése ugyanaz mint aszinkron üzemmódban. 3.21 Adás szinkron üzemmódban A TxD kimenet folyamatosan magas szinten van addig, amíg a CPU el nem küldi az elsô karaktert (mely leggyakrabban e gy S YNC ka rakter) a s oros por tnak. A mikor a CTS vonal alacsony szintű lesz, a SIO elküldi az elsô karaktert. Minden bitet a TxC lefutó élére küld el a S IO a TxC által meghatározott sebességgel. Ha a CPU nem küld a soros portnak új karaktert mielôtt az adó buffer ki ürülne, egy vagy t öbb S YNC karakter kerül automatikusan az adásra. Ebben az esetben TxE=1 lesz és jelzi, hogy a SIO üres és SYNC karaktereket küld ki. A SYNC karakter elküldése után soros port, illetve ha a CPU adatot írt be az adó bufferbe a TxE kimenet alacsony szintre kerül. 3.22 Vétel szinkron üzemmódban Ebben a z üz emmódban a ka rakter s zinkronizálás l ehet kül

sô va gy belsô. Belsô karakter szinkronizálás esetén az elsô parancsszóval el kell küldeni egy ENTER HUNT utasítást a soros portnak. Ennek hatására a soros port folyamatosan figyeli a SYNC karaktereket az RxD bemeneten az RxC felfutó élére. A vett adatokat a SIO beolvassa és eltárolja az Rx bufferben. A z e ltárolt ka raktert összehasonlítja a S YNC k arakterrel H a a v ett k arakter nem SYNC karakter, tovább folytatja a karakterek vé telét. H a a s oros por t ké t S YNC karakterre v an p rogramozva, ak kor a v izsgálat k ét eg ymás u tán vett SYNC karakterig folytatódik. Ha a SIO mindegyik SYNC karaktert érzékelte, befejezi a HUNT üzemmódot és amint a szinkronizálás is befejezôdött, a SYNDET láb magas szintre kerül. Ha a paritás ellenôrzés en gedélyezve v an, a S YNDET-t nem az u tolsó a datbit, h anem a p aritásbit 11 I8251 soros port közepén á llítja be a soros port. A S YNDET k imenetet a S IO az ál lapot r egiszter

olvasásakor állítja ismét logikai alacsony szintre. A külsô SYNC üzemmódban, a s zinkronizálás a S YNDET l áb m agas s zintjének alkalmazásával valósul meg, tehát a soros p ort egy k ülsô j el h atására f ejezi b e a H UNT üzemmódot. A ma gas s zintet e gy RxC ciklus ut án l ehet m egszüntetni A z E NTER HUNT parancs nem érvényes aszinkron üzemmódban. A paritás és túlcsordulási hi ba vi zsgálata e gyaránt úg y t örténik, m int a szinkron üzemmódban. A pa ritás vi zsgálata a kkor történik, amikor a soros por t ni ncs H UNT üzemmódban, függetlenül attól, hogy a vevô engedélyezve van, vagy nincs. A C PU ut asíthatja a ve vôt, hog y l épjen be a H UNT üzemmódba, ha a szinkron állapot megszűnt. Ez a használt karakter összes bitjét 1-re állítja, így megakadályozza egy hamis SYNDET létrejöttét, melyet az Rx bufferben levô adatok okozhatnak az ENTER HUNT parancs idején. Figyelem: A SYNDET logikai alacsony szintre kerül

minden státus regiszter olvasáskor, függetlenül attól, hogy belsô va gy kül sô s zinkron vol t-e pr ogramozva. E z a zonban ne m állíja vissza a soros portot HUNT üzemmódba. Ha a soros port SYNC üzemmódban van, de nincs HUNT üzemmódban, a SYNC érzékelés működik, de csak az "ismert" szóhatáron. Tehát ha eg y s tátus r egiszter o lvasás S YNDET-et j elez, és a k övetkezô szintén, a kkor a z e lôzô s tátus ol vasás ót a a programozott szinkron karakterek érkeztek. (Ha dupla karakter szinkronizálás van programozva, akkor mindegyik szinkron karaktert szomszédosan kell venni, hog y S YNDET-et j elezzenek.) H a a k ülsô s zinkron ér zékelés mód van kiválasztva, a belsô szinkron érzékelés le van tiltva, és a SYNDET tetszôleges értéket vehet fel. 3.3 Port állapotteszt Az adatátviteli rendszerekben gyakran van s zükség a rra, hog y m egvizsgáljuk a por t státusát, például megállapítsuk hogy nem történt-e hiba. A SIO

aktuális üzemállapotát az állapot r egiszter t árolja, am elyet a f elhasználó k iolvashat. ( A s tátus f rissítés a s tátus olvasása alatt gátolva van.) Az ál lapot r egiszter b itjeinek eg yrésze u gyanazzal a j elentéssel r endelkezik, m int a p ort azonos ne vü ki meneti vona la, a T xRDY ki menet ki vételével. Az állapot byte bitjeinek kiosztása: D7 DSR D6 SYNDET D5 FE D4 OE D3 PE D2 TxE D1 D0 RxRDY TxRDY Az állapot byte bitjeinek jelentése: DSR, SYNDET,TxE, RxRDY, TxRDY FE = 1 OE = 1 PE = 1 funkciójuk megegyezik a soros port azonos nevű kimenetével ha kerethiba lépett fel vételnél ha túlfutás keletkezett vételnél ha paritáshiba keletkezett vételnél 12 I8251 soros port Tartalomjegyzék I8251 programozható soros port . 1 1. A soros port belsô felépitése és müködése 1 1.1 Az adatbusz puffer 1 1.2 Írás/olvasás vezérlô 2 1.3 Modem vezérlés 3 1.4 Adó buffer 3 1.5 Adó vezérlô 4 1.6 Vevô buffer 5 1.7 Vevô

vezérlô 5 2. A soros port programozása 7 2.1 Üzemmód beállitás 7 2.2 Parancsmód beállitás 8 3. Üzemmódok 8 3.1 Aszinkron adás/vétel üzemmód 8 3.11 Adás aszinkron üzemmódban 9 3.12 Vétel aszinkron üzemmódban 9 3.2 Szinkron adás/vétel üzemmód 10 3.21 Adás szinkron üzemmódban 10 3.22 Vétel szinkron üzemmódban 10 3.3 Port állapotteszt 11 13 8253 Programozható idôzítô/számláló. Sch Home Studio `98 8253 Programozható idôzítô/számláló. Az INTEL 8253 számláló/idôzítô a z INTEL mikroszámítógép cs alád eg y p erifériája. H árom független számlálót tartalmaz, amelyek maximum 2MHz frekvenciájú jeleket képesek feldolgozni. A 8253-as képes különbözö idôzítések kezelésére, programból mint I/O portok tömbje érhetö el. Nagyon egyszerûen pr ogramozható, g enerálhat pont os i dôt, ké sleletetést. P éldául várakozási ciklusok szervezése helyett a p rogramozó eg yszerûen b eállíthatja a

8253-as valamely r egiszterét a k ívánt ér tékre, az el kezdi a számlálást, a megfelelô idôben pedig megszakítással jelez a CPU felé. További funkciók: • • • • programozható ritmus generálás; eseményszámlálás; valós idejû óra; digitális idômérés; D0.D7 Adatbusz Számláló puffer #0 CKL0 GATE0 OUT0 RD WR A0 Chip vezér- A1 lés Számláló #1 CLK1 GATE1 OUT1 CS Számláló #2 CLK2 GATE2 OUT2 Belsô busz csatlakoznak. L L L L L L L L H L CS (chip select) A mikroprocesszoros rendszereknél megszokott vezérlôjelek. A z e lsô jel ( RD ) a ktív á llapota olvasási mûveletet er edményez, a második jelé ( WR ) ír ási mû veletet, a harmadik je l ( CS ) a ktív á llapota Vezérlô regiszter CS RD (read), WR (write), RD H H H H L L L L X H Hiba! A1 A0 Mûködés L L L L H H H H X H L H L H L H L H X X 0. számláló írása 1. számláló írása 2. számláló írása CWR írása 0. számláló olvasása 1. számláló

olvasása 2. számláló olvasása D0.D7 lebeg Nincs kijelölve az áramkör D0.D7 lebeg L L H H L L H H X X engedélyezi az adatátvitelt. A0, A1 Az áramkör b elsô r egisztereinek megcímzésére szolgáló b emenetek. Általában a CPU címbuszára A 8253 mûködtetése A 8253-as összes funkciója programozható. A CPU-nak vezérlôszavakat kell kiküldenie, hogy beállítsa a számlálók kezdôértékeit és üzemmódjait. Beállítás elôtt a regiszterek értékei meghatározatlanok Az áramkör egyszeri programozással mindaddig mûködik, amig valamilyen okból meg nem változtatjuk a beállításokat. A számlálók m ûködése e gymástól f üggetlen, a c hip l ogikai ve zérlése l ehetôvé t eszi kül sô ór ajel-vezérelt események figyelését. A s zámlálók ü zemmódjai s oftware-böl e gyszerü I/O müveletekkel programozhatóak, a keresztül külön-külön beallíthatóak. D7 SC1 D6 SC0 D5 RL1 D4 RL0 D3 M2 D2 M1 D1 M0 CWR-en D0 BCD Ezeknek

a biteknek a jelentése a következô: SC1 0 0 1 1 SC0 0 1 0 1 M2 0 0 x x 1 1 M1 0 0 0 1 0 0 0. Számláló 1. Számláló 1. Számláló érvénytelen M0 0 1 1 1 0 1 MODE 0 MODE 1 MODE 2 MODE 3 MODE 4 MODE 5 RL1 0 0 1 1 RL0 0 1 0 1 BCD 0 1 Számláló tárolás Csak felsô byte írás/olvasás Csak alsó byte írás/olvasás elôször az alsó majd a felsô byte írása/olvasása Számlálási mód 16 bites bináris 4 dekádos BCD A vezérlôszó értelmezése Számlálók töltése. A számláló értéke mindaddig nincs betöltve, amíg a regisztert í rjuk ( az R L bi tektöl f üggôen 1 va gy 2 byte), ezt követi az órajel egy le- és egy felfutó éle. MODE definiciók Felfüggeszthetô számlálás; MODE 0 Az üzemmód beállításának hatására a kimenet alacsony lesz. Amikor a számláló eléri a kritikus értéket, a kimenet magasra vált és magas marad, amíg a kiválasztott számlálót újra nem töltjük a MODE-dal, vagy új értékkel. A számláló

tovább csökken Az újraírás a számlálás ideje alatt a következôképpen lehetséges: 1. 2. Az elsô byte beírása leállítja a számlálót. A második byte beírása elindítja az új számlálót. A s zámlálást f el l ehet f üggeszteni ú gy, h ogy a k apu ér tékét levisszük, ha újra felemeljük a szintet, folytatódik a mûvelet. CLK WR(n) 4 3 5 4 2 1 0 OUT (n= 4) WR(m) GATE 3 2 1 0 OUT (m=5) A A+B = m 1. ábra A MODE 0 üzemmód B Programozható idômérés; MODE 1 A beállítást követôen a k imenet ma gas le sz. A v isszaszámlálást a G ATE b emenet ma gas je lszintje indítja, ekkor a kimenet alacsony szitnre vált, és csak akkor emelkedik fel, amikor a számláló eléri a nulla értéket. Ha valamikor levisszük a bemenet szintjét, leáll a számlálás, a bemenet H szintre állítása után pedig újra indul. A kimenet ezalatt alacsony marad CLK WR(n) Trigger OUT 4 3 2 1 0 2 4 3 2 1 (n =4) Trigger 4 3 0 OUT 2. ábra

A MODE 1 üzemmód Frekvenciaosztó; MODE 2 A kimeneten megjelenô jel egy periódusának hossza (egy kimeneti impulzustól a következôig) egyenlô a számláló é rtékével. H a a s zámláló új ratöltôdik ké t ki menô i mpulzus köz ött, a kkor e nnek a z a ktuális periódusra nem lesz hatása, majd a következô periódus veszi fel az új értéket. Ha a kapubemenet (GATE) alacsony akkor a kimenet szükségszerûen magas lesz és a számlálás megszakad. A kapubemenet felemelése után a s zámláló el kezdi a s zámlálást. Í gy a k apubemenetet s zinkronizálásra l ehet h asználni H a ez az üzemmód aktív, a kimenet magas marad, amíg be nem töltôdik a számláló. CLK WR(n) (n = 4) (n = 3) 4 3 2 1 0(4) 3 2 1 0(3) 2 1 0 1 0(3) 2 1 OUTPUT 3 2 1 0(3) 2 OUT (n= 3) RESET 3. ábra A MODE 2 üzemmód Szimmetrikus négyszögjel generátor; MODE 3 Az elôzô üzemmódhoz hasonló, kivéve hogy a kimenet a visszaszámlálás feléig magas,

felénél nullára vált ( ezzel b iztosítja a k imeneten a s zimmetrikus n égyszögjelet, míg a MODE 2-ben a nul la s zintek i deje minden e setben f rekvenciaosztással a rányosan hos szabb.) A 8253 e zt úg y ol dja m eg, hog y a számláló értékét az egyes órajeleknél kettôvel csökkenti, és ha a számláló elérte a nullát, visszatölti a kezdôértéket, és megismétli u gyanezt. H a a s zámláló k ezdôértéke p áratlan, a k imenet m agasról indul, az elsô órajelre csak eggyel csökken, a következô órajeltôl kezdôdôen már kettôvel csökken, mindaddig, míg eléri a nullát. Ekkor a k imenet al acsonyra v ált, és a s zámláló ér téke v isszatöltôdik. Fél periódus utáni elsö órajelre (tehát a kimenet ál lapotváltozását k övetôen) a s zámláló ér téke 3 -mal c sökken. A köve tkezô ór ajelek 2 -vel csökkentik az ér téket a n ulláig. E zután az eg ész f olyamat m egismétlôdik T ehát h a a s zámláló páratlan, a

kimenet magas (N+1)/2 számláló értékig, és (N-1)/2 számláló értékig alacsony. CLOCK 4 2 4 2 4 2 4 2 4 2 4 2 4 5 4 2 5 2 5 4 2 5 2 5 4 2 OUT(n= 4) OUT(n= 5) 4. ábra A MODE 3 üzemmód Software-programozott impulzus; MODE 4 Inicializálás után a k imenet magas, és mindaddig az is marad, amíg a kezdôérték beállítását és a telejes visszaszámlálást köve tôen a s zámláló t artalma nul lává ne m vá lik. E kkor a kimenet egyetlen óraperiódus idejére á tvált a lacsonyra. H a a s zámlálót ú jratöltjük, a s zámlálás a z ú j é rtéktél f olytatódik A míg a GATE bemenet alcsony, a számlálás szünetel. CLOCK WR (n = 4) 4 3 2 1 0 4 3 OUT(n= 4) LOAD n GATE OUT (n = 4) 4 5. ábra A MODE 4 üzemmód 2 1 0 Kivülrôl indított (hardware-) impulzus; MODE 5 Inicializálás után a kimenet ma gas. A s zámlálás a kkor i ndul a mikor a ka pun ( GATE) m agas l esz a jelszint. Amint a számláló eléri a

nullát, egy órajelnyi idöre a kimenet alacsony szintre vált Ha számlálás közben a ka pubemenetre ( GATE) a lacsony s zintet ka pcsolunk, f olytatódik a s zámlálás de ha új ra m agas szintet adunk rá, a számláló újratöltôdik. CLOCK GATE 4 3 2 1 0 4 3 4 3 2 OUT(n= 4) GATE OUT(n= 4) 1 0 6. ábra A MODE 5 üzemmód A 8253 írása és olvasása Írás A r endszerprogram ke zeli a 8253 m inden r egiszterét, a z üz emmódok be állítása á ltal. E hhez írni kell a CWR-t. A CWR írásával kiválasztott számlálók sorredje nem lehet tetszöleges, pl a #0 nem lehet elsô, #2 nem lehet utolsó. Az SC0 S C1 bi tek s zolgálnak a s zámlálók ki választására A ke zdôértékkel va ló feltöltésnek pont osan a ve zérlôszóban a z ( RL0 R L1) bi tekkel a dott sorredben kell történnie. A számlálók betöltése sorrendfüggetlen, hasonlóan a CWR betöltéséhez, azonban ha a kiválasztott számláló be van töltve, a C WR-t f el k ell tö lteni a

b etöltött b yte-ok s zámával. A s zámlálóhoz t artozó ve zérlôszó f eltöltése ne m követheti a s zámláló feltöltését. A s zámláló b etöltése e gy v agy k ét b yte-nak az ár amkörbe v aló b etöltését jelenti, és a v ezérlôszó f eltöltését k övetôen k ell el végezni, m éghozzá a m egfelô s zámú b yte-tal, min t a z a MODE C ONTROL W ORD-nél tö rtént. M inden s zámláló le felé s zámol Tehát az aktuális szót dekrementálva tölti vissza a számlálóba. A maximális számláló érték eléréséhez, mindkét szóba nullát kell írni. MODE 0-ban az új számolás nem kezdôdik el, míg a feltöltés nem teljes Ezután elkezdôdik a mûvelet CWR értékének töltése n. számláló LSB értékének töltése n. számláló MSB értékének töltése 1. táblázat Hagyományos írás A1 1 1 1 0 0 A0 1 1 1 1 1 Kiírt adat CWR (0) vezérlôszó CWR (1) vezérlôszó CWR (2) vezérlôszó Számláló 1 LSB érték Számláló 1

MSB érték 1 1 0 0 0 0 0 0 Számláló 2 LSB érték Számláló 2 MSB érték Számláló 0 LSB érték Számláló 0 MSB érték 2. táblázat Alternatív írási mód Olvasás A l egtöbb al kalmazásban s zükség l ehet a s zámláló l eolvasására a f olyamat al att. A számlálás valószínûleg a l egközönségesebb al kalmazás. A 8 253 t artalmaz o lyan l ogikát, am ely l ehetôvé t eszi a programozó s zámára hog y könny en ki olvassa bá rmely s zámláló t artalmát, a nélkül hogy megzavarná a folyamatot. K étféle m ódja va n, a nnak hog y a pr ogramozó e zt m egtegye A z e lsô m ódszer a számláló egy egyszerü I/O olvasási mûveletét t akarja. A z A 0 és A 1 b eállításával a t udja a p rogramozó s zabályozni az t, hogy melyik regisztert olvassa. Az egyetlen elvárás ez zel a m ódszerrel s zemben az , h ogy a k iválasztott számláló a ktuális mû veletének o lvasásához b iztosítani k ell a s tabil s zámlálást, v agyis me

g k ell g átolni minden változást a kapu bemeneten, vagy külsô eseményt, amely letiltja az óra bemenetet. Ha az áramkör úgy van beállítva, hogy két byte-ot írunk, vagy olvasunk, akkor két byte-ot kell olvasni, mielôtt bármilyen parancsot küldenénk valamely számlálóba. Tehát ha a pr ogramozó ki a karja ol vasni a kiválasztott regiszter tartalmát futás közben, akkor fel kell töltenie a MODE regisztert egy speciális kóddal, amelynek a h atására az ár amkör b eteszi a s zámláló p illanatnyi ér tékét a t ároló r egiszterbe. A p rogramozó azután kiad egy normál READ parancsot a kiválasztott regiszterre és az olvasás idejére tárolt érték lesz az eredmény. A1 0 0 1 1 A0 0 1 0 1 Számláló 0 kiválasztása Számláló 1 kiválasztása Számláló 2 kiválasztása Érvénytelen 3. táblázat Számlálók címzése olvasáskor MODE regiszter a számláló átmeneti tárolásához (A0, A1) = (1, 1) D7 SC1 D6 SC0 D5 0 D4 0 D3 x D2 x

D1 x D0 x 4. táblázat Parancsszó a számláló értékének tárolásához SC1, SC0 címzi a számlálót. Ugyanaz a korlátozás érvényes az olvasásnak erre a módjára is, mint az elôzô módnál. Tehát egy hibátlan olvasási mûveletet mindenképpen végre kell hajtani. Ez a parancs nincs hatással a számláló üzemmódjára MCS az MCS 51 család Ez a mik roszámítógép-család az MCS 48-as család j elentôs t ovábbfejlesztésének t ekinthetô, elvi felépítése az alábbi ábrán látható: Külsô megszakítások Megsza- ROM kítás Idôzítô 1 RAM vezérlô Idôzítô 0 Számláló bemenetek CPU Oszcillátor Busz Vezérlô 4 I/O port Soros port P0 P1 P2 P3 Cím/Adat TXD RXD Az MCS 51 család fôbb jellemzôi: • • • • • • • • 8 bites, vezérlési feladatokra optimalizált központi egység (CPU); 64 Kbyte memória címezhetô; az órajel-generátor áramköre a lapkán van; 32 be- illetve kimeneti vonal; mind az adat, mind a

programtároló 64 Kbyte-ra bôvíthetô; két, illetve egyes típusoknál három idôzítô-számláló; soros duplex adatátviteli port; Bool-algebrai processzor. A család elemei és jellemzôik: Típus 8051 8051AH ROM nélküli változat 8031 8031AH 8052AH 8032AH 80C51BH 80C31B H 80C52 80C32 EPROM-os változat nincs 8751H 8751BH 8752BH 87C51 nincs ROM méret (Byte) 4K 4K RAM méret (byte) 128 128 8-bites I/O port 4 4 16-bites Megszakítás számláló szám/vektor 2 2 6/5 6/5 8K 4K 256 128 4 4 3 2 8/6 6/5 8K 256 4 3 8/5 Felépítés, jellemzôk A következôkben röviden összefoglaljuk az MCS 51 család azon tulajdonságait, amelyek az alkalmazásoknál a kiválasztást elôsegíthetik. 1 Társzervezés A CPU az ad at- és a p rogrammemóriát te ljesen e ltérô mó don k ezeli. A mik roszámítógépben különálló pr ogram- és adattároló va n, a z e lôbbi 4K , i lletve 8K m éretû és az al só cí mtartományt foglalja el. Az ad atmemóriát a l

apkán k ialakított 128 va gy 256 by te-os RAM alkotja A RAM 8 bittel címezhetô, a mi g yorsabb m ûködést t esz l ehetôvé. A t eljes 64 K byte a DTPR regiszteren keresztül ér hetô el . ( A r egiszterkészlet l eírását l ásd k ésôbb) Az ár amkörbe b eépített me mórián kívül, vagy azzal együtt, külsô memória használatára is van mód, a normál CPU-knál megszokott módon. Programmemória A b elsô p rogrammemória h asználatát az EA jellel s zabályozhatjuk. H a er re a b ementre 1 -es szintet (tápfeszültség) köt ünk, akkor a processzor a 0000H-0FFFH címek esetén az utasításokat a belsô pr ogrammemóriából ol vassa be . ( 8 K byte be lsô ROM esetén a cí mtartomány: 0000H1FFFH) Ha az EA bemenetre 0 s zintet köt ünk, akkor a processzor m indig a kül sô m emóriából olvassa az u tasításokat. E bbôl köve tkezik, hogy a ROM nélküli változatoknál az EA bemenetet mindig 0 szintre kell kötni. Külsô programmemóriát a

következôképpen használhatunk: EPROM MCS-51 P1 Adat P0 EA Cím ALE LATCH P3 P2 PSEN Cím OE Ebben az es etben a P0 port mu ltiplexelt cím/adatbuszként m ûködik, a P2 pedig a cí mbusz felsô fele lesz. A multiplexelt cím és adat szétválasztását az ALE jel segíti, míg a PSEN jel használható olvasás jelként. A memóriacím mindig 16 bites, és a külsô memória elérése lefoglalja a P0 és P2 portokat, így azok másra nem használhatók. Amennyiben használjuk a belsô memóriát, de a cím kívül e sik a b elsô c ímtartományon, a CPU a kül sô m emóriához f ordul, a kár va n a kár ni ncs. H a tehát ni ncs kül sô memória és a p ortokat I/O-ként ha sználjuk, a kkor vi gyáznunk ke ll, hog y a program ne tévedjen a belsô programmemórián kívülre. Adatmemória Amennyiben külsô adatmemóriát kapcsolunk az áramkörhöz, úgy az csak a MOVX utasítással érhetô el . E zzel az u tasítással 8 v agy 1 6 bites címzést h asználhatunk.

8 b ites cí mzés esetén gyakori, hogy több 256 byte-os memória közül a P2 portra k iírt é rtékkel vá lasztjuk k i a z a ktív lapot. P0 P1 MCS-51 EA LATCH Vcc Adat RAM ALE Cím RD WR P3 P2 I/O lap választás WE OE Ebben a pé ldában a belsô ROM-ot használjuk programmemóriaként. A külsô RAM mérete 2K (8 x 256 byte). A RAM-ot 8 bittel címezzük, a 256 by te-os l apokat e lôzôleg m indig a P2 portra ki írt é rtékkel vá lasztjuk ki . E z a zért e lônyös, mert így a P2 port fennmaradó 5 vo nala I/O-ként felhasználható, míg 16 bi tes címzés esetén a P2 2 buszként mûködik, így nem használható fel (külsô programmemória használata esetén mindig ez a helyzet - lásd az elôbb). A belsô memória 8 bittel címezhetô, tehát maximum 256 byte lehet. Ebbôl típustól függôen 128 byte, vagy 256 by te használható RAM-ként. Ez a terület két részre oszlik: az alsó 128 byte (00H7FH) és a felsô 128 byte (80H-0FFH) eltérôen

kezelendô (A címzési módokat részletesebben majd a processzor utasításkészletének ismertetésénél mutatjuk be.) Az alsó 128 byte di rekt é s i ndirekt m ódon i s megcímezhetô. Ezen a t erületen h elyezkednek el a regiszterek ( a 8 b ites CPU-knál megszokott r egiszterkészlet nincs a p rocesszorban) és a v erem. Az alsó 32 byte ( 00H-1FH) né gy kül önálló r egiszterkészletet tartalmaz. M inden r egiszterkészlet 8 r egiszterbôl (R0-R7) ál l. A r egiszterkészletek k özül egyszerre t ermészetesen csak egy lehet aktív, ezt a PSW (programállapot s zó) r egiszter k ét b itje h atározza meg és programból á llíthatjuk be . A pr ocesszor r egiszterei tehát az áramkörbe beépített adatmemóriában vannak, így kétféleképpen is elérhetôk, úgy is mint regiszterek és ú gy is min t me mória. A v erem-mutató ( SP) bekapcsolás utáni kezdôértéke is erre a területre mutat (a kezdôérték 7). A 20H-val kezdôdô terület általános RAM-ként

használható, melyen be lül a 20H-2FH címterület bitenként is megcímezhetô (bit cím: 0-7F). 7FH Regiszterkészlet kiválasztás a PSWben 11 10 01 00 2FH 20H 18H 10H 08H 0 Bitenként címezhetô terület 1FH 17H 0FH 07H 4 regiszterkészlet 8 regiszter (R0-R7) Veremmutató (SP) kezdôértéke A felsô 128 by te c sak a 8052 s orozatban ha sználható RAM-ként és o tt is c sak in direkt címzéssel. Ha direkt címzést használunk akkor az MCS 51 sorozat minden típusánál az úgynevezett SFR-t érhetjük e l ( Special Function Registers, az az " különleges s zerepû regiszterek"). Az SFR tartalmazza a p ortok tárolóit, az idôzítôket, a perifériák vezérlôregisztereit stb. Ezek a regiszterek tehát csak direkt címzéssel érhetôk el. Az SFR területen tizenhat byte bitenként is megcímezhetô Ezek a zok a by te-ok, am elyeknek a cí me 8 -cal o sztható. E zek a 80H-FFH bitcímen b itenként is elérhetôk (elsôsorban a portok és a

vezérlôregiszterek). A következô táblázat tartalmazza a regiszterek nevét, címét és a RESET utáni kezdôértéket. A csillaggal (*) jelölt regiszterek bitenként is címezhetôk. A plusz jellel (+) jelölt regisztereket csak a 8052 s orozat t artalmazza. A ke zdôértékekben e lôforduló X j el a zt je lenti, h ogy a z a b it n em definiált. Szimbólum Név *ACC *B *PSW SP DPTR Akkumulátor B regiszter Program állapot szó Verem mutató Adat mutató, 2 byte Alsó byte Felsô byte Port 0 Port 1 Port 2 Port 3 *P0 *P1 *P2 *P3 DPL DPH 3 Cím (hexa) E0 F0 D0 81 Kezdôérték (binárisan) 00000000 00000000 00000000 00000111 82 83 80 90 A0 B0 00000000 00000000 11111111 11111111 11111111 11111111 *IP Megszakítás prioritás vezérlés B8 *IE Megszakítás engedélyezés A8 TMOD *TCON *+T2CON TH0 TL0 TH1 TL1 +TH2 +TL2 +RCAP2H +RCAP2L *SCON SBUF PCON Számláló, üzemmód Számláló, vezérlés Számláló 2, vezérlés Számláló 0, felsô byte

Számláló 0, alsó byte Számláló 1, felsô byte Számláló 1, alsó byte Számláló 2, felsô byte Számláló 2, alsó byte Számláló 2, tároló regiszter felsô byte Számláló 2, tároló regiszter alsó byte Soros vonal vezérlés Soros vonal puffer Fogyasztás vezérlés 89 88 C8 8C 8A 8D 8B CD CC CB CA 98 99 87 8051 XXX00000 8052 XX000000 8051 0XX00000 8052 0X000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 nem definiált HMOS 0XXXXXXX CHMOS 0XXX0000 Regiszterek PSW (Program Status Word) CY CY AC F0 RS1 RS0 OV P AC F0 PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 RS1 RS0 OV - P Átvitel flag. Félátvitel (3. bitrôl a 4-ikre) Flag 0. Szabadon felhasználható Regiszterkészlet kiválasztás, 1. bit Regiszterkészlet kiválasztás, 0. bit Túlcsordulás. Felhasználó által definiálható. Paritás. H ardware á ltal b eállított flag H a az ak kumulátorban a z egyesek száma páros,

akkor 0, ha az egyesek száma páratlan, akkor 1. A regiszterkészlet kiválasztása két bittel történik: RS1 0 0 1 1 RS0 0 1 0 1 Regiszterkészlet 0 1 2 3 Cím 00H-07H 08H-0FH 10H-17H 18H-1FH PCON (Power Control Register) SMOD - - - GF1 GF0 PD 4 IDL SMO D GF1 GF0 PD IDL Dupla baud sebesség bit. Ha a Timer 1 állítja elô a s oros vonal órajelét és az SMOD=1, akkor a soros vonal sebessége duplázódik. Általános célú bit. Általános célú bit. Ennek a bi tnek a z 1 -be á llítása a ktiválja a Power Do wn üzemmódot a 80C51BH típusnál. (Csak a CHMOS áramkörnél mûködik) Ennek a bitnek az 1-be állítása aktiválja az Idle Mode üzemmódot a 80C51BH típusnál. (Csak a CHMOS áramkörnél mûködik) Amennyiben a PD és az IDL bit e gyidôben 1 -es ér tékû, a PD-nek van e lsôbbsége. A HMOS áramköröknél csak az SMOD bit van megvalósítva, a többi négy bit csak a CHMOS áramkörökben található meg. A 4-6 biteket (HMOS

áramköröknél a 0-6 biteket) nem szabad 1-be állítani! A CHMOS áramkörök fogyasztáscsökkentô üzemmódjai Kétféle üzemmód van: az Idle Mode és a Power Down. Az Idle Mode bekapcsolása esetén az utolsó ut asítás vé grehajtása be fejezôdik, a z os zcillátor t ovább m ûködik, a m egszakításvezérlô, a soros vonal, a portok és az idôzítôk megkapják az órajelet, csak a CPU áll le. A teljes CPU állapot megôrzôdik, min den r egiszter é s p ort me gtartja a z é rtékét. A z ALE és a PSEN jelek lo gikai magas szinten vannak. Az üzemmódnak két dolog vethet véget Ha egy engedélyezett megszakítás bejut, a kkor a z IDL bitet törli a p rocesszor. A me gszakítórutin ut án nor mál m ódon f olytatódik a végrehajtás. A GF0 és GF1 biteket f el l ehet h asználni a m egszakítás j elzésére, p l az az u tasítás amely bekapcsolja az Idle M ode-ot, be állíthatja a GF flageket, a m egszakítórutin pe dig felhasználhatja az értéküket. A

második módszer az Idle Mode megszüntetésére a h ardware reset Az RST bemenetre ad ott j el as zinkron m ódon t örli a z IDL bitet, és a p rogram v égrehajtás o tt folytatódik, a hol a bbamaradt. J egyezzük meg, hog y a z Idle Mode bekapcsolását köve tô ut asítás nem írhat portra vagy külsô RAM-ba! Power Down esetében leáll az oszcillátor, minden mûködés megszûnik, de a RAM és az SFR megtartja az értékét. Az ALE és a PSEN jelek logikai alacsony szintûek lesznek A Power Down módot cs ak h ardware r esettel l ehet m egszüntetni. I lyenkor az SFR-ben minden r egiszter a kezdôértéket v eszi f el, d e a RAM tartalma n em v áltozik. Power Do wn üzemmódban ( csak a bekapcsolása u tán) a tápfeszültséget 2V-ra lehet c sökkenteni. M ielôtt a no rmál mó dot visszállítanánk a tápfeszültséget vissza kell á llítani a n ormál é rtékre. A reset jelet cs ak a tápfeszültség visszaállítása után szabad a ktivizálni, é s a ktív á

llapotban k ell ta rtani a míg a z oszcillátor újra beindul és stabilizálódik (ez rendesen kevesebb mint 10 msec). Megszakítások A 8051 öt megszakítást kezel: 2 külsô megszakítást, a 2 idôzítô megszakításait és a soros vonal megszakítását. A 8052-ben három idôzítô van, így ott hat forrása lehet a megszakításnak A külsô megszakítások l ehetnek él- vagy s zintvezéreltek. M inden me gszakítást je lez egy bit valamelyik regiszterben (pl. az RI bit az SCON regiszterben a soros vonal vételi oldalának megszakításkérését jelzi). Ezek a bitek a programból is beírhatók, ami ugyanúgy kiváltja a megszakítást, mintha azt a hardware kezdeményezte volna. IE (Interrupt Enable Register) EA - ET2 ES ET1 EX1 ET0 5 EX0 EA IE.7 ET2 ES ET1 EX1 ET0 EX0 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 Minden m egszakítást en gedélyez, l etilt. H a ez a b it 0 , ak kor egyetlen megszakítás sem jut érvényre Ha ez a bit 1, akkor a megszakítások

egyenként tilthatók, engedélyezhetôk Engedélyezi, vagy tiltja a Timer 2 megszakításait (csak 8052-nél). A soros port megszakításainak engedélyezése, tiltása. Timer 1 megszakítás engedélyezô bit. Külsô megszakítás 1 engedélyezô bit. Timer 0 engedélyezô bit. Külsô megszakítás 0 engedélyezô bit. Ha az IE regiszterben az ad ott en gedélyezô b itet 1 -be á llítjuk, a kkor a z a megszakítás engedélyezve lesz, ha 0-ba, akkor tiltva. A külsô megszakítások lehetnek él- vagy szintvezérletek, ezt a TCON regiszterben állíthatjuk be (lásd ott). A megszakítások prioritása is programozható Két prioritási s zint v an: m agas, és al acsony. B ármely me gszakítás p rioritási s zintje b eállítható a z IP regiszterben. IP (Interrupt Priority Register) PT2 PS PT1 PX1 PT0 PX0 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0 PT2 PS PT1 PX1 PT0 PX0 Timer 2 megszakításainak prioritása (csak 8052-nél). A soros port megszakításainak prioritása. Timer 1

megszakítás prioritás. Külsô megszakítás 1 prioritás. Timer 0 megszakítás prioritás. Külsô megszakítás 0 prioritás. Ha a megfelelô bitet 1-be állítjuk, akkor az adott megszakítás magas szintû lesz, ha 0-ba, akkor pedig alacsony szintû. Az alacsony szintû m egszakításokat a m agas s zintû m egszakítások megszakíthatják, míg a magas szintûeket semmi sem. Ha egyszerre érkezik a CPU-hoz egy magas és eg y al acsony s zintû m egszakítás-kérés, akkor a m agas s zintûnek va n e lsôbbsége. H a ké t egyforma szintû megszakítás-kérés érkezik, akkor a prioritási sorrend a következô: 1. 2. 3. 4. 5. 6. Forrás IE0 TF0 IE1 TF1 RI + TI TF2 + EXF2 Prioritási szint magasabb alacsonyabb A r övidítések je lentése: IE = külsô m egszakítás (External I nterrupt); TF = idôzítô me gszakítás (Timer I nterrupt); RI = soros vona li m egszakítás vétel esetén (Receive Interrupt); TI = soros vonali megszakítás eg y k arakter kiküldése ut

án (Transmit I nterrupt); EXF2 = 2-es i dôzítô kül sô beírójele (csak a 8052 sorozatnál). A megszakítások kezelése Ha egy külsô megszakítást szintvezéreltre programoztunk, akkor a külsô megszakítás-kérô jelet fenn kell tartani addig, amíg a CPU elkezdi a m egszakítás végrehajtását, majd meg kell szüntetni, mielôtt a megszakítórutin befejezôdik, mert különben újabb megszakítás keletkezik. Amint egy megszakítás ér vényre j ut, a CPU befejezi az ép pen v égrehajtás al att l évô utasítást, valamint ha ez az utasítás IRET, vagy olyan utasítás ami befolyásolja az IE vagy IP regisztereket, akkor a következô utasítást is, m ajd a utomatikusan g enerál eg y LCALL utasítást, vagyis a 6 megszakítás forrásától függôen meghív e gy a dott c ímû s zubrutint. A z LCALL utasítás e lmenti a programszámlálót a v erembe, de a PSW regisztert nem! Ezután a PC regiszter a k övetkezô értéket veszi fel: Ezt a módszert

vektoros megszakításnak nevezik. Ezeken a címeken többnyire ugró ut asításokat he lyezünk e l, a melyek a m egfelelô s zubrutinra ad ják a v ezérlést. A megszakító szubrutinnak IRET utasítással kell végzôdnie, amely értesíti a pr ocesszort a rról, hog y a m egszakítás kezelése b efejezôdött. A CPU visszaállítja a p rogramszámláló r egiszter értékét, a p rogram végrehajtása a m egszakítás h elyétôl folytatódik. H a e kkor i s va n é rvényes m egszakítás ké rés, a processzor a fôprogramból akkor is végrehajt legalább egy utasítást, mielôtt az újabb megszakítást elindítaná! Forrás IE0 TF0 IE1 TF1 RI + TI TF2 + EXF2 Cím 0003H 000BH 0013H 001BH 0023H 002BH Be- és kimeneti portok Latch olvasás Belsô busz Latch írás Mind a négy port kétirányú és output irányban tárolóval van ellátva. A tárolók az SFR területen érhetôk el (P0, P1, P2, P3 regiszterek). Cím/ VezérVcc Adat lés D Q CL Q Láb MUX Olvasás

a lábról A Port 0 egy bitje Ezen a rajzon a P ort 0 egy bitjének belsô felépítése látható. A Port 2 be lsô felépítése ettôl csak annyiban tér el, hogy az ÉS kapu egy belsô felhúzó ellenállást vezérel. A P0 és a P2 port a mu ltiplexelt c ím/adatbusz s zerepét l átja el , amennyiben kül sô m emóriát ha sználunk ( bôvebben l ásd a Társzervezésnél). A P3-as port, é s a 8052 sorozatban a P1 port ké t bi tje, s zintén t öbb f unkcióval r endelkezik. Ezek a por tok úg ynevezett k vázi k étirányú por tok. E z a zt j elenti, hog y ha a por tra 0 -t í runk ki , akkor az a kimenetet alacsony szintre kényszeríti. Ha azonban 1-et, akkor csupán a belsô felhúzó ellenállás ta rtja a p ortot ma gas s zinten, így az bemenetként is használható, hiszen kívülrôl alacsony szintre húzható. Vcc Tároló olvasása Ebbôl következik, hogy ha egy portbitet bemenetként akarunk használni, a kkor m int ki menetet 1 -be k ell ál lítani. U gyanez

a helyzet az alternatív funkciójú bitekkel is. Amelyiket használjuk a programban, a zt a bi tet a por ton állítsuk 1 -be! A b itek és a funkciójuk: Port, bit P1.0 P1.1 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 Másodlagos funkció T2: Timer 2 külsô bemenete. T2EX: Timer 2 mintavevô (trigger) bemenete. RXD: soros vonal bemenet. TXD: soros vonal kimenet. INT0 : külsô megszakítás. INT1 : külsô megszakítás. T0: Timer 0 bemenet. T1: Timer 1 bemenet. WR : külsô memória írás jel. 7 Belsô busz Port írás Belsô felhúzó ellenállás Q D LATCH CL Q Láb Olvasás a lábról Kvázi kétirányú port P3.7 RD : külsô memória olvasás jel. Az 1, 2 és 3 portok 4 LS TTL bemenetet tudnak mûködtetni. A Port 0 külsô busz üzemmódban 8 LS TTL bemenet meghajtására képes, portként használva külsô felhúzó ellenállásokat igényel, ha bemeneteket akarunk vele mûködtetni. Néhány u tasítás az ad atokat a t árolóról olvassa, né hány pe dig a l

ábról. A zok a z ut asítások amelyek a portról l eolvasott é rtéket vi sszaírják a por tra, m indig a t árolót ol vassák. E zek a z úgynevezett ol vas-módosít-ír ut asítások a köve tkezôk: ANL; ORL; XRL; J BC; C PL; INC; D EC; DJNZ; MOV PX.Y, C; CLR PXY; SETB PXY Idôzítôk, számlálók A 8052-es típusnak három, a többinek két 16 bites idôzítô/számláló egysége van, a Timer 0 és a Timer 1. Mindegyikük idôzítôként vagy eseményszámlálóként használható Idôzítô üzemmódban a regiszterek tartalma minden gépi ciklus során eggyel nô. M ivel a gépi ciklus 12 órajel-periódusból áll, a számlálási sebesség az órajel-frekvencia 1/12-e. Számláló üzemmódban a r egiszterek t artalma a m egfelelô b emeneten m egjelenô l efutó él hatására eg gyel n ô. M ivel az át menet érzékelése k ét g épi ci klus i dejéig t art, ez ért a m aximális számlálási f rekvencia az ó rajel f rekvenciájának 1 /24-e. A Timer 0-nak négy

üzemmódja va n, a Timer 1-nek és a Timer 2-nek (8052) három. TMOD (Timer/Counter Mode Control Register) GATE C/ T M1 Timer 1 GATE M0 GATE M1 C/ T M0 Timer 0 Kapuzás. H a ez a b it 1 -es, a kkor a s zámláló ki - illetve b ekapcsolása az INTx bemenetre adott jellel végezhetô (ha az INTx magas, akkor a számláló mûködik). Ha C/ T ez a b it 0, akkor a számláló a TCON regiszterben lévô TR bittel kapcsolható be, vagy ki. Számláló, vagy idôzítô üzemmód választás: 1 = számláló, 0 = idôzítô. M1 M0 Üzemmód 0 0 A TH 8 bites idôzítô/számláló, a TL 5 bites elôosztóként mûködik. 0 1 A TH és a TL 16 bites számláló/idôzítôt alkot, elôosztó nincs. 1 0 A TL 8 bi tes i dôzítô/számlálóként m ûködik, t úlcsorduláskor a utomatikusan új ratöltôdik a TH-ból. 1 1 (Timer 0) TL0 8 b ites id ôzítô/számláló a Timer 0 v ezérlô b itjeivel n ormál módon vezérelve, a TH0 pedig 8 bites idôzítô a Timer 1 vezérlô

bitjeivel vezérelve. 1 1 (Timer 1) A számláló leáll, tartja az értékét. 8 TCON (Timer/Counter Control Register) TF1 TR1 TF0 TF1 TCON.7 TR1 TCON.6 TF0 TCON.5 TR0 TCON.4 IE1 TCON.3 IT1 TCON.2 IE0 TCON.1 IT0 TCON.0 TR0 IE1 IT1 IE0 IT0 Timer 1 t úlcsordulás j elzô bi t. A hardware 1-esbe állítja amikor a számláló túlcsordul. A hardware törli, amikor a megszakítás elkezdôdik Timer 1 ki - ill. b ekapcsolás B eállításával ille tve tö rlésével a z id ôzítô/számláló elindítható illetve leállítható Timer 0 t úlcsordulás j elzô bi t. A hardware 1-esbe állítja amikor a számláló túlcsordul. A hardware törli, amikor a megszakítás elkezdôdik Timer 0 ki - ill. b ekapcsolás B eállításával ille tve tö rlésével a z id ôzítô/számláló elindítható illetve leállítható Megszakítás 1 él j elzô. A hardware beállítja, a mikor a k ülsô me gszakításkérés bemeneten detektált egy élt A megszakítás

végrehajtásakor törlôdik Megszakítás 1 típus. Ha beállítjuk, akkor az INT1 bemeneten megjelenô lefutó él fog megszakítást kiváltani Ha t öröljük, a kkor a z a lacsony s zint f og megszakítást generálni. Megszakítás 0 él j elzô. A hardware beállítja, a mikor a k ülsô me gszakításkérés bemeneten detektált egy élt A megszakítás végrehajtásakor törlôdik Megszakítás 0 t ípus. H a be állítjuk, a kkor a z INT0 bemeneten m egjelenô lefutó él fog megszakítást kiváltani. Ha töröljük, akkor az alacsony szint fog megszakítást generálni. 0-ás üzemmód OSC /12 Megszakítás C/T=0 T1 láb GATE TR1 TL1 5 bit C/T=1 TH1 8 bit Vezérlés INT1 láb Idôzítô/számláló 1, üzemmód 0 TF1 Ebben az üz emmódban a számláló 13 bi tes. Így kompatíbilis a 8048-as típussal. A TH regiszter al kotja a s zámláló a lsó 8 bitjét, a TL regiszter al só 5 bitje pedig e lôosztóként mûködik. A TL regiszter felsô 3 b itje n em

definiált értékû, figyelmen kívül kell hagyni. 1-es üzemmód Ez az üzemmód csupán annyiban különbözik a 0-ás üzemmódtól, hogy a TH, TL regiszterek 16 bites számlálót alkotnak. 2-es üzemmód Ebben az üzemmódban a TL számláló 8 bites számlálót alkot, amely túlcsordulásakor automatikusan újratöltôdik, méghozzá a TH regiszterbôl. 9 OSC /12 Megszakítás C/T=0 TL1 8 bit T1 láb TF1 C/T=1 Vezérlés TR1 PRELOAD GATE TH1 8 bit INT1 láb Idôzítô/számláló 1; 2-es üzemmód A s zámláló k ezdôértékét, amelytôl az elôreszámol ma jd 255-ig, be ke ll tölteni a TH regiszterbe. Az ér ték áttöltése a TL regiszterbe nem v áltoztatja me g a TH regisztert. 3-as üzemmód 1/12 fosc /12 OSC 1/12 fosc Megszakítás C/T=0 T0 láb TR0 TL0 8 bit C/T=1 TF0 Vezérlés Ebben az üz emmódban cs ak a Timer 0 használható. E kkor a Timer 0 k ét eg ységre bomlik. A TL0 regiszter 8 bi tes i dôzítôként vagy s zámlálóként

használható a megszokott módon, tehát a T0 és INT0 bemenetek GATE és a GATE, TR0, TF0 vezérlôbitek s egítsé1/12 fosc TH0 TF1 gével. A TH0 regiszter 8 bit 8 bites i dôzítôként TR1 Vezérlés mûködik és a TR1, TF1 bitekkel (vagyis a Idôzítô/számláló 0; 3-as üzemmód Timer 1 ve zérlôbitjeivel) mûködtethetô. Mivel a Timer 0 lefoglalja a TR1-et, ezért a Timer 1-et a 3-as üzemmódba való átkapcsolással kapcsolhatjuk ki (lásd a TMOD regisztert). Mivel a TF1 bit is foglalt, ezért a Timer 1 csak olyan esetekben használható, amikor nincs szükség arra, hogy az megszakítást váltson ki (pl. ha baud rate generátorként használjuk a soros vonalhoz). Megszakítás INT0 láb Timer 2 (8052) A 8052 s orozatban 3 i dôzítô/számláló va n. A Timer 2 l ehet i dôzítô, va gy s zámláló é s há rom üzemmódban m ûködhet: "capture", " auto-load" é s baud r ate generátor üz emmódban. E hhez a z idôzítôhöz egy újabb

vezérlôregiszter tartozik. T2CON (Timer/Counter 2 Control Register) TF2 EXF2 RCLK TCLK EXEN2 TR2 10 C/ CP/ T2 RL2 TF2 T2CON.7 EXF2 T2CON.6 RCLK T2CON.5 TCLK T2CON.4 EXEN2 T2CON.3 TR2 T2CON.2 C/ T2 T2CON.1 CP/ RL2 T2CON.0 Timer 2 túlcsordulás jelzô bit. 1-esbe állítódik amikor a számláló túlcsordul A pr ogramnak ke ll t örölnie A TF2 nem á llítódik be , ha RCLK=1 vagy TCLK=1. A kül sô be meneten ( T2EX) me gjelenô le futó é lt d etektáló b it, h a EXEN2=1. H a a Timer 2 m egszakítás en gedélyezve va n, a kkor a z EXF2=1 megszakítást vált ki. Az EXF2-t a programnak kell törölnie Vevô órajel vezérlés. Ha ez a bit 1-es, akkor a soros vonal vételi oldala a Timer 2 t úlcsordulásait h asználja ó rajelként az 1 -es és a 3-as üzemmódokban. H a ez a bi t 0, a kkor a s oros vona l vé teli ol dala számára a Timer 1 állítja elô az órajelet. Adó órajel vezérlés. Ha ez a b it 1-es, akkor a soros vonal adó oldala a

Timer 2 t úlcsordulásait h asználja ó rajelként az 1 -es és a 3 -as üzemmódokban. Ha ez a bit 0, akkor a soros vonal adó oldala számára a Timer 1 állítja elô az órajelet. Külsô b emenet en gedélyezés. A mennyiben a Timer 2 a s oros vona lat mûködteti, vagy ez a bi t 0, a T2EX bemeneten megjelenô lefutó élt a számláló figyelmen kívül hagyja. A Timer 2 ki- illetve bekapcsolását végzô bit. 0-kikapcsolás; 1-bekapcsolás. Idôzítô vagy számláló üzemmód kiválasztása: 0-belsô órajellel mûködtetett idôzítô (OSC/12); 1-külsô jelet (T2) számol (lefutó él). "Capture" vagy " reload" m ód k iválasztása. H a ez a b it 1 -es, a kkor a T2EX bemeneten megjelenô lefutó é l a s zámláló ta rtalmát á tírja e gy átmeneti regiszterbe (RCAP2L és RCAP2H). Ez a " Capture" mód Ha ez a bi t 0, a kkor a számláló minden t úlcsorduláskor va gy a T2EX bemeneten megjelenô lefutó él hatására (ha az EXEN2=1) az

RCAP2L és RCAP2H regiszterekben l évô ér téket v eszi f el. E z a " reload" m ód Ha az RCLK vagy TCLK bit 1-es, akkor ezt a b itet a CPU figyelmen kívül hagyja, és a Timer 2 "reload" módban fog mûködni. Soros port A duplex, azaz egyidôben adni és venni képes soros port nagymértékben megkönnyíti a mikroszámítógép és a környezet közötti kommunikációt. A por tnak t öbb üz emmódja va n, a melyek a megfelelô regiszter programozásával lehetôvé teszik az adatátviteli sebesség beállítását (az órajelfrekvencia 1/12, 1/32 vagy 1/64-e, változtatható) és az adatátviteli formátum (csak 8 adatbit; 1 start, 8 adat- és 1 stopbit; 1 start-, 9 adat- és 1 stopbit) megválasztását. SCON (Serial Port Control Register) SM0 SM1 SM2 REN TB8 RB8 TI RI Az SM0 és az SM1 bitek határozzák meg az üzemmódot: SM0 0 0 1 1 SM1 0 1 0 1 Mód 0 1 2 3 Leírás Shift regiszter 8 bit UART 9 bit UART 9 bit UART Baud Rate fosc/12

változtatható fosc/32 vagy fosc/64 változtatható 11 SM2 REN TB8 RB8 TI RI A 2 -es és a 3 -as üz emmódokban e ngedélyezi a m ultiprocesszor kom munikáció t ámogatását. A 0 -ás üz emmódnál 0 -ba k ell á llítani! H a e z a b it 1 -es, ak kor v étel es etén csak a kkor ke letkezik m egszakításkérés, ha a 9. vett bit (1-es m ódban a s topbit) 1 -es értékû. Vétel engedélyezés. Ha ez a bit 1-es, a vevô mûködése engedélyezve van Ez a 9-edik adatbit, amelyet az adó a 2-es és a 3-as üzemmódokban lead. Értéke szükség szerint állítható. A 2 -es és a 3 -as üz emmódokban a 9 -edik vett adatbit é rtékét ta rtalmazza. 1 -es üzemmódban a s topbitet tartalmazza, ha az SM2 bit 0. 0 -ás üzemmódban ez a bit nem használatos. Adás megszakítás jelzô bit. A hardware állítja be, de törölni programból kell Vétel me gszakítás je lzô b it. V ett ad at es etén a hardware állítja b e, d e tö rölni a programból kell! Sebesség A

sebesség mód0 esetén rögzített: az oszcillátor frekvencia 12-ed része. Mód 2 esetén a sebességet az SMOD bit határozza meg (lásd a PCON regisztert). Ha az SMOD bit 1, a kkor a baud r ate az oszcillátor f rekvencia 3 2-ed r észe, ha pe dig 0, a kkor a z os zcillátor frekvencia 64-ed része. Mód 1 és 3 es etén a 8 051 s orozatnál a sebességet a Timer 1 h atározza m eg. A Timer 1 túlcsordulásaiból adódó frekvenciát a processzor elosztja 32-vel, így áll elô a soros vonal baud rateje. E kkor a Timer 1-et 8 b ites id ôzítô ü zemmódba á llítjuk, automatikus újra feltöltéssel, a megszakítást pedig letiltjuk (a TMOD regiszter felsô 4 bitje: 0010). Ekkor a sebességet a következô formulával számíthatjuk: 2 SMOD Oszcillátor frekvencia Mód 1, 3 Baud Rate = × 32 12 × 256 − TH1 a f Látható, hog y e zekben a z üz emmódokban i s m egduplázhatjuk a s oros vona l sebességét az SMOD bit ( TCON regiszter) 1 -be á llításával. H a na gyon ki

s s ebességre va n s zükségünk, akkor programozzuk a Timer 1-et, hogy a z 16 bi tes i dôzítôként m ûködjön ( TMOD regiszter f elsô n égy bitje: 0001), engedélyezzük a megszakítást, és a számlálót a megszakítórutinban töltsük fel a kívánt értékkel. A 8052 sorozat esetében a Timer 2-t is használhatjuk vagy az adó, vagy a vevô, vagy mindkettô sebességének beállítására (lásd a T2CON regisztert). Ha az RCLK vagy a TCLK bitet 1-be állítjuk, akkor a pr ocesszor a Timer 2 t úlcsordulásainak f rekvenciáját ha sználja a s oros vona lhoz ( 16-al elosztva!). Ekkor többnyire az idôzítô üzemmódot programozzuk (a C/T2 bit 0) A Timer 2 baud rate generátor üz emmódban ne m a z os zcillátor f rekvencia 1/12-éd, ha nem 1/ 2-ét s zámolja! A sebességet tehát a következô képlet adja: Oszcillátor frekvencia Mód 1, 3 Baud Rate = 32 × 65536 − RCAPH , RCAPL a f Itt a RCAPH és az RCAPL regiszterek tartalma 16 bites elôjel nélküli

egész számként értendô. Mód 0 Ebben az üzemmódban a továbbított bitek száma 8. A vétel és az adás is az RXD kivezetésen keresztül zajlik, a TXD kivezetésen az órajel jelenik meg. Az adás az adatnak az SBUF regiszterbe 12 történô beírásával indítható el. Az adatok bitrôl-bitre kisorjáznak a P3 port 0 bi tjén (RXD), az 1 biten (TXD) a soros vonali órajel jelenik meg. Ha az egész byte kiment, akkor a processzor leállítja az adást és bebillenti a TI megszakításkérô bitet. A vétel engedélyezésének a f eltétele: REN=1 és RI=0. Vétel esetén csakúgy mint az adásnál, a P3.1 kivezetésen megjelenik a soros vonal órajele Az adatbiteket a P30 kivezetésre kell kapcsolni A CPU beolvas n yolc b itet, az ad atot át írja az SBUF regiszterbe, le állítja a v étel ü zemmódot é s bebillenti az RI bitet. Mód 1 Ebben az üzemmódban a CPU 10 bitet továbbít, illetve fogad. Egy startbitet (ez 0 értékû), nyolc adatbitet é s e gy s topbitet

(ez 1-es é rtékû). A z a datok t ovábbítása a TXD kivezetésen k eresztül történik, a vétel az RXD kivezetésen keresztül. Az adás az SBUF regiszterbe való írással indítható el. Amint az adat elküldése befejezôdött, a TI bit 1 lesz. A v ételt az RXD kivezetésen megjelenô startbit (lefutó él) indítja el. Az adatok vétele után a CPU beállítja az SBUF regisztert, az RB8 és az RI bitet. Mindezt azonban csak akkor teszi meg, ha 1. RI=0, és 2. Vagy SM2=0, vagy a vett stop bit=1 Ha az elôbbi feltételek közül valamelyik nem teljesül, akkor a v ett adat elvész és a v ételi áramkör az újabb adatra várakozik. Ha a f eltételek teljesülnek, akkor az adat az SBUF regiszterbe kerül, a stopbit az RB8 bitbe és az RI bit 1-es lesz. Mód 2, 3 Ezek az üzemmódok megegyeznek, csupán az órajel forrása eltérô. Mód 2 esetén az órajel az oszcillátor frekvencia 1/32-ed, vagy 1/64-ed része lehet (lásd az SCON regisztert). Mód 3 esetén az órajelet a

z id ôzítôk s egítségével h atározhatjuk me g. A CPU az ad atokat a TXD kivezetésen továbbítja, a v étel az RXD kivezetésen át zajlik. A továbbított bitek száma 11 E gy startbit, nyolc adatbit, e gy 9. pr ogramozható a datbit é s e gy s topbit A dás e setén a CPU a TB8 bitet to vábbítja kilencedikként, vételkor a 9. bit az SCON regiszter RB8 bitjébe kerül Az adás és a vétel t ulajdonképpen ugyanúgy z ajlik, m int az 1 -es m ódban, cs ak a b itek száma nagyobb eggyel. Ha egy adat vétele befejezôdött és teljesülnek a következô feltételek: 1. RI=0 és 2. Vagy SM2=0, vagy a kilencedik adatbit=1, akkor a vett adatbyte az SBUF regiszterbe kerül, a 9. vett adatbit az RB8 bitbe, az RI bit pedig 1-es lesz. Egyébként a vett adat elvész Ezeknek a z üz emmódoknak t ehát a z a l ényege, hog y e gy plusz adatbit továbbítására van lehetôség. Ezt felhasználhatjuk pa ritásbitként, va gy m egvalósíthatunk t öbb ké szülék köz ötti

kommunikációt i s, ha ki használjuk a zt, hog y SM2=1 esetén cs ak ak kor k eletkezik v ételi m egszakítás, ha a 9. adatbit (ami az RB8 bitbe került) 1-es értékû A f ô k észüléknek az ad atok t ovábbítása el ôtt k i k ell j elölnie az t az alkészüléket, amelyhez az adatokat szeretné elküldeni, vagy amelyiktôl adatokat vár. Ezt címzéssel lehet elérni A fô készülék 13 a közös vonalon elôször egy címet küld el. A címben a 9 bit 1-es értékû, így minden alkészülékben megszakítás k eletkezik, v agyis a c ímet min denki v eszi. A me gcímzett készülék felkészül az adattovábbításra, v agyis az SM2D b itet 0 -ba á llítja. E zután a 9 b it értékétôl f üggetlenül m inden vett byte megszakítást fog kiváltani. Az adatokban a 9 bit 0, így csak a kiválasztott készülék veszi azokat. ONCE mód A ONCE jelentése "on-circuit emulation". Ez egy speciális üzemmód, amely lehetôvé teszi az emulációt a

nélkül, hog y a CPU-t el kellene távolítani a z á ramkörbôl. E zt a z ü zemmódot a következôképpen kapcsolhatjuk be: 1. Kapcsoljunk alacsony szintet az ALE kivezetésre amíg a CPU reset állapotban van és a PSEN kimenet magas szintû. 2. Tartsuk alacsony szinten az ALE kivezetést, amíg az RST bemenet inaktívvá válik Ebben a z üz emmódban a Port 0 k ivezetései l ebegnek, az ALE és a PSEN kivezetéseket a CPU felhúzó e llenállásokkal ma gas s zinten ta rtja. Az os zcillátor t ovább m ûködik A míg a pr ocesszor ebben az üzemmódban van, az e mulátor, va gy a t eszt CPU mûködtetheti a z á ramkört. A nor mál üzemmódot normál reset-tel lehet visszaállítani. 14 Utasításkészlet Címzési módok. Azokban az ut asításokban, amelyekben 16 bites adat, vagy cím szerepel, az utasítás kódját az adat magasabb helyiértékû byte-ja követi, majd az alacsonyabb helyiértékû byte következik. Direkt címzés. Az u tasításban eg y 8 b ites

cí met ad unk m eg E zzel a módszerrel csak a beépített RAM és az SFR címezhetô meg. Indirekt címzés. A címet egy regiszter tartalmazza Ha a cím 8 bites, a regiszter az R0 vagy az R1 lehet. H a a cí m 1 6 b ites, a r egiszter cs ak a 16 bites DPTR lehet E z a cí mzési m ód a b elsô és a külsô RAM címzésére i s h asználható, d e a belsô R AM es etében cs ak 8 b ites i ndirekt cí met használhatunk. Regiszter címzés. Az aktív regiszterkészlet 8 regisztere közül (R0-R7) az egyik Közvetlen címzés. Az utasítás tartalmazza azt a konstanst amely a mûvelet egyik operandusa Bit címzés. Az SFR terület és a belsô adatmemória-terület 20H-2FH-ig terjedô részének bitenkénti közvetlen címzése. Bennefoglalt (implicit) címzés. Az utasítás címzés nélkül is azonosítja a mûvelet operandusát: pl CLR C. Indexelt címzés. A cím egy 16 bites regiszter és az akkumulátor tartalmának összege A 16 bi tes regisztert b ázisregiszternek n

evezzük, ez a DPTR vagy a PC lehet. Ezzel a cí mzési m óddal cs ak programmemória cí mezhetô m eg, és cs ak o lvasni l ehet. E zzel a m ódszerrel kezelhetjük a programmemóriában tárolt táblázatokat. Relatív címzés. Vezérlésátadó utasításokban h asználatos A z u tasításban eg y 1 byte-os relatív (eltolási) értéket adunk meg. Ezt a számot a processzor elôjeles kettes komplemens számnak tekinti és hozzáadja a programszámláló értékéhez (amely ilyenkor a következô utasítás címét tartalmazza). Utasítások hatása a flag-bitekre Utasítás ADD ADDC SUBB MUL DIV DA RRC RLC SETB C C X X X 0 0 X X X 1 Jelzôbit OV X X X X X Utasítás AC X X X CLR C CPL C ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit MOV C,bit CJNE 15 C 0 X X X X X X X Jelzôbit OV AC Az utasításkészlet leírásánál használt jelölések Rn Az aktuális regiszterkészlet (R0-R7) egy regisztere, ahol n a regiszter száma. direct A belsô RAM (0-7FH) vagy az SFR

(80H-0FFH) 8 bites címe. @Ri A belsô RAM egy byte-ja. A cím az R0 vagy az R1 regiszterben van #data 8 bites konstans. #data16 16 bites konstans. addr16 16 bites cím, amelyet az utasítás tartalmaz. Az LCALL és a LJMP utasításokban fordul elô. addr11 11 bites cím. Az ACALL és az AJMP utasításokban használt rel Elôjeles ( kettes k omplemens á brázolású) 8 b ites e ltolási c ím. É rtéke -128 - +127 l ehet Ugrások c élcímének m egadáskor ha sznált, é rtéke hoz záadódik a következô utasítás címéhez. bit Közvetlen címzésû bit a belsô RAM-ban vagy az SFR-ben. byte Valamilyen címzési móddal megcímzett 8 bites érték. src-byte Forráshely byte dest-byte Célhely byte Az MCS 51 család utasításkészlete Aritmetikai utasítások ADD A,<src-byte> Az ak kumulátor t artalmához h ozzáadja a cí mzéssel k ijelölt o perandus t artalmát, az eredmény az akkumulátorban képzôdik. Az összeadáskor a CY jelzôbitet nem veszi

figyelembe ADD A,Rn ADD A,direct ADD A,@Ri ADD A,#data ADDC A,<src-byte> Az a kkumulátor ta rtalmához h ozzáadja a c ímzéssel k ijelölt o perandus ta rtalmát és a CY flag értékét. Az eredmény az akkumulátorban keletkezik ADDC A,Rn ADDC A,direct ADDC A,@Ri ADDC A,#data 16 SUBB A,<src-byte> Az akkumulátor tartalmából levonja a címzéssel kijelölt operandus tartalmát és a CY flag értékét. Az eredmény az akkumulátorban keletkezik. SUBB A,Rn SUBB A,direct SUBB A,@Ri SUBB A,#data INC <byte> A címben kijelölt operandus értékét eggyel megnöveli. INC A INC Rn INC direct INC @Ri INC DPTR A 16-bites adatterület-mutató értékét eggyel megnöveli. DEC <byte> A címben kijelölt operandus értékét eggyel csökkenti. DEC A DEC Rn DEC direct DEC @Ri MUL AB Elôjel nélküli 8 bites egészek szorzása. A k ét o perandust az A i lletve a B r egiszterben k ell elhelyezni. A z e redmény 16 bi tes l esz, a lsó byte-ja az a kkumulátorban,

f elsô byte-ja a B r egiszterben keletkezik Ha az eredmény nagyobb mint 255, akkor az OV flag 1 lesz DIV AB Elôjel nélküli 8 bites egészek osztása. Az osztandót az A , a z o sztót a B r egiszter ta rtalmazza A hányados az akkumulátorban, a maradék a B regiszterben keletkezik. Nullával való osztás esetén az OV flag 1 lesz. DA A Az akkumulátor tartalmának decimális korrekciója. A korrekció algoritmusa a CY és az AC flag-ek értékét figyelembe véve dolgozik. Használata csak összeadási mûveletek után van értelmezve Logikai utasítások ANL <dest-byte>,<src-byte> Bitenkénti logikai ÉS kapcsolat a f orrás és a cél operandusai között. A mûvelet eredménye a cél helyre kerül ANL A,Rn ANL A,direct 17 ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data ORL <dest-byte>,<src-byte> Bitenkénti l ogikai VAGY kapcsolat a forrás és a cél operandusai köz ött. A m ûvelet eredménye a cél-helyre kerül. ORL A,Rn ORL A,direct ORL

A,@Ri ORL A,#data ORL direct,A ORL direct,#data XRL <dest-byte>,<src-byte> Bitenkénti logikai KIZARÓ-VAGY kapcsolat a f orrás és a cél operandusai között. Az eredmény a cél-helyre kerül. XRL A,Rn XRL A,direct XRL A,@Ri XRL A,#data XRL direct,A XRL direct,#data CLR A Az akkumulátor tartalmának törlése (az összes bit "0"-ba állítása). CPL A Az akkumulátor tartalmának logikai komplementálása (egyes komplemens képzés, invertálás). RL A Az akkumulátor tartalmának balra forgatása. A kilépô 7 bi t a 0 bit pozícióba kerül és minden bit egy helyiértékkel balra lép. A forgatás a CY-t nem érinti RLC A Az ak kumulátor t artalmának b alra forgatása a CY bevonásával. Így t ehát a m ûveletben ki lenc bi t vesz részt. A 7 bit bekerül a CY-be, a CY pedig belép a 0 bitpozícióba RR A Az ak kumulátor t artalmának j obbra f orgatása a CY bit be vonása né lkül. A ki lépô 0 bi t a 7 bitpozícióba kerül és minden bit egy

helyiértékkel jobbra lép. A forgatás a CY-t nem érinti RRC A Az akkumulátor tartalmának jobbra forgatása a CY bit bevonásával. A mûveletben kilenc bit vesz részt. A 0 bit kilép a CY-be, a CY belép a 7 bitbe, és minden bit egy helyiértékkel jobbra lép 18 SWAP A Az akkumulátor alsó és felsô 4 bitjének (tetrád) felcserélése. Adatmozgató utasítások: MOV <dest-byte>,<src-byte> A cím által kijelölt forrás byte tartalmának átmásolása a cím által kijelölt cél helyre. A forrás hely tartalma változatlan marad. MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data MOV Rn,A MOV Rn,direct MOV Rn,#data MOV direct,A MOV direct,Rn MOV direct,direct MOV direct,@Ri MOV direct,#data MOV @Ri,A MOV @Ri,direct MOV @Ri,#data MOV DPTR,#data16 Az ad atterület-mutató f eltöltése a z utasításban l évô 16 bi tes értékkel. A 16 bi tes érték felsô byte, alsó byte sorrendben következik az utasítás kódja után. MOVC A,@A+<base-reg> A

bázisregiszter és az akkumulátor (indexregiszter) tartalmának összegébôl képzett címmel kijelölt programmemória tartalmának beolvasása az akkumulátorba. Az operandus címének kiszámításakor a programszámláló (PC) a következô utasítás címét tartalmazza. MOVC A,@A+DPTR MOVC A,@A+PC MOVX <dest-byte>,<src-byte> Adatmozgatás a kül sô a datmemória é s a z a kkumulátor köz ött. A z e gyik ope randus m indig a z akkumulátor. 8 és 16 bites címzést is használhatunk MOVX A,@Ri MOVX A,@DPTR MOVX @Ri,A MOVX @DPTR,A PUSH direct Verembe í rás. A v erem-mutató ér téke eg gyel n ô, m ajd a v erem-mutató á ltal me gcímzett h elyre íródik az operandus tartalma. A verem mindig a belsô RAM-ban van 19 POP direct Olvasás a v erembôl. A v erem-mutató á ltal me gcímzett b elsô RAM tartalma u tasításban k ijelölt helyre kerül, majd a verem-mutató értéke 1-el csökken. XCH A,<byte> A megcímzett memória és a z a kkumulátor

ta rtalma ki cserélôdik. A m ûvelet e gyik ope randusa mindig az akkumulátor. XCH A,Rn XCH A,direct XCH A,@Ri XCHD A,@Ri Az akkumulátor alsó 4 bitjének a felcserélése a megcímzett belsô RAM alsó 4 bitjével. Boole algebrai mûveletek CLR C A CY bit törlése ("0"-ba állítása). CLR bit A megcímzett bit törlése SETB C A CY bit "1"-be állítása. SETB bit A megcímzett bit "1"-be állítása. CPL C A CY bit komplementálása. CPL bit A megcímzett bit komplementálása. ANL C,<src-bit> A f orrásbit és a CY logikai É S k apcsolatának er edménye a CY bitbe kerül. Az É S ka pcsolat létrehozható az megadott bit ponált és negált értékével is. ANL C,bit ANL C,/bit ORL C,<src-bit> A f orrásbit és a CY logikai V AGY k apcsolatának er edménye a CY bitbe ke rül. A m ûvelet a megadott bit ponált és negált értékével egyaránt elvégezhetô. ORL C,bit ORL C,/bit 20 MOV <dest-bit>,<src-bit> A

forrásbit átmásolása a célbitbe. Az egyik bit mindig a CY MOV C,bit MOV bit,C Vezérlésátadó utasítások JC rel Feltételes ugrás. Ugrás, ha a CY bit 1-es, egyébként a program végrehajtása a kóvetkezô utasítással folytatódik. JNC rel Feltételes u grás. U grás, h a a CY bit 0 , eg yébként a p rogram v égrehajtása a k óvetkezô u tasítással folytatódik. JZ rel Feltételes u grás. U grás, h a az ak kumulátor 0 , eg yébként a p rogram v égrehajtása a következô utasítással folytatódik. JNZ rel Feltételes ugrás. Ugrás, ha az akkumulátor nem 0, egyébként a program végrehajtása a kóvetkezô utasítással folytatódik. JB bit,rel Feltételes u grás. U grás, h a a m egadott b it 1-es, egyébként a p rogram v égrehajtása a kóvetkezô utasítással folytatódik. JNB bit,rel Feltételes u grás. U grás, h a a m egadott b it 0 , egyébként a program végrehajtása a kóvetkezô utasítással folytatódik. JBC bit,rel Feltételes u grás és

b it t örlés. U grás és a m egadott b it t örlése, h a az 1-es, eg yébként a pr ogram végrehajtása a kóvetkezô utasítással folytatódik. CJNE <dest-byte>,<src-byte>,rel Feltételes ugrás. Ugrás, ha az elsô két operandus tartalma nem egyforma, egyébként a végrehajtás a következô utasítással folytatódik. CJNE A,direct,rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel DJNZ <byte>,rel Feltételes ugrás. Az utasítás elôször csökkenti eggyel a kijelölt byte-ot, és ha az nem nulla, akkor program futása a megadott relatív címen folytatódik. Ez az utasítás a jelzôbitekre nincs hatással 21 DJNZ Rn,rel DJNZ direct,rel AJMP addr11 Feltétel nélküli, abszolút ugrás. Az utasításban m egadott 11 bi t be másolódik a pr ogramszámláló alsó 11 bi tjébe ( a PC a k övetkezô u tasítás c ímét ta rtalmazza), a tö bbi b it n em v áltozik. E zzel a z ugrással tehát csak azon a 2 Kbyte-os blokkon belülre lehet

ugrani, amelyikben a következô utasítás van. Használata azért elônyös, mert csupán 2 byte helyet igényel a memóriában LJMP addr16 Feltétel nélküli, "hosszú" ugrás az utasításban megadott címre. SJMP rel Feltétel nélküli, "rövid" ugrás. A végrehajtás az utasításban megadott relatív címen folytatódik JMP @A+DPTR Feltétel n élküli, in direkt u grás. A k övetkezô u tasítás c íme a DPTR regiszter és az ak kumulátor tartalmának (8 bites elôjel nélküli szám) összege lesz. ACALL addr11 Abszolút szubrutinhívás. A processzor a következô utasítás címét (a programszámlálót) elmenti a verembe, majd az utasításban megadott 11 bitet bemásolja a programszámláló alsó 11 bitjébe (a PC a következô utasítás címét tartalmazza), a többi bit nem változik. Ezzel a hívással tehát csak azon a 2 Kbyte-os blokkon belüli eljárás hí vható, amelyikben a következô ut asítás van. Használata azért elônyös,

mert csupán 2 byte helyet igényel a memóriában. LCALL addr16 "Hosszú" s zubrutinhívás. A CPU elmenti a v erembe a k övetkezô u tasítás cí mét (a programszámlálót) majd elugrik a megadott címre RET Visszatérés s zubrutinból. A pr ocesszor a ve rembôl be olvas ké t byte-ot, és a p rogramszámlálóba tölti, vagyis a végrehajtás az elmentett címen folytatódik (szubrutinhívást követô utasítás). RETI Visszatérés m egszakításból. U gyanúgy m ûködik, m int a RET utasítás, d e a megszakítás-kezelô logikát is vezérli. NOP Üres utasítás, nem csinál semmit. Késleltetésre, vagy helykitöltésre használható 22 Melléklet Az utasítások kódja, mérete és végrehajtási ideje Kód hex 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F Hossz byte 1 2 3 1 1 2 1 1 1 1 1 1 1 1 1 1 3 2 3 1 1 2 1 1 1 1 1 1 1 1 1 1 3 2 1 1 2 2 1 1 1 1 1 1 1

1 1 1 Utasítás NOP AJMP LJMP RR INC INC INC INC INC INC INC INC INC INC INC INC JBC ACALL LCALL RRC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC JB AJMP RET RL ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD Operandus code addr code addr A A data addr @R0 @R1 R0 R1 R2 R3 R4 R5 R6 R7 bit addr,code addr code addr code addr A A data addr @R0 @R1 R0 R1 R2 R3 R4 R5 R6 R7 bit addr,code addr code addr A A,#data A,data addr A,@R0 A,@R1 A,R0 A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 Idô 12 24 24 12 12 12 12 12 12 12 12 12 12 12 12 12 12 24 24 12 12 12 12 12 12 12 12 12 12 12 12 12 24 24 24 12 12 12 12 12 12 12 12 12 12 12 12 12 23 Kód hex 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F Hossz byte 3 2 1 1 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 3 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 3 2 2 1 1 1 1 1 1 1 1 1 1 Utasítás JNB ACALL RETI RLC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC JC AJMP ORL

ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL JNC ACALL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL Operandus bit addr,code addr code addr A A,#data A,data addr A,@R0 A,@R1 A,R0 A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 code addr code addr data addr,A data addr,#data A,#data A,data addr A,@R0 A,@R1 A,R0 A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 code addr code addr data addr,A data addr,#data A,#data A,data addr A,@R0 A,@R1 A,R0 A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 Idô 12 24 24 12 12 12 12 12 12 12 12 12 12 12 12 12 24 24 12 24 12 12 12 12 12 12 12 12 12 12 12 12 24 24 12 24 12 12 12 12 12 12 12 12 12 12 12 12 Kód hex 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 Hossz byte 2 2 2 3 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 1 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 3 2 2 2 2 2 2 2 2 2 2 3 2 2 1 2 2 1 1 1 Utasítás JZ AJMP XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL

XRL XRL JNZ ACALL ORL JMP MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV SJMP AJMP ANL MOVC DIV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV ACALL MOV MOVC SUBB SUBB SUBB SUBB SUBB Operandus code addr code addr data addr,A data addr,#data A,#data A,data addr A,@R0 A,@R1 A,R0 A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 code addr code addr C,bit addr @A+DPTR A,#data data addr,#data @R0,#data @R1,#data R0,#data R1,#data R2,#data R3,#data R4,#data R5,#data R6,#data R7,#data code addr code addr C,bit addr A,@A+PC AB data addr,data addr data addr,@R0 data addr,@R1 data addr,R0 data addr,R1 data addr,R2 data addr,R3 data addr,R4 data addr,R5 data addr,R6 data addr,R7 DPTR,#data code addr bit addr,C A,@A+DPTR A,#data A,data addr A,@R0 A,@R1 A,R0 Idô 24 24 12 24 12 12 12 12 12 12 12 12 12 12 12 12 24 24 24 24 12 24 12 12 12 12 12 12 12 12 12 12 24 24 24 24 48 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 12 12 12 12 12 24 Kód hex 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE

AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 Hossz byte 1 1 1 1 1 1 1 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 1 1 2 1 1 1 1 1 1 1 1 1 1 2 2 Utasítás SUBB SUBB SUBB SUBB SUBB SUBB SUBB ORL AJMP MOV INC MUL MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV ANL ACALL CPL CPL CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE PUSH AJMP CLR CLR SWAP XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH POP ACALL Operandus A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 C,/bit addr code addr C,bit addr DPTR AB Idô @R0,data addr @R1,data addr R0,data addr R1,data addr R2,data addr R3,data addr R4,data addr R5,data addr R6,data addr R7,data addr C,/bit addr code addr bit addr C A,#data,code addr A,data addr,code addr @R0,#data,code addr @R1,#data,code addr R0,#data,code addr R1,#data,code addr R2,#data,code addr R3,#data,code addr R4,#data,code addr R5,#data,code addr R6,#data,code addr R7,#data,code addr data addr code

addr bit addr C A A,data addr A,@R0 A,@R1 A,R0 A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 data addr code addr 24 24 24 24 24 24 24 24 24 24 24 24 12 12 24 24 24 24 24 24 24 24 24 24 24 24 24 24 12 12 12 12 12 12 12 12 12 12 12 12 12 12 24 24 12 12 12 12 12 12 12 24 24 12 24 48 Kód hex D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 Hossz byte 2 1 1 3 1 1 2 2 2 2 2 2 2 2 1 2 1 1 1 2 1 1 1 1 Utasítás SETB SETB DA DJNZ XCHD XCHD DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ MOVX AJMP MOVX MOVX CLR MOV MOV MOV MOV MOV Operandus bit addr C A data addr,code addr A,@R0 A,@R1 R0,code addr R1,code addr R2,code addr R3,code addr R4,code addr R5,code addr R6,code addr R7,code addr A,@DPTR code addr A,@R0 A,@R1 A A,data addr A,@R0 A,@R1 A,R0 A,R1 Kód hex EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 12 12 12 24 12 12 24 24 24 24 24 24 24 24 24 24 24 24 12 12 12 12 12 12 Hossz byte 1 1 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 Utasítás MOV MOV MOV MOV

MOV MOV MOVX ACALL MOVX MOVX CPL MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV Operandus A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 @DPTR,A code addr @R0,A @R1,A A data addr,A @R0,A @R1,A R0,A R1,A R2,A R3,A R4,A R5,A R6,A R7,A Idô 12 12 12 12 12 12 24 24 24 24 12 12 12 12 12 12 12 12 12 12 12 12 A fenti táblázatban a z e lsô o szlop a z u tasítás k ódját ta rtalmazza hexadecimális számrendszerben. A második oszlop a z ut asítás hos sza byte-ban A ha rmadik os zlop a z ut asítás mnemonikja, majd az operandusok köve tkeznek, vé gül a vé grehajtáshoz s zükséges i dô a z oszcillátor periódusainak számával megadva. 25 Tartalomjegyzék Az MCS 51 család . 2 Felépítés, jellemzôk . 2 Társzervezés . 3 Programmemória . 3 Adatmemória . 3 Regiszterek . 5 PSW (Program Status Word) . 5 PCON (Power Control Register) . 5 A CHMOS áramkörök fogyasztáscsökkentô üzemmódjai . 6 Megszakítások . 6 IE (Interrupt Enable Register) . 7 IP (Interrupt Priority Register) . 7 A

megszakítások kezelése . 7 Be- és kimeneti portok . 8 Idôzítôk, számlálók . 9 TMOD (Timer/Counter Mode Control Register) . 9 TCON (Timer/Counter Control Register). 10 0-ás üzemmód . 10 1-es üzemmód . 10 2-es üzemmód . 11 3-as üzemmód . 11 Timer 2 (8052) . 11 T2CON (Timer/Counter 2 Control Register). 12 Soros port . 12 SCON (Serial Port Control Register) . 12 Sebesség . 13 Mód 0 . 14 Mód 1 . 14 Mód 2, 3 . 14 ONCE mód . 15 Utasításkészlet . 16 Címzési módok. 16 Utasítások hatása a flag-bitekre . 16 Az utasításkészlet leírásánál használt jelölések . 17 Az MCS 51 család utasításkészlete . 17 Aritmetikai utasítások . 17 Logikai utasítások . 18 Adatmozgató utasítások: . 20 Boole algebrai mûveletek . 21 Vezérlésátadó utasítások . 22 Melléklet . 25 Az utasítások kódja, mérete és végrehajtási ideje. 25 Tartalomjegyzék . 28 26