Porta parallela - Software ASM - Giobe®2000 - Assembler - Assembly - centronics 378 278 input output epp ecp spp

|  | Come Funziona Indirizzi Base Area Comunicaz. Bios Registri Livello Hardware Livello BIOS Livello DOS Tecniche d'Interruzione Connettori Cavi Interfaccia Applicazioni Software Applicazioni Hardware Download INDICE
Porta Parallela

| Applicazioni Software | PROGETTO n° 11 - 5/6 [124 di 166]

Analisi del Problema · Analisi del Codice · Procedure importanti · Schema interfaccia

Porta Parallela - OUTPUT di Dati a 16 bit - Interfaccia con 2 memorie D-Type '374

Analisi delle procedure importanti

| La chiave del progetto è la procedura Out16bit, dedicata alla gestione dell'interfaccia hardware, costituita dalle 2 memorie 74LS374, e descritta nella seguente casella di testo:

|  | Progetto | NB: se il testo nell'Area ti sembra strano installa il font Giobe.TTF: clicca qui!! |  |  |

;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³PROCEDURA : Out16bit ³ ;³DESCRIZIONE: Procedura che provvede a fissare sulle 2 memorie 74LS374 il ³ ;³ dato a 16 predisposto nei registri AX. ³ ;³ In pratica i 2 bytes predisposti sulla porta 0378H (copia ri-³ ;³ spettivamente di AL, AH) vengono smistati in sequenza sulle³ ;³ rispettive memorie (numerate con 0 e 1) ³ ;³ ³ ;³ ÚÄ[037AH/027AH - PORTA d'USCITA dei COMANDI]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ;³ ³ ³ * ³ * ³ * ³ * ³Out³Out³Out³Out³ ³ ³ ;³ ³non ÀÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÙ ³ ³ ;³ ³disponib.ÁÄÄÄÁÄÄÄÁÄÄÄÙ ³ ³ ³ ³ ³ ³ ;³ ³pin 17 NegatoÄÄÄnon usatoÙ ³ ³ ³ ³ ³ ;³ ³pin 16 ÄÄÄÄÄÄÄÄÄnon usatoÄÄÄÄÙ ³ ³ ³ ³ ;³ ³pin 14 NegatoÄÄÄ[Ctr1]ÄÄÄÄÄÄÄÄÄÄÄÙ À[Ctrl0] pin 1 Negato³ ³ ;³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Out16bit:PUSH AX ;¿Ú[opzionale]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ M_CURSOR 13,38 ;³³ Provvede alla stampa a video dell'informa- ³ CALL Byt2Asc ;³³ zione (2 bytes) che sta per essere spedita ³ MOV AL,AH ;³³ al registro DATI della porta parallela ³ CALL Byt2Asc ;³ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ POP AX ;Ù MOV DX,PRNdato ; Punta il Registro DATI 0378H della parallela OUT DX,AL ;¿Eroga in stretta sequenza i 2 bytes; il clock MOV AL,02 ;³Š generato controllando i bit1, bit0 del CALL Clock ;³Registro di CONTROLLO 037AH (invertiti inter- MOV AL,AH ;³namente) con sequenza 11,10,11 per la prima OUT DX,AL ;³memoria e 11,01,11 per la seconda; in questo MOV AL,01 ;³modo in entrambi i casi viene infatti generato CALL Clock ;Ùun breve impulso positivo RET ;--------------------------------------------------------------------- Clock: ADD DX,2 ;¿Genera un impulso alto sulla linea di clock OUT DX,AL ;³di una sola delle 2 memorie 74LS374 in accordo MOV AL,03 ;³con il valore dei bit1, bit0 predisposto nel OUT DX,AL ;³registro AL prima di chiamare la procedura; SUB DX,2 ;³l'impulso Š fornito al clock della prima, con RET ;³AL=02, e a quello della seconda, con AL=01; la ;Ùlinea di clock della rimanente rimane bassa.

| La parte iniziale (non strettamente necessaria...) mette a video (in forma esadecimale) il valore dei 16 bit che stanno per essere memorizzati sulle 2 memorie; la parte successiva è invece quella operativa.

| Per comprendere meglio i concetti che descriverò tra poco può essere utile (se non l'hai già fatto ) aprire una seconda pagina con lo schema elettrico del progetto.

In prima istanza il byte meno significativo (predisposto in AL) viene memorizzato sul Registro d'uscita 0378H/0278H (PRNdato) e reso disponibile sulle linee corrispondenti, i pin 2÷pin 9 del connettore della porta parallela; immediatamente dopo segue la creazione dei sincronismi di memorizzazione:

| il bit0 del Registro di controllo 037AH/027AH è forzato a 0, mentre il bit1 mantiene il suo valore 1
| con il gioco delle inversioni interne ciò si traduce nella presenza di un fronte attivo (di salita) sulla linea di clock della prima memoria (n°0), mente la rimanente ha ancora la linea di clock bassa (inattiva)
| questo basta per trasferire in uscita alla memoria n°0 il dato a 8 bit (=AL) presente sui pin 2÷pin 9 della parallela
| subito dopo entrambi i bit1, bit0 del Registro 037AH/027AH sono riportati entrambi a 1, per riportare tutte le memorie in attesa

La fase successiva è perfettamente duale per il byte più significativo (disponibile in AH), che viene memorizzato a sua volta sui pin 2÷pin 9 del connettore della parallela; anche la creazione dei sincronismi di memorizzazione è del tutto simile:

| il bit1 del Registro 037AH/027AH è forzato a 0, producendo ora un fronte attivo (di salita) sulla linea di clock della seconda memoria (n°1), copiando così il byte presente sulle linee dato della parallela in uscita alla memoria n°1
| il bit0 mantiene invece il suo valore 1, lasciando ancora bassa (inattiva) la linea di clock dell'altra memoria
| subito dopo anche il bit0 viene riportato a 1, per riportare entrambe le memorie in attesa

| Porta Parallela |  |  | PROGETTO n° 11 - 5/6 |  |  |  |
124 di 166

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166

Parallela » | Come Funziona.. | Indirizzi Base | Area di Comunicazione Bios | Registri | Cavi Livello Hardware | Livello BIOS | Livello DOS | Tecniche d'Interruzione | Connettori Applicazioni Software | Progettazione | Interfaccia | Download | INDICE

DataSheet| Display LCD Parallela| Stampanti| Tastiera| Timer Seriale| Video| Cursore| RamVideo |

Home

| Pascal| Manuali| Tabelle| Schede Tutorial Assembly| Palestra Assembler

Aggiungi Giobe®2000 ai preferiti

Motore
Ricerca

| Rendi Giobe®2000 pagina di Default

© 2001-2006 - Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati