搜索
bottom↓
回复: 4

摇摇棒原理介绍

[复制链接]

出0入0汤圆

发表于 2013-6-2 19:55:34 | 显示全部楼层 |阅读模式
POV led”一词(POV即persistancd of vision),LED旋转屏。那些摇晃出的空中图案,漂浮在车轮上的动画,以及形态各异的时钟,一定给你留下深刻印象。你是否想过自己亲自动手做一个LED旋转屏呢?其实说白了就是一个晃动的流水灯。


  在51单片机最简系统的其中的一个端口P0接上8个LED,就是一个典型的流水灯实验电路。由于没有几个元件,说干就干,把所有元件焊在万能板上,不需花费多长时间,就可完成整个制作。
  


  下面是随便找一个流水灯的C51程序
  #include
  void main(void)
  {
  unsigned int i,ch;
  ch=0x01;
  while(1)
  {
  for(i=500;i>0;i--);
  if(ch==0x00) ch=0x01; else ch=ch<<1;
  P0=~ch;
  }
  }
  将这程序编译下载到系统的单片机上,待LED灯光开始正常开跑后,我们拿着它在手上来回晃动,你发现这光已经不是一条竖直线了,它已经变成了一条条斜线。你可以适当修改程序中的延时,让这一连串的斜线更漂亮些(宽和高基本一致),怎么样,我们的最简LED旋转屏就这样做成了。
  


  高兴之余,发现这与我们的目标好象还有点遥远,我们并不需要这些斜线,怎样才能做出网上的那些大虾那样显示的各种各样的文字图案呢?接下来,我们还得想其它办法,换一下思路,将需要的图案数据一串存在数组中,运行时又将数据一串串读出来,驱动LED,这样就能看到我们想看到的图案了。
这是用此思路编的流水灯C51程序
  #include
  code unsigned char led[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  void main(void)
  {
  unsigned int i,j;
  while(1)
  {
  for(j=0;j<8;j++){
  P0=~led[j];
  for(i=3000;i>0;i--);
  }
  }
  }
  运行看一下,结果与我们的第一个程序效果是一样的,但这个程序的优势在于我们可以按我们的要求,改变数组中的数据来驱动端口上的LED,达到我们预期的显示效果。这可以说是流水灯的万能程序。这样我们迈出了第一步。
  再来看如何产生需要的图案。
  现在我们让LED显示数字12为例,我们先作一个表。
  0 1 0 0 1 1 1 1 低四位
  1 1 0 0 1 0 0 1
  0 1 0 0 0 0 0 1
  0 1 0 0 0 0 1 0
  0 1 0 0 0 1 0 0 高四位
  0 1 0 0 1 0 0 0
  0 1 0 0 1 0 0 0
  1 1 1 0 1 1 1 1
  从下到上将每列看成是一个16进制数,我得到8个16进制数
  10000010=0x82
  11111111=0xff
  10000000=0x80
  00000000=0x00
  11100011=0xe3
  10010001=0x91
  10001001=0x89
  10000111=0x87
  这样我们得到了我们想要的一组扫描码{0x82,0xff,0x80,0x00,0xe3,0x91,0x89,0x87}
  将前一程序的数组数据改成我们得到的扫描码,我们得到新的C51程序
  #include
  code unsigned char led[]={0x82,0xff,0x80,0x00,0xe3,0x91,0x89,0x87};
  void main(void)
  {
  unsigned int i,j;
  while(1)
  {
  for(j=0;j<8;j++){
  P0=~led[j];
  for(i=600;i>0;i--);
  }
  for(i=8000;i>0;i--);
  for(i=8000;i>0;i--);
  }
  }
  编译下载后,将运行进的电路板来回晃晃看……,哈,“12”已隐约出现在眼前。
  


  


  哈哈,是不是成功离我们已经不远了。
  最后是发挥部分。接着要做的事就是解决如何让这些LED运动,如何检测运行时的开始和结束,如何给运动着的系统供电,如何控制运动着的系统….等等。不同的解决方案造就各具特色的LED旋转屏。
(本文转自电子工程世界:http://www.eeworld.com.cn/LED/2012/0321/article_6619.html)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2013-6-2 20:07:15 | 显示全部楼层
不错。。。

出0入0汤圆

发表于 2013-6-3 21:48:04 来自手机 | 显示全部楼层
浅显易懂........

出0入0汤圆

发表于 2013-6-3 21:49:57 | 显示全部楼层
高速扫描,从某个角度跟户外led屏幕差不多

出0入0汤圆

发表于 2013-6-3 21:56:54 | 显示全部楼层
的确是浅显易懂。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 12:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表