oufuqiang 发表于 2009-11-15 17:21:24

旋转LED。

继昨天晚上干了一个通宵完成了点阵LED的调试之后,今天中午起床后又和老同学做了一个旋转LED显示屏。张魁是我中专的同学,我们酷爱技术。中专就一起做过很多电子小制作,后来我们一起上了大学,他学的是计算机网络,我学计算机应用。学的专业是计算机,但是我们干的事情却是电子老本行。到桂林不到2个星期,我们就找到了桂林的二手家电市场和跳蚤市场。这对于我们来说有着重大意义,因为这样可以花比较少的价钱获得多的电子元件。

      回到柳州后,虽然他的工作不是电子技术,但是业余生活中还是和电机技术混在一起。呵呵。早在一年前就在论坛上看见有网友用单片机做了旋转LED时钟,当时就心痒痒的想做一个,但是由于时间和材料问题,一直没有做成。这次有了点阵屏的数据算法经验,做LED旋转屏就容易多了。我和张魁分工合作,他负责机械设计,我负责程序编写。可别小看机械这一块。难度是相当大的,主要处理好旋转时的平衡和供电就很难了。今天机械样本已经做出,我们通过一天的努力,终于让旋转LED屏显示出了内容。
LED        接口        LED        接口        LED        接口
1        3.7        9        1.7        17        0.0
2        3.6        10        1.6        18        0.1
3        3.5        11        1.5        19        0.2
4        3.4        12        1.4        20        0.3
5        3.3        13        1.3        21        0.4
6        3.2        14        1.2        22        0.5
7        3.1        15        1.1        23        0.6
8        3.0        16        1.0        24        0.7


#include <reg52.h>

sbit hall = P2^7;//霍尔信号,低电平

unsigned char dang_qian_lie;//当前扫描到哪一列
unsigned char wei_fan_zhuan,wei_fz;//P0口位反转临时变量
unsigned int pian_yi_liang;//控制走字偏移量
unsigned char code LEDDOT[]={点阵数据};
void delay(unsigned time)
{
while(time--);//延时
}
void main(void)
{
while(1)
    {
while(hall);//等待霍尔信号变低
dang_qian_lie=0;//当前扫描列复位
pian_yi_liang++;//走屏偏移量+1
if(pian_yi_liang>1245){pian_yi_liang=0;}//判断扫过一圈了没有,736是图片宽度
while(dang_qian_lie<=200)//扫描一圈的图像宽度
   {
   dang_qian_lie++;//当前扫描列+1
   P3=LEDDOT;//P3口LED数据=当前列+偏移量
   P1=LEDDOT;//P1口数据=当前列+图片宽度+偏移量
   wei_fz=LEDDOT;//P0口数据=当前列+图片宽度X2+偏移


   wei_fan_zhuan=0;//临时变量初始化
   if(wei_fz&0x01){wei_fan_zhuan=wei_fan_zhuan|0x80;}
   if(wei_fz&0x02){wei_fan_zhuan=wei_fan_zhuan|0x40;}
   if(wei_fz&0x04){wei_fan_zhuan=wei_fan_zhuan|0x20;}
   if(wei_fz&0x08){wei_fan_zhuan=wei_fan_zhuan|0x10;}
   if(wei_fz&0x10){wei_fan_zhuan=wei_fan_zhuan|0x08;}
   if(wei_fz&0x20){wei_fan_zhuan=wei_fan_zhuan|0x04;}
   if(wei_fz&0x40){wei_fan_zhuan=wei_fan_zhuan|0x02;}
   if(wei_fz&0x80){wei_fan_zhuan=wei_fan_zhuan|0x01;}
   P0=wei_fan_zhuan;//数据输出
   delay(40);//字体宽度,与旋转速度有关,值越大字越宽
   P1=0XFF;//关闭LED,准备下一次扫描
   P3=0XFF;//关闭LED,准备下一次扫描
   P0=0XFF;//关闭LED,准备下一次扫描
   }
}
}

valley 发表于 2009-11-15 17:25:54

无图无真相

dengxiaofeng 发表于 2009-11-15 17:30:57

呵呵 恭喜你呀!!!!

coody 发表于 2009-11-15 19:02:31

祝贺。。。

唉!什么时候能回柳州来一碗螺蛳粉呢?盼望。。。

jesseh 发表于 2009-11-15 19:50:20

支持一下,期待楼主早点上图。

ppsen 发表于 2009-11-15 20:50:45

没图啊

wxdl 发表于 2009-11-15 22:27:12

给个图吧

oufuqiang 发表于 2009-11-15 22:43:49

又星期一了,我自己没有相机,等弄到相机了补上吧 。可怜啊。因为一直觉得相机用处不大就一直没买

dasong 发表于 2009-11-16 08:00:26

现在LED条屏控制卡(带软件)几十元1块,将它移植到旋转屏上就好了,更改内容方便,信息存储量大。

icer1 发表于 2009-11-16 08:13:55

这里找不到螺蛳粉

kclc 发表于 2009-11-16 09:49:27

正好在做旋转时钟 参考下学习

tangqianqian 发表于 2009-11-17 08:34:20

上图吧,看都看不到。

lucky_girl 发表于 2009-11-17 21:14:49

楼主在柳州什么公司啊?

oufuqiang 发表于 2009-11-17 21:45:38

在中专做专业实习指导老师。

lucky_girl 发表于 2009-11-18 20:54:24

厉害是不是一职校?

oufuqiang 发表于 2009-11-18 22:21:35

不会吧,你也是一职校的??????????

lucky_girl 发表于 2009-11-19 18:29:32

呵呵 我在柳州一个小公司

guhenggao 发表于 2010-3-1 10:00:34

mark

liangyanzhuo11 发表于 2011-11-22 10:35:13

回复【楼主位】oufuqiang CNOS
-----------------------------------------------------------------------

楼主有具体的原理图吗

hlfqzy 发表于 2012-8-3 12:00:33

图呢,有图才能有说法呀
页: [1]
查看完整版本: 旋转LED。