πρόβλημα επικοινωνίας

E

ermtariq

Guest
Hi all,

Είμαι εργασίας οδήγησε στην οθόνη του έργου,
Χρησιμοποιώ AT89S53 (8051) για τον προγραμματισμό (Keil C).από τις τελευταίες τρεις ημέρες θ
π. αντιμετωπίζουν σοβαρό πρόβλημα με την επικοινωνία.Θέλω να επικοινωνούν PC σε LED
υπάρχει ένα άλλο IC επί του σκάφους μου έδωσε, ότι είναι MAX1487 και υπάρχουν μόνο δύο conneting σύρμα (RXD, TXD) σε αυτό.connectint iam μόνο δύο καλώδια από το λιμάνι com.

πρόβλημα είναι ότι δεν είμαι σε θέση να διαβάσει ή να γράψει δεδομένα από SBUF ακόμη Keil διορθωτής θα γράψω, αλλά δεν υπάρχει ανταπόκριση υλικού.progamme ρύθμιση μου για αυτό έχει ως εξής:

void main (void)
(
SCON = 0x50?
ET2 = 1?
TCLK = 1?
RCLK = 1?
C_T2 = 0?
RCAP2H = 0xff? / / Ταχύτητα baud 9600
RCAP2L = 0XB2?
TR2 = 1?
TR1 = 1?
PS = 0?
ES = 1?
EA = 1?
RI = 0?
SM2 = 0?
)

void RXD (void) διακόπτουν 4
(
unsigned char UART_DATA?

εάν (RI == 1)
(
RI = 0?
TR2 = 0?
UART_DATA = SBUF?
)
)

Είναι αυτό το γράφω ???????
SBUF δεν λειτουργεί καλά.
υπάρχει καμία προγραμματική σφάλμα Παρακαλούμε να με βοηθήσει να δικαίωμα να

Έχω επιπλέον κωδικός για την εμφάνιση charcter την οδήγησε σε συνάρτηση main () καθώς και RXD ().σας στέλνω μόνο τις ρυθμίσεις.

υπάρχει Υποχρεωτικό των reg52.h, reg53.h, regs58.hi έχουν συμπεριλάβει τα δύο πρώτα στον κώδικα.

δεν υπάρχει σωστή απάντηση από την ηγεσία.Πιστεύω ότι υπάρχει λάθος ανακοίνωση από τον υπολογιστή να MAX1487 ή MAX1487 να μικροελεγκτή !!!!!!!

Παρακαλούμε να με βοηθήσει αν έχετε ιδέα της MAX1487 σχέση καρφίτσες με μικροελεγκτή.
Είμαι χρήση 9600, Ν, 8,1.

 
Γεια σου,
Max 1487 είναι ένα RS 485 IC, υποθέτω ό, τι χρειάζεστε για να συνδεθείτε με τον υπολογιστή είναι μια MAX 232, IC RS232.
Χαιρετισμοί,
Laktronics

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

Παρακαλείσθε να επανέλθω μετά τον έλεγχο του λιμένα του υπολογιστή, τότε θα σας προτείνω περαιτέρω.Ας πάμε βήμα βήμα, έτσι ώστε να μπορέσουμε dont λείψει τίποτα στην αποσφαλμάτωση του προβλήματος.

 
Hi all,

Ναι φίλε μου, το λιμάνι comm λειτουργεί καλά, τι έκανα, μπήκα σε τόσο δέκτη και καλώδιο πομπός και επιστρέφει με ό, τι μπορώ να στείλω από το βοηθητικό VB.δεν λειτουργεί με SBUF.

Τι είναι το πρόβλημα με MAX1487, διασυνδέεται με το 8051 δεν είναι σωστό;;;

SBUF γιατί δεν όρισε την αξία του μεταβλητού ??????????????

Παρακαλούμε απάντηση όλα τα ερωτήματα

Ευχαριστώ και αφορά
ΑΠΟ Mohd.Tariq

 
παρακαλούμε να κάνετε αυτή την απλή άσκηση

