历史上的今天
返回首页

历史上的今天

今天是: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翻转,这次是用中断触发的方式,下降沿触发。

推荐阅读

史海拾趣

Gravitech公司的发展小趣事

对于电子猜数玩具电路的网友可能提出的问题,我整理了一些常见问题及其回答:

一、电路设计相关问题

  1. 问题:电子猜数玩具电路的基本组成部分有哪些?
    回答:电子猜数玩具电路通常由触摸控制器、多谐振荡器、LED驱动电路和受控声、光电路等部分组成。具体来说,包括时基集成电路(如NE555)、非门集成电路(如CD4069)、计数分配器集成电路(如CD4017)、音乐集成电路、继电器、二极管、发光二极管、电阻器、电容器等元器件。

  2. 问题:如何设计电路以确保游戏能够正确运行?
    回答:设计电路时,需要确保各个部分能够协调工作。例如,触摸控制器负责检测玩家的输入,多谐振荡器产生计数脉冲,LED驱动电路控制LED的显示,受控声、光电路则在玩家猜中数字时发出声音和光信号。设计时还需要注意电路的稳定性和可靠性,避免信号干扰和元件损坏。

  3. 问题:电路中的LED如何布局以实现数字显示?
    回答:LED的布局通常根据要显示的数字范围进行设计。例如,如果要显示0-9的数字,可以使用7段LED数码管或分散的LED灯。7段LED数码管内部含有8个LED小灯(7个用于显示数字段,1个用于小数点或原点),通过控制这些LED的亮灭来显示不同的数字。如果是分散的LED灯,则需要根据数字的形状来布置LED,并通过编程控制它们的亮灭。

二、元件选择与参数设置问题

  1. 问题:如何选择适合的集成电路和元器件?
    回答:选择集成电路和元器件时,需要考虑电路的需求、元器件的性能参数以及成本等因素。例如,时基集成电路可以选择NE555,因为它具有成本低、易于获取和使用的优点;非门集成电路可以选择CD4069,因为它提供了多个非门输出,方便电路设计;发光二极管则需要选择高亮度的型号以确保显示效果良好。

  2. 问题:电阻器和电容器的参数如何设置?
    回答:电阻器和电容器的参数设置需要根据电路的具体需求来确定。电阻器的阻值会影响电流的大小和LED的亮度,因此需要根据LED的电流需求和驱动电压来选择合适的阻值。电容器的容量则会影响多谐振荡器的振荡频率和电路的响应时间,需要根据实际需要进行调整。

三、调试与故障排除问题

  1. 问题:如何调试电子猜数玩具电路?
    回答:调试电路时,可以按照以下步骤进行:首先检查电路连接是否正确,包括电源连接、信号连接和地线连接等;然后使用万用表等工具测试电路中的电压和电流是否正常;最后观察LED的显示和声音输出是否符合预期。如果出现问题,可以逐步排查各个部分,找出故障点并进行修复。

  2. 问题:电路中出现LED不亮或声音不响的故障怎么办?
    回答:如果LED不亮或声音不响,首先需要检查电源是否正常供电;然后检查相关元器件是否损坏或接触不良;最后检查控制信号是否正确传输。如果以上都正常,可能是程序设计或电路布局存在问题,需要进一步检查和调整。

四、拓展与改进问题

  1. 问题:如何增加电子猜数玩具的趣味性和挑战性?
    回答:可以通过增加游戏难度、丰富游戏模式或添加互动元素等方式来增加电子猜数玩具的趣味性和挑战性。例如,可以设置不同的难度等级、增加倒计时功能、设置奖励机制或添加与手机等设备的互动功能等。

  2. 问题:如何对电子猜数玩具电路进行改进以降低成本或提高性能?
    回答:降低成本可以通过选择性价比更高的元器件、优化电路设计、减少不必要的元器件数量等方式实现;提高性能则可以通过升级元器件、改进电路设计、优化算法等方式实现。具体改进方案需要根据实际情况和需求进行制定。

DBM Optix公司的发展小趣事

DBM Optix公司成立之初,便致力于在光学通信领域取得技术突破。在初创阶段,公司面临着资金紧张、人才匮乏等多重挑战。然而,凭借对技术的执着追求和对市场的敏锐洞察,DBM Optix成功研发出了一款具有高性能、高可靠性的光学模块,这一技术突破迅速获得了市场的认可,为公司的发展奠定了坚实的基础。

Elpaq公司的发展小趣事
Carlo Gavazzi公司的发展小趣事

为了进一步拓展市场,Carlo Gavazzi公司开始实施国际化战略。公司先后在多个国家和地区设立销售和服务团队,将产品和服务推向全球市场。这一过程中,公司不仅面临着文化差异和市场环境的挑战,也积极寻求与当地企业的合作与共赢。通过不断努力,公司逐渐在全球范围内建立起自己的品牌形象和市场地位。

ACCRETECH公司的发展小趣事

1984年,Carlo Gavazzi公司在瑞士成功上市,这是公司发展史上的一个重要里程碑。上市不仅为公司带来了更多的资金支持,也提高了公司的知名度和影响力。此后,公司利用资本市场的力量,进一步加快了业务扩展和技术创新的步伐。

DFRobot公司的发展小趣事

DFRobot公司于2008年由叶琛创立,当时主要致力于将国外的开源硬件项目引入中国。起初,公司规模较小,团队由几位热爱机器人和开源硬件的工程师组成。他们凭借对技术的热情和不懈的努力,逐渐在电子行业崭露头角。叶琛作为公司的创始人,不仅拥有深厚的工程学背景,还具备前瞻性的商业眼光,为公司的发展奠定了坚实的基础。

问答坊 | AI 解惑

ARM2410开发矩阵键盘问题!

我在编译矩阵键盘驱动程序时,出现以下错误信息,始终找不到答案,请各位帮忙! c:\\wince420\\pbworkplace\\smdk2410\\iicdev\\i2cdev-keyboard.cpp(11) : fatal error C1083: Cannot open include file: \'C:\\WINCE420\\PBWorkSpace\\smdk2410\ ...…

查看全部问答>

救命呀!

用P1。0-P1。5这6个输出口作为东西,南北两个方向的红。绿。黄的路口指示灯。分别接入不同颜色的二极管。程序一开始时,即进入状态1(东西方向绿灯亮,南北方向红灯亮),计数道20秒时间后进入中间状态1(东西方向绿灯灭,东西方向黄闪3秒,间隔0。 ...…

查看全部问答>

双网卡热备份(双网卡冗余备份)如何设计与实现呢?

大家好?WIN2000下,以太网网络,双网卡热备份,也就是一个网卡坏了,另一个冗余网卡热切换,两个网卡同一个IP地址,实现方案是什么?使用哪些工具,技术?代码是什么?我的QQ:270996889  E-MAIL:SDTZ_ZZ@126.COM,热切期待您的回复.谢谢!…

查看全部问答>

STM32F103中规则通道和注入通道有什么区别吗

                                 规则通道和注入通道有些地方比较模糊,请高手给指点指点。…

查看全部问答>

[launchPad]时钟

Msp430可以使用的内部、外部时钟有LFXT1(低频、低功耗时钟,可以使用外部低频32768HZ晶振或400K-16M晶振)、XT2CLK(外部输入的高频晶振400K-16M)、DCO(内部数字控制晶振)、VLO(12K内部低频晶振)。 芯片可以使用的时钟:ACLK(辅助时钟)、MCL ...…

查看全部问答>

关于用FPGA产生2.5Gbps数字信号

实验需要产生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常用的那种算号器。…

查看全部问答>