| Applicazioni Software | PROGETTO n° 12 - 7/7 [131 di 189] | 
| 
 | 
| 
 | ||
| Porta Parallela - OUTPUT di Dati a 32 bit - Interfaccia con 4 memorie D-Type '374 | ||
| Analisi delle procedure importanti [2 di 2] | 
| 
 | 
|  | Certamente la parte più importante della procedura Out32bit è quella finale, riportata nella casella di testo insieme alla sottoprocedura Clock: | 
| 
 | 
|  |  | Progetto    | NB: se il testo  nell'Area
       ti 
      sembra strano installa il font Giobe.TTF: clicca qui!! |  |  |  | 
| 
 | 
|  | Come preannunciato la gestione delle 4 memorie esterne è affidata ad un loop, per questo caricato a 4 (MOV CX,4); i 4 bytes coinvolti nella gestione sono assunti dalla variabile Dato_32, predisposta in precedenza e puntata dall'istruzione LEA DI,Dato_32. | 
| 
 | 
|  | A partire da quello meno significativo, i 4 bytes sono spediti, uno dopo l'altro tramite AL, sul Registro d'uscita 0378H/0278H (PRNdato) e resi disponibili sulle linee corrispondenti, i pin 2÷pin 9 del connettore della porta parallela | 
| 
 | 
|  | Non appena un byte è presente sulla porta d'uscita viene creato il necessario sincronismo di memorizzazione (clock) per la memoria 74LS374 a cui è destinato. | 
| 
 | 
|  | A questo pensa la sottoprocedura Clock, appositamente separata dalla precedente per evidenziarne la valenza; 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 breve è necessario controllare 
  3 linee del   
  decoder binario  
    
    74LS139 
  con l'aiuto di altrettanti bit 
    del 
  Registro di controllo  037AH/027AH: 
 | 
| 
 | 
|  | Poichè ciascuna delle 4 uscite del decoder (attive basse) è collegata (tramite in inverter) alla linea di clock (pin11) di una memorie esterna, è facile capire che il valore di controllo da predisporre sul Registro 037AH/027AH dovrà attivarle una alla volta, in sequenza. | 
| 
 | 
|  | La scelta del valore da scrivere sul Registro è influenzata anche dal fatto che le linee d'uscita di quest'ultimo (associate ai bit1,bit0) sono invertite internamente; tenendo conto di tutto la procedura Clock è stata studiata per forzare i bit2,bit1,bit0 del Registro al giusto valore, nei 4 casi in cui è chiamata. | 
| 
 | 
|  | La prima volta il valore è 000: il bit2 a 0 abilita il decoder e i bit1,bit0 a 00 (trasformato in 11, dagli inverter interni) selezionano l'uscita 3 del decoder, producendo un fronte attivo (di salita) sulla linea di clock della prima memoria (n°1), che copierà così sulla sua uscita il byte presente sulle linee dato della parallela. | 
|  | Le volte successive il valore sarà 001, 010 e 011: in ogni caso il bit2 a 0 mantiene abilitato il decoder e i bit1,bit0 selezionano le altre uscite del decoder, dalla 2 alla 0, garantendo un fronte attivo di clock anche per le rimanenti memorie, dalla n°2 alla n°4 | 
| 
 | 
|  | Da notare che la procedura Clock prima di generare un nuovo valore riporta momentaneamente il bit2 a 1 (OR AL,00000100B) per disabilitare tutte e 4 le linee di clock tra una fase e l'altra, lasciandole in questo stato (di attesa) anche al termine dell'ultima memorizzazione. | 
| 
 | 
|   | Porta Parallela |   | PROGETTO n° 12 - 7/7 |  |  |  | ||
| 131 di 189 | 
| 
 | 
| 
 | 
| 
 | 
| Home  | 
 | |||||||
| 
 | Motore Ricerca | 
 |