54,393
社区成员




我写这个代码只能实现流水灯,但是实现不了用按键修改流水灯的走向,想知道是代码哪里的问题,求看看
#include <REGX52.H>
#include <INTRINS.H>
static unsigned int s;
unsigned int number;
unsigned char keynum, led;
void Delay(unsigned int x) //@11.0592MHz
{
unsigned char i, j;
while (x--) {
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
}
void Timer0Init(void) //1毫秒@11.0592MHz
{
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0x66; //设置定时初值
TH0 = 0xFC; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
EA = 1;
ET0 = 1;
}
void key()
{
if (P3_1 == 0) { Delay(20); while (P3_1 == 0); Delay(20); number = 1; }
}
void main()
{
Timer0Init();
P2 = 0xFE;
while (1)
{
if (number == 1)
led++;
if (led >= 2)
led = 0;
if (s >= 1000)
{
s = 0;
if (led == 0)
P2 = _crol_(P2, 1);
if (led == 1)
P2 = _cror_(P2, 1);
}
}
}
void timer() interrupt 1
{
TL0 = 0x66;
TH0 = 0xFC;
s++;
}