完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
51单片机具有5个中断源,其中有两个外部中断,这次我们以下降沿触发Int0为例。
在B站跟个up主中断教程, 传送门 https://space.bilibili.com/483942191/video?tid=0&page=4&keyword=&order=pubdate 实验目的:用独立按键作为外部中断的触发信号,当按键按下发送来信号的时候,再执行中断函数(在函数内定义LED灯的亮灭) 如上图所示51单片机总共有5个中断源,本博文先展示第一种 INT0 中断 先看电路图 按键 P3^2 可以触发中断源 INT0 设置寄存器,打开终端并选择中断的触发方式。 EA为整体中断允许位,首先要将EA置1,打开中断。 EX0为外部中断INT0,置1开启。 IT0寄存器:置0为低电平触发,置1为下降沿触发。 编写中断函数,int0的中断编号为0,这里使用中断控制led的点亮与熄灭。 中断函数格式一般为: void 函数名称(void) interrupt 中断编号 【using 寄存器组编号】{ 语句; } 贴上代码: 中断函数的定义 #include"pbdata.h" //外部中断初始化 void EX0_Init(void) { //设置触发方式 外部中断0 IT0=1; //设置下降沿触发TCON 硬件可自动清零触发信号 EX0=1; //IE EA=1; } /********************************************************** 1、中断服务函数一定是一个没有返回值的函数 2、中断服务函数一定是个没有参数的函数 3、中断服务函数函数名后跟关键字 interrupt 4、interrupt n的取值从0~4 分别代表5个中断源 计算公式为 8*n +0003H 分别为 0 0003H INT0 1 000BH T0 2 0013H INT1 3 001BH T1 4 0023H ES 5、中断服务函数不能被主程序或其他程序调用 6、n 后面跟 using m (0-3)工作寄存器组 ***********************************************************/ void EX0_ISR(void) interrupt 0 { LED_1=~LED_1; } |
|
|
|
只有小组成员才能发言,加入小组>>
2513 浏览 0 评论
1085浏览 2评论
700浏览 1评论
453浏览 0评论
194浏览 0评论
330浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 10:58 , Processed in 1.303322 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号