
#include <reg51.h>
#include <intrins.h>
#define INT8U unsigned char
#define INT16U unsigned int
//调节按键定义
sbit K1=P1^1;//从上至下
sbit K2=P1^2;//从下至上
sbit K3=P1^3;//增速
sbit K4=P1^4;//减速
//**************************
INT8U Pre_key=0xFF;
INT8U j=0;
INT16U time=200;
void delay_ms(INT16U x)
{
INT8U t;
while(x--)
for(t=0;t<120;t++);
}
void key_handle()
{
P0|=0xFF;
if(Pre_key==(P0&0xFF)) return;
if(!K1)
j=0;
if(!K2)
j=1;
if(!K3)
time+=10;
if(!K4)
time-=10;
}
void main()
{
INT8U i;
P2=0x01;
delay_ms(200);
while(1)
{
if(!K1)
{
for(i=0;i<7;i++)
{
P2=_crol_(P2,1);
delay_ms(time);
}
}
else
{
for(i=0;i<7;i++)
{
P2=_cror_(P2,1);
delay_ms(time);
}
}
key_handle();
}
}
实现不了,为什么呢?中断问题?

