标题:
哪位大神看下 为什么状态不能循环
[打印本页]
作者:
5551
时间:
2017-6-14 20:42
标题:
哪位大神看下 为什么状态不能循环
#include<reg51.h>
#include<intrins.h>
sbit P3_0=P3^0;
// unsigned char led[]={0x90,0x82,0xc0,0x90,0xa4,0xc0};
// unsigned char led1[]={0x90,0xc0,0xf9,0xa4,0xa4,0x92};
// unsigned char led2[]={0xff,0xff,0xff,0xff,0xff,
// 0x89,0x86,0xc7,0xc7,0xc0,0xff};
// unsigned char com[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,};
// unsigned char j,n,x;
void delay(unsigned int i)
{
unsigned int k;
for(k=0;k<i;k++);
}
void disp1()
{
unsigned char led[]={0x90,0x82,0xc0,0x90,0xa4,0xc0};
unsigned char x,w;
w=0xfe;
for(x=0;x<6;x++)
{
P1=0xff;
P2=w;
w=_crol_(w,1);
P1=led[x];
delay(100);
}
}
void disp2()
{
unsigned char led1[]={0x90,0xc0,0xf9,0xa4,0xa4,0x92};
unsigned char y,d;
d=0xfe;
for(y=0;y<6;y++)
{
P1=0xff;
P2=d;
d=_crol_(d,1);
P1=led1[y];
delay(100);
}
}
void disp3()
{
unsigned char led2[]={0xff,0xff,0xff,0xff,0xff,
0x89,0x86,0xc7,0xc7,0xc0,0xff};
unsigned char com[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,};
unsigned char i,j,n;
{for(n=0;n<6;n++) //HELLO
for(j=0;j<100;j++)
for(i=0;i<6;i++)
{
P1=0xff;
P2=com[i];
P1=led2[n+i];
delay(100);
}
}
}
void main()
{
unsigned char num;
P1=0xff;
while(1)
{
if(P3_0==0)
{
delay(10);
if(P3_0==0)
{
num++;
if(num==3)
{
num=0;
}
while(P3_0==0);
}
}
switch(num)
{
case 0:disp1();break;
case 1:disp2();break;
case 2:disp3();break;
}
}
}
作者:
mengzhixinheng
时间:
2017-6-15 01:19
延时时间太短
作者:
1529062686
时间:
2017-6-15 09:39
延时时间可能短了
作者:
w_d_j
时间:
2017-6-16 00:14
此程序是不是完成按key1,key2,key3时执行对应的显示dis1,dis2,dis3
可能是在显示函数中没有出来,在switch处设置断点调试就能看出来。
作者:
w_d_j
时间:
2017-6-16 00:18
在switch处设置断点看看,可能是没有从显示函数返回。
作者:
海海宝宝
时间:
2017-6-16 09:37
switch(num) { case 0:disp1();break; case 1:disp2();break; case 2:disp3();break; } } } 没有结束语句
作者:
aerwa
时间:
2017-6-16 09:46
if(num>=3)
作者:
qqfaiice
时间:
2017-6-16 10:22
时间短什么的不是问题,关键是关联有问题
作者:
5551
时间:
2017-6-26 10:46
是dis3 没扫完
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1