Ο PIC μπορεί να πραγματοποιήσει διάφορες λειτουργίες,
εκτελώντας τις εντολές που διαβάζει από την μνήμη προγράμματος (program
memory). Η πρώτη εντολή που εκτελείται μετά την
εφαρμογή της τάσης τροφοδοσίας, είναι αυτή που θα είναι αποθηκευμένη στην
διεύθυνση 0 (0000h). Εάν η εντολή πήγαινε GOTO (νέα διεύθυνση)
βρεθεί εκεί, ο μικροεπεξεργαστής θα συνεχίσει την εκτέλεση των εντολών
που θα βρει, στην νέα διεύθυνση.
Σύνταξη
εντολών (Κώδικας), σημαίνει να βάλετε σε σειρά τις λειτουργίες που πρέπει
να κάνει ο μικροεπεξεργαστής και να τον οδηγήσετε μέσο των εντολών στην
πραγματοποίηση τους. Για αυτό θα πρέπει πριν ξεκινήσετε να γράφετε κώδικα,
να έχετε αποφασίσει τι ακριβώς θέλετε να κάνετε και να έχετε ετοιμάσει το
διάγραμμα ροής προγράμματος (Block Diagram).
Παρακάτω θα δείτε ένα παράδειγμα
γραφής κώδικα.
Processing flow - Γραφή κώδικα
& ροή προγράμματος
Η εκτέλεση των εντολών μετά την εφαρμογή της τάσης
τροφοδοσίας ξεκινά από την διεύθυνση 0 (0000h). Σε πραγματικό πρόγραμμα (κώδικα) υπάρχει ακολουθία εντολών
αρχικοποίησης (initialization), εδώ την παρακάμπτουμε για να γίνει
σύντομο το παράδειγμα και θα αναφερθούμε αναλυτικά
αργότερα.
 |
| Διεύθυνση μνήμης |
Οδηγία |
Εντολή |
|
|
|
| 0000h |
Μηδένισε το περιεχόμενο του καταχωρητή
0Ch |
CLRF 0Ch |
| 0001h |
Αύξησε το περιεχόμενο του κατά ένα,
αποθήκευσε στον ίδιο |
INCF 0Ch,1 |
| 0002h |
Πήγαινε στην διεύθυνση 0001h, εκτέλεσε
την εντολή που θα βρεις |
GOTO
0001h | | |
Οι εντολές που θα γραφτούν στην μνήμη
προγράμματος μετά τον προγραμματισμό του μικροεπεξεργαστή είναι οι
παρακάτω:
 |
| Διεύθυνση μνήμης |
Εντολές |
Σχόλια |
|
|
|
| 0000h |
 |
Τα κόκκινα ψηφία είναι η
εντολή CLRF. Τα πράσινα ψηφία
είναι η διεύθυνση του καταχωρητή 0Ch. |
| 0001h |
 |
Τα κόκκινα ψηφία είναι η
εντολή INCF Το μπλε ψηφίο είναι
αποθήκευση αποτελέσματος στον 0Ch. Τα πράσινα ψηφία είναι η διεύθυνση του καταχωρητή
0Ch |
| 0002h |
 |
Τα κόκκινα ψηφία είναι η
εντολή GOTO. Τα πράσινα ψηφία
είναι η διεύθυνση που πρέπει να πάει ο
PIC | | |
Όπως λοιπόν είδατε παραπάνω μετά την εφαρμογή της
τάσης τροφοδοσίας ο PIC μηδενίζει τον καταχωρητή 0Ch, αυξάνει το
περιεχόμενο του κατά ένα, και στη συνέχεια πηγαίνει στην διεύθυνση 1
(0001h) και επαναλαμβάνει την λειτουργία μέτρησης. Με αυτόν τον πολύ
απλό κώδικα φτιάξαμε έναν μετρητή ο οποίος μετρά από το 0 έως το 255
κάνοντας συνεχόμενους κύκλους (Loop).
Επειδή
ο PIC όπως και όλα τα ψηφιακά υπολογιστικά συστήματα καταλαβαίνουν μόνο
το 0 και το 1, υπάρχουν προγράμματα τα οποία μεταφράζουν τις εντολές
(μνημονικά) που γράφει ο προγραμματιστής στη λεγόμενη γλώσσα μηχανής.
Αυτά τα προγράμματα λέγονται μεταγλωττιστές (Compilers) ή
συμβολομεταφραστές (Assemblers).
Παρακάτω
μπορείτε να δείτε τον πηγαίο κώδικα (Source code - αυτόν που θα γράφετε
εσείς) και την λίστα εντολών (Listing File) μετά την μεταγλώττιση από το
πρόγραμμα MPASM (Assembler) της Microchip.
 |
The Source Code - Πηγαίος
κώδικας
LIST P=16F84A
ORG 0
CLRF 0C
LOOP INCF 0C,1
GOTO LOOP
END | |
Στο παράδειγμα αυτό χρησιμοποιούμε
δεκαεξαδική αρίθμηση γιατί αυτή είναι ή εξ' ορισμού επιλεγμένη από
τον μεταγλωττιστή MPASM. Θα μπορούσαμε να χρησιμοποιήσουμε δεκαδική
αρίθμηση γράφοντας (Π.Χ .12 ή D'12') ή ακόμα και δυαδική αρίθμηση
γράφοντας (Π.Χ B'1100' ). |
 |
The Listing File - Λίστα
εντολών (Μετά την μεταγλώττιση - Compilation)
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 LIST P=16F84A
0000 00002 ORG 0
0000 018C 00003 CLRF 0C
0001 0A8C 00004 LOOP INCF 0C,1
0002 2801 00005 GOTO LOOP
00006 END |
Η στήλη LOC δείχνει τις διευθύνσεις της μνήμης
προγράμματος. Η στήλη OBJECT CODE
δείχνει τον κώδικα σε γλώσσα μηχανής. Η στήλη
LINE δείχνει τον αριθμό γραμμής του κειμένου & η
SOURCE TEXT τον πηγαίο
κώδικα.
|

|