标题:
原本是想一按键就会有流水灯的效果,一松手就没有任何反应的,可是现在一按却只有...
[打印本页]
作者:
天命难违
时间:
2015-3-11 20:50
标题:
原本是想一按键就会有流水灯的效果,一松手就没有任何反应的,可是现在一按却只有...
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit key1=P3^4;
void delay(uint z);
void main()
{
while(1)
{
if(key1==0)
{
P1=0xfe;
P1=_crol_(P1,1);
delay(1000);
}
else
P1=0xff;
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=120;y>0;y--);
}
原本是想一按键就会有流水灯的效果,一松手就没有任何反应的,可是现在一按却只有第二个灯亮,松手就不亮了,请问这样要怎么该才能有想要的效果,谢谢了
作者:
dingmingzhou
时间:
2015-3-11 22:45
你把P1=oxfe语句调到if语句上面试试?
作者:
liaolinhui
时间:
2015-3-15 18:36
if(key1==0)
{
P1=0xfe;
P1=_crol_(P1,1);
delay(1000);
}
这里不能直接用P1进行移位,需要有个中间变量
比如
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar a=0xfe;
sbit key1=P3^4;
void delay(uint z);
void main()
{
while(1)
{
if(key1==0)
{P1=a
a=_crol_(a,1);
delay(1000);
}
else
P1=0xff;
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=120;y>0;y--);
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1