Εντολές PIC16F rrf <όνομα καταχωρητή>,a a=f ή a=w H εντολή πραγματοποιεί ολίσθηση προς τα δεξιά του καταχωρητή που ακολουθεί μέσω κρατουμένου

Σχετικά έγγραφα
Εντολές PIC16F887. Reg1=b' ' b' '

Καταχωρητής STATUS. IRP: Bit επιλογής περιοχής μνήμης (Bank) για την έμμεση διευθυνσιοδότηση 1= Bank2, Bank3 0= Bank0, Bank1

Εφαρμογές μικροελεγκτών

2. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΩΝ ΘΥΡΩΝ ΕΙΣΟ ΟΥ/ΕΞΟ ΟΥ ΤΟΥ PIC16F877-ΑΡΙΘΜΗΤΙΚΕΣ ΕΝΤΟΛΕΣ

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

Εισαγωγή στους μικροελεγκτές PIC

ΠΑΡΟΥΣΙΑΣΗ ΤΟΥ ΕΡΓΑΣΤΗΡΙΑΚΟΥ ΜΑΘΗΜΑΤΟΣ «ΣΥΣΤΗΜΑΤΑ ΨΗΦΙΑΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ» ή ΠΡΟΓΡΑΜΜΑΤΙΖΟΝΤΑΣ ΤΟΝ ΜΙΚΡΟΕΛΕΓΚΤΉ PIC16F877 ΤΗΣ MICROCHIP TECHNOLOGY INC

1. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΟΥ ΜΙΚΡΟΕΛΕΓΚΤΗ PIC16F877

; Έλεγχος σημαίας λήψης (RCIF=0: άδειος buffer)

LCD_LINE0 equ 0x000 ; Διεύθυνση της γραμμής 0 του LCD LCD_LINE1 equ 0x040 ; Διεύθυνση της γραμμής 1 του LCD

ΔΙΑΚΟΠΕΣ PΙC16F887(INTERRUPTS) Όταν σηματοδοτηθεί μια διακοπή στον PIC16F887, ο έλεγχος του προγράμματος μεταφέρεται στο τμήμα κώδικα που βρίσκεται

ΕΙΣΑΓΩΓΗ. 1. Το λογισμικό MPLAB. 2. Υλικό προγραμματισμού και αποσφαλμάτωσης

Αρχές Προγραμματισμού Πραγματικού Χρόνου

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

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

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

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

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

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

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

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

ίοδοι Εκποµπής Φωτός

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

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο Σύντομη Επανάληψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

Τρόποι Διευθυνσιοδότησης

Παραδείγματα Προγραμματισμού σε Assembly του TRN

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

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

Πανεπιστήµιο Θεσσαλίας Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Αθροιστές. Ημιαθροιστής

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μέρος Β (Οργάνωση Υπολογιστών)

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

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

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

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

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

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

Πράξεις με δυαδικούς αριθμούς

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

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

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers)

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών

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

Δυαδικό Σύστημα Αρίθμησης

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

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

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

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

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

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

Άσκηση 1 (α) Άσκηση 1 (γ) Άσκηση 1 (β) Παραδείγματα Assembly. Άρα με έλεγχο στον $t1 αποφασίζω αν είναι 0 ή 1.

ΠΛΗΡΟΦΟΡΙΚΗ I. 4 η ΔΙΑΛΕΞΗ Αριθμητικά Συστήματα

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

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

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

Αριθµητική υπολογιστών

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

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

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 5 Ανάπτυξη Προγράμματος σε Γλώσσα Λίστας Εντολών

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

Στοιχεία από Assembly Γιώργος Μανής

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

Προγραμματισμός Ι (HY120)

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

ΑΣΚΗΣΕΙΣ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ (σελ στο ΜΥ1011Χ.pdf)

26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-Ι. Ενότητα 1: Εισαγωγή στην Αρχιτεκτονική -Ι

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Δομημένος Προγραμματισμός (ΤΛ1006)

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

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

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

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

Στοιχειώδης προγραμματισμός σε C++

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

