基于单片机的 LED 花样照明时钟设计

news2024/11/18 17:34:26
摘要 本设计是基于单片机的 LED 花样照明 并附加时钟设计 . 单片机也叫微控制器 Micro Control Unit, 简称 MCU ), 因其价格低廉 功能强大 在实际应用中得到广泛认可 . 本设计的核心模块是STC89C52RC 单片机 利用单片机驱动 74HC595 来实现 LED 心形花样流水灯功能 驱动 DS1302 实现实时时钟功能, 驱动 LCD12864 实现显示时钟 日期 节日等功能 .
关键词 STC89C52RC 74HC595 LCD12864 DS1302 LED

引言

为满足大众的审美需求,本文设计了一款既实用又美观的 LED 花样流水灯时钟.这一款带有心形花样流水灯的时钟在设计上充分考虑到需求者的心理,在设计时集成了多种功能,设计成品不死板,可以满足大众在选择工艺品时的需求.

2 总体设计方案

利用 STC89C52RC 单片机的 P1.0~P1.2 三个引脚控制 74HC595 实现 LED 花样照明功能、用P2.0~P2.2 三个引脚控制实时时钟芯片 DS1302 实现电子时钟的功能、用 P0 口、P2.3~P2.5 十一个引脚控制点阵图形液晶显示模块 LCD12864 实现在LCD12864 上显示年、月、日、星期、时、分、秒、节日及 附 加 功 能 .P1.3~P1.6 四 个 引 脚 接 四 个 按 键K1~K4. 其中 K1 控制 LED 花样照明的闪烁模式,K2~K4 调节时间、日期.总体方案的框图如图 1 所示.

3 关键模块介绍

3.1 单片机最小系统

能让单片机在上电后正常工作所需要的最少器件组合而成的系统称之为单片机最小系统.单片机最小系统中最关键的部分是单片机、时钟电路和复位电路.单片机最小系统如图 2 所示.
(1) 单片机:本文采用了宏晶公司生产的STC89C52RC 单片机,因其价格低廉,功耗较低,可 靠性高,无法解密等优点,已经在电子设计行业被广泛采用.STC89C52RC 的工作电压为直流 5V,其内部集成了 8 位 的 CPU、512B 的 RAM、8KB 的ROM、4个并行 8 线 I/O 端口、3类 6 个中断源.单片机内部基本组成如图 3 所示.
(2)时钟电路:单片机的第 18 和第 19 引脚间跨接一个晶体振荡器(简称晶振)来形成自激振荡
器,从而产生脉冲并送入单片机内部时钟电路.这样就可以在单片机运行过程中产生唯一的单片机时序.
(3)复位电路:单片机在上电运行后单片机会处在一个不确定的初始状态,这时就需要一个外部电路来让单片机回到一个确定的初始状态,并且从这个初始状态开始工作.让单片机从不确定的状态回到初始状态的过程称为复位.

3.2 8位串入并出移位缓存器 74HC595

由于单片机的输出端口有限,想要驱动 32 个LED 灯流水工作就会占用单片机全部的输出端口,
不切实际. 因此就必须用外部电路进行端口扩展,以减少单片机端口的占用.用 74HC595 就可以只占用单片机的 3 个端口并实现 8 位输出功能.本设计使 用 4 个 74HC595 的 级 联 实 现 32 位 输 出 .74HC595 共有 16 个引脚,引脚连线图如图 4 所示,其中 Q1~Q7 为并行输出端,Q7' 为串行数据输出端,MR 为复位端,SHcp 为 8 位存储寄存器的时钟信号,STcp 为 8 位移位寄存器的时钟信号,CE 为使能端,Ds 为串行输入端,Q0 为并行输出端. 其功能表如表 1 所示.

3.3 LCD12864 液晶显示

LCD12864 是一块图形点阵液晶显示模块,有128 个列点×64 个行点.显示时每个英文字母占 16个行点 8 个列点,每个汉字占 16 个行点 16 个列点.LCD12864 在本设计中用来显示输出. 其中第一 行显示重要节日,第二行显示年、月、日,第三行显示时、分、秒、星期,第四行显示一句名言.LCD12864共有 20 个引脚,引脚连线图如图 5 所示,其中 V0 为 LCD 驱动电压输入端,RS 为并行的指令 / 数据选择信号(低电平写指令,高电平写数据),R/W 是并行的读写选择信号(低电平是写,高电平是读),E 为并行的使能信号,DB0~DB7 为并行数据输入端,PSB 为并 / 串行接口(高电平是并行,低电平是串行),RST 为复位端,VOUT 为负压输出端.

3.4 实时时钟 DS1302

DS1302 是 DALLAS 公司生产的一款带涓流充电的计时芯片.可以计算年、月、日、时、分、秒、星期,直到 2100 年,并有闰年调节功能.DS1302 的VCC2 和 GND 引脚接电源正极和负极,当外部电源停止工作后 DS1302 的 8 引脚 VCC1 的备用电源会继续给 DS1302 供电,这就解决了掉电后数据会丢失的困扰,这也是 DS1302 的优点之一.DS1302使用的是简单的 3 线串行接口,接口容易,并且与单片机连线通信时占用单片机的端口少,可节省单片机有限的输入输出端口.DS1302 共有 8 个引脚,引脚连线图如图 6 所示,其中 RST 为使能信号,SCLK 为串行时钟信号.

3.5 键盘

按键是单独的一个按钮,按钮的一端接电源或地,按下按钮后实现按钮两端电位相同的功能.本设计采用的是一端接地的独立式键盘,共 4 个按键分别接在 P1.3~P1.6 引脚,每个按键实现不同的功能.其中按键 1 实现每按一下按键 LED 照明变化一个模式的功能,按键 2,3,4 实现调节时间、日期的功能。
本设计所用的按键开关为机械弹性开关.机械弹性按键开关在按下或松开时会有抖动,如图 7 所示,抖动持续的时间非常短,一般只有 5~10ms 的时间,虽然这个时间非常短,却不可忽视.这就要求用有效的方法来消除这个电位忽高忽低的抖动过程.我们可以通过编程时延时一段时间的方法来消除抖动.具体做法就是在按键按下后不是立即检测按键的电位,而是让单片机延时 5~10ms 的时间后再去检测按键的电位,如果 5~10ms 后按键的电位仍为 0(按键另一端接地)则证明按键已经确实按下,反之则没有按下.

4 程序设计及调试

4.1 LED 花样照明部分的设计

在单片机上电工作后,LED 花样流水灯一开始不工作,在按下 K1 键后 LED 花样流水灯开始工作,此时 LED 花样流水灯按模式一闪烁.如果不继续按 K1,LED 花样流水灯会一直按模式一闪烁.当再一次按下 K1 后,LED 花样流水灯按模式二闪烁.如果不继续按 K1,LED 花样流水灯会一直按模式二闪烁. 再按下 K1 后会按模式三闪烁……一共有六种闪烁方式.其中第六种模式为全亮模式,在全亮模式后再按一次按键后进入全灭模式(即关闭模式).进入关闭模式后再次按下 K1 又会按模式一闪烁,以此循环.其中六种模式分别为:模式一:LED 灯从下往上依次点亮.

模式二:LED 灯从上往下依次点亮.
模式三:LED 灯从第一个开始依次点亮.
模式四:LED 灯从最后一个开始依次熄灭.
模式五:LED 灯从下往上依次交替点亮.
模式六:LED 灯全亮.

4.2 按键调时部分的设计

K2~K4 实现调节时间的功能.K2 按下后实现调节时间、日期的功能,按第一下实现调小时功能,按第二下实现调分钟功能,按第三下实现调秒功能,按第四下实现调年功能,按第五下实现调月功能,按第六下实现调日功能,按第七下实现调星期功能,按第八下时钟恢复工作,再按一下又实现调小时功能……如此反复.K3 实现调节时间 / 日期时的加 1 功能,即每按一次对应调节的时间 / 日期加1.K4 实现调节时间 / 日期时的减 1 功能,即每按一次对应调节的时间 / 日期减 1.

