AT89C52 Port0 έχεις πρόβλημα!

G

Guest

Guest
Γεια σου,

Οποιοσδήποτε μπορεί να με βοηθήσει τον κωδικό παρακάτω:

Κωδικός:

# περιλαμβάνουν <reg52.h># καθορίσει countNum P0xdata unsigned char α [40 ];//' xdata'will couse την P0 problem.Why;;
Αν P1 ΟΚ!άκυρη Deley (unsigned int Dly)

(

int i, j, k?

(i = 0? i <255? i )

(

for (j = 0? ι <Dly? j )

(

για (k = 0? κ <1? K )?

)

)

)άκυρη Run (κενή)

(

στατική unsigned char count?if (count <16)

(

countNum = μετράνε?

α [count] = 1?

count ?

)

if (count> 15)

(

count = 0?

)

)κενό κύριο ()

(

ενώ (1)

(

Run ()?

Deley (100)?

)

επιστροφή?

)
 
P0 χρησιμοποιείται για εξωτερικά στοιχεία, όταν σας δηλώνω xdata πάρει P0 για ανακοίνωση με εξωτερική πηγή δεδομένων.
Προσπαθήστε να δηλώνουν με "κωδικό" δεν "xdata" αυτό το έργο η MUS κωδικό δήλωση θα plase μεταβλητές σε μνήμη flash,
τα δεδομένα -> Ram, Xdata -> εξωτερικής μνήμης

χαιρετισμοί

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Χαμόγελο" border="0" />
 
Γεια σου,

Μετά άλλαξα σεΚωδικός:

code unsigned char a [40]?
 
"στατική unsigned char μετράει?"

αφαίρεση στατική

 
Βοήθεια @,

κωδικός σας δεν μπορεί να λειτουργήσει ως P0 χρησιμοποιείται ως δεδομένα / διεύθυνση λεωφορείο για τις εξωτερικές RAM όταν σας δηλώνω μεταβλητές όπως xdata.

Προσπαθήστε να κηρύξει σας array ως δεδομένα ή idata ...

δεδομένων unsigned char a [40]?
idata unsigned char α [40]?

Δείτε επίσης το εγχειρίδιο 8051 για λεπτομέρειες:
Port 0 είναι ένα 8-bit ανοικτή εγκεφάλων αμφίδρομη I / O port.Ως
λιμένα εξόδου, κάθε καρφίτσα μπορεί νεροχύτη οκτώ TTL εισροών.Όταν 1σ
είναι γραμμένα στις λιμενικές 0 καρφίτσες, τις καρφίτσες μπορούν να χρησιμοποιηθούν ως υψηλής αντίστασης
εισροές.
Port 0 μπορεί επίσης να ρυθμιστεί ώστε να είναι το χαμηλό ώστε πολυπλεκτικές
διεύθυνση / λεωφορείο δεδομένων κατά τη διάρκεια της πρόσβασης σε εξωτερικές
πρόγραμμα και τα δεδομένα της μνήμης.Σε αυτή τη λειτουργία, P0 έχει εσωτερική
pull-up.
Port 0 λαμβάνει επίσης τον κωδικό bytes κατά Flash προγραμματισμού
εκροές και τον κωδικό bytes πρόγραμμα κατά τη διάρκεια της επαλήθευσης της.
Εξωτερικές pull-ups απαιτείται κατά τη διάρκεια του προγράμματος
επαλήθευσης.

με τις καλύτερες ευχές

 
Ναι νομίζω με τα δεδομένα που θα εργαστεί, κωδικός unwritalble.Μπορεί να έχετε κάποια στοιχεία να αναβοσβήνει

 
Γεια σου,

Ευχαριστώ για τη βοήθειά σας.

Αν ας πούμε μου array μέγεθος είναι 250 (α [250]), i ανάγκη για στροφή προς τα δεδομένα άλλων xdata σοφή μου δεδομένα θα πλήρη!Είμαι χρησιμοποιώντας AT89C52, τι μπορώ να κάνω;και το I / O για P1, P2, P3 ήδη χρησιμοποιηθεί πλήρως.

