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

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

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

Εντολές PIC16F887. Reg1=b' ' b' '

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

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

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

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

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

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

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

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

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

Εισαγωγή στο περιβάλλον Code::Blocks

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

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ

1. Περιβάλλον εργασίας παραδείγματα σύνταξης

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

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

2. Δήλωση μεταβλητών. #include <avr/io.h> #include <util/delay.h> unsigned char i=0xa0; register unsigned char i asm("r3");

Περιεχόµενα. I Βασικές Γνώσεις 1

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

ηµιουργία Αρχείου Πρότζεκτ (.qpf)

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

Δημιουργία μιας εφαρμογής Java με το NetBeans

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

ΕΡΓΑΣΤΗΡΙΟ 6 ΟΔΗΓΗΣΗ ΑΠΕΙΚΟΝΙΣΕΩΝ SSD ΚΑΙ LCD

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017)

Εισαγωγή στον Προγραμματισμό

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Συστηµάτων ΗΜΥ211. Στόχοι Εργαστηρίου. Πανεπιστήμιο Κύπρου. Πανεπιστήμιο Κύπρου. Εργαστήριο Ψηφιακών Συστηµάτων ΗΜΥ211 Χειµερινό 2013

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

Υπολογισμός - Εντολές Επανάληψης

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τα επιμέρους τμήματα Η ΟΜΗ TOY ΥΠΟΛΟΓΙΣΤΗ. Αναπαράσταση μεγεθών. Αναλογική αναπαράσταση ΚΕΝΤΡΙΚΗ ΜΝΗΜΗ ΜΟΝΑ Α ΕΛΕΓΧΟΥ

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 11

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

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

Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Σπύρος Καζαρλής, Χειμώνας

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

Διαχείριση Έργων Πληροφορικής Εργαστήριο

