Μεταβλητή αντίσταση Proteus πώς να κινηθεί. Σύστημα προσομοίωσης ISIS Proteus

10.09.2021

Σίγουρα, πολλοί από τους αναγνώστες αυτού του ιστότοπου θα ήθελαν να αναπτύξουν και να συναρμολογήσουν ανεξάρτητα κάποιο είδος συσκευής στο AVR MK. Αλλά μπορεί να υπάρχουν πολλοί λόγοι για τους οποίους αυτό είναι δύσκολο να γίνει σε υλικό. Για παράδειγμα, ζώντας σε μια αγροτική περιοχή όπου δεν υπάρχουν καταστήματα ραδιοφώνου με μεγάλη ποικιλία εξαρτημάτων ραδιοφώνου. Αν και σε αυτή την περίπτωση, όπως πάντα, η ιστοσελίδα Ali Express έρχεται σε βοήθειά μας. Ή περιορισμοί προϋπολογισμού. Αυτό ισχύει ιδιαίτερα για μαθητές και φοιτητές που δεν έχουν ακόμη μόνιμη πηγήεισόδημα.

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

Θα αναλύσουμε ένα από αυτά, την έκδοση 7.7 του Proteus, σε αυτό το άρθρο σε σχέση με το έργο μας.

Τι μας δίνει αυτό το πρόγραμμα; Οι αρχάριοι θα πιστεύουν ότι είναι πολύ δύσκολο να το κατακτήσουν. Όχι, δεν είναι αλήθεια. Απλώς δεν θα χρησιμοποιήσουμε όλες τις λειτουργίες του προγράμματος κατά την εξομοίωση των πρώτων μας έργων. Μπορείτε να μάθετε τα βασικά του σε ένα ή δύο βράδια. Τι μας δίνει όσον αφορά την εκμάθηση πώς να δουλεύουμε με μικροελεγκτές; Εκεί, για παράδειγμα, υπάρχει μια οπτική αναπαράσταση της λειτουργίας των LED και των οθονών σε πραγματικό χρόνο. Μπορείτε να επιλέξετε να μιμηθείτε πολλούς τύπους μικροελεγκτών AVR, συμπεριλαμβανομένων αυτών στους οποίους θα βασιστούν τα μαθήματά μας: Tiny2313 και Mega8. Τι σημαίνει αυτό και πώς γίνεται; Γράφουμε τον κώδικα για το υλικολογισμικό μας, τον μεταγλωττίζουμε, παίρνουμε το αρχείο HEX που χρειαζόμαστε και εικονικά αναβοσβήνουμε το MK μας στο πρόγραμμα Proteus. Επιπλέον, μπορούμε επίσης να αλλάξουμε τα bit ασφαλειών του εικονικού μας MK.

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

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


Στη συνέχεια, πρέπει να επιλέξουμε από τη βιβλιοθήκη εκείνα τα στοιχεία ραδιοφώνου που χρειαζόμαστε για το έργο και να τα τοποθετήσουμε στη λίστα εξαρτημάτων. Μπορούμε στη συνέχεια να τα επιλέξουμε και να τα εγκαταστήσουμε στο πεδίο εργασίας. Στο έργο μας θα χρησιμοποιήσουμε ένα Attiny2313 MCU, ένα κίτρινο LED-YELLOW LED («λάμπει» καλά στο Proteus) και μια αντίσταση RES για να περιορίσουμε το ρεύμα που διαρρέει το LED. Διαφορετικά, όσο αστείο κι αν ακούγεται, θα «κάψουμε» το εικονικό LED :-).

Για να επιλέξουμε αυτά τα ραδιοστοιχεία, πρέπει να κάνουμε κλικ στο γράμμα "P":

Αφού κάνετε κλικ, θα εμφανιστεί το ακόλουθο παράθυρο:


Στο πεδίο "Mask" εισάγουμε αυτό που θέλουμε να βρούμε, δηλαδή, το MK, το LED και την αντίσταση μας


Πληκτρολογούμε «Tiny2313» στο πεδίο Μάσκα και κάνουμε κλικ στο MK που βρήκαμε στη στήλη «Αποτελέσματα (1)»:


Στη συνέχεια επαναλαμβάνουμε το ίδιο με την αντίσταση. Εισαγάγετε "res":


και αναζητήστε το LED με τον ίδιο τρόπο:


Λοιπόν, τώρα και τα τρία αυτά στοιχεία θα πρέπει να εμφανίζονται στη στήλη "Συσκευές":

Τώρα κάντε κλικ στο μαύρο βέλος και, στη συνέχεια, επιλέξτε το στοιχείο ραδιοφώνου που χρειαζόμαστε από τη λίστα:

Αριστερά στην κάθετη στήλη βλέπουμε το εικονίδιο «Τερματικό». Μας ενδιαφέρουν δύο γραμμές εκεί: Power και Ground. Αυτό είναι αντίστοιχα +5 volt τροφοδοτικό και γείωση στο κύκλωμά μας. Δεν υπάρχει ανάγκη παροχής ρεύματος στο MK, τροφοδοτείται αυτόματα.Για το διάγραμμα παίρνουμε μόνο το εικονίδιο «γείωσης».

