Αρχιτεκτονική και προγραμματισμός του μικροελεγκτή PIC 16F877
Ηλεκτρολογία (Ε.Ε.) (Επαγγελματικό Λύκειο)
Μικροελεγκτές
Έναν ορισμό που θα μπορούσαμε να δώσουμε για τους μικροελεγκτές είναι ο εξής: Μικροελεγκτής είναι ένα προγραμματιζόμενο ολοκληρωμένο κύκλωμα το οποίο διαθέτει επεξεργαστή, μνήμη, διάφορα περιφερειακά κυκλώματα καθώς επίσης και θύρες εισόδου/εξόδου για επικοινωνία με εξωτερικές συσκευές. Θα μπορούσε να παρομοιαστεί με έναν μικροϋπολογιστή. Όπως ακριβώς ένας μικροϋπολογιστής έχει επεξεργαστή, μνήμη, περιφερειακές συσκευές και εκτελεί προγράμματα έτσι κι ένας μικροελεγκτής διαθέτει τα παραπάνω χαρακτηριστικά και μάλιστα ολοκληρωμένα σε ένα μόνο chip. Το πρόγραμμα που εκτελεί ο μικροελεγκτής αποθηκεύεται μόνιμα στη μνήμη προγράμματος.
Εφαρμογές μικροελεγκτών
Οι μικροελεγκτές βρίσκουν εφαρμογή στα παρακάτω πεδία:
- Σε συστήματα αυτοματισμών
- Σε κυκλώματα τηλεπικοινωνιών
- Στις ηλεκτρονικές συσκευές
- Στις ηλεκτρικές συσκευές
- Σε συστήματα τηλεματικής
- Σε συστήματα συλλογής δεδομένων (Data Acquisition)
- Σε εφαρμογές ηλεκτρονικών ισχύος
- Σε συστήματα διασύνδεσης
- Σε εφαρμογές δικτύων Γενικότερα οι μικροελεγκτές χρησιμοποιούνται οπουδήποτε απαιτείται έλεγχος συστημάτων. Όταν λέμε ενσωματωμένα συστήματα (Embedded Systems) εννοούμε συστήματα τα οποία είναι βασισμένα σε μικρoεπεξεργαστή (ή επίσης FPGA ή DSP)
Κατασκευαστές μικροελεγκτών Υπάρχουν δεκάδες εταιρείες παγκοσμίως που κατασκευάζουν μικροελεγκτές. Οι πιο διαδεδομένες είναι:
– Μicrochip, www.microchip.com
– Atmel, www.atmel.com
– Texas Instruments, www.ti.com
– Freescale (πρώην Motorolla), www.freescale.com
– Intel, www.intel.com
– Analog Devices, www.analog.com
Οι περισσότερες εταιρείες παράγουν μεγάλη γκάμα μικροελεγκτών. Από πολύ μικρούς και φθηνούς για απλές εφαρμογές έως ιδιαίτερα προηγμένους για πολύ απαιτητικές εφαρμογές.
Γλώσσα προγραμματισμού μικροελεγκτών
Οι μικροελεγκτές γενικά προγραμματίζονται σε γλώσσες χαμηλού επιπέδου. Τελευταία όλο και περισσότεροι προγραμματιστές επιλέγουν γλώσσες υψηλότερο επιπέδου. Ως γλώσσα χαμηλού επιπέδου ονομάζεται μια γλώσσα η οποία βρίσκεται πιο κοντά στο υλικό (γλώσσα μηχανής, assembly) Ως γλώσσα υψηλού επιπέδου ονομάζεται μια γλώσσα η οποία είναι αυστηρά δομημένη και υπάρχει συγκεκριμένος compiler ο οποίος μετατρέπει το πρόγραμμα σε γλώσσα μηχανής για το συγκεκριμένο μικροελεγκτή.
Γλώσσα προγραμματισμού μικροελεγκτών Πλεονεκτήματα γλωσσών χαμηλού επιπέδου:
– Ο προγραμματιστής έχει τον απόλυτο έλεγχο της συμπεριφοράς του μικροελεγκτή
– Μπορεί να επιτύχει με απόλυτη ακρίβεια διάφορους χρονισμούς
– Δεν απαιτείται η δαπάνη για την αγορά assembler καθώς συνήθως διατίθεται δωρεάν από την κατασκευάστρια εταιρεία Μειονεκτήματα γλωσσών χαμηλού επιπέδου:
– Απαιτείται μεγαλύτερος κόπος για την εκμάθηση της συμβολικής γλώσσας του εκάστοτε μικροελεγκτή
– Τα προγράμματα που δημιουργούνται σε συμβολική γλώσσα δεν είναι ευανάγνωστα και ο προγραμματιστής δυσκολεύεται να θυμηθεί τη λογική που έχει εφαρμόσει όταν χρειάζεται να κάνει τροποποιήσεις εκ των υστέρων
– Είναι δυσκολότερο να δουλέψουν πολλοί προγραμματιστές στο ίδιο πρόγραμμα
Γλώσσα προγραμματισμού μικροελεγκτών Πλεονεκτήματα γλωσσών υψηλού επιπέδου: – Είναι ευκολότερη η ανάπτυξη μεγάλων και σύνθετων προγραμμάτων
– Μπορούν να δουλέψουν πιο εύκολα πολλοί προγραμματιστές στο ίδιο πρόγραμμα Μειονεκτήματα γλωσσών υψηλού επιπέδου:
– Σε εφαρμογές με κρίσιμους χρονισμούς είναι δυσκολότερη η συγγραφή κώδικα που ανταποκρίνεται στους χρονισμούς αυτούς
– Μερικές φορές η δαπάνη για την αγορά compiler δεν αποτελεί αμελητέο μέγεθος
– Σε παλιότερους compilers ο κώδικας μηχανής που παραγόταν δεν ήταν βελτιστοποιημένος με αποτέλεσμα να απαιτείται μικροελεγκτής με πολύ περισσότερη μνήμη. Οι compilers που κυκλοφορούν σήμερα διαθέτουν εξελιγμένα εργαλεία για βελτιστοποίηση (optimization) του κώδικα και έχουν κερδίσει την εμπιστοσύνη ακόμα και των πιο δύσπιστων προγραμαμτιστών.
Μικροελεγκτές PIC Η Microchip διαθέτει πολύ μεγάλη ποικιλία μικροελεγκτών.
– 8-bit μικροελεγκτές (οικογένειες PIC10, PIC12, PIC16, PIC18)
– 16-bit μικροελεγκτές (οικογένειες PIC24, dsPIC)
– 32-bit μικροελεγκτές (οικογένειες PIC32) Η επιλογή ενός μικροελεγκτή για μια εφαρμογή γίνεται με την εξής διαδικασία. Καθορίζονται οι προδιαγραφές που πρέπει να πληρεί ο μικροελεγκτής και επιλέγεται ο φθηνότερος που ανταποκρίνεται στις προδιαγραφές αυτές. Ο μικροελεγκτής που θα μελετηθεί διεξοδικά στα πλαίσια του μαθήματος θα είναι ο PIC16F887.

Θα μελετήσουμε έναν πραγματικό μικροελεγκτή που μπορεί να χρησιμοποιηθεί σε πάρα πολλές μικρές και μεγάλες εφαρμογές. Θα μελετήσουμε την αρχιτεκτονική και τα διάφορα επιμέρους τμήματα του μικροελεγκτή της εταιρείας Microchip PIC16F877 , θα μάθουμε να προγραμματίζουμε σε γλώσσα προγραμματισμού χαμηλού επιπέδου Assembly