微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 真正DIY勇士,打造超复杂LED立方光升级版

真正DIY勇士,打造超复杂LED立方光升级版

时间:04-22 来源:Chinked-out工作室 点击:

  本文把原有的立方光硬件升级,让电路更简单,程序更简洁,以前的设计是由16个IC驱动的,好处是有可切换的坐标系,但16个IC和128根连接线的工作量实在不小,虽然控制程序只有60多行,但硬件的复杂让很多初学者望而却步。

  一直以来,我都在思考做什么样的设计给大家,就拿立方光来说,为了程序的简洁、易于理解,我的硬件电路不同于美国的原版设计,也因为8位单片机的局限性,这也是当时我能想到最好的解决方案。程序的简化是硬件的复杂弥补的。可是工作室的这种设计行吗?

  就效果而言是可行的,后来很多网友都仿做了出来,可我觉得不行。美国原版的设计电路要比我的简单,那么有没有硬件更简单且程序更短的?抱着这种想法,我在11月初开始了设计,一周的时间,竟然完成了。

  现在的立方光,硬件更简单,只有5个IC控制,不想用245的可以去掉,改为4个IC控制。这样硬件电路焊接比起之前的设计,大为简化,连接线也由以前的128根改为72根(和美国原作一样)。控制端口也有以前的三组改为2组16个。程序不但没有加长,反而更加简短。也不需要外接电源,USB供电即可。我实物用的是手机充电器供电,5V500ma,效果很好。这次的改进,唯一的缺点就是失去了可切换的坐标系,程序虽然简单,但需要一段时间理解。接下来就是秉承工作室传统,开始图文解说。

  因为改了硬件,动画代码应该也做修改的,以为工作繁忙,就没时间做这部分了,所以大家看到的图案是与之前比,是上下颠倒的,有耐心的同学自己可以修改动画字符,每行的动画字符左右对称调换位置即可。这次的视频里,我特意修改的动画切换时间,而且这次也用的是非增强型单片机,就是想证明下,8位非增强型单片机,一样可以有这种效果,之前有网友评论说速度不够快,估计是没看程序就这么说了。

  先是原理图:

  

  左边的64个电阻其实是底面板的64个共阳点,我用的是2P弯排针固定,所以就用电阻来表示了,之前的原理图是用二极管表示的,其实都一样,反正就两个点。最后出来8跟总线,我在做的时候,是加了245做驱动的,其实后来想想,也可以不加,改为其他端口控制,加上限流电阻就可以了,这样可以再节省一个IC。当然,如果想保留P1、P3端口的,还是用P0做输出吧,加个245而已。

  右边的64个电阻是侧面板的共阴极节点,点的一端接就是接线了,一共64根,接到4个154的输出端口即可。

  实物焊接图

  侧面板图

  

  

  这是我焊接的64根连接线,这64根还是必不可少的,材料用的是8P插座,一头是8P的座子,一头是镀锡导线,很便宜,用起来非常方便。

  底面板图

  

  

  底面板与之前的设计比起来,没有了64根线,改为8根总线输出。

  驱动板图

  

  就是4个154顺序排列,布局是就看你的心情了。

  驱动板背面

  

  觉得自己的焊接还凑合吧

  完工图

  

  最后就是上程序了,有文本文档和HEX下载文件。中文注释暂时没时间编写,发布消息请留意工作室qq空间或工作室微博。

  控制代码如下:

  LED_Y EQU P2

  LED_X EQU P0

  ORG 00H

  sjmp start ;开始程序

  org 000bh ;定时中断0地址

  sjmp count

  START:

  MOV SP,#60H

  MOV DPTR,#TAB

  MOV R0,#79H

  MOV R1,#00H

  mov r4,#10

  MOV TMOD,#01H

  mov ie,#82h

  MOV TH0,#0d8H

  MOV TL0,#0f0H

  SETB TR0

  MAIN:

  MOV DPL,R0

  MOV DPH,R1

  MOV R2,#11100000B

  cjne r1,#5ah,LED1

  sjmp start

  LED1:

  lcall play

  CJNE R2,#11110000B,LED1

  MOV R2,#11010000B

  LED2:

  lcall play

  CJNE R2,#11100000B,LED2

  MOV R2,#10110000B

  LED3:

  lcall play

  CJNE R2,#11000000B,LED3

  MOV R2,#01110000B

  LED4:

  lcall play

  CJNE R2,#10000000B,LED4

  SJMP MAIN

  play:

  MOV LED_Y,R2

  CLR A

  MOVC A,@A+DPTR

  MOV LED_X,A

  mov r7,#80

  DJNZ R7,$

  MOV LED_X,#00H

  INC DPTR

  INC R2

  ret

  count:

  DJNZ R4,NEXT

  MOV R4,#10

  mov r6,a

  mov a,r0

  add a,#64

  mov r0,a

  mov a,r1

  addc a,#0

  mov r1,a

  clr cy

  mov a,r6

  NEXT:

  MOV TH0,#0d8H

  MOV TL0,#0f0H

  RETI

  完整程序请下载ASM文件。
  LED光立方程序资料包

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top