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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Υπολογιστών

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

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

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Ψηφιακά Συστήματα. 8. Καταχωρητές

Μάθημα 7: Μικροϋπολογιστικό Σύστημα και Μνήμες

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

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

Εισαγωγή στην επιστήμη των υπολογιστών

Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers. Σ. Τσιτµηδέλης ΤΕΙ ΧΑΛΚΙΔΑΣ

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

Λύσεις Ασκήσεων ΣΕΙΡΑ 1 η. Πρόσημο και μέγεθος

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

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

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

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

Σύστημα Πλεονάσματος. Αναπαράσταση Πραγματικών Αριθμών. Αριθμητικές Πράξεις σε Αριθμούς Κινητής Υποδιαστολής

ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΚΗ I. 3o ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑ ΜΕ ΤΟ WORD

Εργαστήριο 4 ΔΗΜΙΟΥΡΓΙΑ ΓΡΑΦΗΜΑΤΩΝ ΜΕ ΤΟ EXCEL ΑΚ ΤΡΑΥΛΟΣ

Θεωρητικές Ερωτήσεις

Συμβολική Γλώσσα στον ΑΒΑΚΑ

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

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

ΣΕΛΙ Α 1 ΚΕΦΑΛΑΙΟ 1 - ΑΡΧΙΚΑ

Ελέγξτε την ταινία σας

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

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

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Φύλλο εργασίας 1 Εισαγωγή στη Ρομποτική

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

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

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

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

Δημιουργία η-μαθήματος με τη. 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

Εγχειρίδιο χρήσης του Άβακα

Σχετική κίνηση αντικειμένων

Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ. A. Μετατροπή αριθμών 1. Μετατροπή αριθμών από δεκαδικό σε δυαδικό σύστημα αρίθμησης

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

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

Έργα. Οδηγός γρήγορης εκκίνησης. Παρακολούθηση των εργασιών σας. Προβολή εργασιών σε λωρίδα χρόνου. Κοινή χρήση του έργου σας με άλλα άτομα

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

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

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009

Οργάνωση Υπολογιστών (Ι)

Εισαγωγή στο Dir Me Up

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

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

Αριθμητική Υπολογιστών (Κεφάλαιο 3)

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΟΝΑΔΑ ΑΡΙΣΤΕΙΑΣ ΕΛ/ΛΑΚ

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

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

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις

ξργ Μονάδα επεξεργασίας ξργ δδ δεδομένων Μονάδα ελέγχου

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

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

γρηγορότερα. Αν θέλουμε να μηδενίσουμε όλα τα υπόλοιπα bit μπορούμε να χρησιμοποιήσουμε την εντολή:

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

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Κεφάλαιο 2.3: Ρυθμίσεις των Windows

2 ο Εργαστήριο Αλληλεπίδραση και Animation

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

8051 Interrupt Ports. Name Alternate Function

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

ΠΑΡΑ ΕΙΓΜΑ 8 ΓΕΝΝΗΤΡΙΑ ΨΕΥ ΟΤΥΧΑΙΩΝ ΑΡΙΘΜΩΝ (PSEUDORANDOM GENERATOR) 8.0 ΓΕΝΙΚΑ

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

MICROSOFT OFFICE 2003 MICROSOFT WORD 2003

HY430 Εργαστήριο Ψηφιακών Κυκλωμάτων.

Έλεγχος ορθογραφίας. Ορισμός γλώσσας

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

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

Υπολογισμός αθροισμάτων

Δημιουργία και επεξεργασία διανυσματικών επιπέδων στο QGIS

