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

📄 hicj6.lst

📁 这是一个
💻 LST
📖 第 1 页 / 共 5 页
字号:
 578   2             }
 579   1             Station=Read1B(164,0);
 580   1            // Write1B(0x0,255,0);
 581   1           //House=House_Max-1;
 582   1             Start=Read1B(255,0);
 583   1      }
 584          
 585          
 586          /**********************************************************
 587          *名	   称:InitTimer
 588          *功	   能:定时器初始化
 589          *说	   明:
 590          *调	   用:
 591          *入口参数:无
 592          *返 回 值:无
 593          ***********************************************************/
 594          void InitTimer(void)
 595          {
 596   1        TMOD=0x22; /*定时器1为模式2(8位自动重装),
 597   1                     定时器0为模式2(8位自动重装) */
 598   1        PCON=00;
 599   1      
 600   1        TR0=0; //在发送或接收才开始使用
 601   1        TF0=0;
 602   1        TH0=(256-192); //4800bps 就是 1000000/4800=208.333微秒 执行的
 603   1                      //timer是 208.333*11.0592/12= 192
 604   1      
 605   1        TL0=TH0;
 606   1      
 607   1      
 608   1      
 609   1         TH1=0xfa;   //9600-FD  4800-FA 2400-F4 1200-E8  300-A0
 610   1         TL1=0xfa;
 611   1         SCON=0x50;
 612   1      
 613   1         T2CON  = 0x04;   //定时器2为16位自动重装,递增计数
C51 COMPILER V6.12  HICJ6                                                                  01/03/2005 12:08:21 PAGE 11  

 614   1         T2MOD  = 0x00;
 615   1         TH2    = 0xb8;  //dc 10ms
 616   1         TL2    = 0x00;
 617   1         RCAP2H = 0xb8;    //20ms定时
 618   1         RCAP2L = 0x00;    //11.0592M晶振,
 619   1                           //20000*11.0592/12=0x4800  0x100-0x48=0xb8
 620   1      
 621   1         ET2=1;
 622   1      
 623   1         ET0=1;
 624   1        // EX1=1;
 625   1         ES=1;
 626   1      
 627   1         TR1=1;
 628   1        // ET1=1;
 629   1      
 630   1         EA=1;
 631   1         TI=0;
 632   1      
 633   1      }
 634          /**********************************************************
 635          *名	   称:InitDD
 636          *功	   能:电度口状态初始化
 637          *说	   明:
 638          *调	   用:
 639          *入口参数:无
 640          *返 回 值:无
 641          ***********************************************************/
 642          void InitDD(void)
 643          {
 644   1       BYTE data i,j,P1_Tmp;
 645   1      
 646   1        for (i=0;i<5;i++)            //初始化电度状态 Hdd_New[10][5]
 647   1          {
 648   2           for(j=0;j<8;j++)
 649   2            {
 650   3              P1_Tmp=1<<(i+3);
 651   3              P1_Tmp=~P1_Tmp&0xf8;
 652   3              P1=P1_Tmp|A8_A10[j];
 653   3              long_delay();
 654   3             if(Hdd==0)
 655   3              {
 656   4                Hdd_Old[i]|=(1<<j);
 657   4              }
 658   3               else
 659   3               {
 660   4                Hdd_Old[i]&=~(1<<j);
 661   4               }
 662   3      
 663   3            }
 664   2            Hdd_New_Bak[i]=Hdd_Old[i];
 665   2            Hdd_Old_Bak[i]=Hdd_Old[i];
 666   2          }
 667   1      
 668   1      }
 669          /**********************************************************
 670          *名	   称:Init
 671          *功	   能:初始化
 672          *说	   明:
 673          *调	   用:
 674          *入口参数:无
 675          *返 回 值:无
C51 COMPILER V6.12  HICJ6                                                                  01/03/2005 12:08:21 PAGE 12  

 676          ***********************************************************/
 677          
 678          void Init()
 679          {
 680   1         BYTE data i,j;
 681   1         /*
 682   1          for(i=0;i<40;i++)
 683   1          {
 684   1      
 685   1           Hdd10s[i]=0;
 686   1           RelayOffTimes[i]=0;
 687   1           TrsOffCount[i]=0;
 688   1          }
 689   1          for(i=0;i<5;i++)
 690   1           {
 691   1            RelayOff[i]=0;
 692   1            TrsRelayOff[i]=0;
 693   1            Keep_Flag[i]=0;
 694   1            Hdd_En[i]=Read1B(250+i,0);
 695   1            Short_En[i]=Read1B(240+i,0);
 696   1            Break_En[i]=Read1B(245+i,0);
 697   1           }
 698   1           */
 699   1                 /*
 700   1           for(i=0;i<40;i++)
 701   1          {
 702   1      Hdd_Str.Hdd_L=Read_Hdd(i);
 703   1          }    */
 704   1          Sp_Flag=0;
 705   1          Key_Count=0;
 706   1          Key_New=Key_Old=Key;
 707   1          Ac_Old=~Ac_Check;
 708   1          Press_Count=1000;
 709   1          Rcv_Wp=0;
 710   1          Rcv_Rp=0;
 711   1          Run_Count=0;
 712   1          HddEn_Count=1;
 713   1          Ms20=0;
 714   1          Hdd_Wp=0;
 715   1          WriteOrder=0;
 716   1          InitFram();
 717   1          InitDD();
 718   1          LedTest();
 719   1          InitTimer();
 720   1      
 721   1      
 722   1       }
*** WARNING C280 IN LINE 680 OF D:\TEST\HICJ6.C: 'i': unreferenced local variable
*** WARNING C280 IN LINE 680 OF D:\TEST\HICJ6.C: 'j': unreferenced local variable
 723          
 724          /**********************************************************
 725          *名	   称:Hdd_Check
 726          *功	   能:电度采集处理
 727          *说	   明:
 728          *调	   用:
 729          *入口参数:无
 730          *返 回 值:无
 731          ***********************************************************/
 732          
 733          void Hdd_Check(void)
 734          {
 735   1        BYTE i,j;
C51 COMPILER V6.12  HICJ6                                                                  01/03/2005 12:08:21 PAGE 13  

 736   1        BYTE Hdd_Tmp[5];
 737   1       // BYTE Constant_Range,Range;
 738   1      
 739   1          for (i=0;i<5;i++)
 740   1           {
 741   2           /* if(Press_Count==101)
 742   2            {
 743   2             if(Short_New[i]^Short_Old[i]) Alarm_Check=1;
 744   2             Short_Old[i]=Short_New[i];
 745   2             }
 746   2      */
 747   2        //    Run=1;
 748   2            Hdd_Tmp[i]=Hdd_New[Hdd_Rp][i]^Hdd_Old[i];
 749   2            Hdd_Old[i]=Hdd_New[Hdd_Rp][i];
 750   2      
 751   2            if(Hdd_Tmp[i])                   //有变位
 752   2             {
 753   3             	 for(j=0;j<8;j++)
 754   3               {
 755   4                 if(Hdd_Tmp[i]&(1<<j))
 756   4                  {
 757   5                    Keep_Count[i*8+j]=0;
 758   5                    Keep_Flag[i]|=(1<<j);
 759   5                    //Ac_Count[i*8+j]++;
 760   5                  }
 761   4               }
 762   3      
 763   3             }
 764   2             else                            //无变位
 765   2             {
 766   3             	if(Keep_Flag[i])
 767   3             	 {
 768   4             	  for(j=0;j<8;j++)
 769   4             	   {
 770   5                   if(Keep_Flag[i]&(1<<j))
 771   5                  {
 772   6                    Keep_Count[i*8+j]++;
 773   6                     if(Keep_Count[i*8+j]>Smooth)
 774   6                    {
 775   7                    Keep_Count[i*8+j]=0;
 776   7                    Keep_Flag[i]&=~(1<<j);
 777   7                    Hdd_New_Bak[i]&=~(1<<j);
 778   7                    if (Hdd_New[Hdd_Rp][i]&(1<<j))
 779   7                      {
 780   8                        Hdd_New_Bak[i]|=(1<<j);
 781   8                      }
 782   7                    }
 783   6                  }
 784   5             	   }
 785   4               }
 786   3             }
 787   2           }
 788   1      
 789   1      
 790   1          for(i=0;i<5;i++)
 791   1           {
 792   2             Hdd_Tmp[i]=Hdd_New_Bak[i]^Hdd_Old_Bak[i]&Hdd_New_Bak[i];
 793   2             Hdd_Old_Bak[i]=Hdd_New_Bak[i];
 794   2             if(Hdd_Tmp[i])
 795   2              {
 796   3               for(j=0;j<8;j++)
 797   3                {
C51 COMPILER V6.12  HICJ6                                                                  01/03/2005 12:08:21 PAGE 14  

 798   4                 if(Hdd_Tmp[i]&(1<<j))
 799   4                  {
 800   5                  	//Change[i]|=1<<j;
 801   5                  	HddVal[i*8+j]++;
 802   5                  /*
 803   5                      Constant_Range=Read1B(120+i*8+j,1);
 804   5                      switch (Constant_Range)
 805   5                        {
 806   5                          case (0x26):
 807   5                                   Range=0;
 808   5                                   break;
 809   5                          case (0x36):
 810   5                                   Range=1;
 811   5                                   break;
 812   5                          case (0x56):
 813   5                                   Range=2;
 814   5                                   break;
 815   5                          case (0x76):
 816   5                                   Range=3;
 817   5                                   break;
 818   5                          default:
 819   5                                   Range=0;
 820   5                                   break;
 821   5                        }
 822   5                      Full.Full_L=Full_Val[Range];
 823   5                      Full.Full_L=320000000;
 824   5                      Read_Hdd(i*8+j);
 825   5                      Hdd_Str.Hdd_L++;
 826   5                      Hdd10s[i*8+j]++;
 827   5                      if(Hdd_Str.Hdd_L>Full.Full_L)
 828   5                       {
 829   5                        Hdd_Str.Hdd_L=0;
 830   5                       }
 831   5                      Write_Hdd(i*8+j);
 832   5      
 833   5                      Pulse++;
 834   5                      if(Pulse%2)
 835   5                      write7279(SEGON,0x33,1);
 836   5                         else
 837   5                         write7279(SEGOFF,0x33,1); */
 838   5                      if(Press_Count<1000) Key_Press=1;
 839   5      
 840   5      
 841   5                  }
 842   4                }
 843   3              }
 844   2           }
 845   1      
 846   1            //       Run=0;
 847   1                   Hdd_Rp++;
 848   1                   if(Hdd_Rp==10) Hdd_Rp=0;
 849   1       }
 850          
 851          
 852          /**********************************************************
 853          *名	   称:Bat_Check
 854          *功	   能:电池剩余电量显示
 855          *说	   明:
 856          *调	   用:
 857          *入口参数:无
 858          *返 回 值:无
 859          ***********************************************************/
C51 COMPILER V6.12  HICJ6                                                                  01/03/2005 12:08:21 PAGE 15  

 860          void Bat_Check(void)
 861          {
 862   1        BYTE data i,Battery;
 863   1             Ac_Check=1;
 864   1             Ac_New=Ac_Check;
 865   1             Ac_Tmp=Ac_New^Ac_Old;
 866   1             Ac_Old=Ac_New;
 867   1      

⌨️ 快捷键说明

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