历史上的今天
返回首页

历史上的今天

今天是:2025年04月15日(星期二)

正在发生

2021年04月15日 | 基于AT89C51单片机控制LED摇摇棒的研究

2021-04-15 来源:eefocus

0 引言


随着现代科技的发展,高科技产品以其简洁化、便携等,给人们带来了很大的方便。而“摇摇棒”以其更加简捷与新颖的信息传递方式给人们带来耳目一新的感受,也必将会给人们带来一种新的方便的文化传递方式,常用在晚会及大型的娱乐节目场合。


本文通过研究和设计一个利用事先编好程序来控制16个LED发光二极管,并配合左右手的摇晃来显示字符和简易图形的电子装置(简称为“摇摇棒”),来传递有趣的信息。此装置利用AT89C51单片机对发光二极管阵列进行控制。用滚珠开关检测当前摇动状态,单片机控制16个发光二极管进行不同频率的亮灭刷新,则只要摇动就可以可显示输出文字及图案等信息,从而达到在该视觉平面上传达信息的作用。


1 硬件系统的组成


本设计的简单有趣的LED摇摇棒,它是基于单片机控制的电子装置。具有按键进行画面切换和消除重影等功能,能使画面清晰显示出来。它主要由单片机控制部分,LED驱动部分,LED显示部分组成,其硬件组成框图如图1 所示。


摇摇棒1


1.1 按键模块


本设计中通过一个画面切换开关对显示的内容进行切换。在设计中通过滚珠开关来控制摇摇棒只能向一边摇动时显示信息,否则会出现镜像字或镜像画面,也就是重影的现象。可选的摇动控制开关有水银开关和滚珠开关两种。水银开关稳定性较高,但安全性较差。滚珠开关虽然稳定性稍差,但不容易被打破,安全度很高。考虑到实际应用环境,故选用滚珠开关作为系统的摇动控制,由滚珠开关带来的不稳定性可以通过软件进行弥补。手动复位开关的功能是控制系统的启停。


1.2 控制部分


单片机最小系统作为整个系统的控制核心,它主要负责控制二极管的亮灭及显示状态。通过单片机的软件编程及外部中断,来控制摇摇棒的显示效果。


1.3 LED 显示模块


此设计中根据LED点阵的显示原理来设计显示部分。点阵的显示分为行扫描与列扫描两种,列扫描是将字模数组通过点阵屏的行驱动进行输入,然后通过列对每一行进行扫描,当列为低(高)电平、行为高(低)电平时则表示该点为图案的一部分,将其读出、显示。而本次设计的LED 显示棒数据传输原理与LED 点阵屏相似。可以把LED 显示棒看成是LED点阵屏中的一列。为了使显示的图案清晰,在设计中使用了16 个高亮度LED管将它们排成一列,整个屏在静止时也就相当于16 行×1 列。数据传输时同样使用行送数据、列扫描。在摆动过程中,应用人眼的视觉暂留原理,被点亮的列不会很快的消失,而是随着摆动的方向继续向前移动,只要移动的速度高于视觉暂留的最短时间显示内容就不会熄灭,这样,一幅图案也就可以这样被“摆动”出来了。


根据系统分析,具体的硬件电路连如图2 所示。在具体制作硬件的时候,将16 个3mm 高亮度红色的LED排列成整齐的一列。


摇摇棒2


在proteus 下仿真调试的时候,给定的电源VCC 为5V,实际使用时用3 节干电池串联4.5V 即可。


2 系统软件设计


2.1 软件设计思想


在摇动LED棒的时候单片机必须单程传送数据,否则显示的图形会产生重影,影响视觉效果。因此当系统开始工作后通过滚珠开关的位置来使单片机实现单程传送数据给LED。如果滚珠开关位于右边,则进入外部中断1 并将一变量置1,在变量为1期间让单片机以一定的频率将数据传送给LED。如果滚珠开关位于左边,则进入外部中断0 并将变量置0.在这期间单片机不会传送数据给LED。在送数据时,数据送完后应延时一段时间来使摇动时显示的每个字不会太拥挤,之后再立刻熄灭LED 并开始重新判断滚珠开关的位置。


2.2 软件设计流程图


通过软件设计思想的分析,得到该系统的主程序流程如图3所示。


摇摇棒3


系统开始运行,首先初始化整个系统,然后等待外部中断。当用手摇动到指定位置时,由滚珠开关触发外部中断,系统接收到外部中断信号后,就传送数据,再经过一段延时后开始显示。显示完成返回主程序,等待下一个摇动周期的到来。周而复始的晃动,则会显示出相应的信息。


3 结论


在设计中通过调试,使用外部中断让数据单程传输很好的取消了重影。通过改变传送数据方式:由一个字符接一个字符传送改为将一组字符一起传送,传送结束后再延时等,使显示的内容在扇形区域内完整的显示出来,同时也解决了画面连续出现没有间断的问题。所以得出,只要控制好数据传输方式以及每次传输数据间的延时就可以实现多种数据的显示方法。整个系统达到了预期的目的,结构简单,趣味性好。经过继续研究可以应用到LED广告等行业中。


推荐阅读

史海拾趣

Hoffman Engineering公司的发展小趣事

Hoffman Engineering始终将技术创新视为公司发展的核心驱动力。公司不断投入研发资源,推动产品迭代升级。在机柜系列产品中,Hoffman Engineering通过引入先进的设计理念和生产工艺,不断提升产品的性能和质量。同时,公司还积极关注行业动态和客户需求变化,及时调整产品策略和市场布局。这种持续的技术创新和产品迭代,使Hoffman Engineering在激烈的市场竞争中保持领先地位。

