Példa 2.1.: Készítsen soros-párhuzamos átalakító áramkört, amely egy Start impulzust követő 4 db. órajel alatt az X bemeneten érkező jeleket fogadja és Strobe jel hatására párhuzamosan be megjeleníti, az Y1(Start jel után az első órajel alatt beérkező X be érték), Y2, Y3, Y4 kimeneteken a kővetkező Strobe jelig. Start jelet követően mindig van minimum 4 db. órajel a Strobe impulzusig. Start és Strobe jelek szinkronizáltak, egy órajel ideig tartanak, és nem fedhetik át egymást. X bemenet értéke az órajel alatt ("1") nem változik. be U X be Y1 Y2 Y3 Y4 lk Start Strobe FF t 2.10. ábra Megoldás 2.1/1: X be Start "1" K FF K K K K D p D p D p Y4 Y3 Y2 lk K K K K D p Y1 Strobe 2.11. ábra Megoldás 2.1/2: X be Start "1" K FF K K K K D p D p D p Y4 Y3 Y2 lk K K K K D p Y1 Strobe 2.12. ábra 3.3. Szinkron számlálók (160, 161, 162, 163) SN160, szinkron D, szinkron beírás, aszinkron törlés SN162, szinkron D, szinkron beírás, szinkron törlés SN161, szinkron bináris, szinkron beírás, aszinkron törlés
SN163, szinkron bináris, szinkron beírás, szinkron törlés eíró (LOD), törlő (LR) és két engedélyező (ENP és ENT) jel, átvitel (RO) kimenettel. LOD LR D 160-163 RO ENP ENT D ENP ENT Számlálás engedélyezés RO engedélyezés D RO 3.6. ábra z RO kimenetekre alapozva a következően bővíthetőek: LOD LR D 160-163 RO LOD LR D 160-163 RO LOD LR D 160-163 RO LOD LR D 160-163 RO ENP ENT D ENP ENT D ENP ENT D ENP ENT D "" "" 3.7. ábra Elnevezés: arry Look-head (Átvitelképzés gyorsítása, az alacsonyabb helyiértéken megjelenő átvitel felléptekor nem kell kivárni, míg az sorosan végigterjed a magasabb helyiértékeken.) Példa 4.2.: Tervezzen logikai hálózatot, amely két 7 bites, bináris, előjeles, kettes komplemensű számra (x0...x7, y0...y7) előállítja a 4*(x-y) művelet eredményét kettes komplemens kódban. két operandus 2 lépésben, a STRT impulzus alatti és az azt követő órajelimpulzussal ütemezve, negáltan érkezik az X...XD, Y...YD bemenetekre a 4.4. ábra szerint. negált eredmény a következő STRT impulzusig álljon rendelkezésre. asználja fel a LS181 tip. LU áramkört. két operandusra és az eredményre az x0, y0, E0 a legalacsonyabb helyiérték. ciklus első impulzusa mindig a STRT alatt érkezik. Két STRT impulzus között legalább 3 órajel van. STRT lk X..XD Y..YD L E0..E10 X..XD Y..YD x4,x5 x6,x7 y4,y5 y6,y7 x0,x1 x2,x3 y0,y1 y2,y3 lk STRT E0..E10 4.4. ábra Megoldás 4.2/1:
X...XD Y...YD 3 1-4 1D-4D 5-8 5D-8D 181 n S n+4 F M 125 Y * 1G E10 O 3 1-4 1D-4D M = L S0 = L S1 = S2 = S3 = L 181 n+4 F LS244 1 * Y 2 1G 2G E2...E9 E1 E0 5D-8D 5-8 n S M O M = L S0 = L S1 = S2 = S3 = L STRT p D p D p 4.5. ábra Megoldás 4.2/2: 3 X...XD Y...YD 3 1-4 1D-4D 5-8 5D-8D 181 n S n+4 F M 1-4 1D-4D O E10 O M = L S0 = L S1 = S2 = S3 = L 3 1-4 1D-4D E2...E9 5-8 181 n+4 5D-8D F O n S M E1 E0 STRT p D p D p 4.6. ábra SN180: 8/9 bites paritásgenerátor és paritásellenőrző. emenetek: 8 darab adatbit (X), páros/páratlan bitek (Even In (), Odd In (OI)) Kimenetek: Páros/páratlan bitek (Even Out (EO), Odd Out (OO)) M = L S0 = L S1 = S2 = S3 = L...-n belüli egyesek száma OI EO OO páros 1 0 1 0 páratlan 1 0 0 1 páros 0 1 0 1 páratlan 0 1 1 0-1 1 0 0
- 0 0 1 1 Paritásgenerátorként tehát a 180 az /OI magas állapota mellett az adatbiteket páros és páratlan paritásúra egészíti ki az OO/EO és az EO/OO kimeneteken. Paritásellenőrzéskor a kilencedik adatbitet az -re, negáltját az OI-re vezetve páros/páratlan paritást feltételezve az EO/OO magas szintje paritáshibát jelez. Nyocbites paritás-generátor : 180 : 180 Páros paritás-generátor Páratlan paritás-generátor 5.8. ábra Kilencbites paritás-generátor : 180 : 180 I I Páros paritás-generátor Páratlan paritás-generátor 5.9. ábra Paritás-ellenörzés : 180 Error (even) P Error (odd) 5.10. ábra Példa 6.3.: RM számára 0, EPROM számára 0..7 wait-et beiktató REDY logika tervezése Megoldás 6.3.: általános megjegyzések: lefelé él után nincs biztosítva elég idő a REDY-hez pl.: 8085 felfutó órajel előtt legalább 110 ns a -RD és a -WR jel figyelembe vétele legalább 1 wait-et jelent -SRM * -REDY * -SEPROM K a b c h 164 -LR -RD -WR T 1 T 2 T W1 T W2 T 3 LE -REDY S EPROM (,) a b 6.10. ábra
8. SID, SOD vonalak alkalmazása : : 0. 0. utasítás RST 5.5 beállított maszk ( "1" maszkolt) RST 6.5 beállított maszk RST 7.5 beállított maszk INTE ( megszakítás FF értéke) RST 5.5 bemenet értéke RST 6.5 bemenet értéke RST 7.5 bemenet értéke SID bemenet értéke utasítás RST 5.5 maszk beállítás ( "1" maszkol) RST 6.5 maszk beállítás RST 7.5 maszk beállítás Maszk beállítás engedélyezés RST 7.5 megszakítás FF törlése SOD állítás engedélyezés SOD kimenet 8.1. ábra Példa 8.1.: 8.1. ábra szerint egy i8085-ös processzor SID bemenetére pergésmentesített kapcsolót kötöttek. SOD kimenetről egy LED diódát lehet vezérelni. processzoron futó programnak a SID bemenetre érkező jeleket kell figyelnie és ez alapján vezérelni a LED diódát. bekapcsolás után a SID bemenetre érkező jel első felfutó élre a diódának világítani kell, a bemenetre érkező következő impulzus lefutó élére pedig el kell aludnia (8.2. ábra). Készítsen el egy olyan assambly programot, amely ezt a vezérlést ciklikusan ismétli. program címe legyen 8000. SID t SOD : 0 1 2 0 t 8.2. ábra i8085 i8085 sín SID S R nyomógomb SOD 8.3. ábra Megoldás 8.1.: programban alkalmazott regiszterek feladata: : Előző mintavételezéskor a SID bemenet értéke, : iklus állapot-tárolója, D: ktuális SID érték
1 : = SID SOD = 0 = 0 D: = SID nem NEM D XOR = 1? igen : = D nem (lefutó él) = 0? igen (felfutó él) : = D = 2? = 0? igen igen SOD = 1 nem : = +1 8.4. ábra ORG 8000 KEZD: NI 80 MOV, ------------------------------------------------------------------- FOIKL:,40,00 STTUS:=0 ------------------------------------------------------------------------ IKL1: NI 80 FELSO ITRE MSZK MOV D, UJ ERTEK MENTESE XR XOR, FIGYEL JZ IKL1 UGRIK, SID NEM VLTOZOTT XR :=0 OR 0+ JZ FELFUT UGRIK, FELFUTÓ EL ------------------------------------------------------------------------------- LEFUT: MOV,D REGI SID ERTEK FRISSITESE MOV, PI 2 JZ FOIKL UGRIK, OGY SOD LEESSEN JMP IKL1 --------------------------------------------------------------------------------- FELFUT: MOV,D REGI SID ERTEK FRISSITESE XR OR JNZ FEL1 UGRIK, NEM ELSO EL,00 SOD=1 FEL1: INR :=+1 JMP IKL1 ----------------------------------------------------------------------------------------- END Példa 8.2.: Mod. 256-os számláló i8085-ös processzorral. processzor RST 5.5 bemenete a számláló engedélyező jele, és a SID bemenetre érkeznek az impulzusok. z áramkör az impulzusok felfutó élére működjön mod. 256 számlálóként. z áramkör kimenete a processzor SOD kimenete, amelyen 256 impulzusonként egy ciklusidőre jelenik meg pozitiv impulzus. z bemenő impulzusok szélessége nagyobb mint 0.5 ms és a két bemenet változása egymástól 50µs-nál nagyobb távolságra van. SID 1. 256. t RST 5.5 számol nem számol >50µs t SOD t 8.5. ábra
i8085 i8085 sín SID S SOD R Nyomógomb RST 5.5 S R Kapcsoló 8.6. ábra Megoldás 8.2./1: z RST 5.5 vonal programozott lekérdezésével. 1 : = SID (SOD = 0) L = 0 E: = RST 5.5 D: = SID : = D nem nem (lefutó él) D XOR = 1? igen = 0? nem igen (felfutó él) E = 1? igen L: = L-1 L = 0? nem igen (SOD = 1) (SOD = 0) 8.7. ábra programban alkalmazott regiszterek feladatai: : Előző mintavételi SID érték. D: ktuális SID érték. E: ktuális RST 5.5 érték. L: Számláló értéke. Egyidőben történik a mintavételezése a SID és RST 5.5 bemeneteknek, ezért a jelek elvileg egyidőben is változhatnak (az 50µs-os idő a két változás között nincs kihasználva). ORG 8000 INI: NI 80 MOV, ELOZO SOD ELLITS -E,4F FELES IT-K TILTS, SOD=0 XR MOV L, L=0 ---------------------------------------------------------------------------------- KEZD: PUS PSW NI 10 MOV E, E=RST 5.5 POP PSW NI 80 MOV D, D=KTULIS SID XR VOLT SID VLTOZS? JZ KEZD UGRIK, NEM VOLT XR OR ELOZO SOD 0 VOLT? JZ FELFUT URIK, FELFUTO EL ------------------------------------------------------------------------------------- LEFUT: MOV,D ELOZO ERTEK FRISSITESE JMP KEZD ----------------------------------------------------------------------------------------- FELFUT: XR OR E KELL SZMOLNI? JZ LEFUT UGRIK, NEM KELL (RST 5.5=0) DR L JNZ TORL UGRIK, NEM 256. IMP.,00 SOD=1 PRNS SZO
JMP LEFUT TORL:,40 SOD=0 PRNS SZO JMP LEFUT ----------------------------------------------------------------------------------------- END Megoldás8.2./2: RST 5.5 megszakításkérés alkalmazásával. FÕPROGRM : = SID (SOD = 0) L = 0 D: = SID nem D XOR = 1? : = D igen nem (lefutó él) = 0? igen (felfutó él) Megszakítás engedélyezés RST 5.5 rutin L: = L-1 L = 0? nem Megszakítás tiltás igen (SOD = 1) (SOD = 0) 8.8. ábra z RST 5.5 megszakításkérő jel szintjére történik meg a szubrutin meghívása, akkor ha a SID vonal felfutó élére a megszakítások tiltása megszünik (). z RST 5,5 szubrutinban dekrementálás és SOD állítása történik. ORG 0 JMP INI ----------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------- ORG 28 RUTIN: DR D JNZ TORL UGRIK, NEM 256. IMP.,00 SOD=1 PRNS SZO TORL:,40 SOD=0 PRNS SZO ----------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------- ORG 8000 INI: NI 80 MOV, ELOZO SID ELLITS -E,4E FELES IT-K MSZKOLS(KIVETEL RST5.5), SOD=0 XR MOV L, L=0 ---------------------------------------------------------------------------------- KEZD: NI 80 MOV D, D=KTULIS SID XR VOLT SID VLTOZS? JZ KEZD UGRIK, NEM VOLT XR OR ELOZO SID 0 VOLT? JNZ LEFUT UGRIK, LEFUTO EL FELFUT: NOP DI ------------------------------------------------------------------------------------- LEFUT: MOV,D ELOZO ERTEK FRISSITESE JMP KEZD ----------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------- END 9. Feles megszakítások alkalmazása. Példa 9.1.: Készítsen megszakítási vonalakat kezelő áramkört, amely egy 8085-ös processzoron alapuló sín RST 5.5-ös megszakítási vonalára csatlakozva 3 db külsô megszakítás fogadására alkalmas. Egy megszakítási impulzusra csak egyszer kérjen megszakítást. Feltételezzük, hogy a megszakítási impulzusok gyakorisága max. 1ms. megszakítások kezelését külön-külön áramkörök végzik, amelyek alaphelyzetbe állíthatók a 78, 79 és 7 címre adott írás paranccsal. megszakításkérés lekérdezhető a fenti címekre adott olvasás paranccsal. z RST 5.5-ös megszakítási szubrutinban az IRT1 a, az IRT2 a D és az IRT3 az E regisztereket inkrementálja.
Megoldás 9.1.: Javasolt blokkvázlat: i8085 datsín TT ímsin WR RD IO/M REDY RST 5.5 D K K K D D * * * Reset out T FF T FF T FF I/O áramkör I/O áramkör I/O áramkör ITR1 ITR2 ITR3 9.1. ábra I/O áramkör D0 RST 5.5 SN126 RD WR SN LR PR 0 1 2 IRT1 IRT2 IRT3 D 3 4 5 6 7 IO/M E1 E2 E3 i8205 Ready Reset out IRTi ( i = 1,2,3 ) 9.2. ábra FOPROGRM RM EU 8000 STK EU 8100 IRT1K EU 78 IRT2K EU 79 IRT3K EU 7 IRTK EU 7 (2. PELD) SZKIT EU 7 (3. PELD) MSZK EU 0000 1110 RST 6.5, RST 7.5 MSZK PRNS ( 1.2.PELDK) MSZ75 EU 0001 1011 RST 5.5, RST 6.5 MSZK PRNS (3. PELD) T75 EU 0001 0000 RST 7.5 FF. TORLESE (3. PELD) 0RG 0 JMP INI ORG 02 RST 5.5-OS RUTIN IVS JMP RUTIN ORG 40 INI: LXI,STK SPL STK ELLITS XR MOV, MOV D, MOV E,,D,E REGISZTEREK TORLESE,MSZK RST 6.5, RST 7.5 MSZKOLS UROK: JMP UROK RST 5.5 SZURUTIN RUTIN: PUS PSW IN IRT1K IRT1 MEGSZKITS ERKEZETT? NI 1 JNZ RU1 IN IRT2K IRT2 MEGSZKITS ERKEZETT? NI 1 JNZ RU2
INR E ITR3 LEKEZELESE OUT IRT3K ITR3 MEGSZKITSI FF. TORLESE POP PSW RUT1: INR ITR1 LEKEZELESE OUT IRT1K ITR3 MEGSZKITSI FF. TORLESE POP PSW RUT2: INR D ITR2 LEKEZELESE OUT IRT2K ITR3 MEGSZKITSI FF. TORLESE POP PSW END Példa 9.2.: Készítsék el a Példa1 megoldását úgy, hogy a megszakítási ff.-ok értékei egy utasítással legyenek lekérdezhetők (cím: 7). Megoldás 9.2.: D0 D1 D2 IRT1 IRT2 IRT3 RST 5.5 SN126 RD WR SN LR PR 0 1 2 IRT1 IRT2 IRT3 D 3 4 5 6 7 IO/M E1 E2 E3 i8205 Ready Reset out IRTi ( i = 1,2,3 ) 9.3. ábra RST 5.5 SZURUTIN RUTIN: PUS PSW PUS IN IRTK MOV, NI 1 IRT1 ERKEZETT? JNZ RU1 RU3: MOV, NI 2 IRT2 ERKEZETT? JNZ RU2 RU4: MOV, NI 4 IRT2 ERKEZETT? JZ VEGE INR E ITR3 LEKEZELESE OUT IRT3K ITR3 FF. TORLESE VEGE: POP POP PSW RUT1: INR ITR1 LEKEZELESE OUT IRT1K ITR3 MEGSZKITSI FF. TORLESE JMP RU3 RUT2: INR D ITR2 LEKEZELESE OUT IRT2K ITR3 MEGSZKITSI FF. TORLESE JMP RU4 Példa 9.3.: Készítsék el a Példa2 megoldását RST 7.5-es megszakítás alkalmazásával. Megoldás 9.3.:
3 D0 D1 D2 IRT1 IRT2 IRT3 RST 7.5 SN126 RD WR SN LR PR 0 1 2 IRT1 IRT2 IRT3 D 4 5 6 7 IO/M E1 E2 E3 i8205 Ready Reset out IRTi ( i = 1,2,3 ) 9.4. ábra FOPROGRM RM EU 8000 STK EU 8100 IRT1K EU 78 IRT2K EU 79 IRT3K EU 7 IRTK EU 7 (2. PELD) SZKIT EU 7 (3. PELD) MSZK EU 0000 1110 RST 6.5, RST 7.5 MSZK PRNS( 1.2.PELDK) MSZ75 EU 0001 1011 RST 5.5, RST 6.5 MSZK PRNS(3. PELD) T75 EU 0001 0000 RST 7.5 FF. TORLESE (3. PELD) 0RG 0 JMP INI ORG 03 RST 5.5-OS RUTIN IVS JMP RUTIN ORG 40 INI: LXI,STK SPL STK ELLITS XR MOV, MOV D, MOV E,,D,E REG. TORLESE,MSZ75 RST 6.5, 5.5 MSZKOLS UROK: JMP UROK RST 7.5 SZURUTIN RUTIN: PUS PSW PUS IN IRTK MOV, NI 1 IRT1 ERKEZETT? JNZ RU1 RU3: MOV, NI 2 IRT2 ERKEZETT? JNZ RU2 RU4: MOV, NI 4 IRT2 ERKEZETT? JZ VEGE INR E ITR3 LEKEZELESE OUT IRT3K ITR3 FF. TORLESE VEGE: POP POP PSW,T75 RST 7.5 FF. TORLESE OUT SZKIT RST 7.5 FELFUTOEL GEN. RUT1: INR ITR1 LEKEZELESE OUT IRT1K ITR3 FF. TORLESE JMP RU3 RUT2: INR D ITR2 LEKEZELESE OUT IRT2K ITR3 FF. TORLESE JMP RU4 ------------------------------------------------------------------------------- END
10. Megszakításkezelők alkalmazása (i8259) Példa10.1.: Készítsen áramkört, amely egy 8085-ös processzoron alapuló sínre csatlakozva 8 db külső megszakítás fogadására alkalmas.. processzor modul nem tartalmaz megszakítás vezérlőt, a processzor INT és INT jelei ki vannak vezetve a buszra. rendszerben egyéb IT kérő eszköz csak a processzor feles IT vonalait használhatja.. processzor modul tartalmaz 1db 8259-es megszakításvezérlőt. 8259-es IT bemenetei (IT0..IT7) valamint kaszkád kimenetei (S0..S2) megtalálhatók a buszon. kártya az IT2 vezetékre csatlakozhat. Készítsük el az IT vezérlőket inicializáló rutinokat! a. áziscím: 20, IT tábla cím 10, intervallum: 4 byte. b. Processzor moduli vezérlő: ázis cím: 80h, IT tábla cím 180, intervallum: 4 byte. I. RDVER MEGVLÓSÍTÁS. KÜLSŐ IT VEZÉRLŐVEL 0 RD WR INT INT IO/M 7..1 RDY * D7..0 VEZ G DIR 0 RD WR INT INT 8259 S D7..0 S0 S1 S2 SP/EN IR7... IR0 IR0.. IR7: Szint vagy él+szint érzékeny, de mindkét esetben a kiszolgálás pillanatában IRi = 1 kell legyen. 1. VEZ feladata: -S előállítása - a 8259-es mint periféria szerepel S = sajá tcím IO / M daterősítő vezérlése - INT alatt - pogramozás alatt (8259 mint periféria) G = S + INT ( G = S INT) DIR = IORD + INT ( DIR = IORD INT) RDY* előállítása - INT alatt - pogramozás alatt (8259 mint periféria) RDY = S + INT (Figyelem! INT alatt IO / M = 1, más IO eszköz is adhat REDY-t) 5 4 6 7 IO/M 1 2 3 RDY * * INT RD LS138 E 1 E 2 E 3 7 0 S G DIR 2. IT RUTIN Feladatok: Regiszter mentés IT kiszolgálás ( IT "törlés" ) Regiszter visszaállítás IT engedélyezés 8259
Processzor a.) utomatikus EOI következő IT engedélyezése a processzor asználható, ha z IT rutinok nem megszakíthatók Nincs nagy prioritású IT b.) Programozott EOI IT engedélyezése programból asználható, ha z IT rutinok "hosszúak" Van nagy prioritású IT Regiszter mentés "Nem megszakítható" műveletek További műveletek (IT kiszolgálás) Regiszter visszaállítás 8259 EOI (OW2) utasításával ITRUTi: PUS ITRUT0: PUS PSW.. POP PSW PSW. eddig nem megszakítható. innen kezdve a magasabb. prioritású érvényre juthat.,20h OUT X59 POP PSW. SLVE IT VEZÉRLŐVEL Különbségek: S0..2 vonal kell ufferelt üzemmód: INT helyett SP / EN Programozás IW1-ben SNGL = 0 IW3-ban MSTER: IW3 i.slave = 1 SLVE: i IW4-ben MSTER: M/S = 1 SLVE: M/S = 0 IT rutinban:eoi a MSTER-re és a SLVE-re is! (Speciális rögzített prioritású működés!!!) Maszk állítás: Inicilaizálás után: mindenki engedélyezve - ha tiltani kell, M i =1-re tiltás ITMSK EU 0FFh IW1 EU 0D7h IW2 EU 001h IW4 EU 002h X59 EU 020h 8259 IO báziscím ITSE EU 0010 IT tábla báziscím ITINIT: DI Inicializálás alatt IT tiltás,iw1 OUT X59,IW2 OUT X59+1,IW4 OUT X59+1 8259 inicializálás,itmsk OUT X59+1 IT maszk állítás LXI,ITSE,03h JMP kódja MOV M, INX LXI D,ITRUT0 IT0 szubrutin címe MOV M,E INX MOV M,D INX INX 4. byte átugrása MOV M, JMP kódja INX LXI D,ITRUT1 IT1 szubrutin címe. Inicializálás vége, IT engedélyezés 13. Kiemeneti periféria illesztés Feladat: illesztési felület (interface) és működtető program (handler) kialakítása nyomtatóhoz (perifériához). Megvalósítás: szabványos (egységes) interface és protokoll alkalmazása Példa: SI interfész és protokoll z interfész jelei: Jel Function Funkció SO source operation forrás üzemképes S soure control forrás vezérlés O acceptor operation nyelő üzemképes acceptor operation nyelő vezérlés D0..D7 data lines adatvonalak
DP parity paritásbit Irás (-WR) IT-re, vagy programozott státuszellenőrzés után port 1. üzemmód kimenetek: -OF P7 -K P6 INTRa P3 S= saját cím IO/-M -EN -INT S=ready, hogy IT alatt ne adjon hamis REDY-t G=S (RD+WR) datbusz meghajtó +5V D0 D7 245 -G DIR D0 D7 P0 P7 244 -G1 -G2 DT0 DT7 G DIR FUNKIÓ X TS L L L -WR -WR IO/-M -EN -INT -RDY 2 7 -EN 0 1 REDY + adatbusz vezérlés ím dekóder +5V -RD -S 0 1 P7 -OF t 360 ns 8255 P6 -K P0 P1 P4 INTRa P3 RES 14 Vonal lezárás S O ERROR SO datbusz + vezérlő logika: 2 3 4 5 6 86 00 -E1 -E2 E3 LS138 -Y0 -Y1 -Y2 -Y3 -Y4 -Y5 -Y6 -Y7 04 -S55 RES 06 (O) 7 INT0 INT1. INT7 IO/-M -EN -INT -RDY +5V -EN=: processzor -EN=L: DM 06 (O) -G 245 -RD -WR -DIR 245 IO/-M EN IO/-MEN -OF t S t biztosítja hogy DT0..DT7 előbb legyen stabil, mint S 0 1 8255 -OF max 650 ns minimális időről nem ad tájékoztatást
-WR -OF max 650 ns max 350 ns DT -OF S max 350 ns -K max 350 ns min 300 ns t időzítés előállítása egy 123 típusú monostabil multivibrátorral (Mono Flop) történik. z időzítés nagyságát az R és külső passzív elemekkel állíthatjuk be. Értéket az elemknek diagrammból, vagy az alábbi képlet alapján választhatunk. hol k=0.28. - -LR -OF 1/2 123 K - t 123 -L - R +5V L L - +5V -L D K -PR 0.7 t = k R ( 1 + ) R LR - x x L L x 0-0 S RES működés idődiagramja: -OF S - D Szoftver: INIT (felprogramozás) Lépések:. 8255 konfigurálás, munkarekeszek alaphelyzetbe állítása. az IT rutin címét az táblába beilleszteni Munka regiszter és jelzők: K: Munka: D7 K D0
kiviendő karakter Státusz: státusz Kiviteli rutin: IT rutin: I? i INTE 8255 :=0 n n k=1 i munka:=[c] k:=1 k:=0 adat 8255 :=(munka) INTE 8255 :=1 vége vége program: GLOL ONSTNTS X55 EU 00 PORT SE DDRESS X55_ EU X55 PORT X55_ EU X55+1 PORT X55_ EU X55+2 PORT X55_T EU X55+3 ONTROL W55 EU 03 ONTROL WORD DISINT EU 00 DISLE 8255 IT ENINT EU 00D ENLE 825 IT ENSO EU 008 ENLE SO-RESET P4 DISSO EU 009 DISLE SO- SET P4 KMSK EU 080 MSK EU 001 PRERR EU 003 PRINTER ERROR IT1MSK EU 0FD IT ENLE (8259) EOI EU 020 END OF INTERRUPT(8259) PULI X55,W55,DISINT,ENINT,DISSO,ENSO PULI KMSK,MSK,PRERR,IT1MSK ************************************************************* DT SEGMENT ************************************************************* DSEG PGE PULI K,MUNK,I K: DS 1 MUNK: DS 1 I: DS 1 ************************************************************* PRINTER IT ************************************************************* SEG PGE PULI PRINIT EXTERN ITT,X59 IT TLE, 8259 SE DDRESS PRIT: PUS PSW SVE REGISTER & FLG,DISINT OUT X55_T DISLE IT 8255 LD MUNK OUT X55_ OUTPUT RTER TO,KMSK ST K K:=1,EOI OUT X59 ENLE NEXT IT (8259) POP PSW ************************************************************* PRINTER INIT ************************************************************* PRINIT:,W55 OUT X55_T,DISINT OUT X55_T,ENSO OUT X55_T,KMSK
ST K STORE IT TO ITTLE,03 JMP ODE ST ITT+4 IT 1 POSITION LXI,PRIT SLD ITT+5 IN X59+1 ENLE IT (8259) NI ITMSK OUT X59+1 END ************************************************************* RTER OUT TO PRINTER IN: = RTER TO PRINT OUT: Y = 0 - OK Y = 1 - ERROR, = ERROR ODE DEST:,F ************************************************************* SEG PGE PULI PRO EXTERN X55,KMSK,MSK, PRERR EXTERN K, MUNK, I PRO: IN X55_ NI PRERR JNZ P1 ERROR IN PRINTER LD K NI KMSK JZ PRO WIT MOV, PRINT ST MUNK NEXT R XR ST K K:=0,ENINT OUT X55_T ENLE IT (8255) P1: ST I ERROR IN PRINTER,MSK ST K LD I ST END