void main (void)
(
unsigned char UART_DATA? / / a [10] = ( "φίλος μου")?
SCON = 0x50?
ET2 = 1?
TCLK = 1?
RCLK = 1?
C_T2 = 0?
RCAP2H = 0xff? / / Ταχύτητα baud 9600
RCAP2L = 0XB2?
TR2 = 1?
TR1 = 1?
PS = 0?
ES = 1?
EA 1 =?
RI = 0?
SM2 = 0?
while (1)
(
if (! RI)? / / ή χρήση εάν (RI == 0)?
(
UART_DATA = SBUF?
RI = 0?
/ / TR2 = 0?
/ / Εισαγωγή μετάδοση πρόγραμμα εδώ
SBUF = UART_DATA?
if (! TI)? / / ή αν (TI == 0)?
(
TI = 0?
)

)
)
)PLease εξόδου έλεγχο προσομοιωτή, ανοιχτό παράθυρο σειριακή / HyperTerminal παράθυρο και να πληκτρολογήσετε κάποιο χαρακτήρα και να δούμε εάν ανήκουν σε SBUF.εάν το u δεν μπορεί να κάνει από τότε γράψει ένα Transmit κάτω από την ρουτίνα, όπως φαίνεται.και ελέγχουν την έξοδο.εάν u το πάρει τώρα, είτε με σειριακό παράθυρο ή σε προσομοιωτή για HyperTerminal τότε μπορούμε να χρησιμοποιήσουμε VB κώδικα για να στείλετε τα δεδομένα.

ευχαριστώ και αντίο
shivaram
Επίσης προσδιορίζονται οι ελεγκτή σε συγκεκριμένες ur χρησιμοποιείτε;

 
Γεια σου,

Ευχαριστώ για .................. coopration σας

Προσπάθησα τον κωδικό σας, στην αρχή θα λειτουργεί καλά SBUF είναι διαβάζουν και να γράφουν στην επιτυχή Keil εντοπισμού σφαλμάτων.μα εγώ cannt καταλαβαίνω γιατί είστε έλεγχο RI == 0, διότι θα εκτελεί μόνο μία φορά και δεν προχωρά σε έλεγχο ξανά και επίσης ότι δεν είναι guarnteed ότι θα δώσει respons υλικού όταν όρο αλήθεια.

αφού το μόνο που μπορώ φορτωθεί τον κωδικό σας στο μικροελεγκτή (8051) W77E58 και δεν υπάρχει παραγωγή.

Έχω κάνει τέσσερις αλλαγές στον κώδικά σας

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Λυπημένος" border="0" />

Τους αριθμούς)

void main (void)
(
unsigned char UART_DATA? / / a [10] = ( "φίλος μου")?
Initialize ()? / / / Αυτή η λειτουργία είναι να μονογράψει οδήγησε (αλλαγή = 1)
SCON = 0x50?
ET2 = 1?
TCLK = 1?
RCLK = 1?
C_T2 = 0?
RCAP2H = 0xff? / / Ταχύτητα baud 9600
RCAP2L = 0XB2?
TR2 = 1?
TR1 = 1?
PS = 0?
ES = 1?
EA = 1?
RI = 0?
SM2 = 0?

LoadString ( "AB", 2,0)? / / Πρόκειται για συμβολοσειρά φορτίο ποτέ αυτό που θέλουμε να εμφανίζει την ηγεσία
/ / Αυτή η λειτουργία λαμβάνει string για να φορτώσει (εδώ AB), του Lenth (εδώ
/ / 2), τον τύπο και τη γλώσσα (0 εδώ για αγγλικά) (αλλαγή = 2)
while (1)
(

εάν (RI == 1)? / / ή χρήση εάν (RI == 0)? / / Η αλλαγή RI == 0 έως RI == 1 φ (βλ. σημείο
/ / κάτω)
/ / (αλλαγή = 3)
(
UART_DATA = SBUF?
RI = 0?LoadString (& (UART_DATA), 1,0)?

SBUF = UART_DATA?

if (! TI)? / / ή αν (TI == 0)?
(
TI = 0?
)

)
LoopDisplay ();// αυτή η λειτουργία χρησιμοποιείται για τη φόρτωση του προτύπου charcters και την απεικόνιση τους
/ / αλλαγή = 4
)

)φ Εδώ Keil διορθωτής διακόπτεται επίσης και έχασα τον έλεγχο εντοπισμού σφαλμάτων μορφή.
από αυτή τη γραμμή Λοξοτομώ κυκλοφορούν στην εκσφαλμάτωση διαδικασία.

