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

本文主要是介绍【TB作品】普中V2,数字时钟万年历显示,音乐闹钟,流水灯,Proteus仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 功能
  • 硬件原理图
    • LCD1602
    • 独立按键
    • LED灯
    • ds1302
    • 蜂鸣器
  • 引脚汇总
  • 按键功能
  • code

在这里插入图片描述

功能

带闹钟和花样流水灯的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

https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2

这篇关于【TB作品】普中V2,数字时钟万年历显示,音乐闹钟,流水灯,Proteus仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097827

相关文章

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

C# dateTimePicker 显示年月日,时分秒

dateTimePicker默认只显示日期,如果需要显示年月日,时分秒,只需要以下两步: 1.dateTimePicker1.Format = DateTimePickerFormat.Time 2.dateTimePicker1.CustomFormat = yyyy-MM-dd HH:mm:ss Tips:  a. dateTimePicker1.ShowUpDown = t

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d

AIGC6: 走进腾讯数字盛会

图中是一个程序员,去参加一个技术盛会。AI大潮下,五颜六色,各种不确定。 背景 AI对各行各业的冲击越来越大,身处职场的我也能清晰的感受到。 我所在的行业为全球客服外包行业。 业务模式为: 为国际跨境公司提供不同地区不同语言的客服外包解决方案,除了人力,还有软件系统。 软件系统主要是提供了客服跟客人的渠道沟通和工单管理,内部管理跟甲方的合同对接,绩效评估,BI数据透视。 客服跟客人