Εισαγωγή στον προγραμματισμό 8051 στη γλώσσα συναρμολόγησης

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Η γλώσσα συναρμολόγησης είναι μια γλώσσα προγραμματισμού χαμηλού επιπέδου που χρησιμοποιείται για τη σύνταξη κώδικα προγράμματος από άποψη μνημονικής. Ακόμα κι αν υπάρχουν πολλές γλώσσες υψηλού επιπέδου που είναι αυτήν τη στιγμή σε ζήτηση, η γλώσσα προγραμματισμού συναρμολόγησης χρησιμοποιείται ευρέως σε πολλές εφαρμογές. Μπορεί να χρησιμοποιηθεί για άμεσους χειρισμούς υλικού. Χρησιμοποιείται επίσης για να γράψει το 8051 κωδικός προγραμματισμού αποτελεσματικά με μικρότερο αριθμό κύκλων ρολογιού καταναλώνοντας λιγότερη μνήμη σε σύγκριση με τις άλλες γλώσσες υψηλού επιπέδου.

8051 Προγραμματισμός σε γλώσσα συναρμολόγησης

8051 Προγραμματισμός



8051 Προγραμματισμός σε γλώσσα συναρμολόγησης

Η γλώσσα συναρμολόγησης είναι μια γλώσσα προγραμματισμού που σχετίζεται με το υλικό. Οι ενσωματωμένοι σχεδιαστές πρέπει να έχουν επαρκείς γνώσεις σχετικά με το υλικό συγκεκριμένου επεξεργαστή ή ελεγκτών πριν γράψουν το πρόγραμμα. Η γλώσσα συναρμολόγησης αναπτύσσεται από το mnemonics, επομένως, οι χρήστες δεν μπορούν να το καταλάβουν εύκολα να τροποποιήσουν το πρόγραμμα.


8051 Προγραμματισμός σε γλώσσα συναρμολόγησης

8051 Προγραμματισμός σε γλώσσα συναρμολόγησης



Η γλώσσα προγραμματισμού συναρμολόγησης αναπτύσσεται από διάφορους μεταγλωττιστές και ο 'αίθουσα σφαιρίσεως' είναι το καλύτερο κατάλληλο για μικροελεγκτήςπρογραμματισμός ανάπτυξη. Μμικροελεγκτέςή οι επεξεργαστές μπορούν να καταλάβουν μόνο τη δυαδική γλώσσα με τη μορφή «0s ή 1s». Ένας συναρμολογητής μετατρέπει τη γλώσσα συναρμολόγησης σε δυαδική γλώσσα και, στη συνέχεια, την αποθηκεύει στομικροελεγκτήςμνήμη για την εκτέλεση της συγκεκριμένης εργασίας.

8051 Αρχιτεκτονική μικροελεγκτή

Το 8051μικροελεγκτήςείναι το Η αρχιτεκτονική του Χάρβαρντ βασίζεται στην CISC , και έχει περιφερειακά όπως 32 I / O, χρονόμετρα / μετρητές, σειριακή επικοινωνία και μνήμες. ομικροελεγκτήςαπαιτεί ένα πρόγραμμα για την εκτέλεση των λειτουργιών που απαιτούν μνήμη για αποθήκευση και ανάγνωση των λειτουργιών. Το 8051μικροελεγκτήςαποτελείται από μνήμες RAM και ROM για αποθήκευση οδηγιών.

8051 Μικροελεγκτής Arctitecuture

8051 Αρχιτεκτονική μικροελεγκτή

Το Μητρώο είναι το κύριο μέρος του οι επεξεργαστές καιμικροελεγκτές που περιέχεται στη μνήμη που παρέχει έναν γρηγορότερο τρόπο συλλογής και αποθήκευσης των δεδομένων. Ο προγραμματισμός γλώσσας συναρμολόγησης 8051 βασίζεται στους καταχωρητές μνήμης. Εάν θέλουμε να χειριστούμε δεδομένα σε έναν επεξεργαστή ή ελεγκτή εκτελώντας αφαίρεση, προσθήκη κ.λπ., δεν μπορούμε να το κάνουμε απευθείας στη μνήμη, αλλά χρειάζεται καταχωρητές για την επεξεργασία και την αποθήκευση των δεδομένων.Μικροελεγκτέςπεριέχουν διάφορους τύπους καταχωρητών που μπορούν να ταξινομηθούν σύμφωνα με τις οδηγίες τους ή το περιεχόμενο που λειτουργεί σε αυτά.

Προγράμματα μικροελεγκτή 8051 σε γλώσσα συναρμολόγησης

Η γλώσσα συναρμολόγησης αποτελείται από στοιχεία στα οποία όλα χρησιμοποιούνται για τη σύνταξη του προγράμματοςδιαδοχικός τρόπος. Ακολουθήστε τους δεδομένους κανόνες για να γράψετε προγραμματισμό σε γλώσσα συναρμολόγησης.


Κανόνες της γλώσσας συναρμολόγησης

  • Ο κωδικός συναρμολόγησης πρέπει να είναι γραμμένος με κεφαλαία γράμματα
  • Οι ετικέτες πρέπει να ακολουθούνται από άνω και κάτω τελεία (ετικέτα :)
  • Όλα τα σύμβολα και οι ετικέτες πρέπει να ξεκινούν με ένα γράμμα
  • Όλα τα σχόλια πληκτρολογούνται με πεζά γράμματα
  • Η τελευταία γραμμή του προγράμματος πρέπει να είναι η οδηγία ΤΕΛΟΣ

Η μνημονική γλώσσα συναρμολόγησης έχει τη μορφή op-code, όπως MOV, ADD, JMP και ούτω καθεξής, τα οποία χρησιμοποιούνται για την εκτέλεση των λειτουργιών.

Κωδικός Op: Ο κώδικας op είναι μια μεμονωμένη εντολή που μπορεί να εκτελεστεί από τον CPU. Εδώ ο op-code είναι μια εντολή MOV.

Λειτουργίες: Οι τελεστές είναι ένα μεμονωμένο κομμάτι δεδομένων που μπορεί να χρησιμοποιηθεί από τον op-code. Παράδειγμα, η λειτουργία πολλαπλασιασμού εκτελείται από τους τελεστές που πολλαπλασιάζονται με τον τελεστή.

Σύνταξη: MUL α,σι

Τα στοιχεία ενός προγραμματισμού γλωσσών συναρμολόγησης:

  • Συγκεντρώστε οδηγίες
  • Σύνολο οδηγιών
  • Λειτουργίες αντιμετώπισης

Οδηγίες συναρμολόγησης:

Οι οδηγίες συναρμολόγησης δίνουν τις οδηγίες στη CPU. Το 8051μικροελεγκτήςαποτελείται από διάφορα είδη οδηγιών συναρμολόγησης που δίνουν την κατεύθυνση στη μονάδα ελέγχου. Οι πιο χρήσιμες οδηγίες είναι ο προγραμματισμός 8051, όπως:

  • ORG
  • DB
  • EQU
  • ΤΕΛΟΣ

ORG(προέλευση): Αυτή η οδηγία δείχνει την έναρξη του προγράμματος. Αυτό χρησιμοποιείται για τον καθορισμό της διεύθυνσης μητρώου κατά τη συναρμολόγηση. Για παράδειγμα, το ORG 0000h λέει στον μεταγλωττιστή όλους τους επόμενους κωδικούς ξεκινώντας από τη διεύθυνση 0000h.

Σύνταξη: ORG 0000 ώρες

DB(ορίστε byte): Το byte καθορισμού χρησιμοποιείται για να επιτρέψει μια συμβολοσειρά byte. Για παράδειγμα, εκτυπώστε το 'EDGEFX' όπου κάθε χαρακτήρας λαμβάνεται από τη διεύθυνση και τέλος εκτυπώνει το 'string' από το DB απευθείας με διπλά εισαγωγικά.

Σύνταξη:

ORG 0000 ώρες

MOV a, # 00h
————-
————-
DB 'EDGEFX'

EQU (ισοδύναμο): Η ισοδύναμη οδηγία χρησιμοποιείται για να εξισώσει τη διεύθυνση της μεταβλητής.

Σύνταξη:

reg ισο,09ω
—————–
—————–
MOVreg,# 2 ω

ΤΕΛΟΣ: Η οδηγία ΤΕΛΟΣ χρησιμοποιείται για να δείξει το τέλος του προγράμματος.

