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

摘要 本设计是基于单片机的 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.mzph.cn/web/37627.shtml

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

相关文章

高效、便捷的游戏代理结算方案,Xinstall让您的业务更上一层楼!

随着游戏行业的蓬勃发展,越来越多的企业和个人开始涉足游戏代理领域。然而,在这个充满机遇与挑战的市场中,游戏代理结算问题成为了许多代理商和开发者头疼的难题。繁琐的结算流程、复杂的费用计算以及资金安全问题,都让游戏代理结…

PHP语言学习02

好久不见&#xff0c;学如逆水行舟&#xff0c;不进则退&#xff0c;真是这样。。。突然感觉自己有点废。。。 <?php phpinfo(); ?> 新生第一个代码。 要想看到运行结果&#xff0c;打开浏览器&#xff08;127.0.0.1/start/demo01.php&#xff09; 其中&#xff0c…

django @login_required 为什么会自动重定向到/accounts/login/?next=/myblog/post/new/

在Django中&#xff0c;login_required 装饰器用于确保用户在访问某个视图时已经登录。如果用户未登录&#xff0c;那么Django会自动重定向用户到登录页面。默认情况下&#xff0c;Django使用/accounts/login/作为登录URL。如果用户试图访问一个需要登录的视图&#xff0c;比如…

K-Planes代码记录

随记 原文 K-Planes: Explicit Radiance Fields in Space, Time, and Appearance&#xff0c;又要换baseline&#xff0c;可是效果不好能怎么办呢&#xff0c;我可不可以发疯。k-planes的代码又是非常工程琐碎的&#xff0c;大佬的代码果然不顾小白死活。随便记录下整个过程。…

制造型企业生产管理的技巧,你都用过哪些?

作为管理者&#xff0c;一谈到生产管理&#xff0c;你可能会想到很多生产过程中的问题&#xff1a;订单准交率不高、计划达成率不高、生产效率低、再制品太多、生产周期长等等一系列问题&#xff1b;如果你不仅仅是一名管理者&#xff0c;你还是一名企业主&#xff0c;你甚至经…

实践Go的命令模式

简介 现在的软件系统往往是分层设计。在业务层执行一次请求时&#xff0c;我们很清楚请求的上下文&#xff0c;包括&#xff0c;请求是做什么的、参数有哪些、请求的接收者是谁、返回值是怎样的。相反&#xff0c;基础设施层并不需要完全清楚业务上下文&#xff0c;它只需知道…

Bootstrap更改默认的“请在电子邮件地址中包含@”

摘要&#xff1a; 今天开发一个外贸系统&#xff0c;必须全部英文的&#xff0c;但是使用到bootatrp 4的input标签的type"email"输入没有含“”符号时会提示&#xff1a;“请在电子邮件地址中包含”中文提示&#xff01;一开始以为是中国下载的谷歌是浏览器自带的提示…

AIGC重塑创意设计:不仅能带来新技术,更能引发新思考

随着科技的飞速发展&#xff0c;AIGC&#xff08;生成式人工智能&#xff09;已经逐渐成为创意设计领域的一股新势力。从影视制作到游戏设计&#xff0c;从平面广告到数字媒体&#xff0c;AIGC的影响力无处不在&#xff0c;它不仅带来了全新的技术手段&#xff0c;更在深层次上…

Linux-笔记 嵌入式gdb远程调试

目录 前言 实现 1、内核配置 2、GDB移植 3、准备调试程序 4、开始调试 前言 gdb调试器是基于命令行的GNU项目调试器&#xff0c;通过gdb工具我们可以实现许多调试手段&#xff0c;同时gdb支持多种语言&#xff0c;兼容性很强。 在桌面 Linux 系统&#xff08;如 Ubuntu、Cent…

Redis基础教程(三):redis命令

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

08 - Python面向对象编程进阶

