历史上的今天
返回首页

历史上的今天

今天是:2024年08月23日(星期五)

正在发生

2021年08月23日 | 51单片机-外部中断测脉冲个数

2021-08-23 来源:eefocus

1.外部中断的常用功能

外部中断经常用来记录外部脉冲的个数,也就是当我们使用外部中断1时,如果想记录自身单片机的某个引脚的下降沿个数,只需用杜邦线把这个引脚和P3.3连接即可。


比如P2.3引脚产生这样的电平无规律跳转,则下降沿的个数为5

6.13.png?imageView2/2/w/550

所以我们就用外部中断1来实现记录K4按键从按下到松手的抖动过程中经历了多少个下降沿,把下降沿的个数显示在数码管上。

 

2.程序思路

我们定义一个16位的全局变量pulse用来记录P2.3下降沿的个数,在中断函数中的任务就是简单的pulse自加,因为引脚遇到下降沿就会进入中断函数。

在主函数里就是负责数码管显示即可。

 

3.代码

#include  

#include //详见第六章第8讲

 

u16 pulse=0;

void main()

{  

    u16 x,PULSE_buf;

    IT1 = 1;   //下降沿触发模式

    EX1 = 1;

    EA  = 1;

   

    LED_Init();//初始化LED硬件模块 

    KEY_Init();//初始化按键功能模块

    ShowNumber(pulse);

    while(1)

    {

        SEG_Scan();  

        if(PULSE_buf!=pulse)ShowNumber(pulse);//pulse不再是前一次的值,也就是pulse数值更新了,所以数码管缓存区也要更新pulse的数值以便显示出来

     

        x++;

        if(x>=50)//隔一段时间过来记录此时的pulse数值

        {

            x=0;

            PULSE_buf=pulse;

        }

    }

}

  

//请把P3.3和P2.3用杜邦线连接起来

void EXTI1_IRQHandler() interrupt 2

{

    pulse++;

}


大家多按几次K4,发现按下后松手的一个动作里有时pulse就自加了几次,显示在数码管上的数加了好几下。


4.稳定测试


我们再用P2.3提前设定好会产生多少个脉冲,然后观察数码管显示的是不是我们设定好的脉冲数。这里我们让P2.3跳变电平15次,看看数码管显示的数值是多少。


#include  

#include //详见第六章第8讲

 

u16 pulse=0;

void main()

{  

    u8 i=0;

    IT1 = 1;   //下降沿触发模式

    EX1 = 1;

    EA  = 1;

   

    LED_Init();//初始化LED硬件模块 

    KEY_Init();//初始化按键功能模块

   

    while(i<15)//让P2.3产生脉冲数,然后结束循环

    {

        KEY4=!KEY4;

        i++;

        delay_ms(1);  //让电平保持的时间多一点

    }

   

    ShowNumber(pulse);//更新数码管缓存区内容

   

    while(1)

    {

        SEG_Scan();   //显示脉冲数  

    }

}

  

//请把P3.3和P2.3用杜邦线连接起来

void EXTI1_IRQHandler() interrupt 2

{

    pulse++;

}


数码管显示的是8,画出状态图一目了然!

6.14.png?imageView2/2/w/550

拔了杜邦线再复位开发板就是显示0了。


推荐阅读

史海拾趣

Horizon Electronics Enterprises Group公司的发展小趣事

为了应对市场需求的多样化和技术发展的快速变化,Horizon开始实施多元化产品布局战略。公司不仅继续深耕半导体芯片领域,还逐步拓展至电子元器件、智能设备、物联网解决方案等多个领域。通过自主研发和合作并购等方式,Horizon不断丰富产品线,满足不同客户的多样化需求。这一战略的实施不仅增强了公司的市场竞争力,也为公司的持续发展注入了新的动力。

B&F;公司的发展小趣事

在B&F公司的早期发展阶段,Peter Funk和Dirk Breitkreutz先生意识到,要想在竞争激烈的航空市场中脱颖而出,必须依赖技术创新。他们决定研发一款具有独特设计和高性能的轻型飞机——FK系列。这款飞机在电子系统上进行了大量创新,如采用先进的导航系统和通信设备,提高了飞行的安全性和舒适性。这些技术创新为B&F公司赢得了良好的声誉,也为公司的快速发展奠定了基础。

Achronix Semiconductor Corporation公司的发展小趣事

在B&F公司的早期发展阶段,Peter Funk和Dirk Breitkreutz先生意识到,要想在竞争激烈的航空市场中脱颖而出,必须依赖技术创新。他们决定研发一款具有独特设计和高性能的轻型飞机——FK系列。这款飞机在电子系统上进行了大量创新,如采用先进的导航系统和通信设备,提高了飞行的安全性和舒适性。这些技术创新为B&F公司赢得了良好的声誉,也为公司的快速发展奠定了基础。

Fischer Connectors公司的发展小趣事

随着FK系列飞机在全球范围内的知名度不断提升,B&F公司意识到,要想进一步拓展市场,必须建立完善的全球分销网络。于是,公司开始积极寻找合作伙伴,并在全球范围内建立分销点。通过这一举措,B&F公司的产品得以迅速进入更多国家,进一步提升了公司的市场份额和影响力。

CUI Inc.公司的发展小趣事

随着集成电路技术的快速发展,对先进IC供电的需求日益增长。为了应对这一挑战,CUI Inc.推出了90A数字负载点模块系列。这些模块采用先进的封装技术和设计,具有高电流输出和优异的性能表现。它们的推出不仅满足了客户对高效、可靠供电的需求,还进一步提升了CUI在电源领域的竞争力。

Dover Corporation公司的发展小趣事

为了进一步扩大市场份额,Dover Corporation积极推进国际化布局。公司通过与国际、国内投行及私募基金的合作,成功收购了多家海外公司,实现了业务的全球化。这些收购不仅为Dover带来了更多的市场机会,也增强了其在全球市场中的竞争力。

问答坊 | AI 解惑

求助:怎样测试其频率、占空比

请教高手,芯片半成品(wafer),在工控机上安装采集卡,测试其频率(30k左右)、占空比(标准方波),怎样测量?哪款采集卡比较合适?希望能和大侠们交流请教一下。          俺的qq号:308676575 。   &nbs ...…

查看全部问答>

定时器T0,T1可以分别在不同的模式下运行吗?

定时器T0,T1可以分别在不同的模式下运行吗?如果可以TMOD怎么设置~例如T0在模式1,T1在模式2…

查看全部问答>

Intel82551网卡大包(65535 bytes)不通问题

小弟正在做MPC8377的板子,板载一片Intel82551 PCI网卡,还有Intel82574 pci-e网卡,vxworks的版本是6.6,之前我是使用命令行编译的,这两个网卡的大包(65535字节)都不通.后来,使用workbench编译,通过比较prjParams.h文件,添加了大包的相关组件后, 82574 ...…

查看全部问答>

wince 4.2 ie升级问题

在wince 4.2 的引用过程中碰到如下几个问题,由于版本过老,很难找到资料,望高手指点 1.原IE是4.0,需要升级到6.0,网上很难找到IE升级包,有没有什么方法可以解决呢?主要是用在远程监控的IE访问,要安装插件(诚风的远程监控 硬盘录像机),有 ...…

查看全部问答>

求教wince6 R3环境silverlight开发

目前在wince6 R3环境下开发Silverlight程序,计划采用DirectDraw作为2D加速方式。处理器为pxa310,是支持DirectDraw的2D硬件加速的。 按照msdn上的介绍配置好环境变量,SYSGEN_XAML_RUNTIME,BSP_XRPLUGIN_DDRAW and BSP_XRPLUGIN_OPENGL。在系统b ...…

查看全部问答>

如果标准输出重定向到文件, 如果磁盘满了系统却不提示.

我把系统标准输出重定向到文件, 问题出在:当系统磁盘满了, 不能再写入时, 程序如何获知这种情况? 谢谢…

查看全部问答>

PID调节遇到的问题,高手来指点一下.

本帖最后由 dontium 于 2015-1-23 13:26 编辑 我做的速度+电流双闭环PID调节程序,速度外环,电流内环,在双环调节的时候出现这样的问题: 1: 调节反馈速度值,在达到临界点的时候(临界点就是误差值在0点附近)这时整个PID的输出不稳定, 观察此时输出 ...…

查看全部问答>

msp430使用心得

真正使用430是这次换工作以后,新项目是用430单片机来实现的,主要是430的微功耗功能,确实让我感受到这款单片机的强大。以前做项目采用c8051单片机,功能在10mA左右,认为这种功耗已经很小了,接触430后才感觉到TI对MCU的设计的水平,能够很好的把 ...…

查看全部问答>

quartus中哪些模块占用on-chip memory

quartus中哪些模块占用on-chip memory,怎么看哪些ip占了多少M4K模块,谢谢。     10485760是10Mbit这是on-chip memory的大小?   EP2C35的M4K是105个RAM,也就是483840bit,这和上面的有什么关系? function ...…

查看全部问答>

【聊聊DSP】我眼中DSP发展驱式

DigitalSignalProcessor是对模拟信号变成数字信号的高速处理。其处理器处理速度为普通的5-10倍。在数字电话,调制解调器技术(mode),个人计算机(显卡),消费电子。现在在DSP市场占有率的老大是TI(45%),老二是朗讯(20%),老三是ADI和摩托罗 ...…

查看全部问答>