Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΜενέλαος Δουρέντης Τροποποιήθηκε πριν 8 χρόνια
1
ΕΙΣΑΓΩΓΗ μέρος 2 ΜΙΚΡΟΕΛΕΓΚΤΕΣ - ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Π. ΚΩΣΤΑΡΑΚΗΣ Β. ΧΡΙΣΤΟΦΙΛΑΚΗΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ
2
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ ΕΣΩΤΕΡΙΚΟ MC68HC705C8A CPU ΑΡΙΘΜΗΤΙΚΗ ΛΟΓΙΚΗ ΜΟΝΑΔΑ ΚΑΤΑΧΩΡΗΤΕΣ ΜΝΗΜΗ
3
MC68HC705C8A Ο μικροελεγκτής MC68HC705C8A είναι χαμηλού κόστους, υψηλής απόδοσης που ανήκει στην οικογένεια των 8-bit μικροελεγκτών (MCUs) M68HC05. Όλοι οι μικροελεγκτές της οικογένειας αυτής χρησιμοποιούν την ενισχυμένη κεντρική μονάδα επεξεργαστών M68HC05 (CPU05) και είναι διαθέσιμοι σε ποικίλους τύπους.
4
CPU05 Η CPU του μ C MC68HC705C8A είναι υπεύθυνη για την εκτέλεση των εντολών του προγράμματος. Διαφορετικές CPUs περιλαμβάνουν διαφορετικούς καταχωρητές. Οι διαφορές μεταξύ των CPUs βρίσκονται κυρίως στον αριθμό και το μέγεθος των καταχωρητών που περιλαμβάνουν.
5
Γενικό μπλοκ διάγραμμα μ P
6
ALU ALU - Arithmetic Logic Unit: χρησιμοποιείται για την εκτέλεση και λογικών πράξεων που περιγράφονται από ένα σετ εντολών. Τα διάφορα κυκλώματα δυαδικών αριθμητικών πράξεων αποκωδικοποιούν την εντολή ( στον instruction register) και προετοιμάζουν την ALU για την εκτέλεση της επιθυμητής εντολής. Τα περισσότερα απ ’ αυτά τα κυκλώματα βασίζονται στον αλγόριθμο της πρόσθεσης. Για παράδειγμα η αφαίρεση επιτυγχάνεται με πρόσθεση του αρνητικού αριθμού, ο πολλαπλασιασμός με διαδοχικές προσθέσεις ή ολισθήσεις κάτω από τον έλεγχο της Control Unit.
7
ACCUMULATOR Η ALU παιρνει τα δεδομενα της από έναν ειδικό καταχωρητή, που καλείται ACCUMULATOR ( συσσωρευτής ). ACCUMULATOR: είναι ένας 8-bit γενικής χρήσης καταχωρητής που χρησιμοποιείται για αριθμητικές και λογικές πράξεις, αλλά και για να μεταφέρει δεδομένα από και προς τη μνήμη του μ C.
8
Βασικοί Καταχωρητές Οι βασικοί καταχωρητές που συναντάμαι στους περισσότερους μικροεπεξεργαστές είναι ο καταχωρητής κατάστασης, στοιβας, ο μετρητής προγράμματος
9
Μετρητής Προγράμματος - Program Counter 13-bit καταχωρητής ο οποίος περιέχει τη διεύθυνση της επόμενης εντολής που θα εκτελέσει ο μ C. Το μέγεθος του PC καθορίζεται από τη χωρητικότητα της μνήμης του μ C. Η χωρητικότητα της μνήμης του μ C MC68HC705C8A είναι 8 Kbytes (8192 bytes) κατά συνέπεια το μέγεθος του PC ορίζεται 13bits (2^13=8192).
10
ΣΤΟΙΒΑ - Last in First Out (LIFO)
11
Δείκτης Στοίβας - Stack Pointer Είναι ένας 13-bit καταχωρητής ο οποίος χρησιμοποιειται για να κρατα τη διευθυνση μιας θεσης μνημης ( στο σωρό ) για προσωρινη αποθηκευση δεδομένων. O σωρός, για το μ C που εξετάζουμε, είναι 64 bytes στη μνήμη του που βρίσκονται στις θέσεις $00C0-$00FF. Η τιμή που λαμβάνει ο SP κατά την εκκίνηση του μ C ή με την εκτέλεση της εντολής RSP (Reset Stack Pointer) είναι $00FF. Όταν αποθηκεύουμε δεδομένα στο σωρό η τιμή του SP μειώνεται, ενώ όταν αντλούμε δεδομένα στο σωρό η τιμή του SP αυξάνεται
12
Index Register Είναι ένας 8-bit καταχωρητής που χρησιμοποιείται ως δείκτης για την άντληση πληροφοριών από πίνακα, που όμως μπορεί να χρησιμοποιηθεί και σαν βοηθητικός accumulator για τη μεταφορά δεδομένων από και προς τη μνήμη του μ C. Η εντολή του πολλαπλασιασμού χρησιμοποιεί τον accumulator (A) και τον index register (X).
13
CONDITION CODE REGISTER Περικλείει 5 δείκτες κατάστασης (flags) που εκφράζουν το αποτέλεσμα μιας αριθμητικής ή λογικής πράξης της CPU. Αυτές οι πέντε σημαίες είναι :
14
CONDITION CODE REGISTER CARRY / BORROW (C): η σημαία του κρατουμένου C, υποδεικνύει όταν παίρνει την τιμή «1», ότι προέκυψε κρατούμενο από μία πράξη πρόσθεσης ή δανειζόμενο από μία πράξη αφαίρεσης. Επίσης χρησιμοποιείται από εντολές ολίσθησης και περιστροφής (shift and rotate instructions) όπως και από εντολές διακλάδωσης του προγράμματος όταν το carry bit λάβει την επιθυμητή τιμή (bit test and branch instructions). Π. χ. LDA#!250;A=11111010 2 C=? ADD#!6;A=00000000 2 C=1 LDA#!14;A=00001110 2 C=? SUB#!16;A=11111110 2 C=1
15
CONDITION CODE REGISTER ZERO (Z): η σημαία αυτή γίνεται λογικό «1» όταν το αποτέλεσμα μιας πράξης είναι μηδέν, διαφορετικά γίνεται «0». NEGATIVE (N): τίθεται 1 όταν το πλέον σημαντικό bit του καταχωρητή είναι 1. Στην αριθμητική συμπληρώματος 2 αυτό σημαίνει αρνητικό αριθμό Π. χ. LDA#!35;A=00100011 2 N=0 (MSB=0) ADD#!100;A=10000111 2 N=1 (MSB=1)
16
CONDITION CODE REGISTER INTERRUPT BIT (I): το bit αυτό ενημερώνεται από το χρήστη και όταν παίρνει την τιμή «1» απαγορεύεται η χρήση των διακοπών (interrupts), ενώ όταν μηδενίζεται επιτρέπεται η χρήση των interrupts. HALF-CARRY BIT (H): η μεταφορά κρατουμένου από το 3 ο στο 4 ο bit έχει σαν αποτέλεσμα τη δημιουργία ημίσιου κρατουμένου. Το bit αυτό επηρεάζεται από τις εντολές πρόσθεσης ADD και ADC. Π. χ. LDA#!15;A=00001111 2 H=? ADD#!8;A=00010111 2 H=1
17
ΠΑΡΑΔΕΙΓΜΑ Τι τιμές θα έχουν οι σημαίες Ζ, C, N μετα τη πρόσθεση : 10101010 + 11111111 Το αποτέλεσμα της πρόσθεσης είναι : 1 10101001 Z=0, θα ήταν 1 αν το αποτέλεσμα της πρόσθεσης ήταν 0 C=1, έχουμε κρατούμενο Ν =1, γιατί το MSB είναι 1
18
MEMORY MAP
19
RAM Η μνήμη αυτή είναι πτητική, που σημαίνει ότι χρειάζεται τουλάχιστον 2V τάση τροφοδοσίας για να διατηρήσει τα δεδομένα. Σ ’ αυτήν αποθηκεύουμε δεδομένα που δεν έχουν σταθερή τιμή, αλλά η τιμή τους μεταβάλλεται κατά την εκτέλεση του προγράμματος. Για τον μ C που εξετάζουμε η RAM καταλαμβάνει 176-304 bytes στο χάρτη.
20
Τμήμα μνήμης προγράμματος (PROM): Είναι η περιοχή μνήμης στην οποία αποθηκεύεται το πρόγραμμα του μ C. Κάθε εντολή του προγράμματος είναι ένας 8-bit αριθμός τον οποίο διαβάζουν τα κυκλώματα της CPU και πράττουν ανάλογα με την τιμή που έχει ( π. χ. ο αριθμός 01001000 2 μπορεί να σημαίνει πρόσθεση 2 αριθμών ).
21
Τμήμα μνήμης προγράμματος (PROM): Η μνήμη αυτή είναι μη πτητική, δηλαδή διατηρεί τα δεδομένα ακόμα και μετά την απομάκρυνση της τροφοδοσίας από το κύκλωμα. Η μνήμη αυτή μπορεί να είναι EPROM (Erasable PROM) ή OTPPROM (One Time PROM). Από τη στιγμή που θα προγραμματιστεί δεν μπορούν να ξαναγραφούν δεδομένα σ ’ αυτήν, όμως μπορεί να διαβαστεί όσες φορές χρειαστεί. Η μνήμη EPROM μπορεί να σβηστεί με υπεριώδες φωτισμό και στη συνέχεια να επαναπρογραμματιστεί. Η χωρητικότητά της είναι 7600-7744 bytes.
22
Τμήμα μνήμης εκκίνησης (bootstrap ROM) Σ ’ αυτό το τμήμα μνήμης περιέχεται ένα πρόγραμμα εντολών (firmware) το οποίο χρησιμοποιεί έναν register στο χάρτη μνήμης επονομαζόμενο ως program register, με τον οποίο ελέγχεται η διαδικασία προγραμματισμού της EPROM. Έτσι κατά την έναρξη λειτουργίας του μ C, η CPU ενημερώνεται εάν πρέπει να γράψει ή να ανακτήσει το πρόγραμμα από τη μνήμη του μ C.
23
Program register LAT = 0 Ανάκτηση προγράμματος από μνήμη LAT= 1, PGM=1 Γράψιμο προγράμματος στη μνήμη
24
Τμήμα ανυσμάτων Εφόσον η CPU καταλαβαίνει ότι θα ανακτήσει πρόγραμμα από τη μνήμη του μ C, πηγαίνει στις δύο τελευταίες θέσεις μνήμης, οι οποίες χρησιμοποιούνται για να υποδηλώσουν τη διεύθυνση εκκίνησης του προγράμματος, και μεταφέρει την τιμή αυτή στον program counter για να ξεκινήσει στη συνέχεια η εκτέλεση των εντολών.
25
Στο επόμενο Διαδικασία προγραμματισμού, Assembly, Instruction Set του HC05 WinIDE
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.