challis
发表于 2024-1-27 23:32:33
修改后效果如视频,大量修改时间起来方便多了!
challis
发表于 2024-1-27 23:35:28
功能代码及原理图,芯片为STC-8H8K64U-TSSOP20:
嵌入式之路
发表于 2024-1-28 01:06:05
你这小工具准备的真多哈 哈哈
jackfangxq
发表于 2024-1-28 05:37:39
步骤清晰,内容详细,努力学习
challis
发表于 2024-1-28 22:14:05
嵌入式之路 发表于 2024-1-28 01:06
你这小工具准备的真多哈 哈哈
开发板收到后,在淘宝从华强北买了一堆的小零件,自学没办法,什么都缺,想找个匹配的电阻都没有,我目前电阻只有一包以前买的100Ω的
challis
发表于 2024-1-28 22:15:08
今天实现了闹钟的功能,可以查看闹钟时间,设置闹钟,并且在到对应的时间后进行提示(因为没有蜂鸣器,所以改为了屏幕闪烁来进行提示)
challis
发表于 2024-1-28 22:16:56
现在mode.h中添加4种模式:
Mode_Clock 为显示当前的闹钟时间
Mode_Clock_Change_Minute 为修改闹钟分钟模式
Mode_Clock_Change_Hour 为修改闹钟小时模式
Mode_Clock_Alert 为闹钟时间到了的屏幕闪烁模式
#define Mode_Clock 4
#define Mode_Clock_Change_Minute 5
#define Mode_Clock_Change_Hour 6
#define Mode_Clock_Alert 7
challis
发表于 2024-1-28 22:20:20
在SetSeg4Bit函数中添加对应模式的显示逻辑
Mode_Clock 模式显示闹钟,且不显示冒号(和时间模式进行区分)
Mode_Clock_Change_Minute 模式显示闹钟,且分钟闪烁
Mode_Clock_Change_Hour 模式显示闹钟,且小时闪烁
Mode_Clock_Alert 显示当前时间,且小时分钟都闪烁
void SetSeg4Bit()
{
switch(mode)
{
case Mode_Normal:
SetSeg4BitData_1(Mode_Show_1,is_show_dot);
SetSeg4BitData_2(Mode_Show_2);
break;
case Mode_Change_Minute:
SetSeg4BitData_1(Mode_Show_1,1);
if(is_show_dot)
SetSeg4BitData_2(Mode_Show_2);
else
SetSeg4BitData_2(SEG_NULL);
break;
case Mode_Change_Hour:
if(is_show_dot)
SetSeg4BitData_1(Mode_Show_1,1);
else
SetSeg4BitData_1(SEG_NULL,1);
SetSeg4BitData_2(Mode_Show_2);
break;
case Mode_Clock:
SetSeg4BitData_1(clock_hour,0);
SetSeg4BitData_2(clock_minute);
break;
case Mode_Clock_Change_Minute:
SetSeg4BitData_1(clock_hour,0);
if(is_show_dot)
SetSeg4BitData_2(clock_minute);
else
SetSeg4BitData_2(SEG_NULL);
break;
case Mode_Clock_Change_Hour:
if(is_show_dot)
SetSeg4BitData_1(clock_hour,0);
else
SetSeg4BitData_1(SEG_NULL,0);
SetSeg4BitData_2(clock_minute);
break;
case Mode_Clock_Alert:
if(is_show_dot)
{
SetSeg4BitData_1(Mode_Show_1,1);
SetSeg4BitData_2(Mode_Show_2);
}
else
{
SetSeg4BitData_1(SEG_NULL,0);
SetSeg4BitData_2(SEG_NULL);
}
break;
}
}
challis
发表于 2024-1-28 22:22:05
在clock.h中添加clock_minute和clock_hour的变量定义
uchar clock_minute = 0,clock_hour=0;
challis
发表于 2024-1-28 22:25:17
按钮+的按键响应函数中添加对新增的4种模式的处理:
Mode_Clock_Alert 闹钟时间到时,按键关闭闹钟
Mode_Clock 显示闹钟模式时,按键无响应
Mode_Clock_Change_Minute,Mode_Clock_Change_Hour 修改闹钟小时和分钟时,按键增加闹钟的小时和分钟,并且判断溢出后变0
uchar Btn_Up_Pressed()
{
switch(mode)
{
case Mode_Clock_Alert:
mode = Mode_Normal;
break;
case Mode_Normal:
case Mode_Clock:
return 0;
case Mode_Change_Minute:
if(minute>=59)
minute = 0;
else
++minute;
break;
case Mode_Change_Hour:
if(hour>=23)
hour = 0;
else
++hour;
break;
case Mode_Clock_Change_Minute:
if(clock_minute>=59)
clock_minute = 0;
else
++clock_minute;
break;
case Mode_Clock_Change_Hour:
if(clock_hour>=23)
clock_hour = 0;
else
++clock_hour;
break;
}
second = 0;
return 1;
}
页:
1
2
3
4
5
[6]
7
8
9
10
11