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

📄 qcqx.lst

📁 单片机智能产品c语言设计实例详解?テ悄懿穋语言设计实例详解单片机智能产品c语言设计实例详解
💻 LST
📖 第 1 页 / 共 2 页
字号:
 162   1                      { P2=DATA_7SEG[(push_val)/10];
 163   2                      P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;}
 164   1                      else
 165   1                      { P2=DATA_7SEG[(push_val)%10];
 166   2                      P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;}
 167   1      }
 168          /********************正常工作显示子函数********************/
 169          void normal_dis(void)   
 170          {       
 171   1                      if(dis_flag)
 172   1                      { P2=DATA_7SEG[set_min/10];
 173   2                      P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;}
 174   1                      else
 175   1                      { P2=DATA_7SEG[set_min%10];
 176   2                      P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;}
 177   1      }
 178          /***********************缺油显示子函数***********************/
 179          void oil_dis(void)      
C51 COMPILER V7.06   QCQX                                                                  11/18/2005 20:12:52 PAGE 4   

 180          {
 181   1              if(buzz_sound)  
 182   1              {       if(dis_flag){P2=0x40;P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;}
 183   2                      else {P2=0x40;P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;}
 184   2              }
 185   1              else {P3_0=1;P3_1=1;P3_3=1;P3_4=1;}
 186   1      }
 187          /*****************超温显示子函数******************/
 188          void temp_dis(void)     
 189          {
 190   1                      if(dis_flag){P2=0x40;P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;}
 191   1                      else {P2=0x40;P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;}
 192   1      }
 193          /*********************超温、缺油同时发生显示子函数*************************/
 194          void other_dis(void)    
 195          {
 196   1              if((deda<250)||((deda>500)&&(deda<750)))
 197   1              {       if(dis_flag){P2=0x40;P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;}
 198   2                      else {P2=0x40;P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;}
 199   2              }
 200   1              else {P3_0=1;P3_1=1;P3_3=1;P3_4=1;}
 201   1      }
 202          
 203          /*******************按键\感应开关处理子函数**********************/
 204          void key(void)                  
 205          {       
 206   1              delay(10);
 207   1              while(P1!=0xff)
 208   1              {
 209   2                      switch (P1)
 210   2                      {
 211   3                      case 0xfd:time_inc(); break;
 212   3                      case 0xfb:time_dec(); break;
 213   3                      case 0xf7:push_inc(); break;
 214   3                      case 0xef:push_dec(); break;
 215   3                      case 0xdf:oil_low(); break;
 216   3                      case 0xbf:temp_over(); break;
 217   3                      case 0x9f:other(); break;
 218   3                      default:break;
 219   3                      }
 220   2                      delay(500);
 221   2              }
 222   1              if(set_min>=4){key_flag=1;TR0=1;}
 223   1      }
 224          /******************主函数******************/
 225          void main()
 226          {       init();
 227   1              init_timer0();      //定时器T0初始化
 228   1              init_timer1();          //定时器T1初始化
 229   1              while(1)                //无限循环
 230   1       {      
 231   2      /*------------------------------------*/
 232   2              if(start)
 233   2              {
 234   3                      if(P1!=0xff)key();
 235   3                      else normal_work();
 236   3              }
 237   2              else close();
 238   2        }
 239   1      }
 240          
 241          /*********************正常工作子函数*************************/
C51 COMPILER V7.06   QCQX                                                                  11/18/2005 20:12:52 PAGE 5   

 242          void normal_work()
 243          {       
 244   1              dis_sel=0;
 245   1              if((key_flag)&&(!flag_5s))
 246   1              {relay=OFF;buzz=OFF;delay(6000);flag_5s=1;}
 247   1              if(flag_5s)     
 248   1              {       y=0;
 249   2                      buzz_control();dis_sel=0;
 250   2                      if(set_min==0)
 251   2                      {out_flag=0;buzz=OFF;flag_5m=1;
 252   3                      flag_5s=0;key_flag=0;delay(1000);relay=OFF;}
 253   2                      else {relay=ON;delay(1000);out_flag=1;}
 254   2              }
 255   1      if(over_5m){over_5m=0;flag_5m=0;start=0;min_5m=0;
 256   2                                      out=OFF;relay=OFF;reset()}
 257   1      }
 258          /*****************超温、缺油同时发生处理子函数******************/
 259          void other(void)
 260          {
 261   1      delay(10);
 262   1      if(P1==0x9f){while(1){dis_sel=3;relay=OFF;buzz=OFF;out_flag=0;if(!start)break;}}
 263   1              else dis_sel=0;
 264   1      }
 265          
 266          /*******************超温发生处理子函数*****************/
 267          void temp_over(void)
 268          {
 269   1      delay(10);
 270   1      if(P1==0xbf){while(1){dis_sel=2;relay=OFF;buzz=OFF;out_flag=0;if(!start)break;}}
 271   1              else dis_sel=0;
 272   1      }
 273          /*******************缺油发生处理子函数*****************/
 274          void oil_low(void)
 275          {
 276   1      delay(10);
 277   1      if(P1==0xdf){while(1){dis_sel=1;relay=OFF;out_flag=0;buzz=OFF;if(!start)break;}}
 278   1              else dis_sel=0;
 279   1      }
 280          
 281          /*****************关机处理子函数*******************/    
 282          void close(void)
 283          {P2=0xff;P3=0xff;relay=OFF;buzz=OFF;P1=0xff;out_flag=0;reset()
 284   1      dis_sel=0;set_min=0;key_flag=0;flag_5s=0;out=OFF;push_val=20;}
 285          /*************控制蜂鸣器子函数***************/
 286          void buzz_control(void)
 287          {
 288   1      if((set_min>0)&&(set_min<4))buzz=buzz_sound;
 289   1      else buzz=OFF;}
 290          /****************时间增加子函数*******************/
 291          void time_inc(void)
 292          {       if(!timeinc_key)set_min++;
 293   1              if(set_min>=60)set_min=60;dis_sel=0;
 294   1      }
 295          /******************时间减少子函数******************/
 296          void time_dec(void)
 297          {       if(!timedec_key)set_min--;
 298   1              if(set_min<=0)set_min=0;dis_sel=0;
 299   1      }
 300          /*******************压力增加子函数*********************/
 301          void push_inc(void)
 302          {
 303   1      while(!y){dis_sel=4;delay(2500);y=1;}
C51 COMPILER V7.06   QCQX                                                                  11/18/2005 20:12:52 PAGE 6   

 304   1      if(!pushinc_key)push_val=push_val++;
 305   1      if(push_val>=20)push_val=20;
 306   1      }
 307          /*******************压力减少子函数*********************/
 308          void push_dec(void)
 309          {
 310   1      while(!y){dis_sel=4;delay(2500);y=1;}
 311   1      if(!pushdec_key)push_val=push_val--;
 312   1      if(push_val<=0)push_val=0;
 313   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1144    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      9    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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