Αστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια Ανενεργά
 

Οι καταχωρητές του PIC16F84Α


Ο καταχωρητής  είναι ένας χώρος εντός του PIC που μπορεί να γραφτεί, να διαβαστεί ή και τα δύο. Σκεφτείτε τον καταχωρητή ως ένα κομμάτι χαρτί, όπου μπορείτε να δείτε και να γράψετε πληροφορίες πάνω του. Το παρακάτω σχήμα δείχνει το χάρτη αρχείο καταχωρητών στο εσωτερικό του PIC16F84.

Το πρώτο πράγμα που θα παρατηρήσετε είναι ότι χωρίζεται σε δύο BANKS- Το  BANK 0 KAI το BANK 1. Η bank 1 χρησιμοποιείται για να ελέγχει την πραγματική λειτουργία του PIC, για παράδειγμα, να πει στον PIC πια μπιτς της θύρας A θα είναι είσοδοι και πια είναι θα γίνουν έξοδοι. Η bank 0 χρησιμοποιείται για να χειριστείτε τα δεδομένα.

Ένα παράδειγμα είναι το εξής: Ας πούμε ότι θέλουμε να θέσουμε  το pin της θύρας Α  σε λογικό '1' υψηλό. Πρώτα πρέπει να πάτε στην BANK 1 για να ορίσετε το συγκεκριμένο μπιτ, στη θύρα Α ως έξοδο. Στη συνέχεια επιστρέφετε στην BANK 0 για να στείλετε το  λογικό '1' στο συγκεκριμένο μπιτ.

Οι πιο συχνοί καταχωρητές στη ΒΑΝΚ 1 που πρόκειται να χρησιμοποιήσετε είναι ο STATUS, TRISA και TRISB.

Η πρώτος σας επιτρέπει να επανέλθετε στην bank 0, ο TRISA σας επιτρέπει να επιλέξετε ποιές ακίδες στη θύρα Α είναι έξοδοι και εισόδοι, ο TRISB μας επιτρέπει να επιλέξετε ποιές ακίδες στη θύρα Β θα είναι είσοδοι ή έξοδοι.

Ο SELECT καταχωρητής στην bank 0, σας επιτρέπει να μεταβείτε στην Τράπεζα 1.

Ας ρίξουμε μια πιο προσεκτική ματιά σε αυτά τα τρία μητρώα.

STATUS

Για να αλλάξετε από την bank 0 στην bank 1 το κάνετε μέσω του καταχωρητή STATUS. Το κάνετε αυτό με τον καθορισμό του bit 5 του STATUS σε λογικό '1'. Για να επιστρέψετε στην bank 0, θέτουμε το bit 5 τoυ STATUS σε  κατάσταση λογικό '0'. Ο καταχωρητής κατάστασης  STATUS βρίσκεται στην 03H διεύθυνση.

TRISA και TRISB.

Αυτοί οι καταχωρητές βρίσκονται στις διευθύνσεις 85Η και 86H, αντίστοιχα. Για να προγραμματίσετε μια ακίδα μιας θύρας για να είναι έξοδος ή είσοδος, στέλνουμε απλά ένα 0 ή ένα 1 στο σχετικό κομμάτι στο καταχωρητή. Τώρα, αυτό μπορεί να

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

Έτσι, στη  θύρα A έχουμε 5 ακροδέκτες.  Αν ήθελα να επιλέξετε μία από τις ακίδες σταν είσοδο, πρέπει να στείλετε ένα λογικό '1 'στο σχετικό ακροδέκτη. Αν ήθελα να ορίσετε μία από τις ακίδες σε έξοδο, πρέπει να στείλετε ένα λογικό '0 '. Τα κομμάτια είναι τακτοποιεί με τον ίδιο ακριβώς τρόπο όπως και οι ακίδες, σε άλλες

λέξεις bit 0 είναι ra0, 1 είναι λίγο RA1, 2 είναι λίγο RA2 και ούτω καθεξής. Ας δουμε ένα παράδειγμα.

Αν ήθελα να τα ra0, RA3 και RA4 ως έξοδοι, και RA1 και RA2 ως εισοδοι, στέλνω αυτό: 00.110 (06h). Σημείωση

ότι το μηδέν είναι λίγο στα δεξιά, όπως φαίνεται:

Λιμάνι Μια ακίδα  RA4 RA3 RA2 RA1 ra0

Αριθμός Bit 4 3 2 1 0

Δυαδικό 0 0 1 1 0

Το ίδιο ισχύει και για TRISB.

ΠΟΡΤ Α και PORT B

 Για να στείλετε ένα ακίδες εξόδου μας υψηλή, απλά στείλτε ένα '1 'στο αντίστοιχο bit σε μας

ΠΟΡΤΑ ή PORTB καταχωρητή. Η ίδια μορφή ως εξής για τα μητρώα και TRISA TRISB.

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