Βγάζουμε όλα τα ραδιοστοιχεία στο πεδίο εργασίας


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


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

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

Κάντε δεξί κλικ στην αντίσταση και επιλέξτε Επεξεργασία ιδιοτήτων


Και μετά αλλάζουμε την τιμή σε 200 Ohms. Φτάνει που το εικονικό μας LED δεν έχει πεθάνει)


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

Παρεμπιπτόντως, θέλω να πω αμέσως ότι εάν έχουμε κάνει κάποια λανθασμένη ενέργεια, πρέπει απλώς να κάνουμε κλικ στο κουμπί "Ακύρωση" και τελευταία ενέργειαθα ακυρωθεί. Νομίζω ότι πολλοί το γνωρίζουν αυτό από προγράμματα τρίτων, αλλά ποτέ δεν ξέρεις).

Έτσι, δημιουργήσαμε ένα διάγραμμα. Τώρα πρέπει να ανεβάσουμε το υλικολογισμικό στον μικροελεγκτή μας και να δούμε πώς φαίνεται στη δράση. Για να γίνει αυτό πρέπει να κάνουμε κλικ δεξί κλικστο MK και κάντε κλικ στο εικονίδιο με την εικόνα ενός κίτρινου φακέλου στη στήλη Program Files. Παρεμπιπτόντως, εδώ μπορείτε να ρυθμίσετε τα bits ασφαλειών εάν είναι απαραίτητο (κάντε κλικ για μεγέθυνση της εικόνας):


Στη συνέχεια, πρέπει να επιλέξετε το αρχείο υλικολογισμικού με την επέκταση *.HEX και να κάνετε κλικ στο «Άνοιγμα». Όλα είναι έτοιμα, μπορείτε να μιμηθείτε το έργο.

(κάντε κλικ στην εικόνα για μεγέθυνση)


Για να ξεκινήσετε την εξομοίωση, πρέπει να πατήσετε το κουμπί «τρίγωνο» στην κάτω αριστερή γωνία του προγράμματος «Proteus»:


Θα ξεκινήσουμε την εξομοίωση. Θα δούμε το LED να αναβοσβήνει.Κάποια στιγμή, το LED μας θα ανάψει. Κοίτα πόσο έντονα καίει κίτρινο :-)


Και μετά θα ξανασβήσει:


Τώρα μπορούμε, αν θέλουμε, να αποθηκεύσουμε το έργο μας με οποιοδήποτε όνομα επιλέγοντας «Αποθήκευση έργου ως» και επίσης αν χρειάζεται να ανοίξουμε ένα ολοκληρωμένο αρχείο άλλου έργου επιλέγοντας «Άνοιγμα έργου»

Έτσι φαίνεται το εικονίδιο του αποθηκευμένου έργου στην επιφάνεια εργασίας:

Ελπίζω ότι εσείς, οι αναγνώστες, δεν θα δυσκολευτείτε να συναρμολογήσετε αυτό το έργο μόνοι σας και στο μέλλον, έχοντας αναβαθμίσει τις δεξιότητές σας, μπορείτε εύκολα να συναρμολογήσετε μόνοι σας οποιοδήποτε πιο περίπλοκο έργο. Έτοιμο έργοΓια Προγράμματα Proteus 7.7 και επισύναψε το υλικολογισμικό στο αρχείο.

Λοιπόν αυτό είναι! Ακολουθεί ένα βίντεο της λειτουργίας του κυκλώματος, καθώς και όλα τα στάδια της εξομοίωσης:

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

Το κύριο πλεονέκτημα και διαφορά μεταξύ του Proteus και άλλων παρόμοιων προγραμμάτων προσομοίωσης εργασίας ηλεκτρικά κυκλώματα, είναι η δυνατότητα προσομοίωσης της λειτουργίας μικροεπεξεργαστών και μικροελεγκτών (MCU). Η βιβλιοθήκη Proteus περιέχει τους ακόλουθους κύριους τύπους μικροελεγκτών: AVR, ARM, PIC, Cortex.

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

Η Proteus διαθέτει επίσης ενσωματωμένα εργαλεία για την αυτοματοποιημένη ανάπτυξη πλακετών τυπωμένων κυκλωμάτων και για τη δημιουργία τρισδιάστατων μοντέλων τους.

Για να προσομοιώσουμε το πρώτο μας πρόγραμμα, χρειαζόμαστε μόνο έναν μικροελεγκτή ATmega8, μια αντίσταση και ένα LED από τη βιβλιοθήκη.

Ρυθμίσεις Πρωτεύς 8.4

Οποιαδήποτε ρύθμιση ξεκινά με την εκκίνηση. Στο παράθυρο που εμφανίζεται, κάντε κλικ στο εικονίδιο μιας διόδου με πυκνωτή Σχηματική Λήψη(Σχεδίαση κυκλώματος).

