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

📄 main.lst

📁 air-contronin controning air in or out,big or small check the temprature.
💻 LST
📖 第 1 页 / 共 3 页
字号:
 586   2                               break;
 587   2      
 588   2                      case 3: 
 589   2                              da=alarm&0x02;
 590   2                              if((da==2)&&(F5sLp==1))
 591   2      //                      da=alarm&0x02;
 592   2                              {
 593   3                                      F5sLp=0;
 594   3                                      pin_lpr=1;
 595   3                                      if(pin_lpr)
 596   3                                      {
 597   4                                              F5sLp=0;
 598   4                                              alarm&=0xfd;
 599   4                                              if(alarm==0)
 600   4                                              {
 601   5                                                      alarm_Resume=1;
 602   5                                              }
 603   4                                              EX1=1;
 604   4                                              state_Lp=0;
 605   4                                      }
 606   3                                      else
 607   3                                      {
 608   4                                              state_Lp=2;
 609   4                                      }
 610   3                              }
 611   2                              break;
 612   2      
 613   2                      default:
C51 COMPILER V8.05a   MAIN                                                                 06/05/2007 06:25:16 PAGE 11  

 614   2                              break;
 615   2              }
 616   1      
 617   1      }
 618          
 619          
 620          
 621          
 622          
 623          void display(void)
 624          {
 625   1              //alarm : bit0 Hpr alarm;bit1 Lpr alarm;bit2 SENS 00;bit3 SENS 50;
 626   1              byte da1=0;
 627   1              //fresh display TA
 628   1              if(alarm==0x00)
 629   1              {
 630   2                      if(display_TA)
 631   2                      {
 632   3              
 633   3                              //ECCF2=0
 634   3                              CCAPM1&=0xfe;
 635   3                              dp_chara(addr_TA,1,1,0,18);
 636   3                              da1=da_TA/10;
 637   3                              dp_bigchara(da1,1,2,18,12);
 638   3                              da1=da_TA%10;
 639   3                              dp_bigchara(da1,1,2,30,12);
 640   3                              display_TA=0;
 641   3                              ee_changed=1;
 642   3                              state_Ee=0;
 643   3                              //Open CCF2 interrupt
 644   3                              CCF1=0;
 645   3                              CCAPM1|=0x01;
 646   3                      }
 647   2                      //fresh display WA
 648   2                      if(display_WA)
 649   2                      {       
 650   3                              //ECCF3=0
 651   3                              CCAPM3&=0xfe;
 652   3                              dp_chara(addr_WA,1,1,0,18);
 653   3                              da1=da_WA/10;
 654   3                              dp_bigchara(da1,1,2,18,12);
 655   3                              da1=da_WA%10;
 656   3                              dp_bigchara(da1,1,2,30,12);
 657   3                              display_WA=0;
 658   3                              //control wa output
 659   3                              WA_changed=1;
 660   3                              state_WA=0;
 661   3                              //display resume the normal state
 662   3                              //only display ta
 663   3                              display_resume=1;
 664   3                              //Open CCF3 interrupt
 665   3                              CCF3=0;
 666   3                              CCAPM3|=0x01;
 667   3                      }
 668   2                      if(display_resume)
 669   2                      {
 670   3                              if(state_Resume==0)
 671   3                              {
 672   4                                      cnt_Resume=0;
 673   4                                      F5sResume=0;
 674   4                                      state_Resume=1;
 675   4                              }
C51 COMPILER V8.05a   MAIN                                                                 06/05/2007 06:25:16 PAGE 12  

 676   3                              else if((state_Resume==1)&&(F5sResume==1))
 677   3                              {
 678   4                                      F5sResume=0;
 679   4                                      state_Resume=0;
 680   4                                      display_resume=0;
 681   4                                      display_TA=1;
 682   4                              }
 683   3                      }
 684   2              }
 685   1              if((alarm!=0)&&(cnt_Display%37==0))
 686   1              {
 687   2                      switch((alarm_state++)%4)
 688   2                      {
 689   3                              case 0:
 690   3                                      da1=alarm&0x01;
 691   3                                      if(da1)
 692   3                                      {
 693   4                                              lcd_clr(1);
 694   4                                              dp_bigchara(addr_PR,0,1,26,60);
 695   4                                              dp_bigchara(addr_AH,1,1,0,24);
 696   4      //                                      speaking();
 697   4                                      }
 698   3                                      break;
 699   3                              case 1:
 700   3                                      da1=alarm&0x02;
 701   3                                      if(da1)
 702   3                                      {
 703   4                                              lcd_clr(1);
 704   4                                              dp_bigchara(addr_PR,0,1,26,60);
 705   4                                              dp_bigchara(addr_AL,1,1,0,24);
 706   4      //                                      speaking();
 707   4                                      }
 708   3                                      break;
 709   3                              case 2:
 710   3                                      da1=alarm&0x04;
 711   3                                      if(da1)
 712   3                                      {
 713   4                                              lcd_clr(1);
 714   4                                              dp_bigchara(addr_SENS,0,1,2,60);
 715   4                                              dp_bigchara(addr_50,1,1,0,24);
 716   4                                      }
 717   3                                      break;
 718   3                              case 3:
 719   3                                      da1=alarm&0x08;
 720   3                                      if(da1)
 721   3                                      {
 722   4                                              lcd_clr(1);
 723   4                                              dp_bigchara(addr_SENS,0,1,2,60);
 724   4                                              dp_bigchara(addr_00,1,1,0,24);
 725   4      //                                      speaking();
 726   4                                      } 
 727   3                                      break;
 728   3                              default:
 729   3                                      break;
 730   3                      }
 731   2      
 732   2              }
 733   1              if(alarm_Resume)
 734   1              {
 735   2                      alarm_Resume=0;
 736   2                      lcd_clr(0);
 737   2                      lcd_predp();
C51 COMPILER V8.05a   MAIN                                                                 06/05/2007 06:25:16 PAGE 13  

 738   2              }
 739   1      }
 740          
 741          void speaking(void)
 742          {
 743   1              if((alarm)&&(cnt_Speaking>2))
 744   1              {
 745   2      //              F54ms=0;
 746   2                      cnt_Speaking=0;
 747   2                      SpeakingBak=~SpeakingBak;
 748   2                      if(SpeakingBak)
 749   2                      {
 750   3                              SPEAKER=1;      
 751   3                      }
 752   2                      else
 753   2                      {
 754   3                              SPEAKER=0;
 755   3                      }
 756   2      
 757   2              }
 758   1              else if(alarm==0)
 759   1              {
 760   2                      SPEAKER=1;
 761   2                      cnt_Speaking=0;
 762   2              }
 763   1      }
 764          
 765          word sample10_adc4(void)
 766          {
 767   1              word vresult;
 768   1              word vmax,vmin,Vd;
 769   1              byte i;
 770   1              Vd=sample_adc(4);
 771   1              vresult=vmax=vmin=Vd;
 772   1              for(i=0;i<9;i++)
 773   1              {
 774   2                      Vd=sample_adc(4);
 775   2                      vresult+=Vd;
 776   2                      if(Vd>vmax)
 777   2                      {
 778   3                              vmax=Vd;
 779   3                      }
 780   2                      else if(Vd<vmin)
 781   2                      {
 782   3                              vmin=Vd;
 783   3                      }
 784   2                      
 785   2              }
 786   1              vresult-=vmax;
 787   1              vresult-=vmin;
 788   1              vresult>>=3;
 789   1              return(vresult);
 790   1      }
 791          
 792          void delay2(word delay)
 793          {
 794   1              word i;
 795   1              for(i=0;i<delay;i++);
 796   1      }
 797          
 798          
 799          unsigned char adc1(void)