Σε ευχαριστώ

 
Μπορείτε να γράψετε και εξωτερική eeprom ΘΑ δεδομένα εκεί, αλλά αυτό είναι λίγο αργά.μπορείτε να χρησιμοποιήσετε P0 με εξωτερικούς pullups.αν θέλετε να χρησιμοποιήσετε ως παραγωγή P0 μόλις τεθεί σε beging απλή συνάρτηση του προγράμματος:

άκυρη Port_Init (κενή)
(
P0 = 0x00?
)

MUS αυτό έργο

χαιρετισμοί

 
Γεια σου,

Μήπως σημαίνει αυτό;

Κωδικός:

# περιλαμβάνουν <reg52.h># καθορίσει countNum P0

xdata unsigned char a [250] = (0)?άκυρη Deley (unsigned int Dly)

(

int i, j, k?

(i = 0? i <255? i )

(

for (j = 0? ι <Dly? j )

(

για (k = 0? κ <1? K )?

)

)

)άκυρη Run (κενή)

(

unsigned char count?if (count <16)

(

countNum = μετράνε?

α [count] = 1?

count ?

)

if (count> 15)

(

count = 0?

)

)άκυρη Port_Init (κενή)

(

countNum = 0x00?

)κενό κύριο ()

(

Port_Init ()?ενώ (1)

(

Run ()?

Deley (100)?

)

επιστροφή?

)
 
Βοήθεια έγραψε:

Γεια σου,Ευχαριστώ για τη βοήθειά σας.Αν ας πούμε μου array μέγεθος είναι 250 (α [250]), i ανάγκη για στροφή προς τα δεδομένα άλλων xdata σοφή μου δεδομένα θα πλήρη!
Είμαι χρησιμοποιώντας AT89C52, τι μπορώ να κάνω;
και το I / O για P1, P2, P3 ήδη χρησιμοποιηθεί πλήρως.Σε ευχαριστώ
 
Γεια σου,

Θα προσπαθήσω να syrax χρήση μεθόδου.
Στην πραγματικότητα αυτό είναι το μέγεθος xdata για την AT89C52.

ΧΩΡΙΣ αλλαγή AT89C52 μου είναι ότι κάθε εναλλακτική λύση για την επίλυση αυτού του προβλήματος;Σε ευχαριστώ.

 
Ένας άλλος τρόπος είναι να χρησιμοποιήσετε δομή των μεταβλητών αλλά είμαι newby στο παρόν

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Χαμόγελο" border="0" />

)) I μόνο γνωρίζουν oyu Unio μπορεί να κηρύξει μια δομή δεδομένων

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

 
Προσθήκη εξωτερικής pullup αντιστάσεις (8 x 10kΩ θα κάνει) - χωρίς αυτά δεν μπορείτε να χρησιμοποιήσετε PORT0
της καρφίτσες ως γενικό σκοπό I / Os, όπως δεν υπάρχει τίποτα που να σας δώσει μια "1" ..

Χαιρετισμοί,
IanP

 
Γεια σου,

Ναι, έχω ήδη συνδεθεί pullup αντίσταση που είναι 8 x 10kOhm αλλά η συστοιχία Δηλώνω ως «xdata" θα κάνει το πρόβλημα PORT0 (χρήση LED για την προσομοίωση της παραγωγής αποτέλεσμα, η 8xLED αναβοσβήνει κατά το ίδιο χρονικό διάστημα, αλλά δεν αποτελεί πραγματικό αποτέλεσμα που θέλουμε !!).

Μετά την αφαίρεση xdata τότε λειτουργεί ήδη καλά, αλλά τα δεδομένα μου ήδη πλήρης!

και έχω ήδη προσπαθήσει syrax μέθοδο προσθήκη

άκυρη Port_Init (κενή)
(
P0 = 0x00?
)

αλλά ακόμη δεν λειτουργεί!

Σε ευχαριστώ

 
Γεια σου

Προσπαθήστε να τεθεί [count] = 1 = countNum μετράνε.Όπως παρακάτω κώδικα, τη σύνταξη και το αποτέλεσμα είναι:

δεδομένα = 10,0 xdata κωδικός = 40 = 107, καταρτίζονται υπό έκδοση demo του Keil C 7,09

Κωδικός:

# περιλαμβάνουν <reg52.h># καθορίσει countNum P0xdata unsigned char α [40 ];//' xdata'will couse την P0 problem.Why;;
Αν P1 ΟΚ!άκυρη Deley (unsigned int Dly)

(

int i, j, k?

(i = 0? i <255? i )

(

for (j = 0? ι <Dly? j )

(

για (k = 0? κ <1? K )?

)

)

)άκυρη Run (κενή)

(

στατική unsigned char count?if (count <16)

(

α [count] = 1?

countNum = μετράνε?

count ?

)

if (count> 15)

(

count = 0?

)

)κενό κύριο ()

(

ενώ (1)

(

Run ()?

Deley (100)?

)

επιστροφή?

)
 
TechToys έγραψε:

Έκανα μια δοκιμαστική χρήση του πλοίου για να δείτε το αποτέλεσμα!
Είναι αντίθετη.
Οι λυχνίες LED αναβοσβήνουν ως δυαδικό αντιμετώπιση, έτσι;

Are U χρήση εξωτερικής μνήμης RAM;
Εάν δεν είναι, γιατί να την κηρύξει xdata;
xdata χρησιμοποιεί τη θύρα για την αντιμετώπιση 0.
Εάν δεν χρησιμοποιείτε εξωτερική RAM, φαίνεται για μια ενσύρματη [count] = 1 δήλωση.
 
Απόσπασμα:

Εγώ δεν το χρησιμοποιείτε κάθε υλικού εξωτερικής μνήμης RAM.
Θέλω μόνο να χρησιμοποιούν PORT0 ως κανονική I / O.
 
Θα επαναλάβω όλα σε ένα μέρος

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Χαμόγελο" border="0" />

)

1.Xdata είναι δήλωση για την εξωτερική μνήμη!!
2.You πρέπει να θέσει pullup αντίσταση στις P0 διότι δεν έχουν εσωτερική pullups όπως και τα άλλα λιμάνια
3.You πρέπει να P0 σε 0 για την έναρξη εργασιών για την παραγωγή όπως

3 κανόνες, όταν αυτό είναι ΟΚ -> θα σας κύκλωμα εργασίας κανονική

εάν είχατε προβλήματα κυκλώματος και μετά σας πω τι πρέπει να κάνει

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Χαμόγελο" border="0" />

) Και στη συνέχεια θα κάνουμε από κοινού ένα πρόγραμμα

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Χαμόγελο" border="0" />

)

REGARDS

 
Γεια σου,

Απόσπασμα:

Εάν δεν χρησιμοποιείτε ένα κομμάτι πυριτίου ως εξωτερική RAM, χρησιμοποιώντας μόνο τη λέξη-κλειδί xdata είναι άχρηστο για την αποθήκευση δεδομένων.
Αν υπάρχει μόνο 256 byte RAM, χρησιμοποιώντας xdata δεν μπορεί να είναι 512byte RAM, σωστά;
 
Γεια Βοήθεια

Ναι, θα χρησιμοποιείται το ίδιο σχήμα με το πρόγραμμα δοκιμών αναφέρονται σήμερα το πρωί.Χρησιμοποιώντας 470 ohm αντιστάσεις για την τρέχουσα περιορισμό, pullup Port0, στη συνέχεια συνδέστε την κάθοδο των LEDs να P0-P3.

Συγνώμη,
αλλά δεν έλαβα πολύ προσοχή με τον κωδικό "A Test", διότι πιστεύω, υπήρξε μια ασαφής έννοια.

Το ερώτημα είναι:

Να φτάσουμε δεδομένα μνήμη RAM μεγαλύτερη από 256Mbyte δηλώνοντας τα στοιχεία που πρέπει να xdata μόνος;

Φύλλο δεδομένων για 89S52 αναφέρει ότι υπάρχει RAM 256MB on-chip.ΧΩΡΙΣ εξωτερική RAM chip, do we get δεδομένα RAM μεγαλύτερη από ότι από την κήρυξη

xdata unsigned char α [50];

Αν μπορέσουμε να απαντήσουμε σε αυτό το ερώτημα, θα λύσει το πρόβλημα, νομίζω.Όλοι μας μαθαίνουν στο τέλος.

John

 

Welcome to EDABoard.com

Sponsor

Back
Top