普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 4542|回复: 3

[已解决] 51单片机的ds1302芯片修改时间程序的思路

 关闭 [复制链接]

2

主题

4

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2020-1-1 13:55:52 | 显示全部楼层 |阅读模式
1金钱
求大神给个编程思路,或者程序研究一下
我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 金钱 , 目前已有3人回答

回复

使用道具 举报

20

主题

216

帖子

1115

积分

金牌会员

Rank: 6Rank: 6

积分
1115
发表于 2020-1-3 10:37:33 | 显示全部楼层
参考一下这个

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2020-1-3 16:14:57 | 显示全部楼层
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
void keypros()
{
if(K1==0)    //检测按键K1是否按下
{
  delay(100);   //消除抖动 一般大约10ms
  if(K1==0 && TIME[2] < 36 )  //再次判断按键是否按下 || TIME[2]==26
  {
   TIME[2]++;  
    if (TIME[2]==10   || TIME[2]==26 )
        TIME[2]= TIME[2]+6;
    if (TIME[2]==36 )
        {TIME[2]=0; }
  }
  
   
  while(!K1);  //检测按键是否松开
}  
  if(K2==0)    //检测按键K1是否按下
{
  delay(100);   //消除抖动 一般大约10ms
  if(K2==0 & TIME[1] < 96 )  //再次判断按键是否按下  
  {
   TIME[1]++;
   if (TIME[1]==10 ||(TIME[1]-10)%16==0)
   TIME[1]= TIME[1]+6;  
   if (TIME[1]==96)
       {  TIME[1]=0;  }
  }
  while(!K2);  //检测按键是否松开
}
    if(K3==0)    //检测按键K1是否按下
{
  delay(100);   //消除抖动 一般大约10ms
  if(K3==0 & TIME[1] < 96 )  //再次判断按键是否按下   
  {
   TIME[0]++;
   if (TIME[0]==10 ||(TIME[0]-10)%16==0)
   TIME[0]= TIME[0]+6;  
   if (TIME[0]==96)
       {  TIME[0]=0;  }
  }
  while(!K3);  //检测按键是否松开
}

}
/*******************************************************************************
* 函 数 名       : main
* 函数功能   : 主函数
* 输    入       : 无
* 输    出      : 无
*******************************************************************************/
void main()
{  
// Ds1302Init();
keypros();
while(1)
{
  if (~K1 || ~K2|| ~K3)
  { keypros();
   Ds1302Init();
   DigDisplay();//数码管显示函数
  }
  else
  datapros();  //数据处理函数
  DigDisplay();//数码管显示函数

}  
}

回复

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2020-1-3 16:16:03 | 显示全部楼层
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
void keypros()
{
if(K1==0)    //检测按键K1是否按下
{
  delay(100);   //消除抖动 一般大约10ms
  if(K1==0 && TIME[2] < 36 )  //再次判断按键是否按下 || TIME[2]==26
  {
   TIME[2]++;  
    if (TIME[2]==10   || TIME[2]==26 )
        TIME[2]= TIME[2]+6;
    if (TIME[2]==36 )
        {TIME[2]=0; }
  }
  
   
  while(!K1);  //检测按键是否松开
}  
  if(K2==0)    //检测按键K1是否按下
{
  delay(100);   //消除抖动 一般大约10ms
  if(K2==0 & TIME[1] < 96 )  //再次判断按键是否按下  
  {
   TIME[1]++;
   if (TIME[1]==10 ||(TIME[1]-10)%16==0)
   TIME[1]= TIME[1]+6;  
   if (TIME[1]==96)
       {  TIME[1]=0;  }
  }
  while(!K2);  //检测按键是否松开
}
    if(K3==0)    //检测按键K1是否按下
{
  delay(100);   //消除抖动 一般大约10ms
  if(K3==0 & TIME[1] < 96 )  //再次判断按键是否按下   
  {
   TIME[0]++;
   if (TIME[0]==10 ||(TIME[0]-10)%16==0)
   TIME[0]= TIME[0]+6;  
   if (TIME[0]==96)
       {  TIME[0]=0;  }
  }
  while(!K3);  //检测按键是否松开
}

}
/*******************************************************************************
* 函 数 名       : main
* 函数功能   : 主函数
* 输    入       : 无
* 输    出      : 无
*******************************************************************************/
void main()
{  
// Ds1302Init();
keypros();
while(1)
{
  if (~K1 || ~K2|| ~K3)
  { keypros();
   Ds1302Init();
   DigDisplay();//数码管显示函数
  }
  else
  datapros();  //数据处理函数
  DigDisplay();//数码管显示函数

}  
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-5-4 23:29 , Processed in 0.087607 second(s), 33 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表