基于51单片机的多功能电子时钟设计

news2024/11/16 11:44:22

设计任务:

1、设计任务:利用单片机、时钟芯片 DS1302、温度传感器 DS18B20、1602 液晶 等实现日期、时间、温度的显示即一个简单的万年历。

2、设计要求

(1)通过 DS1302 能够准确的计时,时间可调并在液晶上显示出来。

(2)通过 DS18B20 能够实时、准确的检测当前环境温度。

(3)利用单片机自身功能实现闹钟

           总体方案论证与设计 总体方案论证与设计 本系统以 AT89S52 单片机为控制核心,通过与 DS1302 和 DS18B20 通信获取实时时间和实时环境温度,并将得到的数据通过 1602 液晶 显示出来,同时通过相应的按键调整相应的值。因此本设计可分为一 下模块:显示模块、实时时间计算模块、实时环境温度采集模块、报 警模块、设置模块(时间设置模块、最高温度设置模块、闹钟设置模 块)。下面对各个模块逐一进行论证分析:

1、 液晶显示模块

方案(1):数码管是利用发光二极管的特性组合而成数字显示器件,通过控制相应的二 极管的状态显示相应的数字。要使数码管正常显示就得有驱动电路驱动相应的段码,数码管 的现实方式可分为静态显示和动态显示,静态显示方式只适合显示单个的数字,因此本设计 应采用动态显示方式。由于动态显示方式利用的是人眼视觉暂留的特性,扫描的时间应不大 于 20 毫秒,占用系统资源大,而且显示的个数和字型有限,在本设计中不易采用。

方案(2):1602 液晶也叫 1602 字符型液晶 它是一种专门用来显示字母、数字、符号等 的点阵型液晶模块 它有若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位都可以 显示一个字符。每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用。1602 的驱动电路带有 11 条指令,可以很方便的控制液晶的现实效果如:清屏、 左移右移、光标显示。而且 1602 显示的字符在下一条指令为到来之前不会改变,也就是能 够维持显示的字符,1602 液晶占用的系统资源也少。 综合比较上述两种方案,应采用 1602 液晶组成本设计的显示模块。

2、 实时时间计算模块

方案(1):AT89S52 单片机内部带有定时/计数功能,此定时功能是通过对外部晶振的脉 冲进行计数,从而达到计时功能,只要使用 11.0592 的晶振就能实现零误差的计时,因此可 以利用此功能实现计时,但因为只有单一的计时功能要实现“万年历”的功能需要较复杂的 程序,而且如果单片机掉电无法继续进行计时,所以使用不便。

方案(2):DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片, 附加 31 字节静态 RAM,采用 SPI 三线接口与 CPU 进行通信,并可采用突发方式一次传送 多个字节的时钟信号和 RAM 数据。实时时钟可提供秒、分、时、日、星期、月和年,一个 月小与 31 天时可以自动调整,且具有闰年补偿功能。工作电压宽达 2.5~5.5V。采用双电源 供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充 电的能力。利用单片机强大的控制功能就可实现实时计时的功能,而且消耗的系统资源少, 程序简单。 综合上述两种方案,宜采用方案(2)实现实时计时功能。

 

 

 

 

 

 

 

 

 

 

 

 

 资料包括:

 程序运行图:

 仿真图:

 

需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

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

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

相关文章

RK3568平台开发系列讲解(驱动基础篇)Linux内核面向对象思想之封装

🚀返回专栏总目录 文章目录 一、链表的抽象与封装二、设备管理模型的抽象与封装三、总线设备模型的抽象与封装沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux内核虽然是使用C语言实现的,但是内核中的很多子系统、模块在实现过程中处处体现了面向对象编程思想。…

动态规划:将题目转换为01背包问题

文章目录494. 目标和474. 一和零494. 目标和 力扣传送门: https://leetcode.cn/problems/target-sum/ 题目描述: 给你一个整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 ‘’ 或 ‘-’ ,然后串联起所有整数,可以…

easyrecovery2023最新免费版电脑数据恢复软件使用教程

easyrecovery2023版能实现多种不同格式的完成修复和进程的解决,能进行数据的操作和保存解决完成,通过不同的内容进行操作,能解决大部分的使用问题,能安全的进行保存。easyrecovery免安装版对于多种格式下的内容,能对多…

nacos注册中心和配置中心

nacos注册中心和配置中心 nacos 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 nacos官方文档:https://nacos.io/zh-cn/ 相关概念:https://nacos.io/zh-cn/docs/architecture.html nacos是AP架构,注重可用性和分区容错性&#…

腾讯云双十二服务器2核2G、2核4G、4核8G、8核16G、16核32G配置价格表出炉

现在腾讯云服务器2核2G、2核4G、4核8G、8核16G、16核32G配置价格表已经出来了,大家可以参考一下。腾讯云轻量应用服务器为轻量级的云服务器,使用门槛低,按套餐形式购买,轻量应用服务器套餐自带的公网带宽较大,4M、6M、…

