begin process at 2012 05 27 18:42:07
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > MINI PROJET MICROCONTRÔLEUR THERMOMÈTRE HORLOGE

MINI PROJET MICROCONTRÔLEUR THERMOMÈTRE HORLOGE


 Information sur la source

Note :
6,33 / 10 - par 3 personnes
6,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriaux Classé sous :température PIC16F, horloge PIC16F, hilali tarik, zakaria elqasmi, EMSI Niveau :Initié Date de création :02/07/2008 Date de mise à jour :03/07/2008 21:25:48 Vu / téléchargé :28 716 / 1 793

Auteur : zmtechnologie

Ecrire un message privé
Site perso
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Présentation:
On désire réaliser un projet d'horloge micro programmée avec affichage de la température à l'aide de la maquette du TP, utilisant le PIC 16F877, un module LCD 2 lignes de 16 caractères un capteur de température LM35 et un clavier à 3 touches reliées au PORTB.
Le clavier permettra d'assurer le réglage du temps.
Le capteur de température est câblé sur l'entrée analogique du microcontrôleur RAO.

Source

  • #define RS RB2
  • #define E RB3
  • #define LCD PORTD
  • // Clear Display
  • #define CLS 0x01
  • // Display & Cursor Home
  • #define HOME 0x02
  • // EntryMode
  • #define CURSOR_DEC 0x04
  • #define CURSOR_INC 0x06
  • #define DISP_SHIFT_ON 0x05
  • #define DISP_SHIFT_OFF 0x04
  • // LCD_Display
  • #define DISPLAY_ON 0x0C
  • #define DISPLAY_OFF 0x08
  • #define CURSOR_ON 0x0A
  • #define CURSOR_OFF 0x08
  • #define BLINK_ON 0x09
  • #define BLINK_OFF 0x08
  • // LCD_FonctionSet
  • #define MODE_8BIT 0x30
  • #define MODE_4BIT 0x20
  • #define MODE_2LINE 0x28
  • #define MODE_1LINE 0x20
  • #define FONT_5x7 0x20
  • #define FONT_5x10 0x24
  • // LCD_ModeSelection
  • #define COMMAND_MODE 0
  • #define DATA_MODE 1
  • //===========================================================
  • void Set_Enable();
  • void Lcd_SendCommand(unsigned char Command);
  • void Lcd_SendData(unsigned char Data);
  • //===========================================================
  • void Lcd_SendCommand(unsigned char Command)
  • {
  • RS = COMMAND_MODE ;
  • LCD = Command;
  • Set_Enable();
  • }
  • //===========================================================
  • void Lcd_SendData(unsigned char Data)
  • {
  • RS = DATA_MODE ;
  • LCD = Data;
  • Set_Enable();
  • }
  • //===========================================================
  • void Set_Enable()
  • {
  • unsigned char i;
  • E = 1; for (i=0;i<200;i++);
  • E = 0; for (i=0;i<200;i++);
  • }
  • //===========================================================
  • void Lcd_Init()
  • {
  • Lcd_SendCommand (MODE_8BIT | MODE_2LINE | FONT_5x7);
  • Lcd_SendCommand(DISPLAY_ON | CURSOR_OFF | BLINK_OFF);
  • Lcd_SendCommand(CURSOR_INC | DISP_SHIFT_OFF) ;
  • Lcd_SendCommand(CLS );
  • }
  • //===========================================================
  • void Lcd_LigneColonne(unsigned char Ligne, unsigned char Colonne)
  • {
  • Lcd_SendCommand(DISPLAY_ON | CURSOR_OFF | BLINK_OFF);
  • if(Ligne==1) Lcd_SendCommand (0x80+Colonne);
  • if(Ligne==2) Lcd_SendCommand (0xC0+Colonne);
  • }
  • //===========================================================
  • /**************************************************
  • Mini-Projet
  • Date : 4/07/2008
  • Auteur : HILALI Tarik & ELQASMI Med Zakaria
  • Compilateur : HI-TECH C Compiler
  • Objectif : mettre à jour l'Horloge,lire la Température
  • ( tension analogique ) à intervalles de temps réguliers et
  • afficher le résultat sur l'afficheur LCD (2x16).
  • PIC 16F877
  • Quartz : 4 MHz
  • ***************************************************/
  • #include<pic1687x.h>
  • #include "lcd.h"
  • #define degre 0xDF
  • unsigned char Jr , Hr , Mn , Sc , n , m1, m2 , pression , pointeur , v1 , v2 , temp;
  • const unsigned char T[ ]="LunMarMerJeuVenSamDim";
  • const unsigned char word[ ]="EMSIMARRAKECHMini-Projet :16F877+LCD+CAN";
  • const unsigned char prof[ ]="ENCADRE PAR :<< Mr.CHOURI >>";
  • //static int temp;
  • bit FinSeconde , Finduree1 , Finduree2 ;
  • bit normal_reglage , select , plus ;
  • /**************************************************/
  • static void interrupt inter()
  • {
  • if(TMR1IF)
  • {
  • TMR1H = 0x3C ; TMR1L = 0xB0 ;
  • m1++;
  • if(m1==12) // 600 mS
  • {
  • m1=0;
  • Finduree1 =1;
  • }
  • m2++;
  • if(m2==4) // (6) 300 mS
  • {
  • m2=0;
  • Finduree2 =1;
  • }
  • n++;
  • if(n==20) // 1000 mS
  • {
  • n=0;
  • FinSeconde =1;
  • }
  • TMR1IF=0;
  • }
  • }
  • /*************************************************/
  • void AfficheHorloge()
  • {
  • Lcd_LigneColonne(1,0);
  • Lcd_SendData(Hr/10 +48);
  • Lcd_SendData(Hr%10 +48);
  • Lcd_SendData(':');
  • Lcd_SendData(Mn/10 +48);
  • Lcd_SendData(Mn%10 +48);
  • Lcd_SendData(':');
  • Lcd_SendData(Sc/10 +48);
  • Lcd_SendData(Sc%10 +48);
  • }
  • /*************************************************/
  • void AfficheJour()
  • {
  • Lcd_LigneColonne(1,11);
  • Lcd_SendData(T[Jr*3]);
  • Lcd_SendData(T[Jr*3+1]);
  • Lcd_SendData(T[Jr*3+2]);
  • }
  • /*************************************************/
  • void MiseAjour()
  • {
  • Sc++;
  • if(Sc==60) { Sc=0; Mn++;
  • if(Mn==60) { Mn=0; Hr++;
  • if(Hr==24) { Hr=0; Jr++;
  • if(Jr==7) Jr=0;
  • }
  • }
  • }
  • }
  • /*************************************************/
  • unsigned int ConvertAD()
  • {
  • unsigned char t;
  • unsigned int V=0;
  • ADCON1 = 0x8E;
  • ADCON0 = 0xC1;
  • t=10; while(--t);
  • ADGO = 1;
  • while(ADGO==1);
  • V = ADRESH;
  • V = V<<8;
  • V = V | ADRESL;
  • return V;
  • }
  • /*************************************************/
  • void AfficheTemperature()
  • {
  • temp = 5.00 * ConvertAD() * 1000.00 / 1024.00 ;
  • Lcd_LigneColonne(2,4);
  • if(temp>=0x80)
  • {
  • Lcd_SendData('-'); temp = (~(temp)+1) ;
  • Lcd_SendData(temp/100+48);
  • Lcd_SendData((temp%100)/10+48);
  • Lcd_SendData(',');
  • Lcd_SendData((temp%100)%10+48);
  • Lcd_SendData(degre); // "°"
  • }
  • else if(temp<0x80)
  • {
  • Lcd_SendData('+');
  • Lcd_SendData(temp/100+48);
  • Lcd_SendData((temp%100)/10+48);
  • Lcd_SendData(',');
  • Lcd_SendData((temp%100)%10+48);
  • Lcd_SendData(degre); // "°"
  • }
  • Lcd_SendData('C');
  • }
  • /*************************************************/
  • void Entree()
  • {
  • v1=0;
  • Lcd_Init();
  • while(v1!=4) // "EMSI"
  • if(Finduree2==1)
  • {
  • Finduree2=0;
  • Lcd_LigneColonne(1,v1+6);
  • Lcd_SendData(word[v1]); v1++ ;
  • }
  • while(v1!=13) // "MARRAKECH"
  • if(Finduree2==1)
  • {
  • Finduree2=0;
  • Lcd_LigneColonne(2,v1);
  • Lcd_SendData(word[v1]); v1++ ;
  • }
  • v2=0; // Temporisation : 3 S
  • while(v2!=3)
  • if(FinSeconde==1)
  • {
  • FinSeconde=0; v2++;
  • } v2=0; Lcd_Init();
  • while(v1!=26) // "Mini-ProJet :"
  • if(Finduree2==1)
  • {
  • Finduree2=0;
  • Lcd_LigneColonne(1,v1-13);
  • Lcd_SendData(word[v1]); v1++ ;
  • }
  • while(v1!=40) // "16F877+LCD+CAN"
  • if(Finduree2==1)
  • {
  • Finduree2=0;
  • Lcd_LigneColonne(2,v1-25);
  • Lcd_SendData(word[v1]); v1++ ;
  • }
  • v2=0; // Temporisation : 3 S
  • while(v2!=3)
  • if(FinSeconde==1)
  • {
  • FinSeconde=0; v2++;
  • } v2=v1=0; Lcd_Init();
  • while(v1!=13) // "ENCADRE PAR :"
  • if(Finduree2==1)
  • {
  • Finduree2=0;
  • Lcd_LigneColonne(1,v1);
  • Lcd_SendData(prof[v1]); v1++ ;
  • }
  • while(v1!=28) // "<< Mr.CHOURI >>"
  • if(Finduree2==1)
  • {
  • Finduree2=0;
  • Lcd_LigneColonne(2,v1-13);
  • Lcd_SendData(prof[v1]); v1++ ;
  • } v2=0;
  • while(v2!=5) // Temporisation : 5 S
  • if(FinSeconde==1)
  • {
  • FinSeconde=0; v2++;
  • } v2=v1=0;
  • Lcd_Init();
  • }
  • /*************************************************/
  • void Mode()
  • {
  • if(RB0)
  • pression=0;
  • else
  • pression++;
  • if(pression==3 && normal_reglage==1)
  • {
  • normal_reglage = pression = 0;
  • }
  • else if(pression==3 && normal_reglage==0)
  • {
  • normal_reglage = pointeur = 1;
  • pression=0;
  • }
  • }
  • /*************************************************/
  • void Select()
  • {
  • if(normal_reglage==1)
  • {
  • if(pointeur==1)
  • pointeur=4;
  • else if(pointeur==4)
  • pointeur=11;
  • else if(pointeur=11)
  • pointeur=1;
  • }
  • }
  • /*************************************************/
  • void Plus()
  • {
  • if(normal_reglage==1)
  • {
  • if(pointeur==1)
  • {
  • Hr++;
  • if(Hr==24) Hr=0;
  • AfficheHorloge();
  • }
  • else if(pointeur==4)
  • {
  • Mn++;
  • if(Mn==60) Mn=0;
  • AfficheHorloge();
  • }
  • else if(pointeur==11)
  • {
  • Jr++;
  • if(Jr==7) Jr=0;
  • AfficheJour();
  • }
  • }
  • }
  • /*************************************************/
  • void lente()
  • {
  • if(!RB4)
  • {
  • if(Finduree1==1)
  • {
  • Finduree1=0;
  • Select();
  • v1++;
  • if(v1==6)
  • v1--;
  • }
  • }
  • else
  • v1=0;
  • if(!RB5)
  • {
  • if(Finduree1==1)
  • {
  • Finduree1=0;
  • Plus();
  • v2++;
  • if(v2==6)
  • v2--;
  • }
  • }
  • else
  • v2=0;
  • }
  • /*************************************************/
  • void rapide()
  • {
  • if(v1==5 && Finduree2==1)
  • {
  • Finduree2=0;
  • Select();
  • }
  • if(v2==5 && Finduree2==1)
  • {
  • Finduree2=0;
  • Plus();
  • }
  • }
  • /*************************************************/
  • void Curseur()
  • {
  • if(normal_reglage==1)
  • {
  • Lcd_LigneColonne(1,pointeur);
  • Lcd_SendCommand(DISPLAY_ON | CURSOR_ON | BLINK_ON);
  • }
  • else
  • Lcd_SendCommand(DISPLAY_ON | CURSOR_OFF | BLINK_OFF);
  • }
  • /*************************************************/
  • void main()
  • {
  • TRISD = 0x00; TRISB = 0x31;
  • Jr = Hr = Mn = Sc = 0;
  • FinSeconde = pression = n = m1 = m2 = v1 = v2 = 0x00;
  • Finduree1 = Finduree2 = 0 ;
  • normal_reglage = select = plus = 0 ;
  • pointeur = 1;
  • GIE = PEIE = 1 ;
  • T0IE = 0 ; // inValid TMR0 (OPTION = 0x04)
  • T1CKPS1 = T1CKPS0 = 0 ; // 1Mhz --> 1 µs
  • TMR1ON = TMR1IE = 1 ; // Valid TMR1
  • TMR1H = 0x3C ; TMR1L = 0xB0 ; // ~ 310 ms
  • Entree();
  • for(;;)
  • {
  • if( FinSeconde==1 )
  • {
  • FinSeconde=0;
  • MiseAjour();
  • AfficheJour();
  • AfficheHorloge();
  • AfficheTemperature();
  • Mode();
  • }
  • lente();
  • rapide();
  • Curseur();
  • }
  • }
  • /******************* FIN *********************/
#define   RS           RB2
#define   E              RB3 
#define   LCD         PORTD  

// Clear Display  
#define  CLS     	    0x01 

// Display & Cursor Home 
#define  HOME  		      0x02 

// EntryMode   
#define  CURSOR_DEC            0x04 
#define  CURSOR_INC            0x06

#define  DISP_SHIFT_ON         0x05 
#define  DISP_SHIFT_OFF        0x04

// LCD_Display  
#define  DISPLAY_ON            0x0C
#define  DISPLAY_OFF                   0x08

#define  CURSOR_ON                      0x0A 
#define  CURSOR_OFF                     0x08 
 
#define  BLINK_ON                         0x09 
#define  BLINK_OFF                        0x08
 
// LCD_FonctionSet  
#define  MODE_8BIT                       0x30 
#define  MODE_4BIT                       0x20 
 
#define  MODE_2LINE                    0x28 
#define  MODE_1LINE                    0x20
 
#define  FONT_5x7                          0x20
#define  FONT_5x10                        0x24 

// LCD_ModeSelection 
#define  COMMAND_MODE           0 
#define  DATA_MODE                     1 
 
//===========================================================
void Set_Enable();
void Lcd_SendCommand(unsigned char Command);
void Lcd_SendData(unsigned char Data);

//===========================================================
void Lcd_SendCommand(unsigned char Command)
{
	 RS = COMMAND_MODE ;
	 LCD = Command;
	 Set_Enable();
}
//===========================================================
void Lcd_SendData(unsigned char Data)
{	
	  RS = DATA_MODE ;
	  LCD = Data;
	  Set_Enable();
}
//===========================================================
void Set_Enable()
{
 	 unsigned char i;
	
  	  E = 1;	for (i=0;i<200;i++);
	  E = 0;	for (i=0;i<200;i++);
}
//===========================================================
void Lcd_Init()
{
        Lcd_SendCommand (MODE_8BIT | MODE_2LINE | FONT_5x7); 
        Lcd_SendCommand(DISPLAY_ON | CURSOR_OFF | BLINK_OFF);
        Lcd_SendCommand(CURSOR_INC | DISP_SHIFT_OFF) ;
        Lcd_SendCommand(CLS );
}
//===========================================================
void Lcd_LigneColonne(unsigned char Ligne, unsigned char Colonne)
{
	Lcd_SendCommand(DISPLAY_ON | CURSOR_OFF | BLINK_OFF);
       if(Ligne==1) 	Lcd_SendCommand (0x80+Colonne);
	if(Ligne==2) 	Lcd_SendCommand (0xC0+Colonne);
}
//===========================================================

