Accueil > Forum > > > > Programmation 16F877A + LCD (C)
Programmation 16F877A + LCD (C)
lundi 5 décembre 2011 à 16:58:55 |
Programmation 16F877A + LCD (C)

ult1m4tum
|
Messieurs, mesdames (bien qu'elles se fassent rare sur ce genre de forum)
Je cherche a créer un code en C me permettant d'afficher un simple caractère sur un afficheur LCD HD44780 a l'aide d'un PIC 16F877A
J'ai trouvé quelques bases sur le net pour l'initialisation de l'afficheur;
Mais je n'ai aucune idée de la démarche a suivre pour afficher un simple caractère dessus, en lisant la DOC, j'ai vu qu'il y avait une histoire de "trame" a respecter, hors étant débutant en programmation je ne sais pas du tout comment transformer tout cela en C ...
Pourriez vous m'aider sur les démarches a suivre pour me permettre d'afficher un simple caractère en choisissant l'adressage (le positionnement du caractère sur l'afficheur)
tout lien, toute aide me sera utile, je ne demande pas de code, (bien que cela me serait util) mais simplement la démarche !
Merci d'avance a vous tous.
Ult1m4tum
|
|
lundi 5 décembre 2011 à 17:11:05 |
Re : Programmation 16F877A + LCD (C)

CptPingu
|
Bonjour.
Je n'ai malheureusement pas la réponse à ta question, mais en tapant "Programmation 16F877A + LCD" dans Google, j'ai obtenu quelques résultats. Notamment: http://forums.futura-sciences.com/electronique/377902-programmer-un-lcd-pic-16f877.html
Ces résultats sont peut être de mauvaise qualités (je ne puis en juger), ce qui expliquerait la raison de ton post. Mais on ne sait jamais :).
________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
|
|
lundi 5 décembre 2011 à 17:29:25 |
Re : Programmation 16F877A + LCD (C)

ult1m4tum
|
Merci beaucoup pour ton post, effecitvement, cela m'a pas mal aidé,
mais je n'ai pas d'infos sur le compilateur du code donné dans le lien, je boss actuellement sous CC5X pour des réponses plus "précises".
J'ai déja essayé de retoucher un tant soit peu ce code, mais zsans succés !
pour infos nous parlons de CE code :
[code]
///////////////////////////////////////////////////////////////////////////
//// LCD.C ////
//// Driver for common LCD modules ////
//// ////
//// lcd_init() Must be called before any other function. ////
//// lcd_display(c) Will display c on the LCD. ////
//// lcd_clear () clear lcd display ////
//// lcd_instruction(instruct) send an instruction to lcd display ////
//// lcd_data(data) send a data to lcd display ////
//// void lcd_nl(); go to the next line ////
//// void lcd_home(); cursor back to home ////
///////////////////////////////////////////////////////////////////////////
// As defined in the following structure the pin connection is as follows:
// E0 enable
// E2 rs
// E1 rw
// D0 DATA0
// D1 DATA1
// D2 DATA2
// D3 DATA3
// D4 DATA4
// D5 DATA5
// D6 DATA6
// D7 DATA7
// To modify data pin connection, replace output_d by output_x
//----------------------------------PIN------------------------
#define rs PIN_E2
#define rw PIN_E1
#define e PIN_E0
void lcd_init();
void lcd_clear ();
void lcd_display(char*);
void lcd_data(char);
void lcd_instruction (char);
void lcd_nl();
void lcd_home();
void lcd_init() {
delay_ms(30);//le lcd se reveille
output_low(rs);//command
output_low(rw);//write
output_low(e);//disable
lcd_instruction(0x33);//LCD en mode 8 bits
lcd_instruction(0x38);//mode 8 bits, 2 lignes, caractères 5x7
lcd_instruction(0x0c);//pas de curseur
lcd_instruction(0x06);//ecriture de gauche vers la droite
lcd_instruction(0x01);//clear lcd
delay_ms(10);
}
void lcd_display(char *data)
{
while(*data !='\0')
{
if(*data=='\n') lcd_nl();
else lcd_data(*data);
data++;
}
}
void lcd_instruction (char x)
{
output_low(rs); //command.
output_low(rw); //write not read.
output_d(x); //data to bus.
output_high(e); //enable.
delay_us(1);
output_low(e); //disable.
delay_ms(10); //lcd busy protect
}
void lcd_data (char x)
{
output_high(rs); //data
output_low(rw); //write not read.
output_d(x); //data to bus.
output_high(e); //enable.
delay_us(1);
output_low(e); //disable.
delay_ms(10); //lcd busy protect
}
void lcd_clear ()
{
output_low(rs); //command.
output_low(rw); //write not read.
output_d(0x01); //data to bus.
output_high(e); //enable.
delay_us(1);
output_low(e); //disable.
delay_ms(5); //lcd busy protect
}
void lcd_nl()
{
lcd_instruction(0xC0); //command to write to the second line
}
void lcd_home()
{
lcd_instruction(0x02);//comand to go back to home
}
[/code]
|
|
lundi 5 décembre 2011 à 17:37:35 |
Re : Programmation 16F877A + LCD (C)

