10. Πράξεις με προσημασμένους αριθμούς

Μέχρι στιγμής τα αριθμητικά δεδομένα που χρησιμοποιούσαμε παρίσταναν αριθμούς χωρίς πρόσημο. Όμως στη καθημερινή ζωή χρησιμοποιούμε θετικούς αλλά και αρνητικούς αριθμούς. Για παράδειγμα όταν αναφερόμαστε σε θερμοκρασία 5 βαθμούς Κελσίου κάτω από το μηδέν, αυτή παριστάνεται με την αρνητική τιμή -5, ενώ η θερμοκρασία 20 βαθμούς πάνω από το μηδέν με +20. Οι ηλεκτρονικοί υπολογιστές […]

9. Πράξεις με μη προσημασμένους αριθμούς

Πρόσθεση μη προσημασμένων αριθμών Για την πρόσθεση δυο 8-bit αριθμών, χρησιμοποιούμε την εντολή ADD, που έχει σαν όρισμα δυο γενικού σκοπού καταχωρητών GPRs, στους οποίους έχουμε από πριν φορτώσει τις τιμές που θέλουμε να προσθέσουμε Η εντολή προσθέτει τα περιεχόμενα του καταχωρητή Rr σε εκείνα του καταχωρητή Rd. Αυτή η εντολή μπορεί να αλλάξει τις […]

8. Προγραμματισμός Ι/Ο θυρών και χειρισμός bit των I/O καταχωρητών

Στην οικογένεια των μικροελεγκτών AVR υπάρχει ένας αριθμός θυρών για Ι/Ο λειτουργίες που είναι διαφορετικός για κάθε μέλος της οικογένειας AVR. Στον 28-pin μικροελεγκτή ATmega 328 υπάρχουν συνολικά 23 πινς για τις τρεις θύρες PORTB, PORTC και PORTD. Τα υπόλοιπα πινς χρησιμοποιούνται σαν VCC, GND, RESET, AREF, AGND και AVCC. Ο αριθμός των θυρών που […]

7. Η εντολή CALL και ο σωρός

Η εντολή CALL και ο σωρός Μια άλλη εντολή διακλάδωσης είναι η CALL, η οποία χρησιμοποιείται για να καλέσουμε μια υπορουτίνα. Οι υπορουτίνες χρησιμοποιούνται συχνά για να καλέσουμε κομμάτια κώδικα που εκτελούνται συχνά. Αυτό κάνει το πρόγραμμα περισσότερο δομημένο και έχουμε εξοικονόμηση  μνήμης προγράμματος. Στους μικροελεγκτές AVR έχουμε τέσσερις εντολές για να καλούμε υπορουτίνες: CALL […]

6. Διακλαδώσεις και βρόγχοι

Πολλές φορές θέλουμε να πάμε τη ροή της εκτέλεσης ενός προγράμματος Assembly σε άλλη εντολή. Αυτό μπορούμε να το κάνουμε  με την υπό συνθήκη ή χωρίς συνθήκη διακλάδωση. Με την υπό συνθήκη διακλάδωση είναι οι εντολές: π.χ. BRNE  ή  BRSH ή με χωρίς συνθήκη είναι: οι JMP ή RJMP Χρησιμοποιώντας την εντολή BRNE για την […]

4. Μαθηματικές πράξεις στην Python

Αριθμητικές πράξεις Μια αριθμητική έκφραση είναι μια παράσταση η οποία περιέχει αριθμητικούς τελεστές, σταθερές τιμές και μεταβλητές. Με τους τελεστές ορίζουμε τις πράξεις που θα γίνουν με τα δεδομένα και παριστάνονται με σύμβολα όπως **  *  /   //  %  +  –  Η αποτίμηση μιας αριθμητικής έκφρασης γίνεται με την αντικατάσταση των μεταβλητών με τις τιμές […]

3. Μεταβλητές – τύποι δεδομένων

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

2. Εκτέλεση απλών πράξεων

Στο παράθυρο διερμηνευτή μπορούμε να εκτελέσουμε αριθμητικές πράξεις με τους τελεστές της πρόσθεσης (+), αφαίρεσης (-), πολλαπλασιασμού (*) και διαίρεσης (/) πάνω σε μεταβλητές και σταθερές τιμές. Για την εμφάνιση των αποτελεσμάτων χρησιμοποιούμε την συνάρτηση print(), όπου μέσα στις παρενθέσεις βάζουμε την έκφραση προς υπολογισμό ή τα δεδομένα που θέλουμε να εμφανιστούν. Με την εντολή […]

1. Εισαγωγή στην Python

Η Python είναι μια διαδραστική, διερμηνευόμενη και αντικειμενοστραφής γλώσσα προγραμματισμού. Η Python αναπτύχθηκε από τον Guido van Rossum την δεκαετία των 80 στο National Institute for Mathematics and Computer Science της Ολλανδίας. Η Python είναι μια διαδραστική γλώσσα που σημαίνει ότι μπορείς να δώσεις μια εντολή και να δεις άμεσα το αποτέλεσμα της χωρίς  να […]

Το ολοκληρωμένο κύκλωμα

Τα ολοκληρωμένα κυκλώματα έχουν πλέον γίνει αναπόσπαστο μέρος της ζωής μας. Για παράδειγμα, οι περισσότεροι άνθρωποι έχουν ακούσει τον όρο « μικροεπεξεργαστής». Ένας μικροεπεξεργαστής είναι ένα ολοκληρωμένο κύκλωμα ( ή όπως συνηθίζεται, απλά « ολοκληρωμένο») που επεξεργάζεται όλες τις πληροφορίες σε ένα Ηλεκτρονικό Υπολογιστή ( Η/Υ). Συγκεκριμένα, κρατά πληροφορίες για το ποια πλήκτρα έχουν πατηθεί, […]

Η δίοδος

Η δίοδος ή κρυσταλλοδίοδος είναι το ηλεκτρονικό εξάρτημα που επιτρέπει τη διέλευση του ηλεκτρικού ρεύματος στην μια κατεύθυνση ενώ απαγορεύει την διέλευση του ρεύματος στην αντίθετη κατεύθυνση. Αποτελείται από την επαφή ενός ημιαγωγού τύπου Ρ με ένα ημιαγωγό τύπου Ν. Ο ακροδέκτης που συνδέεται στο τμήμα Ρ λέγεται άνοδος, ενώ ο ακροδέκτης που συνδέεται στο […]

5. Εισαγωγή στον προγραμματισμό AVR σε γλώσσα assembly

Η CPU ενός μικροελεγκτή δέχεται εντολές και δεδομένα σε δυαδική μορφή δηλαδή αριθμούς αποτελούμενοι από 0 και 1. Το σύνολο των εντολών που γράφουμε εκφρασμένο σε δυαδικό ή δεκαεξαδικό κώδικα ονομάζεται γλώσσα μηχανής (machine code). Για να διευκολυνθούμε στην ανάπτυξη κώδικα μηχανής χρησιμοποιούμε τον assembler, ο οποίος είναι μια εφαρμογή που δέχεται μνημονικά ονόματα για […]

4. Assembler directives

Assembler directives Ενώ οι εντολές λένε τι η CPU θα κάνει οι directives (αλλιώς ψευδοεντολές) δίνουν κατευθύνσεις στον assembler. Για παράδειγμα οι εντολές LDI και ADD είναι εντολές στην CPU ενώ οι .EQU , .DEVICE και .ORG είναι directives στον assembler. Στις επόμενες ενότητες παρουσιάζουμε τις πιο συνηθισμένες directives του AVR μικροελεγκτή και πως χρησιμοποιούνται. […]

3. AVR status register