Transcript:

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών Βοήθημα για την εργαστηριακή άσκηση 10: Εφαρμογές των χρονιστών και των διακοπών Άσκηση 2 Στην άσκηση αυτή συνυπάρχουν τα ακόλουθα: Κυρίως πρόγραμμα. Αυξάνει συνεχώς και χωρίς ενδιάμεση καθυστέρηση το περιεχόμενο του καταχωρητή R2. Διακοπή. ΙΝΤ0 o Είναι ακμοπυροδότητη. o Η ρουτίνα εξυπηρέτησής της: παίρνει το τρέχον περιεχόμενο του R2 και το εμφανίζει στην πόρτα P0, αποθηκεύει στη θέση της RAM με διεύθυνση 30h το περιεχόμενο αυτό, αυξημένο κατά 5. Διακοπή. ΙΝΤ1 o Είναι ακμοπυροδότητη. o Η ρουτίνα εξυπηρέτησής της: παίρνει το τρέχον περιεχόμενο του R2 και το εμφανίζει στην πόρτα P0, αποθηκεύει στη θέση της RAM με διεύθυνση 31h το περιεχόμενο αυτό, αφού ανταλλάξει τα δύο μισά του (nibbles). Για παράδειγμα ο αριθμός ΑΕh μετατρέπεται στον EAh. Διακοπή του απαριθμητή Τ0. o Να συμβαίνει κάθε 100.000 κύκλους μηχανής. o Σε κάθε υπερχείλιση ένας άσσος στην πόρτα P1 να ολισθαίνει προς τα δεξιά. Διακοπή του απαριθμητή Τ1. o Να συμβαίνει κάθε 70.000 κύκλους μηχανής. o Σε κάθε υπερχείλιση ένας άσσος στην πόρτα P2 να ολισθαίνει προς τα αριστερά. Υποδείξεις για τη συγγραφή του προγράμματος 1. Τοποθετήστε την εντολή LJMP 0100h στη διεύθυνση 0000h, ώστε το πρόγραμμα να μπορεί να δουλέψει απρόσκοπτα μετά από Reset Cpu 2. Στις διευθύνσεις 0003h, 000Bh, 0013h, 001Bh θα πρέπει να γράψετε κατάλληλες εντολές LJMP προς τις ρουτίνες εξυπηρέτησης των διακοπών. Το βήμα αυτό μπορείτε να το πραγματοποιήσετε, αφού ολοκληρώσετε τη συγγραφή των ρουτινών. 3. (0100h) Κυρίως πρόγραμμα. Αποτελείται από: a. Τις αρχικοποιήσεις των κατάλληλων καταχωρητών. b. (0140h) Τον ατέρμονα βρόχο αύξησης του R2. 4. (0200h) Ρουτίνα εξυπηρέτησης της διακοπής ΙΝΤ0 5. (0300h) Ρουτίνα εξυπηρέτησης της διακοπής ΙΝΤ1 6. (0400h) Ρουτίνα εξυπηρέτησης της διακοπής του απαριθμητή T0 7. (0500h) Ρουτίνα εξυπηρέτησης της διακοπής του απαριθμητή T1 8. Προσπαθήστε να γράψετε τον κώδικα σταδιακά, τεστάροντας για κάθε τμήμα του προγράμματος την καλή λειτουργία του. 9. Προσπαθήστε να γράψετε το πρόγραμμα μόνοι/-ες σας! Αν, παρ ελπίδα, «κολλήσετε» κατά τη συγγραφή κάποιου από τα συνιστώντα μέρη του προγράμματος μπορείτε να ανατρέξετε στις υποδείξεις που ακολουθούν στις επόμενες σελίδες. 1

Ρουτίνα εξυπηρέτησης της διακοπής ΙΝΤ0 (0200h) Φυλάξτε τα περιεχόμενα του καταχωρητή PSW στο σωρό. Στη συνέχεια θα πραγματοποιήσουμε πρόσθεση, η οποία δύναται, εν γένει, να αλλάξει το περιεχόμενο του PSW. Φυλάξτε τα περιεχόμενα του συσσωρευτή στο σωρό για τον ίδιο λόγο. Αντιγράψτε το περιεχόμενο του καταχωρητή R2 στην πόρτα P0. Αντιγράψτε το περιεχόμενο της πόρτας P0 στον συσσωρευτή. Προσθέστε την τιμή 5 στον συσσωρευτή. Αντιγράψτε το περιεχόμενο του συσσωρευτή στη θέση μνήμης 30h. Αποκαταστήστε το περιεχόμενο του συσσωρευτή που είχε φυλαχθεί στο σωρό. Αποκαταστήστε το περιεχόμενο του PSW που είχε φυλαχθεί στο σωρό. Τέλος της ρουτίνας εξυπηρέτησης διακοπής. Ρουτίνα εξυπηρέτησης της διακοπής ΙΝΤ1 (0300h) Φυλάξτε τα περιεχόμενα του συσσωρευτή στο σωρό γιατί θα τον χρησιμοποιήσουμε στη συνέχεια. Αντιγράψτε το περιεχόμενο του καταχωρητή R2 στην πόρτα P0. Αντιγράψτε το περιεχόμενο της πόρτας P0 στον συσσωρευτή. Αντιγράψτε το περιεχόμενο του συσσωρευτή στη διεύθυνση 31h της RAM. Τέλος της ρουτίνας εξυπηρέτησης διακοπής. Ρουτίνα εξυπηρέτησης της διακοπής του απαριθμητή Τ0 Εργαζόμαστε βάσει της γνωστής μεθοδολογίας: 1. 100.000 = 100 x 1000 2. 65536 1000 = = h 3. Για μεγαλύτερη ακρίβεια. + 09h = h (0400h) «Παγώστε» τη λειτουργία του απαριθμητή Τ0. Πραγματοποιήστε την επαναφόρτωση του ΤΗ0 με την κατάλληλη τιμή που έχετε υπολογίσει. Πραγματοποιήστε την επαναφόρτωση του TL0 με την κατάλληλη τιμή που έχετε υπολογίσει Επανεκκινήστε τη λειτουργία του απαριθμητή Τ0. Αυξήστε κατά 1 την τιμή του καταχωρητή R6 (ή οποιουδήποτε άλλου έχετε επιλέξει εσείς). Ο καταχωρητής αυτός μετρά το πλήθος των υπερχειλίσεων του T0. Αν το πλήθος των υπερχειλίσεων δεν έχει φτάσει ακόμη την δεκαδική τιμή 100, τότε ο κώδικας να προχωρήσει στην ετικέτα FINISH. (διαφορετικά) Να μηδενιστεί η τιμή του καταχωρητή R6 αφού ήδη καταμετρήθηκε μία εκατοντάδα. Να φυλαχθεί η τιμή του συσσωρευτή στο σωρό. 2