CptPingu
|
Je ne connais pas CC5X (c'est le cc contenu dans l'ensemble d'outil de gcc ou un autre compilateur ?).
En revanche, si tu as des erreurs de compilations, essaie de les poster ici. Si c'est une erreur d'exécution, mes connaissances superficielles sur ce sujet ne me permettront pas de t'aider davantage.
(PS: Pour la coloration, c'est [code=cpp] et non [code])
________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
|
|
lundi 5 décembre 2011 à 18:44:37 |
Re : Programmation 16F877A + LCD (C)

coucou747
|
Salut
il y a régulièrement des articles sur GNU Linux Magasine France, qui traitent de ce genre de sujets. Ils ont même sorti un nouveau mag (qui n'est pas aussi facilement accessible, tant niveau contenu que niveau point de ventes)
Sinon, ce hacker semble être plein de ressources : http://lefinnois.blogspot.com/search/label/Electronique
Bref, je n'ai pas de solution, mais quelques pistes qui peuvent t'ammener vers des gens passionés.
Cordialement,
Maxime
|
|
lundi 5 décembre 2011 à 21:12:23 |
Re : Programmation 16F877A + LCD (C)

ult1m4tum
|
Merci de vos réponses,
1°)le CC5X est un compilateur gratuit sous license freeciel je pense que c'est un developpeur indépendant, mais je ne pourrais pas l'affirmer.
2°) Merci pour la balise code, j'avoue ne pas avoir relu mon post une fois posté, désolé.
3°) Pour ce qui est du site, je viens d'y passer une heure, il est très interessant, ajouté a mes favoris, j'ai d'ailleurs été chercher quelques TP d'affichage sur bigonoff sans succés.
Je continue de chercher, si j'ai une solution je vous la transmet ici même mercredi !
|
|
Cette discussion est classée dans : afficher, caractère, programmation, lcd, 16f877a
Répondre à ce message
Sujets en rapport avec ce message
Programmation du PIC 16F87 pour afficher une tension sur LCD [ par Maisa ]
j'ai des difficultés au niveau de programmation et je veut un programme pour le PIC 16F877 (sur 4 bits) pour afficher sur un écran LCD "2*16" une tens
programmation [ par steve25cent ]
Bonjour à tous! je travaille sur un projet de modélisation et la 1ère partie consiste à partir du code source existant en "c", écrire un programme JA
programmation afficheur lcd 2*16 pour pic 16f876 [ par academie ]
bonjours svp est ce que quelqu"un peut m'aider dans la programmation du 16f876 pour afficher, le nom et quota préenregistrés, dans le pic ,de 2 perso
programmation pic16f877a + afficheur LCD [ par ghassen87 ]
salut a tt je suis débutant , je suis entrain de programmer une pic 16f877a en language pic c. mon objectif c'est d'afficher à partir d'une tensio
Programmation en C " detecteur de sur vitesse" TermS PPE [ par lexxordu79 ]
Bonjour dans le cadre des PPE ( Projet personnel Encadré ), Je dois réaliser un Programme en C qui permet de récupérer une vitesse sur une entrée prec
programmation en c [ par wxcvbn00pm ]
bonjour voila je m adresse a vous pour avoir de l aide car je suis nul en info et j essaye de m ameliorer mais je n y arrive toujours pas . voila ma q
Afficher caractère d'une chaine [ par acidjackproject ]
Bonjour, je cherche à afficher seulement quelque caractère d'une string. Exemple: Mathématique, j'aimerai juste afficher Math. Merci d'avance Ju
programmation c [ par cha9chou9 ]
Bonjour, je suis entrain de développer un programme en c. je veux savoir comment je peux affecter une chaine de caractère ds une variable ? par exempl
integrer caractère grec sigma (écart type) dans une chaine à afficher [ par jhmallot ]
Bonjour je souhaite afficher sur un graphique la chaine? = 1.2 En arial le code existe mais si je créé la chaine sigma[]={0x03c3,0x0000};je récupère l
Programmation pic 16F877A [ par iliamendre ]
Salut à tous Je suis étudiant en électronique, je suis à la recherche d'une personne qui maitrise la programmation pour pic, je dois réaliser un proj
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|