找回密码
 立即注册
楼主: challis

从零开始做一个数码管时钟-开天斧,程序开源 | 已完结

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:247
  • 最近打卡:2025-02-25 19:02:50

13

主题

198

回帖

1175

积分

金牌会员

积分
1175
发表于 2024-1-27 23:32:33 | 显示全部楼层
修改后效果如视频,大量修改时间起来方便多了!

VID_20240127_224033~1.mp4

1.62 MB, 下载次数: 55

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:247
  • 最近打卡:2025-02-25 19:02:50

13

主题

198

回帖

1175

积分

金牌会员

积分
1175
发表于 2024-1-27 23:35:28 | 显示全部楼层
功能代码及原理图,芯片为STC-8H8K64U-TSSOP20:

MyClock.zip

89.26 KB, 下载次数: 74

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-04-30 10:57:37

17

主题

533

回帖

1326

积分

金牌会员

积分
1326
发表于 2024-1-28 01:06:05 | 显示全部楼层
你这小工具准备的真多哈 哈哈
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:522
  • 最近打卡:2025-05-01 06:03:55
已绑定手机

34

主题

459

回帖

2215

积分

金牌会员

积分
2215
发表于 2024-1-28 05:37:39 来自手机 | 显示全部楼层
步骤清晰,内容详细,努力学习
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:247
  • 最近打卡:2025-02-25 19:02:50

13

主题

198

回帖

1175

积分

金牌会员

积分
1175
发表于 2024-1-28 22:14:05 | 显示全部楼层
嵌入*** 发表于 2024-1-28 01:06
你这小工具准备的真多哈 哈哈

开发板收到后,在淘宝从华强北买了一堆的小零件,自学没办法,什么都缺,想找个匹配的电阻都没有,我目前电阻只有一包以前买的100Ω的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:247
  • 最近打卡:2025-02-25 19:02:50

13

主题

198

回帖

1175

积分

金牌会员

积分
1175
发表于 2024-1-28 22:15:08 | 显示全部楼层
今天实现了闹钟的功能,可以查看闹钟时间,设置闹钟,并且在到对应的时间后进行提示(因为没有蜂鸣器,所以改为了屏幕闪烁来进行提示)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:247
  • 最近打卡:2025-02-25 19:02:50

13

主题

198

回帖

1175

积分

金牌会员

积分
1175
发表于 2024-1-28 22:16:56 | 显示全部楼层
现在mode.h中添加4种模式:
Mode_Clock 为显示当前的闹钟时间
Mode_Clock_Change_Minute 为修改闹钟分钟模式
Mode_Clock_Change_Hour 为修改闹钟小时模式
Mode_Clock_Alert 为闹钟时间到了的屏幕闪烁模式
  1. #define Mode_Clock 4
  2. #define Mode_Clock_Change_Minute 5
  3. #define Mode_Clock_Change_Hour 6
  4. #define Mode_Clock_Alert 7
复制代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:247
  • 最近打卡:2025-02-25 19:02:50

13

主题

198

回帖

1175

积分

金牌会员

积分
1175
发表于 2024-1-28 22:20:20 | 显示全部楼层
在SetSeg4Bit函数中添加对应模式的显示逻辑
Mode_Clock 模式显示闹钟,且不显示冒号(和时间模式进行区分)
Mode_Clock_Change_Minute 模式显示闹钟,且分钟闪烁
Mode_Clock_Change_Hour 模式显示闹钟,且小时闪烁
Mode_Clock_Alert 显示当前时间,且小时分钟都闪烁
  1. void SetSeg4Bit()
  2. {
  3.     switch(mode)
  4.     {
  5.     case Mode_Normal:
  6.         SetSeg4BitData_1(Mode_Show_1,is_show_dot);
  7.         SetSeg4BitData_2(Mode_Show_2);
  8.         break;
  9.     case Mode_Change_Minute:
  10.         SetSeg4BitData_1(Mode_Show_1,1);
  11.         if(is_show_dot)
  12.             SetSeg4BitData_2(Mode_Show_2);
  13.         else
  14.             SetSeg4BitData_2(SEG_NULL);
  15.         break;
  16.     case Mode_Change_Hour:
  17.         if(is_show_dot)
  18.             SetSeg4BitData_1(Mode_Show_1,1);
  19.         else
  20.             SetSeg4BitData_1(SEG_NULL,1);
  21.         SetSeg4BitData_2(Mode_Show_2);
  22.         break;
  23.     case Mode_Clock:
  24.         SetSeg4BitData_1(clock_hour,0);
  25.         SetSeg4BitData_2(clock_minute);
  26.         break;
  27.     case Mode_Clock_Change_Minute:
  28.         SetSeg4BitData_1(clock_hour,0);
  29.         if(is_show_dot)
  30.             SetSeg4BitData_2(clock_minute);
  31.         else
  32.             SetSeg4BitData_2(SEG_NULL);
  33.         break;
  34.     case Mode_Clock_Change_Hour:
  35.         if(is_show_dot)
  36.             SetSeg4BitData_1(clock_hour,0);
  37.         else
  38.             SetSeg4BitData_1(SEG_NULL,0);
  39.         SetSeg4BitData_2(clock_minute);
  40.         break;
  41.     case Mode_Clock_Alert:
  42.         if(is_show_dot)
  43.         {
  44.             SetSeg4BitData_1(Mode_Show_1,1);
  45.             SetSeg4BitData_2(Mode_Show_2);
  46.         }
  47.         else
  48.         {
  49.             SetSeg4BitData_1(SEG_NULL,0);
  50.             SetSeg4BitData_2(SEG_NULL);
  51.         }
  52.         break;
  53.     }
  54. }
复制代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:247
  • 最近打卡:2025-02-25 19:02:50

13

主题

198

回帖

1175

积分

金牌会员

积分
1175
发表于 2024-1-28 22:22:05 | 显示全部楼层
在clock.h中添加clock_minute和clock_hour的变量定义
  1. uchar clock_minute = 0,clock_hour=0;
复制代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:247
  • 最近打卡:2025-02-25 19:02:50

13

主题

198

回帖

1175

积分

金牌会员

积分
1175
发表于 2024-1-28 22:25:17 | 显示全部楼层
按钮+的按键响应函数中添加对新增的4种模式的处理:
Mode_Clock_Alert 闹钟时间到时,按键关闭闹钟
Mode_Clock 显示闹钟模式时,按键无响应
Mode_Clock_Change_Minute,Mode_Clock_Change_Hour 修改闹钟小时和分钟时,按键增加闹钟的小时和分钟,并且判断溢出后变0
  1. uchar Btn_Up_Pressed()
  2. {
  3.     switch(mode)
  4.     {
  5.     case Mode_Clock_Alert:
  6.         mode = Mode_Normal;
  7.             break;
  8.     case Mode_Normal:
  9.     case Mode_Clock:
  10.    
  11.         return 0;
  12.     case Mode_Change_Minute:
  13.         if(minute>=59)
  14.             minute = 0;
  15.         else
  16.             ++minute;
  17.         break;
  18.     case Mode_Change_Hour:
  19.         if(hour>=23)
  20.             hour = 0;
  21.         else
  22.             ++hour;
  23.         break;
  24.     case Mode_Clock_Change_Minute:
  25.         if(clock_minute>=59)
  26.             clock_minute = 0;
  27.         else
  28.             ++clock_minute;
  29.         break;
  30.     case Mode_Clock_Change_Hour:
  31.         if(clock_hour>=23)
  32.             clock_hour = 0;
  33.         else
  34.             ++clock_hour;
  35.         break;
  36.     }
  37.     second = 0;
  38.     return 1;
  39. }
复制代码
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 04:40 , Processed in 0.152538 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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