Εισαγωγή στην πληροφορική

ΑΣΚΗΣΗ 1 ΑΣΚΗΣΗ 1. Συγγραφή. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

ΕΝΟΤΗΤΑ 3 ΕΚΦΡΑΣΕΙΣ, ΑΝΑΜΟΝΕΣ (DELAYS), ΗΧΟΙ

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

a -j a 5 a 4 a 3 a 2 a 1 a 0, a -1 a -2 a -3

Καταχωρητές γενικής χρήσης και δεδοµένων (Data Registers)

Transcript:

Εντολές PIC16F887 20. rrf <όνομα καταχωρητή>,a a=f ή a=w H εντολή πραγματοποιεί ολίσθηση προς τα δεξιά του καταχωρητή που ακολουθεί μέσω κρατουμένου (Carry) και αν a=f αποθηκεύει το αποτέλεσμα στον καταχωρητή ενώ αν a=w αποθηκεύει το αποτέλεσμα στον W. Επηρεάζει το Carry flag. π.χ.: Αρχικές τιμές: Reg1=b'00001011', W=b'00001111', C=0 rrf Reg1,f τελικές τιμές: Reg1=b'00000101', W=b'00001111', C=1 Η ολίσθηση προς τα δεξιά έχοντας C=0 ισοδυναμεί με διαίρεση με το 2.

Εντολές PIC16F887 21. rlf <όνομα καταχωρητή>,a a=f ή a=w H εντολή πραγματοποιεί ολίσθηση προς τα αριστερά του καταχωρητή που ακολουθεί μέσω κρατουμένου (Carry) και αν a=f αποθηκεύει το αποτέλεσμα στον καταχωρητή ενώ αν a=w αποθηκεύει το αποτέλεσμα στον W. Επηρεάζει το Carry flag. π.χ.: Αρχικές τιμές: Reg1=b'10001011', W=b'00001111', C=0 rlf Reg1,f τελικές τιμές: Reg1=b'00010110', W=b'00001111', C=1 Η ολίσθηση προς τα αριστερά έχοντας C=0 ισοδυναμεί με πολλαπλασιασμό με το 2.

Εντολές PIC16F887 22. bcf <όνομα καταχωρητή>,d d=0 ή 1 ή 2 ή 3 ή 4 ή 5 ή 6 ή 7 H εντολή πραγματοποιεί μηδενισμό bit(d) από τον καταχωρητή που ακολουθεί. π.χ.: Αρχική τιμή: Reg1=b'11111111' bcf Reg1,0 τελική τιμή: Reg1=b'11111110' 23. bsf <όνομα καταχωρητή>,d d=0 ή 1 ή 2 ή 3 ή 4 ή 5 ή 6 ή 7 H εντολή ορίζει στο λογικό '1' το bit(d) από τον καταχωρητή που ακολουθεί. π.χ.: Αρχική τιμή: Reg1=b'00000000' bsf Reg1,0 τελική τιμή: Reg1=b'00000001'

Εντολές PIC16F887 24. btfsc <όνομα καταχωρητή>,d d=0 ή 1 ή 2 ή 3 ή 4 ή 5 ή 6 ή 7 H εντολή πραγματοποιεί παράκαμψη της επόμενη εντολής αν το bit(d) του καταχωρητή που ακολουθεί είναι μηδέν, διαφορετικά δεν γίνεται παράκαμψη της επόμενης εντολής. π.χ.: Reg1=b'10101010' btfsc Reg1,0 εντολή 1 εντολή 2 Μετά την εκτέλεση της εντολής btfsc Reg1,0 η επόμενη εντολή που θα εκτελεστεί θα είναι η 'εντολή 2' καθώς το bit0 (Reg1<0>) είναι ίσο με μηδέν.