Electro-Term/Hollingsworth公司的发展小趣事

面对全球电子市场的不断变化,Electro-Term公司及时调整了市场布局和战略方向。公司深入分析了不同地区的市场需求和消费者偏好,制定了有针对性的市场推广策略。同时,公司还加强了与国际知名企业的合作,共同开发新技术和产品。这些努力使Electro-Term在全球市场上取得了显著的成绩。

Formosa MS公司的发展小趣事

在电子行业的激烈竞争中,Electro-Term公司凭借其独特的技术创新能力,逐步崭露头角。公司创始人在一次偶然的实验中发现了一项新的半导体材料,这种材料具有更高的导电性和稳定性。凭借这一突破,Electro-Term成功推出了一系列高性能的电子产品,赢得了市场的广泛认可。随着技术的不断升级和产品线的扩展,公司逐渐在电子行业中树立了技术领先的形象。

C-TON Industries公司的发展小趣事

随着国内市场的饱和,C-TON开始将目光投向国际市场。公司制定了全球化的发展战略,通过设立海外分公司、参加国际展会等方式,积极开拓海外市场。同时,C-TON还加强了与国际同行的交流与合作,学习借鉴他们的先进经验和技术。这些举措使得C-TON的产品逐渐在国际市场上占据了一席之地,公司的业务范围也得到了极大的拓展。

Free2Move公司的发展小趣事

在电子行业的早期阶段,C-TON Industries公司以其创新的技术理念脱颖而出。公司创始人李先生,一位电子工程领域的专家,意识到半导体技术的重要性,并决定将其作为公司的发展重点。通过不断投入研发,C-TON成功开发出了一款性能卓越的芯片,这款芯片在速度和稳定性上都远超当时市场上的同类产品。这一创新不仅赢得了客户的青睐,也帮助C-TON在市场上取得了突破性的进展。

Accuride公司的发展小趣事

作为一家专注于商用车零部件的公司,Accuride始终致力于技术创新和产品升级。其产品线涵盖了商用车车轮、卡车车身和底盘部件等多种零部件,且拥有多个知名品牌,如Accuride®、Gunite®、ImperialTM和BrillionTM等。通过不断研发和创新,Accuride成功提升了产品的质量和性能,赢得了客户的广泛认可。

问答坊 | AI 解惑

电子设计大赛多点温度检测系统

本帖最后由 paulhyde 于 2014-9-15 09:09 编辑 本设计根据课题要求,无论主控器单元还是各检测器单元都选用了价格低廉的AT89S52单片机为CPU,选用完全符合测量温度范围要求且工作一致性很高的PT100热电阻作为温度传感器,由自行设计的精密恒流源电路 ...…

查看全部问答>

中国的"技术圈"(转载)

  技术在社会公众的眼里,往往很神秘。但是在中国特定的人群中,技术也可以成为轻松的聊天话题。    举个例子,在葡萄的许多文章中,谈到技术,经常就可以发现这种神秘感。例如主席居住的象计算机阵列的房子。再比如中科大的量子传输实验,记 ...…

查看全部问答>

其他平台上创建的文件的中文文件名在PC上显示是乱码

我在ST的平台上,用向USB设备上用mkdir创建了一个中文的文件目录,从显示屏上来看确是创建成功了,而且目录层次也正常。但把USB插到PC上,发现文件名是乱码。奇怪的是,如果是创建英文名的目录或者是文件,PC上都能显示,但只要带中文的就显示不了 ...…

查看全部问答>

TFT LCD驱动程序中的一条语句不理解,请高手讲解

//========================================================================// 函数: void PutChar(unsigned char x,unsigned char y,char a)// 描述: 写入一个标准字符// 参数: x X 轴坐标 y Y 轴坐标// a 要显示的字符在字库中的偏移量// 返回 ...…

查看全部问答>

自制小电钻

       商城的电钻收到了:        2012-3-26 21:22:36 上传下载附件 (30 KB)        但是想到极客迷里还有很多像以前的我一样,没有电 ...…

查看全部问答>

关于MSP430定时器 CCR0 的问题

请问msp430定时器的ccr0每加一,用多少时间?  我自己用LAUNCHPAD写个程序给定时器A的CCR0的值是32768,同时我的晶振是32768,得到的时间是1秒,请问,这时间是怎么算出来??  希望大家能帮我解答一下不同的时钟源ccr0每加一是用多少时 ...…

查看全部问答>

Hold住低电压测量(一)

进行精密、准确的电压测量技术已为人们所熟知。但是当测量分辨率必须扩展到1微伏以下时,很多方法就达不到要求了,例如工业环境下温度、压力、力等物理参数的测量就属于这种情况。 例如,工业温度的测量通常需要0.1℃的分辨率。但是这类测量的数 ...…

查看全部问答>

g2553 藍芽模組

g2553如何使用藍芽模組船ADC10MEM的值到PC端 不懂TI提供的範例碼該如何使用…

查看全部问答>

关于STM32F429(144pin)作为LCD接口(24位RGB)模式,PB0能否作为FMC_R3

给我请问:作为24位RGB的LCD使用时,除了PB0使用引脚的AF9功能。其他脚都是使用AF14功能,这样能用吗?…

查看全部问答>

helper2416刷成了板砖

我的Helper2416 不能从TF卡启动,在操作NAND的时候,不小心刷把NAND里的UBOOT擦除了,现在成了板砖,无法启动了,求帮忙,现在不知是我TF卡的原因还是什么原因,刷完Movi板UBOOT到TF卡,一直不能启动。。。。。。。。 …

查看全部问答>