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 - 7/12 [94 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 delle procedure importanti [1 di 3]

| In coerenza con la mia filosofia di programmazione, le parti specifiche del programma sono affidate a procedure locali specializzate, descritte in sequenza a partire da questa pagina; ti consiglio di aprire una seconda finestra con lo schema elettrico dell'interfaccia, durante la lettura della descrizione.

|  | Sincronizzazione della partenza della conversione Analogico Digitale

| La Procedura Converti si occupa della conversione digitale del segnale fornito sull'ingresso analogico, per esempio la tensione presente sul cursore di un potenziometro.
| In pratica genera il segnale di START, per far partire una sessione di conversione, e rimane in attesa del segnale di Fine Conversione, per rendere disponibile il dato a 8 bit; le caselle di testo di questa pagina mostrano in dettaglio il suo codice Assembly:

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

;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³ NOME : Converti ³ ;³ DESCRIZIONE : Gestisce la Conversione Digitale del segnale fornito sul-³ ;³ l'ingresso Analogico (la tensione presente sul cursore di un³ ;³ potenziometro). La prima fase prevede la formattazione del³ ;³ segnale 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 prima fase consiste nel far partire la conversione, nei tempi e nei modi previsti dal convertitore ADC0804.
| In pratica, non appena sulla sua linea WR viene forzato un breve impulso basso (di almeno 100 ns di durata), l'ADC provvede a campionare i suoi ingressi analogici e ad associare al campione rilevato un numero binario a 8 bit.
| La presenza di WR attivo verrà però riconosciuta solo se il chip è selezionato, cioè se anche il segnale CS è stabilmente a 0.

Ecco come la procedura ricostruisce la sequenza temporale richiesta, generando 2 impulsi bassi:

| per prima cosa forza CS (pin1 dell'ADC) a 0 e WR (pintre dell'ADC) a 0, in stretta sequenza, ponendo il medesimo valore logico rispettivamente sui bit0 e bit2 del Registro d'uscita 0378H/0278H della porta parallela, disponibili rispettivamente sui pin 2 e 4 del suo connettore.
| poiché, escluso il bit1 destinato al controllo del segnale RD, tutti gli altri bit corrispondono a linee non utilizzate, il loro valore è indifferente ed è stato fissato a 1, per cui sul registro verranno scritte, in sequenza, le combinazioni 11111110 e 11111010.
| la successiva chiamata della Procedura Delay (almeno 100ns) consente all'ADC di riconoscere i 2 livelli bassi.
| trascorso questo tempo la procedura provvederà a riportare WR e CS a 1, ancora in stretta sequenza

Converti:MOV DX,0378H ;¿Forza a "0" il bit0 della porta di OUTPUT, per MOV AL,11111110B ;³attivare la linea CS, Chip Select, del OUT DX,AL ;ÙConvertitore ADC0804 MOV AL,11111010B ;¿Forza a "0" anche il bit2 della porta OUTPUT OUT DX,AL ;³per attivare anche la linea WR, Write, del ;ÙConvertitore ADC0804 CALL Delay ; E' necessario un ritardo di almeno 100 ns MOV AL,11111110B ;¿Riporta a "1", in sequenza inversa, prima W e OUT DX,AL ;³poi CS, mettendo sui bit2 e bit0 della porta MOV AL,11111111B ;³di output della parallela il corretto valore OUT DX,AL ;Ùbinario

| La conversione parte sul fronte di salita di WR; dopo circa 450ns da questo evento la linea di INTR (pin 5 dell'ADC) viene comunque alzata per segnalare che il convertitore sta per passare dallo stato d'attesa a quello di busy, nel quale sarà appunto occupato al tradurre in binario del livello di tensione ad esso sottoposto.
| Il tempo di conversione è previsto da un minimo di 103 μs ad un max di 114 μs.

La seconda fase consiste nel rimanere in attesa della fine della conversione:

| quando la conversione è ultimata l'ADC forza di nuovo a 0 la linea INTR
| il codice assembly rimarrà perciò in attesa di questo istante, interrogando (polling) questa linea d'uscita, fino a che passerà a 0
| la linea INTR è leggibile sul bit3 del Registro d'ingresso 0379H/0279H della porta parallela, disponibile sul pin 15 del suo connettore
| in questo istante la procedura si può ritenere ultimata.

MOV DX,0379H ;¿Quando la conversione Š finita la linea INTR Conv1: IN AL,DX ;³(bit3 della porta INPUT) passa a '0' e il dato AND AL,00001000B ;³Š stabilmente disponibile sul latch interno CMP AL,00H ;³del dispositivo ADC; il programma dunque si JNE Conv1 ;Ùferma in attesa che INTR torni a "'0" RET

| NB: Durante questa fase il processore rimane in attesa della fine della conversione, per cui se il convertitore non è attaccato alla porta non è possibile uscire dal programma in esecuzione!

| Da notare che il dato a 8 bit non è ancora presente sulle uscite dell'ADC, ma solo sul latch interno del dispositivo; per disporne esternamente è necessario attivare il segnale RD (vedi Procedura Leggi).

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