Μετά από αυτό, θα ανοίξει ένα παράθυρο με ένα κενό πεδίο.

Τώρα ας προσθέσουμε τον μικροελεγκτή ATmega8, την αντίσταση και το LED.

Η προεπιλεγμένη λειτουργία έχει οριστεί στην κατάλληλη λειτουργία Λειτουργία εξαρτημάτωνΕπομένως, για να μεταβείτε στο μενού για την επιλογή ηλεκτρονικών και άλλων στοιχείων, απλώς κάντε κλικ στο κουμπί P που βρίσκεται στον πίνακα ΣΥΣΚΕΥΗ(συσκευή). Μετά από αυτό, θα ανοίξει ένα παράθυρο στο οποίο πρέπει να επιλέξετε από το μενού Κατηγορία(Κατηγορίες) IC μικροεπεξεργαστών(μικροεπεξεργαστές), σε Υποκατηγορία(Υποκατηγορίες) – Οικογένεια AVR. Στη συνέχεια στο παράθυρο Αποτελέσματαβρείτε και επιλέξτε MK ATMEGA8. Κάντε κλικ στο κουμπί ΕΝΤΑΞΕΙ.

Μετά από αυτό θα εμφανιστεί στο μενού παραθύρου ΣΥΣΚΕΥΗκαι μπορείτε ήδη να το σύρετε με το ποντίκι στην περιοχή εργασίας.

Ομοίως, προσθέστε μια αντίσταση και ένα LED.

Τα LED ανήκουν στην κατηγορία Οπτοηλεκτρονική(Οπτοηλεκτρονική) και περαιτέρω στην υποκατηγορία LED. ΣΕ σε αυτό το παράδειγμαεπιλέγεται πράσινο LED-ΠΡΑΣΙΝΟ.

Τώρα συναρμολογούμε το κύκλωμα, όπως φαίνεται στο παρακάτω σχήμα. Συνδέουμε την αντίσταση R1 στον πείρο του MK PC0, που συνδέεται στην άνοδο του LED D1. Συνδέουμε την κάθοδο του LED στη γείωση. Το στοιχείο "γείωση" βρίσκεται στο μενού καρτελών Λειτουργία τερματικών.

Για να αλλάξετε την τιμή αντίστασης της αντίστασης R1, πρέπει να κάνετε διπλό κλικ πάνω της. Στο παράθυρο που ανοίγει, ορίστε 300 Ohm στη γραμμή Αντίσταση(αντίσταση).

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

Εγγραφή προγράμματος στη μνήμη του μικροελεγκτή

Τώρα το μόνο που μένει είναι να γράψουμε τον κωδικό μας στο εικονικό MK. Κάντε διπλό κλικ πάνω του με το ποντίκι και στο νέο που εμφανίζεται, υποδείξτε τη διαδρομή προς το αρχείο με τον κωδικό. Βρείτε τη θέση του αρχείου κάνοντας κλικ στο εικονίδιο στη φόρμα ανοιχτό φάκελοστη σειρά Αρχείο προγράμματος.

Στον φάκελο του έργου βρίσκουμε τον φάκελο Εντοπισμός σφαλμάτωνκαι σε αυτό επιλέξτε ένα αρχείο με την επέκταση ΓΟΗΤΕΥΩ. Μετά από αυτό, πατήστε το κουμπί Ανοιχτό.

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

Ολοκληρωμένη προβολή του πρώτου μπλοκ του διαγράμματος,
που πρέπει να σχεδιαστεί.

Βεβαιωθείτε ότι είστε σε λειτουργίαστοιχείο (δηλαδή αυτό που επιλέγεταιεικονίδιο στοιχείου ) και ξεκινήστε κάνοντας κλικ στο 741 στον επιλογέα αντικειμένων. Θα πρέπει να δείτε ότι τα παράθυρα σύντομη επισκόπησηπάνω από τον διακόπτη έχει αλλάξει σε παράθυρο προεπισκόπησης της επιλεγμένης συσκευής. Τα παρακάτω στιγμιότυπα οθόνης δείχνουν την κατάσταση του επιλογέα αντικειμένου και του παραθύρου επισκόπησης μετά την επιλογή του στοιχείου 741.

· Το παράθυρο γρήγορης επισκόπησης εμφανίζει όχι μόνο μια προεπισκόπηση της συσκευής, αλλά και τον τρέχοντα προσανατολισμό της. Όταν περιστρέφετε ή αναστρέφετε ένα στοιχείο (χρησιμοποιώντας εικονίδιαΠεριστροφή και Αντανάκλαση ), η συσκευή αποδίδεται ξανά για προεπισκόπηση του νέου προσανατολισμού της. Η προεπισκόπηση της συσκευής παραμένει στο παράθυρο μέχρι να τοποθετηθεί ή να εκτελεστεί άλλη εντολή ή ενέργεια.

