Κύκλωμα μικροελεγκτή

Κύκλωμα μικροελεγκτή

Jump to TINA Main Page & General Information 

Η TINA υποστηρίζει πολλά (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) μικροελεγκτές. νέες μονάδες MCU προστίθενται συνεχώς. Μπορείτε να δείτε, να τροποποιήσετε και να διορθώσετε το πρόγραμμα που εκτελείται στον επεξεργαστή και βεβαίως μπορείτε να δημιουργήσετε τον δικό σας κώδικα.

Υπάρχουν δύο τρόποι παροχής του προγράμματος για μικροελεγκτές στην TINA. Μπορείτε να χρησιμοποιήσετε τον δυαδικό κώδικα και το αρχείο εντοπισμού σφαλμάτων που γίνεται από έναν τυπικό μεταγλωττιστή (π.χ. MPLAB για PIC) ή μπορείτε απλώς να φορτώσετε τον κωδικό συναρμολόγησης για να τρέξετε και να εντοπίσετε σφάλματα στο TINA χρησιμοποιώντας το built-in assembler-debugger.

Δημιουργία ενός απλού κυκλώματος μετρητή χρησιμοποιώντας μικροελεγκτή PIC με προγραμματισμό γλώσσας συναρμολόγησης

Δημιουργία ενός απλού κυκλώματος μετρητή χρησιμοποιώντας μικροελεγκτή PIC με προγραμματισμό γλώσσας C

Βασική αποσφαλμάτωση μικροελεγκτή χρησιμοποιώντας TINA

Στους μικροελεγκτές TINA μπορούν να προσομοιωθούν όχι μόνο μεμονωμένα, αλλά και μαζί με αναλογικά, ψηφιακά, HDL ή άλλα μοντέλα.

Εκτέλεση και επεξεργασία κώδικα MCU

Τοποθετήστε το κύκλωμα PIC Flasher.TSC από το φάκελο ExamplesMicrocontrollersPic.

Το παρακάτω σχήμα με τη χρήση του μικροελεγκτή PIC 16F73 θα εμφανιστεί με τον μικροελεγκτή PIC 16F73:

Κύκλωμα μικροελεγκτή, εικόνα 1

Αυτό το κύκλωμα απλώς μετρά μπροστά ένα προς ένα. Πάτα το για να δείτε πώς λειτουργεί.

Η οθόνη θα πρέπει να προχωρήσει προς τα εμπρός μία προς μία.

Κάντε διπλό κλικ στο MCU για να δείτε τον κώδικα ASM σε αυτό. (δείτε περισσότερες λεπτομέρειες στο εγχειρίδιο γρήγορης εκκίνησης).

Το TINA διαθέτει ένα εξαιρετικό χαρακτηριστικό το οποίο μπορείτε να επεξεργαστείτε και να αλλάξετε τον πηγαίο κώδικα απευθείας στο TINA.

Αφήνει να γίνει η ακόλουθη αλλαγή στον κώδικα:

Αλλάξτε την εντολή (επιλεγμένη παραπάνω) στη γραμμή 25 (μπορείτε να δείτε τον αριθμό γραμμής στην κάτω δεξιά γωνία του παραθύρου επεξεργασίας κώδικα):

από την προσθήκη 01H

να προσθέσετε 02H

Αποθηκεύστε τον αλλαγμένο κωδικό στην TINA πιέζοντας το εικονίδιο και κλείστε τα ανοιχτά παράθυρα του MCU.

Αν πατήσετε το κουμπί κουμπί τώρα, η αύξηση θα είναι 2!

Σημειώστε ότι ο αλλαγμένος κώδικας θα αποθηκευτεί αυτόματα στο αρχείο TINA .TSC.

Χρησιμοποιώντας το πρόγραμμα εντοπισμού σφαλμάτων

Ας δούμε μια άλλη εφαρμογή με περισσότερη διαδραστικότητα.

Τοποθετήστε το παράδειγμα PIC16F84interrupt_rb0.TSC του TINA από το φάκελο ExamplesMicrocontrollersPic.

Πατήστε το κουμπί κουμπί. Φαίνεται αρχικά ότι δεν συμβαίνει τίποτα.

Ωστόσο, αν κάνετε κλικ στον διακόπτη SW-HL1., Η οθόνη θα προχωρήσει προς τα εμπρός με το 1 κάθε φορά που ο διακόπτης αλλάζει από χαμηλό σε υψηλό.

Η δυνατότητα χειρισμού διακοπών του PIC θα μας επιτρέψει να εντοπίσουμε τις αλλαγές των διακοπτών.

Τώρα ας δούμε τη λειτουργία με περισσότερη λεπτομέρεια χρησιμοποιώντας τον διαδραστικό ASM debugger της TINA.

