基于单片机的数字钟设计

2023-05-16

文末下载完整资料

                    摘 要
  基于单片机的定时和控制装置在许多行业有着广泛的应用,而数字钟是其中最基本的,也是最具有代表性的一个例子。
  在基于单片机系统的数字钟电路中,除了基本的单片机系统和外围电路外,还需要外部的控制和显示装置。本电路主要以单片机AT89S52为核心而设计的,通过单片机对信息的分析与处理,控制外围设备。系统由复位模块、时钟模块、温度模块、音乐模块、光识模块及显示模块共六个模块组成,后来在时钟模块的基础上又加载了日历、星期的模块。
  本设计以单片机AT89S52为切入点,通过使用AT89S52的内部的可编程定时器/计数器,结合对外接晶振的调节来确定一个合适的振荡周期,从而确定出内部的机器周期。再通过对内部中断程序的设置来设计出时钟程序,即设计出了电子时钟的核心。然后在核心电路的基础上设计出了相应的扩展电路,使本设计更加实用。

关键词:单片机;数码显示;温度传感器

更多单片机毕业设计项目,请点击查看

2.1单片机的发展
  单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。单片机的潜力越来越被人们所重视。特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强、能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的发展。而现在单片机在液晶显示上也有了很多的应用。
  随着科技不断进步,各种显示技术如雨后春笋般诞生,由于液晶显示器(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,在近年来价格不断下跌的吸引下,逐渐取代CRT之主流地位,显示器明日之星架势十足。液晶显示器件从初期的实验室到现在的生产厂家,已形成较大规模的生产能力,使液晶显示形成了独立的产业部门。而今,液晶显示已经应用于人们生产、生活中的各个领域,人们时时处处都要与这一神奇而又普通的产品打交道。液晶显示技术以它跨越多学科的工作原理,高技术、专业化的制造工艺使它披上了一层神秘的面纱,而它轻巧薄形的体态,独特而理想的性能以及广泛的应用价值,又使它充满魅力,深深地吸引着人们。

2.2 单片机的开发背景
  现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字。液晶显示器是人与机器沟通的重要界面,而且液晶显示器也有如下特点,开发出来会有很大的应用空间。液晶显示器目前发展最快,也已经成为电子信息产业的支柱性产业之一,受到普遍关注与重视。那么液晶显示器与传统的显示器相比,到底有什么新的特点呢?
  ⑴ 质量高 由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新亮点。因此,液晶显示器画质高而且绝对不会闪烁,把眼睛疲劳降到最低。
  ⑵ 没有电磁辐射 传统显示器的显示材料是荧光粉,通过电子束撞击荧光粉而显示,电子束在打到荧光粉上的一刹那间会产生强大的电磁辐射,尽管目前有许多显示器产品在处理辐射问题上进行了比较有效的处理,尽可能地把辐射量降到最低,但要彻底消除是困难的。相对来说,液晶显示器在防止辐射方面具有先天的优势,因为它根本就不存在辐射。
  ⑶ 可视面积大 对于相同尺寸的显示器来说,液晶显示器的可视面积要更大一些。液晶显示器的可视面积跟它的对角线尺寸相同。阴极射线管显示器显像管前面板四周有一英寸左右的边框不能用于显示。
  ⑷ 应用范围广 最初的液晶显示器由于无法显示细腻的字符,通常应用在电子表、计算器上。而随后出现的DSTN和TFT则被广泛制作成电脑中的液晶显示设备,DSTN液晶显示屏用于早期的笔记本电脑;TFT则既应用在笔记本电脑上(现在大多数笔记本电脑都使用TFT显示屏),又用于主流台式显示器上。
  ⑸ 画面效果好 与传统显示器相比,液晶显示器一开始就使用纯平面的玻璃板,其显示效果是平面直角的,让人有一种耳目一新的感觉。而且液晶显示器更容易在小面积屏幕上实现高分辨率。
  ⑹ 数字式接口 液晶显示器都是数字式的,不像阴极射线管彩显采用模拟接口。也就是说,使用液晶显示器,显卡再也不需要像往常那样把数字信号转化成模拟信号再行输出了。理论上,这会使色彩和定位都更加准确完美。

2.3.3 AT89S52单片机的硬件原理
  ⑴ 如图所示,图为单片机的基本外围电路。20管脚接地,40管脚接+5V电源,为单片机工作提供电源。18及19管脚接晶振,为单片机提供时钟信号,晶振为12MHz。晶振的振荡频率越高,系统的时钟频率越高,单片机工作的速度也越高。对于液晶显示电路的设计,需要单片机有较高的工作效率,所以选择比较高频率的晶振,从而提高液晶屏幕的刷新速率,获得更加连贯、流畅的图像显示。根据需要还可以加上复位电路,复位是单片机的初始化操作。或者当单片机程序运行出错导致死锁状态的时候,为摆脱困境,也需要按复位键以重新启动。
在这里插入图片描述
在这里插入图片描述
3. 方案设计与论证
  按照系统设计功能的要求,初步确定设计系统由复位模块、时钟模块、音乐模块、光识模块及显示模块共五个模块组成,后来在时钟模块的基础上又加载了日历、星期的模块,为了使本设计中的数字钟的功能更加完善和强大,最后又将温度显示加入了设计方案中。
首先以单片机AT89S52为入手点,通过使用AT89S52的内部的可编程定时器/计数器,结合对外接晶振的调节来确定一个合适的振荡周期,从而确定出内部的机器周期。再通过对内部中断程序的设置来设计出时钟程序,即设计出了电子时钟的核心。
  根据题目的要求,我设计了以下方案:
  设计中加载了年、月、日的设计,刚开始时打算用18个共阳数码管,考虑到数码管太多是毕会给硬件电路带来麻烦,经过考虑后,决定把年、月、日与时间设置到一组数码管上来,即六个数码管即能显示时间又能显示年、月、日,这样一来就方便了硬件电路。
  主控芯片使用51系列AT89S52单片机,温度模块设计中,温度元件采用AD590,利用AD590以及接口电路把温度转换成模拟电压,经由ADC0804转换成数字信号,然后经AT89S52处理显示温度。但由于AD590价钱比较贵,且只能转换成模拟电压,这样一来硬件就要增加更多的器件且又不经济,经查找发现18B20温度传感器价钱便宜且可以直接把温度转换成数字量测温范围为-55—125度,最大分辨率可达0.0625度,采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点,所以我选择了18B20温度传感器。
  在音乐模块的设计中,我决定采用音乐芯片,这样可以避免对铃声音乐的编程,即节省了时间,又减少了在程序中发生错误的可能性。

                4. 系统总体结构框图
在这里插入图片描述
5. 系统的硬件设计
  电路是由控制部分和显示部分两大部分组成。利用单片机程序进行控制,并通过数码管进行显示。
5.1 显示部分电路的设计
5.1.1 LED数码显示管的基本原理
  用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态显示,按译码方式可分为硬件译码和软件译码。
  静态显示是显示驱动电路具有输出锁存功能,单片机将要显示的数据送出后不再控制LED,直到下次显示时再传送一次新的显示数据。静态显示的数据稳定,占用CPU时间少。
  动态显示要CPU时刻对显示器件进行刷新,显示数据有闪烁感,占用CPU时间多。
  这两种显示方式各有利弊:静态显示虽然数据显示稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的电路硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。
  动态扫描显示接口是单片机中应用最广泛的一种显示方式。其接口电路是把所有LED显示器的8个笔划段A~D、DP的同名端连在一起,而每一个数码管的公共端COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接受到相同的字形码,但究竟是哪个显示器亮,则取决于COM端,而这一端是由I/O控制的,可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,是各个显示器轮流点亮。
  在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的,约1ms左右,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。
  从上述的论述中,可以看出动态显示方案具备一定的实用性,也是目前单片机数码管显示中较为常用的一种显示方法。所以,本设计也采用动态显示方案。
5.1.2 数码管显示模块分析
  电路先通过电源电路送出+5V电压,单片机AT89S52通过74LS47和CD4515(4—16译码器)驱动数码管显示数值, 显示部分采用普通共阳极数码管显示,采用动态扫描,以减少硬件电路。考虑到一次扫描12位数码管显示时会出现闪烁情况,设计时分两排显示,一排显示时间和年月日,一排显示星期和温度, 共阳极数码管中8个发光
  二极管的阳极(二极管正端)连在一起。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输入端为低电平时,该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。采用动态显示方式,比较节省I/O口,硬件电路也较静态显示简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,占用CPU较多时间。
  为了提供共阳LED数码管的驱动电压,用三极管9012作电源驱动输出。采用12MHz晶振,有利于提高秒计时的精确性。;

5.1.3 LED显示电路
在这里插入图片描述
5.2 控制部分电路的设计
5.2.1 时钟模块
  利用芯片内部的振荡器,然后在引脚XTAL1和引脚 XTAL2两端接晶体谐振器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部的时钟电路,如图外接晶振时,C1和C2的值通常选择30pF; C1、C2对频率有微调作用,晶体谐振器的频率12MHz。为了减少寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。设置了12—24两种显示状态,调整计时的按键、设置定时的按键且定时设置了3次定时、还另加载了星期、年、月、日的调整及闰年的自动调整。

5.2.2 温度模块
  主要由18B20通过单片机AT89S52中的温度程序不断的检测温度来显示温度。
  18B20温度传感器工作原理:DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并可根据实际要求通过简单的编程实现9—12位的数字值读数方式,DS18B20的性能特点如下:
1、独特的单线接口仅需要一个引脚进行通信;
2、多个DS18B20可以并联在唯一的三线上,实现多点组网功能;
3、无须外部器件;
4、可通过数据线供电,电压范围为3.0—5.5V;
5、零待机功耗;
6、温度以9或12位数字量读出;
7、用户可定义的非易失性温度报警设置;
8、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
9、负电压特性,电源极性接反是,温度计不会因发热而烧毁,但不能正常工作。
5.2.3 音乐模块
  通过LM386N-1给扬声器信号来发出音乐,这个模块主要是为时钟定时到时发出音乐闹铃,而在软件部分设置了可以一次设置3次定时,每次定时到时,音乐程序中编了6种音乐,它可以自动选择6种音乐中的任一音乐响1分钟,如果中间不想让闹铃响可以按一按键,闹铃就立刻停止。
5.2.4 复位模块
  单片机复位电路是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从该状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。无论是在单片机刚接上电源时,还是断电后或者发生故障后都要复位。
电路图为:
6.2 系统程序设计的总体框图
在这里插入图片描述


全套资料免费下载:
关注v-x-公-众-号:【嵌入式基地
后-台-回-复:【毕业设计】 即可获资料
回复【编程】即可获取
包括有:C、C++、C#、JAVA、Python、JavaScript、PHP、数据库、微信小程序、人工智能、嵌入式、Linux、Unix、QT、物联网、算法导论、大数据等资料
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于单片机的数字钟设计 的相关文章

  • pytorch优化器(optimizer)中params参数详细介绍

    这里先给出使用的一个小型网络 xff08 自己瞎定义的一个网络 xff09 xff0c 后面使用的model就是这里定义的一个小型的网络 xff1a 定义网络 class Test nn Module def init self super
  • [下面的框架可能不正确和/或缺失,没有为 ntdll.dll 加载符号]

    96 96 96 cpp 在这里插入代码片 之前老师出现这些问题 之后我改了realse模式 依旧不行 我经过一夜的思考 xff0c 发现这个和我的代码 没有关系 我修改了程序内部的一些char 然后重新启动realse 就没有这个了 在这
  • 操作系统-处理机调度、进程调度的时机、切换与过程、方式、调度算法的评价指标、调度算法

    文章目录 基本概念三个层次高级调度 作业调度 中级调度 内存调度 低级调度 进程调度 三层调度的联系 对比补充知识时机什么时候需要进程调度什么时候不能进行进程调度临界区与内核程序临界区 切换与过程 34 狭义的调度 34 与 34 切换 3
  • QGC地面站配置PX4Flow光流传感器

    打开地面站 xff0c 进入到参数设置里面 xff0c 查询 EKF2 AID MASK xff0c 在px4中使能px4flow xff0c 设置为2即关闭GPS打开光流 2 查询 SENS EN MB12XX 在px4中使能px4flo
  • Git如何创建一条分支,并且进行分支的切换

    核心指令 xff1a git checkout xx 下面讲解怎么创建 可以看到 xff0c 我们当前的处于master分支 输入 git branch dev xff08 创建一个dev分支 xff09 这样已经是创建成功了 可以输入gi
  • Bosch SMI810 IMU传感器芯片驱动

    Bosch SMI810 IMU传感器芯片驱动 文章目录 Bosch SMI810 IMU传感器芯片驱动一 总体特点二 SPI通信三 数据处理四 寄存器设置和代码编写 一 总体特点 1 smi8xx家族的传感器分为 xff0c 陀螺仪 43
  • 村田 IMU SCC2000系列芯片驱动

    村田 IMU SCC2000系列芯片驱动 文章目录 村田 IMU SCC2000系列芯片驱动一 总体特点二 启动时序和逻辑三 SPI通信和数据读取四 数据处理 一 总体特点 1 本次具体的型号是村田SCC2130系 xff0c IMU有1轴
  • Vue模板的使用,vue中使用js表达式

    1 v 属性 使用方法和需要注意的点 span class token tag span class token tag span class token punctuation lt span template span span cla
  • ROS多机通信主机接收不到从机的消息

    关一下防火墙试试 xff1a sudo ufw disable 另 xff1a 检查防火墙是否关闭 xff1a sudo ufw status 另 xff1a 其实ROS多机通信只要设置好ROS MASTER URL和ROS HOSTNAM
  • 单个象棋棋子图片!png

    之前做完项目直接全删了 xff0c 结果帅竟然忘了上传 这回重新扣个帅效果差了好多 xff0c 大家凑合用吧
  • numpy中的cov以及参数rowvar

    numpy中计算协方差利用cov方法 xff0c 如何计算协方差 xff1f 利用这个公式 xff0c 可以求得两个矩阵的协方差 xff0c 举个例子 xff1a 这里 X Y X Y X Y 分别对应着矩阵
  • size.width>0 && size.height>0 in function ‘cv::imshow‘

    遇到报错 xff1a cv2 error OpenCV 3 4 2 C Miniconda3 conda bld opencv suite 1534379934306 work modules highgui src window cpp
  • windows安装ubuntu双系统

    因为要学习机器人 xff0c 老师要求安装ubuntu和ros系统 xff0c 安装第一次踩了雷不太成功 xff0c 第二次安装成功了ubuntu21 04但没有对应的ros系统 xff0c 因此在此向大家安利 安装ubuntu18 04比
  • pytorch

    pytorch基础 1 Tensor数据类型 创建tensor时 xff0c 默认类型为torch FloatTensor xff08 32位浮点 xff09 a span class token operator 61 span torc
  • 死锁的基本介绍

    文章目录 一 死锁是什么 xff1f 二 死锁产生的原因1 死锁产生的必要条件2 产生原因 xff08 1 xff09 资源竞争 xff08 2 xff09 可剥夺资源和不可剥夺资源 xff08 3 xff09 竞争不可剥夺资源 xff08
  • linux安装qq

    linux版QQ安装 xff1a span class token function wget span http sqimg qq com mqq img linuxQQ linuxqq 2 0 0 b2 1089 x86 64 sh s
  • catkin_make报错

    catkin make报错 xff1a CMake Error at CMakeLists txt 1 Parse error Expected a span class token builtin class name command s
  • scanf_s输入字符/字符串vs抛异常

    写C语言作业的时候 xff0c 我使用visual studio2022的环境 xff0c 在读取输入字符时总是抛出异常 原始代码为 xff1a span class token macro property span class toke
  • ninja: build stopped: subcommand failed. Makefile:225: recipe for target ‘px4_sitl_default‘ failed

    安装PX4报错 在执行make命令 xff1a make px4 sitl default的时候出现ninja报错 报错信息 xff1a json decoder JSONDecodeError Expecting value line s
  • vs2022清除缓冲区操作fflush改成了rewind

    在vs2022环境中 xff0c 在gets或getchar 函数中总是无法读取输入字符 xff0c 经过观察发现 xff0c 我使用的语句fflush stdin 总是没有起作用 xff0c 事实上 xff1a vs2022环境 xff0

随机推荐

  • yolov7报错:subprocess.CalledProcessError: Command ‘git tag‘ returned non-zero exit status 128.

    在运行yolov7时 xff0c 文件google utils py出现报错 xff1a subprocess CalledProcessError Command 39 git tag 39 returned non zero exit
  • 数据增强时自动调整标签文件(标签有多个类别)

    主要参考博客 xff1a https blog csdn net Ai Smith article details 109472611 但上述博客只能处理有一类标签的情况 xff0c 若标签有多个种类 xff0c 则需修改一下 xff1a
  • zip压缩包上传linux文件名乱码

    zip压缩包上传linux文件名乱码 乱码原因主要是Windows压缩的时候编码方式为gbk xff0c 而linux默认编码方式为utf8 网上有的方法说用什么yum install convmv xff0c 试了下感觉一般 xff0c
  • diffusiondet运行过程碰到的问题

    diffusiondet运行过程碰到的问题 1 loss报错 xff1a cls loss 61 sigmoid focal loss jit src logits target classes onehot alpha 61 self f
  • 运行mmsegmentation碰到报错:size shape must match input shape. Input is 2D, size is 3

    运行mmsegmentation碰到报错 xff1a size shape must match input shape Input is 2D size is 3 这个问题比较坑 有时候我们的标签size是 512 xff0c 512 x
  • (docker笔记):镜像原理之联合文件系统、分层理解、commit 镜像

    目录 Docker 镜像讲解 什么是镜像 xff1f Docker 镜像加载原理 分层理解 commit 镜像 Docker 镜像讲解 什么是镜像 xff1f 镜像是一种轻量级 可执行的独立软件包 xff0c 用来打包软件运行环境和基于运行
  • FCOS报错ImportError: libcudart.so

    在使用detectron2 43 AdelaiDet运行FCOS代码时 xff0c 碰到报错 xff1a from adet import C ImportError libcudart so 10 0 cannot open shared
  • 在Ubuntu18.04(Melodic)中安装ROS Gazebo经验总结

    首先实现Win10系统 与 Ubuntu18 04 之间实现粘贴复制 span class token function sudo span span class token function apt span span class tok
  • 解决ResourceNotFound: gazebo_ros

    roslaunch simulation landing px4 launch 错误如下 ResourceNotFound gazebo ros ROS path 0 61 opt ros kinetic share ros ROS pat
  • Ubuntu18.04下java环境安装flightplot分析软件

    Java安装参考我的这篇博文 Linux 系统小白 Ubuntu 18 04下安装 Java 过程简单总结 安装flightplot过程如下 1 xff1a sudo apt install git 2 xff1a git clone re
  • estimatePoseSingleMarkers()解读

    ex 网页长截图 1 F12 2 ctrl 43 shift 43 p 3 Capture full size screenshot 参考网址 estimatePoseSingleMarkers void cv aruco estimate
  • 插值函数总结(下篇之二维插值)

    命令2 interp2 功能 xff1a 二维数据内插值 xff08 表格查找 xff09 格式1 xff1a z1 61 interp2 x y z x1 y1 返回矩阵z1 xff0c 其元素包含对应于参量x1与y1 xff08 可以是
  • 模型预测控制算法(MPC算法)底层逻辑

    目录 MPC算法的基本原理 详细解析 预测模型中需要注意的点 滚动优化需要注意的点 构造目标函数约束部分 约束部分 举例说明 复盘总结 MPC算法的基本原理 MPC 的基本原理可以分为三个步骤 xff1a 预测模型 滚动优化 反馈校正 xf
  • 计算机视觉(三)--- 图像到图像的映射(全景拼接)

    目录 1 基本介绍 2 RANSAC 3 单应性矩阵估计 4 全景图像 1 基本介绍 引言 众所周知 xff0c 在我们拍摄风光摄影时 xff0c 广角镜头是使用频率最高的镜头 xff0c 特别是拍摄那些波澜壮阔的大场景风光 而且镜头可谓是
  • 机器学习课后练习题(期末复习题目附答案)

    此为第一章绪论部分 一 单选题 1 移动运营商对客户的流失进行预测 可以使用下面哪种机器学习方法比较合适 A 一元线性回归分析 B 关联方法 C 聚类算法 D 多层前馈网络 正确答案 A 2 下面哪种说法有关机器学习的认识是错误的 A 高质
  • STM32野火教程学习笔记

    欢迎使用STM32 虽然经历了疫情期间的价格起飞 xff0c 但是STM32系列的单片机仍然是各个控制领域内主流的微控制器 它是控制人的必修课之一 STM32的编程方法 我们在学习51单片机的时候 xff0c 通常是通过编写程序直接对其输入
  • Docker的使用

    目录 Docker概念 Docker安装 配置docker加速器 Docker命令 docker进程命令 docker镜像命令 容器命令 Docker容器的数据卷 数据卷概念 数据卷配置 数据卷容器 docker部署mysql 1 搜索my
  • launch启动文件的使用方法

    launch文件 xff1a 脚本 xff0c 可以把很多节点的启动写进去 Launch文件语法 1 lt launch gt launch文件中的根元素采用 lt launch gt 标签定义 2 lt node gt pkg xff1a
  • 基于单片机的电子万年历的设计

    文末下载完整资料 基于51单片机的电子万年历的设计 摘 要 电子万年历是单片机系统的一个应用 xff0c 由硬件和软件相配合使用 硬件由主控器 时钟电路 温度检测电路 显示电路 键盘接口5个模块组成 主控模块用AT89C52 时钟电路用时钟
  • 基于单片机的数字钟设计

    文末下载完整资料 摘 要 基于单片机的定时和控制装置在许多行业有着广泛的应用 xff0c 而数字钟是其中最基本的 xff0c 也是最具有代表性的一个例子 在基于单片机系统的数字钟电路中 xff0c 除了基本的单片机系统和外围电路外 xff0