Τώρα μετακινήστε το ποντίκι σας στη μέση του παραθύρου επεξεργασίας και κάντε κλικ αριστερό κουμπί. Το περίγραμμα του op amp θα εμφανιστεί κάτω από το δείκτη του ποντικιού και θα το ακολουθήσετε καθώς μετακινείστε στο παράθυρο επεξεργασίας. Όταν πατήσετε ξανά το αριστερό κουμπί, το στοιχείο θα τοποθετηθεί στο διάγραμμα και θα σχεδιαστεί πλήρως. Δοκιμάστε αυτό τοποθετώντας τον ενισχυτή λειτουργίας κάπου στη μέση του παραθύρου επεξεργασίας.


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

Επιλέξτε τη συσκευή MINRES1K και τοποθετήστε μια αντίσταση από πάνω λειτουργικός ενισχυτής, όπως φαίνεται στο παραπάνω διάγραμμα. Πατήστε το αριστερό κουμπί μία φορά στο εικονίδιο αριστερόστροφης περιστροφής (φαίνεται παρακάτω). Σημειώστε ότι η προεπισκόπηση της αντίστασης στο παράθυρο Γρήγορης προβολής δείχνει ότι έχει περιστραφεί κατά 90°. Τέλος, τοποθετήστε τη δεύτερη (κάθετη) αντίσταση R2.


εικονίδια περιστροφής
(επιλέχτηκε η αριστερόστροφη περιστροφή).

Εάν δεν είστε αρκετά έμπειροι, είναι απίθανο να τοποθετήσετε τα στοιχεία όπως χρειάζεται στην πρώτη προσπάθεια, οπότε ας δούμε πώς να τα μετακινήσετε. Τα αντικείμενα στο ISIS επιλέγονται για περαιτέρω επεξεργασία με «επιλογή». Υπάρχουν διάφοροι τρόποι για να επιλέξετε ένα αντικείμενο στο ISIS:


Ένα δοχείο κατανομής που περιβάλλει τον ενισχυτή λειτουργίας.

Με τον ίδιο τρόπο, μπορείτε να αφαιρέσετε μια επιλογή (ή ένα σύνολο επιλογών) είτε κάνοντας αριστερό κλικ σε κενό χώρο είτε κάνοντας δεξί κλικ σε κενό χώρο και επιλέγοντας το στοιχείοΕκκαθάριση επιλογής(Διαγραφή επιλογής ) στο μενού περιβάλλοντος που εμφανίζεται.


Καταργήστε την επιλογή όλων των αντικειμένων
μέσω του μενού περιβάλλοντος.

Όταν επιλέγεται ένα στοιχείο, μπορεί να μετακινηθεί κρατώντας το αριστερό κουμπί του ποντικιού πάνω από το στοιχείο (ή στο ορθογώνιο επιλογής εάν χρησιμοποιείτε αυτή τη μέθοδο), μετακινώντας το ποντίκι στην επιθυμητή θέση και αφήνοντας το αριστερό κουμπί του ποντικιού. Ο κέρσορας του ποντικιού θα αλλάξει για να υποδείξει ότι το στοιχείο μπορεί να μετακινηθεί, όπως φαίνεται παρακάτω.


Μετακίνηση του επιλεγμένου op-amp.

Εναλλακτικά, μπορείτε να κάνετε δεξί κλικ σε ένα αντικείμενο και να χρησιμοποιήσετε την ενέργεια μεταφοράς και απόθεσης από το μενού περιβάλλοντος που εμφανίζεται.

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

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

Γενικά, υπάρχουν πολλά συστήματα μοντελοποίησης ηλεκτρονικά κυκλώματα. Από όλα αυτά που είδα μου άρεσαν περισσότερο MultisimΚαι ISIS Πρωτέας. Το Multisim έχει μια πολύ βολική διεπαφή και είναι βολικό να διορθώσετε αναλογικές συσκευές, επειδή σας επιτρέπει να χρησιμοποιείτε εικονικά (δηλαδή καθορίζετε μόνοι σας τις παραμέτρους) τρανζίστορ και ενισχυτές, αλλά δεν υποστηρίζει καθόλου πολύπλοκα συστήματα, όπως μικροελεγκτές ή διάφορους τύπους προγραμμάτων οδήγησης. Πιο συγκεκριμένα, υποστηρίζει, αλλά εξαιρετικά νωθρά. Μόλις πρόσφατα έχει προσθέσει υποστήριξη για τους αρχαίους AT89C2051και αρκετοί PIC'μικρό

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

Ζυγίζει περίπου τριάντα μέτρα στο αρχείο, η τελευταία έκδοση που γνωρίζω είναι 7.2 Απλά να έχετε κατά νου ότι η σπασμένη έκδοση του Proteus μερικές φορές λειτουργεί πολύ περίεργα, για παράδειγμα, βλέπετε τον κωδικό του επεξεργαστή, αλλά ο εντοπισμός σφαλμάτων δεν λειτουργεί και οι καταχωρητές έχουν αριστερές τιμές. Ψάξε λοιπόν προσεκτικά ;))))

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

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

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

