Mikrocontrollerschaltungen

Mikrocontrollerschaltungen

Jump to TINA Main Page & General Information 

TINA unterstützt viele (PIC, AVR, Arduino, 8051, HCS, STM, ARM, Ti-Tiva, Ti-Sitara, Infineon-XMC) Mikrocontroller; Neue MCUs werden ständig hinzugefügt. Sie können das im Prozessor ausgeführte Programm anzeigen, ändern und debuggen, und Sie können selbstverständlich Ihren eigenen Code erstellen.

Es gibt zwei Möglichkeiten, das Programm für Mikrocontroller in TINA bereitzustellen. Sie können den Binärcode und die Debug-Datei verwenden, die von einem Standard-Compiler (z. B. MPLAB für PICs) erstellt wurden, oder Sie können Ihren Assemblycode einfach laden, um ihn in TINA auszuführen und zu debuggen, indem Sie den eingebauten Assembler-Debugger verwenden.

Erstellen einer einfachen Zählerschaltung mit einem PIC-Mikrocontroller mit Assembler-Programmierung

Erstellen einer einfachen Zählerschaltung unter Verwendung eines PIC-Mikrocontrollers mit Programmierung in C-Sprache

Grundlegendes Mikrocontroller-Debugging mit TINA

In TINA können Mikrocontroller nicht nur alleine, sondern auch zusammen mit analogen, digitalen, HDL- oder anderen Modellen simuliert werden.

MCU-Code ausführen und bearbeiten

Laden Sie den PIC Flasher.TSC-Kreislauf aus dem Ordner ExamplesMicrocontrollersPic.

Das folgende Schema, das den Mikrocontroller 16F73 PIC verwendet, wird mit dem Mikrocontroller 16F73 PIC angezeigt:

Mikrocontroller-Schaltungen, Bild 1

Diese Schaltung zählt einfach vorwärts. Drücken Sie die um zu sehen, wie es funktioniert.

Die Anzeige sollte einen Schritt nach vorne gehen.

Doppelklicken Sie auf die MCU, um den darin enthaltenen ASM-Code anzuzeigen. (Weitere Einzelheiten finden Sie in der Kurzanleitung).

TINA verfügt über eine großartige Funktion, mit der Sie den Quellcode direkt in TINA bearbeiten und ändern können.

Nehmen wir die folgenden Änderungen im Code vor:

Ändern Sie die Anweisung (oben ausgewählt) in Zeile 25 (Sie können die Zeilennummer in der rechten unteren Ecke des Code-Editor-Fensters sehen):

von addlw 01H

02H hinzufügen

Speichern Sie den geänderten Code in TINA, indem Sie die Taste drücken Symbol und schließen Sie die geöffneten MCU-Fenster.

Wenn Sie die Taste Taste jetzt, wird das Inkrement 2 sein!

Beachten Sie, dass der geänderte Code automatisch in der TINA-Datei .TSC gespeichert wird.

Verwenden des Debuggers

Sehen wir uns eine andere Anwendung mit mehr Interaktivität an.

Laden Sie das PIC16F84interrupt_rb0.TSC-Beispiel für TINA aus dem Ordner ExamplesMicrocontrollersPic.

Drücken Sie die Taste Taste. Es scheint zunächst nichts zu passieren.

Wenn Sie jedoch auf den Schalter SW-HL1 klicken, wird die Anzeige jedes Mal um 1 weitergeschaltet, wenn der Schalter von Low auf High wechselt.

Die Interrupt-Handling-Funktion des PIC ermöglicht uns die Erkennung von Schalteränderungen.

Lassen Sie uns nun die Operation mit dem interaktiven ASM-Debugger von TINA genauer betrachten.

Um den Debugger zu aktivieren, wählen Sie Option im Menü Analyse. Setzen Sie dann das Kontrollkästchen "MCU-Code-Debugger aktivieren", wie im Dialogfeld "Analyseoptionen" unten gezeigt.

Drücken Sie die OK-Taste. Der MCU-Debugger wird angezeigt:

Folgen Sie der Programmausführung Schritt für Schritt, indem Sie die Taste drücken Schaltfläche "In verfolgen".

Nach ungefähr 14-Klicks gelangen wir zum PT1: Label, wo sich das Programm in einer Endlosschleife befindet.

PT1: INCF TEMP, F GOTO PT1

Klicken Sie nun auf den Schalter SW-HL1 und ändern Sie ihn auf Hoch. (Sie sollten klicken, wenn sich der Cursor in einen nach oben zeigenden Pfeil Î ändert). Gehen Sie zurück zum Debugger und klicken Sie auf Gehe zweimal in die Taste. Das Programm erkennt den Interrupt und springt in den


NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT

Erhöhen Sie den COUNTER und kopieren Sie ihn in PORT A. Die Ausgabe wird 1 sein. Danach kehrt das Programm bei PT1 zur "Endlosschleife" zurück.

Bearbeiten des Codes im Debugger

Nehmen wir nun eine kleine Änderung im Programm vor, um die Verwendung des Debuggers zu demonstrieren. Duplizieren Sie die INCF COUNTER, F-Anweisung mit Copy and Paste wie folgt:

        INT_SERV:
        INCF COUNTER, F 
        INCF COUNTER, F 
        MOVF COUNTER, 0
        MOVWF PORTA    

Jetzt, wenn Sie die Taste drücken Das Programm wird fragen:

Drücken Sie Ja und dann erneut drücken. Jetzt ist das Inkrement 2 bei jeder Änderung von Low-High des Schalters.

Sie können den Stromkreis auch im Dauerbetrieb des Debuggers überprüfen, indem Sie auf drücken klicken.

Auch wenn der Debugger schnell ausgeführt wird, können Sie den "Endloszyklus" und dann den Sprung zum Interrupt-Serverteil (INT_SERV:) sehen, wenn Sie den Schalter wechseln.

Haltepunkt setzen

Im Schritt-für-Schritt-Modus ist es oft unmöglich, an eine bestimmte Stelle im Programm zu gelangen. Selbst wenn Sie geduldig genug sind, um in tausend Schritten vorzugehen, kann es sein, dass Sie mit dem Programmablauf nicht dorthin gelangen, wo Sie möchten.

Um an einer bestimmten Zeile anzuhalten, können Sie die Zielanweisung markieren, indem Sie einen „Haltepunkt“ setzen.

Führen Sie das Programm im kontinuierlichen Modus des Debuggers mit der Taste aus Führen Sie den Befehl aus und das Programm stoppt an der gewünschten Zeile, bevor Sie den markierten Befehl ausführen.

Um dies zu demonstrieren, klicken Sie auf die Inkrement-Anweisung in unserem Interrupt-Server nach der Bezeichnung INT_SERV: und drücken Sie die Umschaltknopf Pause.

Drücken Sie jetzt die Taste Schaltfläche "Ausführen" Das Programm beginnt in einem „unendlichen Zyklus“ zu laufen.

Obwohl Sie einen Haltepunkt festgelegt haben, wird die Codeausführung nicht angehalten, da der Haltepunkt nicht erreicht wird. Wenn Sie jedoch den Schalter von Niedrig auf Hoch stellen, stoppt das Programm bei der markierten Anweisung:

   INT_SERV:
             INCF COUNTER, F

Jetzt können Sie entweder Schritt für Schritt fortfahren oder im Run-Modus