Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα για την εργαστηριακή άσκηση 8: Διακοπές του 8051 οφειλόμενες στους απαριθμητές του

Σχετικά έγγραφα
Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα για την εργαστηριακή άσκηση 10: Εφαρμογές των χρονιστών και των διακοπών

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 5: Εξωτερικές διακοπές του 8051

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών

ΜΑΘΗΜΑ: ΜΙΚΡΟΕΛΕΓΚΤΕΣ

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ

Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal Display

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 4: Ρουτίνες καθυστέρησης. [Συγγραφή ρουτίνας καθυστέρησης]

Αυτή η άσκηση έχει σαν σκοπό, να δείξει τον τρόπο με τον οποίο τίθεται σε λειτουργία η οθόνη LCD του αναπτυξιακού.

ΜΙΚΡΟΕΛΕΓΚΤΕΣ ΘΕΜΑΤΑ ΦΕΒ Ημ/νία:

ΜΑΘΗΜΑ: ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΘΕΜΑΤΑ ΙΟΥΝΙΟΥ 2014

8051 Interrupt Ports. Name Alternate Function

ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ ΦΕΒ 2014 Καθηγητής: Νικολαΐδης Νικ. Ημ/νία εξέτασης:

Σκοπόςτης Διάλεξης. Εφαρμογή των χρονιστών για την ακριβή μέτρηση του χρόνου με την υλοποίηση του προγράμματος Real_Time_Clock.

ΠΕΡΙΕΧΟΜΕΝΑ 1. Υπορουτίνες Μαθηµατικών Πράξεων 1.1. Προσηµασµένοι και απροσήµαστοι αριθµοί 1.2. Μετατροπές προσηµασµένων και απροσήµαστων αριθµών

Συστήματα Μικροϋπολογιστών

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

Επιμέλεια: ρ. Ν. Σγούρος ρ. Ι. Κονταξάκης

74HC573 D7 D6 D5 D4 D3 D2 D1 D0 LE OE A0 A1 A2 A3 A4 A5 A6 A7 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ομή Επανάληψης

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Η συχνότητα f των παλµών 0 και 1 στην έξοδο Q n είναι. f Qn = 1/(T cl x 2 n+1 )

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

Αρχιτεκτονική Υπολογιστών Εργαστήριο

Αρχιτεκτονική Υπολογιστών

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

ΗΜΥ 213. Εργαστήριο Οργάνωσης Η.Y. και Μικροεπεξεργαστών week 5. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

Σημειώσεις για τον 80x86

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Αρχιτεκτονική Υπολογιστών

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 4 Real Mode Interrupts

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΕΦΑΡΜΟΓΕΣ ΚΑΤΑΧΩΡΗΤΩΝ ΟΛΙΣΘΗΣΗΣ

Στο σχήμα 3.1 δίνεται μια μονάδα επεξεργασίας δεδομένων σταθερής υποδιαστολής που εκτελεί οποιαδήποτε από τις κάτωθι εντολές σε ένα κύκλο ρολογιού.

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΡΑΓΚΙΑΟΥΡΗΣ ΝΙΚΟΛΑΟΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Προστασία Δεδομένων Φυσικών Προσώπων - GDPR

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

8.1 Θεωρητική εισαγωγή

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ;

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

Φυσική Απογραφή & Παραστατικά Αποθήκης

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Κεφάλαιο 3 Κεντρική Μονάδα Επεξεργασίας

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019

ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΗΛΕΚΤΡΟΜΗΧΑΝΟΛΟΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ι

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΠΕΝΤΕ (5)

Διάγραμμα Ροής. Σελίδα 1 από 10

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

Επίπεδο Ψηφιακής Λογικής (The Digital Logic Level)

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

K24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops

10. Πληκτρολόγιο matrix 4x4

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

Αρχιτεκτονική υπολογιστών