Μια τεράστια λίστα στοιχείων που ξέρει ότι θα ανοίξει. Πρωτεύς. Οι βιβλιοθήκες συμπληρώνονται και ενημερώνονται συνεχώς, γι' αυτό αναζητήστε νέες λεπτομέρειες στο διαδίκτυο.
Βρείτε τον ελεγκτή στη λίστα AT89S51, για να μην μπερδεύεστε, χρησιμοποιήστε την αναζήτηση κατά λέξεις-κλειδιά- απλά πληκτρολογήστε " AT89«Θα δεις όλη την οικογένεια MSC-51περίφημος Πρωτεύς.

Επιλέξτε αυτό που χρειάζεστε και κάντε κλικ στο " ΕΝΤΑΞΕΙ" Στη συνέχεια, τοποθετήστε το τσιπ σε ένα κατάλληλο μέρος για εσάς. Επιτρέψτε μου να κάνω μια κράτηση αμέσως ότι τα μοντέλα των επεξεργαστών Πρωτεύςκάπως απλοποιημένο, επομένως δεν απαιτούν την παρουσία χαλαζία στο εικονικό κύκλωμα, ένα σύστημα επαναφοράς (ανύψωση ΕΠΑΝΑΦΟΡΑστο απαιτούμενο επίπεδο), η παρουσία σήματος προς χρήση εσωτερική μνήμη(+5 στην EA, δυνατότητα proc C51που μπορεί να εργαστεί από έξω ROM) και δεν πρέπει να το ξεχνάμε αυτό όταν τελικά κάνουμε ένα πραγματικό κύκλωμα, διαφορετικά, στο τέλος, μπορεί να χρειαστεί πολύς χρόνος για να αναζητήσουμε τον λόγο για ένα κύκλωμα που δεν λειτουργεί.

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

Η κύρια αθλιότητα της διεπαφής ΠρωτεύςΤο πρόβλημα είναι ότι το δεξί κλικ πάντα πρώτα επιλέγει και μετά διαγράφει το στοιχείο και το αριστερό κλικ τοποθετεί ένα νέο ίδιου τύπου. Είναι τρομερά ενοχλητικό, Multisimόλα έγιναν πολύ πιο βολικά και παραδοσιακά, αλλά, δυστυχώς, Multisimόχι τόσο ισχυρό.

Τώρα μετακινήστε τον κέρσορα στον πείρο χαλαζία και συνδέστε τον με τον πείρο XTAL1επεξεργαστή, κάνε το ίδιο με το δεύτερο σκέλος χαλαζία, μόνο αναμμένο XTAL2. Τώρα χρειαζόμαστε conders, πηγαίνετε ξανά στη βιβλιοθήκη και κοιτάξτε εκεί Πυκνωτές. Θα υπάρχει μια τεράστια λίστα με πραγματικούς Κόντερ, επιλέξτε ένα SMTπυκνωτή με χωρητικότητα περίπου 33 pF. Στο επάνω παράθυρο στα δεξιά θα υπάρχει η ονομασία του στο διάγραμμα και παρακάτω οι συνολικές διαστάσεις ή μάλλον τα μαξιλαράκια επαφής για τη σφράγισή του.

Παρεμπιπτόντως, κοιτάξτε το παράθυρο ακριβώς κάτω από τη γραμμή αναζήτησης. Βλέπεις τη γραμμή εκεί; Modeling Primitive? Υπάρχουν εικονικά πρωτόγονα εκεί. Δεν έχουν σώμα, οπότε κατά την καλωδίωση πλακέτα τυπωμένου κυκλώματοςθα εμφανιστεί ένα σφάλμα, αλλά αν δεν πρόκειται να καλωδιώσετε την πλακέτα, αλλά θέλετε απλώς να προσομοιώσετε το κύκλωμα, τότε είναι καλύτερα να το πάρετε - οι τιμές του μπορούν να αλλάξουν όπως θέλετε.

Κολλήστε δύο αγωγούς δίπλα στον χαλαζία και κρεμάστε τους στα πόδια του χαλαζία με έναν ακροδέκτη και συνδυάστε τον δεύτερο και κρεμάστε τους στο έδαφος. Πού να πάρετε γη? Καλή ερώτηση :). Ψάξτε στην αριστερή γραμμή εργαλείων για αυτά τα δύο πράγματα που μοιάζουν με ετικέτες, που ονομάζονται Λειτουργία τερματικού. Περάστε το, θα ανοίξει ένας πίνακας ακριβώς δίπλα του, στα αριστερά, όπου πρέπει να επιλέξετε μια γραμμή ΕΔΑΦΟΣαυτή είναι η γη. Εγκαταστήστε το όπου σας βολεύει. Εξουσίαστο ίδιο μέρος - αυτή είναι η τάση τροφοδοσίας του κυκλώματος. Συνήθως είναι κοινό, αλλά μερικές φορές μπορεί να υπάρχουν προβλήματα με το γεγονός ότι το κύκλωμα έχει πολλαπλή τροφοδοσία (όπως, για παράδειγμα, σε έναν υπολογιστή, υπάρχουν 5 και 12 και 3,3 βολτ και γενικά υπάρχουν πολλές διαφορετικές τάσεις) .

