|  | 
 
| 
/**************************************************************************************
×
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。您需要 登录 才可以下载或查看,没有账号?立即注册 
  *                      外部中断1实验                                                  *
 实现现象:下载程序后按下K4按键可以对D1小灯状态取反。
 注意事项:无。
 ***************************************************************************************/
 
 #include "reg52.h"             //此文件中定义了单片机的一些特殊功能寄存器
 
 typedef unsigned int u16;      //对数据类型进行声明定义
 typedef unsigned char u8;
 
 sbit k4=P3^3;  //定义按键K4
 sbit led=P2^0;     //定义P20口是led
 
 /*******************************************************************************
 * 函 数 名         : delay
 * 函数功能           : 延时函数,i=1时,大约延时10us
 *******************************************************************************/
 void delay(u16 i)
 {
 while(i--);
 }
 
 /*******************************************************************************
 * 函 数 名         : Int1Init()
 * 函数功能           : 设置外部中断1
 * 输    入         : 无
 * 输    出         : 无
 *******************************************************************************/
 void Int1Init()
 {
 //设置INT1
 IT1=1;//跳变沿出发方式(下降沿)
 EX1=1;//打开INT1的中断允许。
 EA=1;//打开总中断
 }
 
 /*******************************************************************************
 * 函 数 名       : main
 * 函数功能         : 主函数
 * 输    入       : 无
 * 输    出         : 无
 *******************************************************************************/
 void main()
 {
 Int1Init();  //    设置外部中断1
 while(1);
 }
 
 /*******************************************************************************
 * 函 数 名         : Int1()    interrupt 2
 * 函数功能           : 外部中断0的中断函数
 * 输    入         : 无
 * 输    出         : 无
 *******************************************************************************/
 
 void Int1()    interrupt 2        //外部中断1的中断函数
 {
 delay(1000);     //延时消抖
 if(k4==0)
 {
 led=~led;
 }
 }
 
 
 
 | 
 |