/**************************************************
          Mini-Projet
    Date         : 4/07/2008
    Auteur 	 :  HILALI Tarik & ELQASMI Med Zakaria
      Compilateur : HI-TECH C Compiler
	Objectif : mettre à jour l'Horloge,lire la Température
    ( tension analogique )  à intervalles de temps réguliers  et
   afficher le résultat  sur  l'afficheur LCD (2x16).
   	PIC 16F877
    Quartz : 4 MHz
***************************************************/
#include<pic1687x.h>
#include "lcd.h"

#define degre  0xDF

unsigned char Jr , Hr , Mn , Sc , n , m1, m2 , pression , pointeur , v1 , v2 , temp;
const unsigned char T[ ]="LunMarMerJeuVenSamDim";  
const unsigned char word[ ]="EMSIMARRAKECHMini-Projet :16F877+LCD+CAN";
const unsigned char prof[ ]="ENCADRE PAR :<< Mr.CHOURI >>";    
//static int  temp; 
bit FinSeconde , Finduree1 , Finduree2 ;
bit normal_reglage , select , plus ;
/**************************************************/
static void interrupt inter()
{
    if(TMR1IF)
 	 {     
	      TMR1H = 0x3C ;  TMR1L = 0xB0 ; 

             m1++;
             if(m1==12)      //  600 mS
	           { 
                      m1=0;
                      Finduree1 =1;
                  }

             m2++;
             if(m2==4)      // (6)  300 mS
	           { 
                      m2=0;
                      Finduree2 =1;
                  }

             n++;
             if(n==20)   //   1000 mS
  	            {
	               n=0;
 	               FinSeconde =1;	 
	            }
	      TMR1IF=0;
        }
}				
/*************************************************/
void AfficheHorloge()
{
     Lcd_LigneColonne(1,0);
      
      Lcd_SendData(Hr/10 +48);
      Lcd_SendData(Hr%10 +48);
      Lcd_SendData(':');
      Lcd_SendData(Mn/10 +48);
      Lcd_SendData(Mn%10 +48);
      Lcd_SendData(':');
      Lcd_SendData(Sc/10 +48);
      Lcd_SendData(Sc%10 +48);

}
/*************************************************/
void AfficheJour()
{
      Lcd_LigneColonne(1,11);

      Lcd_SendData(T[Jr*3]);
      Lcd_SendData(T[Jr*3+1]);
      Lcd_SendData(T[Jr*3+2]);
}
/*************************************************/
void MiseAjour()
{
      Sc++;
      if(Sc==60) {  Sc=0; Mn++;
                           if(Mn==60)  { Mn=0; Hr++;
                                                  if(Hr==24) {  Hr=0; Jr++;
                                                                       if(Jr==7) Jr=0;
                                                                    }
                                                }
                        }
}
/*************************************************/
unsigned int ConvertAD()
{
   unsigned char t;
   unsigned int V=0;
 
   ADCON1 = 0x8E;  
   ADCON0 = 0xC1;  
   
   t=10; while(--t);
   ADGO = 1;
 	
   while(ADGO==1);
	
   V = ADRESH;
   V = V<<8;
   V = V | ADRESL;

   return V;
}
/*************************************************/
void AfficheTemperature()
{     
    temp =    5.00 * ConvertAD() * 1000.00 / 1024.00 ;       
      
    Lcd_LigneColonne(2,4);
    if(temp>=0x80)
           {
               Lcd_SendData('-');    temp = (~(temp)+1) ;
               Lcd_SendData(temp/100+48);
               Lcd_SendData((temp%100)/10+48);
               Lcd_SendData(',');  
               Lcd_SendData((temp%100)%10+48);
               Lcd_SendData(degre);  // "°"  
           }
     else if(temp<0x80)
           {
                 
              Lcd_SendData('+');  
              Lcd_SendData(temp/100+48);
              Lcd_SendData((temp%100)/10+48);
              Lcd_SendData(',');  
              Lcd_SendData((temp%100)%10+48);
              Lcd_SendData(degre);  // "°"
          }  
     Lcd_SendData('C');
}
/*************************************************/
void Entree()
{   
       v1=0;
       Lcd_Init();
        while(v1!=4)                          // "EMSI"
             if(Finduree2==1)
                        {
                               Finduree2=0;
                               Lcd_LigneColonne(1,v1+6);
                               Lcd_SendData(word[v1]);   v1++ ;
                        }
    
       while(v1!=13)                         // "MARRAKECH"
            if(Finduree2==1)
                        {
                               Finduree2=0;
                               Lcd_LigneColonne(2,v1);
                               Lcd_SendData(word[v1]);   v1++ ;
                        }
        
       v2=0;                                       //    Temporisation :  3 S
       while(v2!=3)
           if(FinSeconde==1)
                        {
                             FinSeconde=0;  v2++;
                        }  v2=0; Lcd_Init();

       while(v1!=26)                      //  "Mini-ProJet :"
             if(Finduree2==1)
                        {
                               Finduree2=0;
                               Lcd_LigneColonne(1,v1-13);
                               Lcd_SendData(word[v1]);   v1++ ;
                        }

        while(v1!=40)                    //  "16F877+LCD+CAN"
              if(Finduree2==1)
                        {
                               Finduree2=0;
                               Lcd_LigneColonne(2,v1-25);
                               Lcd_SendData(word[v1]);   v1++ ;
                        }  

        v2=0;                                  //    Temporisation :  3 S
       while(v2!=3)
           if(FinSeconde==1)
                        {
                             FinSeconde=0;  v2++;
                        }  v2=v1=0; Lcd_Init();

       while(v1!=13)                   //  "ENCADRE PAR :"   
             if(Finduree2==1)
                        {
                               Finduree2=0;
                               Lcd_LigneColonne(1,v1);
                               Lcd_SendData(prof[v1]);   v1++ ;
                        }

        while(v1!=28)                      //  "<< Mr.CHOURI >>"
              if(Finduree2==1)
                        {
                               Finduree2=0;
                               Lcd_LigneColonne(2,v1-13);
                               Lcd_SendData(prof[v1]);   v1++ ;
                        }   v2=0;
      
      while(v2!=5)                         //    Temporisation :  5 S
           if(FinSeconde==1)
                        {
                             FinSeconde=0;  v2++;
                        }   v2=v1=0; 
       Lcd_Init();
}
/*************************************************/
void Mode()
{   
   if(RB0) 
        pression=0;
   else 
         pression++;
   
   if(pression==3 && normal_reglage==1) 
     {
        normal_reglage = pression = 0;
      }
   else if(pression==3 && normal_reglage==0) 
     {
        normal_reglage = pointeur = 1;
        pression=0;
      }
}
/*************************************************/
void Select()
{
      if(normal_reglage==1) 
         {
             if(pointeur==1) 
                  pointeur=4;
             else if(pointeur==4)
                  pointeur=11;
             else if(pointeur=11) 
                  pointeur=1;
          }
}
/*************************************************/
void Plus()
{
      if(normal_reglage==1)  
          {
              if(pointeur==1) 
                     {
                         Hr++;
                         if(Hr==24) Hr=0;
                        AfficheHorloge();
                      }
              else if(pointeur==4)
                      {
                         Mn++;
                         if(Mn==60)  Mn=0;
                         AfficheHorloge();
                      }
                else if(pointeur==11)
                     {
                          Jr++;
                          if(Jr==7) Jr=0;
                          AfficheJour();
                     }
            }
}
/*************************************************/
void lente()
{
       if(!RB4)
           {
                  if(Finduree1==1)
                            {
                                 Finduree1=0;
                                 Select();
                                 v1++;
                                  if(v1==6) 
                                     v1--; 
                             }
             }
        else
            v1=0;

       if(!RB5)
           {
                  if(Finduree1==1)
                            {
                                Finduree1=0;
                                Plus();          
                                v2++;
                                 if(v2==6) 
                                    v2--; 
                            }
           }
       else
            v2=0;
}
/*************************************************/
void rapide()
{
         if(v1==5 && Finduree2==1) 
                {
                     Finduree2=0;
                     Select();
                }
         
         if(v2==5 && Finduree2==1) 
                {
                       Finduree2=0;
                       Plus();           
                }  
}
/*************************************************/
void Curseur()
{
       if(normal_reglage==1)
         {
             Lcd_LigneColonne(1,pointeur);
             Lcd_SendCommand(DISPLAY_ON | CURSOR_ON | BLINK_ON);
         }
      else
            Lcd_SendCommand(DISPLAY_ON | CURSOR_OFF | BLINK_OFF);
}
/*************************************************/
void main()
{
        TRISD = 0x00;    TRISB = 0x31;             
        
        Jr = Hr = Mn = Sc = 0;
        FinSeconde = pression = n = m1 = m2 = v1 = v2 = 0x00;
        Finduree1 = Finduree2 = 0 ; 
        normal_reglage = select = plus = 0 ;
        pointeur = 1;
        GIE = PEIE = 1 ;
        T0IE  = 0 ;    //  inValid  TMR0  (OPTION = 0x04)
        T1CKPS1 = T1CKPS0 = 0 ;               //  1Mhz   -->  1 µs 
        TMR1ON = TMR1IE   = 1 ;               //   Valid  TMR1
        TMR1H = 0x3C ;  TMR1L = 0xB0 ;  // ~ 310 ms        

        Entree();
 
        for(;;)
          {       
                 if(  FinSeconde==1 )
                       {
	                        FinSeconde=0;	 
                               MiseAjour();
                              AfficheJour();
                              AfficheHorloge();
                              AfficheTemperature();
                              Mode();
                        }

                  lente();
                  rapide();         
                  Curseur();
         }
}
/******************* FIN *********************/

 Conclusion

