标题:
大神 求帮助啊 今晚要熬出来的
[打印本页]
作者:
一点也不懂
时间:
2013-11-29 23:00
标题:
大神 求帮助啊 今晚要熬出来的
怎么 可以使led灯在一种模式下通过按键使他换种模式(led灯还没有 运行完成)
作者:
一点也不懂
时间:
2013-11-30 00:06
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit K1=P3^2;
sbit K2=P3^3;
sbit K3=P3^4;
sbit K4=P3^5;
void Delay_ms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
{
for(j=115;j>0;j--);
}
}
void main()
{
int j,a[28]={
0xE7,0xDB,0xBD,0x7E, //从中间开始亮
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,//依次逐个点亮
0x7e,0x3c,0x18,0x00,0x00,0x18,0x3c,0x7e,//两边叠加后增减
0x00,0xff}; //全亮全灭
if(K1==0)
{ while(1)
{
if(K2||K3||K4==0)
break;
else
{
for(j=0;j<4;j++)
{
P2=a[j];
Delay_ms(500);
}
}
}
}
if(K2=0)
{ while(1)
{if(K1||K3||K4==0)
break;
else
{
for(q=4;q<12;q++)
P2=a[q];
Delay_ms(500);
}
}
}
if(K3=0)
{ while(1)
{if(K1||K2||K4==0)
break;
else
{
for(w=12;w<20;w++)
P2=a[w];
Delay_ms(500);
}
}
}
if(K4=0)
{
while(1)
{if(K1||K2||K3==0)
break;
else
{
for(e=12;e<20;e++)
P2=a[e];
Delay_ms(500);
}
}
}
}
作者:
一点也不懂
时间:
2013-11-30 00:07
为什么运行不了
作者:
admin
时间:
2013-11-30 00:40
用这个按键控制流水灯程序
http://www.51hei.com/mcu/1736.html
应该适用于你的
作者:
admin
时间:
2013-11-30 00:42
里面的程序和你要实现的东西基本一样
作者:
admin
时间:
2013-11-30 00:42
里面的程序和你要实现的东西基本一样
作者:
一点也不懂
时间:
2013-11-30 13:21
if(flag1||flag3||flag4){flag2=0;break;} 刚学看的不是很懂
作者:
admin
时间:
2013-11-30 13:44
一点也不懂 发表于 2013-11-30 13:21
if(flag1||flag3||flag4){flag2=0;break;} 刚学看的不是很懂
如果flag1 flag3 flag4其中有任何一个是1 就把flag2=0; 并且退出
作者:
一点也不懂
时间:
2013-11-30 21:07
#include <intrins.h>
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit K1 =P3^2; //按键1
sbit K2 =P3^3; //按键2
sbit K3 =P3^4; //按键3
sbit K4 =P3^5; //按键4
uchar S1=0,S2=0,S3=0,S4=0;
void Delay_ms(uint xms)//延缓时间
{
uint i,j;
for(i=xms;i>0;i--)
{
for(j=115;j>0;j--);
}
}
void jieshou()
{
if(K1==0)
S1=1;
if(K2==0)
S2=1;
if(K3==0)
S3=1;
if(K4==0)
S4=1;
}
void main()
{
while(1)
{
int i;
jieshou();
if(S1)
{
for(i=0;i<8;i++)
{
P2=~(0x01<<i);
Delay_ms(200);
jieshou();
if(S2||S3||S4)
{
S1=0;
break;
}
}
}
if(S2)
{
for(i=0;i<8;i++)
{
P2=~(0x80>>i);
Delay_ms(200);
jieshou();
if(S1||S3||S4)
{
S2=0;
break;
}
}
}
if(S3)
{
for(i=0;i<8;i++)
{
P2=(0xf0>>i);
Delay_ms(200);
jieshou();
if(S1||S2||S4)
{
S3=0;
break;
}
}
}
if(S4)
{
for(i=0;i<8;i++)
{
P2=(0x58>>i);
Delay_ms(200);
jieshou();
if(S1||S2||S3)
{
S4=0;
break;
}
}
}
}
}
作者:
一点也不懂
时间:
2013-11-30 21:08
好了 不管 是不是跑完都可以 跑另外一种模式
作者:
一点也不懂
时间:
2013-11-30 21:08
谢谢 大家的帮助
作者:
xiaoou
时间:
2013-12-1 01:28
看来可以结贴了 哈哈
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1