AT89C52 PORT SERIE

E

emmos

Guest
Bonjour tout le monde

J'ai un programme Visual Basic qui envoie DONNEES sur le port série du PC et je veux le lire avec MICROCONTROLEUR 89C52 Mais je ne peux pas

Au début,
j'étais UN TERMINAL DE LECTURE DE PROGRAMME ET le clavier du PC, mais
j'ai dû TRANSLAT LA SORTIE DE PORT SERIE POUR LE microcontrôleur

IL
N'EST PAS CENSE LIRE EN ASCII, par exemple.A = 41, B = 42 ET AINSI DE SUITE OU QUOI

PLZ HELP ME DANS CE

THANK U
EMMOS

 
hai
vous avez raison
lorsque vous envoyez des' A ', sur le port série, vous recevez 41, qui est le code ASCII pour la letter.now qu'est-ce que vous voulez? vous voulez lire le o / p d'un PC à l'aide de 89c52.it' s possible.set la débit, parity.in pc et mc, les paramètres doivent être same.if le système lit, qu'est-ce que u veux faire?. que vous devez indiquer sur le programme que vous écrivez pour le MCU.
merci de vérifier les

reg

ml

 
oui,
la communication entre PC et UC sont très fréquents.Si vous avez Windows OS, vous pouvez utiliser hyperterminal programme d'accès à un port série, vous pourrez interagir avec l'uC connecté au PC.lorsque vous appuyez sur la touche sur le clavier, PC envoie automatiquement la valeur correspondant ASCI via le port série.

