资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
LED 旋转屏原理浅说 2008-01-22 11:16如果你在网上用 google 搜索“POV led”一词(POV 即 persistancd of vision),会找到世界各地的各种 LED 旋转屏的制作介绍。那些摇晃出的空中 图案,漂浮在车轮上的动画,以及形态各异的时钟,一定给你留下深刻印象。 看到这些千奇百怪、创意无限的电子作品,除了羡慕、敬佩、感叹外,你是否 想过自己亲自动手也做一个,做一个属于你自己的 LED 旋转屏呢?其实,无论 你看到的 LED 旋转屏如何神奇,如何复杂,其原理都一样,也很简单,说白了 就是一个晃动的流水灯。 在 51 单片机最简系统的其中的一个端口 P0 接上 8 个 LED,就是一个典型 的流水灯实验电路。由于没有几个元件,说干就干,把所有元件焊在万能板上, 不需花费多长时间,就可完成整个制作。下面是随便找一个流水灯的 C51 程序 #include void main(void) unsigned int i,ch; ch=0x01; while(1) for(i=500;i0;i-);if(ch=0x00) ch=0x01; else ch=ch code unsigned char led=0x01,0x02, 0x04,0x08,0x10,0x20,0x40,0x80; void main(void) unsigned int i,j; while(1) for(j=0;j0;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;j0;i-); for(i=8000;i0;i-);for(i=8000;i0;i-); 编译下载后,将运行进的电路板来回晃晃看,哈,“12”已隐约出现在 眼前。哈哈,是不是成功离我们已经不远了。 最后是发挥部分。接着要做的事就是解决如何让这些 LED 运动,如何检测 运行时的开始和结束,如何给运动着的系统供电,如何控制运动着的系统.等 等。不同的解决方案造就各具特色的 LED 旋转屏。 用上面的办法对一些简单图案还能行,当遇到 LED 个数多或图文复杂时, 用这样直接取码的工作量就会很大,这就需要专门软件,根据显示的字符和图 案自动生成扫描码。好在网上有不少这类软件可免费下载,免去了手工取码之 苦。临渊羡鱼,不如退而结网,动手做一个真正属于自己的旋转 LED 显示并不 难。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号