Εκπαιδευτικό πρόγραμμα ενσωματωμένου C με γλώσσα Keil

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





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

Προγραμματισμός Ενσωματωμένου Συστήματος

Προγραμματισμός Ενσωματωμένου Συστήματος



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


Εκπαιδευτικό πρόγραμμα ενσωματωμένου C (8051)

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



Εκμάθηση προγραμματισμού

Εκμάθηση προγραμματισμού

Νωρίτερα, πολλές ενσωματωμένες εφαρμογές αναπτύχθηκαν χρησιμοποιώντας προγραμματισμό σε επίπεδο συναρμολόγησης. Ωστόσο, δεν παρείχαν φορητότητα για να ξεπεράσουν αυτό το πρόβλημα με την εμφάνιση διαφόρων γλωσσών υψηλού επιπέδου όπως C, COBOL και Pascal. Ωστόσο, ήταν η γλώσσα Γ για την οποία έγινε ευρεία αποδοχή ανάπτυξη εφαρμογών ενσωματωμένων συστημάτων , και συνεχίζει να το κάνει.

Ενσωματωμένο σύστημα

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

Ενσωματωμένο σύστημα

Ενσωματωμένο σύστημα

Εισαγωγή στον μικροελεγκτή 8051

Ο μικροελεγκτής 8051 είναι ένας βασικός μικροελεγκτής, παρουσιάζεται για πρώτη φορά από την «Intel Corporation» από το 1970. Αναπτύσσεται από την αρχιτεκτονική του επεξεργαστή 8086. Το 8051 είναι μια οικογένεια του μικροελεγκτή, το οποίο έχει αναπτυχθεί από διάφορους κατασκευαστές, όπως Philips, Atmel, dalls και ούτω καθεξής. Οι μικροελεγκτές 8051 έχει χρησιμοποιηθεί σε πολλά ενσωματωμένα προϊόντα, από παιχνίδια μικρών παιδιών έως μεγάλα συστήματα αυτοκινήτων.


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

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

Ο μικροελεγκτής 8051 είναι ο 8-bit Αρχιτεκτονική «CISC» . Αποτελείται από μνήμες, σειριακή επικοινωνία, διακοπές, θύρες εισόδου / εξόδου και χρονοδιακόπτες / μετρητές, ενσωματωμένους σε ένα ενιαίο ολοκληρωμένο τσιπ, το οποίο έχει προγραμματιστεί για τον έλεγχο των περιφερειακών συσκευών που είναι διασυνδεδεμένες με αυτό. Το πρόγραμμα είναι αποθηκευμένο στη μνήμη RAM του μικροελεγκτή, αλλά πριν γράψουμε το πρόγραμμα, πρέπει να γνωρίζουμε τη μνήμη RAM οργάνωση του μικροελεγκτή.

Προγραμματισμός Ενσωματωμένου Συστήματος: Δήλωση Βασικών

Κάθε συνάρτηση είναι μια συλλογή δηλώσεων που εκτελούν μια συγκεκριμένη εργασία και η συλλογή μιας ή περισσότερων συναρτήσεων ονομάζεται γλώσσα προγραμματισμού. Κάθε γλώσσα αποτελείται από ορισμένα βασικά στοιχεία και γραμματικούς κανόνες. Ο προγραμματισμός γλώσσας C έχει σχεδιαστεί για να λειτουργεί με το σύνολο χαρακτήρων, τις μεταβλητές, τους τύπους δεδομένων, τις σταθερές, τις λέξεις-κλειδιά, τις εκφράσεις και ούτω καθεξής χρησιμοποιούνται για τη σύνταξη ενός προγράμματος Γ. Όλα αυτά θεωρούνται ως αρχείο κεφαλίδας ή αρχείο βιβλιοθήκης και αντιπροσωπεύονται ως

#περιλαμβάνω

Ενσωματωμένη ανάπτυξη προγραμματισμού C

Ενσωματωμένη ανάπτυξη προγραμματισμού C

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

#περιλαμβάνω

