Αρχιτεκτονική και προγραμματισμός του μικροελεγκτή PIC 16F877

Ηλεκτρολογία (Ε.Ε.) (Επαγγελματικό Λύκειο)

Αρχιτεκτονική και προγραμματισμός του μικροελεγκτή PIC 16F877

3 ώρες
Γενική περιγραφή περιεχομένου

Μικροελεγκτές

Έναν ορισμό που θα μπορούσαμε να δώσουμε για τους μικροελεγκτές είναι ο εξής: Μικροελεγκτής είναι ένα προγραμματιζόμενο ολοκληρωμένο κύκλωμα το οποίο διαθέτει επεξεργαστή, μνήμη, διάφορα περιφερειακά κυκλώματα καθώς επίσης και θύρες εισόδου/εξόδου για επικοινωνία με εξωτερικές συσκευές. Θα μπορούσε να παρομοιαστεί με έναν μικροϋπολογιστή. Όπως ακριβώς ένας μικροϋπολογιστής έχει επεξεργαστή, μνήμη, περιφερειακές συσκευές και εκτελεί προγράμματα έτσι κι ένας μικροελεγκτής διαθέτει τα παραπάνω χαρακτηριστικά και μάλιστα ολοκληρωμένα σε ένα μόνο chip. Το πρόγραμμα που εκτελεί ο μικροελεγκτής αποθηκεύεται μόνιμα στη μνήμη προγράμματος.

Εφαρμογές μικροελεγκτών

Οι μικροελεγκτές βρίσκουν εφαρμογή στα παρακάτω πεδία:

  1.  Σε συστήματα αυτοματισμών
  2.  Σε κυκλώματα τηλεπικοινωνιών
  3. Στις ηλεκτρονικές συσκευές
  4. Στις ηλεκτρικές συσκευές
  5. Σε συστήματα τηλεματικής
  6. Σε συστήματα συλλογής δεδομένων (Data Acquisition)
  7. Σε εφαρμογές ηλεκτρονικών ισχύος
  8. Σε συστήματα διασύνδεσης
  9. Σε εφαρμογές δικτύων Γενικότερα οι μικροελεγκτές χρησιμοποιούνται οπουδήποτε απαιτείται έλεγχος συστημάτων. Όταν λέμε ενσωματωμένα συστήματα (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 

at 50/100
Εκπαιδευτική Βαθμίδα που απευθύνεται το σενάριο
Επαγγελματικό Λύκειο
Θεματική Ταξινομία
Ηλεκτρολογία (Ε.Ε.) >
Τύπος Διαδραστικότητας
Ενεργός μάθηση
Επίπεδο Διαδραστικότητας
υψηλό
Προτεινόμενη ηλικιακή ομάδα:
-6
6-9
9-12
12-15
15-18
18-25
25+
Φάσεις Ψηφιακού Σεναρίου:
Περιγραφή της εσωτερικής δομής του μικροελεγκτή
30λεπτά
Χώρος Υλοποίησης
Εργαστήριο ηλεκτρονικών-Τμήμα δικτύων υπολογιστών
Βασικές εντολές σε γλώσσα Assembly
30λεπτά
Χώρος Υλοποίησης
Εργαστήριο Ηλεκτρονικών-Εργαστήριο δικτύων υπολογιστών
Εγγραφή κώδικα σε Assembly
30λεπτά
Χώρος Υλοποίησης
Εργαστήριο ηλεκτρονικών-Εργαστήριο δικτύων
Σχεδίαση ηλεκτρονικού κυκλώματος σε ράστερ
30λεπτά
Χώρος Υλοποίησης
Εργαστήριο ηλεκτρονικής-Εργαστήριο Δικτύων Υπολογιστών
Μεταφορά προγράμματος στον μικροελεγκτή
30λεπτά
Χώρος Υλοποίησης
Εργαστήριο ηλεκτρονικής-Εργαστήριο Δικτύων
Διδακτικοί Στόχοι
Να περιγράφεις την δομή και τη λειτουργία του μικροελεγκτή PIC
Να κατανοείς τι είναι μία εντολή Assembly και πως εκτελείται από το σύστημα
Να περιγράφεις πω γίνεται η αποθήκευση και ανάκληση δεδομένων
Να διαβάζεις κώδικα γλώσσας Assembly
Να γράφεις στοιχειώδη κώδικα σε γλώσσα Assembly
Λέξεις κλειδιά που χαρακτηρίζουν τη θεματική του σεναρίου
PIC 16F877, Έλεγχος LED, assembly,
Υλικοτεχνική υποδομή
Η/Υ, PIC16Φ877, ΑΝΤΙΣΤΑΣΕΙΣ-ΠΥΚΝΩΤΕΣ κλπ ηλεκτρονικά
Δημιουργός Σεναρίου: ΕΛΕΥΘΕΡΙΟΣ ΝΑΘΑΝΑΗΛΙΔΗΣ (Εκπαιδευτικός)
ΑΝΑΓΝΩΡΙΣΤΙΚΟ (τι είναι;)
Το σενάριο «Αρχιτεκτονική και προγραμματισμός του μικροελεγκτή PIC 16F877» έχει χαρακτηριστεί ως Επαρκές (βαθμολογία 50 μονάδων μέχρι 69.5) ύστερα από αξιολόγηση που πραγματοποιήθηκε από δύο αξιολογητές βάσει κριτηρίων που ορίστηκαν από το ΔΣ του ΙΕΠ.