Εντολές PIC16F887 25. btfss <όνομα καταχωρητή>,d d=0 ή 1 ή 2 ή 3 ή 4 ή 5 ή 6 ή 7 H εντολή πραγματοποιεί παράκαμψη της επόμενη εντολής αν το bit(d) του καταχωρητή που ακολουθεί είναι '1', διαφορετικά δεν γίνεται παράκαμψη της επόμενης εντολής. π.χ.: Reg1=b'10101010' btfsc Reg1,7 εντολή 1 εντολή 2 Μετά την εκτέλεση της εντολής btfss Reg1,7 η επόμενη εντολή που θα εκτελεστεί θα είναι η 'εντολή 2' καθώς το bit7 (Reg1<7>) είναι ίσο με '1'.

Εντολές PIC16F887 26a. call <ετικέτα> 26b. return H εντολή call πραγματοποιεί διακλάδωση στην ετικέτα που ακολουθεί (κλήση υπορουτίνας) ενώ η εντολή return πραγματοποιεί επιστροφή από υπορουτίνα, π.χ.: Εντολή 1 Εντολή 2 call SUBROUTINE1 Εντολή 3 Εντολή 4 LOOP goto LOOP SUBROUTINE1 Εντολή 5 Εντολή 6 return

Εντολές PIC16F887 27. sleep Με την εντολή αυτή ο μικροελεγκτής εισέρχεται σε λειτουργία χαμηλής κατανάλωσης ισχύος (Low Power Mode). Επανέρχεται σε κανονική λειτουργία μετά από reset ή από αίτηση διακοπής. Στην κατάσταση χαμηλής κατανάλωσης ισχύος απενεργοποιούνται τα περισσότερα κυκλώματα του μικροελεγκτή. Παύει να λειτουργεί ο ταλαντωτής χρονισμού οπότε δεν εκτελούνται εντολές. Η λειτουργία αυτή είναι πολύ σημαντική καθώς σε εφαρμογές που βασίζονται σε μπαταρίες θα πρέπει να έχουμε τη χαμηλότερη δυνατή κατανάλωση ισχύος για τη μεγιστοποίηση της διάρκειας της μπαταρίας. Τυπικά ο μικροελεγκτής καταναλώνει κάποια ma στην κανονική λειτουργία ενώ σε sleep mode μπορεί να καταναλώνει λίγα na.

Καταχωρητές έμμεσης διευθυνσιοδότησης Ο PIC16F887 διαθέτει έναν καταχωρητή δείκτη με τη χρήση του οποίου μπορούμε να πραγματοποιήσουμε έμμεση (ή δεικτοδοτούμενη) διευθυνσιοδότηση. Ο καταχωρητής αυτός είναι ο FSR. Για την προσπέλαση στη διεύθυνση μνήμης που δείχνει ο FSR χρησιμοποιείται το συμβολικό όνομα καταχωρητή INDF. π.χ. Reg1 equ h'20' Reg2 equ h'21' movlw h'20' (W <= h'20') movwf FSR (FSR <= h'20') movlw d'10' (W <= d'10') movwf INDF (Reg1 <= d'10') incf FSR,f (FSR <= FSR+1 ή FSR <= h'21') movwf INDF (Reg2 <= d'10')

Παραδείγματα Ασκήσεις 1. Να δηλωθεί καταχωρητής Reg1 σε θέση μνήμης γενικής χρήσης της RAM του μικροελεγκτή PIC16F887. Να αποθηκευτεί στον Reg1 ο αριθμός d'50' και να γίνει ο πολλαπλασιασμός 50x4. Το αποτέλεσμα να αποθηκευτεί στον καταχωρητή Reg1. Reg1 equ h'20' movlw d'50' ; W <= d'50' movwf Reg1 ; Reg1 <= d'50' rlf Reg1,f ; Reg1 <= Reg1 * 2 = d'100' bcf Reg1,0 ; Μηδενισμός του bit0 rlf Reg1,f ; Reg1 <= Reg1 * 2 = d'200' bcf Reg1,0 ; Μηδενισμός του bit0