Ενσωματωμένες Γ Πρόσθετες λέξεις-κλειδιά

  • sbit
  • κομμάτι
  • SFR
  • πτητικός
  • οι μακροεντολές καθορίζουν

Το 'sbit' χρησιμοποιείται για τη δήλωση του μεμονωμένου PIN του μικροελεγκτή. Για παράδειγμα, το LED είναι συνδεδεμένο στον ακροδέκτη P0.1, δεν συνιστάται η αποστολή της τιμής στον ακροδέκτη θύρας απευθείας, πρώτα, πρέπει να δηλώσουμε τον ακροδέκτη με μια άλλη μεταβλητή και μετά να μπορούμε να χρησιμοποιήσουμε οπουδήποτε στο πρόγραμμα.

Σύνταξη: sbit a = P0 ^ 1 // δηλώνει την αντίστοιχη ακίδα με μεταβλητή //
a = 0x01 // στείλτε την τιμή στον ακροδέκτη θύρας //

Το 'bit' χρησιμοποιείται για τον έλεγχο της κατάστασης της μεταβλητής.

Σύνταξη: bit c // δηλώνει τη μεταβλητή bit //
c = a // μια τιμή αντιστοιχεί στη μεταβλητή c //
αν (c == 1) // ελέγξτε την κατάσταση true ή false //

{
… ..
……
}

Η λέξη-κλειδί 'SFR' χρησιμοποιείται για την πρόσβαση στους καταχωρητές SFR με άλλο όνομα. Το μητρώο SFR ορίζεται ως ειδικό μητρώο λειτουργιών , περιέχει όλους τους περιφερειακούς σχετικούς καταχωρητές αναφέροντας τη διεύθυνση. Το μητρώο SFR δηλώνεται με τη λέξη-κλειδί SFR. Η λέξη-κλειδί SFR πρέπει να είναι με κεφαλαία γράμματα.

Σύνταξη: Θύρα SFR = 0x00 // 0x00 είναι μια θύρα0 διεύθυνση που δηλώνεται από τη μεταβλητή θύρας //
Θύρα = 0x01 // και στη συνέχεια στείλτε την τιμή στη θύρα0 //
καθυστέρηση()
θύρα = 0x00
καθυστέρηση()

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

Σύνταξη: πτητικό int k

Η μακροεντολή είναι ένα όνομα που χρησιμοποιείται για να δηλώσει το μπλοκ των δηλώσεων ως οδηγία πριν από τον επεξεργαστή. Όποτε χρησιμοποιείται το όνομα, αντικαθίσταται από το περιεχόμενο της μακροεντολής. Οι μακροεντολές αντιπροσωπεύουν το #define. Ολόκληρες οι ακίδες θύρας καθορίζονται από τις μακροεντολές.

Σύνταξη: #define dat Po // ολόκληρη η θύρα δηλώνεται από μια μεταβλητή //
dat = 0x01 // αποστολή δεδομένων στη θύρα0 //

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

Ο προγραμματισμός του μικροελεγκτή θα διαφέρει για τον καθένα τύπος λειτουργικού συστήματος . Παρόλο που υπάρχουν πολλά λειτουργικά συστήματα όπως Linux, Windows, RTOS και ούτω καθεξής. Ωστόσο, το RTOS έχει πολλά πλεονεκτήματα για την ανάπτυξη ενσωματωμένων συστημάτων. Αυτό το άρθρο ασχολείται με τον βασικό ενσωματωμένο προγραμματισμό C για την ανάπτυξη ενσωματωμένου προγραμματισμού C χρησιμοποιώντας έναν μικροελεγκτή 8051.

Ενσωματωμένα βήματα προγραμματισμού Γ

Ενσωματωμένα βήματα προγραμματισμού Γ

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

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

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

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

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

1. 01010101
10101010

#include // αρχείο κεφαλίδας //
void main () // το στατιστικό σημείο εκτέλεσης προγράμματος //
{
unsigned int i // τύπος δεδομένων //
ενώ (1) // για συνεχή βρόχο //
{
P0 = 0x55 // στείλτε την τιμή hexa στη θύρα0 //
για (i = 0i<30000i++) //normal delay//
P0 = 0x3AA // στείλτε την τιμή hexa στη θύρα0 //
για (i = 0i<30000i++) //normal delay//
}
}

