Applicazioni Software |
PROGETTO n° 13 - 7/7 [138 di 189] |
|
|
||
Porta Parallela - OUTPUT di Dati a 64 bit - Interfaccia con 8 memorie D-Type '374 | ||
Analisi delle procedure importanti [2 di 2] |
|
![]() | Certamente la parte più importante della procedura Out64bit è 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 8 memorie esterne è affidata ad un loop, per questo caricato a 8 (MOV CX,8); gli 8 bytes coinvolti nella gestione sono assunti dalla variabile Dato_64, predisposta in precedenza e puntata dall'istruzione LEA DI,Dato_64. |
|
![]() | A partire da quello meno significativo, gli 8 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
4 linee del
decoder binario
74LS138
con l'aiuto di altrettanti bit
del
Registro di controllo 037AH/027AH:
|
|
![]() | Poichè ciascuna delle 8 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 bit3,bit1,bit0) sono invertite internamente; tenendo conto di tutto la procedura Clock è stata studiata per forzare i bit3,bit2,bit1,bit0 del Registro al giusto valore, negli 8 casi in cui è chiamata. |
|
![]() | La prima volta il valore è 0000: il bit2 a 0 abilita il decoder e i bit3,bit1,bit0 a 000 (trasformato in 111, dagli inverter interni) selezionano l'uscita 7 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à 0001, 0010, 0011, 1000, 1001, 1010 e 1011: in ogni caso il bit2 a 0 mantiene abilitato il decoder e i bit3,bit1,bit0 selezionano le altre uscite del decoder, dalla 6 alla 0, garantendo un fronte attivo di clock anche per le rimanenti memorie, dalla n°2 alla n°8 |
|
![]() | Da notare che la procedura Clock
|
|
![]() |
Porta Parallela |
![]() |
PROGETTO n° 13 - 7/7 |
![]() |
![]() |
![]() |
||
138 di 189 |
|
|
|
Home
![]() |
|
|||||||
|
Motore Ricerca |
|