ΜΙΚΡΟΕΛΕΓΚΤΕΣ-ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Β. ΧΡΙΣΤΟΦΙΛΑΚΗΣ ΤΟΜΕΑΣ ΙV ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΕΙΣΑΓΩΓΗ μέρος 3
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ Προγραμματισμός Διαγράμματα ροής Assembly Instruction Set 68HC05
Διαδικασία προγραμματισμού Καταγραφή προδιαγραφών Σχεδίαση προγράμματος Εφαρμογή της σχεδίασης σε κώδικα Έλεγχος Διορθώσεις
Καταγραφή προδιαγραφών Ο μικροελεγκτής λαμβάνει πληροφορία από της 4 συσκευές εισόδου. Η πληροφορία αυτή μπορεί να έχει ψηφιακή ή αναλογική μορφή. Η πληροφορία από τις συσκευές εισόδου 1 και 2 είναι σε ψηφιακή μορφή και η binary τιμή της (για κάθε συσκευή) εξαρτάται από τη κατάσταση 8 διακοπτών. Οι συσκευές εισόδου 3, 4 δίνουν πληροφορία στο pin P1.6 της πόρτας 1 του μικροελεγκτή σε ψηφιακή μορφή, με τη βοήθεια τον μεταλλακτών αναλογικού σε ψηφιακού 1 και 2 αντίστοιχα. Το αναλογικό σήμα λαμβάνεται από 2 αισθητήρες θερμοκρασίας
Σχεδίαση προγράμματος Διαγράμματα ροής Χρησιμοποιούν 4 βασικά σύμβολα: delay Process Terminator Decision connector
Αποτελούν μια κοινή γλώσσα επικοινωνίας ανεξάρτητη από τη γλώσσα προγραμματισμού που θα χρησιμοποιηθεί
ΑΣΚΗΣΗ μC ελέγχει αυτόματο σύστημα ποτίσματος γκαζόν. Ο μC ελέγχει την υγρασία του γκαζόν μέσω αισθητήρα. Όταν η υγρασία είναι μικρότερη από 20% τότε ο μC δίνει εντολή να ανοίξει η βάνα ποτίσματος για 1 ώρα. Ετοιμάστε το διάγραμμα ροής.
Έλεγχος Κειμενογράφος Πηγαίος Κώδικας Assembler Εκτελέσιμες εντολές. Αν υπάρχουν σφάλματα στο πηγαίο κώδικα τότε δε παράγεται ο αντικειμενικός κώδικας δηλαδή οι εκτελέσιμες εντολές. Ένα είδος speller
Debugging - Simulation Ακόμα και αν ο κώδικας μας δεν έχει error και παρήχθησαν οι εκτελέσιμες εντολές. Αυτό δε σημαίνει ότι είναι και σωστός Π.χ μπορεί ο κώδικας μας να είχε ως στόχο το άνοιγμα μιας πόρτας και τελικά οι εκτελέσιμες εντολές να οδηγούν στο κλείσιμο. Γι αυτό πρέπει να γίνει προσομοίωση και debugging πριν προχωρήσουμε στην υλοποίηση της εφαρμογής μας.
Υψηλές γλώσσες προγραμματισμού
Machine / Assembly Language Machine Language: Αποτελείται από αριθμούς και είναι κατανοητή μόνο από τον mC . Assembly Language: Έχει την ίδια δομή και set εντολών με την machine language μόνο που αποτελείται από λέξεις αντί για αριθμούς. Μια εντολή ενός 8-bit mC αποτελείται από μερικα bytes και είναι μοναδικη.
Assembly 3 λόγους για τους οποίους χρησιμοποιείται ΤΑΧΥΤΗΤΑ
s19 Συνήθως ένας motorola assembler δημιουργεί ένα s19 file το αρχείο αυτό μπορεί με τη βοήθεια ενός programmer να γραφτεί στην program memory S10901601004100020FE53 S motorola 1: data 09: 9 bytes 0160: starting address 1004: BSET 0 PortA.Direction
S19 Motorola file format S19 Source Code S10901601004100020FE 53 S1041FF000EC S1041FF100EB S1051FFE01607C S9030000FC PortA.Data EQU $0000 ;pseudo operators PortA.Direction EQU $0004 ;comments ROM.Start EQU $0160 ;comments Mask.Option1 EQU $1FF0 Mask.Option2 EQU $1FF1 Reset.Vector EQU $1FFE ORG ROM.Start BSET 0,PortA.Direction BSET 0,PortA.Data Loop BRA Loop ORG Mask.Option1 FCB $00 ORG Mask.Option2 ORG Reset.Vector FDB ROM.Start
S19 επεξήγηση Είναι όλες οι εντολές που μπορεί ο mC να εκτελέσει. Oι εντολές του 68HC05 του επιτρέπουν να διαβάζει σήματα ή δεδομένα από τις πόρτες του, να εκτελεί κατάλληλες διαδικασίες χειρισμού δεδομένων με βάση αυτά τα σήματα και το αντίστροφο βέβαια. Μια εντολή χωρίζεται σε 2 μέρη Τον κώδικα λειτουργίας (op code) (λεει στον mC τι λειτουργία πρέπει να κάνει). Τη διεύθυνση (address) που θα την εκτελέσει
S19 παράδειγμα BSET 0 PortA.Direction BSET 0 PortA.Data Op code Address 10 04 Op code Address 10 00
Λειτουργίες Διευθυνσιοδότησης Το σετ εντολών του M68HC05 αποτελείται από 210 εντολές οι οποίες μπορούν να ταξινομηθούν σε 6 διαφορετικούς τρόπους διευθυνσιοδότησης Τα data γράφονται στην source address και από εκεί γίνονται move στην destination address. Στα μνημονικά του κώδικα πάντα πρώτη είναι η destination address. mnemonic <dest-byte>,<src-byte>
6 τρόποι διευθυνσιοδότησης Ανάλογα με το πώς καθορίζονται στο mnemonic οι source και destination address έχουμε διάφορες addressing modes. Inherent: Ενυπάρχων . Η cpu γνωρίζει όλη τη πληροφορία που απαιτείται. INCA AA+1
Immediate LDA ,#01 Είναι μια 2-byte instruction: A6 01 A6:op code 01: data byte Τα δεδομένα που πρόκειται να αποθηκευτούν κάπου στη μνήμη ακολουθούν αμέσως τον op code. +: very fast -:fixed value
Extended Addressing Mode Αντιγράφει τα δεδομένα (DATA) που βρίσκονται στην διεύθυνση $06E5 στον Accumulator A LDA $06E5 06E5 F0 A F0 DATA
Direct Addressing Mode Direct Addressing Mode μια υποπερίπτωση της extended. Μπορούν να γίνουν access μόνο 256 bytes μνήμης. LDA $E5 $00-FF DATA
Ερώτηση Γιατί δε χρησιμοποιούμε extended addressing mode από τη στιγμή που καλύπτει όλες τις περιπτώσεις ;
Απάντηση 2 bytes στη program memory direct 3 bytes στη program memory extended Den tha paroume gia taksidi mia hmeras th valitsa yperatlantikou taksidiou
Indexed addressing mode Αντιγράφονται στον Α τα δεδομένα στη δέση μνήμης που υποδεικνύει ο Χ register. LDA ,X O X F0 προσοχή το F0 είναι ο δείκτης της θέσης μνήμης. DATA
Indexed addressing mode DATA
Relative Addressing Mode Χρησιμοποιείται μόνο στις εντολές διακλάδωσης (BRANCH) $0024 LABEL ….. $0161 $0162 $0163 Branch to LABEL if A1<A2 $0164 $01E0 -127 ΠΡΟΣΟΧΗ ΣΤΟ ΕΎΡΟΣ ΔΙΑΚΛΑΔΩΣΗΣ +128
Instruction Set Αποτελείται συνολικά από 210 εντολές M68HC05 Applications Guide http://cache.freescale.com/files/microcontrollers/doc/r ef_manual/M68HC05AG.pdf
Instruction Set
Instruction Set