help me 'Control device for public lighting and temperature measurement PIC 16F877'

Status
Not open for further replies.

lolo2013

Newbie level 4
Joined
Mar 21, 2013
Messages
6
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,352
I want to help in this program there are some mistakes I did not know how to fix them thank you in advance

View attachment programme-eclairage.zip

PHP:
program pfe;

var  //declaration de variable
kp : byte;
x,j,u: LONGINT;
label temp,seuil,lum ,lampe,start;
Procedure lam();
       begin
       J:=adc_read(1);
       u:=adc_read(2);
       if j>u then
       begin
       DELAY_ms(250);
       portd.0:=1;
       end
       else
       begin
       portd.0:=0;
       kp := Keypad_Released();
       end ;
       end;
Procedure ADC(x:integer);
      var ch: byte;//declaration de variable
      tlong,t: longint;
      begin
      lcd_cmd(lcd_cursor_off);//etiendre le clavier
      tlong := (x*5000);
      t    := longint(tlong shr 10);
      ch:= t div 100000;
      lcd_chr(2,3,48+ch);
      ch:= integer(t div 10000)mod 10;
      lcd_chr(2,4,48+ch);
      ch:= integer(t div 1000)mod 10;
      lcd_chr(2,5,48+ch);
      lcd_chr(2,6,'.');
      ch:= integer(t div 100)mod 10;
      lcd_chr(2,7,48+ch);
      ch:= integer(t div 100) mod 10;
      lcd_chr(2,8,48+ch);
      ch:= integer(t div 10) mod 10;
      end;
begin
lcd_init(portb);//initialisation de l'afficheur LCDsur le portB
trisa:=$EF;//toute les broches de portA en sortie sauf  RA4
trisc:=$7F;// toute les broches de portC en sortie sauf  RA7
ADCON1:=$80;  //déclaration pour le CAN ,extrait de datasheet du Pic
Trisd:=$00;//initialisation de portd
lcd_cmd(lcd_cursor_off);//etiendre le curseur de l'afficheur LCD
Keypad_Init(PORTC);//initialiser le clavier sur le port C
Lcd_Cmd(LCD_CLEAR);// effacer le contenu de l'afficheur
lcd_out(1,1,'projet fin d"etude');//afficher sur la 1 er  ligne et la 1 er colnne de LCD "projet fin d"etude"
portd.0:=0; //  initialiser  le pin RD0
repeat
start:
portc :=$00;//initialisation de portc
begin
kp := 0;//initialisation de kp
while kp = 0 do
kp := Keypad_Released();//lecture de clavier

// structure du clavier;
if (kp = 1) then kp := '1';
if (kp = 2) then kp := '4';
if (kp = 3) then kp := '7';
if (kp = 4) then kp := '*';
if (kp = 5) then kp := '2';
if (kp = 6) then kp := '5';
if (kp = 7) then kp := '8';
if (kp = 8) then kp := '0';
if (kp = 9) then kp := '3';
if (kp = 10) then kp := '6';
if (kp = 11) then kp := '9';
if (kp = 12) then kp := '=';
       LCD_chr(2,5,kp);
    Lcd_Cmd(LCD_CLEAR); //effacer le contenu de l'afficheur
    if kp ='1' then goto temp  ;
    if kp ='2' then goto seuil ;
    if kp ='3' then goto lampe ;
    if kp ='4' then goto lum   ;
    lcd_out(1,1,'1-temp 2-seuil');//afficher sur la 1 er  ligne et la 1 er colnne de LCD "1-temp 2-seuil"
    lcd_out(2,1,'3-lampe 4-lum');//afficher sur la 2 eme  ligne et la 2 eme colnne de LCD "3-lampe 4-lum"
       lam();
 goto start ;
temp:
    begin
         DELAY_ms(50);//
         kp := Keypad_Released();//lecture de clavier

         while kp=0 do
         begin
         x:=adc_read(0);
         lcd_out(1,1,'1-Temperature:');//afficher sur la 1 er  ligne et la 1 er colnne de LCD "1-Temperature:"
         lcd_out(2,10,' (Degre)');//afficher sur la 2 eme ligne et la 10 eme colnne de LCD " (Degre)"
         lam();
         adc(x);//
         kp := Keypad_Released();//lecture de clavier

         end ;
         goto start ;//
     end ;
seuil:
    begin
         DELAY_ms(50);//
         kp := Keypad_Released();//lecture de clavier

         while kp=0 do
         begin
         J:=adc_read(1);//
         lcd_out(1,1,'1-Reglage Seuil:');//afficher sur la 1 er  ligne et la 1 er colnne de LCD "1-Reglage Seuil:"
         lam();//
         adc(J);//
         kp := Keypad_Released();//lecture de clavier

         end ;
         goto start ;//
     end ;
lampe:
  begin
        DELAY_ms(50);//
        kp := Keypad_Released();//
        while kp=0 do//
        begin
        J:=adc_read(1);//
        u:=adc_read(2);//
        if j>u then //
        begin
        DELAY_ms(250);//
        portd.0:=1;//
        lcd_out(1,3,'lampe allume');//afficher sur la 1 er  ligne et la 3 eme colnne de LCD "lampe allume"
        end
        else
        begin
        portd.0:=0;//
        lcd_out(1,3,'lampe eteint');//afficher sur la 1 er  ligne et la 3 eme colnne de LCD "lampe eteint"
        end ;
        kp := Keypad_Released();////lecture de clavier

        end;
        goto start ;
  end ;
lum:
  begin
        DELAY_ms(50);
        kp := Keypad_Released();
        while kp=0 do
        begin
        u:=adc_read(2);
        lcd_out(1,1,'4-Lumiere:');//afficher sur la 1 er ligne et la 1er  colnne de LCD "4-Lumiere:"
        lcd_out(2,10,' Lum'); //afficher sur la 1 er ligne et la  10 eme colonne de LCD "Lum"
        adc(u);//
        lam(); //
        kp := Keypad_Released(); //lecture de clavier

        end;
        goto start ;
        end ;
end ;
until FALSE ;
end.
 

help me.....................................
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…