• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

自己做的51单片机和573光立方的仿真流程,大家提提意见(程序、电路图原理图,附4X4X4光立方制作)

自己动手做了一个光立方,拿出来和大家分享一下,有原理图和程序下载

这是之前的仿真图

这是修改过后的仿真图

删除了ULN2803(解决了之前在上位机上点亮一个LED点阵上却点亮一整排的问题,同时使得其他的动画也能看出一些效果)

经过反复测试,晶振频率定在3*11.0592MHz。修改了定时器初值加快刷新。波特率依旧是57600。

效果图我就不截了,自己打开看看就知道了,比以前稳定许多。

资料和大家共享一下。

电路图资料.rar

CUBE8程序 仿真 上位机 虚拟串口.rar

完整LED光立方原理图.pdf

全部回复(35)
正序查看
倒序查看
pirate
LV.4
2
2014-02-08 10:40
楼主没发现在运行的时候有几个灯一闪一闪的吗?
0
回复
001a
LV.3
3
2014-02-08 10:58
@pirate
楼主没发现在运行的时候有几个灯一闪一闪的吗?
刚弄完的时候貌似也有出现这个问题。但是后来莫名其妙的就消失了。您又遇到了?其实确实有一点问题,但是电路我仔细检查过是确定无误的。由于还没有做出来硬件所以无法判断是否是程序问题。我猜想有可能是PROTEUS仿真速度跟不上,串口波特率有点高。或者是CPU处理速度跟不上。电路图应该是没问题的哦,可以放心使用。
0
回复
for_real
LV.3
4
2014-02-08 11:05
仿真程序和上位机之间怎么联系起来的啊?
0
回复
001a
LV.3
5
2014-02-08 14:19
@for_real
仿真程序和上位机之间怎么联系起来的啊?
需要安装虚拟串口软件,然后添加串口对,比如添加后是(com2-->com3)那么,在上位机上选择com2,双击仿真图里的串口座,选择com3。com2,com3顺序可调换
0
回复
001a
LV.3
6
2014-02-08 16:03

在进行修改之前,我画出了下面这一张仿真图

 

没有使用点阵,全部用独立LED。可能是元件太多的缘故,启动仿真之后非常卡,根本没有任何效果。删除其余LED只保留一个8*8阵列进行仿真时就不卡了,并且能够看到一些效果。这个文件在压缩包里也有,有兴趣的或者电脑NB点的可以继续研究一下。

另外,针对之前有朋友反应注释不够详细的情况,修改过后的程序增加了注释,希望对大家多一些帮助。

也有朋友问过上位机跟仿真图如何连接,在这里统一解答一下

1.打开虚拟串口软件,选择添加串口对(通常添加的是COM2和COM3)

 

2.右键我的电脑-->管理-->设备管理器-->端口就能看到之前添加的串口对了

3.打开仿真图双击仿真图里面的串口座,修改端口为COM2/COM3,波特率57600,其余默认

 

记得配置单片机晶振为3*11.0592MHz=33.1776MHz

 

4.打开上位机,修改端口为COM3/COM2(与仿真图里的串口使用同一串口对的不同串口号)选择波特率为57600,点connect即可

 

0
回复
金鱼1
LV.3
7
2014-02-22 18:08
@001a
在进行修改之前,我画出了下面这一张仿真图[图片] 没有使用点阵,全部用独立LED。可能是元件太多的缘故,启动仿真之后非常卡,根本没有任何效果。删除其余LED只保留一个8*8阵列进行仿真时就不卡了,并且能够看到一些效果。这个文件在压缩包里也有,有兴趣的或者电脑NB点的可以继续研究一下。另外,针对之前有朋友反应注释不够详细的情况,修改过后的程序增加了注释,希望对大家多一些帮助。也有朋友问过上位机跟仿真图如何连接,在这里统一解答一下1.打开虚拟串口软件,选择添加串口对(通常添加的是COM2和COM3)[图片] 2.右键我的电脑-->管理-->设备管理器-->端口就能看到之前添加的串口对了[图片]3.打开仿真图双击仿真图里面的串口座,修改端口为COM2/COM3,波特率57600,其余默认[图片] 记得配置单片机晶振为3*11.0592MHz=33.1776MHz[图片] 4.打开上位机,修改端口为COM3/COM2(与仿真图里的串口使用同一串口对的不同串口号)选择波特率为57600,点connect即可[图片][图片] 
自己也有一个那种光立方取模软件,不会使用苦恼中
0
回复
matou
LV.3
8
2014-02-22 18:11
@001a
在进行修改之前,我画出了下面这一张仿真图[图片] 没有使用点阵,全部用独立LED。可能是元件太多的缘故,启动仿真之后非常卡,根本没有任何效果。删除其余LED只保留一个8*8阵列进行仿真时就不卡了,并且能够看到一些效果。这个文件在压缩包里也有,有兴趣的或者电脑NB点的可以继续研究一下。另外,针对之前有朋友反应注释不够详细的情况,修改过后的程序增加了注释,希望对大家多一些帮助。也有朋友问过上位机跟仿真图如何连接,在这里统一解答一下1.打开虚拟串口软件,选择添加串口对(通常添加的是COM2和COM3)[图片] 2.右键我的电脑-->管理-->设备管理器-->端口就能看到之前添加的串口对了[图片]3.打开仿真图双击仿真图里面的串口座,修改端口为COM2/COM3,波特率57600,其余默认[图片] 记得配置单片机晶振为3*11.0592MHz=33.1776MHz[图片] 4.打开上位机,修改端口为COM3/COM2(与仿真图里的串口使用同一串口对的不同串口号)选择波特率为57600,点connect即可[图片][图片] 
**此帖已被管理员删除**
0
回复
2014-02-22 18:24
很多程序的P0,P1,P2,口没有定义清楚就用了,给读程序的造成很大困扰
0
回复
001a
LV.3
10
2014-02-22 18:25
记得程序中有注释出来P0,P1,P2分别是干什么的。这段时间稍微有点空,我也会重新整理下仿真图和程序。
0
回复
stony_s
LV.3
11
2014-02-22 18:26
自己做了一个,没有进行仿真,楼主太细心了!
0
回复
god_father
LV.3
12
2014-02-22 18:28
我用在实际的3D8  怎么收到数据后,不能正常显示呢例如我按他全灭,他亮了一下就灭,我按全亮,它也亮一下就灭,不能锁存数据的?
0
回复
001a
LV.3
13
2014-02-22 18:29
@god_father
我用在实际的3D8  怎么收到数据后,不能正常显示呢例如我按他全灭,他亮了一下就灭,我按全亮,它也亮一下就灭,不能锁存数据的?
个问题我倒没有遇到过。1.确定你的光立方硬件连接是否和仿真图一样的?2.能否发一下你烧写进单片机的程序的代码。最好下载我后面上传那个压缩包里面的程序(如果硬件连接一样的话)
0
回复
for_real
LV.3
14
2014-02-22 18:30
我做的和你这个差不多  为什么按开关是不亮  可是用手抓一根导线碰下uln2803的输出引脚   碰一个就亮一个   这是怎么回事啊
0
回复
001a
LV.3
15
2014-02-22 18:32
@for_real
我做的和你这个差不多  为什么按开关是不亮  可是用手抓一根导线碰下uln2803的输出引脚  碰一个就亮一个  这是怎么回事啊
干扰的问题?
0
回复
heal
LV.3
16
2014-02-22 18:33
正准备用arduino做
0
回复
2014-02-22 18:35
我的电脑64个LED就要卡半天了
0
回复
cloud7890
LV.2
18
2014-02-22 18:37
写程序是硬伤啊
0
回复
backin
LV.4
19
2014-02-22 18:39

楼主,顶你,我用我的光立方实验了一下,确实可以与电脑通讯,最主要是楼主给的cube8的hex有作用,那是串口通讯协议吧。其实用我们的原理图是不能显示出上位机软件中的图案的,我个人认为而已哈,最主要一个原因是上位机针对的是另一个原理图的光立方,而不是2803+573的,我试过了,那个人家的图是倒过来的,比如说我们要在573的原理图的光立方显示一个“1”则得这样

0
回复
001a
LV.3
20
2014-02-22 18:40
@backin
楼主,顶你,我用我的光立方实验了一下,确实可以与电脑通讯,最主要是楼主给的cube8的hex有作用,那是串口通讯协议吧。其实用我们的原理图是不能显示出上位机软件中的图案的,我个人认为而已哈,最主要一个原因是上位机针对的是另一个原理图的光立方,而不是2803+573的,我试过了,那个人家的图是倒过来的,比如说我们要在573的原理图的光立方显示一个“1”则得这样[图片]
我想这跟芯片是否采用2803+573是无关的。而是跟定义的光立方方向有关。这完全可以通过更改单片机程序来改变图像的方向。
0
回复
for_real
LV.3
21
2014-02-22 18:45
@001a
个问题我倒没有遇到过。1.确定你的光立方硬件连接是否和仿真图一样的?2.能否发一下你烧写进单片机的程序的代码。最好下载我后面上传那个压缩包里面的程序(如果硬件连接一样的话)
我有些IO口焊接跟你不一样,不过我也只是修改了IO口,其他都是用你的程序的。。不行。。
0
回复
soap泡泡
LV.4
22
2014-02-22 18:47
那么多的LED灯,我等手残人士只能看看过过瘾
0
回复
for_real
LV.3
23
2014-02-22 18:49

请问楼主,为什么我的光立方会出现以下情况:

 我用的51片机,给P1.0口输出高电平,然后接到ULN2803的某个输入端,理论上2803的对应的输出端应该是低电平,但是单片机的IO口却被拉低,P1.0口电压为低电平。请问是什么原因!谢谢!

0
回复
001a
LV.3
24
2014-02-22 18:50
@for_real
请问楼主,为什么我的光立方会出现以下情况: 我用的51片机,给P1.0口输出高电平,然后接到ULN2803的某个输入端,理论上2803的对应的输出端应该是低电平,但是单片机的IO口却被拉低,P1.0口电压为低电平。请问是什么原因!谢谢!
这个真不太清楚
0
回复
backin
LV.4
25
2014-02-22 18:53
我用我的光立方实验了一下,确实可以与电脑通讯
0
回复
candyman
LV.2
26
2014-02-22 18:54
我想用LabvIEW编程实现光立方的效果
0
回复
vidas
LV.2
27
2014-02-22 18:55
有没有实物? 有实物更好了
0
回复
stony_s
LV.3
28
2014-02-22 18:56
看来学习C语言简直很重要
0
回复
2014-02-22 18:57
@for_real
请问楼主,为什么我的光立方会出现以下情况: 我用的51片机,给P1.0口输出高电平,然后接到ULN2803的某个输入端,理论上2803的对应的输出端应该是低电平,但是单片机的IO口却被拉低,P1.0口电压为低电平。请问是什么原因!谢谢!
输出口加上拉试一试  我也遇到过这个问题
0
回复
elio
LV.2
30
2014-02-22 18:58
原来是这么用的啊,请问实物怎么用的啊,难道是用上位机实时控制的,我想请教你一下,你那个程序只有连电脑才有用?有没有烧进单片机的程序啊。
0
回复
close3
LV.5
31
2014-02-22 19:02
为什么你的电路图里单片机直接接串口
0
回复