⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key_con.plm

📁 中央空调恒温恒湿控制器c51单片机源程序的按键部分
💻 PLM
字号:
 ins:PROCEDURE(qq) byte;   /* qq+rr */
  DECLARE qq byte;
    qq=qq+1;
    IF (qq AND  0fh)>=0ah  THEN qq=qq+6;
   RETURN(qq);
 END ins;

des:PROCEDURE(qq) byte;   /* qq-1 */
  DECLARE qq byte;
    qq=qq-1;
     IF (qq AND 0fh)>=0ah   THEN qq=qq-6;
    RETURN(qq);
  END des;

 kz1:PROCEDURE(data0,data1,data2,data3);
 declare (data0,data1,data2,data3) byte;
             dis_led1(0),dis_led2(0)=ROM1(data0 and 0fh);
             dis_led1(1),dis_led2(1)=ROM1(data1/data3 );
             dis_led1(2),dis_led2(2)=ROM1(data1 mod data3);
             dis_led1(3),dis_led2(3)=ROM1(data2/data3);
             dis_led1(4),dis_led2(4)=ROM1(data2 mod data3);
     data3=data0/16;
     DO CASE data3;
         DO;
             dis_led2(1)=dis_led2(1) OR 80h;
             dis_led2(2)=dis_led2(2) OR 80h;
         END;
         DO;
             dis_led2(3)=dis_led2(3) OR 80h;
             dis_led2(4)=dis_led2(4) OR 80h;
         END;
         ;
     END;
  END kz1;

 kz2:PROCEDURE;
 DECLARE (i,j,k) byte;
 k=42h;
  DO J=0 TO 4;
    k=k+2;
    IF ds_b THEN i=ds_read(k);ELSE i=0;
    dis_led1(4-j),dis_led2(4-j)=rom1(i);
  END;
 END KZ2;

 kz3:PROCEDURE(ii,bb);
 declare ii byte;
 declare bb bit;
  IF ii>=80h
    THEN DO;ii=-ii;dis_led1(0),dis_led2(0)=40h;END;
    ELSE DO;ii= ii;dis_led1(0),dis_led2(0)=00h;END;
  dis_led1(1),dis_led2(1)=ROM1(ii/10);
  dis_led1(2),dis_led2(2)=ROM1(ii mod 10);
  dis_led1(3),dis_led2(3),dis_led1(4)=0;
  IF BB
    THEN DO;
         dis_led2(2)=dis_led2(2) or 80h;
         dis_led2(1)=dis_led2(1) or 80h;
         dis_led2(4)=76h;
    END;
    ELSE DO;
         Dis_led2(1)=dis_led2(1) or 80h;
         dis_led2(4)=31h;
    END;
  END kz3;

