All pastes #927035 Raw Edit

Mine

public text v1 · immutable
·published 2008-03-04 00:01 UTC
rendered paste body
unsigned A;
unsigned L;
unsigned R;
unsigned R1;
unsigned R2;
unsigned D;                     //variable dizaine
unsigned C;                     //variable centaine
unsigned C1;
unsigned D1;
unsigned U1;
unsigned U;                     //variable unite
unsigned V;                     //resultat tension*100
int r;

#include "delay.c"

void
init_lcd (void)
{
        while (1)
        {
                PORTB = 0;              // Portb B �0
                TRISB = 0 b00000000;    // tous les ports b sont des sorties
                PORTA = 0;              // le port A est 0
                TRISA = 0 b00000000;    // tous les ports a sont des sorties

                PORTA .1 = 0;   //RS=0 , on transmet une commande
                PORTA .2 = 0;           // En ecriture R/W=0

                PORTB = 0 b00111000;    // Initialisation Fonction Set. 8bits, 2lignes, caract�re 5*7
                PORTA .3 = 1;           //E=1
                delay_10ms (10);        //Attente de 1s
                PORTA .3 = 0;           //E=0

                PORTB = 0 b00000110;    // D�calage vers la droite du curseur;pas ded�calage de l'afficheur apr�s �criture
                PORTA .3 = 1;           //E=1
                delay_10ms (10);        //Attente de 1s
                PORTA .3 = 0;           //E=0

                PORTB = 0 b00001110;    //Affichage on/off ;Afficage ON,Curseur, Caract�re ne clignote pas.
                PORTA .3 = 1;           //E=1
                delay_10ms (10);

                PORTA .3 = 0;           //E=0

                PORTB = 0 b00000001;    //on efface l'afficheur
                PORTA .3 = 1;

                delay_10ms (10);

                PORTA .3 = 0;

                PORTA .1 = 1;   //RS=1 on transmet une donn�e
                PORTA .2 = 0;           //ecriture

                delay_10ms (100);       // 5 delay pour une attende de 5s
        }
}

void
init_can (void)                 // initialisation CAN
{
        TRISA = 0 b00000001;            // pin AN0 en entr�e uniquement
  ADCON0 = 0 b00000001;         // pin AN0 choisit, ADON=1 => conversion autoris�
  ADCON1 = 0 b10000000;         //resultat a droite
}

void
main (void)
{
        init_can ();

        while (1)
        {
                ADCON0 .2 = 1;          // depart conversion
                while (ADCON0 .2 != 0); // remise a 0 du bit

                L = ADRESH;             // resultat conversion

                L = L * 500;            // on recupere la valeure de la tension et
      R = L / 256;              //on la multipli par 100 a cause des virgules

                if (R > 100)
                {
                        C = R / 100;            //C= resulatt centaine
                }

                R1 = R % (100);         //reste de de la division

                if (R1 > 10)
                {
                        D = R / 10;             // D resultat dizaine
                }

                U = R1 % (10);          // U = resultat des unit�es

                init_lcd ();
                C1 = C + 30;
                D1 = D + 30;
                U1 = U + 30;

                PORTB = 0 b01001100;    //Affichage centaine

                PORTA .3 = 1;           // E=1
                delay_10ms (10);        //Attente de 0,1s
                PORTA .3 = 0;           // E=0
                delay_10ms (100);

                delay_10ms (100);       // 5 delay pour une attende de 5s

                PORTB = D1;             //Affichage dizaine
                PORTA .3 = 1;           // E=1
                delay_10ms (10);        //Attente de 0,1s
                PORTA .3 = 0;           // E=0
                delay_10ms (100);

                delay_10ms (100);       // 5 delay pour une attende de 5s

                PORTB = U1;             //Affichage unite
                PORTA .3 = 1;           // E=1
                delay_10ms (10);        //Attente de 0,1s
                PORTA .3 = 0;           // E=0
                delay_10ms (100);
        }
}