Παραδείγματα Ασκήσεις 2. Να δηλωθεί καταχωρητής Reg1 σε θέση μνήμης γενικής χρήσης της RAM του μικροελεγκτή PIC16F887. Να αποθηκευτεί στον Reg1 ο αριθμός d'250' και να γίνει η διαίρεση 250/4. Το αποτέλεσμα να αποθηκευτεί στον καταχωρητή Reg1. Reg1 equ h'20' movlw d'250' ; W <= d'250' movwf Reg1 ; Reg1 <= d'250' rrf Reg1,f ; Reg1 <= Reg1 / 2 = d'125' bcf Reg1,7 ; Μηδενισμός του bit7 rrf Reg1,f ; Reg1 <= Reg1 / 2 = d'62' (C=1) bcf Reg1,7 ; Μηδενισμός του bit7

Παραδείγματα Ασκήσεις 3. Να μηδενιστούν τα bit0 και bit3 του καταχωρητή Reg1. Τα υπόλοιπα bit του καταχωρητή να παραμείνουν όπως ήταν πριν. Πριν: Reg1 = b'uuuuuuuu' bcf Reg1,0 bcf Reg1,3 Μετά: Reg1 = b'uuuu0uu0' 4. Να καθοριστούν στο λογικό '1' τα bit7 και bit2 του καταχωρητή Reg1. Τα υπόλοιπα bit του καταχωρητή να παραμείνουν όπως ήταν πριν. Πριν: Reg1 = b'uuuu0uu0' bsf Reg1,7 bsf Reg1,2 Μετά: Reg1 = b'1uuu01u0' Σημ.: U=Unchanged

Παραδείγματα Ασκήσεις 5. Να γίνει ο έλεγχος αν Reg1=4 τότε να φορτωθεί στον Reg2 η τιμή d'100' διαφορετικά να φορτωθεί η τιμή d'200'.ποιος από τους παρακάτω είναι καλύτερος τρόπος; movlw d'4' movlw d'4' subwf Reg1,w subwf Reg1,w btfsc STATUS,Z btfsc STATUS,Z goto LOAD_100 movlw d'100' goto LOAD_200 btfss STATUS,Z LOAD_100 movlw d'200' movlw d'100' movwf Reg1 movwf Reg1 goto CONTINUE Το λεπτό σημείο εδώ είναι LOAD_200 ότι η εντολή movlw δεν movlw d'200' επηρεάζει το Z flag movwf Reg1 goto CONTINUE CONTINUE...

Παραδείγματα Ασκήσεις 6. Να γίνει πρόγραμμα για τον μικροελεγκτή PIC16F887 το οποίο πραγματοποιεί άθροιση ανάμεσα σε δύο 16-bit αριθμούς. Να γίνει η υπόθεση ότι το υψηλής τάξης byte του 1ου προσθετέου βρίσκεται στη θέση μνήμης h'20'. Να γίνει η υπόθεση ότι το χαμηλής τάξης byte του 1ου προσθετέου βρίσκεται στη θέση μνήμης h'21'. Να γίνει η υπόθεση ότι το υψηλής τάξης byte του 2ου προσθετέου βρίσκεται στη θέση μνήμης h'22'. Να γίνει η υπόθεση ότι το χαμηλής τάξης byte του 2ου προσθετέου βρίσκεται στη θέση μνήμης h'23'. Να αποθηκευτεί το αποτέλεσμα στις θέσεις μνήμης h'30' (high byte) και h'31' (low byte). Τυχόν κρατούμενο να αποθηκεύεται στο Carry flag του καταχωρητή STATUS.

ΛΥΣΗ: include <p16f887.inc> Reg11 equ h'20' Reg10 equ h'21' Reg21 equ h'22' Reg20 equ h'23' Sum1 equ h'30' Sum0 equ h'31' HelpReg equ h'32' org h'00' movlw h'27' movwf Reg11 ; Reg11 <= h'27' movlw h'35' movwf Reg10 ; Reg10 <= h'35' άρα h'2735'= 10037 movlw h'44' movwf Reg21 ; Reg11 <= h'44' movlw h'27' movwf Reg20 ; Reg10 <= h'27' άρα h'4427'= 17447

