Προγραμματισμός σε γλώσσα assembly

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

Assembler directives

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

AVR status register

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

Καταχωρητές GPR και Ι/Ο μνήμη

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

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

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

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

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