Et le précédent anser est bonne, vous devez mettre la même configuration pour permettre aux PC et uC UART communication RS-232 (ne pas oublier de mettre le bon numéro du port série, si vous avez plus d'1 port).
pour le débogage sur le côté PC,
il vous suffit de connecter le câble de la broche 2 (la transmission de données) et la broche 3 (de recevoir des données) de votre port série (googler pour trouver le nombre DB9 broches si vous ne connaissez pas).C'est ce
qu'on appelle test de bouclage,
de sorte que vous avez appuyé sur le clavier lorsque hyperterminal est en cours d'exécution, il sera affiché à votre écran.

observe,

 
Outre que la boucle d'essai,
le nombre de bits de start / stop bit fixé par le programme VB?Votre LC devez configurer le même que le nombre de bits que le VB même programme.Non seulement cela, vitesse de transmission et de la comm.numéro de port ont t mis en examen en tant que bien.

Comment vous écrivez le AT89C52 firmware?Assmbly ou compilateur C?Si vous utilisez le compilateur C, un compilateur a la bibliothèque de l'appel de la fonction URAT qui est très facile à utiliser.Ces compilateur C est très répandue et facile à obtenir sur le Web.

 
J'ai utilisé BRAY TERMINAL PROGRAMME COMME IL A ETE AVERTI PAR LE FORUM DES UTILISATEURS

ET LIRE LA SUITE DE LA MICROCONTROLEUR

0 = 06
1 = C7
2 = 73
ET AINSI DE SUITE

Ce qui
n'est pas le code ASCII que je pensais que je recevrais

ALL I DID EST À LA MODE DE 8052 AVEC 1 BAUD RATE 9600
ET LE PROGRAMME DE TERMINAL GICE a été fixée à 1 bit d'arrêt BAUD ET 9600

Ce qui se passe ici ADVISE ME PLZ

 
Je ne sais pas si dans la BRAY terminal connecté, vous pouvez modifier les taux de bauds ou bits, mais si il est possible de connecter votre microcontrôleur et le changement vitesses et / ou de bits / parité et ainsi de suite
jusqu'à ce que vous trouver la bonne configuration ..
Si 9600 ne fonctionne pas essayer d'autres taux de ..
Au moins vous avez transimission entre votre PC et le microcontrôleur, il est donc maintenant la question de savoir son (transmission)
des paramètres ..

Si BRAY
n'est pas en mesure de modifier ces paramètres puis essayez Interm, copier et coller à la Explorer's ADRESSE tout entre les parenthèses:
(http://www.rfinnovations.com.au/Uploads/Images/RFI-Interm 20Rev1.1% (1). zip) ..

Observe,
IanP

 
emmos a écrit:ET LIRE LA SUITE DE LA MICROCONTROLEUR0 = 06

1 = C7

2 = 73

ET AINSI DE SUITECe qui n'est pas le code ASCII que je pensais que je recevrais
 
Ce que je voulais dire par
0 = 06
1 = C7

C'est ce que
j'ai lu sur 1 SUR LE PORT DE 8052 QUI ETAIT SUR LE SBUF

et maintenant
j'ai atteint pour U = 55, mais pas le code ASCII est tout autre droit?Il
s'agit du code que
j'utilise (2400, 8 bits, sans parité)

; PROGRAMME DE SERIE

ORG 0000H; LOCATE ROUTINE AT 0000H
MOV SP, # 2FH
LJMP START, JUMP TO STARTORG 070H

START:; MAIN PROGRAMME COMMENCE ICI
MOV P1, # 00H
MOV SP, # 2FH; initialiser le pointeur de pile
MOV PCON, # 00H
MOV SCON, # 50H
MOV TMOD, # 20H
MOV TH1, # 0F3H
MOV A, # 00H
SETB TR1
CLR RI

GETNUMBER: JNB RI, GETNUMBER
CLR RI
MOV A, SBUF
CPL A
MOV P1, A
SJMP GETNUMBER

FIN

 
Code:

Lorsque Timer 1 est utilisé comme générateur de la vitesse de transmission, les vitesses de transmission

dans les modes 1 et 3 sont déterminées par le taux de dépassement de Timer 1 et

la valeur de SMOD (PCON.7 - double vitesse de vitesses), comme suit:smod

2

Baud rate = ------ x (taux de dépassement de Timer 1)

32En général, le compte à rebours est configuré dans le mode auto-reload

(mode 2, haute de grignoter TMOD = 0100B). Dans ce cas, la vitesse de transfert

taux est donné en tant que:smod

Fréquence de l'oscillateur 2

Baud rate = x ------- --------------------

32 12 x (256 - TH1)Quelques vitesses de transmission pour un cristal 11.0592:Vitesse de SMOD TH1

---------------------

19200 1 0FDH

9600 0 0FDH

4800 0 0FAH

2400 0 0F4H

1200 0 0E8H

300 0 0A0H

 
Oui, je sais

ce code a été, après
j'ai essayé de diminuer la vitesse de transmission et
j'ai oublié d'écrire le savoir bauds

il ne fonctionne toujours pas

 
8051 Le code est correct et si BRAY terminal est fixé à 9600bps, TH1 = FD 11.0592M de cristal, il devrait fonctionner.

Suppression de votre fiche de PC port COM.Faire un lien entre les broches 2 et 3 du port COM socket.
Type de caractère BRAY terminal 1
Si vous voyez 1 en recevoir fenêtres, supprimer le lien et de la transmettre clairement fenêtre.
Branchez votre câble série de nouveau à microcontrôleur.
Réinitialisez le microcontrôleur et la mesure de la tension de chacun des huit broches du port P1.
Il devrait être tout près de 0 volt.
Maintenant que le caractère de type 1 sur BRAY terminal.
Mesurer de nouveau la tension de chacun des huit broches du port P1.
Vous devriez obtenir les valeurs suivantes:
P1.0 = proche de 0V
P1.1 =
jusqu'à 5 v
P1.2 =
jusqu'à 5 v
P1.3 =
jusqu'à 5 v
P1.4 = proche de 0V
P1.5 = proche de 0V
P1.6 =
jusqu'à 5 v
P1.7 =
jusqu'à 5 v
C'est parce que vous de compléter la valeur avant d'être affichés.

C'est votre choix sur la façon de lire LED ou quoi que ce soit du dispositif d'affichage que vous utilisez.
Toutefois, afin de comprendre exactement la valeur envoyée au port P1,
s'il vous plaît mentionner la tension sur P1.
Sinon, je ne sais pas comment la valeur de port P1 est interprété par vous.
Il ne suffit pas de dire 1 = C7.
Je ne peux pas deviner, cela signifie: vous avez tapé sur le clavier de PC 1 et a reçu C7 (11000111 binaire) sur le port P1 (après un CPL?).

 
quelqu'un peut
m'aider ..???s'il vous plaît quelques exemples de 115200 bauds ...

 
Pour 115.2kbps vitesse de transmission, vous aurez à remplacer 11.0592MHz cristal avec 22.1184MHz et l'utilisation de la recharge de la valeur pour TH1 # 0FFh ..

Observe,
IanP

 
RS232 sur'51 quickstart document:

http://www.8052.com/users/jonled/RS232gd.pdf

Apprécier!
wek

 

Welcome to EDABoard.com

Sponsor

Back
Top