Στη συνέχεια, πρέπει να συναρμολογήσετε ένα κύκλωμα επαναφοράς. Ο Proteus δεν το χρειάζεται αυτό, έτσι κι αλλιώς θα λειτουργήσει κανονικά, αλλά το χρειάζεται ένα πραγματικό κύκλωμα. Αυτό γίνεται απλά. Τοποθετούμε αντίσταση και πυκνωτή. Όταν είναι ενεργοποιημένος, όταν ο πυκνωτής δεν είναι φορτισμένος, η αντίστασή του είναι μηδέν και η έξοδος RSTΠαρέχονται +5 βολτ, δηλ. λογικό 1, και μόλις φορτιστεί ο συμπυκνωτής, αυτό θα συμβεί σε μερικά χιλιοστά του δευτερολέπτου, τότε το πόδι μέσω της αντίστασης θα βρίσκεται στο έδαφος, και αυτό είναι ένα πραγματικό λογικό μηδέν και το ποσοστό θα ξεκινήσει σε κανονική λειτουργία.

Κάντε τα πάντα όπως στην εικόνα και αρχίστε να συνδέετε κουμπιά στη συσκευή μας. Είναι καλύτερα να κρεμαστείτε στη θύρα 1. Γιατί; Και δεν χρειάζονται πρόσθετες αντιστάσεις. Το γεγονός είναι ότι στη θύρα C51 το 0 είναι κατασκευασμένο με τη δυνατότητα εργασίας στο δίαυλο δεδομένων, πράγμα που σημαίνει ότι έχει τη λεγόμενη κατάσταση Z. Αυτό συμβαίνει όταν η έξοδος δεν είναι ούτε 1 ούτε 0, υπάρχει υψηλή αντίσταση (σύνθετη αντίσταση), σχεδόν ένα σπάσιμο, αλλά η θύρα μπορεί να μυρίσει το λεωφορείο χωρίς προειδοποίηση αυτήν τη στιγμή για τις τιμές που πετούν εκεί, χωρίς να υποχωρήσει ή να παρεμβαίνει με άλλες συσκευές.

Η θύρα 3 είναι αναρτημένη με όλα τα είδη πρόσθετων περιφερειακών και η θύρα 2 δεν βρίσκεται πολύ βολικά στο μοντέλο proteus. Επομένως, χρησιμοποιούμε τη θύρα 1 :))))). Αναζητήστε κάποιο διακόπτη ή κουμπί στη βιβλιοθήκη. Μου αρέσει το στοιχείο του κουμπιού, γι' αυτό το χρησιμοποιώ. Θα βάλω τέσσερα κουμπιά και θα τα κρεμάσω στις καρφίτσες P1.0, P1.2, P1.4, P1.6 και θα βάλω τις άλλες ακίδες του κουμπιού μαζικά στο έδαφος. Πώς θα λειτουργήσει;

Είναι απλό! Πρώτα, βγάζω ένα στη θύρα για όλες τις εξόδους. Τα πόδια από το εσωτερικό τραβούν αμέσως επάνω στη λογική μονάδα. Τώρα, για να διαβάσουμε τα δεδομένα, αρκεί να πάρουμε την τιμή από τον καταχωρητή της θύρας P1, και αν πατήσουμε κάποιο από τα κουμπιά, τότε αυτό το πόδι είναι σταθερά τοποθετημένο στο έδαφος, υπερισχύοντας το εσωτερικό pull-up σε ένα . Εκείνοι. το πατημένο κουμπί δίνει ένα μηδέν στο bit του στη θύρα. Αυτή είναι η αρχή της ανίχνευσης ενός πατήματος κουμπιού σε όλους τους μικροελεγκτές. Συνιστώ επίσης ανεπιφύλακτα να παρακάμψετε τα κουμπιά με πυκνωτές 40pF - δεν θα υπάρχουν ψευδείς συναγερμοί από παλμικό θόρυβο.

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

Προτιμώ να περιποιούμαι τον εαυτό μου με τους αγαπημένους μου UARTωμ Με άλλα λόγια, ένα τερματικό. Ας πάμε στην ενότητα εικονικά όργανα. Αναζητήστε ένα εικονίδιο με μια σχεδιασμένη συσκευή βέλους στην αριστερή γραμμή εργαλείων και μεταβείτε εκεί. Θα έχετε μια λίστα με όλα τα σκουπίδια που μπορείτε να χρησιμοποιήσετε. Εδώ έχετε ένα βολτόμετρο, ένα αμπερόμετρο, έναν παλμογράφο, έναν ψηφιακό αναλυτή και διάφορα εξαιρετικά εξειδικευμένα gadget όπως μια οθόνη πρωτοκόλλου SPIή I2C. Για διασκέδαση, πάρτε έναν παλμογράφο ( παλμοσκόπιο) και κρεμάστε το με ένα κανάλι στην έξοδο TxD. Χρειαζόμαστε επίσης Εικονικό Τερματικό. Επιλέξτε το και επικολλήστε το στο διάγραμμα. Τώρα συνδέστε τις εξόδους του με τις εξόδους του επεξεργαστή, σταυρωτά. Rx με Tx, Tx με Rx.

