用一个按键控制一个LED灯用中断方式实现按一下亮0.5秒然后灭0.5,再按一下亮1秒然后灭1秒

这个是按一下亮两次了,怎么用中断方式加进去啊,我C语言一点都不懂

#include"reg52.h"
#define uint unsigned int
#define ulong unsigned long

typedef unsigned char UINT8;
typedef unsigned int UINT16;
sbit Key = P3^3; /* 独立按键K1连接到P3.3端口 */
sbit LED= P1^0; /* 定义LED端口P1.0 */

/*******************************************************************************
* 函 数 名 : DelayUs
* 描 述 : 微秒级延时.
* 输 入 : UINT8 Us:
* 要延时Us的时间.
* 返 回 : 无.
*******************************************************************************/
void DelayUs( UINT16 Us )
{
while(--Us);
}

/*******************************************************************************
* 函 数 名 : DelayMs
* 描 述 : 微秒级延时.
* 输 入 : UINT8 Ms:
* 要延时的Ms时间.
* 返 回 : 无.
*******************************************************************************/
void DelayMs( UINT16 Ms )
{
while( Ms-- )
{
DelayUs(200); /* 5次1ms */

}
}

/*******************************************************************************
* 函 数 名 : main
* 描 述 : 主函数
* 输 入 : 无.
* 返 回 : 无.
********************************************************************************/

void main (void)
{
UINT8 i;
Key = 1;/* 输入之前先将端口拉高 */

while(1) /* 主循环 */
{
if( Key ==0)
{
for( i = 0; i < 1; i++ )
{
LED= 0; /* 端口送高电平,LED熄亮 */
DelayMs(500); /* 延时大概0.5S */
LED = 1; /* 端口送低电平,LED点灭 */
DelayMs(500); /* 延时大概0.5S */
} /* 延时10ms,消抖 */

{
if( Key == 0) LED = ~LED;/* 再次检测按键是否按下,如果有,将LED状态取反 */
for( i = 0; i <1; i++ )
{
LED= 0; /* 端口送高电平,LED熄亮 */
DelayMs(1000); /* 延时大概1S */
LED = 1; /* 端口送低电平,LED点灭 */
DelayMs(1000); /* 延时大概1S */
}

}
}
}
}

while(1) /* 主循环 */
{
if( Key ==0)
{
for( i = 0; i < 1; i++ )
{
LED= 0; /* 端口送高电平,LED熄亮 */
DelayMs(500); /* 延时大概0.5S */
LED = 1; /* 端口送低电平,LED点灭 */
DelayMs(500); /* 延时大概0.5S */
} /* 延时10ms,消抖 */

{
if( Key == 0) LED = ~LED;/* 再次检测按键是否按下,如果有,将LED状态取反 */
for( i = 0; i <1; i++ )
{
LED= 0; /* 端口送高电平,LED熄亮 */
DelayMs(1000); /* 延时大概1S */
LED = 1; /* 端口送低电平,LED点灭 */
DelayMs(1000); /* 延时大概1S */
}

}
}
}
}追问

这个还是我那个啊?怎么样用中断方式实现按一下亮0.5秒然后自己灭0.5秒,然后再按一下亮1秒然后自己灭

追答

完蛋,太长了。弄不了。你将我这个回答删了。我重新回答。

追问

删不了啊

追答

内容超长了!你加我工作Q发给你吧。快点儿,老放桌面上不好

内容超长了!你加我工作Q发给你吧。快点儿,老放桌面上不好

内容超长了!你加我工作Q发给你吧。快点儿,老放桌面上不好

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-09
加一个计数器 记录你中断次数追问

怎么加程序进去啊?我不懂,要求是用中断形式实现,不用计数器