标题:
菜鸟求助51单片机C语言
[打印本页]
作者:
zhaoxulong126
时间:
2015-9-17 00:24
标题:
菜鸟求助51单片机C语言
正在学习51单片机,想实现按K1开关,led灯向右移动,按K2,led灯向左移动,当长按某K1或K2时,led灯延迟500ms的向指定方向移动,现在的问题是按住K1或K2时,led灯并没有延迟移动,程序哪里有问题,求解答。
#include<reg51.h>
#include<intrins.h>
#include"delay10ms.h"
#define GPIO_LED P2
sbit K1=P0^0;
sbit K2=P0^1;
void main()
{
unsigned int i,j;
j=0x01;
while(1)
{
GPIO_LED=j;
if((K1==0)||(K2==0))
{
delay10ms();
if(K1==0) j=_cror_(GPIO_LED,1);
else if(K2==0) j=_crol_(GPIO_LED,1);
}
while((i<50)&&((K1==0)));
{
delay10ms();
i++;
}
i=0;
}
}
作者:
腾飞的龙
时间:
2015-9-17 15:28
if((i<50)&&((K1==0)));
{
这样改试试
j=_crol_(GPIO_LED,1);
delay10ms();
i++;
if(i==50)
i=0;
}
i=0;
作者:
电子爱好者life
时间:
2015-9-17 16:11
本帖最后由 电子爱好者life 于 2015-9-17 16:34 编辑
没有看明白你的题目,你是按下K1连续移动还是按一次移动一次
作者:
bhjyqjs
时间:
2015-9-17 17:03
改成:
while((i<50)&&((K1==0)));
{
delay10ms();
i++;
}
if(i==49) j=_cror_(GPIO_LED,1);
i=0;
while((i<50)&&((K2==0)));
{
delay10ms();
i++;
}
if(i==49) j=_crol_(GPIO_LED,1);
i=0;
作者:
bhjyqjs
时间:
2015-9-17 17:28
c:\1.jpg
if(i==50)这句永远不成立
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1