Ειδικότερα αντίστοιχο bit έχει οριστεί σε υψηλό (1) ή που σε χαμηλό (0)

Πριν δώσω ένα παράδειγμα κώδικα, θα πρέπει να εξηγήσει ακριβώς δύο καταχωρητή - w και f.

W

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

έχετε αντιστοιχίσει μια τιμή W, μπορείτε να το προσθέσετε σε μια άλλη αξία, ή να το μετακινήσετε. Εάν έχετε αντιστοιχίσει

άλλη αξία W, το περιεχόμενό της θα αντικατασταθούν.

Ένα παράδειγμα κώδικα.

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

καταρτίζει αυτό ακόμα, θα κάνουμε ότι όταν ερχόμαστε στο πρώτο πρόγραμμα μας. Είμαι απλώς προσπαθεί να

δείχνουν πως η παραπάνω είναι πραγματικά προγραμματιστεί και να εισαγάγει ένα ζευγάρι των οδηγιών μαζί

ο τρόπος. Πάω να δημιουργήσει ένα λιμάνι, όπως στο παραπάνω παράδειγμα.

Πρώτον, θα πρέπει να μεταβείτε από την Τράπεζα 0 στην Τράπεζα 1. Το κάνουμε αυτό με τον καθορισμό του καταχωρητήυ STATUS,

η οποία είναι σε 03H διεύθυνση, το bit 5 προς 1.

 BSF 03H, 5

Η BSF Μέσα Bit Ορισμός ΣΤ ΣΤ. Η επιστολή αυτή σημαίνει ότι πρόκειται να χρησιμοποιήσετε μια θέση μνήμης,

ή εγγραφείτε. Είμαστε χρησιμοποιώντας δύο αριθμούς μετά από αυτή την εντολή - 03H, η οποία είναι η κατάσταση

καταχωρητή διεύθυνση και τον αριθμό 5, ο οποίος αντιστοιχεί στον αριθμό bit. Έτσι, αυτό που είμαστε

λέγοντας το "Ορίστε λίγο στην διεύθυνση 5 03H σε 1".

Είμαστε τώρα στην Τράπεζα 1.

MOVLW b'00110 »

Βάζουμε τη δυαδική τιμή 00.110 (Το γράμμα Β σημαίνει ότι ο αριθμός είναι σε δυαδική μορφή) σε μας

καταχωρητήυ γενικής χρήσης W. Θα μπορούσα βέβαια να γίνει αυτό σε hex, οπότε μας

διδασκαλίας θα είναι:

MOVLW 06h

Είτε δουλεύει. Η MOVLW σημαίνει «Μετακίνηση Κυριολεκτική αξία σε W», το οποίο στα αγγλικά σημαίνει θέσει

η αξία που προκύπτει άμεσα σε W καταχωρητή.

Τώρα πρέπει να θέσει αυτή την τιμή σε TRISA μας, εγγραφείτε για να ρυθμίσετε το λιμάνι:

MOVWF 85η

Αυτή η εντολή σημαίνει "Μετακινήστε τα περιεχόμενα του W στο πεδίο διευθύνσεων καταχωρητή που ακολουθεί»,

σε αυτή την περίπτωση η διεύθυνση δείχνει TRISA.

TRISA καταχωρητή μας έχει πλέον την τιμή 00110, ή παρουσιάζεται διαγραμματικά:

Λιμάνι Μια καρφίτσα RA4 RA3 RA2 RA1 ra0

Δυαδικό 0 0 1 1 0

Είσοδος / Έξοδος OOIIO

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

δεδομένων.

BCF 03H, 5

Αυτή η εντολή κάνει το αντίθετο της BSF. Σημαίνει "Bit Clear F". Οι δύο αριθμοί που

ακολουθούν είναι η διεύθυνση του καταχωρητήυ, στην περίπτωση αυτή το καταχωρητή STATUS, και ο αριθμός bit,

στην περίπτωση αυτή το bit 5. Λοιπόν, τι έχουμε κάνει τώρα βρίσκεται λίγο STAUS 5 για μας, εγγραφείτε στο 0

Είμαστε τώρα πίσω στην Τράπεζα 0.

Εδώ είναι ο κώδικας σε ένα ενιαίο σύνολο:

BSF 03H, 5? Μετάβαση στην Τράπεζα 1
MOVLW 06h? Βάλτε σε 00110 W
MOVWF 85η? Μετακίνηση σε 00110 TRISA
BCF 03H, 5? Γύρνα πίσω στην Τράπεζα 0

Διαβάστε αυτό μέσα από μια-δυο φορές, μέχρι να μπορείτε να ακολουθήσετε. Μέχρι στιγμής έχουμε εξετάσει σε 4

οδηγίες. Μόνο το 31 να πάει!

Προσθήκη νέου σχολίου


Κωδικός ασφαλείας
Ανανέωση