Casino论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索 casino
188bet www.188bet.com bwin 平博 unibet 明升 188bet uk Ladbrokes 德赢vwin 188bet m88.com w88 平博88 uedbet体育 188bet 188bet 威廉希尔 明升体育app 平博88 M88 Games vwin德赢 uedbet官网 bodog fun88 188bet
查看: 80582|回复: 230
打印 上一主题 下一主题
收起左侧

创意pov镜面旋转LED屏(含C源码、原理图)

  [复制链接]
跳转到指定楼层
楼主
在51hei黑论坛也逛了蛮久了,一直在看别人的作品,今天我也贡献一点内容,大家多多指教啊.
POV,英文Persistance Of Vision的缩写,即视觉暂留的意思。
用POV的原理来做显示屏,优势主要表现在:能以少量LED实现传统方式下海量LED才能实现的显示屏。例如POV的16个LED可以轻松地同时显示16个汉字,而传统LED屏需要4096个LED。 随之而来的是,体积小巧便于安装在适当的场合。字样或图案的显示效果,如漂浮在半空中。

网上有老外做的LED旋转显示屏,在技术上软硬件都不难,只需要花些时间慢慢调就能出来。关键是,给旋转的LED供电,对电子爱好者来说,是个麻烦事。这里,给出一个不需要给LED电路供电的方法。即让LED和Casino电路固定不动,而是旋转一面镜子。原理1.用一个小直流电机将一块镜子旋转起来(镜子背面贴一个小磁铁片);2.在镜子旋转的支架上,固定一个干黄管或霍尔芯片(检测是否有磁铁靠近),霍尔芯片的输出脚连到Casino上,这样Casino就知道电机的旋转速度。3.根据人眼的视觉滞留(大概是0.1~0.2秒),和上述测到的实时的电机旋转速度,在不同的瞬间,点亮LED,最终就形成LED显示的一个屏幕。(小时候的晚上,拿着蚊香在空中划过,就变成了一条红线,同理,一条LED线划过,会变成一个面。)Casino电路 实物




放置Casino电路:

旋转后 显示效果:

由于此旋转结构是木头铁皮做的支架,精度较低,所以显示效果还可以再提高很多,这里只是抛砖引玉。


介绍

下面实物图中有两部分组成,一是旋转LED屏Demo板,二是风扇电机。Demo板固定在旋转轴上,电机转动后,Demo板上的16 个LED灯的旋转轨迹是个圆柱面。运行后,显示文字或图形,效果图如下图的"奥运加油"字样。
   
  实物图        

  
效果图
本设计另一个特点:以10个IO控制点亮16个LED灯(甚至可以做到32个LED),这样使得2051这样小Casino也能实现。
将Demo板绑在自行车的钢丝上(PCB上有6个定位钻孔,很方便),如下图。同时绑上3电池。在下图“小磁铁”处自行车内侧放一个小磁铁,以便Demo板上的霍尔芯片能感应到。车轮旋转起来后,显示的字样如下图右侧。

   




其它效果



原理图: 原理图.pdf (52.26 KB, 下载次数: 1395)
代码: 0004_Software.rar (3.55 KB, 下载次数: 1043)

评分

参与人数 11威望 +9 黑币 +46 收起 理由
chit100 + 5
楊yy + 5 很给力!
桂电小天使 + 5 绝世好帖!
彬Lsl + 5 很给力!
SHA手 + 5 很给力!
czy099128 + 5 很给力!
HGH铁柱 + 4 绝世好帖!
半块电路板 + 5 赞一个!
environmentx + 7
高山有崖 + 4
V刹V + 5 回帖助人的奖励!

查看全部评分