Καταχωρητές & τμήματα μνήμης του Ματθές Δημήτριος Καθηγητής Πληροφορικής

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ

Εικονική Μνήμη (1/2)

Διοικητική Λογιστική

Οδηγίες Προγραμματισμού αναβαθμισμένου Προγραμματιστή RAIN DIAL

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΠΕΜΠΤΗ 21 ΙΟΥΝΙΟΥ 2018

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Πανεπιστήμιο Θεσσαλίας- Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΗΥ430- Εργαστήριο Ψηφιακών Κυκλωμάτων

3. Προσομοίωση ενός Συστήματος Αναμονής.

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΙΙ Εργαστήριο 2 ο ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ- ΨΕΥΔΟΕΝΤΟΛΕΣ ΜΑΚΡΟΕΝΤΟΛΕΣ- ΔΙΑΔΙΚΑΣΙΕΣ (ΕΙΣΑΓΩΓΗ)

ΔΗΜΟΤΙΚΕΣ ΕΚΛΟΓΕΣ 18/5/2014 ΑΚΥΡΑ

Α. ΣΚΟΔΡΑΣ ΠΛΗ21 ΟΣΣ#2. 14 Δεκ 2008 ΠΑΤΡΑ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ 2008 Α. ΣΚΟΔΡΑΣ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ ΜΕΛΕΤΗΣ

Αρχιτεκτονική Υπολογιστών

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

2. Να γράψετε τους αριθμούς 1, 2, 3, 4, 5 από τη στήλη Α και δίπλα το γράμμα α, β, γ, δ, ε και στ της στήλης Β που δίνει τη σωστή αντιστοίχιση.

Η μέτρηση ενός μεγέθους στο εργαστήριο μπορεί να είναι:

3. Πρόσθεση Πολλαπλασιασμός 4. Πρόσθεση στο πρότυπο ΙΕΕΕ Πολλαπλασιασμός στο πρότυπο ΙΕΕΕ

Transcript:

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών Βοήθημα για την εργαστηριακή άσκηση 8: Διακοπές του 8051 οφειλόμενες στους απαριθμητές του Βήμα προετοιμασίας: Προσθέστε την εντολή LJMP 0100H στη διεύθυνση 0000h της ROM. Άσκηση 1 (LOAD -> AVOCET -> 8_1) 2. Μην πειράξεις την περίοδο του Τ0 (δηλ. χρησιμοποίησε την εξ ορισμού (default) τιμή) 3. Κάνε κάτι κάθε φορά που ο Τ0 υπερχειλίζει Τι συμβαίνει κατά την υπερχείλιση στην παρούσα άσκηση; Μέτρηση των υπερχειλίσεων 1. (010Εh) SETB ET0, ενεργοποίηση των διακοπών του Τ0 (0110h) SETB EA, ενεργοποίηση του γενικού διακόπτη επίτρεψης των διακοπών 2. (0300h) ROUT: INC P0, αρχή της ρουτίνας καταμέτρησης (0302h), τέλος της ρουτίνας καταμέτρησης 3. (000Β h) LJMP ROUT, είναι η θέση του ανύσματος διακοπών που αφορά στις διακοπές του T0 Άσκηση 2α (LOAD -> AVOCET -> 8_2a) 2. Μην πειράξεις την περίοδο του Τ0 (δηλ. χρησιμοποίησε την εξ ορισμού (default) τιμή) 3. Κάνε κάτι κάθε φορά που ο Τ0 υπερχειλίζει Τι συμβαίνει κατά την υπερχείλιση στην παρούσα άσκηση; Δειγματοληψία της P1 και αποθήκευση σε λίστα 1. (0103h) SETB ET0, ενεργοποίηση των διακοπών του Τ0 (0105h) SETB EA, ενεργοποίηση του γενικού διακόπτη επίτρεψης των διακοπών 2. (0110h) MOV R0, #40h, η αρχή της λίστας 3. (0300h) ROUT: MOV @R0, P1, αποθήκευση της δειγματοληπτούμενης τιμής στη λίστα (0302h), μετάβαση στην επόμενη θέση της λίστας (0303h) Άσκηση 2β (LOAD -> AVOCET -> 8_2b) 2. Η νέα περίοδος του Τ0 να ισούται με α φορές την εξ ορισμού (default) τιμή υπερχείλισης (65536 στην περίπτωση του mode 1) Τι συμβαίνει κατά την ολοκλήρωση της νέας περιόδου στην παρούσα άσκηση; 1

