Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1791 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Language C et LCD

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Language C et LCD

n°1527462
lancedelot​78
Posté le 12-03-2007 à 16:33:43  profilanswer
 

Bonjour à tous et a toutes,
 
Nouveau sur ce forum, j'ai quelques questions a poser.
 
Je suis dans le petrain avec mon projet de bts electronique ayant pr theme une centrale d'alarme (Conception d'une carte Recepteur Universel qui permet de recuperer une trame venant d'appareil communiquant par courant porteur)
 
Mon probleme réside dans la programmation. J'ai épluché des tonnes de doc sur le net ou sur différents forums et rien y fait je ne comprend pas. Je programme en C et j'affiche sur un LCD HD44780 le tout venant d'un pic 16f648
 
Par exemple je ne comprend pas comment on fait pr que l'entrée de validation (E) reste a l'état haut pendant 450ns
Je ne comprend pas également comment on programme ce fichu pic pr initialiser le LCD ou tout simplement pr permettre d'afficher la trame. ça fait pas mal de temps que je suis dessus le retard s'accumule j'ai foiré ma revu de projet 1 mes profs m'ont dit de continuer a éplucher la doc et c'est ce que je fais.
 
Je ne demande pas qu'on me fasse le programme mais qu'on puisse me mettre, si possible, sur de bon rail car la ça me soule vraiment !!!
 
J'ajoute que j'ai raté la premiere fois le bts de 6 points car une des raisons fait que j'ai foiré mon projet de l'année derniere (8) ... et pr ne pas que ça recommence je me suis mis au boulot mais la ça me dépasse encore ... et j'ai pas envi de le rater une 2eme fois. Certain d'entre vous savent certainement l'importance qu'a le projet en terme de coeff avec des points qui peuvent rattraper d'autres matieres.
 
Merci d'avance


---------------
Lancedelot
mood
Publicité
Posté le 12-03-2007 à 16:33:43  profilanswer
 

n°1527472
grouhic
Posté le 12-03-2007 à 16:58:06  profilanswer
 

lancedelot78 a écrit :

Bonjour à tous et a toutes,

 

Nouveau sur ce forum, j'ai quelques questions a poser.

 

Je suis dans le petrain avec mon projet de bts electronique ayant pr theme une centrale d'alarme (Conception d'une carte Recepteur Universel qui permet de recuperer une trame venant d'appareil communiquant par courant porteur)

 

Mon probleme réside dans la programmation. J'ai épluché des tonnes de doc sur le net ou sur différents forums et rien y fait je ne comprend pas. Je programme en C et j'affiche sur un LCD HD44780 le tout venant d'un pic 16f648

 

Par exemple je ne comprend pas comment on fait pr que l'entrée de validation (E) reste a l'état haut pendant 450ns
Je ne comprend pas également comment on programme ce fichu pic pr initialiser le LCD ou tout simplement pr permettre d'afficher la trame. ça fait pas mal de temps que je suis dessus le retard s'accumule j'ai foiré ma revu de projet 1 mes profs m'ont dit de continuer a éplucher la doc et c'est ce que je fais.

 

Je ne demande pas qu'on me fasse le programme mais qu'on puisse me mettre, si possible, sur de bon rail car la ça me soule vraiment !!!

 

J'ajoute que j'ai raté la premiere fois le bts de 6 points car une des raisons fait que j'ai foiré mon projet de l'année derniere (8) ... et pr ne pas que ça recommence je me suis mis au boulot mais la ça me dépasse encore ... et j'ai pas envi de le rater une 2eme fois. Certain d'entre vous savent certainement l'importance qu'a le projet en terme de coeff avec des points qui peuvent rattraper d'autres matieres.

 

Merci d'avance


Bonjour

 

Tu devrais trouver ici ton bonheur
http://www.piclist.com/techref/mic [...] /index.htm
Pour les 450ns c'est un temps mini de mémoire, donc il faut voir la vitesse de ton PIC, mais avec une fréquence d'horloge standart, le temps entre 2 instructions est suppérieur a 450ns, donc il suffit de passer enable a 1 puis a 0 l'instruction suivante, et l'afficheur le prend en compte.
Dans le lien ci dessus, tu as les deux programmes qui vont bien pour faire l'affichage sur ton lcd, il suffit de changer les adresses des ports suivant ta connectique au début du .C

 

Voilà


Message édité par grouhic le 12-03-2007 à 17:03:18
n°1536099
wormy3
Posté le 29-03-2007 à 21:46:43  profilanswer
 

Bonjour moi aussi j'ai un probleme de programmation en C avec MPLAB et PIC C. Voila mon programme:

Citation :

#include <16F877.H>
#device ICD=TRUE
#fuses  XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
 
#define LcdRs PIN_B0
#define LcdRw PIN_B1
#define LcdEn PIN_B2
#define LcdRe PIN_B3
 
