Bonjour
Je suis sur un projet de fin d'année et je suis confronté à une difficulté celle de programmer le microcontroleur 8051.En effet,la partie qui me cause de soucies et de pouvoir programmer le microcontroleur pour aller lire les données des deux roues codeuses pour les envoyer dans le codeur HT9200A/B.Merci pour vos propositions.
#include<stdio.h>
#include<reg51.h>
char x, A;
sbit CE;
sbit portcodeur=port_D;
char port_D;
sbit portcodeur;
sbit portcodeuse1;
char tempo_1;
void main ()
{
P3^4=0
//* alimentation du microcontroleur et debut de la transmission de l'information//
portcodeur=0x0B; //*mettre X sur le codeur //
CE=0; //*mettre CE à l'etat bas pour faire passé l'information pendant 100ms//
for (i=0; i<100ms; i++)
tempo_1(100ms);
CE=1; //*mettre CE à l'etat haut pour faire passé l'information pendant 100ms//
for (i=0; i<100ms; i++)
tempo_1(100ms);
portcodeur=0X0D; //**mettre A sur le codeur //
CE=0; //**mettre CE à l'etat bas pour faire passé l'information pendant 100ms//
for (i=0; i<100ms; i++)
tempo_1(100ms);
CE=1; //*mettre CE à l'etat haut pour faire passé l'information pendant 100ms//
for (i=0; i<100ms; i++)
tempo_1(100ms);
//*lire sur la roue codeuse//
portrouecodeuse=(portrouecodeu se & 0xf0)|11; //*mettre la variable sur le codeur pendant 100ms//
CE=0; //*CE à l'etat bas pour faire passé l'information pendant 100ms//
for (i=0; i<100ms; i++)
tempo_1(100ms);
CE=1; //*CE à l'etat haut pour faire passé l'information pendant 100ms//
for (i=0; i<100ms; i++)
tempo_1(100ms);
//*lire sur la roue codeuse1//
portrouecodeuse=(portrouecodeu se & 0x0f)|11; //*mettre la variable sur le codeur //
CE=0; //*CE à l'etat bas pour faire passé l'information pendant 100ms//
for (i=0; i<100ms; i++)
tempo_1(100ms);
CE=1; //*CE à l'etat haut pour faire passé l'information pendant 100ms//
for (i=0; i<50ms; i++);
tempo_1(100ms);
P3^4=1 //*arret de l'alimentation//
while(1);
}
-----