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

📄 zdbwnl.lst

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

 947          /******************************************************************************/
 948          void id_case2_key(void)//id为1时的下一级选择
 949          {
 950   1              if(Add_Key == 0) //增加1
 951   1          {
 952   2              Delay(100);
 953   2              if(Add_Key == 0)
 954   2                              Set_Bell(id2,0);  //调用Set_Bell函数
 955   2                              while(Add_Key ==0);//等待键松开
 956   2          }
 957   1              if(Dec_Key == 0)  //减少1
 958   1          {
 959   2              Delay(100);
 960   2              if(Dec_Key == 0)
 961   2                              Set_Bell(id2,1);  //调用Set_Bell函数
 962   2                      while(Dec_Key ==0);//等待键松开
 963   2            }
 964   1      }
 965          
 966          /******************************************************************************/
 967          void Set_Bell(unsigned char sel, bit sel_1)//根据选择调整相应项目并写入
 968          {
 969   1        signed char address,item;
 970   1        signed char max,mini;
 971   1        if(sel==4)  {address=0xc6; max=59;mini=0;}    //秒
 972   1        if(sel==3)  {address=0xc4; max=59;mini=0;}    //分
 973   1        if(sel==2)  {address=0xc2; max=23; mini=0;}   //时
 974   1        if(sel==1)                                                                    //标志位
 975   1        {
 976   2              address=0xc8;//for read
 977   2              if(Add_Key ==0 || Dec_Key ==0)
 978   2              Bell_Swh=~Bell_Swh;
 979   2              write_clock(address,Bell_Swh);
 980   2        }    //开关
 981   1      
 982   1        item=((read_clock(address+1))/16)*10 + (read_clock(address+1))%16;
 983   1        if(sel_1==0) 
 984   1              item++;  
 985   1        else
 986   1              item--;
 987   1        if(item>max) item=mini;   
 988   1        if(item<mini) item=max;
 989   1      
 990   1        write_clock(0x8e,0x00);//允许写操作
 991   1        write_clock(address,(item/10)*16+item%10);//转换成16进制写入1302
 992   1        write_clock(0x8e,0x80);//写保护,禁止写操作 
 993   1      }
 994          
 995          /******************************************************************************/
 996          void Timer0_Init(void)//定时器0初始化
 997          {
 998   1              TMOD=0x01;
 999   1              TH0=(65535-50000)/256;
1000   1              TL0=(65535-50000)%256;
1001   1              EA=1;
1002   1              ET0=1; 
1003   1              TR0=1;
1004   1      }
1005          
1006          /******************************************************************************/
1007          void Timer0(void) interrupt 1 using 1//中断入口,冒号闪烁
1008          {
C51 COMPILER V8.05a   ZDBWNL                                                               10/13/2008 19:59:37 PAGE 18  

1009   1              static unsigned char timecount = 0;
1010   1      
1011   1              TH0=(65535-50000)/256; //50ms定时
1012   1              TL0=(65535-50000)%256;  
1013   1              timecount++;
1014   1              if(timecount > 9)//500MS
1015   1              {
1016   2              timecount = 0;    
1017   2              flag = ~flag;          
1018   2          }
1019   1      }
1020          
1021          /******************************************************************************/
1022          void Init_1302(void)//设置1302的初始时间
1023          {
1024   1              write_clock(0x8e,0x00);//允许写操作
1025   1              write_clock(0x8c,0x05);//年
1026   1              write_clock(0x8a,0x06);//星期
1027   1              write_clock(0x88,0x01);//月
1028   1              write_clock(0x86,0x01);//日
1029   1              write_clock(0x84,0x12);//小时
1030   1              write_clock(0x82,0x00);//分钟
1031   1              write_clock(0x80,0x00);//秒
1032   1              write_clock(0x90,0xa5);//充电   
1033   1              write_clock(0x8e,0x80);//禁止写操作
1034   1      }
1035          
1036          /******************************************************************************/
1037          void Lcd_Mark1(void)//在预定的位置上写入汉字
1038          {
1039   1              Clr_Scr();//清屏
1040   1              frame();//显示边框
1041   1              Mcs=1;Scs=0;
1042   1              Disp_Chinese(5,8,shi);//显示室温,星期,年, . ,℃
1043   1              Disp_Chinese(5,24,wen);
1044   1              Disp_Chinese(3,8,xing);
1045   1              Disp_Chinese(3,24,qi);
1046   1              Disp_Chinese(1,40,nian);
1047   1              Disp_Digit(5,56,point);
1048   1              Mcs=0;Scs=1;
1049   1              Disp_Chinese(5,8,sheshidu);
1050   1              if(Bell_Swh == 1)//闹钟为开
1051   1              {       
1052   2                      Mcs=0;Scs=1;
1053   2                      Disp_Chinese(5,40,biaozhi);//显示闹钟图标
1054   2              }
1055   1      }
1056          
1057          /******************************************************************************/
1058          void Lcd_Mark2(void)
1059          {
1060   1              Clr_Scr();//清屏
1061   1              frame();//显示边框
1062   1              
1063   1              Mcs=1;Scs=0;//显示闹钟设定等几个汉字
1064   1              Disp_Chinese(2,16,nao);
1065   1              Disp_Chinese(2,32,zhong);
1066   1              Disp_Chinese(2,48,she);
1067   1              Mcs=0;Scs=1;
1068   1              Disp_Chinese(2,0,ding);
1069   1              Disp_Digit(4,0,maohao);//显示:
1070   1              Disp_Digit(4,24,maohao);        
C51 COMPILER V8.05a   ZDBWNL                                                               10/13/2008 19:59:37 PAGE 19  

1071   1      }
1072          
1073          /******************************************************************************/
1074          void Beep(void)//BELL 蜂明器发声,整点报警
1075          {
1076   1              Bell_Out = 0;
1077   1              Delay(6000);//50ms
1078   1              Bell_Out = 1;
1079   1              Delay(6000);//50ms
1080   1      }
1081                  
1082          /*****************************************************************************/
1083          void Bell_now(void)
1084          {
1085   1              Bell_Out = 0;
1086   1              Delay(31250); //for 250ms
1087   1              Bell_Out = 1;
1088   1              Delay(6350); //50ms
1089   1              Bell_Out = 0;
1090   1              Delay(18750);//150ms
1091   1              Bell_Out = 1;
1092   1          Delay(50000);//400ms
1093   1      }
1094          
1095          /******************************************************************************/
1096          void main(void) //主函数 
1097          {
1098   1              //初始化状态
1099   1              Bell_Out = 1;//蜂明器关闭
1100   1              Bak_Light = 0;//开机背光开
1101   1      
1102   1              Timer0_Init();
1103   1              Init_lcd();//设置液晶显示器
1104   1      
1105   1              Clr_Scr();//清屏
1106   1              Disp_Img(logo); //显示湘灵电子LOGO开机画面
1107   1              Delay12864(60000);//Delay 4s
1108   1      
1109   1              Bak_Light = 1;//关闭背光
1110   1              Bell_Swh = read_clock(0xc9);//读取开,关的状态
1111   1              Lcd_Mark1();
1112   1      
1113   1              while(1)//主循环
1114   1              {       
1115   2                      //设置时钟的初始值,显示05年1月1号星期六12:00:00
1116   2                      if(Rst_Key == 0)//按下系统复位键,S4
1117   2                      {
1118   3                              Delay(1000);//延时消抖
1119   3                              if(Rst_Key == 0)
1120   3                              {
1121   4                                      Init_1302();//初始化时钟
1122   4                              }
1123   3                      }
1124   2      
1125   2                      if(OK_Key == 0 && Dec_Key ==0 )//进入闹钟设置界面
1126   2                      {
1127   3                              Delay12864(100);
1128   3                              if(OK_Key == 0 && Dec_Key ==0 )
1129   3                              {
1130   4                                      Lcd_Mark2();
1131   4                                      if(Bell_Swh == 0){Mcs=0;Scs=1;Disp_Chinese(2,32,guan);}//关
1132   4                                      else  {Mcs=0;Scs=1;Disp_Chinese(2,32,kai);}
C51 COMPILER V8.05a   ZDBWNL                                                               10/13/2008 19:59:37 PAGE 20  

1133   4                                      while(1)
1134   4                                      {       
1135   5                                              if (OK_Key == 0) // 设置和选择项目键
1136   5                                      {       
1137   6                                                      Delay(1000);
1138   6                                              if(OK_Key == 0)
1139   6                                                      {
1140   7                                                              id2++;if(id2>5) id2=0;
1141   7                                                      }
1142   6                                              while(OK_Key == 0);//等待键松开   
1143   6                                          }
1144   5                                              switch( id2 )
1145   5                                              {
1146   6                                                      case 0:Disp2();break;//正常显示
1147   6                                                      case 1:Kgb = 1;id_case2_key();Disp2();break;//开关
1148   6                                                      case 2:Kgb= 0;Hourb=1;id_case2_key();Disp2();break;//
1149   6                                                      case 3:Hourb=0;Minb=1;id_case2_key();Disp2();break;
1150   6                                                      case 4:Minb=0;Secb=1;id_case2_key();Disp2();break;
1151   6                                                      case 5:Secb=0;id2 = 0;Lcd_Mark1();goto FF;break;//返回主界面
1152   6                                                      default:break;
1153   6                                              }
1154   5                                      }//while(1)
1155   4                              }//if
1156   3                      }//if
1157   2      /*****************************************/
1158   2                      FF:   //返回主界面
1159   2      /*****************************************/                     
1160   2                      if(flag == 0)
1161   2                      {
1162   3                              Mcs=0;Scs=1;
1163   3                              Disp_Digit(3,8,maohao);// :闪烁 
1164   3                              Disp_Digit(3,32,maohao);
1165   3                      }
1166   2                      else 
1167   2                      {
1168   3                              Mcs=0;Scs=1;
1169   3                              Disp_Digit(3,8,space);//显示空格
1170   3                              Disp_Digit(3,32,space); 
1171   3                      }
1172   2                      if (OK_Key == 0) // 设置和选择项目键
1173   2              {
1174   3                      Delay(1000);
1175   3                      if(OK_Key == 0)
1176   3                              {
1177   4                                      id++;if(id>7)id=0;      
1178   4                              }
1179   3                      while(OK_Key == 0);//等待键松开    
1180   3              }
1181   2              switch( id )
1182   2              {
1183   3                      case 0:sec = 0; Disp( );break;//正常显示
1184   3                      case 1:year = 1;id_case1_key();Disp();break;//年        
1185   3                              case 2:year=0;mon=1;id_case1_key();Disp();break;//月
1186   3                  case 3:mon=0;day=1;id_case1_key();Disp();break;  //日 
1187   3                      case 4:day=0;weekk=1;id_case1_key();Disp();break;//星期     
1188   3                      case 5:weekk=0;hour=1;id_case1_key();Disp();break;  //小时
1189   3                      case 6:hour=0;min=1;id_case1_key();Disp();break; //分钟
1190   3                      case 7:min=0;sec=1;id_case1_key();Disp();break; //秒
1191   3                      default:break;  

⌨️ 快捷键说明

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