2. 00000001

00000010

00000100

.

.

10.000.000

#περιλαμβάνω

κενή κύρια ()

{

χωρίς υπογραφή i

χωρίς υπογραφή char j, b

ενώ (1)

{

P0 = 0x01

b = Ρ0

για (j-0j<3000j++)

για (j = 0j<8j++)

{

β = β<<1

P0 = β

για (j-0j<3000j++)

}

}

}

3. 00001111

11110000

#περιλαμβάνω

κενή κύρια ()

{

χωρίς υπογραφή i

ενώ (1)

{

P0 = 0x0F

για (j-0j<3000j++)

P0 = 0xF0

για (j-0j<3000j++)

}

}

4. 00000001

00000011

00000111

.

.

11111111

#περιλαμβάνω

κενή κύρια ()

{

χωρίς υπογραφή i

χωρίς υπογραφή char j, b

ενώ (1)

{

P0 = 0x01

b = Ρ0

για (j-0j<3000j++)

για (j = 0j<8j++)

0x01

P0 = β

για (j-0j<3000j++)

}

}

Εμφάνιση αριθμών σε οθόνη 7 τμημάτων με χρήση μικροελεγκτή 8051

ο Οθόνες 7 τμημάτων είναι οι βασικές ηλεκτρονικές οθόνες, οι οποίες χρησιμοποιούνται σε πολλά συστήματα για την εμφάνιση των αριθμητικών πληροφοριών. Αποτελείται από οκτώ LED που συνδέονται διαδοχικά έτσι ώστε να εμφανίζουν ψηφία από 0 έως 9, όταν ενεργοποιούνται οι κατάλληλοι συνδυασμοί LED. Μπορούν να εμφανίζουν μόνο ένα ψηφίο κάθε φορά.

Εμφάνιση αριθμών σε οθόνη 7 τμημάτων με χρήση μικροελεγκτή 8051

Εμφάνιση αριθμών σε οθόνη 7 τμημάτων με χρήση μικροελεγκτή 8051

1. WAP για εμφάνιση των αριθμών «0 έως F» σε τέσσερις οθόνες 7segment;

#περιλαμβάνω
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3
κενή κύρια ()
{
unsignedchar n [10] = {0 × 40,0xF9,0 × 24,0 × 30,0 × 19,0 × 12,0 × 02,0xF8,0xE00,0 × 10}
δεν υπέγραψες, j
a = b = c = d = 1
ενώ (1)
{
για (i = 0i<10i++)
{
P2 = n [i]
για (j = 0j<60000j++)
}
}
}

2. WAP για εμφάνιση των αριθμών από «00 έως 10» στις οθόνες 7segment;

#περιλαμβάνω
sbit a = P3 ^ 0
sbit b = P3 ^ 1
άκυρη οθόνη1 ()
άκυρη οθόνη2 ()
άκυρη καθυστέρηση ()
κενή κύρια ()
{
unsignedchar n [10] = {0 × 40,0xF9,0 × 24,0 × 30,0 × 19,0 × 12,0 × 02,0xF8,0xE00,0 × 10}
δεν υπέγραψες, j
ds1 = ds2 = 0
ενώ (1)
{
για (i = 0, i<20i++)
οθόνη1 ()
οθόνη2 ()
}
}
άκυρη οθόνη1 ()
{
α = 1
b = 0
P2 = s [ds1]
καθυστέρηση()
α = 1
b = 0
P2 = s [ds1]
καθυστέρηση()
}
άκυρη οθόνη2 ()
{
ds1 ++
αν (ds1> = 10)
{
ds1 = 0
ds2 ++
αν (ds2> = 10)
{
ds1 = ds2 = 0
}
}
}
άκυρη καθυστέρηση ()
{
χωρίς υπογραφή k
για (k = 0k<30000k++)
}

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

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

Καθυστέρηση χρονοδιακόπτη

