找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5151|回复: 3
收起左侧

旋转LED屏制作成功!!!

[复制链接]
ID:71407 发表于 2014-12-31 00:52 | 显示全部楼层 |阅读模式
                                                                                                                                                                       
               
                                                                                                                                                    继昨天晚上干了一个通宵完成了点阵LED的调试之后,今天中午起床后又和老同学做了一个旋转LED显示屏。张魁是我中专的同学,我们酷爱技术。中专就一起做过很多电子小制作,后来我们一起上了大学,他学的是计算机网络,我学计算机应用。学的专业是计算机,但是我们干的事情却是电子老本行。到桂林不到2个星期,我们就找到了桂林的二手家电市场和跳蚤市场。这对于我们来说有着重大意义,因为这样可以花比较少的价钱获得多的电子元件。
        回到柳州后,虽然他的工作不是电子技术,但是业余生活中还是和电机技术混在一起。呵呵。早在一年前就在论坛上看见有网友用单片机做了旋转LED时钟,当时就心痒痒的想做一个,但是由于时间和材料问题,一直没有做成。这次有了点阵屏的数据算法经验,做LED旋转屏就容易多了。我和张魁分工合作,他负责机械设计,我负责程序编写。可别小看机械这一块。难度是相当大的,主要处理好旋转时的平衡和供电就很难了。今天机械样本已经做出,我们通过一天的努力,终于让旋转LED屏显示出了内容。

#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[dang_qian_lie+pian_yi_liang];//P3口LED数据=当前列+偏移量
   P1=LEDDOT[dang_qian_lie+1245+pian_yi_liang];//P1口数据=当前列+图片宽度+偏移量
   wei_fz=LEDDOT[dang_qian_lie+2490+pian_yi_liang];//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,准备下一次扫描
   }
}
  }


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
                                                                                            
                                                                               

回复

使用道具 举报

ID:72901 发表于 2015-1-28 12:22 | 显示全部楼层
不错,值得学习。
回复

使用道具 举报

ID:86621 发表于 2015-9-7 17:38 | 显示全部楼层
楼主有没有电路图啊
回复

使用道具 举报

ID:83138 发表于 2015-11-9 13:18 | 显示全部楼层

不错,值得学习。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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