中断怎么老运行设置次数的2倍
#include<reg51.h>
void left(int x);
void delay(int count)
{
int i;
while(--count!=0)
for(i=0;i<125;i++)
;
}
void main()
{
IE=0x81;
TCON=0x01;
P2=0x0f;
while(1)
{ delay(500);
P2=~P2;
}
}
void zhongduan(void) interrupt 0
{
unsigned char saveP2=P2; //保存原状态
left(2); //左移2次
P2=saveP2;
//回到原状态
}
void left(int x) //左移函数
{
int i,j;
for(i=0;i<x;i++)
{
P2=0xfe;
for(j=0;j<7;j++)
{
delay(500);
P2=(P2<<1)|0x01;
}
delay(500);
}
} |