Για να ενεργοποιήσετε το πρόγραμμα εντοπισμού σφαλμάτων, επιλέξτε Επιλογή στο μενού Ανάλυση. Στη συνέχεια, ορίστε το πλαίσιο ελέγχου "Ενεργοποίηση του εντοπισμού σφαλμάτων κώδικα MCU", όπως φαίνεται παρακάτω στο παράθυρο διαλόγου "Επιλογές ανάλυσης".

Πατήστε το κουμπί OK και θα εμφανιστεί το εργαλείο εντοπισμού σφαλμάτων MCU:

Ακολουθήστε την εκτέλεση του προγράμματος βήμα-βήμα πατώντας το Εντοπισμός στο κουμπί.

Μετά από περίπου κλικ 14 φτάνουμε στην ετικέτα PT1: όπου το πρόγραμμα φαίνεται να βρίσκεται σε απεριόριστο βρόχο.

PT1: INCF TEMP, F GOTO PT1

Τώρα κάντε κλικ στον διακόπτη SW-HL1 και αλλάξτε το σε High. (Θα πρέπει να κάνετε κλικ όταν ο κέρσορας αλλάξει σε ένα βέλος που δείχνει προς τα πάνω Î). Επιστρέψτε στο Debugger και κάντε κλικ στο Πατήστε το κουμπί Trace Into δύο φορές. Το πρόγραμμα θα αναγνωρίσει τη διακοπή και θα μεταβεί στο


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

αυξήστε το COUNTER και αντιγράψτε στο PORT A και η έξοδος θα είναι 1. Μετά από αυτό το πρόγραμμα θα επιστρέψει στο "άπειρο βρόχο" στο PT1.

Επεξεργασία του κώδικα στο πρόγραμμα εντοπισμού σφαλμάτων

Τώρα ας κάνουμε μια μικρή αλλαγή στο πρόγραμμα για να καταδείξουμε τη χρήση του προγράμματος εντοπισμού σφαλμάτων. Αντιγράψτε την εντολή INCF COUNTER, F χρησιμοποιώντας Αντιγραφή και Επικόλληση όπως παρακάτω:

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

Τώρα όταν πατάτε το το πρόγραμμα θα ρωτήσει:

Πατήστε Ναι και πατήστε το κουμπί πατήστε ξανά το κουμπί. Τώρα η προσαύξηση θα είναι 2 σε κάθε αλλαγή Low-High του διακόπτη.

Μπορείτε επίσης να ελέγξετε το κύκλωμα στη συνεχή λειτουργία λειτουργίας του εργαλείου εντοπισμού σφαλμάτων πατώντας το πλήκτρο κουμπί.

Παρόλο που το πρόγραμμα εντοπισμού σφαλμάτων θα τρέξει γρήγορα, εξακολουθείτε να βλέπετε τον "άπειρο κύκλο" και μετά το άλμα στο τμήμα του διακομιστή διακοπής (INT_SERV:) όταν αλλάζετε το διακόπτη.

Κάνοντας ένα σημείο διακοπής

Χρησιμοποιώντας τη λειτουργία βήμα προς βήμα, είναι συχνά αδύνατο να φτάσετε σε ένα συγκεκριμένο σημείο του προγράμματος. Ακόμα κι αν είστε αρκετά υπομονετικοί για να προχωρήσετε σε χίλια βήματα, η ροή του προγράμματος μπορεί να μην σας επιτρέψει να κάνετε βήματα όπου θέλετε.

Για να σταματήσετε σε συγκεκριμένη γραμμή, μπορείτε να επισημάνετε τη δήλωση στόχου ρυθμίζοντας ένα "σημείο διακοπής".

Εκτελέστε το πρόγραμμα στη συνεχή λειτουργία του εργαλείου εντοπισμού σφαλμάτων χρησιμοποιώντας το Εκτελέστε εντολή και τώρα το πρόγραμμα θα σταματήσει στην επιθυμητή γραμμή πριν εκτελέσει την επιλεγμένη εντολή.

Για να το επιδείξετε, κάντε κλικ στην εντολή αύξησης στο διακομιστή διακοπής μας μετά την ετικέτα INT_SERV: και πατήστε το Εναλλαγή κουμπιού διακοπής.

Τώρα πατήστε το Κουμπί εκτέλεσης. Το πρόγραμμα αρχίζει να τρέχει σε "άπειρο κύκλο".

Παρόλο που έχετε ορίσει ένα σημείο διακοπής, η εκτέλεση κώδικα δεν θα σταματήσει επειδή δεν φτάνει ποτέ στο σημείο διακοπής. Ωστόσο, όταν αλλάζετε το διακόπτη από χαμηλό σε υψηλό, το πρόγραμμα θα σταματήσει στη δηλωμένη δήλωση:

   INT_SERV:
             INCF COUNTER, F

Τώρα μπορείτε να συνεχίσετε είτε βήμα προς βήμα ή στη λειτουργία Εκτέλεση