4.3 调试

电路焊接完成后,在调试的过程中遇到了以下两个问题:
问题一:流水灯工作时,本不该亮的 LED 灯在其他 LED 灯亮灭变化的瞬间会有短暂的闪烁,而且是所有的不该亮的 LED 灯都闪烁.
问题二:当只有一个 LED 灯亮时,LCD12864的屏幕亮度正常;当 LED 灯亮的个数越来越多时LCD12864 的亮度会越来越暗;当 LED 灯全亮时,LCD12864 的亮度最暗;当 LED 灯都灭时或只有少数几个 LED 亮时,LCD12864 的亮度恢复正常. 导致 LED 灯瞬间闪烁的原因是有浪涌电流,在 LED 灯和限流电阻串联后的两端并联一个电容起到滤波和增加抗干扰的功能.在并联电容后完美
解决了 LED 灯的瞬间闪烁问题.LED 灯全亮时LCD12864 屏幕变暗的原因是电流不够,因为调试时用的是电脑上的 USB 口提供的电源,而电脑的USB 口输出电流有限导致 LED 灯全亮时,没有足够大的电流来驱动 LCD12864.

5 总结

首先经过构思选定方案,把一个整体的设计进行模块化拆分,各个模块都设计好之后再进行整合得到最终的设计成果最终设计的原理图见附图 1.

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

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

相关文章

基于单片机的 LED 照明灯智能调光系统设计

摘  要: 社会经济的不断发展,推动了智能化生活的进程,智能调光技术开始广泛应用在生活中,人们也逐渐提高了灯光亮灯率等的要求。基于此,笔者主要设计了基于单片机的 LED 照明灯智能调光系统,希望能够为相关…

remix测试文件测试智能合约

remix内其实也是可以通过编写测试文件来测试智能合约的,需要使用插件自动生成框架以及测试结果。本文介绍一个简单的HelloWorld合约来讲解 安装插件多重检测: (solidity unit testing) 编译部署HelloWorld合约 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0;c…

喜报 | 极限科技获得北京市“创新型”中小企业资格认证

2024年6月20日,北京市经济和信息化局正式发布《关于对2024年度4月份北京市创新型中小企业名单进行公告的通知》,极限数据(北京)科技有限公司凭借其出色的创新能力和卓越的企业实力,成功获得“北京市创新型中小企业”的…

【SpringBoot Web框架实战教程】06 SpringBoot 整合 Druid

不积跬步,无以至千里;不积小流,无以成江海。大家好,我是闲鹤,微信:xxh_1459,十多年开发、架构经验,先后在华为、迅雷服役过,也在高校从事教学3年;目前已创业了…

wordpress 付费主题modown分享,可实现资源付费

该主题下载地址 下载地址 简介 Modown是基于Erphpdown 会员下载插件开发的付费下载资源、付费下载源码、收费附件下载、付费阅读查看隐藏内容、团购下载的WordPress主题,一款针对收费付费下载资源/付费查看内容/付费阅读/付费视频/VIP会员免费下载查看/虚拟资源售…

第二证券:股票型ETF持续“吸金” 上半年净流入逾4000亿元

2024年上半年行情收官,A股盈余板块领涨商场,银行指数大涨逾17%,居首;煤炭、公用事业两大职业指数均涨超10%。综合板块跌幅最大,上半年累计跌幅超33%;计算机、商贸零售、社会服务等指数均跌超20%。 在股票型…

周报0624-0701--输入CMP数据的准备

一、代码理解 目的:设计思路(根据) 【主程序】多进程,linux,tensorflow 随机生成速度模型的显示颜色,位置,大小 训练的多进程安排 创建目录、环境变量,来存储CMP地震数据 定义变量&…

六西格玛培训引领久立特材品质新高度,行业领军再升级

久立特材六西格玛管理项目于6月27 日启动。久立特材作为行业内的领军企业,此次引入六西格玛管理法,旨在进一步提升企业运营效率和产品质量,实现持续改进和卓越运营。 久立特材的高层领导与张驰咨询的资深顾问朱老师共同出席项目启动仪式&am…

DETRs Beat YOLOs on Real-time Object Detection论文翻译

cvpr 2024 论文名称 DETRs在实时目标检测上击败YOLO 地址 https://arxiv.longhoe.net/abs/2304.08069 代码 https://github.com/lyuwenyu/RT-DETR 目录 摘要 1介绍 2.相关工作 2.1实时目标探测器 2.2.端到端物体探测器 3.检测器的端到端速度 3.1.NMS分析 3.2.端到端速度…

百事可乐推出具有视频屏幕和人工智能技术的智能罐头

在最近于法国戛纳举行的国际创意节上,百事公司推出了创新的智能罐头。这些罐头不同于传统产品,它们采用了环绕式3D屏幕,能够展示高清视频内容,为品牌宣传和促销带来了全新的视角。经过两年多的精心研发,这些智能罐成为…

【数据结构与算法】探索数组在堆数据结构中的妙用:从原理到实现

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法》 期待您的关注 ​​ 目录 一、引言 二、堆的基本概念 🍃堆的特性 🍃堆的分类 三、…

Python Tkinter:开发一款文件加密解密小工具

在这个信息泄露风险日益增加的时代,使用文件加密工具对于保护个人隐私和企业机密至关重要。 本文介绍了一款小工具——encryptDecrypt,它不仅提供了一个易于使用的图形界面,简化了加密和解密过程,还确保了数据的安全性&#xff0c…

国产压缩包工具——JlmPackCore SDK说明(一)

一、什么是JlmPackCore SDK (1)自主可控 JlmPackCore是一套基于我国自主知识产权的核心算法发明专利——杰林码(详系请参考《杰林码原理及应用》一书,也可以参考后续发表的相关论文),其中一篇会议论文&…

完全入门C语言

1.C语言 C语言是一门通用的计算机编程语言,广泛应用于底层开发。其设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。有良好的跨平台的特性。 同时C语言还是面向过程的编程语言,…

汇编基础语法

指令格式 1、立即数 一个常数,该常数必须对应8位位图,即一个8位的常数通过循环右移偶数位得到该数,该数位合法立即数 在指令中表示方法:#数字,例如:#100 快速判定是否是合法立即数: 首先将这…

一款可以编辑SVG矢量图形的方法(以桑基图为例)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、svg矢量图片在线绘制网站二、保存SVG格式图片二、修改SVG图片中的字体大小一、svg矢量图片在线绘制网站 提示:有些图不想用代码出图时,可以采用这个网站,无需注册,无VIP: 网站地址https…

FFmpeg视频处理工具安装使用

一、前言 FFmpeg是流行的开源视频处理工具,用于转码、合并、编辑等。以下是安装和使用方法: 二、步骤 1.下载 1.1 ffmpeg下载 官网下载地址 wget https://www.ffmpeg.org/releases/ffmpeg-6.1.1.tar.xz1.2 nasm下载 https://www.nasm.us/pub/nasm/…

桥感应加热主电路拓扑结构及控制原

1 桥感应加热主电路拓扑结构及控制原理 1.1 主电路拓扑 本文所述中频感应加热电源采用交—直—交的变频原理,三相50Hz的正弦交流输入电压经过整流滤波为540V平滑直流电压,再经逆变器将直流电压变成不同频率的交流电压供负载使用。本文采用半桥串联谐振…

【echarts】如何关闭dataZoom-silder 组件中数据阴影(缩略图、数据走势图)

echarts开启 “滑动条型数据区域缩放组件(dataZoomInside)”后,默认会显示数据的走势图。 但有时候我们并不需要。 如何关闭呢? 官方有提供一个属性:showDataShadow https://echarts.apache.org/zh/option.html#da…