Ετοιμος! Λοιπόν, για απόλυτη ευτυχία, βάλτε ένα άλλο LED στη θύρα P2. Πώς να συνδέσετε LED στις θύρες του επεξεργαστή; Ναι, πολύ απλό! Κρεμάτε το συν του LED στο τροφοδοτικό και το μείον στην αντίσταση, και αυτή η αντίσταση βρίσκεται ήδη στην έξοδο του επεξεργαστή. Για να ανάψετε τη δίοδο, πρέπει να εξάγετε 0 σε αυτό το πόδι.

Τότε η διαφορά τάσης μεταξύ της τάσης τροφοδοσίας και της μηδενικής τάσης στο πόδι θα είναι μέγιστη και η δίοδος θα καεί. Αναζήτηση σε εξαρτήματα LEDΛοιπόν, βάλε το όπως σου είπα. Πιθανότατα έχω ήδη παρατηρήσει ότι πιο συχνά ορίζουμε ή ορίζουμε ένα συμβάν με μηδέν, παρά με ένα. Αυτό οφείλεται στο γεγονός ότι είναι πιο εύκολο να πιέσετε το μηδέν παρά να τραβήξετε τα πόδια προς τα πάνω. Αλλά αυτό δεν συμβαίνει πάντα, για παράδειγμα, οι ελεγκτές της οικογένειας AVRΞέρουν πώς να ρυθμίζουν τα πόδια τους σφιχτά τόσο στο μηδέν όσο και στην τάση τροφοδοσίας, ώστε να μπορείτε να ανάψετε τη δίοδο εκεί με ένα. Για να το κάνετε αυτό, θα χρειαστεί να το αναποδογυρίσετε και να το κρεμάσετε με το άλλο άκρο μέσω μιας αντίστασης Εξουσία, και στο έδαφος.

Έτσι, σχεδιάσαμε το μέρος του υλικού. Ήρθε η ώρα να ξεκινήσετε τη ρύθμιση και τον εντοπισμό σφαλμάτων.

Επιλέξτε τον μικροελεγκτή και κάντε διπλό κλικ πάνω του, θα ανοίξει το παράθυρο ιδιοτήτων.
Πακέτο PCB- αυτός είναι ο τύπος περιβλήματος, είναι σημαντικό κατά την τοποθέτηση της πλακέτας τυπωμένου κυκλώματος. Ας είναι DIL40

Αρχείο προγράμματος– αυτό είναι το πραγματικό αρχείο υλικολογισμικού. Εδώ πρέπει να εισαγάγετε τη διαδρομή προς το αρχείο hex.

Συχνότητα ρολογιού– η συχνότητα με την οποία θα λειτουργεί ο επεξεργαστής.

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

Κάντε κλικ στο κουμπί με το εικονίδιο Παιχνίδισαν σε μαγνητόφωνο. Όλα είναι απλά εδώ, χωρίς επιπλοκές. Θα σημειώσω μόνο ότι η λειτουργία βήμα προς βήμα είναι απλώς μια διακοπτόμενη εκκίνηση με μια μικρή χρονική καθυστέρηση. Για τον εντοπισμό σφαλμάτων, πρέπει να χρησιμοποιήσετε τον εντοπισμό σφαλμάτων κώδικα.

Τώρα το σχέδιό σας λειτουργεί. Μπορείτε να παρατηρήσετε τις διαδικασίες που λαμβάνουν χώρα σε αυτό. Εάν επιλέξετε το βολτόμετρο στη γραμμή εργαλείων, θα δείτε την τάση ή μπορείτε να μετρήσετε το ρεύμα εάν χρησιμοποιήσετε το αμπερόμετρο. Τα χρωματιστά τετράγωνα που ανάβουν στα πόδια του επεξεργαστή είναι λογικά επίπεδα. Το μπλε είναι μηδέν, γνωστό και ως γη. Το κόκκινο είναι λογικό, και το γκρι είναι μια υψηλή σύνθετη αντίσταση, γνωστός και ως Hi-Z.

Κατ 'αρχήν, αυτό είναι ήδη αρκετό για τον εντοπισμό σφαλμάτων στη λειτουργία της συσκευής. Τι, κάνουμε εντοπισμό σφαλμάτων στο πρόγραμμα Keil uVision(αν μιλάμε για C51) ή σε AVR Studio , μεταγλωττίστε και δείτε τι συμβαίνει. Αυτό λειτουργεί εξαιρετικά σε απλές συσκευές με ένα χειριστήριο και μια πλεξούδα.

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