στην αρχή (εφόσον δεν μεταβληθεί) I αξία των εισροών από σειριακή παράθυρο και SBUF μου δίνει το δικαίωμα αξίες.Αλλά μετά από μια φορά ότι δεν πρόκειται και πάλι.

Θέλω ότι τουλάχιστον μια φορά ότι δεν πρόκειται καμία εισαγωγή, και όταν θα έρθει και πάλι σε κατάσταση εάν εγώ θα εισροών από σειριακή παράθυρο για το σκοπό αυτό θα πρέπει να πάει ξανά και ξανά το αν conditon.

Ελπίζω επιτυχία για να σας κάνει σαφές τι συμβαίνει .......

ΑΦΟΡΑ
Με Tariq (Βομβάη)

 
Hey Tariq,
Η ερώτησή σας γιατί κάνω RI = 0? Ξέρετε ότι είναι σειριακός διακοπή σημαία.Όταν ΤΙ ή RI είναι 0? Αυτό σημαίνει ότι η επικοινωνία θα είναι είτε τα bits που διαβιβάζονται ή λαμβάνονται στο λεωφορείο.όταν 8ης λίγο στη συνέχεια διαβιβάζεται ΤΙ ή RI σημαίας γίνεται αυτόματα από το υψηλό του ελεγκτή.u δεν πρέπει ποτέ να είναι υψηλό.u ανάγκη να αρχίσουν μόλις η κατάσταση και να ελέγχει τη σημαία για να γίνει 1.όταν είναι 1, αυτό σημαίνει ότι η μετάδοση ή λήψη είναι πάνω και ο ελεγκτής δεν θα επεξεργάζεται τυχόν περαιτέρω στοιχεία.τότε και πάλι να είναι μηδέν, ελεγκτής θα χειριστεί το 2 byte δεδομένων.έτσι που αυτό σε ένα βρόχο.

απλά δείτε αυτό το απλό u πρόγραμμα θα κατανοήσουν την έννοια Δεν υπάρχει καμία αμφιβολία.Εκτελέστε αυτό και δείτε το αποτέλεσμα στην σειριακή παράθυρο μετά την εκτέλεση του προγράμματος.Παρακαλώ dont debug βήμα προς βήμα αυτό δεν θα λειτουργήσει.Επίσης, πηγαίνετε να στοχεύουν στο παράθυρο του έργου και κάντε δεξί κλικ επιλέξτε την επιλογή ως προς το στόχο, στο ότι η αλλαγή του κρυστάλλου από 24 MHz έως 11,0592.αποθηκεύσετε και στη συνέχεια εκτελέστε το πρόγραμμα.
ΣΗΜΕΙΩΣΗ: Παρακαλώ σχολιάστε το διαβιβάζει μέρος και τρέχω και να δείτε το buffer και αποσχολιάσετε και τρέχει και δείτε το αποτέλεσμα.Θα πάρετε την ιδέα.

Αν δεν ur σε μια βιασύνη, τότε μπορούμε να πάμε βήμα-βήμα το οποίο θα βοηθήσει και στην εκμάθηση πώς να debug το πρόβλημα
/ / Program