WAP για να δημιουργήσετε την καθυστέρηση 500us χρησιμοποιώντας το T1M2 (timer1 και mode2);

#περιλαμβάνω

κενή κύρια ()
{
χωρίς υπογραφή char i
TMOD = 0x20 // ορίστε τη λειτουργία χρονοδιακόπτη //
για (i = 0i<2i++) //double the time daly//
{
TL1 = 0x19 // ορίστε την χρονική καθυστέρηση //
TH1 = 0x00
TR1 = 1 // χρονόμετρο oN //
Ενώ (TF1 == 0) // ελέγξτε το bit σημαίας //
TF1 = 0
}
TR1 = 0 // χρονόμετρο απενεργοποιημένο //
}

Κανονική καθυστέρηση βρόχου

άκυρη καθυστέρηση ()

{
χωρίς υπογραφή k
για (k = 0k<30000k++)
}

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

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

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

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

1. WAP για μετάδοση του χαρακτήρα «S» στο σειριακό παράθυρο χρησιμοποιήστε το 9600 ως ρυθμό baud;

Το 28800 είναι ο μέγιστος ρυθμός baud του μικροελεγκτή 8051

28800/9600 = 3

Αυτός ο ρυθμός baud «3» αποθηκεύεται στα χρονόμετρα

#περιλαμβάνω

κενή κύρια ()

{
SCON = 0x50 // έναρξη της σειριακής επικοινωνίας //
TNOD = 0x20 // επέλεξε τη λειτουργία χρονομέτρου //
TH1 = 3 // φορτίστε το ρυθμό baud //
TR1 = 1 // Χρονοδιακόπτης ON //
SBUF = «S» // αποθηκεύστε τον χαρακτήρα στο μητρώο //
ενώ (TI == 0) // ελέγξτε το μητρώο διακοπής //
TI=0
TR1 = 0 // OFF το χρονόμετρο //
ενώ (1) // συνεχής βρόχος //
}

2. WAP για να λάβετε τα δεδομένα από το υπερ-τερματικό και να στείλετε τα δεδομένα στο PORT 0 του Μικροελεγκτή χρησιμοποιώντας 9600 baud;

Το 28800 είναι ο μέγιστος ρυθμός baud του μικροελεγκτή 8051

28800/9600 = 3

Αυτός ο ρυθμός baud «3» αποθηκεύεται στα χρονόμετρα

#περιλαμβάνω

κενή κύρια ()
{
SCON = 0x50 // έναρξη της σειριακής επικοινωνίας //
TMOD = 0x20 // επέλεξε τη λειτουργία χρονομέτρου //
TH1 = 3 // φορτίστε το ρυθμό baud //
TR1 = 1 // Χρονοδιακόπτης ON //
PORT0 = SBUF // αποστολή δεδομένων από SBUF στη θύρα0 //
ενώ (RI == 0) // ελέγξτε το μητρώο διακοπής //
RI = 0
TR1 = 0 // OFF το χρονόμετρο //
ενώ (1) // σταματήστε το πρόγραμμα κατά τη λήψη του χαρακτήρα //
}

Διακοπή προγραμμάτων με χρήση μικροελεγκτή 8051

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

WAP για να εκτελέσετε τη λειτουργία της αριστερής μετατόπισης όταν πραγματοποιείται διακοπή του χρονοδιακόπτη 0 και στη συνέχεια εκτελέστε τη λειτουργία διακοπής για το P0 στην κύρια λειτουργία;

#περιλαμβάνω

χωρίς υπογραφή char

void timer0 () interrupt 2 // επιλεγμένο timer0 interrupt //
{
b = 0x10
P1 = β<<2
}
κενή κύρια ()
{
χωρίς υπογραφή char a, i
IE = 0x82 // ενεργοποίηση του χρονοδιακόπτη0 διακοπή //
TMOD = 0x01
TLo = 0xFC // χρονόμετρο διακοπής //
TH1 = 0xFB
TR0 = 1
a = 0x00
ενώ (1)
{
για (i = 0i<255i++)
{
ένα ++
Po = α
}
}
}

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

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

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

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