pour tester il y a le schema realiser avec isis proteus 7

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   MINI PROJET
    •   PIC_SCHEMA
      • Design_PIC_LCD_CAN.DSNTélécharger ce fichier [Réservé aux membres club]108 505 octets
      • Design_PIC_LCD_CAN.PWITélécharger ce fichier [Réservé aux membres club]1 078 octets
      • Last Loaded Design_PIC_LCD_CAN.DBKTélécharger ce fichier [Réservé aux membres club]108 506 octets
    •   Programme
      • main.d
      • Lcd.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 434 octets
      • main.cTélécharger ce fichier [Réservé aux membres club]Voir ce fichier10 831 octets
      • main.lstTélécharger ce fichier [Réservé aux membres club]63 755 octets
      • main.objTélécharger ce fichier [Réservé aux membres club]16 158 octets
      • main.p1Télécharger ce fichier [Réservé aux membres club]28 471 octets
      • main.rlfTélécharger ce fichier [Réservé aux membres club]88 587 octets
      • main.sdbTélécharger ce fichier [Réservé aux membres club]11 267 octets
      • MINI_pro.cofTélécharger ce fichier [Réservé aux membres club]21 942 octets
      • MINI_pro.hexTélécharger ce fichier [Réservé aux membres club]5 336 octets
      • MINI_pro.hxlTélécharger ce fichier [Réservé aux membres club]2 706 octets
      • MINI_pro.mapTélécharger ce fichier [Réservé aux membres club]20 900 octets
      • MINI_pro.mcpTélécharger ce fichier [Réservé aux membres club]940 octets
      • MINI_pro.mcsTélécharger ce fichier [Réservé aux membres club]1 313 octets
      • MINI_pro.mcwTélécharger ce fichier [Réservé aux membres club]24 576 octets
      • MINI_pro.symTélécharger ce fichier [Réservé aux membres club]15 600 octets