C51 COMPILER V8.05a   MAIN                                                                 06/05/2007 06:25:16 PAGE 14  

 800          {
 801   1              unsigned char da;
 802   1              //p1.1 is input of adc
 803   1              //chs2~0:001B;adc_power=1;
 804   1              //speed1~0:11B
 805   1      //      P1|=0x02;
 806   1              P1M0|=0x02;
 807   1              P1M1&=0xfd;
 808   1              ADC_CONTR=0xe1;
 809   1              ADC_CONTR&=0xe7;//clear start flag and end flag
 810   1              ADC_DATA=0;             //clear result data register
 811   1              ADC_LOW2=0;
 812   1              ADC_CONTR|=0x08;
 813   1              while(!(ADC_CONTR&0x10));
 814   1      //      P1M1&=0xfd;
 815   1      //      P1M0&=0xfd;
 816   1              ADC_CONTR&=0x80;
 817   1              da=ADC_DATA;
 818   1              return(da);
 819   1      }
 820          
 821          unsigned int sample_adc(unsigned char ch)
 822          {
 823   1              unsigned int Vd,Vd2;
 824   1              switch(ch)
 825   1              {
 826   2                      case 4:
 827   2                              while(1)
 828   2                              {
 829   3                                      Vd=adc4();
 830   3                                      Vd2=adc4();
 831   3                                      if(abs(Vd-Vd2)<=3)
 832   3                                      {
 833   4                                              break;
 834   4                                      }
 835   3                              }
 836   2                              break;
 837   2      
 838   2                      case 1:
 839   2                              while(1)
 840   2                              {
 841   3                                      Vd=(unsigned int)adc1();
 842   3                                      Vd2=(unsigned int)adc1();                       
 843   3                                      if(abs(Vd-Vd2)<5)
 844   3                                      {
 845   4                                              break;
 846   4                                      }
 847   3                              }
 848   2                              break;
 849   2      
 850   2                      default:
 851   2                              break;
 852   2      
 853   2              }
 854   1              return(Vd);
 855   1      }
 856          
 857          
 858          void delay(byte delay)
 859          {
 860   1              byte i;
 861   1              for(i=0;i<delay;i++);
C51 COMPILER V8.05a   MAIN                                                                 06/05/2007 06:25:16 PAGE 15  

 862   1      }
 863          
 864          
 865          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2088    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      26
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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