【TB作品】普中V2,数字时钟万年历显示,音乐闹钟,流水灯,Proteus仿真

文章目录

功能

带闹钟和花样流水灯的LCD数显实时时钟设计(运用DS1302时钟模块,LCD显示,带万年历,时间到响音乐显示花样流水灯)

万年历显示

按键设置时间、闹钟

闹钟到了后音乐响、流水灯亮,维持10秒后自动关闭

硬件原理图

LCD1602

独立按键

LED灯

ds1302

蜂鸣器


引脚汇总

复制代码
### 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

按键功能

这个单片机万年历程序的按键功能如下:

  1. 按键 key == 1

    • 主要用于切换设置项。
    • 每按一次,set 值加 1(并在 0 到 9 之间循环),对应主页面和设置不同时间参数的界面。
    • set = 0 表示主页面,set = 1 ~ 6 分别对应秒、分、时、日、月、年的设置,set = 7 ~ 9 对应闹钟的秒、分、时设置。
  2. 按键 key == 2

    • 主要用于增加当前设置项的值。
    • 根据 set 的值,增加相应的时间参数,比如 set == 1 时增加秒,set == 2 时增加分,依此类推。
    • 对于日期和月份的设置,代码考虑了不同月份的天数及闰年规则。
  3. 按键 key == 3

    • 主要用于减少当前设置项的值。
    • 同样根据 set 的值,减少相应的时间参数。
    • 日期和月份的减少也考虑了月份天数和闰年的规则。
  4. 按键 key == 4

    • 退出设置模式,重置 set 为 0 并清除 LCD 显示,回到主界面。
    • 最后调用 set_time(&rtctime); 函数应用设置后的时间,并刷新显示。

这个按键处理程序通过不同的按键实现了对时间和闹钟参数的设置和调整,且在日期设置中包含了对闰年的判断。通过 set 的值来区分不同的设置项目,并用 key 不同的值实现切换、增加、减少和确认操作。

code

clike 复制代码
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
相关推荐
hazy1k2 天前
51单片机基础-最小系统设计
stm32·单片机·嵌入式硬件·mcu·51单片机·proteus
西贝爱学习8 天前
Proteus8.17安装包,推荐教程
proteus
资料,小偿10 天前
8086微机原理与汇编语言,8086程序设计,EMU8086,MASM,汇编程序设计,proteus
汇编·51单片机·proteus
易享电子22 天前
基于单片机车窗环境监测控制系统Proteus仿真(含全部资料)
单片机·嵌入式硬件·fpga开发·51单片机·proteus
iCxhust23 天前
Proteus8.3打开前期项目版本的方法和步骤
proteus
易享电子24 天前
基于单片机大棚浇水灌溉控制系统Proteus仿真(含全部资料)
单片机·嵌入式硬件·fpga开发·51单片机·proteus
易享电子1 个月前
基于单片机智能台灯(调光,时钟)系统Proteus仿真(含全部资料)
单片机·嵌入式硬件·fpga开发·51单片机·proteus
易享电子1 个月前
基于单片机电器断路器保护器系统Proteus仿真(含全部资料)
单片机·嵌入式硬件·fpga开发·51单片机·proteus
逼子格1 个月前
【Proteus仿真】虚拟终端出现乱码问题解决
单片机·嵌入式硬件·proteus·嵌入式·硬件工程·电路仿真·虚拟终端
猫头虎2 个月前
2025最新超详细FreeRTOS入门教程:第十三章 FreeRTOS临界区与原子操作
stm32·单片机·嵌入式硬件·物联网·51单片机·proteus·iot