Télécharger le zip


 Historique

03 juillet 2008 21:15:17 :
schemat pour tester le prg
03 juillet 2008 21:16:28 :
pour tester il y a le schema realiser avec isis proteus 7
03 juillet 2008 21:22:32 :
pour tester il y a le schema realiser avec isis proteus 7
03 juillet 2008 21:25:48 :
pour tester il y a le schema realiser avec isis proteus 7

 Sources du même auteur

Source avec Zip Source avec une capture AFFICHEUR LCD

 Sources de la même categorie

LISTER FICHIERS ET RÉPERTOIRES (MULTIPLATEFORME) par christophedlr
UTILISATION DES TYPELIST EN C++ par wyden
Source avec Zip Source avec une capture QCSSCOMPRESSOR par alphaone
AFFICHAGE D'UN TRIANGLE ISOCELE par nabche
Source avec Zip GESTION D'UNE BIBLOTHEQUE par leclerro19

 Sources en rapport avec celle ci

Source avec Zip CALCULATRICE AVEC REPRESENTATION GRAPHIC par msavyo1
Source avec Zip CHIFFRE AU LETTRE MULTILANGAGE par msavyo1
Source avec Zip SUDUKO AVEC ALLEGRO AVEC PLUSIEURS OPTIONS :SOVLEUR ,PRORPOS... par msavyo1
Source avec Zip Source avec une capture AFFICHEUR LCD par zmtechnologie
Source avec Zip UNE MATRICE CREUSE EN TURBOC par hamdan

Commentaires et avis

Commentaire de deck_bsd le 06/07/2008 11:29:06

Source très intéresente . Ce n'est pas la tablette de dev easy pic 5 ?

Commentaire de zmtechnologie le 06/07/2008 13:20:05

non ce n est pas la tablette de dev easy pic 5 cette maquette realiser par Mr chouri "mini projet de 3éme année de l ecoles marocaine des sciences de l'ingenieur"

Commentaire de hadj79 le 14/07/2008 20:10:34 1/10

salt

Commentaire de gldf le 21/10/2008 07:44:24 8/10

Bonjour

bon travail.

un 8/10 pour t'encourager.

Commentaire de 3adoula le 31/03/2009 13:20:14 10/10

Bn travail.
avec quel compilateur avez vous travaillez?

Commentaire de lemine09 le 08/09/2009 11:58:36

bon travail mais pour l'executer quel compilateur on va utiliser

Commentaire de zmtechnologie le 16/09/2009 22:07:42

le compilateur c le turbo c

Commentaire de rayden2006 le 18/11/2009 15:48:03

SVp donnez moi le mémé programme avec le compilateur mikroC

Commentaire de zmtechnologie le 22/11/2009 03:56:20

v pouv utiliser le devcpp

Commentaire de mirou2010 le 14/02/2010 20:11:34