Να αντιγραφεί η τιμή της πόρτας P1 στον συσσωρευτή. Να ολισθήσει το περιεχόμενο του συσσωρευτή ένα bit προς τα δεξιά Να αντιγραφεί το περιεχόμενο του συσσωρευτή στην πόρτα P1. Να αποκατασταθεί το περιεχόμενο του συσσωρευτή που είχε φυλαχθεί στο σωρό. FINISH: Ολοκλήρωση της ρουτίνας εξυπηρέτησης διακοπής. Ρουτίνα εξυπηρέτησης της διακοπής του απαριθμητή Τ1 Εργαζόμαστε βάσει της γνωστής μεθοδολογίας: 1. 70.000 = 70 x 1000 2. 65536 1000 =. = h 3. Για μεγαλύτερη ακρίβεια h + 09h =.h (0500h) «Παγώστε» τη λειτουργία του απαριθμητή Τ1. Πραγματοποιήστε την επαναφόρτωση του ΤΗ1 με την κατάλληλη τιμή που έχετε υπολογίσει. Πραγματοποιήστε την επαναφόρτωση του TL1 με την κατάλληλη τιμή που έχετε υπολογίσει Επανεκκινήστε τη λειτουργία του απαριθμητή Τ1. Αυξήστε κατά 1 την τιμή του καταχωρητή R7 (ή οποιουδήποτε άλλου έχετε επιλέξει εσείς). Ο καταχωρητής αυτός μετρά το πλήθος των υπερχειλίσεων του T1. Αν το πλήθος των υπερχειλίσεων δεν έχει φτάσει ακόμη την δεκαδική τιμή 70, τότε ο κώδικας να προχωρήσει στην ετικέτα FINISH2. (διαφορετικά) Να μηδενιστεί η τιμή του καταχωρητή R7 αφού ήδη καταμετρήθηκε μία εκατοντάδα. Να φυλαχθεί η τιμή του συσσωρευτή στο σωρό. Να αντιγραφεί η τιμή της πόρτας P2 στον συσσωρευτή. Να ολισθήσει το περιεχόμενο του συσσωρευτή ένα bit προς τα αριστερά. Να αντιγραφεί το περιεχόμενο του συσσωρευτή στην πόρτα P2. Να αποκατασταθεί το περιεχόμενο του συσσωρευτή που είχε φυλαχθεί στο σωρό. FINISH2: Ολοκλήρωση της ρουτίνας εξυπηρέτησης διακοπής. 3

