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

📄 yk.lst

📁 这是一个51单片机实现的控制器程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 267   2              {
 268   3               case 0:
 269   3                 Led=3;
 270   3                 break;
 271   3               case 1:
 272   3                 Led=1;
 273   3                 break;
 274   3               case 2:
 275   3                 Led=2;
 276   3                 break;
 277   3               case 3:
 278   3                 Led=0;
 279   3                 break;
 280   3               default:
 281   3                 Led=0;
 282   3                 break;
 283   3              }
 284   2      
 285   2               write7279(UNDECODE+Led*2+1,Seg&Yk_En,0);
 286   2               write7279(UNDECODE+Led*2,~Seg&Yk_En,0);
 287   2      
 288   2            }
 289   1      
 290   1             Seg=0;
 291   1             Status= Read1B(12,0);
 292   1             Status&=0x0f;
 293   1             Status_Tmp= Read1B(14,0);
 294   1             Status_Tmp&=0xf0;
 295   1             Status|=Status_Tmp;
 296   1             if (Status&0x01) Seg|=0x40;
 297   1             if (Status&0x02) Seg|=0x20;
 298   1             if (Status&0x04) Seg|=0x10;
 299   1             if (Status&0x08) Seg|=0x08;
 300   1             if (Status&0x10) Seg|=0x04;
 301   1             if (Status&0x20) Seg|=0x02;
 302   1             if (Status&0x40) Seg|=0x01;
 303   1             if (Status&0x80) Seg|=0x80;
