Ηλεκτρολογία (Ε.Ε.) (Επαγγελματικό Λύκειο)
Κατεβάστε σε μορφή PDF
 3 ώρες

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

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

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

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

Φάσεις Ψηφιακού Σεναρίου: 
30 λεπτά
Φάση 1: Περιγραφή της εσωτερικής δομής του μικροελεγκτή
Χώρος Διεξαγωγής: Εργαστήριο ηλεκτρονικών-Τμήμα δικτύων υπολογιστών
30 λεπτά
Φάση 2: Βασικές εντολές σε γλώσσα Assembly
Χώρος Διεξαγωγής: Εργαστήριο Ηλεκτρονικών-Εργαστήριο δικτύων υπολογιστών
30 λεπτά
Φάση 3: Εγγραφή κώδικα σε Assembly
Χώρος Διεξαγωγής: Εργαστήριο ηλεκτρονικών-Εργαστήριο δικτύων
30 λεπτά
Φάση 4: Σχεδίαση ηλεκτρονικού κυκλώματος σε ράστερ
Χώρος Διεξαγωγής: Εργαστήριο ηλεκτρονικής-Εργαστήριο Δικτύων Υπολογιστών
30 λεπτά
Φάση 5: Μεταφορά προγράμματος στον μικροελεγκτή
Χώρος Διεξαγωγής: Εργαστήριο ηλεκτρονικής-Εργαστήριο Δικτύων
Διδακτικοί Στόχοι: 
  1. Να περιγράφεις την δομή και τη λειτουργία του μικροελεγκτή PIC
  2. Να κατανοείς τι είναι μία εντολή Assembly και πως εκτελείται από το σύστημα
  3. Να περιγράφεις πω γίνεται η αποθήκευση και ανάκληση δεδομένων
  4. Να διαβάζεις κώδικα γλώσσας Assembly
  5. Να γράφεις στοιχειώδη κώδικα σε γλώσσα Assembly
Λέξεις κλειδιά που χαρακτηρίζουν τη θεματική του σεναρίου: 
PIC 16F877
Έλεγχος LED
assembly
Υλικοτεχνική υποδομή: 
Η/Υ, PIC16Φ877, ΑΝΤΙΣΤΑΣΕΙΣ-ΠΥΚΝΩΤΕΣ κλπ ηλεκτρονικά
Δημιουργός Σεναρίου: ΕΛΕΥΘΕΡΙΟΣ ΝΑΘΑΝΑΗΛΙΔΗΣ (Εκπαιδευτικός)