1. (0300h) ROUT: INC R4, o R4 μετρά τις υπερχειλίσεις του Τ0 (0301h) CJNE R4, #05h, TELOS, αν δεν έχει ολοκληρωθεί η νέα περίοδος μην κάνεις τίποτα (δηλαδή στη συγκεκριμένη άσκηση a=5 ). (0304h) MOV @R0, P1, αν έχει ολοκληρωθεί η νέα περίοδος δειγματολήπτησε την P1 (0306h), μετακίνηση του δείκτη της λίστας στην επόμενη θέση (0307h) MOV R4, #00h, μηδενισμός του μετρητή υπερχειλίσεων (0309h) TELOS: ή εναλλακτικά ROUT: DJNZ R4, TELOS MOV @R0, P1 MOV R4, #05h TELOS: σε συνδυασμό με τοποθέτηση της MOV R4, #05h στο τμήμα αρχικοποιήσεων του κυρίως προγράμματος. Άσκηση 2γ (LOAD -> AVOCET -> 8_2c) 2. Η νέα περίοδος του Τ0 να είναι μικρότερη της εξ ορισμού (default) τιμής υπερχείλισης (65536 στην περίπτωση του mode 1) Τι συμβαίνει κατά την ολοκλήρωση της νέας περιόδου στην παρούσα άσκηση; Ποια είναι η νέα περίοδος στο συγκεκριμένο πρόγραμμα; 20000 Πώς θα βρώ την τιμή επαναφόρτωσης προσεγγιστικά; 65536 20000 = 45536 = B1E0H. Τι μορφή θα πάρει τώρα η ρουτίνα ROUT; Πρώτα φροντίζουμε για τη διαδικασία της επαναφόρτωσης και μετά για οτιδήποτε άλλο. (0300h) ROUT: CLR TR0, «πάγωμα» του Τ0 (διάρκεια: 1 κύκλος μηχανής) (0302h) MOV TH0, #B1h, επαναφόρτωση του Τ0 (διάρκεια: 2 κύκλοι μηχανής) (0305h) MOV TL0, #E0h, επαναφόρτωση του Τ0 (διάρκεια: 2 κύκλοι μηχανής) (0308h) SETB TR0, επανενεργοποίηση του Τ0 (030Αh) MOV @R0, P1, πραγματοποίηση της δειγματοληψίας (030Ch) (030Dh) Είναι προσεγγιστική η τιμή της επαναφόρτωσης; Ναι είναι! Ποιο είναι το πραγματικό πλήθος κύκλων μηχανής που μεσολαβεί μεταξύ δύο διαδοχικών κλήσεων της ROUT; Το πραγματικό πλήθος των κύκλων μηχανής είναι 20009! Οι 9 επιπλέον κύκλοι μηχανής αναλύονται ως εξής: 1. 2 κύκλοι μηχανής για μετάβαση στο άνυσμα διακοπών 2. 2 κύκλοι μηχανής για μετάβαση στη ROUT 3. 5 κύκλοι μηχανής για το χρόνο που περνά όσο ο Τ0 είναι «παγωμένος» 2

Ποια η ακριβής τιμή επαναφόρτωσης; 45536 + 9 = Β1Ε0h + 09h = B1E9h Άσκηση 2δ (LOAD -> AVOCET -> 8_2d) 2. Η νέα περίοδος του Τ0 να είναι μεγαλύτερη της εξ ορισμού (default) τιμής υπερχείλισης, όχι όμως πολλαπλάσιο αυτής (διότι τότε μεταπίπτουμε στην περίπτωση της άσκησης 2β) Τι συμβαίνει κατά την ολοκλήρωση της νέας περιόδου στην παρούσα άσκηση; Ποια είναι η νέα περίοδος στο συγκεκριμένο πρόγραμμα; 400000 1. Γράψε τη νέα περίοδο ως γινόμενο δύο παραγόντων εκ των οποίων ο ένας να είναι μικρότερος από την εξ ορισμού (default) τιμή υπερχείλισης (65536 στην περίπτωση του mode 1). Για παράδειγμα 400000 = 40000 x 10 2. Συνδύασε τις μεθοδολογίες των ασκήσεων 2β, 2γ. Δηλαδή προσδιορισμός κατάλληλου α (εδώ α = 10) και προσδιορισμός κατάλληλης σταθεράς επαναφόρτωσης για τον Τ0 (εδώ 65536 40000 = 25536 = 63C0h). Τι μορφή θα πάρει τώρα η ρουτίνα ROUT; Πρώτα φροντίζουμε για τη διαδικασία της επαναφόρτωσης και μετά για οτιδήποτε άλλο. (0300h) ROUT: CLR TR0, «πάγωμα» του Τ0 (διάρκεια: 1 κύκλος μηχανής) (0302h) MOV TH0, #63h, επαναφόρτωση του Τ0 (διάρκεια: 2 κύκλοι μηχανής) (0305h) MOV TL0, #C0h, επαναφόρτωση του Τ0 (διάρκεια: 2 κύκλοι μηχανής) (0308h) SETB TR0, επανενεργοποίηση του Τ0 (030Ah) INC R4 (030Bh) CJNE R4,#0Ah, TELOS, έχει επιτευχθεί η τιμή «α»; (030Εh) MOV @R0, P1, αν ναι, τότε πραγματοποίηση της δειγματοληψίας (0310h) (0311h) MOV R4, #00h (0313h) TELOS: Είναι προσεγγιστική η τιμή της επαναφόρτωσης; Ναι είναι! Ποιο είναι το πραγματικό πλήθος κύκλων μηχανής που μεσολαβεί μεταξύ δύο διαδοχικών κλήσεων της ROUT; Το πραγματικό πλήθος των κύκλων μηχανής είναι 40009! (Δες την ανάλυση παραπάνω στην άσκηση 2β) Ποια η ακριβής τιμή επαναφόρτωσης; 25536 + 9 = 63C0h + 09h = 63C9h Άσκηση 3 (LOAD -> AVOCET -> 8_3a) Τι κάνει; Η διακοπή ΙΝΤ0 προκαλεί αποθήκευση της τιμής του T1 στον DPTR Τι να προσέξω; Ο Τ1 πρέπει να «παγώσει» πριν από την καταγραφή της τιμής του. Τι μορφή θα πάρει τώρα η ρουτίνα ROUT; (0300h) CLR TR1, «πάγωμα» του Τ1 (διάρκεια: 1 κύκλος μηχανής) MOV DPL, TL1, καταγραφή του Τ1 (διάρκεια: 2 κύκλοι μηχανής) MOV DPH, TH1, καταγραφή του Τ1 (διάρκεια: 2 κύκλοι μηχανής) 3

