多语言展示
当前在线:522今日阅读:103今日分享:49

教你创意的在情人节用LED对她说-我爱你

玩LED的朋友可以试着玩了,单片机程序一拷,对着心仪的女孩挥动你多情的手吧,别带走一片云彩!哈哈
工具/原料

技术工具类--烙铁等,有搞电子的朋友直接找他们好了

方法/步骤
1

AT89C2051 8元   高亮LED共8个 3.6元   电池盒 0.5元   单面万用板 8元 可以裁成3块,做3个摇棒   陶瓷谐振器 1元   光遮断器 2元   电阻电容导线 2元  外壳* 0.7元 可以裁成2块  可选元件:  电源开关 1元 总成本不超过20元

2

我们做电子技术宅们送什么礼物给心仪已久的MM?给大家提供一个适合作为礼物的简单电路,自己动手做的漂亮玩具一定会是送给MM的最好的礼物。手臂摆动的频率大于2Hz的时候才大概能由视觉暂留看出图形,再快也不过十几Hz,由T0为16位定时器的最长计时时间得到2051的时钟频率1MHz最合适,还有遮挡用的细杆的粗细也可以大概估算,使其不会对计时精度产生太大影响。---摇动棒市场上是有买,但自己做的意义就是不一样,技术宅们准备好工具就要开始了。

3

图形显示的原理:     利用人眼的视觉暂留效应,使手在摆动到不同位置的时候,让位于一条直线上的LED显示二维图像的不同的列,实现图形扫描显示。物理机制:     当我们在摆动手臂的时候,短时间内摆动位置和左右幅度不会有太大变化,利用我们手臂的这个运动规律,只要能得到棒从一侧摆动到另一侧的时间,然后把这个时间分成N份,然后在每一份的时间里显示不同的花样就能实现图形的显示。    再想想,短时间内我们手臂的摆动频率也不会有特别大的变化,我们只要能得到前一次摆动所用的时间,然后用这个时间近似得到下一次摆动所需要的时间,然后分N份就可以了。得到一次摆动所需的时间的任务由光遮断器完成,在棒上装一个可以摆动的用来遮挡光遮断器光线的细杆,粗细比光遮断器的狭缝稍宽,我用的是整流桥焊后剪下的一段管脚。每左右摆动一次这个杆就会通过一次光遮断器,使单片机产生一次中断,两次中断之间的时间就是想要得到的时间,实现这个功能用掉2051的一个定时器T0和外部中断INT0。然后用2051的另一个定时器T1,其定时时间是T0的N分之一,每次中断依次显示一列,就是照片上的效果。

4

代码:#Include  #Define SEG 17 //每帧图片分成17列来显示 #Define INTERVAL 20 //每幅图片在左右摇摆20次后换下一幅Typedef Unsigned Char Uchar; Typedef Unsigned Int Uint;Code Char Pattern[17][3]={ //3幅图片的字模 {0xff,0xff,0xff}, {0xff,0xff,0xff}, {0xff,0xff,0xff}, {0xff,0x9f,0xff}, {0xff,0x6f,0xf9}, {0xff,0x77,0x65}, {0xfe,0xbb,0x1e}, {0x7e,0xdd,0xfe}, {0x00,0xee,0xfe}, {0x7e,0xdd,0xfe}, {0xfe,0xbb,0x1e}, {0xff,0x77,0x65}, {0xff,0x6f,0xf9}, {0xff,0x9f,0xff}, {0xff,0xff,0xff}, {0xff,0xff,0xff}, {0xff,0xff,0xff}, };Uchar Phase,Th1,Tl1,Index,Count;Main() { EA=0; EX0=1; ET1=1; PX0=1; IT0=1; TMOD=0x11; Index=0; EA=1; While(1) { } }Void Int0_Handle(Void) Interrupt 0 Using 2 { Uint T0_time; TR0=0; TR1=0; TF1=0; T0_time=TH0<<8|TL0; TL0=0; TH0=0; TR0=1; T0_time=65535-T0_time/SEG; Th1=T0_time/256; TH1=Th1; Tl1=T0_time % 256; TL1=Tl1; If (Count<3*INTERVAL){ //3幅图片循环 Count++; } Else{ Count=0; } Index=Count/INTERVAL; If (Th1!=0xff || Tl1!=0xff){ //如果摆动特别慢,定时器溢出就不显示 Phase=0; TR1=1; } Else{ TR1=0; } }Void Timer1(Void) Interrupt 3 Using 3 { If (Phase

注意事项

此电路电路非常简单,代码短,但是用到了2051的外部中断编程和T0、T1定时器编程,非常适合初学者练习

推荐信息