Σύνταξη:

reg ισο,09ω

—————–
—————–
MOVreg,# 2 ω
ΤΕΛΟΣ

Λειτουργίες αντιμετώπισης:

Ο τρόπος πρόσβασης στα δεδομένα ονομάζεται λειτουργία διευθυνσιοδότησης. Η CPU μπορεί να έχει πρόσβαση στα δεδομένα με διαφορετικούς τρόπους χρησιμοποιώντας τρόπους διευθύνσεων. Το 8051μικροελεγκτήςαποτελείται από πέντε τρόπους αντιμετώπισης όπως:

  • Λειτουργία άμεσης διεύθυνσης
  • Εγγραφή Λειτουργίας Διεύθυνσης
  • Λειτουργία άμεσης διεύθυνσης
  • Λειτουργία έμμεσης διεύθυνσης
  • Λειτουργία διευθύνσεων βασικού ευρετηρίου

Λειτουργία άμεσης διεύθυνσης:

Σε αυτήν τη λειτουργία διευθύνσεων, η πηγή πρέπει να είναι μια τιμή που μπορεί να ακολουθείται από το '#' και ο προορισμός πρέπει να είναι Μητρώα SFR, γενικά μητρώα σκοπού και διεύθυνση. Χρησιμοποιείται για την άμεση αποθήκευση της τιμής στους καταχωρητές μνήμης.

Σύνταξη:

MOV A, # 20h // A είναιένακαταχωρητής συσσωρευτών, 20 αποθηκεύονται στο A //
MOV R0,# 15 // Το R0 είναι καταχωρητής γενικού σκοπού 15 αποθηκεύεται στον καταχωρητή R0 //
MOV P0, # 07h // Το P0 είναι SFR register07 είναι αποθηκευμένο στο P0 //
20 MOV,# 05h // 20h είναι η διεύθυνση του μητρώου 05 που είναι αποθηκευμένη στις 20h //

Πρώην:

MOV R0, # 1
MOV R0, # 20 // R0<—R0[15] +20, η τελική τιμή αποθηκεύεται σε R0 //

Εγγραφή Λειτουργίας Διεύθυνσης:

Σε αυτήν τη λειτουργία διευθύνσεων, η πηγή και ο προορισμός πρέπει να είναι μητρώο, αλλά όχι καταχωρητές γενικού σκοπού. Επομένως, τα δεδομένα δεν μετακινούνται εντός του τραπεζικά μητρώα γενικού σκοπού .

Σύνταξη:

MOV A, B // A είναι μητρώο SFR, B είναι μητρώο γενικής χρήσης //
MOV R0, R1 // Μη έγκυρη οδηγία, GPR σε GPR δεν είναι δυνατή //

ΠΡΩΗΝ:

MOV R0, # 02h
MOV A, # 30h
ΠΡΟΣΘΗΚΗ R0, A // R0<—R0+A, the final value is stored in the R0 register//

Λειτουργία άμεσης διεύθυνσης

Σε αυτήν τη λειτουργία διευθύνσεων, η πηγή ή ο προορισμός (ή και η πηγή και ο προορισμός) πρέπει να είναι διεύθυνση, αλλά όχι αξία.

Σύνταξη:

ΚΙΝΗΣΗ Α,20h // 20h είναι διεύθυνση A είναι μητρώο //
MOV 00h, 07h // και οι δύο απευθύνονται στους καταχωρητές GPS //

Πρώην:

07 ΜΟΒ,# 01 ω
MOV A, # 08h
ΠΡΟΣΘΕΣΕ ΕΝΑ,07ω // Α<—A+07h the final value is stored in A//

Λειτουργία έμμεσης διεύθυνσης:

Σε αυτήν τη λειτουργία διευθύνσεων, η πηγή ή ο προορισμός (ή ο προορισμός ή η πηγή) πρέπει να είναιπρος τηνέμμεση διεύθυνση, αλλά όχι τιμή. Αυτή η λειτουργία διευθύνσεων υποστηρίζει την έννοια του δείκτη. Ο δείκτης είναι μια μεταβλητή που χρησιμοποιείται για την αποθήκευση της διεύθυνσης της άλλης μεταβλητής. Αυτή η έννοια δείκτη χρησιμοποιείται μόνο για καταχωρητές R0 και R1.