key_con:PROCEDURE;
 key_dd=15;
  /* key_z=0  翻页  <
     key_z=1  +
     key_z=2  -    */
   IF key_zz>20 THEN key_zz=0;
   IF key_zz<>0 AND key_z<>0 THEN key_b=1;
   DO CASE key_zz;
     IF key_z=0 THEN key_zz=1;

     DO; /* key_zz=1 温度设定tem_set*/
       IF key_z=0 THEN key_zz=2;
       IF key_z=1 and set_tem<70 THEN set_tem=set_tem+1;
       IF key_z=2 and set_tem>1 THEN set_tem=set_tem-1;
    END;
    DO; /* key_zz=2 hum_set */
        IF key_z=0 THEN  key_zz=3;
        IF key_z=1 and set_hum<90 THEN set_hum=set_hum+1;
        IF key_z=2 and set_hum>20 THEN set_hum=set_hum-1;
    END;
    DO; /* key_zz=3  set_time_hr */
        IF key_z=0 THEN  key_zz=4;
        IF key_z=1 and ds_hr<23h THEN DO;ds_key_b=1;ds_hr=ins(ds_hr);END;
        IF key_z=2 and ds_hr>0   THEN DO;ds_key_b=1;ds_hr=des(ds_hr);END;
    END;
    DO; /* key_zz=4  set_time_min */
        IF key_z=0 THEN  key_zz=5;
        IF key_z=1 and ds_min<59h THEN DO;ds_min=ins(ds_min);ds_key_b=1;END;
        IF key_z=2 and ds_min>0   THEN DO;ds_min=des(ds_min);ds_key_b=1;END;
    END;
    DO; /* key_zz=5  open_time_hr */
       IF key_z=0 THEN DO;IF open_hr=24h THEN key_zz=9;ELSE key_zz=6;END;
       IF key_z=1 THEN open_hr=ins(open_hr) mod 25h;
       IF key_z=2 THEN DO;
                       IF open_hr=0 THEN open_hr=24h;
                                    ELSE open_hr=des(open_hr);
                  END;
     END;
     DO; /* key_zz=6  close_hr */
        IF key_z=0 THEN  key_zz=7;
        IF key_z=1 AND open_min<59h THEN open_min=ins(open_min);
        IF key_z=2 and open_min>0  THEN open_min=des(open_min);
     END;
     DO; /* key_zz=7  close_time_hr */
        IF key_z=0 THEN DO;
                    IF close_hr=24h THEN DO;open_hr=24h;key_zz=9;END;
                                     ELSE key_zz=8;
                     END;
        IF key_z=1 THEN close_hr=ins(close_hr) mod 25h;
        IF key_z=2 THEN DO;
                        IF close_hr=0 THEN close_hr=24h;
                                      ELSE close_hr=des(close_hr);
                  END;
     END;
     DO; /* key_zz=8  close_hr */
        IF key_z=0 THEN  key_zz=9;
        IF key_z=1 AND close_min<59h THEN close_min=ins(close_min);
        IF key_z=2 AND close_min>0  THEN close_min=des(close_min);
     END;
     IF key_z=1 THEN key_zz=10;ELSE key_zz=0;
     IF key_z=2 THEN key_zz=11;ELSE key_zz=0;
     IF key_z=0 THEN key_zz=12;ELSE key_zz=0;
     DO; /* key_zz=12 t_wide*/
       IF key_z=0 THEN key_zz=13;
       IF key_z=1 and t_wide<50 THEN t_wide=t_wide+5;
       IF key_z=2 and t_wide>5  THEN t_wide=t_wide-5;
     END;
     DO; /* key_zz=13 h_wide */
       IF key_z=0 THEN key_zz=14;
       IF key_z=1 and h_wide<5 THEN h_wide=h_wide+1;
       IF key_z=2 and h_wide>1 THEN h_wide=h_wide-1;
     END;
     DO;/*key_zz=14 set_addth*/
       IF key_z=0 THEN key_zz=15;
       IF key_z=1 and set_addth<99 THEN set_addth=set_addth+1;
       IF key_z=2 and set_addth>0  THEN set_addth=set_addth-1;
     END;
     DO;/*key_zz=15 set_addtl*/
       IF key_z=0 THEN key_zz=16;
       IF key_z=1 and set_addtl<99 THEN set_addtl=set_addtl+1;
       IF key_z=2 and set_addtl>0 THEN set_addtl=set_addtl-1;
     END;
     DO;/*key_zz=16 y_sum_time*/
       IF key_z<3 THEN key_zz=17;
     END;
     DO;/*key_zz=17 set_f_cc_no*/
       IF key_z=0 THEN key_zz=18;
       IF key_z=1 and f_cc_no<9 THEN f_cc_no=f_cc_no+1;
       IF key_z=2 and f_cc_no>0  THEN f_cc_no=f_cc_no-1;
     END;
     DO;/*key_zz=18 t_verify*/
       IF key_z=0 THEN key_zz=19;
       IF key_z=1 and (t_verify>=80h or t_verify<99) THEN t_verify=t_verify+1;
       IF key_z=2 and (t_verify<80h or t_verify>157) THEN t_verify=t_verify-1;
     END;
     DO;/*key_zz=19 h_verify*/
       IF key_z=0 THEN key_zz=20;
       IF key_z=1 and (h_verify<10 or h_verify>=80h) THEN h_verify=h_verify+1;
       IF key_z=2 and (h_verify>246 or h_verify<80h) THEN h_verify=h_verify-1;
     END;
    END;
CS=0;CS=1;
      DO CASE key_zz;
/*0*/     key_zz=84;
/*1*/     CALL kz1(0ah,set_tem,set_hum,10);
/*2*/     CALL kz1(1ah,set_tem,set_hum,10);
/*3*/     CALL kz1(0ah,ds_hr,ds_min,16);
/*4*/     CALL kz1(1ah,ds_hr,ds_min,16);
/*5*/     DO;
             IF open_hr=24h
               THEN CALL kz1(2dh,0bbh,0bbh,16);
               ELSE CALL kz1(0dh,open_hr,open_min,16);
          END;

/*6*/     CALL kz1(1dh,open_hr,open_min,16);
/*7*/     DO;
             IF close_hr=24h
               THEN CALL kz1(2eh,0bbh,0bbh,16);
               ELSE CALL kz1(0eh,close_hr,close_min,16);
          END;
/*8*/     CALL kz1(1eh,close_hr,close_min,16);
/*9*/     CALL kz1(2bh,0bbh,0aah,16);
/*10*/    CALL kz1(2ah,0bbh,0aah,16);
/*11*/    CALL kz1(2ah,0abh,0aah,16);
/*12*/   DO;
             CALL kz1(0ah,t_wide,h_wide,10);
             dis_led2(2)=dis_led2(2) and 07fh;
         END;
/*13*/   DO;
             CALL kz1(1ah,t_wide,h_wide,10);
             dis_led1(1),dis_led2(1)=dis_led1(1) OR 80h;
          END;
/*14*/   CALL kz1(0ch,set_addth,set_addtl,10);
/*15*/   CALL kz1(1ch,set_addth,set_addtl,10);
/*16*/   CALL kz2;
/*17*/   CALL kz1(1fh,0bbh,f_cc_no,16);
/*18*/   CALL kz3(T_VERIFY,0);
/*19*/   call kz3(H_VERIFY,1);
/*20*/   key_zz=84;
       END;
CS=0;CS=1;
  END key_con;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -