摇摇棒本为开发套件,全部采用直插的器件。显示的LED采用了5mm超高亮30度聚光发光二极管,共 32只。控制芯片采用宏晶单片机STC11F03E,其内部有3K的程序存储空间,256字节的数据存储空间,另外其内部还有2K的EEPROM空间。设计可以通过串口,把下载的画面数据到内部的EEPROM,掉电后,也不会丢失。

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

1 硬件系统的组成

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

1.1 按键模块

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

1.2 控制部分

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

1.3 LED 显示模块

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

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

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

2 系统软件设计

2.1 软件设计思想

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

2.2 软件设计流程图

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

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

下面将设计一个LED显示棒且需要有按键进行内容切换,它主要是由中央控制部分,LED驱动部分,LED显示部分以及电源部分组成,如图4所示。

图4

单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码通过I/O口输出,使LED灯点亮,利用视觉暂留原理最终使图案完整的显示在摆动的显示屏中。

3.1 LED灯的选择

传统LED发光二极管。颜色多样,在可以同样显示图案的前提下使用它更为经济。

3.2外部中断信号产生方式

通过外部中断可以控制数据开始传输的时刻。选择好外部中断来源是本次制作的难点及重点。使用惯性开关。通过摇晃使得惯性开关的摆杆与焊接的左右两个触点接触,利用这种接触产生的电平变化来触发中断,结合软件控制显示,制作简单,使用方便。 3.抗重影方案的选择:使用外部中断控制数据传输时刻。外部中断信号由惯性开关产生,触发方式为下降沿触发。惯性开关左右两边的触点分别与单片机两个外部中断接口相连,默认为高电平,摇动的摆杆接地。惯性开关处于不同位置进入不同的中断,从而决定何时送数据。该方案简单易行,可以保证数据是单程传输的,避免了重影。不摇动时把惯性开关处在左边就可以使LED棒熄灭,可以达到省电的效果。

4 结论

本次将使用单片机对摇动显示进行实例化,设计一个LED摇动显示器来显示文字、图像等信息。掌握利用8051型单片机对发光二极管阵列进行摇动控制的方法。在设计中通过调试,使用外部中断让数据单程传输很好的取消了重影。通过改变传送数据方式,由一个字符接一个字符传送改为将一组字符一起传送,传送结束后再延时等,使显示的内容在扇形区域内完整的显示出来,同时也解决了画面连续出现没有间断的问题。

