初级会员

- 积分
- 102
- 金钱
- 102
- 注册时间
- 2015-8-19
- 在线时间
- 3 小时
|
5金钱
本人正在做一个RGB调光程序,用按键来选择模式,当按键在按下之后的0.8s内没有再次按下(count=120),如果有按键按下则再次ID++,直到在按键没有在0.8s内按下,就进入相应的模式,但我始终调不出那个按键,因为当我第一次按的时候能够正常显示,而后面就不能了,而且调光也不行,反复试验之后发现第一次之后定时器关闭,当我在其他的调光程序中没有TR0=0,或者ea=0啊,它自己关的实在奇怪
void KeyScan()
{
if (key == 0)
{
do{
delay(10);
if (key == 0)
ID++;
while(key == 0);
}while(count<120) ;
SBUF=ID;
while(!TI);
TI=0;
switch(ID%3)
{
case 0: zhinengmode(); break;
case 1: gameover(); break;
case 2: whitelight(); break;
}
}
}
void Timer0Interrupt() interrupt 1
{
TH0 = 0xcb; //0b //9b
TL0 = 0xea;
N1++;
N2++;
N3++;
if(N1==255)N1=0;
if(N2==255)N2=0;
if(N3==255)N3=0;
count++;
if(key==0)
count=0;
}
|
|