# include <reg51.h>
# include <stdio.h>
main ()
(
unsigned char i?
char a [8 ];//= ( "shivaram")?
TMOD = 0x20?
SCON = 0x50?
TH1 = 0xFD?
TR1 = 1?
while (1)
(
for (i = 0? i <= 7? i )
(

while (RI == 0)?
a = SBUF?
RI = 0?

SBUF = a ?
ενώ (TI == 0)?
TI = 0?)
)
)

δοκιμάστε αυτό το πρόγραμμα

 
Γεια σου,

Είναι Hard Luck .......................

Δεν ζητώ περίπου RI = 0, αλλά ζητώ περίπου RI == 0.που θα είναι "σύγκριση" στο "αν" κατάσταση στο προηγούμενο ταχυδρομείο, αλλά τώρα που χρησιμοποιείτε:
while (RI == 0)

Η ερώτησή μου είναι η ανησυχία σε αυτό το σημείο,

<img src="http://www.edaboard.com/images/smiles/icon_confused.gif" alt="Confused" border="0" />

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

Γι 'αυτό ποτέ δεν θα επιτρέψει να εισέλθουν σε αυτό το βρόχο (ενώ RI == 0).

σαφής με αλλαγές στη ρύθμιση, μετά άκυρη ????????????

κωδικό σας λειτουργεί καλά είναι επίσης που μου δώσατε εξόδου στο seril παράθυρο αυτό που εισροών.
Έθεσα osc όπως προτείνατε.

ποια είναι διαφορά μεταξύ reg51.h & reg52.h & reg58.h

Φυσικά δεν είμαι σε βιασύνη: D

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Πολύ Καλή" border="0" />Ευχαριστώ
Tariq

 
Hey Tariq?

Νομίζω u δεν πήραν σημείο μου.Εντάξει δεν υπάρχει πρόβλημα.while (RI == 0)?

RI σύγκριση με 0

ημι άνω και κάτω τελεία στο τέλος σημαίνει ότι μένουν στην ίδια γραμμή μέχρι τη κατάσταση είναι αλήθεια.

είναι κάτι σαν

βρόχο: JNB RI, βρόχο

bit δεν νοείται η αξία σε RI είναι 0 έως RI = 0 δηλαδή δεν άλμα λίγο στο βρόχο και μία RI γίνεται 1 βγήκε από το βρόχο.

ενώ RI == 0? σημαίνει το ίδιο.Λήψη διακόπτουν σημαίνει ότι διακόπτουν το δέκτη.πότε πρέπει να διακόψω, 0 μετά βγαίνει από το βρόχο τότε ξεκινά και πάλι την υποδοχή των νέων δεδομένων.για receiveing νέα δεδομένα RI, θα πρέπει να είναι 0.
θύρα 1 θα γίνει μόνο εάν το u στείλει κάποια στοιχεία διαφορετικά ελεγκτής πρέπει να περιμένει μέχρι να παίρνει τα δεδομένα, και ο ελεγκτής δεν γνωρίζει πότε τα δεδομένα που θα έρθουν έτσι u έχω να RI 0 και να κάνει τον ελεγκτή να περιμένει για μια δεδομένων.U Αν χρειαστεί να στείλετε τα δεδομένα και πάλι στη συνέχεια και πάλι τη σημαία RI πρέπει να είναι 0.αν είναι 1, δεν θα λάβει τα δεδομένα.