Σύνταξη:

MOVR0, # 01h // Η τιμή 01 αποθηκεύεται στον καταχωρητή R0, η διεύθυνση R0 είναι 08h //
MOV R1, # 08h // R1 είναι η μεταβλητή δείκτη πουπρομήθειαδιεύθυνση (08h) του R0 //
20 MOV,Η τιμή @ R1 // 01 αποθηκεύεται στη διεύθυνση 20 ωρών του μητρώου GP //

Λειτουργία έμμεσης διεύθυνσης

Λειτουργία έμμεσης διεύθυνσης

Λειτουργία διευθύνσεων βασικού ευρετηρίου:

Αυτή η λειτουργία διευθυνσιοδότησης χρησιμοποιείται για την ανάγνωση των δεδομένων από το εξωτερική μνήμη ή μνήμη ROM . Όλες οι λειτουργίες διευθύνσεων δεν μπορούν να διαβάσουν τα δεδομένα από τη μνήμη κώδικα. Ο κωδικός πρέπει να διαβάζεται μέσω του μητρώου DPTR. Το DPTR χρησιμοποιείται για να δείξει τα δεδομένα στον κώδικα ή στην εξωτερική μνήμη.

Σύνταξη:

Το MOVC A, @ A + DPTR // C υποδεικνύει τη μνήμη κώδικα //
MOCX A, @ A + DPTR // X υποδεικνύει εξωτερική μνήμη //
Π.χ .: MOV A, # 00H // 00H αποθηκεύεται στον καταχωρητή A //
MOV DPTR, # 0500H // DPTR σημεία 0500h διεύθυνση στη μνήμη //
MOVC A, @ A + DPTR // στείλτε την τιμήπρος τηντο μητρώο A //
MOV P0, A // ημερομηνία αποστολής A στον καταχωρητή PO //

Σύνολο οδηγιών:

Το σύνολο εντολών είναι η δομή του ελεγκτή ή του επεξεργαστή που παρέχει εντολές στον ελεγκτή για να καθοδηγήσει τον ελεγκτή για την επεξεργασία δεδομένων. Το σύνολο εντολών αποτελείται από οδηγίες, εγγενείς τύπους δεδομένων, τρόπους διευθύνσεων, καταχωρητές διακοπής, εξαιρετικό χειρισμό και αρχιτεκτονική μνήμης. ο 8051μικροελεγκτής μπορεί να ακολουθήσει τις οδηγίες CISC με την αρχιτεκτονική του Χάρβαρντ. Στην περίπτωση του προγραμματισμού 8051 διαφορετικοί τύποι οδηγιών CISC περιλαμβάνουν:

  • Σύνολο οδηγιών μεταφοράς δεδομένων
  • Σετ διαδοχικών οδηγιών
  • Σετ αριθμητικής διδασκαλίας
  • Διακλάδωση Ικατασκευήσειρά
  • Σετ προσομοίωσης βρόχου
  • Σετ οδηγιών υπό όρους
  • Απεριόριστο σετ οδηγιών
  • Σύνολο λογικών οδηγιών
  • Σετ Boolean Instruction

Σετ αριθμητικής διδασκαλίας:

Οι αριθμητικές οδηγίες εκτελούν τις βασικές λειτουργίες όπως:

  • Πρόσθεση
  • Πολλαπλασιασμός
  • Αφαίρεση
  • Διαίρεση

Πρόσθεση:

ORG 0000 ώρες
MOV R0, # 03H // μετακινήστε την τιμή 3 στον καταχωρητή R0 //
MOV A, # 05H // μετακινήστε την τιμή 5 στον συσσωρευτή A //
Προσθήκη A, 00H //πρόσθεσε ένατιμή με τιμή R0 και αποθηκεύει το αποτέλεσμασε ένα//
ΤΕΛΟΣ

Πολλαπλασιασμός:

ORG 0000 ώρες
MOV R0, # 03H // μετακινήστε την τιμή 3 στον καταχωρητή R0 //
MOV A, # 05H // μετακινήστε την τιμή 5 στον συσσωρευτή A //
MUL A, 03H //ΠολλαπλασιάζεταιΤο αποτέλεσμα αποθηκεύεται στον Συσσωρευτή A //
ΤΕΛΟΣ

