电子竞赛5——作息时间控制器

一 . 题目要求

  1. 用单片机制作作息时间控制器;
  2. 用四位数码管显示实时时钟(时、分,24小时制、12小时制),有秒闪,小时十位有零消隐;
  3. 可用数字键或+、-键校时(可快速+、-)被校位(时、分)闪烁;
  4. 作息时间可设定(最多16个时间点),可以任意查询、添加、删除;
  5. 设定时间到,发出提示音(5秒),时钟显示闪烁。

设计思考

设计要求使用的单片机是51系列的单片机,并提供了键盘和数码管显示的印刷电路板,所以我们首先制作一个单片机的最小系统,将最小系统的PIN脚引出通过线和键盘,数码管的电路板相连接,软件方面是初始化,然后按键扫描,并输出键值和键盘被按下的信息,后面的程序依据此进行判断,执行相应的操作的,数码管刷新的程序放在定时器0中,记时的功能放在了这个定时器1中。

三. 电路原理

硬件部分

  1. 单片机最小系统

电源:单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚,电容C4为退耦电容。

振荡电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚即可。

复位(RST,第9引脚):只要在RESET引脚上出现了持续24个时钟振荡脉冲(两个机器周期)以上的高电平,单片机就能够实现复位。

蜂鸣器电路:使用P20引脚控制三极管驱动蜂鸣器工作发出提示音。

  1. 按键电路

电路使用4*4矩阵式键盘进行按键控制,先令D1为高电平D2、D3、D4为低电平,扫描D5、D6、D7、D8的状态,令D2、D3、D4依次为高电平,扫描D5、D6、D7、D8的状态,则可知道是那个按键按下。

  1. 数码管驱动电路

从P0口输出时要加上上拉电阻(RP1),P0口输出的是段选码,P1口输出的是位选码。P0口控制数码管显示的数据,P1口控制六位数码管的选通,当循环的频率十分快时,在人的肉眼看来是六位数码管都是同时工作。

软件部分

主流程图

子程序流程图

按键处理

按键扫描

四.调试及总结

程序调试时,蜂鸣器发声不太正常,由于单片机输出带负载能力较差,后来改进电路,程序编写过程中出现了数据存储器不足问题,使用了较多的全局变量,后来虽然一定程度上改进了,但数据存储器的空间剩下的仍然不多,段码的编写一开始直接试,效率较低,以后应先分析引脚的功能,然后编程,提高效率,在程序开始部分应对程序中用到的pin脚的定义,增强可读性,对一些常用缩写定义方便使用的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ARMv8/ARMv9 硬件加速系列 4 -- 加解密 Cryptographic Extension 介绍】

文章目录 ARMv8.0 Cryptographic ExtensionFEAT_AESFEAT_PMULLFEAT_SHA1FEAT_SHA256ARMv8.2 扩展FEAT_SHA512FEAT_SHA3FEAT_SM3FEAT_SM4ARMv8.0 Cryptographic Extension ARMv8.0引入了加密扩展(Cryptographic Extension),旨在加速加密和解密操作。这一扩展通过新增专用指令…

redis雪崩问题怎么解决

Redis雪崩问题通常发生在大量缓存同时过期,导致所有请求直接打到数据库上,从而可能压垮数据库。解决这一问题的关键在于分散缓存失效时间,避免集中失效。此外,还可以通过限流、降级、预热等策略来进一步缓解压力。 下面是一个综合…

C++代码编写风格:Header-Only与声明实现分离的选择

C代码编写风格:Header-Only与声明实现分离的选择 最近看到一些小伙伴问到了几个比较有趣的问题,这里总结一下,这些都是实际面试中出现过的问题,看看你知道多少,考察一下底子。 面试问题1:你通常编写代码的风…

JAVA云HIS医院管理系统源码 云HIS系统的应用场景

JAVA云HIS医院管理系统源码 云HIS系统的应用场景 云HIS是针对中小医疗健康机构推出的一套基于云端的诊所云HIS服务平台,包括内部管理系统、临床辅助决策系统、体检系统、客户管理与服务系统、健康管理系统、知识管理系统、医患沟通系统、线上营销系统、其他外部系…

降价潮背后:中国产业大模型落地的卡点到底在哪?

“技术是不会以任何商业行为或者人们的意愿所改变它的上限和下限的,它需要的时间是恒定的。” 如果说中国大模型市场最核心的话题是什么?降价则必然是其中之一。 从目前的参赛玩家来看,不论是字节豆包,还是阿里、百度、腾讯、科…

PostgreSQL源码分析——常量表达式化简

常量表达式化简 常量表达式可以进行化简,可降低执行器计算表达式的代价。在逻辑优化阶段,会判断是否可以进行常量表达式化简,如果可以,则在执行器执行之前就预先对常量表达式树进行计算,计算出常量后,以新…

Linux系统之mtr命令的基本使用

Linux系统之mtr命令的基本使用 一、mtr命令介绍二、mtr命令使用帮助2.1 mtr命令的帮助信息2.2 mtr帮助信息解释 三、安装mtr工具四、mtr命令的基本使用4.1 直接使用4.2 设定ping次数4.3 禁用DNS解析4.4 显示IP地址4.5 调整间隔 五、总结 一、mtr命令介绍 mtr命令是一个网络诊断…