C51 COMPILER V6.12  YK                                                                     10/22/2004 10:23:10 PAGE 6   

 304   1             Yk_En=0;
 305   1             Status= Read1B(17,0);
 306   1             Status&=0x0f;
 307   1             Status_Tmp= Read1B(19,0);
 308   1             Status_Tmp&=0xf0;
 309   1             Status|=Status_Tmp;
 310   1      
 311   1             if (Status&0x01) Yk_En|=0x40;
 312   1             if (Status&0x02) Yk_En|=0x20;
 313   1             if (Status&0x04) Yk_En|=0x10;
 314   1             if (Status&0x08) Yk_En|=0x08;
 315   1             if (Status&0x10) Yk_En|=0x04;
 316   1             if (Status&0x20) Yk_En|=0x02;
 317   1             if (Status&0x40) Yk_En|=0x01;
 318   1             if (Status&0x80) Yk_En|=0x80;
 319   1      
 320   1             write7279(UNDECODE+1,Seg&Yk_En,1);
 321   1             write7279(UNDECODE,~Seg&Yk_En,1);
 322   1      
 323   1      }
 324          
 325          
 326          
 327          
 328          void YkPro(BYTE YkNo,BYTE YkHf)
 329          {
 330   1        BYTE i,j,YkData;
 331   1         Yk_Clr=1;
 332   1         Yk_Do=1;
 333   1         Yk_Do=0;
 334   1         Yk_Do=1;
 335   1        YkStart=1;
 336   1        YkCount=0;
 337   1        i=YkNo/4;
 338   1        j=YkNo%4;
 339   1        YkData=0;
 340   1        if(YkHf==0xcc)     //Kai
 341   1         {
 342   2           YkData=H_TAB[j];
 343   2         }
 344   1        if(YkHf==0x33)               //Guan
 345   1         {
 346   2           YkData=F_TAB[j];
 347   2         }
 348   1         switch (i)
 349   1              {
 350   2               case 0:              //1-4
 351   2                 Yk0=YkData;
 352   2                 break;
 353   2               case 1:              //5-8
 354   2                 Yk1=YkData;
 355   2                 break;
 356   2               case 2:              //9-12
 357   2                 Yk2=YkData;
 358   2                 break;
 359   2               case 3:              //13-16
 360   2                 Yk3=YkData;
 361   2                 break;
 362   2               case 4:              //17-20
 363   2                 Yk4=YkData;
 364   2                 break;
 365   2               case 5:              //21-24
C51 COMPILER V6.12  YK                                                                     10/22/2004 10:23:10 PAGE 7   

 366   2                 Yk5=YkData;
 367   2                 break;
 368   2               case 6:              //25-28
 369   2                 Yk6=YkData;
 370   2                 break;
 371   2               case 7:              //29-32
 372   2                 Yk7=YkData;
 373   2                 break;
 374   2               case 8:              //33-36
 375   2                /* P3_6=0;
 376   2                 Object8=0;
 377   2                 P0=YkData;
 378   2                 P3_6=1;
 379   2                 Object8=1; */
 380   2                 Object8=0;
 381   2                 Yk8_9=YkData;
 382   2                 Object8=1;
 383   2                 break;
 384   2               case 9:              //37-40
 385   2                 /*P3_6=0;
 386   2                 Object9=0;
 387   2                 P0=YkData;
 388   2                 P3_6=1;
 389   2                 Object9=1; */
 390   2                 Object9=0;
 391   2                 Yk8_9=YkData;
 392   2                 Object9=1;
 393   2                 break;
 394   2               default:
 395   2                 Yk_Clr=0;
 396   2                 Yk_UnDo=1;
 397   2                 Yk_UnDo=0;
 398   2                 Yk_UnDo=1;
 399   2                 break;
 400   2              }
 401   1      
 402   1                Disp_Flag=1;
 403   1                {
 404   2                 Tmp1=YkNo/8;
 405   2                 i=Read1B(10+Tmp1,0);
 406   2                 j=1<<(YkNo%8);
 407   2                 if(YkHf==0xcc)
 408   2                   {
 409   3                    i|=j;
 410   3                   }
 411   2                   else
 412   2                   {
 413   3                     i&=~j;
 414   3                   }
 415   2                    Write1B(i,10+Tmp1,0);
 416   2      
 417   2                }
 418   1      
 419   1      }
 420          
 421          
 422          void Yk_Auto(void)
 423          {
 424   1        BYTE i,j;
 425   1      
 426   1        j=Week-1;
 427   1        for(i=0;i<5;i++)           // AUTO ON
C51 COMPILER V6.12  YK                                                                     10/22/2004 10:23:10 PAGE 8   

 428   1         {
 429   2           Yk_Time.Hour=Read1B(20+10*j+i*2,0);
 430   2           if(Yk_Time.Hour&0x80)
 431   2             {
 432   3              Yk_Time.Hour&=0x7f;
 433   3              Yk_Time.Minute=Read1B(20+10*j+i*2+1,0);
 434   3              Cs12887=0;
 435   3              if(Yk_Time.Hour==Hour && Yk_Time.Minute==Minute )
 436   3                {
 437   4                  Yk_All=1;
 438   4                  YkStart=0;
 439   4                  YkNo=0;
 440   4                  YkHf=0xcc;
 441   4                }
 442   3              Cs12887=1;
 443   3             }
 444   2      
 445   2           Yk_Time.Hour=Read1B(90+10*j+i*2,0);   //AUTO OFF
 446   2           if(Yk_Time.Hour&0x80)
 447   2             {
 448   3              Yk_Time.Hour&=0x7f;
 449   3              Yk_Time.Minute=Read1B(90+10*j+i*2+1,0);
 450   3              Cs12887=0;
 451   3              if(Yk_Time.Hour==Hour && Yk_Time.Minute==Minute )
 452   3                {
 453   4                  Yk_All=1;
 454   4                  YkStart=0;
 455   4                  YkNo=0;
 456   4                  YkHf=0x33;
 457   4                }
 458   3              Cs12887=1;
 459   3             }
 460   2      
 461   2      
 462   2         }
 463   1      
 464   1      }
 465          
 466          
 467           main()
 468          {   BYTE Day_Tmp,Tmp1,Tmp2,i,j,Minute_Tmp;
 469   1          init();
 470   1      
 471   1       /*  Yk_All=1;
 472   1         YkStart=0;
 473   1      YkNo=0;
 474   1      YkHf=0xcc;  */
 475   1         YkStart=0;
 476   1         Yk_Fresh=0;
 477   1         YkNo=0;
 478   1      loop:
 479   1      
 480   1      /*   Tmp1++;
 481   1         Write1B(0x55,0x30,0);
 482   1         Tmp2=Read1B(0x30,0);
 483   1         if(Tmp2!=0x55)
 484   1         {
 485   1         i++;
 486   1         }
 487   1         Cs12887=0;
 488   1         Tmp1=Second;
 489   1         Tmp1=Year;
C51 COMPILER V6.12  YK                                                                     10/22/2004 10:23:10 PAGE 9   

 490   1         Tmp1=Month;
 491   1         Tmp1=0;
 492   1         Tmp1=Week;
 493   1        // Nvram[0]=0x55;
 494   1         Tmp1=Nvram[0];
 495   1         Cs12887=1;     */
 496   1         if(Time_Counter>5)
 497   1        {
 498   2          //DIR485=0;
 499   2          //SBUF=0x55;
 500   2          Run=~Run;
 501   2          Time_Counter=0;
 502   2           /* YkPro(YkNo,0xcc);
 503   2             YkPro(YkNo,0x33);
 504   2             YkPro(YkNo,0xcc);
 505   2            YkNo++;
 506   2            YkNo%=40;  */
 507   2        }
 508   1           if(Rcv_Flag)
 509   1            {
 510   2            	Rcv_Pro();
*** WARNING C206 IN LINE 510 OF C:\MY\DDYK\YK.C: 'Rcv_Pro': missing function-prototype
 511   2            }
 512   1           if(Trs_Flag==1 && Trs_Wp==Trs_Rp)
 513   1            {
 514   2            	Trs_Edit();
*** WARNING C206 IN LINE 514 OF C:\MY\DDYK\YK.C: 'Trs_Edit': missing function-prototype
 515   2            }
 516   1            if(Rcv_Count>10) Rcv_Wp=0;
 517   1      
 518   1         if (YkCount>2)
 519   1          {
 520   2      
 521   2           YkStart=0;
 522   2           YkCount=0;
 523   2           Yk_Clr=0;
 524   2           Yk_UnDo=1;
 525   2           Yk_UnDo=0;
 526   2           Yk_UnDo=1;
 527   2           Disp_Flag=1;
 528   2          }
 529   1          if(Disp_Flag) Disp();
 530   1      
 531   1          if((Yk_All==1) && (YkStart==0))
 532   1           {
 533   2            YkPro(YkNo,YkHf);
 534   2            YkNo++;
 535   2            if(YkNo==40)
 536   2             {
 537   3              YkNo=0;
 538   3              Yk_All=0;
 539   3             }

⌨️ 快捷键说明

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