面向对象进阶 在前面的章节我们已经了解了面向对象的入门知识&#xff0c;知道了如何定义类&#xff0c;如何创建对象以及如何给对象发消息。为了能够更好的使用面向对象编程思想进行程序开发&#xff0c;我们还需要对Python中的面向对象编程进行更为深入的了解。 property装…

六西格玛绿带培训的证书有什么用处?

近年来&#xff0c;六西格玛作为一套严谨而系统的质量管理方法&#xff0c;被广泛运用于各行各业。而六西格玛绿带培训证书&#xff0c;作为这一方法论中基础且重要的认证&#xff0c;对于个人和企业而言&#xff0c;都具有不可忽视的价值。本文将从多个角度深入探讨六西格玛绿…

充电宝口碑哪个好?好用充电宝品牌有哪些?好用充电宝推荐

充电宝作为我们日常生活和出行的重要伙伴&#xff0c;其品质和性能直接影响着我们的使用体验。今天&#xff0c;就来和大家探讨一下充电宝口碑哪个好&#xff0c;为大家盘点那些备受赞誉的好用充电宝品牌&#xff0c;并向您推荐几款值得入手的充电宝&#xff0c;外出时不再担心…

mac英语学习工具:Eudic欧路词典 for Mac 激活版

Eudic欧路词典是一款非常受欢迎的英语学习软件&#xff0c;它提供了丰富的词汇解释、例句、同义词、反义词等功能&#xff0c;帮助用户更好地理解和掌握英语单词。 以下是Eudic欧路词典的一些主要特点&#xff1a; 海量词汇库&#xff1a;Eudic欧路词典拥有庞大的词汇库&#…

为什么人人都要懂一些销售思维

创业看事情的高度、考虑的维度比做销售更高、更复杂、更全面&#xff0c;销售思维、销售方法更多时候用在解决局部问题&#xff0c;帮我们打局部战争&#xff0c;它是术。 但是&#xff0c;我仍然认为&#xff0c;销售思维是一种很有用、有效、有力量、必要的思维。我们每个人…

简过网:考一建需要报培训班吗?报班费用是多少钱

近几年来&#xff0c;越来越多的朋友都开始关注和参与备考一建&#xff0c;那么&#xff0c;大家在备考一建时&#xff0c;都报培训班了吗&#xff1f;报班的费用是多少钱&#xff1f;接下来&#xff0c;我们一块来了解一下吧&#xff1f; ​ 一、考一建需要报培训班吗&#…

赛目科技三度递表:净利率及资产回报率不断下滑,经营成本越来越高

《港湾商业观察》施子夫 5月29日&#xff0c;北京赛目科技股份有限公司&#xff08;以下简称&#xff0c;赛目科技&#xff09;第三次递表港交所&#xff0c;公司拟主板上市&#xff0c;独家保荐机构为光银国际。 公开信息显示&#xff0c;赛目科技此前曾于2022年12月&#x…

Java全套智慧校园系统源码:核心功能、发展趋势、基于电子班牌: Android 7.1+小程序:原生开发+多学校Saas 模式

Java全套智慧校园系统源码&#xff1a;核心功能、发展趋势、基于电子班牌&#xff1a; Android 7.1小程序&#xff1a;原生开发多学校Saas 模式 智慧校园系统是一个集成了多种功能的综合性平台&#xff0c;旨在提升校园内的教学、管理、服务等方面的效率和体验。那么&#xff…

比较(五)利用python绘制棒棒糖图

比较&#xff08;五&#xff09;利用python绘制棒棒糖图 棒棒糖图&#xff08;Lollipop plot&#xff09;简介 棒棒糖图实际上是修饰后的条形图。当在处理大量的值&#xff0c;并且当这些值都很高时&#xff0c;棒棒糖图就很有用。 快速绘制 基于matplotlib import pandas as…

【前端环境1】安装nvm

【前端环境1】安装nvm 写在最前面一、下载nvm二、安装教程三、验证nvm安装 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你的陪伴与支持 ~ &#x1f680; 欢迎一起踏上探险之旅&#xff0c;挖掘无限可能&#xff0c;共同成…