Αφαίρεση:

ORG 0000 ώρες
MOV R0, # 03H // μετακινήστε την τιμή 3 για εγγραφή R0 //
MOV A, # 05H // μετακινήστε την τιμή 5 στον συσσωρευτή A //
SUBB A, 03H // Η τιμή του αποτελέσματος αποθηκεύεται στον Συσσωρευτή A //
ΤΕΛΟΣ

Διαίρεση:

ORG 0000 ώρες
MOV R0, # 03H // μετακινήστε την τιμή 3 για εγγραφή R0 //
MOV A, # 15H // μετακινήστε την τιμή 5 στον συσσωρευτή A //
DIV A, 03H // η τελική τιμή αποθηκεύεται στον Συσσωρευτή A //
ΤΕΛΟΣ

Υπό όρους οδηγίες

Η CPU εκτελεί τις οδηγίες με βάση την κατάσταση ελέγχοντας την κατάσταση του μπιτ ή της κατάστασης του byte. Το 8051μικροελεγκτήςαποτελείται από διάφορες υπό όρους οδηγίες όπως:

  • JB -> Μετάβαση παρακάτω
  • JNB -> Μετάβαση αν όχι παρακάτω
  • JC -> Μετάβαση αν μεταφέρετε
  • JNC -> Μετάβαση εάνδενΜεταφέρω
  • JZ -> Μετάβαση αν μηδέν
  • JNZ -> Μετάβαση εάνδενΜηδέν
Υπό όρους οδηγίες

Υπό όρους οδηγίες

1. Σύνταξη:

JB P1.0, ετικέτα
- - - - - - - -
- - - - - - - -
Ετικέτα: - - - - - - - -
- - - - - - - -
ΤΕΛΟΣ

2. Σύνταξη:

JNB P1.0, ετικέτα
- - - - - - - -
- - - - - - - -
Ετικέτα: - - - - - - - -
- - - - - - - -
ΤΕΛΟΣ

3. Σύνταξη:

JC, ετικέτα
- - - - - - - -
- - - - - - - -
Ετικέτα: - - - - - - - -
- - - - - - - -
ΤΕΛΟΣ

4. Σύνταξη:

JNC, ετικέτα
- - - - - - - -
- - - - - - - -
Ετικέτα: - - - - - - - -
- - - - - - - -
ΤΕΛΟΣ
5. Σύνταξη:

JZ, ετικέτα
- - - - - - - -
- - - - - - - -
Ετικέτα: - - - - - - - -
- - - - - - - -
ΤΕΛΟΣ

6. Σύνταξη:

JNZ, ετικέτα
- - - - - - - -
- - - - - - - -
Ετικέτα: - - - - - - - -
- - - - - - - -
ΤΕΛΟΣ

Οδηγίες κλήσης και άλματος:

Οι οδηγίες κλήσης και άλματος χρησιμοποιούνται για την αποφυγή της αναπαραγωγής κώδικα του προγράμματος. Όταν κάποιος συγκεκριμένος κώδικας χρησιμοποιείται περισσότερες από μία φορές σε διαφορετικά μέρη του προγράμματος, αν αναφέρουμεσυγκεκριμένο όνομαπρος τηνκωδικός τότεθα μπορούσαμε να χρησιμοποιήσουμε αυτό το όνομα οπουδήποτε στο πρόγραμμα χωρίς να εισάγουμε έναν κωδικό για κάθε φορά. Αυτό μειώνει την πολυπλοκότητα του προγράμματος. Ο προγραμματισμός 8051 αποτελείται από οδηγίες κλήσης και άλματος όπως LCALL, SJMP.

  • LCALL
  • ΕΝΑ ΤΗΛΕΦΩΝΗΜΑ
  • SJMP
  • LJMP

1. Σύνταξη:

ORG 0000 ώρες
- - - - - - - -
- - - - - - - -
ACALL, ετικέτα
- - - - - - - -
- - - - - - - -
ΣΤΑΣΗ SJMP
Ετικέτα: - - - - - - - -
- - - - - - - -
- - - - - - - -
σωστά
ΝΑ ΣΤΑΜΑΤΗΣΕΙ:ΝΟΡ

