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° 06 - 6/12 [93 di 166]

Analisi del Problema · Analisi del Codice · Procedure importanti · Schema interfaccia · Descrizione dello schema

Porta Parallela - INPUT di Dati a 8 bit - Uso di un convertitore ADC0804

Analisi del Codice Sorgente [2 di 2]

| La lettura del dato a 8 bit obbliga il processore a rimanere in polling (interrogazione) sul Registro d'ingresso 0379H/0279H, senza poter fare altro se non verificare l'eventuale variazione del dato acquisito dal convertitore analogico digitale.
| Si rende dunque necessaria una struttura di tipo REPEAT... UNTIL (con riferimento al Pascal); in Assemby si realizza con un loop, cioè una sequenza di istruzioni ripetuta ad oltranza, compresa tra quella identificata dall'etichetta xxx0 e la JZ xxx0.
| Naturalmente dentro il ciclo deve esserci un artificio che dia la possibilità di terminare il processo di conversione e lettura; in caso contrario il programma non avrebbe mai fine..
| Il nostro programma prevede una via d'uscita non appena viene premuto un tasto qualunque, anche se (come vedremo) da per scontata la presenza della periferica sulla parallela.

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

xxx0: ;¿Gestisce la Conversione Digitale del segnale ;³fornito sull'ingresso Analogico (la tensione ;³presente sul cursore di un potenziometro). La ;³prima fase prevede la formattazione del segna- CALL Converti ;³le di START, con la generazione di un breve ;³impulso sulle linee CS e WR del Convertitore ;³ADC0804. La procedura rimane poi in attesa ;³della fine della conversione, evento segnalato ;Ùdal passaggio a "0" della linea INTR ;¿La fase di conversione Š terminata; si procede ;³alla fase di Lettura attivando (a"0") di nuovo ;³le linee CS e RD del Convertitore ADC0804; CALL Leggi ;³dopo circa 135ns il dato Š disponibile sulle 8 ;³linee d'uscita e pu• essere assunto con il MPX ;³74LS157. Al termine i segnali RD e CS sono ;³riportati a "1", per predisporre le successive ;Ùconversioni... ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³Fase di visualizzazione dei risultati ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ M_CURSOR 13,49 ;¿Provvede alla stampa a video del byte appena CALL Byt2Asc ;³pacchetto HW/SW che si occupa di questa acqui- MOV AH,01H ;³sizione di DATI; la presenza dell'INT 16H ga- INT 16H ;³rantisce la possibilit… di tornare al DOS con JZ xxx0 ;³la pressione di un tasto qualunque, senza in- ;Ùterrompere il "polling" della porta d'ingresso _OUT: MOV AH,4CH INT 21H

La casella di testo mostra in sintesi il main loop del progetto; si notano le 3 fasi fondamentali:

| la gestione della conversione digitale del segnale fornito sull'ingresso analogico, la tensione presente sul cursore di un potenziometro

| la lettura degli 8 bit generati dal convertitore ADC0804, tramite il multiplexer 74LS157
| la visualizzazione del risultato, con l'aiuto della Procedura Byt2Asc e della Macro M_CURSOR, entrambe appartenenti alle mie 2 librerie, Giobe.MAC e Giobe.LIB/ Giobe.ASM; la Procedura converte il valore esadecimale a 8 bit, letto dalla porta parallela in 2 caratteri Ascii e lo pone a video in posizione centrale, al fine di mostrare in tempo reale l'effetto prodotto da ogni movimento impresso sul perno del potenziometro.

Il codice viene ripetuto in continuazione, fino a quando viene premuto un tasto qualunque.

| la possibilità di porre fine all'esecuzione ciclica di queste istruzioni è affidata alla Funzione 01H dell'INT 16H, che provvede appunto alla lettura della tastiera: se nessun tasto viene premuto la Funzione lascia la flag di Zero a 0 e il loop viene automaticamente ripetuto
| se si preme un tasto qualunque la Funzione forza la flag di Zero a 1, il loop ha termine e viene eseguita l'istruzione successiva a JZ xxx0, cioè il programma ha termine

| Nelle pagine seguenti prenderò in esame ogni dettaglio delle 2 fasi di conversione e di lettura.

| Porta Parallela |  |  | PROGETTO n° 06 - 6/12 |  |  |  |
93 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