沙发
 楼主| laowen 发表于 2013-6-26 16:16 | 只看该作者
  1. ///////////////////////////////////////////////////
  2. //
  3. //硬件配置: P00~P07=LED1~LED8,
  4. //                    P27~P20=LED9~LED16,
  5. //          INT0=Hall IC
  6. //
  7. //                        Crystal: 11.0592M
  8. ///////////////////////////////////////////////////
  9. #include <reg51.h>
  10. #include <string.h>


  11. //STC系列特殊寄存器
  12. sfr AUXR        =         0x8e ;//bit7~0 : T0x12 T1x12 UART_M0x6 EADCI , ESPI ELVDI - -
  13. sfr        P1M0        =        0x91;
  14. sfr        P1M1        =        0x92;
  15. sfr        P2M0        =        0x95;
  16. sfr        P2M1        =        0x96;
  17. sfr        P3M0        =        0xb1;
  18. sfr        P3M1        =        0xb2;

  19. unsigned int Font[3][16]=//赛先生
  20. {
  21. {0x1010,
  22. 0x6110,
  23. 0x4120,
  24. 0x5541,
  25. 0x550F,
  26. 0x7F42,
  27. 0x5542,
  28. 0xD55C,
  29. 0x5542,
  30. 0x7F42,
  31. 0x55F9,
  32. 0x5541,
  33. 0x4120,
  34. 0x5130,
  35. 0x6020,
  36. 0x0000
  37. },
  38. {0x0000,0x0A08,0x7210,0x2260,0x2380,0x2200,0xFE00,0x2200,  0x23F0,0x2208,0x2208,0x0208,0x0230,0x0000,0x0000,0x0000},
  39. {0x0408,0x1808,0xF108,0x1108,0x1108,0x1108,0xFFF8,0x1108,  0x1108,0x1108,0x1108,0x1008,0x0008,0x0000,0x0000,0x0000}

  40. };


  41. unsigned char MASK_1BIT_ON[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  42. unsigned int ReverseHighByteOrder(unsigned int a)
  43. {
  44.         unsigned char c,i;
  45.         unsigned int b;
  46.         b=(a>>8)&0x00ff;//b=调换之前的high字节

  47.         c=0;//c=调换之后的字节
  48.         for(i=0;i<8;i++)
  49.         {
  50.                 if(MASK_1BIT_ON[i]&b)
  51.                         c=c|MASK_1BIT_ON[7-i];
  52.         }


  53.         b=c;
  54.         b=(b<<8)&0xff00;
  55.         b=b+(a&0x00ff);
  56.         return b;
  57. }
  58. unsigned int ReverseLowByteOrder(unsigned int a)
  59. {
  60.         unsigned char b,c,i;
  61.         b=a&0xff;//b=调换之前的低字节

  62.         c=0;//c=调换之后的低字节
  63.         for(i=0;i<8;i++)
  64.         {
  65.                 if(MASK_1BIT_ON[i]&b)
  66.                         c=c|MASK_1BIT_ON[7-i];
  67.         }

  68.         a=a&0xff00;
  69.         a=a+c;
  70.         return a;
  71. }
  72. void Delay_ms(ms)
  73. {
  74.         int i,j;
  75.         for(i=0;i<ms;i++)
  76.         {
  77.                 for(j=0;j<10;j++)
  78.                 {}
  79.         }
  80. }

  81. char HallIC_Coming;//是否是Hall IC碰到磁场
  82. int Timer0_Cnt;//Timer0中断计数
  83. ///////////////////////////////////////////////////
  84. //
  85. //主函数
  86. //
  87. ///////////////////////////////////////////////////
  88. void main()
  89. {       
  90.         int i;
  91.         for(i=0;i<16;i++)
  92.         {
  93.                 Font[0][i]=        Font[0][i]^0xffff;//反相
  94.         //        Font[0][i]=ReverseLowByteOrder(Font[0][i]);//低字节的bit0~7修改为bit7~0
  95.                 Font[0][i]=ReverseHighByteOrder(Font[0][i]);//高字节的bit0~7修改为bit7~0
  96.         }

  97.         //Test
  98.         P0=0x00;//全部打开LED
  99.         P2=0x00;
  100.         Delay_ms(1000);
  101.         P2=0xff;

  102.            //Timer0的设置
  103.         TR0 = 1;                //timer0启动
  104.         ET0 = 1;                //timer0中断
  105.            TMOD |= 0x01;   //timer0设置为mode1
  106.         TH0=TL0=0;

  107.         EX0 = 1;       
  108.         EA = 1;

  109.         //计算电机旋转速度
  110. /*        Timer0_Cnt=0;
  111.         HallIC_Coming=0;
  112.         for(i=0;i<100;i++)
  113.         {
  114.                 while(HallIC_Coming==0);
  115.                 HallIC_Coming=0;
  116.         }
  117. */        TR0=0;
  118.         ET0=0;
  119.        
  120.        

  121.         ////////////////////////////
  122.         //正式开始
  123.         HallIC_Coming=0;
  124.         while(1)
  125.         {
  126.                
  127.                 if(HallIC_Coming)//等待Hall IC触发的中断
  128.                 {
  129.                         //处理
  130.                         for(i=0;i<16;i++)                       
  131.                         {
  132.                                 P2=Font[0][i]&0xff;
  133.                                 P0=(Font[0][i]>>8)&0xff;
  134.                                 Delay_ms(5);
  135.                         }
  136.                         ////////////////////////////
  137.                         P0=P2=0xff;
  138.                         HallIC_Coming=0;
  139.                 }

  140.         }

  141. }


  142. ////////////////////////////////////////////////////////////////////////////////////////
  143. //
  144. //外部中断0 (INT0,由Hall IC输出脚触发)
  145. //
  146. ////////////////////////////////////////////////////////////////////////////////////////
  147. void ISR_INT0(void) interrupt 0
  148. {
  149.         HallIC_Coming=1;
  150. }

  151. //Timer0中断
  152. void ISR_Timer0(void) interrupt 1
  153. {
  154.         Timer0_Cnt++;
  155. }
复制代码
板凳
左左右右 发表于 2013-7-1 16:52 | 只看该作者
膜拜啊 能做出这么牛的东西来,51hei(51黑)论坛有你更精彩.
地板
左左右右 发表于 2013-7-1 16:55 | 只看该作者
我也来51hei很久了 咋就很难有进步呢 现在还只能搞流水灯之类的简单东西.
5#
Binz1960 发表于 2013-7-4 20:26 | 只看该作者
谢谢分享
6#
nanguoguangzi 发表于 2013-7-9 05:42 | 只看该作者
支持,好作品
7#
新手不新 发表于 2013-7-10 16:43 | 只看该作者
不怎么好玩
8#
630540132 发表于 2013-7-12 14:41 | 只看该作者
太了不起了...什么時候我才可以額這樣子的能力哦...
9#
锅锅卟帅 发表于 2013-7-16 10:10 | 只看该作者
厉害啊
10#
锅锅卟帅 发表于 2013-7-16 10:13 | 只看该作者
厉害啊
11#
锅锅卟帅 发表于 2013-7-16 10:14 | 只看该作者
有创意!!
12#
朗朗繁星 发表于 2013-7-16 22:11 | 只看该作者
好哈学习学习
13#
wuhaisheng258 发表于 2013-7-17 11:25 | 只看该作者
谢谢分享
14#
№奔跑№ 发表于 2013-7-18 19:56 | 只看该作者
菜鸟加初学者表示膜拜
15#
1156615097 发表于 2013-7-23 22:25 | 只看该作者
有套件卖吗?我要
16#
liaows 发表于 2013-7-24 09:06 | 只看该作者
谢谢分享,试做一下。
17#
weiyy216 发表于 2013-7-25 16:26 | 只看该作者
请问楼主   显示效果受旋转速度影响吗?如装在自行车轮子上的那种。
18#
鲜の水晶葡萄 发表于 2013-7-30 22:24 | 只看该作者
不错不错
19#
fxping163 发表于 2013-8-3 14:09 | 只看该作者
可以,有创意。
20#
CK、东哥 发表于 2013-8-4 22:13 | 只看该作者
不错,支持下
21#
啵~~ 发表于 2013-8-5 10:17 | 只看该作者
谢谢楼主啦
22#
Bwin官网 发表于 2013-8-7 16:27 | 只看该作者
学习啦!
23#
pkj 发表于 2013-8-8 16:57 | 只看该作者
真厉害,向你学习
24#
aimei 发表于 2013-8-9 23:09 | 只看该作者
这个不错,准备做个来玩玩
25#
f800380564 发表于 2013-8-10 18:50 | 只看该作者
大神  牛逼啊
26#
SisuoComputer 发表于 2013-8-11 17:26 | 只看该作者
谢谢分享。。。。。。。。。。。
27#
SisuoComputer 发表于 2013-8-11 17:27 | 只看该作者
厉害。。。。。。。。。。
28#
陨落的Einstein 发表于 2013-8-17 20:29 | 只看该作者
很有创意!楼主,你确定是这份程序?这程序算不出来转速。你是不是在来回调那个Delay_ms(5);?
29#
陨落的Einstein 发表于 2013-8-17 20:42 | 只看该作者
顺便问下,楼主有霍尔元件选型网站、资料、手册吗?
30#
苏樟超 发表于 2013-9-11 14:30 | 只看该作者
原理图器件名称,电阻值标的不是很明确。
31#
苏樟超 发表于 2013-9-11 14:31 | 只看该作者
3Mhz249是什么?LED限流电阻是51欧姆?
32#
苏樟超 发表于 2013-9-11 14:31 | 只看该作者
3Mhz249是什么?LED限流电阻是51欧姆?
33#
爱你一万年 发表于 2013-9-24 19:58 | 只看该作者
学一下
34#
模拟 发表于 2013-10-1 16:34 | 只看该作者
不错,不错,不错,学习学习
35#
模拟 发表于 2013-10-1 16:34 | 只看该作者
学习一下
36#
伤心童话 发表于 2013-10-2 22:09 | 只看该作者
不错啊!刚接触。多多交流。
37#
jinchouxing 发表于 2013-10-3 21:29 | 只看该作者
努力学习中
38#
~荆棘鸟~ 发表于 2013-10-7 22:55 | 只看该作者
蛮有创意的
39#
~荆棘鸟~ 发表于 2013-10-7 22:56 | 只看该作者
看了Casino功能太强大了
40#
HUFUHA 发表于 2013-10-9 01:57 | 只看该作者
学习一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Casino论坛 |51黑电子论坛技术交流 QQ 管理员QQ:125739409;技术交流QQ群636986012

Powered by Casino教程网

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