带闹钟和花样流水灯的LCD数显实时时钟设计(运用DS1302时钟模块,LCD显示,带万年历,时间到响音乐显示花样流水灯)
万年历显示
按键设置时间、闹钟
闹钟到了后音乐响、流水灯亮,维持10秒后自动关闭
### 1. LCD1602 显示屏连接 - RS (寄存器选择): P2 ^ 6 - RW (读写): P2 ^ 5 - EN (使能): P2 ^ 7 - 数据端口: P0 ^ 0 至 P0 ^ 7 ### 2. 独立按键连接 - 按键1 (KEY_01): P3 ^ 0 - 按键2 (KEY_02): P3 ^ 1 - 按键3 (KEY_03): P3 ^ 2 - 按键4 (KEY_04): P3 ^ 3 ### 3. LED 灯连接 - LED1: P2 ^ 0 - LED2: P2 ^ 1 - LED3: P2 ^ 2 - LED4: P2 ^ 3 - LED5: P2 ^ 4 - LED6: P2 ^ 5 ### 4. DS1302 实时时钟模块连接 - RST (复位): P3 ^ 5 - SCLK (时钟): P3 ^ 6 - IO (数据输入/输出): P3 ^ 4 ### 5. 蜂鸣器连接 - BEEP: P1 ^ 5
这个单片机万年历程序的按键功能如下:
按键 key == 1
:
主要用于切换设置项。
每按一次,set
值加 1(并在 0 到 9 之间循环),对应主页面和设置不同时间参数的界面。
set = 0
表示主页面,set = 1 ~ 6
分别对应秒、分、时、日、月、年的设置,set = 7 ~ 9
对应闹钟的秒、分、时设置。
按键 key == 2
:
主要用于增加当前设置项的值。
根据 set
的值,增加相应的时间参数,比如 set == 1
时增加秒,set == 2
时增加分,依此类推。
对于日期和月份的设置,代码考虑了不同月份的天数及闰年规则。
按键 key == 3
:
主要用于减少当前设置项的值。
同样根据 set
的值,减少相应的时间参数。
日期和月份的减少也考虑了月份天数和闰年的规则。
按键 key == 4
:
退出设置模式,重置 set
为 0 并清除 LCD 显示,回到主界面。
最后调用 set_time(&rtctime);
函数应用设置后的时间,并刷新显示。
这个按键处理程序通过不同的按键实现了对时间和闹钟参数的设置和调整,且在日期设置中包含了对闰年的判断。通过 set
的值来区分不同的设置项目,并用 key
不同的值实现切换、增加、减少和确认操作。
clikehttps://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!