led version 2.0 摇摇棒编程软件c 语言,基于单片机控制LED摇摇棒的解决方案 - 全文...相关推荐

  1. 从两边往中间流水灯c语言程序,单片机控制LED流水灯从中间向两边.doc

    WORD格式.分享 精品.资料 单片机控制LED流水灯从中间向两边,从两边向中间 这个就是把 先奇数亮再偶数亮,循环三次:一个灯上下循环三次:两个分别从两边往中间流动三次:再从中间往两边流动三次:不过 ...

  2. 从两边往中间流水灯c语言程序,单片机控制LED流水灯从中间向两边

    单片机控制LED流水灯从中间向两边,从两边向中间 这个就是把先奇数亮再偶数亮,循环三次:一个灯上下循环三次:两个分别从两边往中间流动三次:再从中间往两边流动三次:不过这个程序实现的应该是这样的先奇数亮 ...

  3. led version 2.0 摇摇棒编程软件c 语言,C语言版老李电子创意的摇摇棒程序

    #include //寄存器预定义 sbit kaiguan=P3^5;//水银开关,用于检测是否甩到左边 sbit genghuan=P3^0;//内容更换按钮,按下按钮更换显示内容 unsigne ...

  4. 51单片机led灯闪烁程序C语言,51单片机控制led灯闪烁程序

    Keil 写程序的过程,建立工程-->保存工程-->建立文件-->添加文件到工程-->编写程序-->编译-->下载程序. #include sbit LED = P ...

  5. 从两边往中间流水灯c语言程序,单片机控制LED流水灯从中间向两边,从两边向中间...

    这个就是把 先奇数亮再偶数亮,循环三次:一个灯上下循环三次:两个分别从两边往中间流动三次:再从中间往两边流动三次:不过这个程序实现的 应该是这样的  先奇数亮再偶数亮,循环三次:一个灯上下循环三次:两 ...

  6. 单片机c语言编程实现中间向两边,再从两边向中间亮的程序流程图,单片机控制LED流水灯从中间向两边.doc...

    单片机控制LED流水灯从中间向两边,从两边向中间 这个就是把 先奇数亮再偶数亮,循环三次:一个灯上下循环三次:两个分别从两边往中间流动三次:再从中间往两边流动三次:不过这个程序实现的 应该是这样的 先 ...

  7. c语言程序小灯从右向左闪烁,单片机控制LED灯点亮(C语言).PPT

    <单片机控制LED灯点亮(C语言).PPT>由会员分享,可在线阅读,更多相关<单片机控制LED灯点亮(C语言).PPT(45页珍藏版)>请在人人文库网上搜索. 1.1,单片机控 ...

  8. 基于单片机的LED数码管循环移位显示

    单片机系统基础实验--LED数码管循环移位显示 第一部分 前言 第二部分 数码管的原理构成 LED数码管的结构 LED数码管的工作原理 LED数码管的字形编码 LED数码管的控制方式 第三部分 设计项 ...

  9. STC51单片机-控制LED闪亮的仿真-物联网应用系统设计

    目录 一.说明 二.重点 三.实现 四.下载 此项目是作为单片机应用系统设计,通过STC单片机实验开发装置的结构.原理电路.以及其所能实现的功能和应用,建立单片机实现多功能综合应用系统的整体概念,打下 ...

最新文章

  1. 读微型计算机原理与接口技术 段的理解
  2. 网站URL怎样优化才比较合理?
  3. 利用第三方工具在Unity中创建多人联网游戏
  4. Haskell 函数式编程快速入门【草】
  5. 2015计算机二级c语言6,2015年计算机二级《C语言》最新章节练习题(6)
  6. 16 分频 32 分频是啥意思_CD4017是什么?十进制计数器分频器CD4017的逻辑功能呢?...
  7. linux音乐关机,在Deepin操作系统中关闭或者更改开机关机音乐的方法
  8. 设置浏览器为【默认浏览器】的两种方式
  9. Introduction to Computer Networking学习笔记(二十四):拥塞控制 TCP Reno
  10. c语言和python前景_C语言程序员未来发展前景如何
  11. WPF使用GMap.net框架开发地图应用
  12. 洛谷P3369 AVL树
  13. UVA437 巴比伦塔 The Tower of Babylon
  14. CET6 历年真题原词复现 核心词汇 做题技巧 听力拿分技巧汇总(这篇文章是英语四六级考试最后的版本,谢谢大家一路陪伴)
  15. 强大的文件管理利器-恒辉通用文件管理工具
  16. NLP相关知识点问答总结(三)
  17. 微博只显示来自android,新浪微博手机版五大常见问题解决方法
  18. contos7 安装Redis
  19. Elasticsearch-32.生产环境常用配置与上线清单 he 集群写性能优化 he 集群读性能优化
  20. 精准定位Ubuntu网速最快的软件更新网站

热门文章

  1. [人工智能学习日志]kaggle机器学习实战案例学习1
  2. 机器学习基础之模型篇-----二元分类和多元分类
  3. YAHOO 35条前端优化建议
  4. python 残差网络--ResNeXt (附python代码)
  5. openWrt编译第一个“Hello_world”应用程序IPK安装包
  6. 解决Visual C++2008安装失败,error 1935
  7. mysql timestamp 前一天_mysql之TIMESTAMP(时间戳)用法详解
  8. python opencv安装
  9. “指定的网络名不再可用的”新解决案例
  10. 使用 python 实现 获取与本机在同一局域网下的其他设备 IP和MAC的映射关系(Windows 下