Παραδείγματα Assembly (Μέρος

Τέτοιες λειτουργίες γίνονται διαμέσου του

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

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

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Εμφάνιση μηνυμάτων ή ενεργοποίηση και απενεργοποίηση της ηχούς εντολών.

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

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

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

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Ανάπτυξη εφαρμογής Input-Output

ΑΣΚΗΣΗ 3 ΑΣΚΗΣΗ 3. Μηχανικοί ιακόπτες. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

12. Διακοπές Interrupts (IRQ)

BloodShed Dev C++ Οδηγίες Χρήσης (Συγγραφέας: Πάρις Πολύζος)

Αυτόματος διακόπτης αλλαγής φοράς περιστροφής εναλλασσόμενου τριφασικού κινητήρα βραχυκυκλωμένου δρομέα με έλεγχο PLC

Κέντρο υποστήριξης HP. Εισαγωγή. Τι χρειάζεται να γνωρίζετε. Λήψη και εγκατάσταση της λύσης Vista στα Windows 8. 1 of 5 1/7/2014 2:09 μμ

Πληροφορίες για το Πρόγραμμα Λειτουργίας και την συσκευή PLC Σειράς GΜ7

Δομή Επανάληψης. Κεφάλαιο 7 Mike Trimos

Σχήµα 3.1: Εισαγωγή shift register σε βρόγχο for-loop.

8051 Interrupt Ports. Name Alternate Function

ΗΥ-100: Εισαγωγή στην Επιστήμη Υπολογιστών 3η σειρά ασκήσεων

Εργαστήριο 2. Εαρινό Εξάμηνο Εντολές για είσοδο ακεραίων αριθμών από την κονσόλα:

Προγραμματισμός σε C και προγραμματισμός Μακροεντολών με τον ΕΖ430

Εισαγωγή στην Αριθμητική Ανάλυση

Ενσωµατωµένα Συστήµατα

Σχεδίαση και υλοποίηση συστήματος συναγερμού με. μικροελεγκτή PIC. Πτυχιακή Εργασία του

ΤΠ 2108 Αρχιτεκτονική Υπολογιστών (Εργαστήριο) ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ. Σειρά Ασκήσεων 2

Δομημένος Προγραμματισμός

Ελληνική Έκδ ση. Εισαγωγή. Υλισμικό. Ενεργοποίηση επιλογών RAID. PU103 Sweex 2 Port Serial ATA RAID PCI Card

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

ΑΣΚΗΣΗ 2η ΥΛΟΠΟΙΗΣΗ ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗ ΟΘΟΝΗΣ 7 ΤΜΗΜΑΤΩΝ

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος

1. Εγκατάσταση λογισμικού SafeNet Authentication Client

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

Αυτόματος κλιμακοστασίου με τη χρήση PLC. 1 Θεωρητικό μέρος

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 2: Βρόχοι και Επικοινωνία Κονσόλας στον SPIM. Μανόλης Γ.Η.

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

Οδηγίες EQL Desktop (rev ) ΣΥΝ ΕΣΗ S-710 ΜΕ ΚΑΛΩ ΙΟ USB ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΡΓΑΣΙΕΣ

Αρχιτεκτονική Μνήµης

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται

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

Εισαγωγή στον Προγραμματισμό

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Ελληνική Έκδ ση. Εισαγωγή. Περιεχόμενα της συσκευασίας. Τεχνικές προδιαγραφές. PU001 Sweex 1 Port Parallel PCI Card

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

Transcript:

1 2. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΩΝ ΘΥΡΩΝ ΕΙΣΟ ΟΥ/ΕΞΟ ΟΥ ΤΟΥ PIC16F877-ΑΡΙΘΜΗΤΙΚΕΣ ΕΝΤΟΛΕΣ Σκοπός της άσκησης: εξοικείωση µε τις θύρες εισόδου/εξόδου ενός µικροελεγκτή 2. Θεωρητικό Μέρος 2.1.1 Θύρες εισόδου / εξόδου Ο µικροελεγκτής έχει πέντε θύρες εισόδου/εξόδου, τις Α, Β, C, D, E, οι οποίες έχουν εύρος από 3 έως 8 δυαδικά ψηφία (bits). Αυτές µπορούν να χρησιµοποιηθούν είτε σαν απλές θύρες εισόδου/εξόδου, είτε σαν θύρες των υπόλοιπων περιφερειακών κυκλωµάτων του µικροελεγκτή. Οι ακροδέκτες των θυρών φαίνονται µε τα ονόµατά τους (π.χ. RB0 κλπ.) στο διάγραµµα του σχήµατος 2.1. Στην κάθε θύρα αντιστοιχεί ένας καταχωρητής ελέγχου, που αναφέρεται ως TRIS[ONOMA ΘΥΡΑΣ] (π.χ. TRISΑ, TRISB κλπ). Τα bits του καταχωρητή TRIS καθορίζουν ποιοί ακροδέκτες της θύρας προορίζονται για είσοδο και ποιοί για έξοδο. Επίσης, σε κάθε θύρα αντιστοιχεί και ένας καταχωρητής δεδοµένων, που αναφέρεται ως PORT[ONOMA ΘΥΡΑΣ]. Έτσι, για παράδειγµα, στη θύρα Β αντιστοιχούν οι καταχωρητές TRISB, PORTB. Τόσο ο καταχωρητής TRIS όσο και ο καταχωρητής δεδοµένων PORT της θύρας, εµφανίζονται ως τυπικοί καταχωρητές µέσα στο χώρο διευθύνσεων της µνήµης. Σχήµα 2.1 Εντοπίστε τους ακροδέκτες των θυρών ανάµεσα στο σύνολο των ακροδεκτών του PIC16F877

2 Η εγγραφή δεδοµένων στους ακροδέκτες µιας θύρας µπορεί να γίνει οποιαδήποτε στιγµή, αλλά πρώτα πρέπει να έχουµε ορίσει τους ακροδέκτες της θύρας ως εξόδους. Για να οριστεί ένας ακροδέκτης µιας θύρας (π.χ. της Β) ως έξοδος, το αντίστοιχο bit του καταχωρητή TRISB πρέπει να έχει γίνει '0'. Για να εισάγουµε µια λογική κατάσταση από έναν ακροδέκτη θύρας, π.χ. της Β, πρέπει να έχουµε καταστήσει τον αντίστοιχο ακροδέκτη είσοδο. Για το σκοπό αυτό εγγράφουµε στο αντίστοιχο bit του καταχωρητή TRISB λογικό '1'. Έτσι, για παράδειγµα, ο παρακάτω κώδικας movlw b'00011111' movwf TRISD καθιστά τα πέντε λιγότερο σηµαντικά bits της θύρας D εισόδους και τα τρία πιο σηµαντικά bits εξόδους. 2.2 ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΕΡΟΣ 2.2.1Εφαρµογή ανάγνωσης και εγγραφής στις θύρες εισόδου/εξόδου To παρακάτω πρόγραµµα επιδεικνύει τον τρόπο προγραµµατισµού των θυρών Parallel I/O (PIO) του PIC για είσοδο και για έξοδο. Το διάγραµµα ροής του κώδικα είναι το εξής: Start Output pattern A to Port B Is Pin RD0=1? No Yes Output pattern B to Port B Is Pin RD1=1? No Yes Σχήµα 2.2 Το διάγραµµα ροής της εφαρµογής εισόδου/εξόδου

3 ηµιουργείστε σχέδιο εργασίας (project) µε όνοµα erg22.mcp Πληκτρολογήστε τον κώδικα και αποθηκεύστε τον µε όνοµα erg22.asm. Προσοµοιώστε την λειτουργία του. Για τη σωστή εκπόνηση της άσκησης, ο φοιτητής πρέπει να κατανοεί τη χρήση των εντολών mov, bcf/bsf, btfss/btfsc #include "p16f877.inc" ;Initialization Org 0 ;Start from program memory address 0 bsf STATUS, RP0 ;Change to bank1 movlw b'00000000' ;Make all pins of portb Outputs movwf TRISB movlw b'00000011' ;Make 2 pins of portd inputs movwf TRISD bcf STATUS, RP0 ;Return to bank0 main movlw b'01010101' ;Output to portb movwf PORTB btfss PORTD, 0 ;Wait until pin0 of portd receives 1 goto $-1 ;Loop to previous command movlw b'10101010' ;load new pattern to w movwf PORTB ;Change output combination on portb btfss PORTD, 1 ;Wait until pin1 of portd receives 1 goto $-1 goto main ;Loop to main end Αφού πληκτρολογήσετε το πρόγραµµα, εκτελέστε τη µεταγλώττιση, επιλέγοντας Project/Build all. Στο παράθυρο που θα ανοίξει, επιλέξτε Absolute διευθυνσιοδότηση για την εγγραφή στη µνήµη προγράµµατος (όχι relocatable). Αν ο builder παράγει λάθη (εµφανίζονται µε κόκκινο στην κονσόλα εξόδου), εντοπίστε τα λάθη σας µελετώντας το είδος του σφάλµατος και µεταβαίνοντας στην αντίστοιχη γραµµή του προγράµµατος. Κάνετε τις απαραίτητες διορθώσεις µέχρι να επιτύχει η διαδικασία του builder ( Build Succeeded ). Στη συνέχεια, επιλέξτε Debugger/Tool/MPLABSIM, για να ενεργοποιηθεί ο προσοµοιωτής. Θα εµφανιστούν τα εργαλεία προσοµοίωσης. Χρησιµοποιείστε την δυνατότητα Debugger/Stimulus/New workbook για να δώσετε εικονικά τιµές στους ακροδέκτες της διάταξης, όπως φαίνεται στο παρακάτω παράθυρο.

4 Με κλικ πάνω στις κενές στήλες αντιστοιχούµε ακροδέκτη θύρας και ορίζουµε την ενέργεια που επιτελείται (Action), όταν πατήσουµε στο πλήκτρο Fire. 2.2.2 Προγραµµατισµός της διάταξης ηµιουργείστε το δεκαεξαδικό αρχείο για τον προγραµµατισµό της διάταξης, µε την επιλογή Project-Build all. Συνδέστε τον υπολογιστή µε την αναπτυξιακή πλακέτα EasyPIC5. Η σύνδεση γίνεται µέσω θύρας USB. Ανοίξτε στην οθόνη τον προγραµµατιστή PICflash. Καλέστε το αρχείο.hex που µόλις δηµιουργήσατε. Αν ο µικροελεγκτής που φέρει η αναπτυξιακή πλακέτα είναι ο PIC16F887, κάνετε τις παρακάτω επιλογές των ψηφίων διαµόρφωσης (Configuration Bits), όπως φαίνεται στον πίνακα. Προγραµµατίστε την διάταξη επιλέγοντας Write. Αν η πλακέτα φέρει τον µικροελεγκτή PIC16F877A κάνετε τις ρυθµίσεις των bits διαµόρφωσης όπως παρακάτω:

Α. Παρατηρείστε την κατάσταση των LEDs της θύρας B. Β. Πιέστε τον διακόπτη εισόδου RD0. Τι παρατηρείτε; Γ. Πιέστε τον διακόπτη εισόδου RD1. Επιβεβαιώστε την καλή λειτουργία του προγράµµατος που γράψατε. 5

6 2.3 Χρήση αριθµητικών εντολών (addlw/addwf, sublw/subwf, incf, decf) Να µελετήσετε το παρακάτω διάγραµµα ροής. Το πρόγραµµα προσθέτει όλους τους ακεραίους που βρίσκονται στο διάστηµα 1 έως 10 και βρίσκει το άθροισµα (sum). START Initialize sum (with zero) Initialize element (with start value) Add element to sum Is element=max? Yes No Produce next element Endless wait Σχήµα 2.3 ιάγραµµα ροής του προγράµµατος που συσσωρεύει τους ακεραίους Στο πρόγραµµα που ακολουθεί γίνεται χρήση των παρακάτω νέων στοιχείων: α. Ψευδωνύµων (alias) για την ονοµασία θέσεων µνήµης. Αυτό γίνεται µε δηλώσεις του τύπου: [Ψευδώνυµο] equ [αριθµός θέσης µνήµης] Έτσι, µια θέση µνήµης µπορεί να αναφέρεται στο πρόγραµµα µε το συγκεκριµένο ψευδώνυµο και όχι µε τη σειρά της στον πίνακα της µνήµης. β. Ψευδωνύµων για την ονοµασία σταθερών. Έτσι ο προγραµµατιστής µπορεί να αναφέρεται µε το ίδιο ψευδώνυµο σε µία σταθερή, σε όλη την έκταση του προγράµµατος. γ. Αριθµητικών εντολών: addlw k, addwf f, d (d = 0 ή 1),

7 sublw k, subwf f, d (d = 0 ή 1). Ας σηµειωθεί ότι η πράξη της αφαίρεσης sublw k παράγει τη διαφορά k-[w], µε χρήση του συµπληρώµατος ως προς 2. Εδώ, k είναι µια τιµή, εύρους 8-bit. Αντίστοιχα, η εντολή subwf f, d παράγει τη διαφορά [f]-[w], δηλαδή, αφαιρεί από το περιεχόµενο του καταχωρητή f το περιεχόµενο του w και το τοποθετεί στον w (όταν d=0) ή στον καταχωρητή f όταν d=1. ΚΩ ΙΚΑΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΣΩΡΡΕΥΣΗΣ ΑΚΕΡΑΙΩΝ ;This program adds up all integers in interval [start, max] ;For example from 1 to 10 [1, 10] ;The sum is stored in memory location 21h ;8.10.2012 by my_name #include "p16f877.inc" element sum start max equ 20h ;define address to store current added element equ 21h ;define address for sum equ d'1' ;start int value (decimal) equ d'10' ;max int value (decimal) Org 00 ;Initialize memory movlw 00 movwf sum movlw start movwf element ;initialize sum ;load first element ;main code starts here main movf element,w ;Move current value of element to w addwf sum,1 ;add current element to sum movf element, w sublw max ;compare element with stop value (max-w) btfsc STATUS, Z ;if element exceeds max value, then stop loop goto loop ;endless loop - wait here incf element ;otherwise produce next element goto main ;continue loop end

8 ΥΠΟΧΡΕΩΤΙΚΗ ΕΡΓΑΣΙΑ α. Αφού κατανοήσετε τον κώδικα να τον προσοµοιώσετε στο MPLAB. β. Να µεταφέρετε τα παράθυρα προσοµοίωσης στην εργασία σας. γ. Στη συνέχεια να τροποποιήσετε τον κώδικα, ώστε στο τέλος της διαδικασίας το άθροισµα sum να εµφανίζεται στη θύρα Β.