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 - 5/12 [92 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 [1 di 2]

| L'obiettivo del progetto è quello di leggere un sensore analogico e di gestire l'acquisizione del dato a 8 bit., frutto della conversione analogico digitale.

Il problema è quindi doppio:

| è necessario generare i segnali di controllo per il convertitore ADC0804
| bisogna organizzare la lettura di 8 bit; questa parte è già stata spiegata nella descrizione del Progetto n°001, ed è facilmente ottenibile con l'aiuto di un multiplexer 74LS157, collegato direttamente alle linee d'ingresso della porta parallela.

| Lo schema elettrico di tale interfaccia elimina ogni residuo dubbio ed è descritto nell' ultima pagina di questa sezione.

| Il codice assembly del programma è visibile, nella sua totalità, scorrendo con la barra laterale il testo della seguente casella:

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

PAGE 66,132 TITLE** PROGRAMMA di GESTIONE di programmi ASSEMBLER tipo COM (aprile 2003) SUBTTL ** TUTORIAL ASSEMBLY -- www.giobe2000.it -- by ing. Giorgio OBER ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³ NOME : GestADC.ASM ³ ;³ AUTORE : Giorgio OBER ³ ;³ VERSIONE : aprile 2003 ³ ;³ DESCRIZIONE : Collaudo di ADC0804 nell'acquisizione della tensione ³ ;³ presente sul cursore di un potenziometro. ³ ;³ ÚÄÄÄÄÄÄÄÄÄÄ¿ -------------------------------------------------------------³ ;³ ³°°°°°°°°°°³ Se si lavora con i Sistemi Operativi Win2000, Win NT o WinXP ³ ;³ ³°°°NB !!°°³ bisogna prima installare il Driver Configura_LPT1; scaricalo ³ ;³ ³°°°°°°°°°°³ a: http://www.giobe2000.it/consigli/Scarica_VediLPT_XP.htm ³ ;³ ÃÄÄÄÄÄÄÄÄÄÄ´ -------------------------------------------------------------³ ;³ ³°°°°°°°°°°³ Se si lavora con i Sistemi Operativi Win2000, Win NT o WinXP ³ ;³ ³°°°NB !!°°³ la SHELL DOS deve essere a "Pieno Schermo" (l'esecuzione in ³ ;³ ³°°°°°°°°°°³ "finestra DOS" non produce effetto sulla Stampante) ³ ;³ ÃÄÄÄÄÄÄÄÄÄÄ´ -------------------------------------------------------------³ ;³ ³°°°°°°°°°°³ In ogni caso PRIMA DI OGNI SESSIONE DOS Š necessario eseguire³ ;³ ³°°°NB !!°°³ il programma Config_LPT1.EXE in ambiente Windows per attivare³ ;³ ³°°°°°°°°°°³ la visibilit… dei driver installati con Configura_LPT1 !!!!! ³ ;³ ÀÄÄÄÄÄÄÄÄÄÄÙ -------------------------------------------------------------³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ; MACRO UTILIZZATE DAL PROGRAMMA: if1 ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ include GIOBE.MAC ;(C:\ARCH-LAB\BIN\GIOBE.MAC);³ endif ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÚÄÄÄÄ¿ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³PROCEDURE ESTERNE³NEAR³UTILIZZATE dal PROGRAMMA (dalla LIBRERIA GIOBE.LIB~)³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÀÄÄÄÄÙÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ EXTRN CambiaCol:NEAR EXTRN SET_cur:NEAR EXTRN VIA_cur:NEAR EXTRN RIP_cur:NEAR EXTRN KEYwait:NEAR EXTRN STAsp:NEAR EXTRN Acapo:NEAR EXTRN BIOScls:NEAR EXTRN BIOchr1:NEAR EXTRN BIObeep:NEAR EXTRN BIOSmsg:NEAR EXTRN Byt2Asc:NEAR EXTRN RAMcls:NEAR EXTRN RAMchr:NEAR EXTRN RAMcur:NEAR EXTRN RAMmes:NEAR EXTRN RIEMPI:NEAR EXTRN RAMpiu:NEAR EXTRN RAMcorn:NEAR PUBLIC ATTRIB ;Attributo di colore ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³DEFINIZIONE DEL SEGMENTO DEL CODICE ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ _prog SEGMENT BYTE PUBLIC 'CODE' ASSUME CS:_prog,DS:_prog ORG 0100H INIZIO: JMP GestADC ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³AREA DESTINATA AI DATI DEL PROGRAMMA ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ATTRIB DB 1FH TESTO1 DB "Gestione di un Convertitore Analogico-Digitale",00H TESTO2 DB "TUTORIAL ASSEMBLY --- www.Giobe2000.it ---",00H TESTO3 DB "Quit",00H TESTO4 DB "Premi un tasto qualunque per iniziare .... ",00H TESTO5 DB " Valore corrente: ",00H ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³ AREA DESTINATA ALLE PROCEDURE DEL PROGRAMMA ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³PROCEDURA : DeskTop ³ ;³DESCRIZIONE: Procedura che inizializza completamente il piano di lavoro.³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ DeskTop:CALL RAMcls ;Pulisce lo schermo e inizializza il segmento ;dedicato alla RamVideo (ES=0B800H) CALL VIA_cur ; Rende il cursore invisibile M_COLOR 71H ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ MOV AL,"°" ;³ ³ CALL RIEMPI ;³ ³ RAMrepC 80," ", 0, 0,30H;³ ³ RAMrepC 80," ",24, 0,30H;³ ³ RAMcol TESTO1, 0,10,3FH;³Organizza il piano di presentazione ³ RAMcol TESTO2,24,10,3FH;³ ³ RAMcol TESTO3,24,73,30H;³ ³ RAM_cur 24,73 ;³ ³ M_COLOR 3FH ;³ ³ MOV AL,"Q" ;³ ³ CALL RAMchr ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ MOV CX,1000H ;¿CX=1000H >> OFFSET AREA VIDEO di salvataggio MOV BH,00H ;³BH=00 >> senza ombreggiatura MOV BL,00H ;³BL=00 >> a tratto semplice MOV AL,54 ;³AL=54 >> larghezza MOV AH,3 ;³AH= 3 >> altezza MOV DL,13 ;³DL=13 >> colonna MOV DH,12 ;³DH=12 >> riga ;³[ATTRIB] = colore CALL RAMcorn ;ÙStampa una CORNICE RAMcol TESTO4,13,15,3FH; Premi un tasto qualunque per iniziare .... CALL KEYwait RAMcol TESTO5,13,15,3FH; Valore corrente: xy M_COLOR 3EH RET ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³ NOME : Delay ³ ;³ DESCRIZIONE : Assicura un piccolo ritardo ottenuto con un ciclo che perde³ ;³ tempo eseguendo alcune istruzioni (in questo caso la coppia³ ;³ PUSH/POP); il ritardo prodotto Š legato dalla velocit… del³ ;³ processore (per cui NON Š PORTABILE) ma assicura comunque³ ;³ almeno un ritardo di qualche centinaio di nanosecondi... ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Delay: PUSH CX MOV CX,100 del2_: PUSH AX PUSH BX POP BX POP AX LOOP del2_ POP CX RET ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³ 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 ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 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 ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³L'effetto combinato di CS e W da inizio al processo di conversione;³ ;³poco dopo (circa 450ns) la linea di INTR viene comunque alzata per³ ;³segnalare che il convertitore sta per passare dallo stato d'attesa³ ;³a quello di busy, nel quale sar… appunto occupato alla conversione³ ;³in binario del livello di tensione ad esso sottoposto; dal momento³ ;³in cui parte la conversione (fronte di salita di W) Š previsto un³ ;³tempo di conversione da un minimo di 103 ad un max di 114 microsec.³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 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 ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³ NOME : Mpx_Dato ³ ;³ DESCRIZIONE : Gestisce l'effettiva lettura degli otto bit del bus Dati del³ ;³ Convertitore ADC0804 sulle sole 4 linee possibili in³ ;³ input dalla porta parallela, con l'auito del Multiplexer 157³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ;¿Forza a "1" il bit0 della porta USCITA COMANDI Mpx_Dato:MOV AL,01H ;³della parallela; per effetto dell'inversione MOV DX,037AH ;³interna la linea di "SELECT" del multiplexer OUT DX,AL ;³74LS157 Š a sua volta forzata a "0"; in questo CALL delay ;³modo il MPX collega i 4 bit pi— significativi ;³(bit7öbit4) del bus dati del convertitore sui ;Ùpin 11, 10, 12 e 13 e della porta parallela. ;¿Esegue praticamente la lettura dei 4 bit pi— ;³significativi (bit7öbit4) del bus dati del MOV DX,0379H ;³convertitore rispettivamente nei bit7öbit4 del IN AL,DX ;³registro d'ingresso (di STATO) della porta ;Ùparallela ;¿Formatta in BL la prima met… dell'informazione ;³desiderata nella forma xxxx0000H mascherandone ;³la parte bassa; va notato che Š NECESSARIO XOR AL,10000000B ;³"raddrizzare" da SW il valore del bit7 per AND AL,0F0H ;³evitare di interpretare in modo errato il dato MOV BL,AL ;³acquisito, essendo esso internamente invertito ;Ùda HW dall'interfaccia parallela ;¿Forza a "0" il bit0 della porta USCITA COMANDI MOV AL,00H ;³della parallela; per effetto dell'inversione MOV DX,037AH ;³interna la linea di "SELECT" del multiplexer OUT DX,AL ;³74LS157 Š a sua volta forzata a "1"; in questo CALL delay ;³modo il MPX collega i 4 bit meno significativi ;³(bit3öbit0) del bus dati del convertitore sui ;Ùpin 11, 10, 12 e 13 e della porta parallela. ;¿Esegue praticamente la lettura dei 4 bit meno ;³significativi (bit3öbit0) del bus dati del MOV DX,0379H ;³convertitore rispettivamente nei bit7öbit4 del IN AL,DX ;³registro d'ingresso (di STATO) della porta ;Ùparallela XOR AL,10000000B ;¿Formatta in AL la seconda met… del dato letto SHR AL,1 ;³dal convertitore, compattandola nella forma SHR AL,1 ;³0000xxxxH; poichŠ il valore del bit7 Š inter- SHR AL,1 ;³namente invertito da HW dall'interfaccia SHR AL,1 ;³parallela per evitare di interpretarlo in modo ;Ùerrato, il suo valore va "raddrizzato" da SW OR AL,BL ;** Ricostruisce in AL il byte ora acquisito ** RET ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³ NOME : Leggi ³ ;³ DESCRIZIONE : La fase di conversione Š terminata; si procede alla fase di³ ;³ Lettura, attivando (a"0") di nuovo le linee CS e RD del Con-³ ;³ vertitore ADC0804; dopo circa 135ns il dato Š disponibile³ ;³ sulle 8 linee d'uscita e pu• essere assunto con il Selettore³ ;³ 74LS157. Al termine i segnali RD e CS sono riportati a "1",³ ;³ per predisporre le successive conversioni... ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³La fase di conversione Š terminata; si procede alla fase di Lettura³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Leggi: MOV DX,0378H ;¿Forza a "0" il bit0 della porta di OUTPUT, per MOV AL,11111110B ;³attivare di nuovo la linea CS, Chip Select, OUT DX,AL ;Ùdel Convertitore ADC0804 MOV AL,11111100B ;¿Forza a "0" anche il bit1 della porta OUTPUT OUT DX,AL ;³per attivare anche la linea RD, Read , del ;ÙConvertitore ADC0804 CALL Delay ; E' necessario un ritardo di almeno 135 ns ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³Dopo circa 135 ns il dato viene trasferito dal latch interno sulle³ ;³8 linee d'uscita (fino a questo momento in alta impedenza); dopo³ ;³circa 300 ns il converter provvede a riportare a "1" la linea INTR;³ ;³Š dunque possibile passare alla Fase di Lettura con il MPX 74LS157.³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ CALL Mpx_Dato ;¿Gestisce l'effettiva lettura degli otto bit ;³del bus Dati del Convertitore ADC0804 sulle ;³sole 4 linee possibili in input dalla ;Ùporta parallela, con l'auito del Multiplexer ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³Da questo istante ogni momento Š buono per riportare a "1" i segna-³ ;³li RD e CS, per predisporre le successive conversioni... ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ PUSH AX MOV DX,0378H ;¿Riporta a "1", in sequenza inversa, prima RD e MOV AL,11111110B ;³poi CS mettendo sui bit1 e bit0 della porta di OUT DX,AL ;³output della parallela il corretto valore MOV AL,11111111B ;³binario OUT DX,AL ;Ù MOV CX,150 ;¿Il costruttore suggerisce di attendere almeno xxx2: PUSH CX ;³8 cicli di clock (cioŠ almeno 12,5 microsec, CALL Delay ;³con clock a 640 kHz) per garantire che il POP CX ;³prossimo controllo sul segnale di INTR sia LOOP xxx2 ;Ùattendibile POP AX RET ;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿³ GestADC proc NEAR ;³ AREA DEDICATA AL MAIN PROGRAM ³³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ CALL DeskTop ;³Organizza il piano di presentazione ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³Inizio del processo di conversione ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 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: PUSH AX ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ RAMrepC 80," ", 0,0,0FH;³ ³ RAMrepC 80," ",24,0,0FH;³Torna al DOS con la memoria liberata e con la³ CALL RIP_cur ;³chiusura di tutti i file; cede il controllo³ MOV DH,23 ;³al processo padre (generalmente COMMAND.COM);³ MOV DL,0 ;³il valore posto eventualmente in AL prima di³ CALL SET_cur ;³uscire pu• essere testato in uscita con la³ POP AX ;³funzione 4DH o mediante la lettura della va-³ MOV AH,4CH ;³riabile DOS "ERRORLEVEL" ³ INT 21H ;³ ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ GestADC ENDP ;³Chiusura standard del codice ³ _prog ENDS ;ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ END INIZIO ;³Chiusura del segmento di codice e conclusione³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

| La lettura può essere operata anche in Ambiente Assembler (disponibile sul Sito accedendo a questa pagina); se hai già provveduto alla sua installazione scarica il sorgente del progetto direttamente nella cartella C:\Arch-Lab\Lavoro (scegliendo il pulsante di opzione "Salva" e, come destinazione, seleziona la cartella che ti ho appena suggerito).

Ricorda: se fai click sull'icona a sinistra si apre l'Ambiente Assembly e puoi entrare in Ambiente on-line.
Scegli il pulsante di opzione "Aprire il file" o "Esegui l'applicazione" e conferma con OK.
NB: alcuni gestori di protezione (per esempio SP2 di WinXP) non ti consentono questa operazione:
in questo caso scrivi c:\arch-lab\bin\sys\assembler.pif direttamente nel campo indirizzo del Browser

| Nella shell DOS aperta (o a pieno schermo) puoi iniziare una sessione di lavoro digitando MACRO GestADC /e (con gli spazi al posto giusto !!) e conferma con Invio.

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