2. Σύνταξη:

ORG 0000 ώρες
- - - - - - - -
- - - - - - - -
LCALL, ετικέτα
- - - - - - - -
- - - - - - - -
ΣΤΑΣΗ SJMP
Ετικέτα: - - - - - - - -
- - - - - - - -
- - - - - - - -
σωστά
ΝΑ ΣΤΑΜΑΤΗΣΕΙ:ΝΟΡ

Οδηγίες κλήσης και άλματος

Οδηγίες κλήσης και άλματος

Οδηγίες βρόχου:

Οι οδηγίες βρόχου χρησιμοποιούνται για την επανάληψη του μπλοκ κάθε φορά κατά την εκτέλεση των εργασιών αύξησης και μείωσης. Το 8051μικροελεγκτήςαποτελούνται από δύο τύπους εντολών βρόχου:

  • CJNE -> συγκρίνετε και πηδήξτε αν δεν είναι ίσο
  • DJNZ -> μείωση και άλμα αν όχι μηδέν

1. Σύνταξη:

τουCJNE
MOV A, # 00H
MOV B, # 10Η
Επιγραφή: INC Α
- - - - - -
- - - - - -
CJNE A, ετικέτα

2. Σύνταξη:

τουDJNE

MOV R0, # 10Η
Επιγραφή: - - - - - -
- - - - - -
DJNE R0, ετικέτα
- - - - - -
- - - - - -
ΤΕΛΟΣ

Σύνολο λογικών οδηγιών:

Το σετ εντολών μικροελεγκτή 8051 παρέχει τις οδηγίες λογικής AND, OR, XOR, TEST, NOT και Boolean για το σετ και εκκαθαρίζει τα bit με βάση την ανάγκη του προγράμματος.

Σύνολο λογικών οδηγιών

Σύνολο λογικών οδηγιών

1. Σύνταξη:

MOV A, # 20Η / 00100000 /
MOV R0, # 03H / 00000101 /
ORL A, R0 // 00100000/00000101 = 00000000 //

2. Σύνταξη:

MOV A, # 20Η / 00100000 /
MOV R0, # 03H / 00000101 /
ANL A, R0

3. Σύνταξη:

MOV A, # 20Η / 00100000 /
MOV R0, # 03H / 00000101 /
XRL A, R0

Μετατόπιση χειριστών

Οι τελεστές μετατόπισης χρησιμοποιούνται για την αποστολή και λήψη των δεδομένων αποτελεσματικά. Το 8051μικροελεγκτήςαποτελούνται από τέσσερις χειριστές βάρδιας:

  • RR -> Περιστροφή δεξιά
  • RRC -> Περιστροφή δεξιά μέσω μεταφοράς
  • RL -> Περιστροφή αριστερά
  • RLC -> Περιστροφή αριστερά μέσω μεταφοράς

Περιστροφή δεξιά (RR):

Σε αυτή τη λειτουργία αλλαγής, το MSB γίνεται LSB και όλα τα bit μετατοπίζονται προς τη δεξιά πλευρά bit-by-bit, σειριακά.

Σύνταξη:

MOV A, # 25 ώρες
RR Α

Περιστροφή αριστερά (RL):

Σε αυτή τη λειτουργία αλλαγής, το MSB γίνεται LSB και όλα τα bit μετατοπίζονται προς την αριστερή πλευρά bit-by-bit, σειριακά.

Σύνταξη:

MOV A, # 25 ώρες
RL Α

RRC Περιστροφή δεξιά μέσω μεταφοράς:

Σε αυτή τη λειτουργία αλλαγής, το LSB κινείται για μεταφορά και η μεταφορά γίνεται MSB και όλα τα bit μετατοπίζονται προς τη δεξιά πλευρά bit προς τη θέση bit.

Σύνταξη:

MOV A, # 27h
RRC Α

RLC Περιστροφή αριστερά μέσω μεταφοράς:

Σε αυτή τη λειτουργία αλλαγής, το MSB κινείται για μεταφορά και η μεταφορά γίνεται LSB και όλα τα bit μετατοπίζονται προς την αριστερή πλευρά σε θέση bit-by-bit.

Σύνταξη:

MOV A, # 27h
RLC Α

