51系列—基于51单片机的电子万年历设计

news2024/11/17 9:29:48

本文主要介绍基于51单片机的电子万年历设计

前言

电子万年历是单片机系统的一个应用,由硬件和软件相配合使用。硬件由主控器、时钟电路、温度检测电路、显示电路、键盘接口5个模块组成。主控模块用AT89C52、时钟电路用时钟芯片DS1302、显示模块用LED数码管、温度检测采用DS18B20温度传感器、键盘接口电路用普通按键接上拉电阻完成;软件利用C语言编程实现单片机程序控制。单片机通过时钟芯片DS1302获取时间数据,DS18B20采集温度信号送该给单片机处理,单片机再把时间数据和温度数据送给74LS154译码,然后通过三极管C9015放大驱动LED数码管显示阳历年、月、日、时、秒、闹钟、星期、温度。

控制部分的方案选择

主控芯片使用51系列AT89C52单片机,时钟芯片用美国DALLAS公司推出的一种高性能、低功耗、带RAM的时钟DS1302。采用DS1302作为主要计时芯片,可以做到计时准确。更重要的是,DS1302可以在很小电流的后备电源(2.5~5V电源,在2.5V时耗电小于300nA)下继续计时,停电后时钟无需重新调整,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电,还可自设闹铃,阳历、星期与年月日自动对应。本系统采用了此方案。

测温部分的方案选择

1.在日常生活及工农业生产中经常要乃至温度的检测及控制,传统的测温元件有热电偶和热电阻。而热电偶和热电阻测一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。

2.与前面相比,采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55~125°C,最大分辨率可达0.0625°C。DS18B20可以直接读出被测温度值,而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
在这里插入图片描述
其内部测温原理如下所示:
在这里插入图片描述

显示部分的方案选择

  1. 液晶显示方式。液晶显示效果出众,可以运用菜单项来方便操作,但是在显示时,特别是使用秒表功能时扫描速度跟不上,屏幕会有明显的闪烁。而且由于61板的存储空间有限,液晶显示就不能与语音播抱程序同时实现。这些大大影响了电子万年历的性能。
  2. 相比液晶显示,8段数码管虽然操作比液晶显示略显繁琐,但可视范围十分宽,而且经济实惠,也不需要复杂的驱动程序。所以最后选择LED数码管显示方案。
    综上所述,按照系统设计功能的要求,确定硬件系统由主控制器、时钟模块、测温电路、显示模块、键盘接口共5个模块组成,总体系统构成框图如图所示。
    在这里插入图片描述

系统程序的设计

阳历程序设计
因为使用了时钟芯片DS1302,阳历程序只需从DS1302各寄存器中读出年、周、月、日、[小]时、分、秒等数据,再处理即可。在首次对DS1302进行操作之前,必须对它进行初始化,然后从DS1302中读出数据,再经过处理后,送给显示缓冲单元。阳历程序流程图如图所示
在这里插入图片描述
时间调整程序设计
调整时间用5个调整按钮,1个作为移位、控制用,2个作为加和减用,还有2个作为闹钟调整使用,分别定义为控制按钮、加按钮、减按钮、闹钟加按纽、闹钟减按纽。在调整时间过程中,要调整的位与别的位应该有区别。所以增加了闪烁功能,即调整的位一直在闪烁,直到调整下一位。闪烁原理就是,让要调整的一位每隔一定时间熄灭一次,比如说50ms。利用定时器计时,当达到50ms溢出时,就送给该位熄灭符,在下一次溢出时,再送正常显示的值,不断交替,直到调整该位结束。此时送正常显示值给该位,再进入下一位调整闪烁程序。时间调整程序流程图如图5.2所示。

温度程序设计
系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示数据刷新子程序等等。

主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s进行一次。其程序流程图如下所示:
在这里插入图片描述

附完整资料获取链接

链接: https://pan.baidu.com/s/1L9kIVugMruIub9bAC-nYfQ?pwd=h24r
提取码: h24r

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

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

相关文章

【CGSSA-BP预测】基于混合混沌-高斯变异-麻雀算法优化BP神经网络回归预测研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

关于ibatis的一些用法——1(基本语法)

关于ibatis的一些用法——1(基本语法) 1. 前言1.1 唠叨1.2 官网1.2.1 官网地址1.2.2 价值文档1.2.2.1 Data Mapper1.2.2.2 其他 1.3 价值 IT技术问答网站 2. 基本语法2.1 关于 in 的用法2.2 关于驼峰问题2.3 3. 1. 前言 1.1 唠叨 本不想整这些老框架的…

在edge浏览器中安装好了burp的ca证书,浏览器依旧不能访问https的原因

在edge浏览器中安装好了burp的ca证书,浏览器依旧不能访问https的原因 1.SwitchyOmega代理插件设置2.CA证书方法1方法2 1.SwitchyOmega代理插件设置 严格安装以下图片执行,不可少写或多写 2.CA证书 方法1 下载好证书,先导入到edge浏览器的中…

商业智能的利用:打造成功的业务战略之道

在当今快节奏和数据驱动的商业环境中,制定稳健的商业战略对于实现可持续的增长和保持竞争力至关重要。商业智能(BI)是能够显著提高业务战略有效性的关键因素之一。本文将深入探讨商业智能的定义、其在战略制定中的重要性,以及如何…

