ΣΤΟΙΧΕΙΑ ΠΟΥ ΑΠΑΡΤΙΖΟΥΝ ΕΝΑ Λ.. TEST_PROGRAM Αρχή ή τέλος ή κοµβικό σηµείο ΝΕΧΤ A dip_switch Λειτουργία εισόδου / εξόδου C 0 LOOP A A+1 R7 f A+2 Έλεγχος Πράξεις / ενέργειες Βρόχος R7 φορές Πράξεις... DELAY ΝΕΧΤ Συνέχεια σε άλλο σηµείο / άλλη σελίδα R7 R7-1, R7=0? Κλήση σε υπορουτίνα TELOS Ο ΗΓΙΕΣ ΣΥΝΤΑΞΗΣ Λ.. - Το πρόγραµµα που χρησιµοποιείται περισσότερο για τη σχεδίαση Λ.. εί το Visio 2000. Ξεκινώντας το πρόγραµµα, στο παράθυρο όπου επιλέγουµε νέο διάγραµµα ή άνοιγµα ενός υπάρχοντος, επιλέγουµε «Basic Flowchart». - Για να αναθέσουµε τιµή σε µία µεταβλητή βάζουµε το όνοµά της, ένα βελάκι αριστερά και την τιµή της. Π.χ. TEST 12 το οποίο κωδικοποιείται σε MOV TEST,#12. Αν υπάρχει περίπτωση παρανόησης ως προς το αν εί ο αριθµός
12 δεδοµένο ή διεύθυνση, τότε βάζουµε το # πριν από το 12 αν εί αριθµός ή κλείνουµε το 12 σε παρένθεση αν εί διεύθυνση. Π.χ. το TEST #12 κωδικοποιείται σε MOV TEST,#12 και το TEST (12) σε MOV TEST,12. - Για να βάλουµε αριστερό βελάκι πληκτρολογούµε το γράµµα f και στη συνέχεια το επιλέγουµε και του δίνουµε το font Wingdings 3 : Στην αρχή φαίνεται λίγο κουραστικό αλλά το συνηθίζεις. Πληκτρολογείς f, πατάς Shift και αριστερό βελάκι, κάνεις κλικ στο Arial στη γραµµή εργαλείων, πατάς το πλήκτρο End και το βελάκι επάνω µερικές φορές για να βρεις το Wingdings 3. Τέλος, πατάς Enter. - Κάθε στοιχείο που κατεβάζουµε από το πράσινο παράθυρο έχει κάποιες λαβές από τις οποίες µπορούν να ξεκινήσουν γραµµές. Μόλις σταθούµε µε το ποντίκι σε µία τέτοια λαβή κοκκινίζει. Για να προσθέσουµε µία γραµµή σύνδεσης επιλέγουµε το εργαλείο «Connection tool», πηγαίνουµε σε µία λαβή, µόλις γίνει κόκκινη κάνουµε κλικ, σέρνουµε το ποντίκι µέχρι τη λαβή τέλους και µόλις γίνει κόκκινη αφήνουµε το πλήκτρο του ποντικιού. Η διαδροµή ορίζεται αυτόµατα ώστε να αποφεύγονται τα εµπόδια που θα συναντήσει η γραµµή. Αν, παρόλα αυτά, θέλουµε να αλλάξουµε τη γραµµή σύνδεσης, κάνουµε κλικ επάνω της και σέρνουµε τις µικρές πράσινες λαβές που εµφανίζονται. - Προσοχή: οι απλές γραµµές και τα βέλη που δεν συνδέουν στοιχεία του Λ.. βγαίνουν από το εργαλείο. - Το πάχος, το στυλ και τα βελάκια των απλών γραµµών και των γραµµών σύνδεσης ρυθµίζονται από τα εργαλεία.
- Όταν θέλουµε να οδηγήσουµε περισσότερες από µία γραµµές σε κάποιο στοιχείο του Λ.. (όπως το ΝΕΧΤ στο επόµενο παράδειγµα), επιλέγουµε διαφορετικά σηµεία σύνδεσης του στοιχείου. A=FE Αν, όµως, έχουµε περισσότερα βέλη να καταλήγουν στο ίδιο στοιχείο, προσθέτουµε ένα σηµείο συνέχειας (κυκλάκι) και το µικραίνουµε ώστε ίσα που να φαίνεται. A=FE A=FD - Η κλήση σε υπορουτίνα γίνεται µε το ορθογώνιο µε διπλές γραµµές αριστερά δεξιά. Π.χ. η εντολή CALL DELAY στο Λ.. θα φαίνεται ως DELAY Ο ΗΓΙΕΣ ΚΩ ΙΚΟΠΟΙΗΣΗΣ Λ.. Πολλές φορές στις ασκήσεις ΕΜΕ δίνεται το Λ.. και ζητείται η κωδικοποίησή του στη συµβολική γλώσσα (assembly) του 8051. Θα πρέπει να αποκτήσετε µία κάποια άνεση στην κωδικοποίηση του Λ.. ώστε και να καταλαβαίνετε τι λέει το Λ.. και να τελειώνετε σχετικά γρήγορα. Με µία µικρή εµπειρία, η κωδικοποίηση ενός Λ.. εί υπόθεση µερικών λεπτών. - Κάθε κοµβικό σηµείο του Λ.. εί και µία εττικέτα στο πρόγραµµα. Πολλές φορές θα χρειαστεί να προσθέσετε και δικές σας εττικέτες, όπως στο παράδειγµα της πρώτης σελίδας που πρέπει να ακολουθήσουµε το δρόµο προς την εττικέτα ΝΕΧΤ όταν Α=FF αλλά δεν υπάρχει εντολή CJEQ (Compare and Jump if Equal). Έτσι, στον
κλάδο πρέπει να προσθέσουµε εττικέτα. Γενικά να θυµάστε ότι οι διακλαδώσεις, γίνονται στο του IF και εκεί πρέπει να µπει και η ετικέτα. Βλέπε την τελευταία σελίδα που φαίνεται η κωδικοποίηση του Λ.. της πρώτης σελίδας. - Ως συµπέρασµα του προηγούµενου, όταν συναντάµε IF κάνουµε διακλάδωση όταν δεν ισχύει η συνθήκη και γράφουµε στη συνέχεια ό,τι πρέπει να εκτελείται αν ισχύει η συνθήκη. Π.χ. το Λ.. B 0 B 1 κωδικοποιείται σε CJNE A,#0FFh,AOXIFF MOV B,#0 JMP AOXIFF:MOV B,#1 : - Σε περιπτώσεις, όπως η προηγούµενη, που η ενέργεια του ενός κλάδου αρεί την ενέργεια του άλλου κλάδου του IF (αν βάλουµε 0 στον καταχωρητή Β, αρείται το 1), µπορούµε να απλοποιήσουµε το Λ.. ως εξής: B 1 B 0 το οποίο κωδικοποιείται σε : MOV B,#1 CJNE A,#0FFh, MOV B,#0 Το Λ.. και το πρόγραµµα κάνει ακριβώς την ίδια εργασία όπως και προηγουµένως αλλά εί πιο απλό.
Παράδειγµα: Το Λ.. της πρώτης σελίδας κωδικοποιείται σε