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

📄 new.lst

📁 这是我自己写的一段程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 753   2                      Disp_Digit(1,8,two);
 754   2                      Disp_Digit(1,16,zero);
 755   2                      Disp_Digit(1,24,zero+d*16);
 756   2                      Disp_Digit(1,32,zero+e*16);
 757   2          }
 758   1           
 759   1              if(mon==1)  //月闪烁标志位
C51 COMPILER V8.05a   NEW                                                                  11/16/2007 20:45:07 PAGE 14  

 760   1          {
 761   2              if(flag==1)
 762   2              {    
 763   3                      d=read_clock(0x89);//读月
 764   3                              e=d;
 765   3                              d=d>>4;
 766   3                              e=e&0x0f;
 767   3                              Mcs=1;Scs=0;
 768   3                              Disp_Digit(1,56,zero+d*16);
 769   3                              Mcs=0;Scs=1;
 770   3                              Disp_Digit(1,0,zero+e*16);
 771   3                              Disp_Chinese(1,8,yue);
 772   3              }
 773   2              else
 774   2              {
 775   3                              Mcs=1;Scs=0;
 776   3                      Disp_Digit(1,56,space); //显示空格
 777   3                              Mcs=0;Scs=1;
 778   3                      Disp_Digit(1,0,space);    
 779   3              }
 780   2          } 
 781   1              else
 782   1          { 
 783   2              d=read_clock(0x89);//读月
 784   2                      e=d;
 785   2                      d=d>>4;
 786   2                      e=e&0x0f;
 787   2                      Mcs=1;Scs=0;
 788   2                      Disp_Digit(1,56,zero+d*16);
 789   2                      Mcs=0;Scs=1;
 790   2                      Disp_Digit(1,0,zero+e*16);
 791   2                      Disp_Chinese(1,8,yue);
 792   2          }   
 793   1      
 794   1              if(day==1)  //日闪烁标志位
 795   1          {
 796   2              if(flag==1)
 797   2              {  
 798   3                              d=read_clock(0x87);//读日
 799   3                              e=d;
 800   3                              d=d>>4;
 801   3                              e=e&0x0f;
 802   3                              Mcs=0;Scs=1;
 803   3                              Disp_Digit(1,24,zero+d*16);
 804   3                              Disp_Digit(1,32,zero+e*16);
 805   3                              Disp_Chinese(1,40,ri);
 806   3              }
 807   2              else
 808   2                      {
 809   3                              Mcs=0;Scs=1;
 810   3                      Disp_Digit(1,24,space); //显示空格
 811   3                      Disp_Digit(1,32,space);    
 812   3              }
 813   2          } 
 814   1              else
 815   1          { 
 816   2              d=read_clock(0x87);//读日
 817   2                      e=d;
 818   2                      d=d>>4;
 819   2                      e=e&0x0f;
 820   2                      Mcs=0;Scs=1;
 821   2                      Disp_Digit(1,24,zero+d*16);
C51 COMPILER V8.05a   NEW                                                                  11/16/2007 20:45:07 PAGE 15  

 822   2                      Disp_Digit(1,32,zero+e*16);
 823   2                      Disp_Chinese(1,40,ri);
 824   2          }
 825   1          
 826   1          if(weekk==1)  //星期闪烁标志位
 827   1          {
 828   2              if(flag==1)
 829   2              {    
 830   3                      d=read_clock(0x8b);//读星期
 831   3                              Mcs=1;Scs=0;
 832   3                              Disp_Chinese(3,40,cone+(d-1)*32);//写入星期的汉字
 833   3              }
 834   2              else
 835   2              {
 836   3                              Mcs=1;Scs=0;
 837   3                      Disp_Chinese(3,40,spaces); //显示空格        
 838   3              }
 839   2          } 
 840   1              else
 841   1          { 
 842   2              d=read_clock(0x8b);//读星期
 843   2                      Mcs=1;Scs=0;
 844   2                      Disp_Chinese(3,40,cone+(d-1)*32);//写入星期的汉字
 845   2          }     
 846   1      }
 847          
 848          /******************************************************************************/
 849          void Disp2(void)//显示和闪烁函数
 850          {
 851   1              if(Kgb==1)  //开关闪烁标志位
 852   1              {
 853   2              if(flag==1)
 854   2              {
 855   3                              if(Bell_Swh == 0)//0为关
 856   3                              {
 857   4                                      Mcs=0;Scs=1;
 858   4                                      Disp_Chinese(2,32,guan);//显示关
 859   4                              }
 860   3                              else
 861   3                              {
 862   4                                      Mcs=0;Scs=1;
 863   4                                      Disp_Chinese(2,32,kai);//显示开
 864   4                              }
 865   3              }
 866   2                 else
 867   2             {
 868   3                              Mcs=0;Scs=1;
 869   3                              Disp_Chinese(2,32,spaces); //显示空格
 870   3             }
 871   2          } 
 872   1              else
 873   1          {
 874   2              if(Bell_Swh == 0)//关
 875   2                      {
 876   3                              Mcs=0;Scs=1;
 877   3                              Disp_Chinese(2,32,guan);
 878   3                      }
 879   2                      else
 880   2                      {
 881   3                              Mcs=0;Scs=1;
 882   3                              Disp_Chinese(2,32,kai);
 883   3                      }
C51 COMPILER V8.05a   NEW                                                                  11/16/2007 20:45:07 PAGE 16  

 884   2          }    
 885   1         
 886   1              if(Hourb==1)  //时闪烁标志位
 887   1          {
 888   2              if(flag==1)
 889   2              {    
 890   3                      d = Read_One_Byte(0x01);//读取2408的小时的数值
 891   3                              Mcs=1;Scs=0;
 892   3                              Disp_Digit(4,48,zero+(d/10)*16);
 893   3                              Disp_Digit(4,56,zero+(d%10)*16);   
 894   3              }
 895   2              else
 896   2              {
 897   3                              Mcs=1;Scs=0;
 898   3                      Disp_Digit(4,48,space); //显示空格
 899   3                      Disp_Digit(4,56,space);    
 900   3              }
 901   2          } 
 902   1              else
 903   1          {
 904   2              d = Read_One_Byte(0x01);//读取24的小时的数值
 905   2                      Mcs=1;Scs=0;
 906   2                      Disp_Digit(4,48,zero+(d/10)*16);
 907   2                      Disp_Digit(4,56,zero+(d%10)*16);        
 908   2          } 
 909   1      
 910   1              if(Minb==1)  //分钟闪烁标志位
 911   1          {
 912   2              if(flag==1)
 913   2              {    
 914   3                      d = Read_One_Byte(0x02);//读取24的分的数值
 915   3                              Mcs=0;Scs=1;
 916   3                              Disp_Digit(4,8,zero+(d/10)*16);
 917   3                              Disp_Digit(4,16,zero+(d%10)*16);
 918   3              }
 919   2              else
 920   2              {
 921   3                              Mcs=0;Scs=1;
 922   3                      Disp_Digit(4,8,space); //显示空格
 923   3                      Disp_Digit(4,16,space);    
 924   3              }
 925   2          } 
 926   1              else
 927   1              { 
 928   2              d = Read_One_Byte(0x02);//读取24的分的数值
 929   2                      Mcs=0;Scs=1;
 930   2                      Disp_Digit(4,8,zero+(d/10)*16);
 931   2                      Disp_Digit(4,16,zero+(d%10)*16);
 932   2              }
 933   1      
 934   1              if(Secb==1)  //秒闪烁标志位
 935   1          {
 936   2              if(flag==1)
 937   2              {    
 938   3                      d = Read_One_Byte(0x03);//读取24的秒的数值
 939   3                              Mcs=0;Scs=1;
 940   3                              Disp_Digit(4,32,zero+(d/10)*16);
 941   3                              Disp_Digit(4,40,zero+(d%10)*16);
 942   3              }
 943   2              else
 944   2              {
 945   3                              Mcs=0;Scs=1;
C51 COMPILER V8.05a   NEW                                                                  11/16/2007 20:45:07 PAGE 17  

 946   3                      Disp_Digit(4,32,space); //显示空格
 947   3                      Disp_Digit(4,40,space);    
 948   3              }
 949   2          } 
 950   1              else
 951   1          { 
 952   2              d = Read_One_Byte(0x03);//读取24的秒的数值
 953   2                      Mcs=0;Scs=1;
 954   2                      Disp_Digit(4,32,zero+(d/10)*16);
 955   2                      Disp_Digit(4,40,zero+(d%10)*16);
 956   2          }
 957   1      }
 958          
 959          /******************************************************************************/
 960          void id_case1_key(void)//id为1时的下一级选择
 961          {
 962   1              if(Add_Key == 0) //增加
 963   1          {
 964   2              Delay(100);
 965   2              if(Add_Key == 0)
 966   2                              Set_time(id,0);  //调用Set_time函数
 967   2                              while(Add_Key ==0);
 968   2          }
 969   1              if (Dec_Key==0)  //减少
 970   1          {
 971   2              Delay(100);
 972   2              if(Dec_Key == 0)
 973   2                              Set_time(id,1);  
 974   2                      while(Dec_Key ==0);
 975   2            }
 976   1      }
 977          
 978          /******************************************************************************/
 979          void Set_time(unsigned char sel, bit sel_1) //根据选择调整相应项目并写入DS1302
 980          {
 981   1        signed char address,item;
 982   1        signed char max,mini;
 983   1        if(sel==7)  {address=0x80; max=0;mini=0;}     //秒
 984   1        if(sel==6)  {address=0x82; max=59;mini=0;}    //分钟
 985   1        if(sel==5)  {address=0x84; max=23;mini=0;}    //小时
 986   1        if(sel==3)  {address=0x86; max=31;mini=1;}    //日
 987   1        if(sel==2)  {address=0x88; max=12;mini=1;}    //月
 988   1        if(sel==1)  {address=0x8c; max=99; mini=0;}    //年
 989   1        if(sel==4)  {address=0x8a; max=7;mini=1;}    //星期
 990   1        
 991   1        //读取1302某地址上的数值转换成10进制赋给item 
 992   1        item=((read_clock(address+1))/16)*10 + (read_clock(address+1))%16;
 993   1        if(sel_1==0) 
 994   1              item++;  
 995   1        else
 996   1              item--;
 997   1        if(item>max) item=mini;   
 998   1        if(item<mini) item=max;
 999   1                 
1000   1        write_clock(0x8e,0x00);//允许写操作
1001   1        write_clock(address,(item/10)*16+item%10);//转换成16进制写入1302
1002   1        write_clock(0x8e,0x80);//写保护,禁止写操作  
1003   1      }
1004          
1005          /******************************************************************************/
1006          void id_case2_key(void)//id为1时的下一级选择
1007          {
C51 COMPILER V8.05a   NEW                                                                  11/16/2007 20:45:07 PAGE 18  

1008   1              if(Add_Key == 0) //增加
1009   1          {
1010   2              Delay(100);
1011   2              if(Add_Key == 0)
1012   2                              Set_Bell(id2,0);  //调用Set_time函数
1013   2                              while(Add_Key ==0);
1014   2          }
1015   1              if (Dec_Key==0)  //减少
1016   1          {
1017   2              Delay(100);

⌨️ 快捷键说明

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