[Pascal] programmation pic16F867A

Signaler
Messages postés
7
Date d'inscription
mercredi 28 mars 2012
Statut
Membre
Dernière intervention
21 avril 2012
-
Messages postés
7
Date d'inscription
mercredi 28 mars 2012
Statut
Membre
Dernière intervention
21 avril 2012
-
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


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
Messages postés
14774
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
7 mars 2021
151
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
Messages postés
7
Date d'inscription
mercredi 28 mars 2012
Statut
Membre
Dernière intervention
21 avril 2012

le broblème que programmation d'un pic 16F867A n'est pas claire en pascal
Messages postés
14774
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
7 mars 2021
151
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
Messages postés
7
Date d'inscription
mercredi 28 mars 2012
Statut
Membre
Dernière intervention
21 avril 2012

bonsoir ,
oui mais le problème que mon projet pfe programmation en assembleur
Messages postés
14774
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
7 mars 2021
151
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

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
Messages postés
7
Date d'inscription
mercredi 28 mars 2012
Statut
Membre
Dernière intervention
21 avril 2012

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
Messages postés
7
Date d'inscription
mercredi 28 mars 2012
Statut
Membre
Dernière intervention
21 avril 2012

le problème que je ne compris pas se programme en pascal
Messages postés
14774
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
7 mars 2021
151
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
Messages postés
7
Date d'inscription
mercredi 28 mars 2012
Statut
Membre
Dernière intervention
21 avril 2012

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