作为资深IT从业者,我高度推荐这款智能团队协作工具

作为一名资深的IT从业人员,我最近发现了一款非常不错的团队协作和远程办公工具,它可以大大提高企业和团队的工作效率,所以今天我就向大家强烈推荐下这款产品。 这款产品名叫TeamLinker,它是一个集成了项目管理、文档协同、视频会议等多种功能于一体的智能化团队协作平台。以下…

数控设备液压站比例阀放大器

数控设备液压站是由液压泵、驱动用电动机、油箱、方向阀、节流阀、溢流阀等构成的液压源装置或包括控制阀在内的液压装置。电机带动油泵旋转,从油箱中吸油后打油,将机械能转化为液压油的压力能,再通过集成块(或阀组合)…

中文编程开发语言编程实际案例:程序控制灯电路以及桌球台球室用这个程序计时计费

中文编程开发语言编程实际案例:程序控制灯电路以及桌球台球室用这个程序计时计费 上图为:程序控制的硬件设备电路图 上图为:程序控制灯的开关软件截图,适用范围比如:台球厅桌球室的计时计费管理,计时的时候…

一阶惯性滤波器的传递函数与时域实现

滤波前后的效果对比如下: 可以得到,滤波后的幅值刚好是滤波前的0.707倍,也就是衰减了3deb,与理论分析一致。 需要注意的是,在simulink中,时域执行周期需要与设置的采样周期Ts一致,例如本例&…

智慧公厕:革新性的公共厕所管理系统

公共厕所,多年前似乎对每个人来说都是个需要避之唯恐不及的地方。但是,现代科技的进步让我们对公厕的认识产生了新的转变。智慧公厕作为一种结合了现代科技和人性化设计的公共厕所信息化管理系统,旨在提供更高效的管理方式,以及更…

Jmeter(七):jmeter连接数据库/中元件的执行顺序作用域详解

Jmeter:jmeter连接数据库 jmeter连接mysql数据库 大致步骤如下: 下载mysql的jar包放入到jmeter的lib下,然后重启jmeter配置JDBC Connection Configuration配置JDBC Request在请求中引用查询到的结果变量,可以结合计数器取每一个…

怎么恢复移走的u盘数据?可以尝试这三种方法

当意外移走U盘上的数据时,我们常常会感到焦虑和失望,特别是当这些数据对我们仍然重要时。不过,您不必完全放弃,因为本文将介绍一些方法,以帮助您恢复U盘上的重要数据。 图片来源于网络,如有侵权请告知 移走…

绘制核密度估计图

简介 核密度估计图(Kernel Density Estimation,KDE)是一种用于估计数据分布的非参数方法,通常用于可视化和理解数据的分布情况。它通过平滑地估计数据的概率密度函数(PDF)来显示数据的分布特征&#xff0c…

【广州华锐互动】全屋智能家电VR虚拟仿真演示系统

在过去的几年中,智能家居的概念已经逐渐进入人们的生活。然而,它的真正潜力和最终形态可能还未被完全发掘。一种新兴的技术,虚拟现实(VR),为我们提供了一种全新的方式来理解和体验智能家居。VR公司广州华锐…

C语言——二周目——程序的翻译与执行环境

一、程序环境 对于一个C语言程序的实现,整个过程一般存在两个不同的环境,分别是翻译环境与执行环境。在翻译环境中,我们所写的源代码经过一系列处理被转换成为可执行的机器指令;在执行环境中,会实际执行代码。 整个程序…

基于YOLOv8模型和WiderPerson数据集的行人目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要:基于YOLOv8模型和WiderPerson数据集的行人目标检测系统可用于日常生活中检测与定位行人目标,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测,另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标…

该方法仅能传入 lambda 表达式产生的合成类

说明:使用Mybatis-plus查询记录时,出现下面的错误; org.apache.ibatis.builder.BuilderException: Error evaluating expression ew.sqlSegment ! null and ew.sqlSegment ! and ew.nonEmptyOfWhere. Cause: org.apache.ibatis.ognl.OgnlEx…

2016-2023全国MBA国家A类线趋势图:浙大MBA要高多少?

距离2024年MBA联考还有两个月左右的时间,冲刺阶段需要为目标做最后的努力。关于分数的目标,目前国外的大多数MBA项目的录取门槛都是国家A类线,而后续常规批复试后的调剂门槛多数也是国家A类线,所以国家线应该是多数考生的第一目标…

【VS2017】MIDL : CreateFile() error : 2

记录一下这个奇葩的问题,应该不会有人遇到 错误描述 项目用到了windows的rpc,并且是 141_xp 编译的。安装相关组件后,编译报错如标题所示: 解决办法 暂时看到的头绪就是到midl的目录下,修改 midl.exe 的兼容性 C:\P…

java与c++中的交换方法

最近在写算法的时候,遇到一个问题。 java中编写swap(交换)方法还需要传入一个数组,但是在c中则不需要。 可以看到,在没有传入数组进行交换数组元素的时候,交换前与交换后的值是一样的。 而在c中&#xff…

【JavaScript】Map

Map Map 构造器,构造 map 对象。 const map new Map() console.log(map)Entries:存放属性 size:属性的数量get():获取值 has():是否有某个键名(属性) keys():获取所有的键名 set(…