1. WAP για εναλλαγή του LED πατώντας το διακόπτη

#περιλαμβάνω
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3
άκυρη καθυστέρηση ()
κενή κύρια ()
{
ενώ (1)
{
α = 0
b = 1
c = 1
d = 1
καθυστέρηση()
α = 1
b = 0
c = 1
d = 1
άκυρη καθυστέρηση ()
{
χωρίς υπογραφή char i
TMOD = 0x20 // ορίστε τη λειτουργία χρονοδιακόπτη //
για (i = 0i<2i++) //double the time daly//
{
TL1 = 0x19 // ορίστε την χρονική καθυστέρηση //
TH1 = 0x00
TR1 = 1 // χρονόμετρο oN //
Ενώ (TF1 == 0) // ελέγξτε το bit σημαίας //
TF1 = 0
}
TR1 = 0 // χρονόμετρο απενεργοποιημένο //
}

2. WAP για ενεργοποίηση της λυχνίας LED πατώντας το πλήκτρο «1» στο πληκτρολόγιο;

#περιλαμβάνω

sbit r1 = P2 ^ 0
sbit c1 = P3 ^ 0
sbit LED = P0 ^ 1

κενή κύρια ()
{

r1 = 0
εάν (c1 == 0)
{

LED = 0xff
}
}

3. WAP για να εμφανιστεί ο αριθμός 0,1,2,3,4,5 στο επτά τμήμα πατώντας το αντίστοιχο πλήκτρο στο πληκτρολόγιο;

#περιλαμβάνω

sbit r1 = P2 ^ 0

sbit c1 = P3 ^ 0

sbit r2 = P2 ^ 0

sbit c2 = P3 ^ 0

sbit a = P0 ^ 1

κενή κύρια ()

{

r1 = 0 a = 1

εάν (c1 == 0)

{

a = 0xFC

}

Εάν (c2 == 0)

{

a = 0x60

}

εάν (c3 == 0)

{

a = 0xDA

}

Εάν (c4 == 0)

{

a = 0xF2

}

}

Προγραμματισμός LCD με μικροελεγκτή 8051

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

Προγραμματισμός LCD με μικροελεγκτή 8051

Προγραμματισμός LCD με μικροελεγκτή 8051

WAP για εμφάνιση των 'EDGEFX KITS' στην οθόνη LED;

#περιλαμβάνω
# καθορισμός kam P0

voidlcd_initi ()
voidlcd_dat (χωρίς υπογραφή char)
voidlcd_cmd (χωρίς υπογραφή char)
άκυρη καθυστέρηση ()
άκυρη οθόνη (χωρίς υπογραφή char * s, unsigned char r)

sbitrs = P2 ^ 0
sbitrw = P2 ^ 1
sbit σε = P2 ^ 2
κενή κύρια ()
{

lcd_initi ()
lcd_cmd (0x80)
καθυστέρηση (100)
lcd_cmd (0xc0)
οθόνη ('κιτ edgefx', 11)
ενώ (1)
}

άκυρη οθόνη (χωρίς υπογραφή char * s, unsigned char r)
{
χωρίς υπογραφή w
για (w = 0w{
lcd_data (s [w])
}
}
voidlcd_initi ()
{
lcd_cmd (0 × 01)
καθυστέρηση (100)
lcd_cmd (0 × 38)
καθυστέρηση (100)
lcd_cmd (0 × 06)
καθυστέρηση (100)
lcd_cmd (0x0c)
καθυστέρηση (100)
}
voidlcd_dat (μη υπογεγραμμένο char dat)
{
χτένα = αυτό
rs = 1
rw = 0
σε = 1
καθυστέρηση (100)
σε = 0
}
}
voidlcd_cmd (χωρίς υπογραφή char cmd)
{
ήρθε = cmd
rs = 0
rw = 0

σε = 1
καθυστέρηση (100)
σε = 0
}
άκυρη καθυστέρηση (χωρίς υπογραφή int n)
{

χωρίς υπογραφή α
για (a = 0a}

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