Δεδομένου ότι πρόκειται καιρό Θα τοποθετήσω αυτό και να συνεχίσει στην επόμενη θέση.Θα προτείνω u ένα σχόλιο πράγμα μόνο μέρος ΤΙ σε κώδικα.u όταν τρέχει το πρόγραμμα μπορείτε να ανοίξετε το παράθυρο από αύξοντα καρτέλα άποψη.στη συνέχεια θα τοποθετούνται σε σημείο καμπής, ενώ (RI == 0)?
και RI = 0? στην επόμενη γραμμή
και τρέχει το πρόγραμμα.ο έλεγχος θα έρθει και να σταματήσει μέχρι το είδος u ενιαίο χαρακτήρα
στη σειριακή παράθυρο.Στο περιφερικό παράθυρο ανοιχτό σειριακή θύρα όπου u μπορεί να δει τον αύξοντα μητρώα comm.παρατηρούν τη σημαία RI.φορά u τύπο, u μπορεί να δει RI σημαίας καθίσταται υψηλό.Μέχρι εκείνη τη στιγμή RI = 0 δηλαδή είναι ανεξέλεγκτη.RI, όταν γίνεται υψηλό μετά πληκτρολογήστε u το πρόγραμμα και τρέξτε το πρόγραμμα δεν επαναφορά.u μπορεί να δει τον έλεγχο θα βγει από ενώ βρόχο και εκτελούν RI = 0.συνέχεια στο περιφερικό u παράθυρο να δείτε RI = 0.και ο βρόχος επαναλαμβάνεται.Προστίθενται μετά από 23 λεπτά:Hi Tariq,
παρακαλώ συγχωρήστε μου αν βρω u explanaition μου χρονοβόρα και βαρετό.Έχω συνηθίσει να δώσει τέτοια μακρά explaination κάθε φορά που δίνω την εταιρική κατάρτιση ή σαφείς αμφιβολίες των μαθητών μου.

σχετικά με την reg51.h, reg52.h και οποιαδήποτε άλλα αρχεία κεφαλίδας.

Tariq πάλι θέλω να κάνω u μερικά πράγματα για μένα.
1.Νομίζω ότι είμαι δίνοντας u πολλές assignmants αντί να δίνει λύση u.
u αν δείτε το Keil παράθυρο στη δεξιά πλευρά u έχουν ένα παράθυρο έργου.u μπορεί να δει το αρχείο C u έχουν προσθέσει.θα έχει θετικό σήμα που δείχνει ότι u μπορεί να αναπτυχθεί.απλώς επεκτείνουν το u μπορεί να δει ότι startup.s επεκτείνουν και να δούμε πώς το 8051 έχει ρυθμιστεί.
2.Αποκτήστε το δρομέα για το reg αρχείο κεφαλίδας και κάντε δεξί κλικ πάνω του και επιλέξτε ανοιχτή regXX.h.Θα σας δείξω την κατανομή μνήμης για όλα τα μητρώα, λιμάνι, διακοπές, κλπ. Έτσι μπορεί u u γνωρίζει τα χαρακτηριστικά και mem πληροφορίες της θέσης σε αυτό.

στείλτε ur αριθμό ph.Εβδομάδα τελειώνει μπορούμε να μιλήσουμε για σαφή ur αμφιβολίες

ευχαριστίες και Regds
Shivaram

 
Hi shivaram,

Ι couldnt mail σας, λόγω των εκτός ισολογισμού.

ιδέα σας (ενώ (RI == 0)?) είναι απενεργοποιημένο, θέλω να σας πω ότι everthing είναι ΟΚ.αύξων παράθυρο δίνει δικαίωμα όρους, αποσφαλμάτωση λειτουργεί απολύτως πρόστιμο.

ΑΛΛΑ

υλικό δεν δίνει ακόμη επιθυμητή απόδοση (αλλά αρχίσει να εμφανίζονται), θα σας στείλουμε τον κωδικό για explane everthing σας παρακαλούμε να διαβάσετε γραμμή προς γραμμή:

void main ()
(
unsigned char i?

Initialize ()? / / Αυτή η λειτουργία Initialize LED

TMOD = 0x20?
SCON = 0x50?
TH1 = 0xFD?
TR1 = 1?

while (1)
(
while (RI == 0)? / / Αν και ο έλεγχος είναι εδώ τύπου "1" στο παράθυρο στη σειριακή εκσφαλμάτωση procces
(
i = SBUF? / / εδώ i = 0x31 (που είναι και hex ascii της 1) και να RI 1
RI = 0? / / RI απάλειψη
SBUF = i? / / SBUF και θ οι δύο δείχνουν 0x31
if (i == 0x31) / / μπορείτε να δείτε την προϋπόθεση αυτή πρέπει να ισχύει επειδή (i == 0x31)
(
DISPLAY: - ΝΑΙ / / αυτή πρέπει να πάει να εμφανίζεται 1 στις υπό την ηγεσία
)
άλλος
(
DISPLAY: NO / / όταν "αν" αποτύχει
)
)

)
)όπως είπα παραπάνω:

if (i == 0x31)
(
DISPLAY: - ΝΑΙ
)

Αυτό condtion πρέπει να ικανοποιεί και να πάμε για να εμφανιστεί 1, αλλά αυτό συμβαίνει doesn't.
Ωστόσο debugging πρόκειται απόλυτο δίκιο να εμφανίσετε 1. (στέλνω 1 από cmd)

Νομίζω ότι έχω πρόβλημα υλικού Γι 'αυτό που ζητούσε για διαμόρφωση ATMEL AT89S53 με comm και reg αρχεία.

πιστεύετε ότι το πρόβλημα της επικοινωνίας δεν υπάρχει ???????????????????????
Πιστεύω πως ναι, διότι υπάρχει κάποια αναβοσβήνει για CNP όταν στέλνω κάτι από την γραμμή εντολών για να οδηγήσει. (Είμαι με cmd να ανακοινώνουν μετά την επιτυχία του αυτή θα χρησιμοποιήσουμε VB) οδήγησε επίσης εξόδου (ανεπιθύμητες) είναι recevied.

Absolutly δεν είστε μένα βαρετός

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Πολύ Καλή" border="0" />

αλλά είμαι ευγνώμων σε εσάς που έχετε χρόνο για μένα και τη λήψη ενδιαφέρον για το έργο μου.Έχω μάθει πολλά πράγματα από εσάς ......

Ευχαριστώ και πάλι: D
Tariq
MumbaiΠροστίθενται μετά από 5 λεπτά:Hi shivaram,

μου στείλει προσωπικό e-mail ID σας, έτσι ώστε Isend σας PH.no. μου

Ευχαριστώ και πάλι: D
Tariq
MumbaiΠροστίθεται μετά το 1 λεπτό:ακούω,

πιστεύετε ότι το πρόβλημα της επικοινωνίας δεν υπάρχει ???????????????????????
Πιστεύω πως ναι, διότι υπάρχει κάποια αναβοσβήνει για CNP όταν στέλνω κάτι από την γραμμή εντολών για να οδηγήσει. (Είμαι με cmd να ανακοινώνουν μετά την επιτυχία του αυτή θα χρησιμοποιήσουμε VB) οδήγησε επίσης εξόδου (ανεπιθύμητες) είναι recevied.

Αντίο
Tariq

 
θα μπορούσε να σας μετά την ενημέρωση κωδικό σας για μένα.Θα δούμε σε αυτό και θα σας απαντήσουμε το συντομότερο.Εάν u dont μυαλό παρακαλώ να μου στείλει ph δεν σας.έτσι ώστε σε περίπτωση που θέλω εγώ ορισμένα i διευκρίνιση θα μπορούσε να θέσει u.everytime απόσπασης μπορεί να λάβει μέρος του χρόνου σας,.Προστίθεται μετά το 1 λεπτό:u δεν μπορεί να δώσει εδώ στη συνέχεια, κάντε ένα pm σε μένα ή mail μου τα στοιχεία για να shivaram.cunchala (σε) wipro.com και στο cc ckshivaram (at) rediffmail.comΠροστίθεται μετά λεπτά 1 ώρα 2:δοκιμάστε αυτόν τον κώδικα.

# include <reg51.h>
/ / void initialise ()?

unsigned char a [15] = ( "Ο αριθμός είναι 1")?
unsigned char b [20] = ( "Ο αριθμός δεν είναι 1")?
void main ()
(
unsigned char i?

/ / Initialize ()? / / Αυτή η λειτουργία Initialize LED

TMOD = 0x20?
SCON = 0x50?
TH1 = 0xFD?
TR1 = 1?

while (1)
(
while (RI == 0)? / / Αν και ο έλεγχος είναι εδώ τύπου Ι "1" στο παράθυρο στη σειριακή
/ / procces debugging
(
i = SBUF? / / εδώ i = 0x31 (που είναι και hex ascii της 1) και SBUF = 0x00 και
/ / RI γίνει 1
RI = 0? / / RI απάλειψη
SBUF = i? / / SBUF και θ οι δύο δείχνουν 0x31
if (i == 0x31) / / μπορείτε να δείτε την προϋπόθεση αυτή πρέπει να ισχύει επειδή (i == 0x31)
(

for (i = 0? i <15? i )
(
while (! TI)?
SBUF = a ?
TI = 0?
)
/ / DISPLAY:
/ / - ΝΑΙ / / αυτή πρέπει να πάει να εμφανίζεται 1 στις υπό την ηγεσία
)
άλλος
(

for (i = 0? i <20? i )
(
while (! TI)?
SBUF = b ?
TI = 0?
)

/ / DISPLAY: / / ΟΧΙ / / όταν "αν" αποτύχει
)
)

)
)Προστίθεται μετά λεπτά 1 ώρα 44:# include <regS53.h>
/ / void initialise ()?

unsigned char a [15] = ( "Ο αριθμός είναι 1")?
unsigned char b [20] = ( "Ο αριθμός δεν είναι 1")?
void main ()
(
unsigned char i?

/ / Initialize ()? / / Αυτή η λειτουργία Initialize LED

/ / T2MOD = 0x02?
T2CON = 0x70?
SCON = 0x50?
TH1 = 0xFD?
TR2 = 1?

while (1)
(
while (RI == 0)? / / Αν και ο έλεγχος είναι εδώ τύπου Ι "1" στο παράθυρο στη σειριακή
/ / procces debugging
(
i = SBUF? / / εδώ i = 0x31 (που είναι και hex ascii της 1) και SBUF = 0x00 και
/ / RI γίνει 1
RI = 0? / / RI απάλειψη
SBUF = i? / / SBUF και θ οι δύο δείχνουν 0x31
while (! TI)?
SBUF = i?
TI = 0?

if (i == 0x31) / / μπορείτε να δείτε την προϋπόθεση αυτή πρέπει να ισχύει επειδή (i == 0x31)
(

for (i = 0? i <15? i )
(
while (! TI)?
SBUF = a ?
TI = 0?
)
/ / DISPLAY:
/ / - ΝΑΙ / / αυτή πρέπει να πάει να εμφανίζεται 1 στις υπό την ηγεσία
)
άλλος
(

for (i = 0? i <20? i )
(
while (! TI)?
SBUF = b ?
TI = 0?
)

/ / DISPLAY: / / ΟΧΙ / / όταν "αν" αποτύχει
)
)

)
)

 
# include <AT89X51.H>

unsigned int del, i, x, temp?

char getCharacter (void)
(
char chr? / / μεταβλητή να κατέχει το νέο χαρακτήρα
ενώ (RI! = 1) (?)
chr = SBUF?
RI = 0?
return (CHR)?
)
void αποστολή (char α)
(
SBUF = a?
ενώ (TI! = 1)?
TI = 0?
)

void main (void) (
char chr?
int i = 0, j = 0, count = 0, inc = 47? / / inc = 47
int index = 0?
P1 = 0x00?
P2 = 0x00?

SCON = 0x50? / / Mode 1, 8-bit UART, ώστε δέκτης
TMOD = 0x20? / / Χρονοδιακόπτη 1, mode 2, 8-bit reload
TH1 = 0XE6? / / 1200
TL1 = 0XE6?
TR1 = 1?
TI = 0?
SBUF = 0?

ενώ (1) (

κωδικό

)
)

 

Welcome to EDABoard.com

Sponsor

Back
Top