实验名称:外部中断1实验
接线说明:
实验现象:下载程序后,当按下K4键可控制D1指示灯亮灭
注意事项:
***************************************************************************************/
#include "reg52.h"
typedef unsigned int u16; //对系统默认数据类型进行重定义
typedef unsigned char u8;
//定义LED1管脚
sbit LED1=P2^0;
//定义独立按键K4控制脚
sbit KEY4=P3^3;
/*******************************************************************************
* 函 数 名 : delay_10us
* 函数功能 : 延时函数,ten_us=1时,大约延时10us
* 输 入 : ten_us
* 输 出 : 无
*******************************************************************************/
void delay_10us(u16 ten_us)
{
while(ten_us--);
}
/*******************************************************************************
* 函 数 名 : exti1_init
* 函数功能 : 外部中断1配置函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void exti1_init(void)
{
IT1=1;//跳变沿触发方式(下降沿)
EX1=1;//打开INT1的中断允许
EA=1;//打开总中断
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
exti1_init();//外部中断1配置
while(1)
{
}
}
void exti1() interrupt 2 //外部中断1中断函数
{
delay_10us(1000);//消斗
if(KEY4==0)//再次判断K4键是否按下
LED1=!LED1;//LED1状态翻转
}