ΛΥΣΗ (συνέχεια): ;πράξεις άθροισης clrf HelpReg ;μηδενισμός βοηθητικής μεταβλητής movf Reg20,w ; W <= Reg20 addwf Reg10,w ; W <= Reg10 + W movwf Sum0 ; Sum0 <= W btfsc STATUS,C ; Έλεγχος ύπαρξης κρατουμένου bsf HelpReg,0 ; Αποθήκευση κρατουμένου movf Reg21,w ; W <= Reg21 addwf Reg11,w ; W <= Reg11 + W movwf Sum1 ; Sum1 <= W btfsc HelpReg,0 ; Έλεγχος κρατουμένου από πριν incf Sum1,f ; Αύξηση κατά 1 αν είχε Carry LOOP goto LOOP end

Παραδείγματα Ασκήσεις 7. Στις θέσεις μνήμης από h'30' ώς h'37' αποθηκεύονται οι μετρήσεις από έναν αισθητήρα θερμοκρασίας οι οποίες κυμαίνονται από 0 ως 30 βαθμούς Κελσίου. Να βρεθεί ο μέσος όρος των τιμών θερμοκρασίας και να αποθηκευτεί σε καταχωρητή Reg1 που δηλώνεται στη θέση h'20'. ΛΥΣΗ: include <p16f887.inc> Reg1 equ h'20' Counter equ h'21' org h'00' movlw d'8' movwf Counter ; Counter <= d'8' movlw h'30' movwf FSR ; FSR <= d'30'...συνεχίζεται...

ΛΥΣΗ (...συνέχεια...) movlw d'0' ; Μηδενισμός του W LOOP addwf INDF,w ; W <= [FSR] + W incf FSR,f ; FSR <= FSR + 1 decfsz Counter,f ; Μείωση κατά 1 του Counter goto LOOP ; Διακλάδωση αν Counter 0 movwf Reg1 ; Αποθήκευση αθροίσματος στο Reg1 rrf Reg1,f ; Διαίρεση με το 2 bcf Reg1,7 ; Μηδενισμός του bit7 (ίσως C=1) rrf Reg1,f ; Διαίρεση με το 2 (συνολικά /4) bcf Reg1,7 ; Μηδενισμός του bit7 (ίσως C=1) rrf Reg1,f ; Διαίρεση με το 2 (συνολικά /8) bcf Reg1,7 ; Μηδενισμός του bit7 (ίσως C=1) END_LOOP ; Ο Reg1 έχει το μέσο όρο goto END_LOOP ; Το Carry έχει το υπόλοιπο end

ΠΡΟΑΙΡΕΤΙΚΗ ΕΡΓΑΣΙΑ Να γίνει πρόγραμμα για τον μικροελεγκτή PIC16F887 το οποίο πραγματοποιεί αφαίρεση ανάμεσα σε δύο 16-bit αριθμούς. Να γίνει η υπόθεση ότι το υψηλής τάξης byte του αφαιρετέου βρίσκεται στη θέση μνήμης h'20' και ότι το χαμηλής τάξης byte βρίσκεται στη θέση μνήμης h'21'. Να γίνει η υπόθεση ότι το υψηλής τάξης byte του αφαιρέτη βρίσκεται στη θέση μνήμης h'22' και ότι το χαμηλής τάξης byte βρίσκεται στη θέση μνήμης h'23'. Να αποθηκευτεί η διαφορά στις θέσεις μνήμης h'30' (high byte) και h'31' (low byte). Να ερμηνευτεί το αποτέλεσμα της αφαίρεσης (πότε είναι θετικό, πότε αρνητικό, πότε μηδέν) και σε ποια μορφή βρίσκεται. Η εργασία θα περιλαμβάνει κώδικα ο οποίος θα πρέπει να αναπτυχθεί στο περιβάλλον MPLAB IDE καθώς επίσης και ένα συνοπτικό κείμενο στο οποίο θα παρατίθεται η ερμηνεία του αποτελέσματος, το λογικό διάγραμμα και παραδείγματα αφαίρεσης με τα αποτελέσματά της καλύπτοντας κάθε δυνατή περίπτωση.