Βασικά ενσωματωμένα προγράμματα C:

ομικροελεγκτήςο προγραμματισμός διαφέρει για κάθε τύπο λειτουργικού συστήματος. Υπάρχουν πολλά λειτουργικά συστήματα όπως Linux, Windows, RTOS και ούτω καθεξής. Ωστόσο, το RTOS έχει πολλά πλεονεκτήματα για την ανάπτυξη ενσωματωμένων συστημάτων. Μερικά από τα παραδείγματα προγραμματισμού σε επίπεδο Συνέλευσης δίνονται παρακάτω.

Αναβοσβήνει LED με χρήση 8051μικροελεγκτής:

  • Εμφάνιση αριθμού σε οθόνη 7 τμημάτων με χρήση 8051 μικροελεγκτή
  • Υπολογισμοί χρονοδιακόπτη / μετρητή και πρόγραμμα με χρήση 8051μικροελεγκτής
  • Υπολογισμοί και πρόγραμμα σειριακής επικοινωνίας με χρήση 8051μικροελεγκτής

Προγράμματα LED με 8051 Mικροκοντλερ

1. WAP για εναλλαγή των LED PORT1

ORG 0000Η
ΕΝΑΡΞΗ: MOV P1, # 01 //κίνηση00000001 στο μητρώο p1 //
ΚΑΘΥΣΤΕΡΗΣΗ ΚΛΗΣΗΣ // εκτέλεση της καθυστέρησης //
MOV A, P1 // μετακίνησητιμή p1στον συσσωρευτή //
CPL A // συμπλήρωμα Α τιμή //
MOV P1, A // μετακίνηση 11111110 στο μητρώο port1 //
ΚΑΘΥΣΤΕΡΗΣΗ ΚΛΗΣΗΣ // εκτέλεση της καθυστέρησης //
Εναλλαγή SJMP
ΚΑΘΥΣΤΕΡΗΣΗ: MOV R5, # 10H // φορτωτής R5 με 10 //
ΔΥΟ: MOV R6, # 200 // φορτωτής καταχωρητής R6 με 200 //
ONE: MOV R7, # 200 // φορτωτής R7 με 200 //
DJNZ R7, $ // μείωση R7 έως ότου είναι μηδέν //
DJNZ R6, ONE // μείωση R7 έως ότου είναι μηδέν //
DJNZ R5, TWO // μείωση R7 έως ότου είναι μηδέν //
RET // επιστροφή στο κύριο πρόγραμμα //
ΤΕΛΟΣ

Υπολογισμοί χρονοδιακόπτη / μετρητή με χρήση 8051 Mμικροελεγκτής:

Η καθυστέρηση είναι ένας από τους σημαντικούς παράγοντες στην ανάπτυξη λογισμικού εφαρμογών. ο χρονόμετρα και μετρητές είναι στοιχεία υλικού τουμικροελεγκτής, που χρησιμοποιούνται σε πολλές εφαρμογές για να παρέχουν την ακριβή χρονική καθυστέρηση με παλμούς μέτρησης. σιοι εργασίες εκτελούνται με την τεχνική του λογισμικού.

1. WAP για τον υπολογισμό της καθυστέρησης 500us.

MOV TMOD, # 10H // επιλέξτε τη λειτουργία χρονοδιακόπτη από τους καταχωρητές //
MOV TH1, # 0FEH // αποθηκεύστε το χρόνο καθυστέρησης σε υψηλότερο bit //
MOV TL1, # 32H // αποθηκεύστε το χρόνο καθυστέρησης σε χαμηλό bit //
JNB TF1, $ // μείωση της τιμής του χρονοδιακόπτη έως ότου είναι μηδέν //
CLR TF1 // διαγράψτε τη σημαία του χρονοδιακόπτηκομμάτι//
CLR TR1 // OFF το χρονόμετρο //

2. WAP για εναλλαγή των LEDμε την5δευτχρονοκαθυστερηση

