Μετάβαση στο περιεχόμενο

Συστήματα Μικροϋπολογιστών — 2021 (ερώτημα 4)

Μεταγραφή από το στιγμιότυπο Screenshot_12.png (μόνο το ερώτημα 4).

Screenshot_12.png

  1. Να αναπτυχθεί ρουτίνα που να μετράει αντίστροφα στο κανάλι 2, υπό μορφή παλμών, στη γραμμή CLK/TRG2, κατ' επιλογή με ή χωρίς διακοπές, για πλήθος έως και την τιμή 5 (20%).
  2. Το ερώτημα να απαντηθεί μόνο στην 5η σελίδα του φυλλαδίου απαντήσεων.
Λύσεις (⚪ AI, μη επαληθευμένο)

Κατάσταση: ⚪ AI, μη επαληθευμένο Πηγή: λύσεις AI (gemini-3.7-flash, sonnet), ανεξάρτητη επανάληψη και αντιπαραβολή· καμία δεν έχει ελεγχθεί από άνθρωπο

Προσοχή

Λύση από AI — ελέγξτε την· δεν έχει επαληθευτεί από άνθρωπο. Η ένδειξη «δύο λύσεις συμφωνούν» δεν σημαίνει ότι η απάντηση είναι σωστή.

AI λύσεις — 2021

Οι λύσεις γράφτηκαν από μοντέλα AI και δεν έχουν ελεγχθεί από άνθρωπο. Η αρίθμηση ακολουθεί το αρχείο θεμάτων.

Θέμα 4

Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: χαμηλή

Εννοείται το Z80 CTC: κανάλι 2 σε λειτουργία μετρητή (counter mode), με παλμούς στην είσοδο CLK/TRG2. Ο μετρητής φορτώνεται με σταθερά χρόνου και μειώνεται κατά 1 σε κάθε ενεργή ακμή· όταν φτάσει 0 δίνει παλμό στη ZC/TO και (αν επιτρέπεται) αίτηση διακοπής. Για πλήθος 5 η σταθερά είναι \(TC=5\).

Λέξη ελέγχου καναλιού (bit 0=1): \(D_7\) διακοπή (1=ναι), \(D_6=1\) counter, \(D_5\) αδιάφορο, \(D_4\) ακμή (1 = ανερχόμενη), \(D_3\) αδιάφορο, \(D_2=1\) ακολουθεί σταθερά χρόνου, \(D_1=1\) software reset, \(D_0=1\). - Χωρίς διακοπές: 0101 0111 = 57H - Με διακοπές: 1101 0111 = D7H (επαλήθευση με υπολογισμό).

Τα CH2 είναι η διεύθυνση θύρας του καναλιού 2 (δεν δίνεται στην εκφώνηση· συμβολική).

; --- χωρίς διακοπές (polling) ---
        LD   A, 57H
        OUT  (CH2), A        ; counter, rising edge, TC follows
        LD   A, 5
        OUT  (CH2), A        ; TC = 5
WAIT:   IN   A, (CH2)        ; τρέχουσα τιμή αντίστροφης μέτρησης
        OR   A
        JR   NZ, WAIT        ; μέχρι να φτάσει 0 (5 παλμοί)
        ...

; --- με διακοπές ---
        ; (μία φορά) IM 2 / I = υψηλό byte πίνακα / διάνυσμα στο CH0
        LD   A, VECT         ; bit0 = 0
        OUT  (CH0), A        ; διάνυσμα (τα bit 2-1 συμπληρώνονται με τον αριθμό καναλιού)
        LD   A, 0D7H
        OUT  (CH2), A
        LD   A, 5
        OUT  (CH2), A
        EI
LOOP:   ...                  ; κύριο πρόγραμμα, η ISR καλείται μετά τον 5ο παλμό
Η ανάγνωση της θύρας CH2 επιστρέφει την τρέχουσα τιμή του μετρητή (5→4→…→0, μετά επαναφόρτωση). Ο έλεγχος NZ μπορεί να χάσει το 0 αφού γίνεται άμεση επαναφόρτωση του TC, οπότε στην πράξη προτιμάται η μέθοδος διακοπής. Οι διευθύνσεις θυρών και η ακριβής μορφή δεν δίνονται στο εξεταστικό φύλλο που έχω, γι' αυτό η εμπιστοσύνη είναι χαμηλή.

✔ Επιβεβαίωσε · ✖ Βρήκα λάθος


✖ Βρήκα λάθος στη μεταγραφή