​软件测试之“支付功能”测试

01 测试思维 要分析测试点之前,我们先来梳理一下测试思维。总结来说,任何事物的测试思路都可以总结如下: 第一步:梳理产品的核心业务流程:明白这是个什么项目,实现了什么业务,以及是怎么实现的…

电动汽车电池换电站选址与定容(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🎉作者研究:🏅🏅🏅主要研究方向是电力系统和智能算法、机器学…

python学习笔记(13)---(IO对象序列化)面向对象

目录 面向对象---第十一章 IO对象序列化 1.IO流(IO stream) 2.open()方法 3.写入方法:write() 4.对象序列化 面向对象---第十一章 IO对象序列化 1.IO流(IO stream) (1&…

编译原理实验三:算符优先分析算法的设计与实现

实验三 算符优先分析算法的设计与实现 一、 实验目的 根据算符优先分析法,对表达式进行语法分析,使其能够判断一个表达式是否正确。通过算符优先分析方法的实现,加深对自下而上语法分析方法的理解。 二、 实验要求 1、输入文法。可以是如下…

Java 图片上传后为什么会自动旋转90度?

问题: 用户反馈上传后的图片方向不对,起初怀疑是本身图片方向有问题,但是用windows图片查看器打开图片方向是"正常"显示的? 分析: windows默认的图片查看器已经帮我们自动旋转展示了,我们在手机横拍或者扫…

【Vue核心】7.事件处理

事件处理的基本使用 绑定监听 v-on:xxx“fun” xxx“fun” xxx“fun(参数)” 默认事件形参: event 隐含属性对象: $event 绑定方法说明 使用v-on:xxx 或xxx绑定事件,其中xxx是事件名;事件的回调需要配置在methods对象中,最终公在vm上;methods中配置的函数,不要用箭头函…

python 调试IGH库

如何通过python来调试IGH的库呢? 可以使用如下的代码,测试请求主站,把主站变成激活状态。其他的函数也可以类似的一步一步调用。 结果如下: from ctypes import * ighCDLL("/home/cheni/lichuan_bujin/libethercat.so&quo…

开传奇大概需要什么条件

《热血传奇》是盛趣游戏2001年推出的一款大型多人在线角色扮演游戏(MMORPG)。 该游戏具有战士、魔法师和道士三种职业,所有情节的发生、经验值取得以及各种打猎、采矿等活动都是在网络上即时发生。 《热血传奇》包括白天、黑夜、贸易、物品等…

c++多模块化划分算法MMM(单链接、全链接、均链接)

文章目录题目1c代码一、实验目的二、实验描述3.1 题目13.1.1 单链接3.1.2 全链接3.1.3 均值链接3.1.4 划分结果统计&#xff1a;3.2 题目23.2.1 单链接3.2.2 全链接3.2.3 均值链接3.2.4 划分结果统计&#xff1a;题目2c代码github地址 代码地址 题目1c代码 #include<cstdi…

关于Servlet编程(2)

1.常用类的关键API介绍 Servlet中常见的类有三个.介绍过了HttpServlet类.我们再来看看另外两个. HttpServletRequest 这个类对应到发送的HTTP请求. 方法描述String getProtocol()返回请求协议的名称和版本String getMethod()返回请求的 HTTP 方法的名称 (GET,POST 或 PUT)S…

java计算机毕业设计ssm医院病人信息管理系统60k18(附源码、数据库)

java计算机毕业设计ssm医院病人信息管理系统60k18&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#…

summernote富文本编辑器和jquery.validate冲突报错的解决方案

先看问题: 当我在富文本输入并移出鼠标焦点的时候, 控制台抛出错误Cannot read properties of undefined (reading replace), 而导致jquery.validate无法对其他表单组件进行校验 1.定位问题: jquery.validate的初始化是监听了表单$("#addOrEditForm").validate(),…

Nacos的服务注册之服务端

上节讲到了nacos的客户端,通过把实例信息封装成instance,调用服务端的接口:/instance,进行注册. 接下来,我们一起看看服务端是怎么处理客户端发来的请求的. 服务端 在nacos-naming这个模块中,在这个模块里边有一个InstanceController 其中在com.alibaba.nacos.naming.contro…

Netty_03_ByteBuf和网络中拆包粘包问题及其解决

文章目录一、前言二、ByteBuf&#xff08;Netty API中定义的数据类型&#xff09;2.1 ByteBuf2.1.1 ByteBuf创建的方法有两种2.1.2 ByteBuf的存储结构2.1.3 ByteBuf中常用的方法APIReader相关方法Write相关方法Write可能导致扩容2.2 ByteBuf代码(演示读写指针移动和扩容)2.2.1 …