/*-----------------------------------------------
名称:外部中断0电平触发
论坛:www.doflye.net
编写:shifang
日期:2009.5
修改:无
内容:通过中断接口P3.2连接的独立按键测试,按一次P1口的LED灯反向,
这里使用电平触发,所以一直按键不松开和一次按键效果不相同,按下会看到灯全部亮
说明中断一直在作用,用示波器看则是高频方波
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
/*------------------------------------------------
主程序
------------------------------------------------*/
main()
{
P1=0x55; //P1口初始值
EA=1; //全局中断开
EX0=1; //外部中断0开
IT0=0; //电平触发
while(1)
{
//在此添加其他程序
}
}
/*------------------------------------------------
外部中断程序
------------------------------------------------*/
void ISR_Key(void) interrupt 0 using 1
{
P1=~P1; //进入中断程序执行程序,
//此时可以通过 EA=0指令暂时关掉中断
}
/*-----------------------------------------------
名称:外部中断1电平触发
论坛:www.doflye.net
编写:shifang
日期:2009.5
修改:无
内容:通过中断接口P3.3连接的独立按键测试,按一次P1.0口的LED灯反向,
作用效果和中断0相同,启用按键去抖,所以适合实际按键
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit LED=P1^0; //定义LED端口
void DelayUs2x(unsigned char t);//us级延时函数声明
void DelayMs(unsigned char t); //ms级延时
/*------------------------------------------------
c51外部中断
最新推荐文章于 2024-06-30 10:21:44 发布
