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

📄 080630.lst

📁 DS12CR887高精度万年历_C51程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 438   1              SH_CP=0;
 439   1              DS=1;
 440   1              
 441   1      }
 442          /************************
 443          函数名:write_sfm()
 444          功能:显示子函数调时间模式下用此函数刷新显示数据
 445          
 446          *************************/
 447          void write_sfm(uchar sg,uchar ss,uchar fg,uchar fs,uchar mg,uchar ms,uchar ng,uchar ns,uchar yg,uchar ys,u
             -char rg,uchar rs,uchar xqs,uchar temp_s,uchar temp_g)
 448          {
 449   1              uchar k;
 450   1      
 451   1              for(k=0;k<8;k++)
 452   1              {
 453   2                      SH_CP=0;        
 454   2                      mg<<=1;         //将数据左移把最高位移入到了CY当中
 455   2                      DS=CY;
 456   2                      SH_CP=1;                //上升沿发生移位
 457   2              }
 458   1      
 459   1              for(k=0;k<8;k++)
 460   1              {
 461   2                      SH_CP=0;        
 462   2                      ms<<=1;         //将数据左移把最高位移入到了CY当中
 463   2                      DS=CY;
 464   2                      SH_CP=1;                //上升沿发生移位
 465   2              }
 466   1              for(k=0;k<8;k++)
 467   1              {
 468   2                      SH_CP=0;        
 469   2                      fg<<=1;         //将数据左移把最高位移入到了CY当中
 470   2                      DS=CY;
 471   2                      SH_CP=1;                //上升沿发生移位
 472   2              }
 473   1      
 474   1              for(k=0;k<8;k++)
 475   1              {
 476   2                      SH_CP=0;        
 477   2                      fs<<=1;         //将数据左移把最高位移入到了CY当中
 478   2                      DS=CY;
 479   2                      SH_CP=1;                //上升沿发生移位
 480   2              }
 481   1              
 482   1              for(k=0;k<8;k++)
 483   1              {
 484   2                      SH_CP=0;        
 485   2                      sg<<=1;         //将数据左移把最高位移入到了CY当中
 486   2                      DS=CY;
 487   2                      SH_CP=1;                //上升沿发生移位
 488   2              }
C51 COMPILER V7.06   080630                                                                07/27/2008 13:47:08 PAGE 9   

 489   1      
 490   1              for(k=0;k<8;k++)
 491   1              {
 492   2                      SH_CP=0;        
 493   2                      ss<<=1;         //将数据左移把最高位移入到了CY当中
 494   2                      DS=CY;
 495   2                      SH_CP=1;                //上升沿发生移位
 496   2              }
 497   1              
 498   1              for(k=0;k<8;k++)
 499   1              {
 500   2                      SH_CP=0;        
 501   2                      rg<<=1;         //将数据左移把最高位移入到了CY当中
 502   2                      DS=CY;
 503   2                      SH_CP=1;                //上升沿发生移位
 504   2              }
 505   1              
 506   1              for(k=0;k<8;k++)
 507   1              {
 508   2                      SH_CP=0;        
 509   2                      rs<<=1;         //将数据左移把最高位移入到了CY当中
 510   2                      DS=CY;
 511   2                      SH_CP=1;                //上升沿发生移位
 512   2              }
 513   1              
 514   1              for(k=0;k<8;k++)
 515   1              {
 516   2                      SH_CP=0;        
 517   2                      yg<<=1;         //将数据左移把最高位移入到了CY当中
 518   2                      DS=CY;
 519   2                      SH_CP=1;                //上升沿发生移位
 520   2              }
 521   1              for(k=0;k<8;k++)
 522   1              {
 523   2                      SH_CP=0;        
 524   2                      ys<<=1;         //将数据左移把最高位移入到了CY当中
 525   2                      DS=CY;
 526   2                      SH_CP=1;                //上升沿发生移位
 527   2              }
 528   1              
 529   1                      for(k=0;k<8;k++)
 530   1              {
 531   2                      SH_CP=0;        
 532   2                      ng<<=1;         //将数据左移把最高位移入到了CY当中
 533   2                      DS=CY;
 534   2                      SH_CP=1;                //上升沿发生移位
 535   2              }
 536   1                      for(k=0;k<8;k++)
 537   1              {
 538   2                      SH_CP=0;        
 539   2                      ns<<=1;         //将数据左移把最高位移入到了CY当中
 540   2                      DS=CY;
 541   2                      SH_CP=1;                //上升沿发生移位
 542   2              }
 543   1              
 544   1                      for(k=0;k<8;k++)
 545   1              {
 546   2                      SH_CP=0;        
 547   2                      xqs<<=1;                //将数据左移把最高位移入到了CY当中
 548   2                      DS=CY;
 549   2                      SH_CP=1;                //上升沿发生移位
 550   2              }
C51 COMPILER V7.06   080630                                                                07/27/2008 13:47:08 PAGE 10  

 551   1                      for(k=0;k<8;k++)
 552   1              {
 553   2                      SH_CP=0;        
 554   2                      temp_g<<=1;             //将数据左移把最高位移入到了CY当中
 555   2                      DS=CY;
 556   2                      SH_CP=1;                //上升沿发生移位
 557   2              }
 558   1              
 559   1                      for(k=0;k<8;k++)
 560   1              {
 561   2                      SH_CP=0;        
 562   2                      temp_s<<=1;             //将数据左移把最高位移入到了CY当中
 563   2                      DS=CY;
 564   2                      SH_CP=1;                //上升沿发生移位
 565   2              }
 566   1              SH_CP=0;
 567   1              DS=1;
 568   1              
 569   1      }
 570          /************************
 571          函数名:display()
 572          功能:显示子函数
 573          
 574          *************************/
 575          void display()
 576          {
 577   1              ST_CP=0;
 578   1              write_595byte(shi,fen,miao,nian,yue,ri,xq,temp);
 579   1              ST_CP=1;        //上升沿将移位寄存器的数据送到输出锁存器并输出
 580   1              ST_CP=0;
 581   1      }
 582          
 583          ////键盘扫描////
 584          void kscan()
 585          {
 586   1              rd=0;
 587   1              if(s1==0)
 588   1              {
 589   2                      delay(5);
 590   2                      if(s1==0);////功能键
 591   2                      {
 592   3                              
 593   3                              flag=1; //flag=1将停止显示数据的刷新
 594   3                              while(!s1);//松手检测
 595   3                              delay(5);       //延时去抖动
 596   3                              if(s1==1)
 597   3                              {
 598   4                                      s1num++;                //对功能键按下的次数进行计数判断要修改的数据
 599   4                                      if(s1num==1)//调节秒
 600   4                                      {
 601   5                                              ST_CP=0;        
 602   5                                              write_sfm(table[shi%10],table[shi/10],table[fen%10],table[fen/10],table[16],table[16],table[nian%10],
             -table[nian/10],table[yue%10],table[yue/10],table[ri%10],table[ri/10],table[xq],table[temp%100/10],table[temp/100]);   
 603   5                                              ST_CP=1;
 604   5                                              ST_CP=0;
 605   5                                      }
 606   4                                      if(s1num==2)//调节分
 607   4                                      {
 608   5                                              ST_CP=0;        
 609   5                                              write_sfm(table[shi%10],table[shi/10],table[16],table[16],table[miao%10],table[miao/10],table[nian%10
             -],table[nian/10],table[yue%10],table[yue/10],table[ri%10],table[ri/10],table[xq],table[temp%100/10],table[temp/100]); 
 610   5                                              ST_CP=1;
C51 COMPILER V7.06   080630                                                                07/27/2008 13:47:08 PAGE 11  

 611   5                                              ST_CP=0;        
 612   5                                      }
 613   4                                      if(s1num==3)//调节时
 614   4                                      {
 615   5                                              ST_CP=0;        
 616   5                                              write_sfm(table[16],table[16],table[fen%10],table[fen/10],table[miao%10],table[miao/10],table[nian%10
             -],table[nian/10],table[yue%10],table[yue/10],table[ri%10],table[ri/10],table[xq],table[temp%100/10],table[temp/100]); 
 617   5                                              ST_CP=1;
 618   5                                              ST_CP=0;
 619   5                                      }
 620   4                              
 621   4                                      if(s1num==4)//调节日
 622   4                                      {
 623   5                                              ST_CP=0;        
 624   5                                              write_sfm(table[shi%10],table[shi/10],table[fen%10],table[fen/10],table[miao%10],table[miao/10],table
             -[16],table[16],table[yue%10],table[yue/10],table[ri%10],table[ri/10],table[xq],table[temp%100/10],table[temp/100]);   
 625   5                                              ST_CP=1;
 626   5                                              ST_CP=0;        
 627   5                                      }
 628   4                                      if(s1num==5)//调节月
 629   4                                      {
 630   5                                              ST_CP=0;        
 631   5                                              write_sfm(table[shi%10],table[shi/10],table[fen%10],table[fen/10],table[miao%10],table[miao/10],table
             -[nian%10],table[nian/10],table[16],table[16],table[ri%10],table[ri/10],table[xq],table[temp%100/10],table[temp/100]); 
 632   5                                              ST_CP=1;
 633   5                                              ST_CP=0;        
 634   5                                      }
 635   4                                      if(s1num==6)//调节年
 636   4                                      {
 637   5                                              ST_CP=0;        
 638   5                                              write_sfm(table[shi%10],table[shi/10],table[fen%10],table[fen/10],table[miao%10],table[miao/10],table
             -[nian%10],table[nian/10],table[yue%10],table[yue/10],table[16],table[16],table[xq],table[temp%100/10],table[temp/100]);       
 639   5                                              ST_CP=1;
 640   5                                              ST_CP=0;        
 641   5                                      }
 642   4                                      if(s1num==7)//调节星期
 643   4                                      {
 644   5                                              ST_CP=0;        
 645   5                                              write_sfm(table[shi%10],table[shi/10],table[fen%10],table[fen/10],table[miao%10],table[miao/10],table
             -[nian%10],table[nian/10],table[yue%10],table[yue/10],table[ri%10],table[ri/10],table[16],table[temp%100/10],table[temp/1
             -00]);        
 646   5                                              ST_CP=1;
 647   5                                              ST_CP=0;        
 648   5                                      }
 649   4                                      if(s1num==8)//把调节好的数据保存下来然后恢复正常读取显示
 650   4                                      {
 651   5                                              s1num=0;
 652   5                                              write_ds(0,miao);

⌨️ 快捷键说明

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