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

📄 ref1.c

📁 this is the reference code of DS1302
💻 C
📖 第 1 页 / 共 3 页
字号:
#                                   if(temp==-1)   
#                                   temp=0x23;   
#                                   break;   
#                            case 4:   
#                                   temp=Read1302(DS1302_WEEK);  //读?星?数   
#                                   temp=temp-1;  //星?数减1   
#                                   down_flag=1;   
#                                   if(temp==0)   
#                                   temp=0x7;;   
#                                   break;   
#                            case 5:   
#                                   temp=Read1302(DS1302_DAY);  //读??数   
#                                   temp=temp-1;  //?数减1   
#                                   down_flag=1;   
#                                   if(temp==0)   
#                                   temp=31;   
#                                   break;   
#                            case 6:   
#                                   temp=Read1302(DS1302_MONTH);  //读?月数   
#                                   temp=temp-1;  //月数减1   
#                                   down_flag=1;   
#                                   if(temp==0)   
#                                   temp=12;   
#                                   break;   
#                            case 7:   
#                                   temp=Read1302(DS1302_YEAR);  //读?年数   
#                                   temp=temp-1;  //年数减1   
#                                   down_flag=1;   
#                                   if(temp==-1)   
#                                   temp=0x85;   
#                                   break;   
#                           default:break;   
#                          }   
#                         
#                    while(Down==0);   
#                    while(wireless_3==1);   
#                   }   
# }   
#    
# void Setkey()//模式选择按键   
# {   
#         Set=1;   
#         if(Set==0||wireless_4==1)   
#         {   
#            mdelay(8);   
#            count=count+1;    //Setkey按一次,count就加1   
#            done=1;           //进?调整模式   
#            while(Set==0);   
#            while(wireless_4==1);   
#          }   
#    
# }   
#    
# void keydone()//按键功能执行   
# {        uchar Second;   
#          if(flag==0)    //关闭时钟,停止计时   
#          { Write1302(0x8e,0x00); //写?允许   
#            temp=Read1302(0x80);   
#            Write1302(0x80,temp|0x80);   
#            Write1302(0x8e,0x80); //禁止写?   
#            flag=1;   
#          }   
#          Setkey();                          //扫描模式?换按键   
#          switch(count)   
#          {case 1:do                         //count=1,调整秒   
#                   {   
#                    outkey();               //扫描跳出按钮   
#                    Upkey();                //扫描加按钮   
#                    Downkey();              //扫描减按钮   
#                    if(up_flag==1||down_flag==1)  //数据更新,重新写?新的数据   
#                    {   
#                    Write1302(0x8e,0x00); //写?允许   
#                    Write1302(0x80,temp|0x80); //写?新的秒数   
#                    Write1302(0x8e,0x80); //禁止写?   
#                    up_flag=0;   
#                    down_flag=0;   
#                    }   
#    
#                    hide_sec++;          //位闪计数   
#                    if(hide_sec>3)   
#                      hide_sec=0;   
#                    show_time();         //液晶显示数据   
#                   }while(count==2);break;     
#           case 2:do                         //count=2,调整分   
#                   {   
#                    hide_sec=0;   
#                    outkey();   
#                    Upkey();   
#                    Downkey();   
#                    if(temp>0x60)   
#                      temp=0;   
#                    if(up_flag==1||down_flag==1)   
#                    {   
#                    Write1302(0x8e,0x00); //写?允许   
#                    Write1302(0x82,temp); //写?新的分数   
#                    Write1302(0x8e,0x80); //禁止写?   
#                    up_flag=0;   
#                    down_flag=0;   
#                    }   
#                    hide_min++;   
#                    if(hide_min>3)   
#                      hide_min=0;   
#                    show_time();   
#                   }while(count==3);break;   
#           case 3:do                         //count=3,调整小时   
#                   {   
#                    hide_min=0;    
#                    outkey();   
#                    Upkey();   
#                    Downkey();   
#                    if(up_flag==1||down_flag==1)   
#                    {   
#                    Write1302(0x8e,0x00); //写?允许   
#                    Write1302(0x84,temp); //写?新的小时数   
#                    Write1302(0x8e,0x80); //禁止写?   
#                    up_flag=0;   
#                    down_flag=0;   
#                    }   
#                    hide_hour++;   
#                    if(hide_hour>3)   
#                      hide_hour=0;   
#                    show_time();   
#                   }while(count==4);break;   
#           case 4:do                         //count=4,调整星?   
#                   {   
#                    hide_hour=0;    
#                    outkey();   
#                    Upkey();   
#                    Downkey();   
#                    if(up_flag==1||down_flag==1)   
#                    {   
#                    Write1302(0x8e,0x00); //写?允许   
#                    Write1302(0x8a,temp); //写?新的星?数   
#                    Write1302(0x8e,0x80); //禁止写?   
#                    up_flag=0;   
#                    down_flag=0;   
#                    }   
#                    hide_week++;   
#                    if(hide_week>3)   
#                      hide_week=0;   
#                    show_time();   
#                   }while(count==5);break;   
#           case 5:do                         //count=5,调整?   
#                   {   
#                    hide_week=0;    
#                    outkey();   
#                    Upkey();   
#                    Downkey();   
#                    if(up_flag==1||down_flag==1)   
#                    {   
#                    Write1302(0x8e,0x00); //写?允许   
#                    Write1302(0x86,temp); //写?新的?数   
#                    Write1302(0x8e,0x80); //禁止写?   
#                    up_flag=0;   
#                    down_flag=0;   
#                    }   
#                    hide_day++;   
#                    if(hide_day>3)   
#                      hide_day=0;   
#                    show_time();   
#                   }while(count==6);break;   
#           case 6:do                         //count=6,调整月   
#                   {   
#                    hide_day=0;    
#                    outkey();   
#                    Upkey();   
#                    Downkey();   
#                    if(up_flag==1||down_flag==1)   
#                    {   
#                    Write1302(0x8e,0x00); //写?允许   
#                    Write1302(0x88,temp); //写?新的月数   
#                    Write1302(0x8e,0x80); //禁止写?   
#                    up_flag=0;   
#                    down_flag=0;   
#                    }   
#                    hide_month++;   
#                    if(hide_month>3)   
#                      hide_month=0;   
#                    show_time();   
#                   }while(count==7);break;   
#           case 7:do                         //count=7,调整年   
#                   {   
#                    hide_month=0;    
#                    outkey();   
#                    Upkey();   
#                    Downkey();   
#                    if(up_flag==1||down_flag==1)   
#                    {   
#                    Write1302(0x8e,0x00); //写?允许   
#                    Write1302(0x8c,temp); //写?新的年数   
#                    Write1302(0x8e,0x80); //禁止写?   
#                    up_flag=0;   
#                    down_flag=0;   
#                    }   
#                    hide_year++;   
#                    if(hide_year>3)   
#                      hide_year=0;   
#                    show_time();   
#                   }while(count==8);break;   
#           case 8: count=0;hide_year=0;  //count8, 跳出调整模式,返回默ˇ显示状态   
#                   Second=Read1302(DS1302_SECOND);   
#                   Write1302(0x8e,0x00); //写?允许   
#                   Write1302(0x80,Second&0x7f);   
#                   Write1302(0x8E,0x80);          //禁止写?   
#                   done=0;   
#           break; //count=7,开?中断,标志位置0并退出   
#           default:break;   
#    
#          }   
#    
# }   
#    
#    
# void show_time()   //液晶显示程序   
# {   
#   DS1302_GetTime(&CurrentTime);  //获?时钟芯(2)的时间数据   
#   TimeToStr(&CurrentTime);       //时间数据转换液晶字符   
#   DateToStr(&CurrentTime);       //??数据转换液晶字符   
#   ReadTemp();                    //开?温度采集程序   
#   temp_to_str();                 //温度数据转换成液晶字符   
#   GotoXY(12,1);                  //液晶字符显示位置   
#   Print(TempBuffer);             //显示温度   
#   GotoXY(0,1);   
#   Print(CurrentTime.TimeString); //显示时间   
#   GotoXY(0,0);   
#   Print(CurrentTime.DateString); //显示??   
#   GotoXY(15,0);   
#   Print(week_value);             //显示星?   
#   GotoXY(11,0);   
#   Print("Week");    //在液晶上显示 字母 week   
#   Delay1ms(400);                 //扫描延时   
# }   
#    
#    
#    
# main()   
# {   
#     flag=1;           //时钟停止标志   
#     LCD_Initial();    //液晶初始化   
#     Init_DS18B20( ) ;      //DS18B20初始化   
#     Initial_DS1302(); //时钟芯(2)初始化   
#     up_flag=0;   
#     down_flag=0;   
#     done=0;           //进?默ˇ液晶显示   
#     wireless_1=0;   
#     wireless_2=0;   
#     wireless_3=0;   
#     wireless_4=0;   
#     while(1)   
#     {      
#         while(done==1)   
#           keydone();    //进?调整模式   
#         while(done==0)   
#         {     
#             show_time();                //液晶显示数据   
#             flag=0;                     
#             Setkey();                //扫描各功能键   
#         }   
#     }   
# }   
#    
#    
#    
#    
# </count;i++)></intrins.h></reg51.h>

⌨️ 快捷键说明

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