begin process at 2012 05 29 12:54:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Mplab CC5X LCD


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

Mplab CC5X LCD

samedi 17 octobre 2009 à 15:15:04 | Mplab CC5X LCD

ojejeo

Bonjour,

Etant débutant en programmation C en Pic, je souhaiterai, si possible, à ce que quelqu'un m'aide au dévelopement et à la compréhension d'un simple programme d'affichage entre un Pic 16F872 et un LCD 16*2.

Merci.
Jspeaker
mercredi 4 novembre 2009 à 13:53:04 | Re : Mplab CC5X LCD

mekhalayin

Réponse acceptée !
http://www.geocities.com/dinceraydin/djlcdsim/djlcdsim.html

http://www.8051projects.net/lcd-interfacing/initialization.php
lundi 16 novembre 2009 à 20:23:32 | Re : Mplab CC5X LCD

ojejeo

Bonjour, je tiens a faire profiter de mon programme au cas ou ;)
qu'en pensé vous ?
Ps: je travail finalement avec un LCD 16*1.

/* ********************************************************** */
/* **************** Définition des sorties ****************** */
/* ********************************************************** */

// RS =1 Mode caractére, Rs = 0 mode commande.
// En > Front descendant = validation de la donnée.
// D7 à D4 Mode 4 bits données.

#define RS PORTC.4
#define EN PORTC.5
#define D7 PORTC.3
#define D6 PORTC.2
#define D5 PORTC.1
#define D4 PORTC.0

/* ********************************************************** */
/* ************** Définition des sous fonctions ************* */
/* ********************************************************** */

void delay( char ); // Temporisation en ms 0 < T < 255ms
void Mess( void ); // Sélection d'unmessage
void lcd_init( void ); // Initialisation LCD.
void lcd_send( char ); // Envoie des commandes ou caractéres ASC2 à l'afficheur.
bit text;

/* ********************************************************** */
/* ****************** Initialisation message **************** */
/* ********************************************************** */

const unsigned char texte[ ]="*****MESSA1*****+++++MESSA2+++++/////MESSA3/////Bonjour le monde-----MESSA5-----";

/* ********************************************************** */
/* ****************** Programme Principale ****************** */
/* ********************************************************** */

void main( void )
{
TRISC = TRISC & 0xC0; // D0 - D5 en Sortie on ne modifie pas D7 et D6.
lcd_init(); // Appel de la fonction lcd_init.
Mess(); // Message
}

/* ********************************************************** */
/* ************************* Message ************************ */
/* ********************************************************** */

void Mess( void )
{

/* ****************** Selection du Message ****************** */

char i; // Définition de i caractére de type ASC2.
i=48; // On commence au 48eme caractere du tableau "Bonjour le monde".

/* ********************************************************** */

RS = 0;
lcd_send( 0x01 );
RS = 1;
{
for(i=i; i+8; i++) lcd_send(texte[i]); i++; // envoi des 8 premier caractere

RS = 0; // LCD Mode Commande.
lcd_send( 0xC0 ); // Passage à la deuxiéme partie de l'afficheur
RS = 1; // LCD Mode Caractére.

for(i=i; i+8; i++) lcd_send(texte[i]); i++; // envoi des 8 seconds caractere
}
while(1) nop();

Break: //Boucle infini pour stopper le programme.
goto Break;

}

/* ********************************************************** */
/* ************************ INIT LCD ************************ */
/* ********************************************************** */

void lcd_init( void ) // Initialisation afficheur.
{
delay(40); // Attente de 40 ms appel de la fonction "delay".
RS = 0; // LCD Mode Commande.

// Envoie des caractéres de commande au LCD.

lcd_send(0x32); // LCD en Mode 4 Bits.
lcd_send(0x28); // Une Ligne d'affichage 2x8.
lcd_send(0x0F); // LCD ON + Clignotement + Curseur.
lcd_send(0x06); // Mode incrementation.
lcd_send(0x01); // LCD effacé.

RS = 1; // LCD Mode caractere.
}