MOV TL1, #00h, μηδενισμός του Τ1 (διάρκεια: 2 κύκλοι μηχανής) MOV TH1, #00h, μηδενισμός του Τ1 (διάρκεια: 2 κύκλοι μηχανής) SETB TR1, επανενεργοποίηση του Τ1 Υπάρχει υστέρηση χρόνου κατά την καταγραφή της τιμής του T1 στον DPTR; Ναι! Δηλαδή αν Τ 1 είναι η τιμή του Τ1 κατά την άφιξη της ΙΝΤ0, τότε στον DPTR καταγράφεται η τιμή DPTR = Τ 1 + Δt Πόση είναι η υστέρηση; Δt = +4 κύκλοι μηχανής. Και που οφείλεται αυτό; Στο χρόνο που μεσολαβεί έως και την εντολή CLR TR1, που «παγώνει» τον Τ1 για να γίνει η καταγραφή. Ο χρόνος αυτός αναλύεται ως: 1. 2 κύκλοι μηχανής για μετάβαση στο άνυσμα διακοπών 2. 2 κύκλοι μηχανής για μετάβαση στη ROUT Σημείωση: Kατά την εντολή CLR TR1 o T1 δεν μετράει, «παγώνει» άμεσα. Πόσος χρόνος μεσολαβεί πραγματικά μεταξύ δύο διαδοχικών αρνητικών ακμών ; ΙΝΤ0 1. Όσος χρόνος έχει καταγραφεί στον Τ1 συν 2. όσος χρόνος πέρασε από: την έλευση της πρώτης από τις δύο διακοπές έως: τη στιγμή της επανενεργοποίησης του Τ1, 3. Ο χρόνος του σημείου 2 παραπάνω ισούται με 13 κύκλους μηχανής ( = 4 κύκλοι μηχανής έως την αρχή της ROUT + 9 κύκλοι μηχανής έως την επανενεργοποίηση του Τ1) 3. Συμβολικά, ο χρόνος μεταξύ δύο διαδοχικών αρνητικών ακμών ΙΝΤ0 ισούται με t ΔInt = T 1 + 13 = T 1 + 4 + 9. Τι υπολογισμοί χρειάζονται για τη βελτίωση της ακρίβειας του αποτελέσματος; Όπως είπαμε παραπάνω: t ΔInt = T 1 + 13 = T 1 + 4 + 9 και DPTR = T 1 + 4. συνεπώς t ΔInt = DPTR + 9. Δηλαδή η τιμή του DPTR πρέπει να ενημερωθεί κατά 9 μονάδες για μέγιστη ακρίβεια. Άσκηση 3γ (για το σπίτι) Τι πρέπει να κάνει; Να τροποποιεί την άσκηση 3 ώστε να καταγράφεται σε λίστα στη μνήμη, το πλήθος των τυχόντων υπερχειλίσεων του Τ1 μεταξύ δύο διαδοχικών αφίξεων της διακοπής ΙΝΤ0 μαζί με την τιμή του DPTR της άσκησης 3. Τι αλλαγές πρέπει να γίνουν; 1. Ενεργοποίηση των διακοπών του Τ1. Η σχετική ρουτίνα εξυπηρέτησης διακοπής θα είναι η πολύ απλή: ROUT1: INC R4 η οποία πραγματοποιεί καταμέτρηση των υπερχειλίσεων του Τ1. Το τρέχον πλήθος υπερχειλίσεων φυλάσσεται στον R4. 2. Χρησιμοποίηση κάποιου καταχωρητή, έστω του R0, ως δείκτη στη μνήμη για τις ανάγκες τις λίστας. 3. Αρχικοποίηση των R0, R4 στο τμήμα αρχικοποιήσεων του προγράμματος ως εξής: MOV R0, #40h, η λίστα ξεκινά στη διεύθυνση 40h της μνήμης MOV R4, #00h 4. Ενημέρωση της ρουτίνας ROUT που εξυπηρετεί τη διακοπή INT0 ώστε να πραγματοποιεί την καταγραφή στη λίστα. Ο κώδικα γι αυτή τη διαδικασία θα μπορούσε να είναι ο εξής: 4

ROUT:. MOV @R0, DPL MOV @R0, DPH MOV @R0, R4 MOV R4, #00h, Μηδενισμός του πλήθους των υπερχειλίσεων 5