begin process at 2012 05 30 06:02:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Programmation 16F877A + LCD (C)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,591 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales