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).