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

📄 zdbwnl.lst

📁 很好很强大的全能日历哈哈 哈dssddsfsdds
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V8.05a   ZDBWNL                                                               10/13/2008 19:59:37 PAGE 13  

 699   3                              Mcs=1;Scs=0;
 700   3                      Disp_Digit(1,56,space); //显示空格
 701   3                              Mcs=0;Scs=1;
 702   3                      Disp_Digit(1,0,space);    
 703   3              }
 704   2          } 
 705   1              else
 706   1          { 
 707   2              d=read_clock(0x89);//读月
 708   2                      e=d;
 709   2                      d=d>>4;
 710   2                      e=e&0x0f;
 711   2                      Mcs=1;Scs=0;
 712   2                      Disp_Digit(1,56,zero+d*16);
 713   2                      Mcs=0;Scs=1;
 714   2                      Disp_Digit(1,0,zero+e*16);
 715   2                      Disp_Chinese(1,8,yue);
 716   2          }   
 717   1      
 718   1              if(day==1)  //日闪烁标志位
 719   1          {
 720   2              if(flag==1)
 721   2              {  
 722   3                              d=read_clock(0x87);//读日
 723   3                              e=d;
 724   3                              d=d>>4;
 725   3                              e=e&0x0f;
 726   3                              Mcs=0;Scs=1;
 727   3                              Disp_Digit(1,24,zero+d*16);
 728   3                              Disp_Digit(1,32,zero+e*16);
 729   3                              Disp_Chinese(1,40,ri);
 730   3              }
 731   2              else
 732   2                      {
 733   3                              Mcs=0;Scs=1;
 734   3                      Disp_Digit(1,24,space); //显示空格
 735   3                      Disp_Digit(1,32,space);    
 736   3              }
 737   2          } 
 738   1              else
 739   1          { 
 740   2              d=read_clock(0x87);//读日
 741   2                      e=d;
 742   2                      d=d>>4;
 743   2                      e=e&0x0f;
 744   2                      Mcs=0;Scs=1;
 745   2                      Disp_Digit(1,24,zero+d*16);
 746   2                      Disp_Digit(1,32,zero+e*16);
 747   2                      Disp_Chinese(1,40,ri);
 748   2          }
 749   1          
 750   1          if(weekk==1)  //星期闪烁标志位
 751   1          {
 752   2              if(flag==1)
 753   2              {    
 754   3                      d=read_clock(0x8b);//读星期
 755   3                              Mcs=1;Scs=0;
 756   3                              Disp_Chinese(3,40,cone+(d-1)*32);//写入星期的汉字
 757   3              }
 758   2              else
 759   2              {
 760   3                              Mcs=1;Scs=0;
C51 COMPILER V8.05a   ZDBWNL                                                               10/13/2008 19:59:37 PAGE 14  

 761   3                      Disp_Chinese(3,40,spaces); //显示空格        
 762   3              }
 763   2          } 
 764   1              else
 765   1          { 
 766   2              d=read_clock(0x8b);//读星期
 767   2                      Mcs=1;Scs=0;
 768   2                      Disp_Chinese(3,40,cone+(d-1)*32);//写入星期的汉字
 769   2          }     
 770   1      }
 771          
 772          /******************************************************************************/
 773          void Disp2(void)//显示和闪烁函数
 774          {
 775   1              if(Kgb==1)  //开关闪烁标志位
 776   1              {
 777   2              if(flag==1)
 778   2              {
 779   3                              if(Bell_Swh == 0)//0为关
 780   3                              {
 781   4                                      Mcs=0;Scs=1;
 782   4                                      Disp_Chinese(2,32,guan);//显示关
 783   4                              }
 784   3                              else
 785   3                              {
 786   4                                      Mcs=0;Scs=1;
 787   4                                      Disp_Chinese(2,32,kai);//显示开
 788   4                              }
 789   3              }
 790   2                 else
 791   2             {
 792   3                              Mcs=0;Scs=1;
 793   3                              Disp_Chinese(2,32,spaces); //显示空格
 794   3             }
 795   2          } 
 796   1              else
 797   1          {
 798   2              if(Bell_Swh == 0)//关
 799   2                      {
 800   3                              Mcs=0;Scs=1;
 801   3                              Disp_Chinese(2,32,guan);
 802   3                      }
 803   2                      else
 804   2                      {
 805   3                              Mcs=0;Scs=1;
 806   3                              Disp_Chinese(2,32,kai);
 807   3                      }
 808   2          }    
 809   1         
 810   1              if(Hourb==1)  //时闪烁标志位
 811   1          {
 812   2              if(flag==1)
 813   2              { 
 814   3                      d=read_clock(0xc3);//读闹钟小时的数值
 815   3                              e=d;
 816   3                              d=d>>4;
 817   3                              e=e&0x0f;
 818   3                              Mcs=1;Scs=0;
 819   3                              Disp_Digit(4,48,zero+d*16);
 820   3                              Disp_Digit(4,56,zero+e*16);   
 821   3              }
 822   2              else
C51 COMPILER V8.05a   ZDBWNL                                                               10/13/2008 19:59:37 PAGE 15  

 823   2              {
 824   3                              Mcs=1;Scs=0;
 825   3                      Disp_Digit(4,48,space); //显示空格
 826   3                      Disp_Digit(4,56,space);    
 827   3              }
 828   2          } 
 829   1              else
 830   1          {
 831   2              d=read_clock(0xc3);//读闹钟小时的数值
 832   2                      e=d;
 833   2                      d=d>>4;
 834   2                      e=e&0x0f;
 835   2                      Mcs=1;Scs=0;
 836   2                      Disp_Digit(4,48,zero+d*16);
 837   2                      Disp_Digit(4,56,zero+e*16);     
 838   2          } 
 839   1      
 840   1              if(Minb==1)  //分钟闪烁标志位
 841   1          {
 842   2              if(flag==1)
 843   2              {    
 844   3                      d=read_clock(0xc5);//读闹钟分钟的数值
 845   3                              e=d;
 846   3                              d=d>>4;
 847   3                              e=e&0x0f;
 848   3                              Mcs=0;Scs=1;
 849   3                              Disp_Digit(4,8,zero+d*16);
 850   3                              Disp_Digit(4,16,zero+e*16);
 851   3              }
 852   2              else
 853   2              {
 854   3                              Mcs=0;Scs=1;
 855   3                      Disp_Digit(4,8,space); //显示空格
 856   3                      Disp_Digit(4,16,space);    
 857   3              }
 858   2          } 
 859   1              else
 860   1              { 
 861   2              d=read_clock(0xc5);//读闹钟分钟的数值
 862   2                      e=d;
 863   2                      d=d>>4;
 864   2                      e=e&0x0f;
 865   2                      Mcs=0;Scs=1;
 866   2                      Disp_Digit(4,8,zero+d*16);
 867   2                      Disp_Digit(4,16,zero+e*16);
 868   2              }
 869   1      
 870   1              if(Secb==1)  //秒闪烁标志位
 871   1          {
 872   2              if(flag==1)
 873   2              {    
 874   3                      d=read_clock(0xc7);//读闹钟秒的数值
 875   3                              e=d;
 876   3                              d=d>>4;
 877   3                              e=e&0x0f;
 878   3                              Mcs=0;Scs=1;
 879   3                              Disp_Digit(4,32,zero+d*16);
 880   3                              Disp_Digit(4,40,zero+e*16);
 881   3              }
 882   2              else
 883   2              {
 884   3                              Mcs=0;Scs=1;
C51 COMPILER V8.05a   ZDBWNL                                                               10/13/2008 19:59:37 PAGE 16  

 885   3                      Disp_Digit(4,32,space); //显示空格
 886   3                      Disp_Digit(4,40,space);    
 887   3              }
 888   2          } 
 889   1              else
 890   1          { 
 891   2              d=read_clock(0xc7);//读闹钟秒的数值
 892   2                      e=d;
 893   2                      d=d>>4;
 894   2                      e=e&0x0f;
 895   2                      Mcs=0;Scs=1;
 896   2                      Disp_Digit(4,32,zero+d*16);
 897   2                      Disp_Digit(4,40,zero+e*16);
 898   2          }
 899   1      }
 900          
 901          /******************************************************************************/
 902          void id_case1_key(void)//id为1时的下一级选择
 903          {
 904   1              if(Add_Key == 0) //增加
 905   1          {
 906   2              Delay(100);
 907   2              if(Add_Key == 0)
 908   2                              Set_time(id,0);  //调用Set_time函数
 909   2                              while(Add_Key ==0);
 910   2          }
 911   1              if (Dec_Key==0)  //减少
 912   1          {
 913   2              Delay(100);
 914   2              if(Dec_Key == 0)
 915   2                              Set_time(id,1);  
 916   2                      while(Dec_Key ==0);
 917   2            }
 918   1      }
 919          
 920          /******************************************************************************/
 921          void Set_time(unsigned char sel, bit sel_1) //根据选择调整相应项目并写入DS1302
 922          {
 923   1        signed char address,item;
 924   1        signed char max,mini;
 925   1        if(sel==7)  {address=0x80; max=0;mini=0;}     //秒
 926   1        if(sel==6)  {address=0x82; max=59;mini=0;}    //分钟
 927   1        if(sel==5)  {address=0x84; max=23;mini=0;}    //小时
 928   1        if(sel==3)  {address=0x86; max=31;mini=1;}    //日
 929   1        if(sel==2)  {address=0x88; max=12;mini=1;}    //月
 930   1        if(sel==1)  {address=0x8c; max=99; mini=0;}    //年
 931   1        if(sel==4)  {address=0x8a; max=7;mini=1;}    //星期
 932   1        
 933   1        //读取1302某地址上的数值转换成10进制赋给item 
 934   1        item=((read_clock(address+1))/16)*10 + (read_clock(address+1))%16;
 935   1        if(sel_1==0) 
 936   1              item++;  
 937   1        else
 938   1              item--;
 939   1        if(item>max) item=mini;   
 940   1        if(item<mini) item=max;
 941   1                 
 942   1        write_clock(0x8e,0x00);//允许写操作
 943   1        write_clock(address,(item/10)*16+item%10);//转换成16进制写入1302
 944   1        write_clock(0x8e,0x80);//写保护,禁止写操作  
 945   1      }
 946          

⌨️ 快捷键说明

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