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

📄 hicj6.lst

📁 这是一个
💻 LST
📖 第 1 页 / 共 5 页
字号:
 286   2          i=(i>>4)&7;
 287   2          if(i) Led[i]|=0x80; //Point
 288   2          for(i=0;i<8;i++)
 289   2           {
 290   3             write7279(DECODE0+i,Led[i],0);        //Hdd
 291   3           }
 292   2          for(i=0;i<4;i++)
 293   2           {
 294   3             write7279(DECODE0+i,Led[i+8],1);      //House Code
 295   3           }
 296   2      
 297   2            if(Led[15]>0)
 298   2            write7279(DECODE1+7,Led[15],1);
 299   2            else
 300   2            write7279(DECODE0+7,0x0f,1);
 301   2           i=Read1B(200+House,0);
 302   2           i&=0x0f;
 303   2            switch (i)
C51 COMPILER V6.12  HICJ6                                                                  01/03/2005 12:08:21 PAGE 6   

 304   2                        {
 305   3                          case (0x01):
 306   3                                   Type=0x04;
 307   3                                   break;
 308   3                          case (0x02):
 309   3                                   Type=0x02;
 310   3                                   break;
 311   3                          case (0x04):
 312   3                                   Type=0x01;
 313   3                                   break;
 314   3                          case (0x08):
 315   3                                   Type=0x80;
 316   3                                   break;
 317   3                          default:
 318   3                                   Type=0;
 319   3                                   break;
 320   3                        }
 321   2            Sp_Flag=0;
 322   2            Alarm=0;
 323   2            if(Pulse%2) Alarm=0x08;
 324   2            Short_Bak=Read1B(170+House/8,0);
 325   2            if(Short_Bak&(1<<(House%8)))
 326   2             {
 327   3              Alarm|=0x10;
 328   3              Sp_Flag=1;
 329   3             }
 330   2             Break_Bak=Read1B(175+House/8,0);
 331   2            if(Break_Bak&(1<<(House%8)))
 332   2             {
 333   3              Alarm|=0x20;
 334   3              Sp_Flag=1;
 335   3             }
 336   2             Alarm|=Type;
 337   2             Alarm_Flag=1;
 338   2      
 339   2             if(Short_New[House/8]&(1<<(House%8)))
 340   2               Flash|=1;
 341   2             if(Break_New[House/8]&(1<<(House%8)))
 342   2               Flash|=2;
 343   2      
 344   2         }
 345   1         else
 346   1         {
 347   2            for(i=0;i<8;i++)
 348   2           {
 349   3             write7279(UNDECODE+i,1,0);
 350   3           }
 351   2            for(i=0;i<2;i++)
 352   2           {
 353   3             write7279(UNDECODE+i,1,1);
 354   3           }
 355   2            write7279(UNDECODE+7,1,1);      //One Led
 356   2            Led[11]=(House+1)/10;
 357   2            Led[10]=(House+1)%10;
 358   2            write7279(DECODE0+2,Led[10],1);
 359   2            write7279(DECODE0+3,Led[11],1);
 360   2            write7279(UNDECODE+6,0x00,1);           //Type Alarm
 361   2            Sp_Flag=0;
 362   2         }
 363   1      
 364   1      
 365   1      