Όπως όλοι οι άλλοι μικροελεγκτές, έτσι και ο AVR έχει ένα καταχωρητή κατάστασης (stature register) που στην ουσία είναι μια ομάδα 8-bits που λειτουργούν σαν σημαίες. Ο καταχωρητής κατάστασης του AVR αποτελείται από ένα σύνολο σημαιών για το χειρισμό αριθμητικών συνθηκών, όπως το carry bit. Σε αυτή την ενότητα θα αναφερθούμε στα bits αυτού του […]

2. Data memory and I/O registers

AVR Data Memory Σε ένα μικροελεγκτή AVR υπάρχουν δυο τύποι μνήμης: Η μνήμη κώδικα (code memory space) και η μνήμη δεδομένων (data memory space). Ο κώδικας που γράφουμε αποθηκεύεται στην μνήμη κώδικα ενώ τα δεδομένα στην μνήμη δεδομένων. Η μνήμη δεδομένων αποτελείται από τρία είδη μνήμης: GPRs (καταχωρητές γενικού σκοπού), τη μνήμη Ι/Ο και την […]

1. Καταχωρητές GPRs

Η CPU ενός μικροελεγκτή χρησιμοποιεί μερικούς καταχωρητές για την προσωρινή αποθήκευση δεδομένων τα οποία χρησιμοποιούνται για αριθμητικές καθώς και για λογικές πράξεις.  Σε αυτή την ενότητα θα εξετάσουμε μεταξύ άλλων τους καταχωρητές γενικού σκοπού GPRs του μικροελεγκτή AVR και θα επιδείξουμε τη χρήση των GPRs με τις απλές εντολές LDI και ADD. Ένας τυπικός μικροελεγκτής […]

Αριθμητικές πράξεις – πρόσθεση και αφαίρεση

Τα δεδομένα σε ένα ψηφιακό σύστημα μπορεί να είναι αριθμοί ή χαρακτήρες τα οποία μπορούν να αναπαρασταθούν από μια ακολουθία δυαδικών ψηφίων. Όμως η δυσκολία βρίσκεται στην αναπαράσταση των αρνητικών αριθμών. Έχουν αναπτυχθεί τρεις διαφορετικές τεχνικές για την αναπαράσταση των αρνητικών αριθμών 1) πρόσημο και μέτρο 2) συμπλήρωμα ως προς ένα και 3) συμπλήρωμα ως […]

Εισαγωγή στους μικροελεγκτές AVR

Γενικά για τους μικροελεγκτές Τα πρώτα υπολογιστικά συστήματα CPU, σχεδιάστηκαν και υλοποιήθηκαν με χρήση ενός αριθμού από ηλεκτρονικές λυχνίες κενού. Οι ηλεκτρονικές λυχνίες είναι ογκώδης και καταναλώνουν αυξημένη ηλεκτρική ενέργεια. Η ανακάλυψη του τρανζίστορ και των μετέπειτα ολοκληρωμένων κυκλωμάτων IC, έδωσαν μεγάλη ανάπτυξη στις CPUs,  που τώρα τοποθετούνται πάνω σε τυπωμένα κυκλώματα PCB. Η μετέπειτα […]

Το θεώρημα της υπέρθεσης

Όλα τα κυκλώματα που έχουμε αναλύσει μέχρι τώρα, είναι γραμμικά κυκλώματα. Γραμμικό κύκλωμα είναι εκείνο που συντίθεται αποκλειστικά από ανεξάρτητες πηγές, εξαρτημένες γραμμικές πηγές και γραμμικά στοιχεία. Ορίζεται ένα γραμμικό στοιχείο σαν ένα παθητικό στοιχείο, το οποίο έχει μια γραμμική σχέση τάσης – έντασης, δηλαδή η τάση στα άκρα του v(t) και το ρεύμα που […]

Τα θεωρήματα ανάλυσης κυκλωμάτων Thevenin και Norton

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