专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
光立方程序问题
2019-07-15 22:58
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
6936
10
1596
最近做了个8*8光立方,硬件
电路
做好后写了一个测试程序,可是程序主循环循环几次后就卡死了,显示也是乱码,重新上电后程序就不能运行了。难道我写的程序可以把自己给改了?不然怎么卡死一次就不能再用了呢?极度迷茫中....
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
zend
2019-07-16 07:37
CrazyMCU 发表于 2013-8-19 11:03
没程序。这不是白问
不好意思啊,失误
/*****************main.c*****************/
#include <STC12C5A60S2.h>
#include <aa.h>
#define uchar unsigned char
uchar data a[64];//={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
uchar idata d[64];//={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
sbit st_cp=P3^3;
sbit st_clr=P3^2; //显示串口清除
uchar clock=0;
uchar ram=0;
void display();
void delay();
void asm(char asm)
{
#pragma asm
MOV P0,R7
MOV R3,#0FEH
LOOP1: MOV R5,#10
MOV R6,#255
LOOP: MOV P2,R3
MOV A,R3
RR A
MOV R3,A
DJNZ R6,LOOP
DJNZ R5,LOOP
#pragma endasm
}
void play()
{
uchar i=0;
TR0=0; //关T0
TH0=62869/256;
TL0=62869%256; //34ms
if(ram) //是否请求显存复制
{
for(i=0;i<64;i++) //显存复制
{
a
=d
;
}
ram=0;
}
if(!clock) //是否是锁显
{
display();
}
TR0=1; //开T0
}
void display()
{
uchar i,j,y,x;
P2=0xff;
P0=0;
x=1;
y=0;
for(i=0;i<8;i++) //第一层
{
y=8*i;
st_cp=0;
for(j=0;j<8;j++) //第一列
{
SBUF=(~a[7+y-j]);
while(!TI);
TI=0;
}
st_cp=1;
asm(x);
x=(x<<1);
}
P2=0xff;
P0=0;
}
void delay()
{
uchar j,k;
for(k=0;k<255;k++)
for(j=0;j<255;j++);
}
void delay1()
{
uchar j,k;
for(k=0;k<127;k++)
for(j=0;j<255;j++);
}
void main()
{
uchar i,j;
/*******t0初始化 显示 *********/
TMOD=0x01; //方式1
TH0=63869/256; //20ms
TL0=63869%256;
ET0=1; //T0允许
EA=1;
TR0=1; //T0运行
clock=0;
while(1)
{
for(i=0;i<64;i++)
{
d
=a1
;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d
=a2
;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d
=a3
;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d
=a4
;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d
=a5
;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d
=a6
;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d
=a7
;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d
=a8
;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d
=a9
;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d
=a10
;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d
=a11
;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(j=0;j<3;j++)
{
for(i=0;i<64;i++)
{
d
=a12
;
ram=1;
while(!ram);
}
delay1();
for(i=0;i<64;i++)
{
d
=a13
;
ram=1;
while(!ram);
}
delay1();
for(i=0;i<64;i++)
{
d
=a14
;
ram=1;
while(!ram);
}
delay1();
for(i=0;i<64;i++)
{
d
=a15
;
ram=1;
while(!ram);
}
delay1();
for(i=0;i<64;i++)
{
d
=a16
;
ram=1;
while(!ram);
}
delay1();
}
}
}
void T_0() interrupt 1 //显示中断T0
{
play(); //显示动作函数
}
/****************aa.h****************/
#define uchar unsigned char
uchar xdata a2[64]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x18,0x24,0x7e,0x99,0x99,0x99,0xbd,0x66,0x18,0x24,0x7e,0x99,0x99,0x99,0xbd,0x66,0x18,0x24,0x7e,0x99,0x99,0x99,0xbd,0x66};
uchar xdata a1[64]={0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0};
都是类似的编码
加载中...
查看其它10个回答
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
不好意思啊,失误
/*****************main.c*****************/
#include <STC12C5A60S2.h>
#include <aa.h>
#define uchar unsigned char
uchar data a[64];//={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
uchar idata d[64];//={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
sbit st_cp=P3^3;
sbit st_clr=P3^2; //显示串口清除
uchar clock=0;
uchar ram=0;
void display();
void delay();
void asm(char asm)
{
#pragma asm
MOV P0,R7
MOV R3,#0FEH
LOOP1: MOV R5,#10
MOV R6,#255
LOOP: MOV P2,R3
MOV A,R3
RR A
MOV R3,A
DJNZ R6,LOOP
DJNZ R5,LOOP
#pragma endasm
}
void play()
{
uchar i=0;
TR0=0; //关T0
TH0=62869/256;
TL0=62869%256; //34ms
if(ram) //是否请求显存复制
{
for(i=0;i<64;i++) //显存复制
{
a=d;
}
ram=0;
}
if(!clock) //是否是锁显
{
display();
}
TR0=1; //开T0
}
void display()
{
uchar i,j,y,x;
P2=0xff;
P0=0;
x=1;
y=0;
for(i=0;i<8;i++) //第一层
{
y=8*i;
st_cp=0;
for(j=0;j<8;j++) //第一列
{
SBUF=(~a[7+y-j]);
while(!TI);
TI=0;
}
st_cp=1;
asm(x);
x=(x<<1);
}
P2=0xff;
P0=0;
}
void delay()
{
uchar j,k;
for(k=0;k<255;k++)
for(j=0;j<255;j++);
}
void delay1()
{
uchar j,k;
for(k=0;k<127;k++)
for(j=0;j<255;j++);
}
void main()
{
uchar i,j;
/*******t0初始化 显示 *********/
TMOD=0x01; //方式1
TH0=63869/256; //20ms
TL0=63869%256;
ET0=1; //T0允许
EA=1;
TR0=1; //T0运行
clock=0;
while(1)
{
for(i=0;i<64;i++)
{
d=a1;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d=a2;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d=a3;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d=a4;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d=a5;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d=a6;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d=a7;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d=a8;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d=a9;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d=a10;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(i=0;i<64;i++)
{
d=a11;
ram=1;
while(!ram);
}
delay();
delay();
delay();
for(j=0;j<3;j++)
{
for(i=0;i<64;i++)
{
d=a12;
ram=1;
while(!ram);
}
delay1();
for(i=0;i<64;i++)
{
d=a13;
ram=1;
while(!ram);
}
delay1();
for(i=0;i<64;i++)
{
d=a14;
ram=1;
while(!ram);
}
delay1();
for(i=0;i<64;i++)
{
d=a15;
ram=1;
while(!ram);
}
delay1();
for(i=0;i<64;i++)
{
d=a16;
ram=1;
while(!ram);
}
delay1();
}
}
}
void T_0() interrupt 1 //显示中断T0
{
play(); //显示动作函数
}
/****************aa.h****************/
#define uchar unsigned char
uchar xdata a2[64]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x18,0x24,0x7e,0x99,0x99,0x99,0xbd,0x66,0x18,0x24,0x7e,0x99,0x99,0x99,0xbd,0x66,0x18,0x24,0x7e,0x99,0x99,0x99,0xbd,0x66};
uchar xdata a1[64]={0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0};
都是类似的编码
一周热门 更多>