杜洋单片机c语言,杜洋工作室 DoYoung Studio

该博客详细介绍了如何使用STC12C2052AD单片机通过外部中断INT0和INT1控制LED灯的开关。程序中定义了中断初始化函数和两个中断处理程序,分别对应于INT0和INT1接口。当INT0中断发生时,LED灯开启;INT1中断发生时,LED灯关闭。整个程序采用下沿触发方式,并且在主函数中进行了中断初始化。
摘要由CSDN通过智能技术生成

/*********************************************************************************************

程序名:    外部中断程序实例

编写人:    杜洋

编写时间:  2009年9月24日

硬件支持:  STC12C2052AD 外部12MHZ晶振

接口说明:

修改日志:

NO.1-

/*********************************************************************************************

说明:

两个按键分别控制LED灯的开关。

INT0接口的按键按下时开灯。

INT1接口的按键按下时关灯。

/*********************************************************************************************/

#include //51头文件

sbit LED = P1 ^ 0; //定义LED灯

//注:外部中断固定与P3.2和P3.3复用,无需定义这两个接口。

/*********************************************************************************************

函数名:外部中断INT初始化函数

调 用:INT_init();

参 数:无

返回值:无

结 果:启动外部中断INT1、INT0中断,设置中断方式

备 注:

/**********************************************************************************************/

void INT_init (void){

EA = 1;//中断总开关

EX1 = 1; //允许外部中断1中断

EX0 = 1; //允许外部中断0中断

IT1 = 1; //1:下沿触发 0:低电平触发

IT0 = 1; //1:下沿触发 0:低电平触发

}

/**********************************************************************************************/

/*********************************************************************************************

函数名:外部中断INT1中断处理程序

调 用:[外部引脚INT1中断处理]

参 数:无

返回值:无

结 果:用户处理外部中断信号

备 注:

/**********************************************************************************************/

void INT_1 (void) interrupt 2 using 2{ //切换寄存器组到2

LED = 1; //关灯

}

/**********************************************************************************************/

/*********************************************************************************************

函数名:外部中断INT0中断处理程序

调 用:[外部引脚INT0中断处理]

参 数:无

返回值:无

结 果:用户处理外部中断信号

备 注:

/**********************************************************************************************/

void INT_0 (void) interrupt 0 using 2{ //切换寄存器组到2

LED = 0; //开灯

}

/**********************************************************************************************/

/*********************************************************************************************/

void main(void){

INT_init(); //外部中断初始化

while(1){

//其他程序

}

}

/*********************************************************************************************/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值