网站大量收购独家精品文档,联系QQ:2885784924

LED旋转屏原理浅说.docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LED旋转屏原理浅说

LED旋转屏原理浅说2008-01-22 11:16 如果你在网上用google有哪些信誉好的足球投注网站“POV led”一词(POV即persistancd of vision),会找到世界各地的各种LED 旋转屏的制作介绍。那些摇晃出的空中图案,漂浮在车轮上的动画,以及形态各异的时钟,一定给你留下深刻印象。看到这些千奇百怪、创意无限的电子作品,除了羡慕、敬佩、感叹外,你是否想过自己亲自动手也做一个,做一个属于你自己的LED旋转屏呢?其实,无论你看到的LED旋转屏如何神奇,如何复杂,其原理都一样,也很简单,说白了就是一个晃动的流水灯。在51单片机最简系统的其中的一个端口P0接上8个LED,就是一个典型的流水灯实验电路。由于没有几个元件,说干就干,把所有元件焊在万能板上,不需花费多长时间,就可完成整个制作。下面是随便找一个流水灯的C51程序#include reg51.hvoid main(void){unsigned int i,ch;ch=0x01;while(1){ for(i=500;i0;i--); if(ch==0x00) ch=0x01; else ch=ch1; P0=~ch;}} 将这程序编译下载到系统的单片机上,待LED灯光开始正常开跑后,我们拿着它在手上来回晃动,你发现这光已经不是一条竖直线了,它已经变成了一条条斜线。你可以适当修改程序中的延时,让这一连串的斜线更漂亮些(宽和高基本一致),怎么样,我们的最简LED旋转屏就这样做成了。 高兴之余,发现这与我们的目标好象还有点遥远,我们并不需要这些斜线,怎样才能做出网上的那些大虾那样显示的各种各样的文字图案呢?接下来,我们还得想其它办法,换一下思路,将需要的图案数据一串存在数组中,运行时又将数据一串串读出来,驱动LED,这样就能看到我们想看到的图案了。这是用此思路编的流水灯C51程序#include reg51.hcode unsigned char led[]={0x01,0x02, 0x04,0x08,0x10,0x20,0x40,0x80};void main(void){unsigned int i,j;while(1){ for(j=0;j8;j++){P0=~led[j]; for(i=3000;i0;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进制0x8211111111=0xf0x8000000000=0x0011100011=0xe310010001=0x9110001001=0x8910000111=0x87 这样我们得到了我们想要的一组扫描码{0x82,0xff,0x80,0x00,0xe3,0x91,0x89,0x87}?将前一程序的数组数据改成我们得到的扫描码,我们得到新的C51程序#include reg51.hcode unsigned char led[]={0x82,0xff,0x80,0x00,0xe3,0x91,0x89,0x87};void main(void){unsigned int i,j;while(1){ for(j=0;j8;j++){P0=~led[j]; for(i=600;i0;i--);} for(i=8000;i0;i--); for(i=8000;i0;i--);}} 编译下载后,将运行进的电路板来回晃晃看……,哈,“12”已隐约出现在眼前。哈哈,是不是成功离我们已经不远了。 最后是发挥部分。接着要做的事就是解决如何让这些LED运动,如何检测运行时的开始和结束,如何给运动着的系统供电,如何控制运动着的系统….等等。不同的解决方案造就各具特色的LED旋转屏。用上面的办法对一些简单图案还能行,当遇到LED个数多或图文复杂时,用这样直接取码的工作量就会很大,这就需要专门软件,根据显示的字符和图案自动生成扫描码。好在网上有不少这类软件可免费下载,免去了手工取码之苦。 临渊羡鱼,不如退而结网,动手做一个真正属于自己的旋转LED显示并不难。

文档评论(0)

fds373ix + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档