完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include #define uchar unsigned char #define uint unsigned int ***it deng=P3^7; ***it jinshu=P1^4; void delay_1ms(unsigned int a) { unsigned int i; while( a-- != 0){ for(i = 0; i < 552; i++); } } void ini_int1(void) { EA=1; EX1=0; //开启外部中断 0 IT1=0; //TCON=0x04; } void Int1() interrupt 2 using 2 //使用外部中断1,寄存器组3 { EX1=0;//关闭中断 delay_1ms(1000); deng=1; delay_1ms(1000); deng=0; delay_1ms(1000); deng=1; delay_1ms(1000); deng=0; delay_1ms(1000); delay_1ms(1000); deng=1; delay_1ms(1000); deng=0; delay_1ms(1000); deng=1; delay_1ms(1000); deng=0; delay_1ms(1000); } void main(void) { ini_int1(); while(1) { deng=0; if(jinshu==0) { delay_1ms(10); if(jinshu==0) { EX1=1; //开关按下打开中断 } } } } |
|
相关推荐
2个回答
|
|
外部中断是依靠中断引脚上的电平变化来进入中断的,如果电平没有变化,是没法进入中断的,你这样使用外部中断是错误的,大概你是想产生灯闪烁的效果,这种情况应该使用定时器中断。
|
|
|
|
程序里面的闪烁只是为了方便观察,我是想外部引脚变化进入外部中断,我就把中断关了EX1=0,执行完闪烁程序后,在启动开关jinshu没有按下之前,引脚变化是不能产生中断的,只有启动开关按下,重新打开外部中断EX1=1后,外部引脚变化才能产生中断,可是当第一次进入外部中断,我把EX1=0,后,按下启动开关打开EX1=1后,外部引脚变化,也不再进入外部中断函数执行闪烁程序
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》 第十六章 WATCH_DOG实验
460 浏览 0 评论
【敏矽微ME32G070开发板免费体验】+ADC测试与LED点亮
418 浏览 0 评论
飞凌嵌入式-ELFBOARD ELF 2的硬件知识分享--核心板
352 浏览 0 评论
【敏矽微ME32G070开发板免费体验】\\+Lora通信终端产品开发项目
514 浏览 0 评论
1576 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11970 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 15:16 , Processed in 0.719252 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号