ORG 0000Η
ΕΠΙΣΤΡΟΦΗ: MOV PO, # 00H
ΚΑΘΥΣΤΕΡΗΣΗ ACALL
MOV P0, # 0FFH
ΚΑΘΥΣΤΕΡΗΣΗ ACALL
ΕΠΙΣΤΡΟΦΗ SJUMP
ΚΑΘΥΣΤΕΡΗΣΗ: MOV R5, # 50H // φορτωτής καταχωρητής R5 με 50 //
DELAY1: MOV R6, # 200 // φορτωτής R6 με 200 //
DELAY2: MOV R7, # 229 // φορτωτής R7 με 200 //
DJNZ R7, $ // μείωση R7 έως ότου είναι μηδέν //
DJNZ R6, DELAY2 // μείωση R6 έως ότου είναι μηδέν //
DJNZ R5, DELAY1 // μείωση R5 έως ότου είναι μηδέν //
RET // επιστροφή στο κύριο πρόγραμμα //
ΤΕΛΟΣ

3. WAP για να μετρήσετε τους 250 παλμούς χρησιμοποιώντας το mode0 count0

Σύνταξη:

ORG 0000Η
MOV TMOD, # 50H // επιλέξτε τον μετρητή //
MOV TH0, # 15 // μετακινήστε τους παλμούς μέτρησης υψηλότερα bit //
MOV TH1, # 9FH //κίνησηοι παλμοί μέτρησης, χαμηλότερο bit //
SET TR0 // ON το χρονόμετρο //
JNB $ // μείωση της τιμής μέτρησης έως μηδέν //
CLR TF0 // διαγράψτε τον μετρητή, επισημάνετεκομμάτι//
CLR TR0 // διακοπή του χρονοδιακόπτη //
ΤΕΛΟΣ

Προγραμματισμός σειριακής επικοινωνίας με χρήση 8051 Mμικροελεγκτής:

Σειριακή επικοινωνία χρησιμοποιείται συνήθως για τη μετάδοση και τη λήψη των δεδομένων. Το 8051μικροελεγκτήςαποτελούνται από σειριακή επικοινωνία UART / USART και τα σήματα μεταδίδονται και λαμβάνονται απόΤχκαι καρφίτσες Rx. Η επικοινωνία UART μεταφέρει τα δεδομένα bit-by-bit σειριακά. Το UART είναι ένα πρωτόκολλο half-duplex που μεταφέρει και λαμβάνει τα δεδομένα, αλλά όχι ταυτόχρονα.

1. WAP για μετάδοση των χαρακτήρων στο Hyper Terminal

MOV SCON, # 50H // ορίστε τη σειριακή επικοινωνία //
MOV TMOD, # 20H // επιλέξτε τη λειτουργία χρονοδιακόπτη //
MOV TH1, # -3 // ορίστε το ρυθμό baud //
SET TR1 // ON το χρονοδιακόπτη //
MOV SBUF, # ’S’ // μετάδοση S στο σειριακό παράθυρο //
JNB TI, $ // τιμή μείωσης του χρονοδιακόπτη έως ότου είναι μηδέν //
CLR RI // διαγραφή διακοπής λήψης //
CLR TR1 // διαγραφή χρονόμετρου //

2. WAP για μετάδοση του Λήψη του χαρακτήρα από το Hyper Terminal

MOV SCON, # 50H // ορίστε τη σειριακή επικοινωνία //
MOV TMOD, # 20H // επιλέξτε τη λειτουργία χρονοδιακόπτη //
MOV TH1, # -6 // ορίστε το ρυθμό baud //
SET TR1 // στο χρονόμετρο //
MOV SBUF, # ’S’ // μετάδοση S στο σειριακό παράθυρο //
JNB RI, $ // τιμή μείωσης του χρονοδιακόπτη έως ότου είναι μηδέν //
CLR RI // διαγραφή διακοπής λήψης //
MOV P0, SBUF // αποστολή της τιμής μητρώου SBUF στη θύρα0 //
CLR TR1 // διαγραφή χρονόμετρου //

Αυτό αφορά τον προγραμματισμό 8051 στη γλώσσα Συνέλευσης εν συντομία με προγράμματα που βασίζονται σε παραδείγματα. Ελπίζουμε ότι αυτές οι επαρκείς πληροφορίες για τη γλώσσα συναρμολόγησης θα είναι σίγουρα χρήσιμες για τους αναγνώστες και ανυπομονούμε για τα πολύτιμα σχόλιά τους στην ενότητα σχολίων παρακάτω.