C51 COMPILER V6.12  HICJ6                                                                  01/03/2005 12:08:21 PAGE 7   

 366   1      
 367   1      
 368   1      
 369   1       }
 370           /*
 371           void Key_Pro(void)
 372          {
 373            //Key_New=read7279(CMD_READ);
 374            if(Key_New==0xff) Key_New=0;
 375            Key_Val=Key_New^Key_Old & Key_New;
 376            Key_Old=Key_New;
 377            if (Key_Val==0x3a)
 378              {
 379                Key_Press=1;
 380                House++;
 381                House=House%House_Sum;
 382                Press_Count=0;
 383               }
 384          
 385          
 386           }
 387             */
 388          void Key_Pro(void)
 389          {
 390   1        BYTE Key_Tmp;
 391   1        Key_New =Key;
 392   1        Key_Tmp=(Key_New^Key_Old)&(~Key_New);
 393   1        if(Key_Tmp)
 394   1         {
 395   2          Key_Val=1;
 396   2          Key_C=0;
 397   2         }
 398   1        if(Key_Val)Key_C++;
 399   1        Key_Old=Key_New;
 400   1        if (Key_C>1)
 401   1          {
 402   2            Key_Val=0;
 403   2            Key_C=0;
 404   2            Key_Press=1;
 405   2            House++;
 406   2            if(House_Max>1)
 407   2             {
 408   3              House=House%House_Max;
 409   3             }
 410   2             else House=0;
 411   2            Press_Count=0;
 412   2           }
 413   1      
 414   1      
 415   1       }
 416          
 417           /**********************************************************
 418          *名	   称:LedTest
 419          *功	   能:LED数码管检测
 420          *说	   明:对数码管分别按段、位进行检测  send_byte 后的片选为什么要独立?
 421          *调	   用:write7279 send_byte
 422          *入口参数:无
 423          *返 回 值:无
 424          ***********************************************************/
 425          
 426          void LedTest(void)
 427          {
C51 COMPILER V6.12  HICJ6                                                                  01/03/2005 12:08:21 PAGE 8   

 428   1      BYTE data i,j;
 429   1       send_byte(CMD_RESET,0);     // 清除显示
 430   1       cs1=cs2=1;
 431   1       send_byte(CMD_RESET,1);
 432   1       cs1=cs2=1;
 433   1       /*
 434   1       send_byte(CMD_TEST,0);
 435   1       cs1=cs2=1;
 436   1       send_byte(CMD_TEST,1);
 437   1       cs1=cs2=1;
 438   1       send_byte(CMD_RESET,0);     // 清除显示
 439   1       cs1=cs2=1;
 440   1       send_byte(CMD_RESET,1);
 441   1       cs1=cs2=1;   */
 442   1       for(i=0;i<6;i++)
 443   1       {
 444   2         Speaker=0;
 445   2         for(j=0;j<8;j++)
 446   2          {
 447   3           write7279(UNDECODE+j,LedCode[i],0);
 448   3           write7279(UNDECODE+j,LedCode[i],1);
 449   3      
 450   3          }
 451   2          delay10ms(20);
 452   2          Speaker=1;
 453   2          delay10ms(80);
 454   2      
 455   2       }
 456   1       send_byte(CMD_RESET,0);     // 清除显示
 457   1       cs1=cs2=1;
 458   1       send_byte(CMD_RESET,1);
 459   1       cs1=cs2=1;
 460   1       for(i=1;i<8;i++)
 461   1       {
 462   2           Speaker=0;
 463   2           write7279(UNDECODE+7-i,0xff,1);
 464   2           delay10ms(20);
 465   2           Speaker=1;
 466   2           delay10ms(80);
 467   2           send_byte(CMD_RESET,1);     // 清除显示
 468   2           cs1=cs2=1;
 469   2      
 470   2       }
 471   1      
 472   1           Speaker=0;
 473   1           write7279(UNDECODE+7,0xff,1);
 474   1           delay10ms(20);
 475   1           Speaker=1;
 476   1           delay10ms(80);
 477   1           send_byte(CMD_RESET,1);     // 清除显示
 478   1           cs1=cs2=1;
 479   1      
 480   1       for(i=0;i<8;i++)
 481   1       {
 482   2           Speaker=0;
 483   2           write7279(UNDECODE+7-i,0xff,0);
 484   2           delay10ms(20);
 485   2           Speaker=1;
 486   2           delay10ms(80);
 487   2           send_byte(CMD_RESET,0);     // 清除显示
 488   2           cs1=cs2=1;
 489   2       }
C51 COMPILER V6.12  HICJ6                                                                  01/03/2005 12:08:21 PAGE 9   

 490   1      }
 491          
 492          
 493          void HddEn_Count_Pro(void)
 494          {
 495   1        BYTE i,j;
 496   1        HddEn_Count=0;
 497   1        HddEn_Sum=0;
 498   1         for (i=0;i<5;i++)
 499   1          {
 500   2           for(j=0;j<8;j++)
 501   2            {
 502   3             if((Hdd_En[i]&(1<<j))!=0)
 503   3             {
 504   4             HddEn_Sum++;
 505   4             House_Max=i*8+j+1;
 506   4             }
 507   3            }
 508   2          }
 509   1      }
 510          
 511           /**********************************************************
 512          *名	   称:InitFram
 513          *功	   能:从铁电存储器FM25040中读取参数,给变量赋值
 514          *说	   明:参考HICJ6.H中的地址分配表
 515          *调	   用:Write1B Read1B Write_Hdd Read_Hdd
 516          *入口参数:无
 517          *返 回 值:无
 518          ***********************************************************/
 519          
 520          void InitFram()
 521          {
 522   1          BYTE data i,j;
 523   1          unsigned long  data First_Flag;
 524   1      
 525   1        // if (First_Flag!=0x5555aaaa)
 526   1           {
 527   2             Hdd_Str.Hdd_L=0x5555aaaa;
 528   2             Write_Hdd(40);
 529   2             First_Flag=Read_Hdd(40);
 530   2             for(i=0;i<160;i++)
 531   2              {
 532   3                 Write1B(0,i,0);
 533   3               }
 534   2             Write1B(1,164,0);    //Station L
 535   2             Write1B(0,165,0);    //Station H
 536   2             Write1B(40,166,0);   //House_Sum
 537   2             for(i=0;i<5;i++)
 538   2               {
 539   3                Write1B(0,170+i,0);  // Clear Short_Bak
 540   3                Write1B(0,175+i,0);  // Clear Break_Bak
 541   3               }
 542   2             for(i=200;i<240;i++)
 543   2               {
 544   3                 Write1B(0x21,i,0);
 545   3               }
 546   2             for(i=240;i<255;i++)
 547   2               {
 548   3                 Write1B(0xff,i,0);
 549   3               }
 550   2                Write1B(0x80,255,0);    //Start
 551   2             for(i=0;i<40;i++)        //House Code
C51 COMPILER V6.12  HICJ6                                                                  01/03/2005 12:08:21 PAGE 10  

 552   2               {
 553   3                 Write1B(1,i*3,1);
 554   3                 j=((i+1)/10)*16+(i+1)%10;
 555   3                 Write1B(j,i*3+1,1);
 556   3                 Write1B(0,i*3+2,1);
 557   3               }
 558   2             for(i=120;i<160;i++)
 559   2               {
 560   3                 Write1B(0x36,i,1);
 561   3               }
 562   2             for(i=200;i<240;i++)
 563   2               {
 564   3                 Write1B(0x87,i,1);
 565   3               }
 566   2      
 567   2           }
 568   1      
 569   1            for(i=0;i<5;i++)
 570   1             {
 571   2              Hdd_En[i]=Read1B(250+i,0);
 572   2              Short_En[i]=Read1B(240+i,0);
 573   2              Break_En[i]=Read1B(245+i,0);
 574   2             }
 575   1             for(i=0;i<40;i++)
 576   1             {
 577   2              HddVal[i]=0;

⌨️ 快捷键说明

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