Multisim软件仿真之频谱分析仪

网络上有很多Multisim文件,有些是不能复现的,比如频谱仪,按照下面链接去操作,怎么也测试不出来波形,multisim频谱仪使用_multisim输入输出端口-CSDN博客。 原因分析: 1、博主设置参数未讲全,按…

Oracle基本数据类型

在Oracle数据库中,数据类型是描述数据存储格式的属性。不同的数据类型允许存储不同种类的数据。以下是Oracle中的一些基本数据类型: 1. 字符数据类型 - CHAR(size): 定长字符数据,最大长度为2000字节。 - VARCHAR2(size): 变长字符数据…

Redis 常见问题

什么是Reids Redis是一个使用C语言写的开源的高性能key-value非关系型数据库. Redis中包含string, list ,set, zset, hash 等数据类型. Redis的数据都基于缓存的, 每秒可以处理10万次读写, 是已知最快的key-value 数据库. Redis可以实现写入磁盘, 保证数据安全. Redi…

【GUI软件】小红书蒲公英数据批量采集!高效筛选优质博主,助力品牌商

文章目录 一、背景介绍1.0 爬取目标1.1 演示视频1.2 软件说明 二、代码讲解2.0 关于接口2.1 爬虫采集模块2.2 cookie获取2.3 软件界面模块2.4 日志模块 三、获取采集软件 一、背景介绍 1.0 爬取目标 众所周知,蒲公英是小红书推出的优质创作者商业合作服务平台&…

海思SS928/SD3403开发笔记1——使用串口调试开发板

该板子使用串口可以调试,下面是win11 调试 该板子步骤 1、给板子接入鼠标、键盘、usb转串口 2、下载SecureCRT,并科学使用 下载地址: 链接:https://pan.baidu.com/s/11dIkZVstvHQUhE8uS1YO0Q 提取码:vinv 3、安装c…

2024最新宝塔面板8.1.0企业版开心版

官方更新记录 【增加】增加【网站】-【HTML项目】 【优化】优化Docker模块使用体验 【优化】优化文件压缩和解压的速度 【修复】修复在上一版本中出现的所有已知问题 开心版更新记录 1.在 PHP切换页面,出现报错弹窗属于正常情况,是因爲没安装 企业…

uni-app实现扫码

uni.scanCode(OBJECT) 调起客户端扫码界面,扫码成功后返回对应的结果。 平台差异说明 AppH5微信小程序支付宝小程序百度小程序抖音小程序、飞书小程序QQ小程序快手小程序京东小程序√x√√√√√√√ OBJECT 参数说明 参数名类型必填说明平台差异说明onlyFromC…

JAVA反射代码

java在运行过程中&#xff0c;构建类&#xff0c;并获取方法集和属性集&#xff0c;构建实例并调用方法。 package com;import java.lang.reflect.Method;public class Test {public static void main(String args[]) {Class<?> c1 null; // 声明Class对象c1Person pe…

服务器上线的一些事

最近不少人在上线上遇到问题 对于最近的上戏 进行一个坑或操作步骤的总结 以及遇到这些之后如何做 关于选项的选择 1 对于是否要在一个小时前释放 这个是看个人的 2 对于选择一台服务器还是两台呢&#xff1f;这个是最后限制 一台 这个免费的服务器 是有一个两百的额度的 选择…

【C语言】解决C语言报错:Undefined Reference

文章目录 简介什么是Undefined ReferenceUndefined Reference的常见原因如何检测和调试Undefined Reference解决Undefined Reference的最佳实践详细实例解析示例1&#xff1a;缺少函数定义示例2&#xff1a;函数声明和定义不匹配示例3&#xff1a;未链接必要的库示例4&#xff…

Linux驱动开发(一)--字符设备驱动开发基础

1、字符设备驱动简介 字符设备是 Linux 驱动中最基本的一类设备驱动&#xff0c;字符设备就是一个一个字节&#xff0c;按照字节 流进行读写操作的设备&#xff0c;读写数据是分先后顺序的。比如我们最常见的点灯、按键、IIC、SPI&#xff0c; LCD 等等都是字符设备&#xff0c…

【自动驾驶技术】自动驾驶汽车AI芯片汇总——TESLA篇(FSD介绍)

0. 前言 按照国际惯例&#xff0c;首先声明&#xff1a;本文只是我自己学习的理解&#xff0c;虽然参考了他人的宝贵见解及成果&#xff0c;但是内容可能存在不准确的地方。如果发现文中错误&#xff0c;希望批评指正&#xff0c;共同进步。 本篇文章是这个自动驾驶汽车AI芯片系…

ObTypeIndexTable 在win7x86 和win10x64对比

当作备忘录,其他概念请自行搜索 对象类型和对象结构体类型 win7 x86win10 x64 寻找_object_type结构的地址 过程不一样,但是总归是在全局变量_ObTypeIndexTable数组中寻找 win7 的寻找过程