Προσθήκη της πηγής.
Μεταβείτε στο μενού και αναζητήστε το αντικείμενο εκεί Πηγήκαι του χτύπησα με τόλμη με ένα ακλόνητο χέρι. Επιλέγω Προσθήκη/Αφαίρεση πηγήςκαι προσθέστε την πηγή. Σας συμβουλεύω αμέσως, για να μην γίνει ανόητος ο μεταγλωττιστής, οι πηγαίοι κώδικες πρέπει να ακολουθούνται σε απλά μονοπάτια, χωρίς κενά και ρωσικά γράμματα. Για παράδειγμα, όπως το δικό μου: " d:\coding\C51\hack_2.asm"Κατά την προσθήκη της πηγής, μην ξεχάσετε να υποδείξετε τον μεταγλωττιστή με τον οποίο θα πρέπει να μεταγλωττιστεί. Για αυτή την περίπτωση στο «Εργαλεία δημιουργίας κώδικα»πρέπει να αναφέρει " ASEM51”, δηλαδή ο μεταγλωττιστής αρχιτεκτονικής MCS-51.

Κλικ ΕΝΤΑΞΕΙκαι στο μενού ΠηγήΘα εμφανιστεί ένα άλλο στοιχείο - προστέθηκε αρχείο προέλευσης, επιλέγοντας το οποίο θα ανοίξει αυτόματα ο επεξεργαστής και μπορείτε να διορθώσετε γρήγορα το κείμενο του προγράμματος.

Ρυθμίσεις μεταγλωττιστή.
Μεταβείτε ξανά στο μενού Πηγήκαι αναζητήστε το αντικείμενο " Ορισμός Εργαλείων Δημιουργίας Κώδικα” είναι επιλογές μεταγλωττιστή. Αρχικά διαμορφώνονται στραβά - στο " Φτιάξε κανόνες"τρυπώ στη γραμμή" Γραμμή εντολών” και βγάλτε όλα τα σκουπίδια που υπάρχουν. Απλά αφήστε το “%1 ” χωρίς εισαγωγικά. ASEM51έξυπνη μόλυνση, θα προσθέσει ο ίδιος απαραίτητα αρχείαμε περιγραφές μητρώων και μεταβλητών, ειδικά αφού ολόκληρη η οικογένεια MCS-51όλες οι διευθύνσεις είναι ίδιες.

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

Εκτόξευση
Εκκινήστε το κύκλωμα με ένα κουμπί Παιχνίδιστον κάτω πίνακα και πατήστε αμέσως είτε την παύση είτε τη λειτουργία βήμα προς βήμα. Ένα παράθυρο με τον κωδικό του προγράμματος θα πρέπει να ανοίξει αμέσως, όπως ακριβώς στο πρόγραμμα εντοπισμού σφαλμάτων που γνωρίζετε ήδη. Εάν δεν ανοίξει, μπορείτε να το βρείτε στο μενού Εντοπισμός σφαλμάτων -> 8051CPU -> Πηγαίος κώδικας - U1

Θα υπάρχουν επίσης πολλά άλλα χρήσιμα πράγματα, όπως τα περιεχόμενα των καταχωρητών του επεξεργαστή ή της μνήμης προγραμμάτων/δεδομένων.

Κόκκινο τρέξιμο φίλε– εκκίνηση του κώδικα για εκτέλεση.
Πηδώντας το πόδι πάνω από μια βλακεία– εκτέλεση με διαδικασίες παράβλεψης
Πόδι με κάτω βέλος– ακολουθήστε μια οδηγία, κάντε ένα βήμα.
Πόδι με επάνω βέλος– έξοδος από την υπορουτίνα.
Πόδι και βέλος προς τα εμπρός– εκτέλεση στον κέρσορα.
Κύκλοι με βέλη– ρύθμιση/αφαίρεση/απενεργοποίηση σημείων διακοπής Σημείων διακοπής. Ένα σημείο διακοπής είναι ένα μέρος σε ένα πρόγραμμα όπου το πρόγραμμά σας θα σταματήσει και θα προχωρήσει μόνο με τη συγκατάθεσή σας - κάτι απαραίτητο στον εντοπισμό σφαλμάτων.


Όταν προσθέτετε έναν δεύτερο επεξεργαστή στο έργο, ο κωδικός, οι καταχωρητές και η μνήμη του θα υπάρχουν, αλλά θα κληθεί Πηγαίος κώδικας – U2και ούτω καθεξής.
Επιπλέον, στον κατάλογο Πρωτεύςυπάρχει ένας φάκελος ΔΕΙΓΜΑΤΑΕδώ είναι ένα σωρό διαφορετικά παραδείγματα, πολύ περίπλοκα, που δείχνουν τις δυνατότητες του συστήματος ISIS Πρωτέας.

ZY
Έγραψα αυτό το άρθρο για το περιοδικό Hacker. Σε ελαφρώς διαφορετική μορφή (λίγο πιο αναλυτική) δημοσιεύτηκε στο περιοδικό για τον Δεκέμβριο του 2007.