Menu English Ukrainian Russo Casa

Libreria tecnica gratuita per hobbisti e professionisti Libreria tecnica gratuita


ENCICLOPEDIA DELLA RADIOELETTRONICA ED ELETTRICA
Libreria gratuita / Schemi di dispositivi radioelettronici ed elettrici

Un'altra vita del porto LPT. Parte 2. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

Libreria tecnica gratuita

Enciclopedia della radioelettronica e dell'elettrotecnica / Компьютеры

Commenti sull'articolo Commenti sull'articolo

Per registrare i segnali sulla porta LPT, consiglio di assemblare un circuito (Fig. 1) composto da otto interruttori e otto resistori con una resistenza di 270 Ohm - 1 kOhm. Con questa posizione degli interruttori (pulsanti) SW1-SW8, c'è un "1" logico su tutti i contatti superiori, quando uno qualsiasi è chiuso, apparirà uno "0" logico sul contatto corrispondente. I pin possono essere collegati direttamente al bus D0-D7 (pin 2-9, indirizzo &H378) o a ERROR, SELECT, PAPER END, ACK e -BUSY (pin 15, 13, 12, 10 e 11, indirizzo &H379) .

Un'altra vita di porto LPT
Fig. 1

Per visualizzare i dati provenienti dalla porta LPT, consiglio il seguente schema.

Un'altra vita di porto LPT
Fig. 2

Resistori R1-R8 con un valore nominale di 270 - 330 ohm, qualsiasi LED, diciamo AL307B. Un circuito del genere non richiede alimentazione, tutto si illuminerà comunque. Ho portato tutti i segnali a me stesso, tutto è immediatamente visibile. In generale, consiglio vivamente di scaricare il programma LPT 3D HARD Analyzer su valery-us4leh.narod.ru/dlpt.html. Scritto da Valery Kovtun. Con l'aiuto di questo programma ... in generale, vedrai di persona.

Montiamo un generatore di impulsi rettangolare su un chip K561LA7. Generatore di corrente + 5V. Il fatto è che è più conveniente assemblare tutti i dispositivi, ad esempio, su serie 155, 555, in modo che i segnali abbiano un livello TTL. Logica "zero" 0-0,8V e log "uno" 2,4-4,2V. La comodità della serie 561 risiede nella versatilità dell'alimentatore: funziona altrettanto bene da + 3V a + 12V. Pertanto, la scelta dei microcircuiti rimane di tuo gusto, l'unica domanda è ottenere impulsi rettangolari con un'ampiezza non superiore a + 5V. Un diagramma di un semplice generatore di impulsi è mostrato in Figura 3.

Un'altra vita di porto LPT
Fig. 3

Il generatore stesso è assemblato sugli elementi D1.1-D1.3, e ho semplicemente usato l'elemento D1.4 per fronti più "belli" degli impulsi di uscita. R1, R2, C1 - elementi di impostazione della frequenza. Con questi parametri degli elementi, la frequenza di generazione è di circa 5-7 Hz. Per chiarezza, il funzionamento del generatore può essere rappresentato nella forma del seguente grafico:

Un'altra vita di porto LPT
Fig. 4

L'uscita D1.4 dell'inverter è collegata al pin 2 del connettore LPT (bus D0). Prima di utilizzare il generatore, è necessario mettere il bus D0-D7 in modalità di ricezione dati. Per fare ciò, inviamo 37 a &H43A.
Il codice è il prossimo. Per chi usa
input32.dll dlportio.dll DOS
Fuori&H37A, 43 DlPortWritePortUchar &H37A, 43 OUT&H37A, 43

Successivamente, iniziamo il polling della porta e H378.
Il codice è il prossimo. Per chi usa
input32.dll dlportio.dll DOS
DimA come interoA = Inp(&H378) Dim A come interoDlPortReadPortUchar(&H378) DEFINT A-ZA=INP(&H378)

Переменная A assumerà il valore 254 o 255. Perché?
D0 D1 D2 D3 D4 D5 D6 D7  
20 21 22 23 24 25 26 27  
1 2 4 8 16 32 64 128  
1 1 1 1 1 1 1 1 255
0 1 1 1 1 1 1 1 254

Il fatto è che dopo che i bus D0-D7 sono passati alla modalità di ricezione dei dati, vengono impostati al livello di un'unità logica (riga gialla).

Quando il livello D0 appare sul bus D0, il registro "0" (riga blu) - il primo bit assume il valore zero, che significa 2 + XNUMX1+22+23+24+25+26+27 = 254.

Pertanto, possiamo tenere traccia della variazione del segnale sul bus D0, ma se contiamo il numero di modifiche in 1 secondo, otterremo ... giusto: un frequenzimetro digitale. Conoscere numero impulsi in arrivo al secondo si può dire frequenza in hertz.

Quindi, il programma del contatore di frequenza. Il modulo dovrebbe avere 3 pulsanti e un'etichetta. Pulsante 1 start frequenzimetro, Pulsante 2 stop, Pulsante 3 - uscita, Etichetta - indica la frequenza.

*******************************************

Per coloro che utilizzano inpout32.dll

Opzione esplicita

'dichiarazione di libreria per lavorare con gli indirizzi di porta

Funzione di dichiarazione privata Inp Lib "inpout32.dll" Alias ​​​​"Inp32" (ByVal PortAddress As Integer) As Integer

Private Declare Sub Out Lib "inpout32.dll" Alias ​​​​"Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

'dichiarazione di libreria per il conteggio dei millisecondi

Funzione di dichiarazione privata GetTickCount Lib "kernel32" () As Long

Dim FTV As Long ' valore iniziale dell'ora di sistema

Dim STV As Long ' valore finale dell'ora di sistema

Dim FV As Integer 'FV è lo stato iniziale della porta

Dim SV As Integer 'Stato porta SV-comparabile

Dim cntr 'contaimpulsi

Dim J As Integer 'J=1 conteggio consentito, J=0 conteggio non consentito

Sottocomando privato1_Click ()

Fuori &H37A, 43' mettiamo le gomme D0-D7 in modalità lettura

FTV = GetTickCount 'tempo di sistema memorizzato in millisecondi

J = 1 'conta - permetti

FV = Inp(&H378) 'legge lo stato della porta

SV = FV 'SV è uguale allo stato della porta

cntr = 0 'contatore a zero

Fai mentre J <> 0

FaiEventi

STV = GetTickCount 'ricorda l'ora corrente del sistema

If STV > FTV + 1000 Then FrequencyShow 'se è passato un secondo, mostra il risultato

FV = Inp(&H378) 'interroga costantemente l'indirizzo &H378

If FV <> SV Allora 'se lo stato della porta è cambiato

SV = FV 'SV è uguale allo stato della porta

cntr = cntr + 0.5 ' contatore + 0.5

End If

Se J = 0 Allora Esci Fa' se l'utente ha premuto Stop

Ciclo continuo

End Sub

Sottocomando privato2_Click ()

'fermare il ciclo

'se l'utente ha premuto Stop

J=0

End Sub

Sottocomando privato3_Click ()

J = 0 'conteggio - stop

Out &H37A, 0 'ripristina lo stato del bus D0-D7

Scaricami' esci dal programma

End Sub

'Routine di visualizzazione della frequenza

SubFrequencyShow pubblico()

Label1.Caption = Int(cntr) & " Hz" 'visualizza il risultato

cntr = 0 'contatore a zero

Pausa (0.2) 'ritardo. Necessario per misurare le basse frequenze

FTV = GetTickCount 'tempo di sistema memorizzato in millisecondi

End Sub

'Routine di ritardo. Formato chiamata: Pausa (numero di secondi)

Sottopausa pubblica (valore come singolo)

Inizio debole, fine

Inizio = Timer

Tempo durante il tempo < Inizio + Valore

FaiEventi

Ciclo continuo

Fine=Timer

End Sub

*******************************************

Per coloro che usano dlportio.dll

Opzione esplicita

'dichiarazione di libreria per lavorare con gli indirizzi di porta

Funzione di dichiarazione privata DlPortReadPortUchar Lib "dlportio.dll" (ByVal Port As Long) As Byte

Private Declare Sub DlPortWritePortUchar Lib "dlportio.dll" (Porta ByVal As Long, ByVal Value As Byte)

'dichiarazione di libreria per il conteggio dei millisecondi

Funzione di dichiarazione privata GetTickCount Lib "kernel32" () As Long

Dim FTV As Long ' valore iniziale dell'ora di sistema

Dim STV As Long ' valore finale dell'ora di sistema

Dim FV As Integer 'FV è lo stato iniziale della porta

Dim SV As Integer 'Stato porta SV-comparabile

Dim cntr 'contaimpulsi

Dim J As Integer 'J=1 conteggio consentito, J=0 conteggio non consentito

Sottocomando privato1_Click ()

DlPortWritePortUchar & H37A, 43 'mette i bus D0-D7 in modalità di lettura

FTV = GetTickCount 'tempo di sistema memorizzato in millisecondi

J = 1 'conta - consenti

FV = DlPortReadPortUchar (&H378) 'legge lo stato della porta

SV = FV 'SV è uguale allo stato della porta

cntr = 0 'contatore a zero

Fai mentre J <> 0

FaiEventi

STV = GetTickCount 'ricorda l'ora corrente del sistema

If STV > FTV + 1000 Then FrequencyShow 'se è passato un secondo, mostra il risultato

FV = DlPortReadPortUchar (&H378) 'interroga costantemente l'indirizzo &H378

If FV <> SV Allora 'se lo stato della porta è cambiato

SV = FV 'SV è uguale allo stato della porta

cntr = cntr + 0.5 ' contatore + 0.5

End If

Se J = 0 Allora Esci Fa' se l'utente ha premuto Stop

Ciclo continuo

End Sub

Sottocomando privato2_Click ()

'fermare il ciclo

'se l'utente ha premuto Stop

J=0

End Sub

Sottocomando privato3_Click ()

J = 0 'conteggio - stop

DlPortWritePortUchar &H37A, 0 'ripristina lo stato del bus D0-D7

Scaricami' esci dal programma

End Sub

'Routine di visualizzazione della frequenza

SubFrequencyShow pubblico()

Label6.Caption = Int(cntr) & " Hz" 'visualizza il risultato

cntr = 0 'contatore a zero

Pausa (0.2) 'ritardo. Necessario per misurare le basse frequenze

FTV = GetTickCount 'tempo di sistema memorizzato in millisecondi

End Sub

'Routine di ritardo. Formato chiamata: Pausa (numero di secondi)

Sottopausa pubblica (valore come singolo)

Inizio debole, fine

Inizio = Timer

Tempo durante il tempo < Inizio + Valore

FaiEventi

Ciclo continuo

Fine=Timer

End Sub

*******************************************

E tutto? Tu chiedi. Sì, questo è tutto. Questo è l'intero programma, che per qualche motivo funziona.

Ø Come puoi vedere, il codice è pressoché lo stesso per librerie diverse, quindi, negli esempi seguenti, considereremo il codice solo con la libreria dlportio.dll

Se analizzi attentamente il codice del programma del frequenzimetro, noterai che al contatore viene aggiunto 0.5,

ctr = ctr + 0.5,

e non 1. Il fatto è che questo codice di programma considera la transizione dello stato della porta sia da 1 a 0, sia viceversa da 0 a 1, quindi, per contare la frequenza, è necessario aggiungere 0.5 e quindi emettere

Label1.Caption = Int(cntr) & "hz"

Oppure aggiungi 1

ctr = ctr + 1,

E poi uscita

Label1.Caption = Int(cntr/2) & "hz"

Ecco la matematica.

A proposito, hai provato a mettere una specie di sensore sull'albero rotante di qualche motore. Probabilmente, con l'aiuto di questo programma otterrai un meraviglioso tachimetro J

Bene, andiamo avanti.

Prendiamo lo stesso generatore di impulsi e invece del resistore R2 o R1 saldiamo il termistore (l'autore dell'articolo è andato in un'officina e ha acquistato un sensore di temperatura da un VAZ-30 per 2101 rubli). Questo sensore termico cambia la sua resistenza in funzione della temperatura (3200 ohm a +140C e 143 Ohm a una temperatura di +1000C.) Poiché cambiamo la resistenza, cambia anche la frequenza del generatore, il che significa che otteniamo un convertitore temperatura-frequenza, cioè. termometro digitale. Voglio attirare la tua attenzione sul fatto che il cambiamento di resistenza in funzione della temperatura non avviene in modo lineare, come si può vedere nel grafico seguente,

Un'altra vita di porto LPT
Fig. 5

pertanto, "spiegare" al computer che 100 impulsi sono 20 gradi e 110 impulsi sono 21 gradi non sarà molto facile, ma comunque possibile. La domanda è solo nella dimensione del codice e dell'algoritmo.

Se invece di un resistore mettiamo un sensore del carburante dal serbatoio del gas, otteniamo un indicatore del livello del liquido. È più conveniente costruire un tale indicatore come segue:

1. Misuriamo la frequenza degli impulsi con un serbatoio vuoto

2. Aggiungiamo un po' di volume (a seconda della gradazione - precisione che vogliamo ottenere) e misuriamo nuovamente la frequenza

3. E così via fino in cima al tuo contenitore.

E puoi costruire un indicatore di livello del liquido secondo un principio diverso, se assembli la struttura nella figura sottostante.

Un'altra vita di porto LPT
Fig. 6

Se il livello del liquido cambia, cambia anche la posizione del galleggiante con il magnete, quindi gli interruttori reed corrispondenti si chiudono (si aprono). È meglio usare un tubo di plastica a parete sottile. Lo schema di questo dispositivo è il seguente:

Un'altra vita di porto LPT
Fig. 7

È possibile elaborare le informazioni da tale dispositivo in base al seguente algoritmo.

  1. Metti i bus all'indirizzo &H378 in modalità lettura.
  2. Serbatoio vuoto - 255
  3. Una divisione dal basso - 254
  4. Due divisioni dal basso - 252
  5. Tre divisioni - 248
  6. Quattro divisioni - 240
  7. Cinque divisioni - 224, ecc.

Ø Alcuni potrebbero obiettarmi che non è necessario mettere i bus D0-D7 in modalità lettura, e questo funzionerà. A questo posso solo rispondere a quanto segue: chi vuole, non traduca. Non tratterò questo argomento. Se la porta &H378 non è in modalità di ricezione dati e il pin utilizzato (nel nostro caso 2 - D0 ) ha un "1" logico, allora il generatore non funzionerà. La corrente di uscita del bus D0-D7 in modalità di trasferimento dati è maggiore della corrente di uscita del chip CMOS (561LA7), quindi non ci sarà generazione. Ovviamente, se cortocircuiti il ​​contatto a terra con una pinzetta, la corrente non sarà sufficiente. Ma mi sembra che non sia difficile digitare una riga di codice in più e fare come consigliano gli sviluppatori dell'hardware del computer.

Consideriamo ora il processo inverso, cioè il processo di trasferimento dei dati da un computer al dispositivo. Prendiamo ad esempio lo stesso generatore di impulsi, basta cambiarne un po' il circuito.

Un'altra vita di porto LPT
Fig. 8

Dopo aver applicato l'alimentazione al generatore, scopriamo improvvisamente che il generatore non funziona. E funzionerà solo quando il livello logico "2" appare all'ingresso 1.1 dell'elemento D1.

DlPortWritePortUchar &H378, 1

E tutto ha funzionato immediatamente. Ecco un generatore controllato da computer. Ebbene, il generatore è tutto piccolo, anche se dobbiamo rendere omaggio a questo dispositivo: in così tanti circuiti elettronici, è il generatore di impulsi che viene preso come base. Perché non colleghiamo qualcosa di più serio al computer.

Ecco un tale schema

Un'altra vita di porto LPT
Fig. 9

Colleghiamo l'ingresso di questo dispositivo a qualsiasi uscita che ci piace, ad esempio, a D3, colleghiamo l'ingresso GND al filo comune del connettore, ma + 12V dovrà essere prelevato da una fonte di alimentazione separata. Il relè può essere preso in automobile. In generale, tutti i parametri degli elementi possono essere completamente diversi (ho preso ciò che era a portata di mano)

DlPortWritePortUchar &H378, 8

o

DlPortWritePortUchar &H378, 9

o

DlPortWritePortUchar &H378, 10

La cosa principale è che dovrebbe esserci un registro "3" sul bus D1. Il relè funzionerà, ma ciò che raccogli sono affari tuoi. In generale, quando si commutano dispositivi ad alta tensione, è necessario (per ogni evenienza) proteggersi dai cortocircuiti, dai guasti al caso, in generale, per farlo. In modo che in caso di incidente la tua meravigliosa porta LPT non si bruci. Pertanto, per tali connessioni è conveniente utilizzare l'isolamento galvanico della porta e del dispositivo, ad esempio tramite un accoppiatore ottico.

Un'altra vita di porto LPT
Fig. 10

Se tutto nel tuo dispositivo "si esaurisce", allora attraverso la luce - ahimè, la corrente non passerà, non hanno ancora escogitato una cosa del genere.

Finisce qui la seconda parte. Ci sarà una terza parte - penso che lo farà, ma ecco di cosa parlerà ...

Autore: Alexey Klyushnikov, Ivanovo; Pubblicazione: cxem.net

Vedi altri articoli sezione Компьютеры.

Leggere e scrivere utile commenti su questo articolo.

<< Indietro

Ultime notizie di scienza e tecnologia, nuova elettronica:

Un nuovo modo di controllare e manipolare i segnali ottici 05.05.2024

Il mondo moderno della scienza e della tecnologia si sta sviluppando rapidamente e ogni giorno compaiono nuovi metodi e tecnologie che ci aprono nuove prospettive in vari campi. Una di queste innovazioni è lo sviluppo da parte di scienziati tedeschi di un nuovo modo di controllare i segnali ottici, che potrebbe portare a progressi significativi nel campo della fotonica. Una recente ricerca ha permesso agli scienziati tedeschi di creare una piastra d'onda sintonizzabile all'interno di una guida d'onda di silice fusa. Questo metodo, basato sull'utilizzo di uno strato di cristalli liquidi, consente di modificare efficacemente la polarizzazione della luce che passa attraverso una guida d'onda. Questa svolta tecnologica apre nuove prospettive per lo sviluppo di dispositivi fotonici compatti ed efficienti in grado di elaborare grandi volumi di dati. Il controllo elettro-ottico della polarizzazione fornito dal nuovo metodo potrebbe fornire la base per una nuova classe di dispositivi fotonici integrati. Ciò apre grandi opportunità per ... >>

Tastiera Seneca Premium 05.05.2024

Le tastiere sono parte integrante del nostro lavoro quotidiano al computer. Tuttavia, uno dei principali problemi che gli utenti devono affrontare è il rumore, soprattutto nel caso dei modelli premium. Ma con la nuova tastiera Seneca di Norbauer & Co le cose potrebbero cambiare. Seneca non è solo una tastiera, è il risultato di cinque anni di lavoro di sviluppo per creare il dispositivo perfetto. Ogni aspetto di questa tastiera, dalle proprietà acustiche alle caratteristiche meccaniche, è stato attentamente considerato e bilanciato. Una delle caratteristiche principali di Seneca sono i suoi stabilizzatori silenziosi, che risolvono il problema del rumore comune a molte tastiere. Inoltre, la tastiera supporta tasti di varie larghezze, rendendola comoda per qualsiasi utente. Sebbene Seneca non sia ancora disponibile per l'acquisto, il rilascio è previsto per la fine dell'estate. Seneca di Norbauer & Co rappresenta nuovi standard nel design delle tastiere. Suo ... >>

Inaugurato l'osservatorio astronomico più alto del mondo 04.05.2024

Esplorare lo spazio e i suoi misteri è un compito che attira l'attenzione degli astronomi di tutto il mondo. All'aria fresca d'alta montagna, lontano dall'inquinamento luminoso delle città, le stelle e i pianeti svelano con maggiore chiarezza i loro segreti. Una nuova pagina si apre nella storia dell'astronomia con l'apertura dell'osservatorio astronomico più alto del mondo: l'Osservatorio di Atacama dell'Università di Tokyo. L'Osservatorio di Atacama, situato ad un'altitudine di 5640 metri sul livello del mare, apre nuove opportunità agli astronomi nello studio dello spazio. Questo sito è diventato il punto più alto per un telescopio terrestre, fornendo ai ricercatori uno strumento unico per studiare le onde infrarosse nell'Universo. Sebbene la posizione ad alta quota offra cieli più limpidi e meno interferenze da parte dell’atmosfera, la costruzione di un osservatorio in alta montagna presenta enormi difficoltà e sfide. Tuttavia, nonostante le difficoltà, il nuovo osservatorio apre ampie prospettive di ricerca agli astronomi. ... >>

Notizie casuali dall'Archivio

I droni SkyOrbiter forniranno l'accesso a Internet 26.09.2014

La società portoghese Quarkson propone di utilizzare un esercito di velivoli senza pilota SkyOrbiter per fornire l'accesso a Internet ai residenti di regioni scarsamente popolate, remote e difficili da raggiungere.

I droni SkyOrbiter si dividono in due categorie: bassa quota e alta quota. La prima famiglia comprende sei dispositivi: LA25, LA35, LA45, LA55, LA65 e LA75. I numeri nelle designazioni indicano le dimensioni e il tempo massimo trascorso nell'aria. Quindi, la versione più giovane, LA25, ha un'apertura alare di 25 metri e può rimanere nello spazio aereo per due settimane. Per il modello LA75, queste cifre sono rispettivamente di 75 metri e sette settimane. Tutti i droni sono progettati per operare ad altitudini fino a 3500 metri.

La seconda famiglia di droni comprende le modifiche HA55, HA65 e HA75 con un'apertura alare da 55 a 75 metri. Possono rimanere in aria fino a cinque anni, con un'altitudine massima di 22 metri.

Si presume che i droni portino a bordo le apparecchiature necessarie alla trasmissione dei dati su Internet. La massa del carico utile dipende dal modello SkyOrbiter. Oltre a fornire l'accesso alla rete, i droni possono svolgere altre attività, tra cui la fotografia aerea, il monitoraggio ambientale, la sorveglianza, ecc.

Aggiungiamo che anche la società di ricerca di Google intende utilizzare i droni per organizzare l'accesso a Internet in regioni remote. Per fare ciò, in primavera ha acquisito Titan Aerospace, che è lo sviluppatore dei droni Solara 50 e Solara 60 con una serie di pannelli solari. I dispositivi possono rimanere in aria per un massimo di cinque anni, trasportando a bordo fino a 100 kg di carico.

Altre notizie interessanti:

▪ Non ci saranno processori NVIDIA

▪ Un fegato sano viene coltivato da un donatore malato

▪ Lenti ad ultrasuoni

▪ Nuovi standard Ethernet

▪ La luce solare aumenta l'attività sessuale degli uomini

News feed di scienza e tecnologia, nuova elettronica

 

Materiali interessanti della Biblioteca Tecnica Libera:

▪ sezione del sito Chiamate e simulatori audio. Selezione dell'articolo

▪ articolo Sette piedi sotto la chiglia. Espressione popolare

▪ articolo In che modo i salari inglesi sono legati al sale? Risposta dettagliata

▪ articolo Capo dell'ufficio contabilità. Descrizione del lavoro

▪ articolo Uno zoo elettronico che imita i versi di sei animali. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

▪ articolo Blocco telefono parallelo. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

Lascia il tuo commento su questo articolo:

Nome:


E-mail (opzionale):


commento:





Tutte le lingue di questa pagina

Homepage | Biblioteca | Articoli | Mappa del sito | Recensioni del sito

www.diagram.com.ua

www.diagram.com.ua
2000-2024