Communication entre PC et PIC16F876

Signaler
Messages postés
6
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
19 juin 2007
-
Messages postés
6
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
19 juin 2007
-
Salut tout le monde

Je travaille sur un afficheur déroulant, et je voudrais taper un message depuis l'interface visal basic et l'enregistrer dans le PIC pour qu'il s'affiche.

Pour cela j'utilise une liaison RS232, lorsque je regarde les signaux qui proviennent du PC et du PIC je peux voir qu'ils communiquent bien entre eux mais que le PIC reois que des zeros ou alors il affiche n'importe quoi.
 
je voudrais donc savoir comment connecter le PIC au PC via la liaison RS232 et si quelqu'un avait une interface visual basic qui marche je suis preneur

Merci

KNSTEAM
A voir également:

9 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Ben déjà commence par vérifier que les paramètres de connection (vitesse, nb de bits de données, ....) correspondent bien à ce qu'attend le PIC

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
6
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
19 juin 2007

Salut Casy

Les paramètres de connextion sont bonne 
19200bps, Pas de Paritée, 8 bits, et 1 stop bit

Pour aller plus vite je configure le pic pour un oscillateur de 10MHz alors que j'utilise un oscillateur de 20MHz (9600*2=19200).

Petit bout du programme:

' C O M M U N I C A T I N G W I T H T H E C O M P U T E R '

PCtalk:
i = 0 : pause 100
CTS = 1

SERIN PORTA.4,N9600,["@"],char

getserial:

Serin PORTA.4,N9600,char

write i, char

if char = EOM then
CTS = 0
Goto start
endif

i = i + 1

goto getserial

J'ai tout verifier et fais plusieurs test mais je suis toujours au meme point.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Si j'ai bien compris, tu configure ton PIC pour fonctionner à 9600 baud sous 10MHz, mais comme il tourne sous 20MHz, tu espere communiquer en réalité à 19200 bauds.

Bidouille quelque peu hasardeuse me semble-t-il.

Déjà il te faudras donc configuré ton PC pour 19200 bauds.

Ensuite, il faut espérer que le calcul de la vitesse de communication au niveau du PIC est linéaire.
Je ne sait pas comment le PIC configure son uart en fonction des paramètres que tu lui envoie. Ta manip présuppose que la configuration de l'uart du PIC est strictement identique entre 10Mhz/9600 bauds et 20MHz/19200 bauds en respectant les règles normales de configuration. Peut-etre n'est-ce pas le cas.

Tu peux déjà essayer avec des outils classiques comme l'hyperterminal ou même les outils que tu peux avoir avec le PIC, voir si ta manip est possible.

Ou sinon, essayer avec ton code de fonctionner déjà avec une configuration plus conventionnelle.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
6
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
19 juin 2007

En fait je n'utilise pas l'uart du pic mais le portA.4 du pic, j'ai tout de meme testé en me connectant sur le portC.7 du pic mais ca ne marche pas. J'ai toujours la meme chose (soit des zeros soit le pic affiche n'importe quoi). (D'après mon tuteur de stage le circuit fonctionnait.) .
Mais je vais essayer en configurant le PIC pour un oscillateur de 20MHz.
(je ne possede pas d'hyperterminal sur ce PC) 
Messages postés
6
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
19 juin 2007

Je voudrai aussi savoir si c'était normal que CTS se remet à zero lorsque le PIC recoie le premier caractère, il ne devrait pas se remetre à zero lorsque tout les caractères sont envoyés?
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Ben normalement le CTS doit tu signalé que tu peux envoyer des données, c'est à dire que le PIC est pret pour en recevoir.

S'il passe le CTS à 0, ça veut dire que pour le moment il ne peut plus recevoir des données, peut-etre le temps de traiter les dernières recues. Il doit par la suite le remettre à 1 pour te signaler qu'il peut de nouveau en recevoir et donc que tu peux les envoyer.

Attention, il est possible qu'iol ne te signale qu'il est pret à recevoir que si toi même tu lui signale que tu est pret à lui en envoyer. Cela est fait avec le signal RTS

Le processus est :

- J'ai des données à t'envoyer, je fait une demande d'emission, je met RTS à 1
- Tu m'accorde l'emission et tu est pret à recevoir, tu me met CTS à 1
- j'envoie
- Tu ne peux plus recevoir, tu me met CTS à 0
- J'envoie plus
- Tu es de nouveau pret à recevoir, tu met remet CTS à 1
- Je reprend l'envoie
- JE n'ai plus rien à envoyer, je met RTS à 0
- Puisque je n'ai plus rien à envoyer, il n'y a pas de raison que tu m'autorise l'envoie, donc tu me repasse CTS à 0

Pour "Je" ton considère que c'est le PC, pour "Tu" le PIC

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
6
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
19 juin 2007

Salut
C'est encore moi

Je voulais savoir où est ce que je pouvais trouver un compilateur VB gratuit sans le télécharger sur Emule (car à mon stage je ne peux pas avoir Emule).

 
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Pour le coté légal :
Il n'existe pas de version gratuite de VB6.

De plus, il n'est plus vendu depuis maintenant 4 ans. Ta seule chance de le trouver et de l'acheter d'occasion. Il peut arriver avec un peu de chance d'en trouver sur des sites comme Ebay ou consors

Il existe par contre en téléchargement chez microsoft une version gratuite de VB2005 (version Express), mais là ce n'est plus du VB6, c'est du VB.Net. Il te faudra donc reprendre une bonne partie de ton prog, ce n'est plus tout à fait la même philosophie de programmation.

Pour le coté obscur de la force (emule et autres réseaux pirates) :
Il est assez facile de le trouver, mais de ce coté là, c'est à toi de prendre tes responsabilités.
Ici à CodeS-SourceS, tu ne trouvera aucune aide, on ne cautionne pas ce genre de réseaux (même si à l'extérieur certains membres peuvent s'y promener, chacun fait ce qu'il veut).

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
6
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
19 juin 2007

Ok merci Casy
Je vais essayer Ebay ou Consors