[Pascal] programmation pic16F867A

MEZZIMARIEM Messages postés 7 Date d'inscription mercredi 28 mars 2012 Statut Membre Dernière intervention 21 avril 2012 - 28 mars 2012 à 22:00
MEZZIMARIEM Messages postés 7 Date d'inscription mercredi 28 mars 2012 Statut Membre Dernière intervention 21 avril 2012 - 3 avril 2012 à 23:01
je besoin de l'aide de programmation de pic 16F867A AVEC RS485
Programmer pic comme un mètre rs485 comme esclave en mode bus
merciiiiiiiiiiiiiiiiiiii

11 réponses

Utilisateur anonyme
29 mars 2012 à 05:54
Pas Bonjour non plus donc,

Programmer pic comme un mètre rs485 comme esclave en mode bus

J'en connais qu'en mode train (ou tgv) désolé...

Mais, tu veux dire un pic comme un mètre? j'imagine bien... tu appuies sur le bouton et le pic rentre complètement dans sa coquille.

Par contre je sais (j'ai lu dans des livres) que le "maître" ne sera jamais esclave.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 158
29 mars 2012 à 13:39
Bonjour,

Lis attentivement le point 1 de ma signature, surtout les 2 prtemùiers liens.

En quel langage ?

"Programmer pic comme un mètre rs485 comme esclave en mode bus "
Ce que j'ai compris en mieux régigé :
Programmer in PIC comme un maitre rs485 comme esclave en Modbus

Déjà, l'association entre le maitre et l'esclave n'est pas claire.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
MEZZIMARIEM Messages postés 7 Date d'inscription mercredi 28 mars 2012 Statut Membre Dernière intervention 21 avril 2012
29 mars 2012 à 21:44
le broblème que programmation d'un pic 16F867A n'est pas claire en pascal
0
NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 158
29 mars 2012 à 21:56
Bonjour,

D'après ce que je comprend, c'est en Pascal, tu confirmes ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MEZZIMARIEM Messages postés 7 Date d'inscription mercredi 28 mars 2012 Statut Membre Dernière intervention 21 avril 2012
29 mars 2012 à 22:51
bonsoir ,
oui mais le problème que mon projet pfe programmation en assembleur
0
NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 158
29 mars 2012 à 23:24
Bonjour,

On tourne en rond, merci d'être clair.
Concernant les PFE, lire le point 1 de ma signature.

Assembleur ou Pascal ?
Visiblement tu as du mal avec le français, es-tu plus habile dans une autre langue, comme l'anglais par exemple ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Utilisateur anonyme
30 mars 2012 à 13:01
Non, un processeur au final se programme toujours en assembleur, sauf quelques exceptions (automates) qui fonctionnent en C, mais pas les PIC.

On peut éventuellement créer le programme avec un autre langage (VB, Pascal ou autre) et en suite, à l'aide d'un compilateur, transformer en .ASM, ou assembleur, ou encore connu comme "langage machine" ou "code machine".

le broblème que programmation d'un pic 16F867A n'est pas claire en pascal

Si j'ai bien compris tu ne t'y connais pas en Pascal, c'est bien le problème typique des PFE, c'est à croire que tes enseignants ne sont "Pas Fichus d'Enseigner", c'est bien ça PFE?

En ce qui concerne les PIC tu as (par exemple) un compilateur Basic/Assembleur nommé "melabs PICBASIC PRO".

Concernant encore les PFE, notre ami buno a préparé un "mode d'emploi" DANS CE LIEN.
A lire et a comprendre sans tarder.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
MEZZIMARIEM Messages postés 7 Date d'inscription mercredi 28 mars 2012 Statut Membre Dernière intervention 21 avril 2012
2 avril 2012 à 20:56
program RSBUMASTER;
var dat : array[3] of byte; // Message buffer
begin
Lcd_Config(PORTB,6,5,4,3,PORTB,0,1,2); // Initialize LCD
Usart_init(9600); // Initialize USART module
RS485Master_Init(PORTC, 2); // Initialize MCU as Master
dat[0] := 'A'; // Message 'AII'
dat[1] := 'I';
dat[2] := 'I';
Lcd_out(1,1,'Press START');
while true do
begin
if PORTC.0 = 1 then
begin
Lcd_out(1,1,'Message sent:');
Lcd_out(2,1,'AII');
RS485Master_Send(dat, 3, 170); // send message
delay_ms(1000);
end;
end;
end.

Programme de l’esclave :
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//******************* http://www.technologuepro.com/ ***************************//
// ISET Nabeul Le 07/12/2010 --------+------- //
// Carte de test de la liaison RS485 programme esclave //
// By ABIDI Hatem //
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Program RSBUSLAVE;
var dat : array[8] of byte; // Message buffer
i, j : byte;
procedure interrupt;
begin
RS485Slave_Receive(dat);
ClearBit(PIE2, TXIE);
end;
begin
Lcd_Config(PORTB,6,5,4,3,PORTB,0,1,2);
Usart_init(9600); // Initialize USART module
RS485Slave_Init(PORTC, 2, 170); // Initialize MCU as Slave, address 160
SetBit(PIE1, RCIE); // Enable interrupt on byte received
SetBit(INTCON, PEIE); // via USART (RS485)
ClearBit(PIE2, TXIE);
SetBit(INTCON, GIE);
PORTB := 0;
dat[4] := 0; // Clear "message received" flag
dat[5] := 0; // Clear error flag
Lcd_out(1,1,'Standby');
while true do
begin
// If there is an error,
if dat[5] = TRUE then Lcd_out(1,1,'error');
// If message received:
if dat[4] = TRUE then
begin
Lcd_out(1,1,'Message receved:');
dat[4] := 0; // Clear message received flag
j := dat[3]; // Number of data bytes received
for i := 1 to j do
BEGIN
lcd_chr(2,i,dat[i - 1]);
END;
end;
end;
end.
Note :
L’exemple suivant est téléchargeable à l’adresse suivante :
http://www.technologuepro.com/cours-systemes-embarques/exemple-RS485.zip
0
MEZZIMARIEM Messages postés 7 Date d'inscription mercredi 28 mars 2012 Statut Membre Dernière intervention 21 avril 2012
2 avril 2012 à 20:57
le problème que je ne compris pas se programme en pascal
0
NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 158
3 avril 2012 à 19:29
Bonjour,

"le problème que je ne compris pas se programme en pascal"
C'est quoi exactement le soucis, car poster un code sans mise en forme (voir le point 2 de ma signature) et ne pas dire ce qui ne va pas ne sert à rien.

Ceci dit, je déplace sur un forum plus adapté.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
MEZZIMARIEM Messages postés 7 Date d'inscription mercredi 28 mars 2012 Statut Membre Dernière intervention 21 avril 2012
3 avril 2012 à 23:01
bonjour;
Les routines RS485 requirent un module USART sur le PORTC du microcontrôleur utilisé.
L’adresse 50 est l'adresse de diffusion commune à tous les esclaves (les paquets contenant l'adresse 50 sera reçu par tous les esclaves). Les seules exceptions sont les esclaves avec des adresses 150 et 169.
il faut que Usart_Init () soit appelée avant l'initialisation RS485.
ce brogramme pascal est un exemple de communication RS485 entre deux microcontrôleurs PIC16F876A
0