完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
单片机C语言编程模板(外部中断)
/********************************************************************************************* 函数名:外部中断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:低电平触发 } /**********************************************************************************************/ /*********************************************************************************************/********************************************************************************************* 程序名: 外部中断程序实例 编写人: liwentong 编写时间: 2008年3月4日 硬件支持: STC12C2052AD 外部12MHZ晶振 接口说明: 修改日志: NO.1- /********************************************************************************************* 说明: 两个按键分别控制LED灯的开关。 INT0接口的按键按下时开灯。 INT1接口的按键按下时关灯。 /*********************************************************************************************/ #include ***it 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){ //其他程序 } } /*********************************************************************************************/1. MCS-51通用外部中断有2种触发方式,分别是下降沿触发和低电平触发。 # 下降沿触发:电平从高电平状态突然降低(即电压跌落)的过程中触发中断。 # 低电平触发:电平处在低电平时触发中断,具体的电平值因电路不同而有差异。 # 低电平触发与下降沿触发的区别是下降沿触发是一有跌落马上触发,而低电平触发是跌落到低电平的阀值时(一般为0.8V)才触发。 2. 当进入外部中断处理程序时,系统会关闭其他中断触发,在中断处理程序中外部中断接口只能做I/O接口使用,不可嵌套中断。 可将其模板下载到本地硬盘,在编写新程序的时候复制、粘贴到工程当中,然后根据情况写入具体内容 函数名:外部中断INT1中断处理程序 调 用:[外部引脚INT1中断处理] 参 数:无 返回值:无 结 果:用户处理外部中断信号 备 注: /**********************************************************************************************/ void INT1 (void) interrupt 2 using 2{ //切换寄存器组到2 //用户函数内容 } /**********************************************************************************************/ /********************************************************************************************* 函数名:外部中断INT0中断处理程序 调 用:[外部引脚INT0中断处理] 参 数:无 返回值:无 结 果:用户处理外部中断信号 备 注: /**********************************************************************************************/ void INT0 (void) interrupt 0 using 2{ //切换寄存器组到2 //用户函数内容 } /**********************************************************************************************/ 本文来自电子工程师之家 |
|
相关推荐
3 个讨论
|
|
谢谢分享!!
|
|
|
|
|
|
910 浏览 2 评论
【youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植
767 浏览 5 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 移植zbar的方法
910 浏览 0 评论
1608 浏览 3 评论
由于 Windows 无法加载这个设备所需的驱动程序,导致这个设备工作异常?
2475 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
3787 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 23:56 , Processed in 0.589475 second(s), Total 53, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号