SVp donnez moi le mémé programme avec le compilateur pcw

Commentaire de aladin589 le 20/04/2010 11:17:56

slt.svp tu pe me donner ce programme en mikroc et comment je pe utiliser le devppc et l'affichage de temperature elle atteind 12 degre puis il devient négatif

Commentaire de hajourk le 05/04/2011 11:30:44

salut svp tu peut me donner ce programme en mikro basic c trés urgent et merciiiiii d'avance

Commentaire de ahmed05 le 18/05/2011 11:07:43

salut bon travail,svp donne moi la liste des composant plus shéma electrique,merci bon courage

Commentaire de ilsab le 27/11/2011 14:04:51

Salut bon travail,et bon ne chance.

Commentaire de REVESETOILES le 21/04/2012 18:58:59

Bonjour,

Est-il possible de faire fonctionner ce projet en mode 4 Bits ?
J'ai essayé en modifiant en (MODE_4BIT | MODE_2LINE | FONT 5x7); Mais Ca ne fonctionne pas.
En mode 8 Bits, c'est OK.
70.void Lcd_Init()
71.{
72.        Lcd_SendCommand (MODE_8BIT | MODE_2LINE | FONT_5x7);
73.        Lcd_SendCommand(DISPLAY_ON | CURSOR_OFF | BLINK_OFF);
74.        Lcd_SendCommand(CURSOR_INC | DISP_SHIFT_OFF) ;
75.        Lcd_SendCommand(CLS );

Qui peut m'aider? car je ne trouve vraiment pas.

 Ajouter un commentaire




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,328 sec (4)

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