| Home Pic in Greek Οδηγός χρήσης Pic Βάση αριθμητικών συστημάτων |
Βάση αριθμητικών συστημάτων
Radix - Βάση αριθμητικών συστημάτων Η πιο διαδεδομένη αριθμητική βάση για τα υπολογιστικά συστήματα είναι η δεκαεξαδική (Hexadecimal). Decimal - Δεκαδικό σύστημα αρίθμησης Στην καθημερινή μας ζωή όλοι οι άνθρωποι χρησιμοποιούμε το δεκαδικό σύστημα αρίθμησης το οποίο αποτελείται από τον αριθμό 0 έως τον αριθμό 9. Μετρώντας θετικά μετά τον αριθμό εννέα (9) δημιουργείται κρατούμενο και έτσι ο επόμενος αριθμός είναι το δέκα (10). Εάν θέλετε να ορίσετε έναν αριθμό μέσα στο πρόγραμμα του PIC σε δεκαδική μορφή πρέπει πριν τον αριθμό να βάλετε τελεία Π.Χ: .10 Binary - Δυαδικό σύστημα αρίθμησης Το δυαδικό σύστημα χρησιμοποιεί μονάχα δύο αριθμούς για αρίθμηση, το μηδέν (0) και το ένα (1). Αρκετές φορές θα τα συναντήσετε και σαν λογικό 1 (High level) ή λογικό 0 (Low level). Η αρίθμηση ξεκινά με το 0 συνεχίζει με το ένα 1 και το επόμενο είναι το 10,11,100,101,110,111,1000,1001,1011,1100,κ.λ.π. Εάν θέλετε να ορίσετε έναν αριθμό μέσα στο πρόγραμμα του PIC σε δυαδική μορφή πρέπει πριν τον αριθμό να βάλετε το γράμμα b Π.Χ: b'10010111 Hexadecimal - Δεκαεξαδικό σύστημα αρίθμησης Το δυαδικό σύστημα παρότι είναι η βάση αρίθμησης των υπολογιστικών συστημάτων είναι δύσχρηστο για τους ανθρώπους που έχουν συνηθίσει να χρησιμοποιούν το δεκαδικό. Η δυαδική μορφή του δεκαδικού αριθμού 163(Δεκαδικό) είναι το 10100011(Δυαδικό) έχουν αρκετή διαφορά έτσι δεν είναι ?. Μετά από μελέτες βρέθηκε πως το πιο βολικό σύστημα που μπορεί να χρησιμοποιηθεί για τον προγραμματισμό των υπολογιστών είναι το δεκαεξαδικό. Με το δεκαεξαδικό σύστημα παράγεται κρατούμενο κάθε δεκαέξι αριθμούς. Οι πρώτοι δέκα είναι το 0 έως το 9 και οι υπόλοιποι έξι συμβολίζονται με γράμματα της Αγγλικής αλφαβήτου. 10 A, 11 B, 12 C, 13 D, 14 E, 15 F Επειδή η αρίθμηση αρχίζει από τον αριθμό 0, ο αριθμός 10 αντιστοιχεί στο 11 και ο 15 στο 16. Οι δεκαέξι αριθμοί του δεκαεξαδικού συστήματος στο δυαδικό εκφράζονται με τέσσερα ψηφία (Bit), για παράδειγμα το 16 που είναι το F, στο δυαδικό είναι το 1111, ενώ το 5 στο δυαδικό είναι το 0101. Το πλεονέκτημα που παρουσιάζει το δεκαεξαδικό έναντι των άλλων συστημάτων σε σχέση με το δυαδικό είναι ότι δύο αριθμού του δεκαεξαδικού συμβολίζουν οκτώ (8) ψηφία (1 Byte) του δυαδικού. Εάν θέλετε να ορίσετε έναν αριθμό μέσα στο πρόγραμμα του PIC σε δεκαεξαδική μορφή πρέπει μετά τον αριθμό να βάλετε το γράμμα h Π.Χ: 0Ah The correspondence of radix - Αντιστοιχία συστημάτων αρίθμησης Στον παρακάτω πίνακα φαίνεται η αντιστοιχία του Δεκαδικού, Δυαδικού και Δεκαεξαδικού συστήματος.
Δεκαδικό | Δυαδικό | Δεκαεξαδικό |  | Δεκαδικό | Δυαδικό | Δεκαεξαδικό
0 | 0 | 0h | 100 | 1100100 | 64h
1 | 1 | 1h | 127 | 1111111 | 7Fh
2 | 10 | 2h | 128 | 10000000 | 80h
3 | 11 | 3h | 200 | 11001000 | C8h
4 | 100 | 4h | 255 | 11111111 | FFh
5 | 101 | 5h | 256 | 100000000 | 100h
6 | 110 | 6h | 300 | 100101100 | 12Ch
7 | 111 | 7h | 400 | 110010000 | 190h
8 | 1000 | 8h | 500 | 111110100 | 1F4h
9 | 1001 | 9h | 511 | 111111111 | 1FFh
10 | 1010 | Ah | 512 | 1000000000 | 200h
11 | 1011 | Bh | 600 | 1001011000 | 258h
12 | 1100 | Ch | 700 | 1010111100 | 2BCh
13 | 1101 | Dh | 800 | 1100100000 | 320h
14 | 1110 | Eh | 900 | 1110000100 | 384h
15 | 1111 | Fh | 1000 | 1111101000 | 3E8h
16 | 10000 | 10h | 1023 | 1111111111 | 3FFh
17 | 10001 | 11h | 1024 | 10000000000 | 400h
18 | 10010 | 12h | 2000 | 11111010000 | 7D0h
19 | 10011 | 13h | 2047 | 11111111111 | 7FFh
20 | 10100 | 14h | 2048 | 100000000000 | 800h
Οι μετατροπή από σύστημα σε σύστημα γίνεται εύκολα με την χρήση της επιστημονικής αριθμομηχανής των Windows. Αν θέλετε να το κάνετε δίχως την βοήθεια αριθμομηχανής ακολουθήστε τους παρακάτω τρόπους:
| Χωρίστε το δυαδικό αριθμό σε τετράδες ξεκινώντας από δεξιά. Με βάση τον παραπάνω πίνακα, μπορείτε να γράψετε τον αντίστοιχο δεκαεξαδικό κάθε τετράδας, ξεκινώντας από δεξιά προς αριστερά. ΠΧ. 111000100100010000100 1C4884h
| Με βάση τον παραπάνω πίνακα, γράψτε το αντίστοιχο δυαδικό αριθμό για κάθε ένα δεκαεξαδικό, ξεκινώντας από δεξιά προς αριστερά. EX. 5F37Bh 1011111001101111011
| Για κάθε δυαδικό ψηφίο ξεκινώντας από δεξιά προς αριστερά γράψτε τις δυνάμεις του δύο, (1-2-4-8-16-32-64-128-256-512). Προσθέστε τα νούμερα που βρίσκονται επάνω από τους άσσους (1) και θα πάρετε τον δεκαδικό αριθμό. ΠΧ. 512 + 256 + 128 + 8 + 4 + 1 = 909
| Βρείτε την μεγαλύτερη τιμή της δύναμης του δύο (1-2-4-8-16-32-64-128-256-512-1024-κ.λ.π) που μπορεί να αφαιρεθεί από τον δεδομένο δεκαδικό αριθμό. Μετά την αφαίρεση κάντε το ίδιο για το υπόλοιπο έως ότου φτάσετε το μηδέν. Οι τιμές της δύναμης του δύο που χρησιμοποιήσατε για τις αφαιρέσεις δίνουν τους άσσους από αριστερά προς δεξιά μέσα στον δυαδικό αριθμό. Στις υπόλοιπες τιμές της δύναμης του δυο που δεν χρησιμοποιήθηκαν αντιστοιχεί το μηδέν (0) Π.Χ Βρείτε την δυαδική μορφή του δεκαδικού αριθμού 585 582 - 512 = 70 70 - 64 = 6 6 - 4 = 2 2 - 2 = 0
| Πρώτα πρέπει να μετατρέψετε το δεκαδικό σε δυαδικό και στην συνέχεια σε δεκαεξαδικό. Αν για παράδειγμα χρησιμοποιήσουμε τον αριθμό 582 ο δυαδικός του είναι 582 = 1001000110 = 246h.
| Πρώτα πρέπει να μετατρέψετε το δεκαεξαδικό σε δυαδικό και στην συνέχεια σε δεκαδικό. Π.Χ 38Dh = 1110001101 = 909
2's Complement - 2o Συμπλήρωμα Το δεύτερο συμπλήρωμα είναι αυτό που δείχνει τις αρνητικές τιμές. Για παράδειγμα ο δεκαδικός αριθμός "-1" όταν απεικονίζεται με ψηφιολέξη (byte) στο δυαδικό σύστημα είναι ο 11111111. Παρατηρήστε τι γίνεται: δημιουργείται υπερχείλιση και το αποτέλεσμα γίνεται μηδέν. Μια ψηφιολέξη (byte) μπορεί να πάρει 256 τιμές (από 0 έως 255). Όταν πρόκειται για αρνητικό αριθμό, οι τιμές που μπορεί να πάρει μια ψηφιολέξη είναι 255 (από -127 έως +127), ο λόγος που οι τιμές είναι λιγότερες είναι ότι ο αριθμός 10000000 (δεκαδικός 128) δεν μπορεί να χρησιμοποιηθεί. Το περισσότερο σημαντικό ψηφίο (bit 7) μιας ψηφιολέξης δείχνει αν ο αριθμός είναι θετικός ή αρνητικός. Για παράδειγμα ο δεκαδικός αρνητικός αριθμός -127 στην δυαδική μορφή του είναι 10000001, παρατηρήστε όμως πως 10000001 είναι και η δυαδική μορφή του θετικού δεκαδικού αριθμού 129. Η μετατροπή σε 2ο συμπλήρωμα γίνεται με το εξής τρόπο: Σαν παράδειγμα θα μετατρέψουμε τον θετικό δεκαδικό 56 σε αρνητικό -56.
(1) Αφαιρούμε ένα αριθμό από το 56 | 56 - 1 = 55
(2) Το μετατρέπουμε σε δυαδική μορφή | 55 00110111
(3) Το συμπλήρωμα του είναι: | 00110111 11001000
Παρατηρήστε πως το 0 γίνεται 1 & το 1 γίνεται 0 11001000 είναι η δυαδική μορφή του δεκαδικού αριθμού -56. Εάν προστεθούν οι αριθμοί 56 + (-56) το αποτέλεσμα γίνεται μηδέν. General format for instructions - Διαμόρφωση εντολών Οι εντολές της σειράς PIC16ΧΧΧ χωρίζονται σε τρείς κατηγορίες. Γράφονται στην μνήμη προγράμματος και κάθε μια συγκροτείται από 14 ψηφία (14 bits). Αυτά τα 14 ψηφία ονομάζονται λέξη (word).
| Byte-oriented file register operations - Εντολές χειρισμού ψηφιολέξεων
| Οι εντολές αυτές χειρίζονται τις ψηφιολέξεις (byte).
|  | ΕΝΤΟΛΗ : | OPCODE είναι η εντολή σε μορφή κατανοητή από τον μικροεπεξεργαστή.
d (Επιλογή κατεύθυνσης) : | Δηλώνει τον καταχωρητή που θα αποθηκευτεί το αποτέλεσμα της εκτέλεσης μιας εντολής. d=0 : Δηλώνει τον λειτουργικό καταχωρητή (working register W ). d=1 : Δηλώνει τον καταχωρητή που δείχνει το f.
| (Π.Χ) | ADDWF | COUNT,W | ( d=0 αποθήκευση στον W )
| ADDWF | COUNT,F | ( d=1 αποθήκευση στον F )
f (Καταχωρητής) : | Δηλώνει τον καταχωρητή στον οποίο θα επιδράσει η εντολή. ο f μπορεί να δηλώσει τους καταχωρητές από 0(00h) έως 127(7Fh) γιατί συγκροτείται από επτά ψηφία (7 bits).
| (Π.Χ) | ADDWF | COUNT,F | ( COUNT είναι ένα εικονικό όνομα του καταχωρητή)
| Bit-oriented file register operations - Εντολές χειρισμού ψηφίων
| The instructions of this format are the instruction which processes a bit unit.
ΕΝΤΟΛΗ : | OPCODE είναι η εντολή σε μορφή κατανοητή από τον μικροεπεξεργαστή.
b (Θέση ψηφίου) : | Δηλώνει την θέση του ψηφίου (Bit) μέσα στον καταχωρητή (Register).
f (Καταχωρητής) : | Δηλώνει τον καταχωρητή στον οποίο θα επιδράσει η εντολή. ο f μπορεί να δηλώσει τους καταχωρητές από 0(00h) έως 127(7Fh) γιατί συγκροτείται από επτά ψηφία ( 7 bits).
| Literal and control operations - Εντολές πράξεων με σταθερούς αριθμούς και ελέγχου προγράμματος
|  |  | Οι εντολές αυτές εκτελούν λειτουργίες που αφορούν πράξεις με σταθερούς αριθμούς (k). Υπάρχουν δυο τύποι εντολών με σταθερούς αριθμούς (k). 1) Αυτές που έχουν opcode 6 ψηφίων & σταθερό αριθμό 8 ψηφίων, 2) Αυτές που έχουν opcode 3 ψηφίων & σταθερό αριθμό 11 ψηφίων (GOTO και CALL ).
|  | Οι Πήγαινε GOTO και Κάλεσε CALL έχουν χρησιμοποιούν σταθερούς αριθμούς 11 ψηφίων (Bit)
ΕΝΤΟΛΗ : | OPCODE είναι η εντολή σε μορφή κατανοητή από τον μικροεπεξεργαστή.
k (Σταθερός αριθμός) : | Είναι ο σταθερός αριθμός που χρησιμοποιείται από την εντολή. Για την περίπτωση του Opcode 6 ψηφίων ο σταθερός αριθμός είναι 8 ψηφίων και μπορεί να πάρει τιμές 0(00h) έως 255(FFh). Για την περίπτωση του Opcode 3 ψηφίων ο σταθερός αριθμός είναι 11 ψηφίων και μπορεί να πάρει τιμές 0(00h) έως 2047(7FFh).