历史上的今天
今天是:2025年07月22日(星期二)
2020年07月22日 | 学51单片机-按键的中断检测
2020-07-22 来源:51hei
接着昨天,继续说按键的事。昨天说的是扫描检测,今个说一下中断检测。先插播一个小故事~~
当年我和凯凯学单片机的时候,我用扫描检测的方法做的项目,他用中断检测的方法做的项目。当我俩坐一起交流按键检测的方式时,他火了,直接跳起来跟我吼:你不用中断怎么检测?
当时我就意识到他可能陷入了只能用中断的误区,然后就乐呵呵的说:用扫描啊~
他继续吼,我继续乐,我俩就这样陷入了死循环。终于都累了,然后把程序和原理给他看,了解~
在STC89C52单片机上,具有外部中断功能的引脚有两个:P3.2 –INT0 和 P3.3-INT1。上电默认的情况下,他们是普通IO引脚;当配置好相关寄存器之后,他们就变成了具有中断检测功能的引脚。
外部中断相关的寄存器有两个:TCON 和 IE。图示如下:

特殊功能寄存器IE

IT0和IE0对应P3.2引脚的中断功能配置,IT1 和 IE1对应P3.3 引脚的中断功能配置。
当IT0 = 0 的时候,该中断的触发方式为低电平触发。 当IT0 = 1 的时候,该中断的触发方式为下降沿触发。
当中断被触发时,IE0 被自动置一,当CPU相应中断,处理中断程序时,IE0 自动清零。
IT1 和 IE1 同理,不做解释。
EA是什么?它是这个单片机中断功能的总开关!只有当它等于1的时候,各个中断的请求才可以被允许,不然的话都是被屏蔽的。
ES是串口中断允许位。
ET1是定时/计数器1溢出中断允许位。
ET0是定时/计数器0溢出中断允许位。
EX1是外部中断1允许位。
EX0是外部中断0允许位。
就是说,当我们想用外部中断0的时候,必须总中断(EA)和外部中断(EX0)同时打开才能用,缺一不可!
这些寄存器的资料那里来的? 上官网找器件手册,这是最权威的文档。找的过程中,既锻炼了查找资料的能力,又锻炼了阅读资料的能力,这在以后的工作中是必备的。
好了,上程序。依旧是按键控制LED翻转,这次是用中断触发的方式,下降沿触发。
上一篇:51单片机-数码管静态显示
史海拾趣
|
我在编译矩阵键盘驱动程序时,出现以下错误信息,始终找不到答案,请各位帮忙! c:\\wince420\\pbworkplace\\smdk2410\\iicdev\\i2cdev-keyboard.cpp(11) : fatal error C1083: Cannot open include file: \'C:\\WINCE420\\PBWorkSpace\\smdk2410\ ...… 查看全部问答> |
|
大家好?WIN2000下,以太网网络,双网卡热备份,也就是一个网卡坏了,另一个冗余网卡热切换,两个网卡同一个IP地址,实现方案是什么?使用哪些工具,技术?代码是什么?我的QQ:270996889 E-MAIL:SDTZ_ZZ@126.COM,热切期待您的回复.谢谢!… 查看全部问答> |
|
Msp430可以使用的内部、外部时钟有LFXT1(低频、低功耗时钟,可以使用外部低频32768HZ晶振或400K-16M晶振)、XT2CLK(外部输入的高频晶振400K-16M)、DCO(内部数字控制晶振)、VLO(12K内部低频晶振)。 芯片可以使用的时钟:ACLK(辅助时钟)、MCL ...… 查看全部问答> |
|
实验需要产生2.5Gbps的调制信号用于光通信,请问有没有哪位朋友用FPGA产生过高速数字信号?用哪个系列的FPGA芯片?能否直接i/o口输出?… 查看全部问答> |
|
悄悄的告诉你!IAR 5.5 For MSP430就在资源中心 IAR For MSP430 5.5版本软件以及破解器https://download.eeworld.com.cn/detail/wstt/7401 里面有5.5版本的IAR,支持目前几乎所有的器件,还有算号器,就是IAR常用的那种算号器。… 查看全部问答> |