/* ********************************************************** */
/* *********************** ENVOI LCD ************************ */
/* ********************************************************** */

void lcd_send( char data ) // Envoi du paramétre d'entrée "data" de type ASC2.
{

// Envoi du MSB.

D7 = data.7; // MSB sur PORTC0 - PORTC3
D6 = data.6;
D5 = data.5;
D4 = data.4;

EN = 1; // Front descendant
nop();
EN = 0;

delay(10); // 10 ms.


// Envoi du LSB.

D7 = data.3; // LSB sur PORTC0 - PORTC3
D6 = data.2;
D5 = data.1;
D4 = data.0;

EN = 1; // Front descendant
nop();
EN = 0;

delay(10); // 10 ms.
}
/* ********************************************************** */
/* *********************** TEMPO **************************** */
/* ********************************************************** */

void delay( char millisec) // Pour un Quartz de 20MHz temporisation en ms.

{
char next = 0;
OPTION = 6; // 128
do {
next += 39;
TMR0 = 0;
clrwdt();
while ( TMR0 < 125) // 125 * 8 = 1000
;
} while ( -- millisec > 0);
}

/* ********************************************************** */
/* ********************************************************** */
/* ********************************************************** */
mardi 17 novembre 2009 à 08:44:51 | Re : Mplab CC5X LCD

ojejeo

à modifier pour selectionner le message dans le programme principale:


void main( void )
{
lcd_init(); // Appel de la fonction lcd_init.

/* ****************** Selection du Message ****************** */

Mess(48); // Message

/* ********************************************************** */

}

/* ********************************************************** */
/* ************************* Message ************************ */
/* ********************************************************** */

void Mess( char i )
{

RS = 0;
lcd_send( 0x01 );
RS = 1;

mardi 17 novembre 2009 à 18:20:33 | Re : Mplab CC5X LCD

ojejeo

lol je suis désolé j'ai fais une erreur j'aurai du tester avac de le mettre sur le site ^^'



void Mess( char j )
{
char i;
RS = 0;
lcd_send( 0x01 );
RS = 1;
{
for(i=j; i <= j+7; i++) lcd_send(texte[i]);

RS = 0; // LCD Mode Commande.
lcd_send( 0xC0 ); // Passage à la deuxiéme partie de l'afficheur
RS = 1; // LCD Mode Caractére.

for(j=i; j < i+8; j++) lcd_send(texte[j]);
}
delay(100);
}


Cette discussion est classée dans : pic, lcd, cc5x, mplab


Répondre à ce message

Sujets en rapport avec ce message

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 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 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 PIC et LCD 2*16 [ par caela ] Bonjour à tous svp est-ce que quequ'un peut me donner e nom de la librairie qu'il faut importer pour pouvoir gérer un LCD 2*16 en CPIC. MERCI Aide sur instructions du compilateur CC5X pour pic [ par CodeMercury ] Salut, Je programme actuellement en C sur le pic 16f84A avec le compilateur CC5X. Pour communiquer entre le pic et le PC, j'essai d'utiliser des strin Gerer un ecran LCD via port serie [ par TuxOnline ] Bonjour je cherche a programmer un ecran lcd relier par port serie et je suis a la recherche de documents qui me permettrai de connaitre les fonctions Menus pour ecran LCD [ par vavav ] Bonjour a tous,Je cherche, dans le cadre d'une application embarquée codée en C, à piloter un petit ecran LCD de quelques lignes, sur lequel on ne peu affichage lcd [ par leullier ] bonjours a tous,je ne suis peut etre pas au bon endroit mes je pose ma question.je recherche le schemas d'un afficheur lcd a base de pic-pour une char chercher comment afficher des resultats numériques avec PIC 16F877 [ par rayf2011 ] bonjour... je je veux saisir de constantes a et b par clavier. et je veux que ce programme faire la somme a+b=x, puis y= cos(x), et enfin afficher la


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 : 0,296 sec (4)

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