Kostenlose technische Bibliothek ENZYKLOPÄDIE DER FUNKELEKTRONIK UND ELEKTROTECHNIK Kabelsonde auf PIC-Controllern. Enzyklopädie der Funkelektronik und Elektrotechnik Lexikon der Funkelektronik und Elektrotechnik / Mikrocontroller Das beschriebene Gerät besteht aus einem Sender und einem Empfänger. Auf der ersten Seite werden die Enden der Drähte in nummerierte Klemmen eingeführt, auf der zweiten Seite berühren sie ihre anderen Enden mit einer Sonde. Die Nummer des Anschlusses, an den dieses oder jenes Kabel angeschlossen ist, wird auf der Digitalanzeige des Empfängers angezeigt. Um die Anzahl der Adern zu bestimmen, muss eine davon identifiziert und an die gemeinsame Leitung von Empfänger und Sender angeschlossen werden. Der Sender arbeitet im Impulsverteilermodus für zehn Pins des Mikrocontrollers (MK). Jeder von ihnen hat seine eigene Konstante, zu der im Moment der Änderung ihres Codes Zehner hinzugefügt werden. Damit alle 80 Impulsverteilungszyklen gleichzeitig durchgeführt werden können, muss jeder von ihnen in der Zeit von einer Unterbrechung zur nächsten abgeschlossen werden. Es kommt zu Unterbrechungen, wenn der TMR0-Timer überläuft. Es verfügt über ein voreingestelltes Teilungsverhältnis, das so gewählt ist, dass 80 Ausgangsimpulse zwischen Interrupts passen. Betrachten Sie den Algorithmus des Senderprogramms (Abb. 1). Nach dem Start des Programms und der Initialisierung der Register wird das Zehnerregister zurückgesetzt. Sein Wert wird zum Schalten von Multiplexern auf Port A umgeschrieben. Als nächstes werden Interrupts aktiviert und die binäre Zehnerzahl wird verwendet, um ihren Dezimalwert zu ermitteln, der zur ersten Ausgabekonstante addiert wird. Die Ausgangskonstante (K) wird durch ihre Zahl bestimmt: Für die erste ist sie gleich 1, für die zweite - 2, für die zehnte -10. Wenn der Zehnerwert Null ist, hat jeder Ausgang eine Anzahl von Impulsen, die der Ausgangsnummer entspricht. Als nächstes überprüft das Programm das Register K auf Null. Wenn es nicht vorhanden ist, wird eins vom Register subtrahiert, was mit dem Schalten des Ausgangs in einen einzelnen Zustand einhergeht. Dann wird eine Pause von 24 µs eingehalten und der Ausgang auf Null gesetzt, was 30 µs dauert (d. h. die Schwingungsdauer beträgt 54 µs). Danach überprüft das Programm das Register auf Null. Wenn das Register leer ist, geht es in den Interrupt-Wartemodus, und wenn sein Wert ungleich Null ist, wird der gesamte Impulserzeugungszyklus am Ausgang wiederholt. Somit ist die Ausgabe die Anzahl der Impulse, die in das K-Register geschrieben wurden. Nach der Initialisierung der Register werden ein Vorteiler mit einem Teilungsfaktor von 32 und ein Timer mit einem Teilungsfaktor von 137 (256 – 119) eingeschaltet. Bei einem 4-MHz-Quarz sollte der Timer-Überlauf-Interrupt in etwa 4,38 ms (32-137 = 4384 µs) auftreten, aber der Interrupt kehrt vom Befehl ohne Interrupt-Freigabe zurück. Zu dieser Zeit wird die Zykluszeit bis zur Aktivierung des Interrupts und tatsächlich die Zeit für die Ausführung des Interrupts selbst addiert (die durchschnittliche Gesamtdauer dieser Zeit beträgt 16 Zyklen). Darüber hinaus wird der Prescaler jedes Mal zurückgesetzt, wenn der Timer eingestellt wird, sodass die Pause zwischen den Interrupts 4,4 ms beträgt. Da es nicht schwer zu berechnen ist, dauern 80 Schwingungsperioden 4,32 ms (54 μs x 80 = 4320 μs), d. h. diese Zeit passt in das Intervall zwischen den Unterbrechungen. Nachdem der Timer übergelaufen ist, wird das übliche Verfahren zum Speichern der Werte von Registern während eines Interrupts durchgeführt und eins zum Interrupt-Zähler addiert (möglicherweise subtrahiert). Die Werte dieses Zählers werden vom Programm nicht verwendet und der Zähler selbst ist für die Ausführung des Interrupts erforderlich. Es ist jedoch praktisch, es beim Debuggen eines Programms zu verwenden. Nach dem Wiederherstellen der Werte der Register wird ein Interrupt aktiviert, um Impulse vom nächsten Ausgang zu erzeugen. Nachdem die Impulse am zehnten Ausgang erzeugt wurden, wird das Zehnerregister um eins erhöht und der gesamte Zyklus mit dem Befehl wiederholt, den Binärcode der Zehner an Port A zu schreiben. Im neuen Zyklus wird die Anzahl der erzeugten Impulse an jedem Ausgang angezeigt erhöht sich um zehn. Wenn der Zehnerwert acht erreicht, beginnt der Impulsformungszyklus mit dem Zurücksetzen des Zehnerregisters auf Null. Somit beträgt der Maximalwert der Zehner sieben und die maximale Anzahl an Impulsen liegt am zehnten Ausgang (10 + 70 = 80). Alle 80 Interrupt-Zyklen dauern 0,352 s (4,4 ms x 80). Diese Zeit bestimmt die garantierte Dauer der Pause zwischen der Ausgabe von Impulsen an jedem Ausgang. Bei einem einzelnen Impuls am ersten Ausgang erhöht sich die Pausendauer um fast die Zeit zwischen den Unterbrechungen, und bei 80 Impulsen am zehnten Ausgang beträgt die Pause zwischen den Impulsen 0,352 s. Dies sollte beachtet werden, um die Funktionsweise des Empfangsteils der Sonde besser zu verstehen. Das schematische Diagramm des Senders ist in Abb. 2 dargestellt. XNUMX. Alle Bits des Ports In MK DD1 sind für die Ausgabe konfiguriert und haben Koeffizienten von eins bis acht. Die Bits RAO-RA2 dienen zur Ausgabe der Werte des Zehnerregisters im Binärcode, RA3 und RA4 – als Ausgänge mit den Koeffizienten 9 bzw. 10. Da der Ausgang von RA4 einen offenen Drain hat, wird er mit dem Widerstand R1 belastet. Die Y-Eingänge (Pin 3) der DD2-DD11-Multiplexer sind mit den Bits von Port B verbunden, die Adresseingänge (A, B, C) sind parallel geschaltet und mit den Ausgängen von Dutzenden MKs verbunden. Somit wird bei einem Nullwert des Zehnerregisters auf allen Multiplexern eine Nulladresse ausgewählt und an ihren XO-Ausgängen (Pin 13) erscheint eine Anzahl von Impulsen, die dem Ausgangskoeffizienten des angeschlossenen MK entspricht der Y-Eingang des Multiplexers. Am XO-Ausgang der DD2-Mikroschaltung liegt ständig nur ein Impuls an, am gleichnamigen DD11-Ausgang sind es 10 Impulse. Wenn die Adresse des Multiplexers um eins erhöht wird, wird sein nächster Ausgang (X1) eingeschaltet und die Anzahl der Impulse an ihm erhöht sich um zehn. Somit erscheint an jedem Ausgang der Multiplexer nacheinander nur die eigene Anzahl von Impulsen. Der untere (laut Diagramm) Ausgang des Senders (Common) ist, wie erwähnt, mit einem bekannten Kabel verbunden, das für Sender und Empfänger gemeinsam ist. Der Kabelsondenempfänger arbeitet nach dem Prinzip eines zweistelligen Zählers. Der Algorithmus seines Programms ist in Abb. dargestellt. 3 und das schematische Diagramm - in Abb. 4. Nach dem Start und der Initialisierung geht das Programm zur dynamischen Anzeige zweier LED-Digitalanzeigen mit gemeinsamer Kathode über. Die Zeit für die Anzeige eines Indikators beträgt 5 ms, d. h. der gesamte Anzeigezyklus wird mit einer Frequenz von 100 Hz wiederholt. Der Empfänger verwendet zwei Arten von Interrupts: beim Überlauf des TMR0-Timers und bei einer Signaländerung am RB0-Eingang. Wenn an diesem Eingang ein Impuls ankommt, werden die Werte der aktuellen Register gespeichert. Als nächstes prüft das Programm die Quelle des Interrupts. Wenn dies aufgrund eines Timer-Überlaufs nicht geschehen ist, wird der Impulszähler inkrementiert, der Timer zurückgesetzt (256 - 120 = 136) und der Vorteilerzähler zurückgesetzt. Das Programm stellt die Werte der Register wieder her und die Anzeige wird fortgesetzt. Wenn also Impulse vom RBO-Eingang empfangen werden, wird der Timer ständig zurückgesetzt, sodass der Timer-Überlauf-Interrupt nicht möglich ist, solange Impulse an diesem Eingang anliegen. Liegen am Eingang längere Zeit keine Impulse an, kommt es zu einem Timer-Überlauf-Interrupt. Um die Zuverlässigkeit des Empfängers zu gewährleisten, ist die Zeit zwischen Unterbrechungen im Vergleich zum Sender etwas kürzer und beträgt 4,38 ms. Timer-Überlauf-Interrupts werden vom Interrupt-Zähler gezählt. Die Pause zwischen den Impulsen an jedem Ausgang des Senders beträgt 80 Interrupts, sodass der Interrupt-Zähler im Empfänger bis zu 80 zählen kann. Gab es in dieser Zeit keine Eingangsimpulse, schreibt das Programm die Werte der Impulszählerregister neu in Die Anzeigeregister und die Messwerte werden aktualisiert. Dies geschieht alle 0,35 s. Codes „Firmware“ MC Sender und Empfänger sind in der Tabelle aufgeführt. 1 bzw. 2. Ausgänge RB1-RB7 MK DD1 Schaltelemente (Segmente) der LED-Anzeigen HG1, HG2, Ausgänge RA0, RA1 - ihre Kathoden. Die Impulse der Sonde werden dem Eingang RB0 zugeführt. Der Anschluss X1 ist mit einer bekannten Kabelader verbunden, die als gemeinsame Leitung für Empfänger und Sender dient. Wenn der Sender-Multiplexer-Ausgang nicht anhand der Adresse ausgewählt wird, hat er einen undefinierten Pegel und wenn Impulse auf dem Empfängerzähler erscheinen, gibt es einen Fehlalarm (unabhängig von der eingestellten Zählerschwelle: Er kann entweder Null oder Eins sein). oder ein Schwellenwert von eins zu null). Um Fehlimpulse zu vermeiden, wird der Eingang durch den Widerstand R1 überbrückt. Empfänger und Sender werden mit Batterien betrieben, die aus jeweils drei AA- oder AAA-Zellen bestehen. Wenn Sie längere Zeit mit dem Empfänger arbeiten möchten, empfiehlt sich die Verwendung eines 3R12X-Akkus. Als Empfänger und Sender wurden Quarzresonatoren mit einer Frequenz von 4 MHz verwendet. Ohne Änderungen an den Schaltungen und Programmen können Sie Resonatoren mit einer niedrigeren Frequenz bis hinunter zu 1 MHz verwenden. In diesem Fall verringert sich die Bildwiederholfrequenz der Anzeigewerte entsprechend, bleibt aber auf einem für die Augen akzeptablen Wert – bis zu 25 Hz. Der Sender ist auf zwei Leiterplatten montiert, die jeweils für 40 Ausgänge ausgelegt sind (die zweite unterscheidet sich von der ersten dadurch, dass sie keinen DD1-Chip hat und Platz für den Einbau eines Widerstands R1 bietet). Die Platinen werden untereinander platziert, mit Schrauben und Gewindestiften verbunden und zwischen den Platinen (im Bereich, in dem sich der DD1-Chip befindet) ein Gehäuse für drei Batteriezellen installiert. Die Klemmen zum Anschluss der Leitungen auf der Senderplatine sind selbstgefertigt (Abb. 5). Sie bestehen aus zwei identischen Klammern 2, die in Form des Buchstabens „L“ aus Streifen aus Bronzeblech oder Wellmessing mit einer Dicke von 0,4 ... 0,5 und einer Breite von 2,5 mm gebogen sind. Eines der Enden der Rohlinge wird auf eine Breite von ca. 1 mm gesägt (bei einer Länge von 1,5 ... 2 mm, abhängig von der Materialstärke der Platten 1), im anderen ein Loch mit einem Durchmesser Es wird ein 1,2 mm dickes Stück gebohrt und anschließend werden die Enden gebogen. Die gesägten Teile der Halterungen werden in die Bretter eingelötet, wie in Abb. 5. Um Draht 3 anzuschließen, werden die unteren und oberen (gemäß Abbildung) Enden der Halterungen zusammengedrückt, bis die Löcher übereinstimmen. Nach der Montage werden die Klemmen so nummeriert, dass man durch Drehen des Senders (wenn die Unterseite zur Oberseite wird und umgekehrt) ihre Nummern erkennen kann. Autor: N.Zaets, Dorf Veidenevka, Gebiet Belgorod. Siehe andere Artikel Abschnitt Mikrocontroller. Lesen und Schreiben nützlich Kommentare zu diesem Artikel. Neueste Nachrichten aus Wissenschaft und Technik, neue Elektronik: Eine neue Möglichkeit, optische Signale zu steuern und zu manipulieren
05.05.2024 Primium Seneca-Tastatur
05.05.2024 Das höchste astronomische Observatorium der Welt wurde eröffnet
04.05.2024
Weitere interessante Neuigkeiten: ▪ integrierte Quantenschaltung ▪ Neue Echtzeit-Spektrumanalysatoren ▪ Android M OS wird die Akkulaufzeit von Smartphones verdoppeln ▪ Fotosensor HDSL-9000 zur Hinterleuchtung von LCD-Displays und Tastaturen News-Feed von Wissenschaft und Technologie, neue Elektronik
Interessante Materialien der Freien Technischen Bibliothek: ▪ Abschnitt der Website Wunder der Natur. Artikelauswahl ▪ Artikel Staat innerhalb eines Staates. Populärer Ausdruck ▪ Artikel Wo lebten die Menschen in der Steinzeit? Ausführliche Antwort ▪ Artikel Klempner. Standardanweisung zum Arbeitsschutz ▪ Artikel Unsichtbare und listige Schlange. physikalisches Experiment
Hinterlasse deinen Kommentar zu diesem Artikel: Alle Sprachen dieser Seite Startseite | Bibliothek | Artikel | Sitemap | Site-Überprüfungen www.diagramm.com.ua |