Άσκηση 1 Στην άσκηση αυτή συνυπάρχουν τα ακόλουθα: Κυρίως πρόγραμμα. Μετακινεί έναν άσσο στην πόρτα P0 κυκλικά και διαρκώς προς τα δεξιά. Η ταχύτητα του άσσου ρυθμίζεται με τη βοήθεια ρουτίνας καθυστέρησης σε μία θέση ανά δευτερόλεπτο περίπου Απαριθμητής Τ1 ο οποίος: o Λειτουργεί ως 16-bit-ος χρονιστής, με ενεργοποιημένη τη λειτουργία GATE. o Κατά την υπερχείλισή του, η αντίστοιχη ρουτίνα εξυπηρέτησης διακοπής πραγματοποιεί μέτρηση των υπερχειλίσεων (π.χ. στον καταχωρητή R5). Διακοπή ΙΝΤ1 η οποία: o Θα καταγράφει στον DPTR την τρέχουσα τιμή του απαριθμητή Τ1. o Θα σχηματίζει λίστα στη μνήμη RAM από τριάδες τιμών (bytes) οι οποίες θα αντιστοιχούν: a) στο πλήθος καταμετρημένων υπερχειλίσεων του T1 από την τελευταία φορά που ενεργοποιήθηκε η, ΙΝΤ1 b) ακολουθούμενη από τις τιμές που καταγράφηκαν στον DPTR. H λίστα να ξεκινά στη διεύθυνση 10h της RAM Ρουτίνα καθυστέρησης απλού ή διπλού βρόχου ανάλογα με την ταχύτητα του υπολογιστή στον οποίο πραγματοποιείτε την προσομοίωση. Υποδείξεις για τη συγγραφή του προγράμματος 1. Τοποθετήστε την εντολή LJMP 0100h στη διεύθυνση 0000h, ώστε το πρόγραμμα να μπορεί να δουλέψει απρόσκοπτα μετά από Reset Cpu 2. Στις διευθύνσεις 0013h, 001Bh θα πρέπει να γράψετε κατάλληλες εντολές LJMP προς τις ρουτίνες εξυπηρέτησης των διακοπών. Το βήμα αυτό μπορείτε να το πραγματοποιήσετε, αφού ολοκληρώσετε τη συγγραφή των ρουτινών. 3. (0100h) Κυρίως πρόγραμμα. Αποτελείται από: a. Τις αρχικοποιήσεις των κατάλληλων καταχωρητών. b. (0120h) Τον βρόχο μετακίνησης του άσσου στην πόρτα P0. 4. (0200h) Ρουτίνα εξυπηρέτησης της διακοπής ΙΝΤ1 5. (0300h) Ρουτίνα εξυπηρέτησης της διακοπής του απαριθμητή T1 6. (0400h) Ρουτίνα καθυστέρησης. 7. Προσπαθήστε να γράψετε το πρόγραμμα μόνοι/-ες σας! Αν, παρ ελπίδα, «κολλήσετε» κατά τη συγγραφή κάποιου από τα συνιστώντα μέρη του προγράμματος μπορείτε να ανατρέξετε στις υποδείξεις που ακολουθούν στις επόμενες σελίδες. 4

Ρουτίνα εξυπηρέτησης της διακοπής του απαριθμητή Τ1 (0300h) Αυξήστε τον R5 κατά 1 (ή οποιοδήποτε καταχωρητή επιλέξετε για να καταμετρά τις υπερχειλίσεις του Τ1). Τέλος της ρουτίνας εξυπηρέτησης. Ρουτίνα εξυπηρέτησης της διακοπής ΙΝΤ1 (0200h) «Παγώστε» τον απαριθμητή Τ1. (Σχόλιο: Αν ο κώδικας έχει φτάσει σε αυτό το σημείο ο Τ1 είναι ήδη παγωμένος (γιατί;), όμως θέλουμε να εξασφαλίσουμε ότι θα παραμείνει σε αυτή την κατάσταση έως ότου ολοκληρωθεί η καταγραφή της τιμής του). Αντιγράψτε την τιμή TL1 στον DPL. Αντιγράψτε την τιμή ΤΗ1 στον DPH. Μηδενίστε τον TL1. Μηδενίστε τον ΤΗ1. Αντιγράψτε το περιεχόμενο του καταχωρητή R5 (ή όποιου καταχωρητή έχετε επιλέξει εσείς για την καταμέτρηση του πλήθους των υπερχειλίσεων του T1) στη θέση της RAM που «δείχνει» ο R1 (ή οποιοσδήποτε καταχωρητής έχετε επιλέξει εσείς να «δείχνει» στη λίστα της RAM (την ίδια δουλειά θα μπορούσε να κάνει και ο R0) ). Επανεκκινήστε τον T1. Αντιγράψτε το περιεχόμενο του καταχωρητή DPH στη θέση μνήμης που «δείχνει» o R1. Αντιγράψτε το περιεχόμενο του καταχωρητή DPL στη θέση μνήμης που «δείχνει» o R1. Μηδενίστε τον καταχωρητή R5. Τέλος της ρουτίνας εξυπηρέτησης. 5