char caractere,x;
char liste[17]={0x00};
char  TableInitL1[5] = {0x01,0x38,0x02,0x0E,'%'};     //{raz,8bits 2lignes,curseur clignotant,curseur ligne 1,%}
char  TableInitL2[4] = {0x38,0x02,0xC0,'%'};     //{8bits 2lignes,curseur clignotant,curseur ligne 2,%}
 
char  TableAllumage[] = {"   Bienvenue    %"};
 
char  TableL1ManPr[]={"MANUEL     HH:MM%"};
char  TableL2ManPrePr[]={"MODE MANU ACTIF %"};
char  TableL2ManPr[]={"X=xxxx    Y=yyyy%"};
 
char  TableL1AutoPr[]={"AUTO         HH:MM%"};
char  TableL2AutoPrePr[]={"MODE AUTO ACTIF %"};
char  TableL2AutoPrFinal[]={"P1 X=xxxx Y=yyyy%"};
 
char  TableL1ChangeClk[]={"CHANGER HORAIRE %"};
char  TableL2ChangeClk[]={"     HH:MM      %"};
 
char  TableL1ImportProg[]={"IMPORTER PROG?  %"};
char  TableL2ImportProg[]={"     PROG 1     %"};
 
char  TableL1ChoixProg[]={"CHOIX PROGRAMME %"};
char  TableL2ChoixProg[]={" PROGRAMME N°1  %"};
 
void RETRO(void);
void SEND(char,char);
void TESTBUSY(void);
void InitL1(void);
void InitL2(void);
void EcritureMenu(long *AdrTable);
void AFF_TableAllumage ();
void init_convetisseur (void);
 
void main()
{
 output_high(LcdRs);
 InitL1();
 EcritureMenu(TableAllumage);
}
 
//--------------Ecriture LCD-------------//
void SEND(char RS,char caractere)
{
 if (RS == 0)
 {
  output_low(LcdRs);
 }
 else
 {
  output_high(LcdRs);
 }    
 output_low(LcdRw);
 delay_us(5);    
 output_high(LcdEn);
 delay_us(5);  
 output_D(caractere);
 delay_us(5);
 output_low(LcdEn);
 delay_us(5);
}
 
//-----initialisation lcd ligne 1------//
 void InitL1 (void)
{
 char n;
 for (n=0;TableInitL1[n]!='%';n++)
 {
  SEND(0,TableInitL1[n]);
  TESTBUSY();
  delay_ms(1);
 }
}
 
//-----ecriture d'une chaine de caracteres----//
void EcritureMenu(long *AdrTable)
{
 char n=0;
 while (AdrTable[n] != '%')
 {
  SEND(1,AdrTable[n]);
  TESTBUSY();
  n++;
 
 }
}
 
void TESTBUSY(void)
{
 char data=0x80,busy;
 do
 {
  output_high(LcdRw);
  delay_us(5);
  output_low(LcdRs);
  delay_us(5);
  output_high(LcdEn);
  delay_us(5);
 
  data=input_D();
  output_low(LcdEn);
  busy=data & 0x80;
 }
 while (busy !=0);
}


 
et maintenant mon probleme et que si je fais ca comme ca MPLAB me dit qu'il n'y a plus de  RAM disponible donc je voudrais savoir comment faire pour la mettre en ROM et aussi faire une sous fonction qui me permettrai de faire afficher mes table sur mon lcd....
 
MERCI pour vos reponse rapide !!!

Message cité 1 fois
Message édité par wormy3 le 29-03-2007 à 21:48:06
n°1536166
Emmanuel D​elahaye
C is a sharp tool
Posté le 30-03-2007 à 00:36:18  profilanswer
 

wormy3 a écrit :

Bonjour moi aussi j'ai un probleme de programmation en C avec MPLAB et PIC C.


Ca se fait pas de squatter un fil de discussion... Comment veux-tu qu'on s'y retrouve ?  
 
Définis tes chaines const...

Code :
  1. char const TableAllumage[] = {"   Bienvenue    %"};


etc.
 
Idem pour les tableaux de constantes.


Message édité par Emmanuel Delahaye le 30-03-2007 à 00:38:24

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1536208
wormy3
Posté le 30-03-2007 à 09:21:33  profilanswer
 

ok désolé je suis nouveau alors je ne connais pas encore toutes les regles du forum...
 
Sinon j'ai fais ce que tu m'as dis et effectivement la RAM se libère mais je n'arrive pas a faire la fonction qui me permettrais d'afficher ces constantes sur le lcd...
 
En fait je voudrais pouvoir faire une sous fonction afin d'afficher mes tables sur l'afficheur....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Language C et LCD

 

Sujets relatifs
language html[C#] [Résolu] Comment communiquer avec une dll c++
[Projet] Motec sur afficheur LCD externe 240x128 ! Besoin d'aide !Factorisation LU en language C
[C] Des accolades "just pour le fun" ?Le language approprié????? scrabble
[C#] Apprendre ce language, oui, mais où ?Quel language faut connaitre pour un siteweb???
le langage C pour les nuls ?Quel langage au le plus utilisé dans la vie courante?
Plus de sujets relatifs à : Language C et LCD


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR