Documente Academic
Documente Profesional
Documente Cultură
#include <lcd.c>
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) // Jumpers: 8 to 11, 7 to 12
#define CINITPROD_0 0x003E80
#define NUM_TANKS 6
//activer buz1
delay_us(155);
output_bit( PIN_A1, 0);
//dactiver buz1
delay_us(155);
}
//break;
output_bit( PIN_A1, 0);
}
///////////////////////////////////////////////////////////////////////////
#int_TIMER1
void TIMER1_isr() // Interruption si dbordement timer1
{
++debordement; // Prise en compte de plusieurs dbordement de tmr1.
}
//////////////////////////////////////////////////////////////////////////////
#int_CCP1
void CCP1_isr()
fin = CCP_1;
nbimpulsions = (65536 * debordement) + fin - debut;
if (nbimpulsions > 0X001990 & input(PIN_A0)) buz1();
else output_low(PIN_A1);
debut = fin;
debordement = 0;
}
//////////////////////////////////////////////////////////////////////////////
void AFFIliv (void)
{
disable_interrupts(GLOBAL);
T0L=Floor(liv/100);
LIVHi=T0L;
T1L=Floor((liv-T0L*100)/10);
LIVLo=T1L;
T2L=floor((liv-T0L*100-(T1L*10)));
LIV0=T2L;
enable_interrupts(GLOBAL);
}
//////////////////////////////////////////////////////////////////////////////
void AFFIVOL (void)
{
disable_interrupts(GLOBAL);
T0=Floor(vol/100);
VOLHi=T0;
T1=Floor((vol-T0*100)/10);
VOLLo=T1;
T2=floor((vol-T0*100-(T1*10)));
VOL0=T2;
enable_interrupts(GLOBAL);
}
//////////////////////////////////////////////////////////////////////////////
// SOUS PROGRAMME DETERMINATION DU STOCK DE CARBURANT DANS LES CITERNES
void DETERMINATION_VOLUME (void)
{
disable_interrupts(GLOBAL);
length=LENTH [i];
Cap_length=CAPLENTH [i];
Diameter =DIAMETRE [i];
DELAY_ms(10);
height
HAUTEUR
=(nbimpulsions-CINITPROD[i])/16000.0;////EQUIVALENCE
vol=floor(vol2*1000.);
// vol=floor((nbimpulsions-CINITPROD[i])/16);
enable_interrupts(GLOBAL);
NBRE
IMPULTION
AFFIVOL ();
DELAY_ms(100);
SOMME=vol-0x0064;
if (i==0 ){
printf( "\r\n
}
if (i==1
){
",
vol );
VOLHi ,VOLLo,VOL0);
if (i==2
){
",
vol );
VOLHi ,VOLLo,VOL0);
volactuel2=vol;
volprecedent2=vol;
}
else if (SOMME>volactuel2) {
volactuel2=vol;
livraison2=volactuel2-volprecedent2;
}
}
if (i==3 ){
printf("\rSTOCK SSP1 : %6.2lu L
", vol );
VOLHi ,VOLLo,VOL0);
}
if (i==4
){
",
vol );
VOLHi ,VOLLo,VOL0);
else if (SOMME>volactuel4) {
volactuel4=vol;
livraison4=volactuel4-volprecedent4;
}
}
if (i==5 ){
",
vol );
VOLHi ,VOLLo,VOL0);
}
//////////////////////////////////////////////////////////////////////////////
void MENU_DERNIERES_LIVRAISONS (void)
{
DELAY_ms(100);
//
AFFIliv ();
if (i==0 ) printf( "\r\n
if (i==1
liv=livraison1;
AFFIliv ();
){
",
liv );
}
if (i==2
){
liv=livraison2;
AFFIliv ();
printf(lcd_putc,"\fLIVRAISON SUPER1: %U%U%U L\n", LIVHi ,LIVLo,LIV0);
printf("\rLIVRAISON SUPER1: %6.2lu Litres
",
liv );
}
if (i==3 ) {
liv=livraison3;
AFFIliv ();
printf(lcd_putc,"\fLIVRAISON SSP1: %U%U%U L\n",
printf("\rLIVRAISON SSP1 : %6.2lu Litres
LIVHi,LIVLo,LIV0);
", liv );
}
if (i==4 ){
liv=livraison4;
AFFIliv ();
printf(lcd_putc,"\fLIVRAISON PETROLE: %U%U%U L\n", LIVHi,LIVLo,LIV0);
",
liv);
}
if (i==5 ) {
liv=livraison5;
AFFIliv ();
printf(lcd_putc,"\fLIVRAISON GASOIL2: %U%U%U L\n", LIVHi,LIVLo,LIV0);
printf("\rLIVRAISON GASOIL2: %lu Litres
", liv );
}
}
//////////////////////////////////////////////////////////////////////////////
void VERIFICATION_EXISTENCE_EAU (void)
{
hot=floor((nbimpulsions-CINITEAU[i] )/1000.);
DELAY_ms(100);
if (i==0
{
printf( "\r\n VERIFICATION EXISTENCE D'EAU: ");
}
if (i==1
{
hot1=make8( hot ,0);
printf("\rNIVEAU D'EAU GASOIL1: %lu Cm
", hot );
hot1);
}
if (i==2
{
hot1=make8( hot ,0);
printf("\rNIVEAU D'EAU SUPER1 : %lu Cm
",
hot );
hot1);
}
if (i==3 )
{
hot1=make8( hot ,0);
printf("\rNIVEAU D'EAU SSP1 : %lu Cm
", hot );
hot1);
}
if (i==4 )
{
hot1=make8( hot ,0);
printf("\rNIVEAU D'EAU PETROLE: %lu Cm
",
hot );
hot1);
}
if (i==5 )
{
hot1=make8( hot ,0);
printf("\rNIVEAU D'EAU GASOIL2: %lu Cm
", hot );
hot1);
output_bit(PIN_C0,1) ;
output_bit(PIN_C4,0) ;
output_bit(PIN_C5,0) ;
output_bit(PIN_C3,1) ;
output_bit(PIN_C1,0) ;
output_bit(PIN_A5,0) ;
}
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
VOID main() {
port_b_pullups(TRUE);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
//setup_ccp1(CCP_CAPTURE_RE);
setup_ccp1(CCP_CAPTURE_RE|CCP_CAPTURE_DIV_16);
enable_interrupts(INT_TIMER1);
enable_interrupts(INT_CCP1);
enable_interrupts(GLOBAL);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_2(T2_DISABLED,0,1);
lcd_init();
while (1)
{
for (j=0;j<=2;J++)
{
for (i=0;i<=6;i++)
DELAY_ms(200);
output_E(i);
DELAY_ms(100);
IF ((input(PIN_A2) )&(!input(PIN_A3)))
{
DETERMINATION_VOLUME ();
MENU_STOCK ();
}
IF (input(PIN_A0)) VERIFICATION_EXISTENCE_EAU ();
IF(! input(PIN_B1))
{
MODE_AUTO ();
break;
}
}
MODE_AUTO ();
}
}
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////