极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10275|回复: 1

怎么用一个按键控制4位数码管时钟的从00:00开始?而我这个程序我用按键控制,它不...

[复制链接]
发表于 2017-4-6 15:49:42 | 显示全部楼层 |阅读模式
本帖最后由 弘毅 于 2017-4-6 16:05 编辑

怎么用一个按键控制4位数码管时钟的从00:00开始?而我这个程序我用按键控制,它不受控制的?
[kenrobot_code]#include <TimerOne.h>
#include "TM1637.h"
char ON='1';
char OFF="0";
int8_t TimeDisp[] ={0,1,2,3};
unsigned char ClockPoint = 1;
unsigned char Update;
unsigned char halfsecond = 0;
unsigned char second = 0;
unsigned char minute = 0;
char CLK=A1;//pins definitions for TM1637 and can be changed to other ports   
char DIO=A0;
TM1637 tm1637(CLK,DIO);
void setup()
{pinMode(14,OUTPUT);
digitalWrite(14,HIGH);

  tm1637.set();
  tm1637.init();
  Timer1.initialize(500000);//timing for 500ms
  Timer1.attachInterrupt(TimingISR);//declare the interrupt serve routine:TimingISR  
}
void loop()
{
   if(Update == ON)
  {
    TimeUpdate();
    tm1637.display(TimeDisp);
  }
  if(minute == 1)
  {Update = OFF;
  digitalWrite(14,LOW);
  }
}
void TimingISR()
{
  halfsecond++;
  Update = ON;
  if(halfsecond == 2){
    second ++;
    if(second == 60)
    {
      minute++;
      if(minute == 1)
      {

      }
      second = 0;
    }
    halfsecond = 0;  
  }
// Serial.println(second)
ClockPoint = (~ClockPoint) & 0x01;
}

void TimeUpdate(void)
{
  if(ClockPoint)tm1637.point(POINT_ON);
  else tm1637.point(POINT_OFF);
  TimeDisp[0] = minute / 10;
  TimeDisp[1] = minute % 10;
  TimeDisp[2] = second / 10;
  TimeDisp[3] = second % 10;
  Update = OFF;
}[/kenrobot_code]
回复

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-24 08:53 , Processed in 0.048871 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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