51单片机-外部中断测脉冲个数

发布者:创新火箭最新更新时间:2021-10-14 来源: eefocus关键字:51单片机  外部中断  脉冲个数 手机看文章 扫描二维码
随时随地手机看文章

1.外部中断的常用功能

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


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

6.13.png

所以我们就用外部中断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

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


关键字:51单片机  外部中断  脉冲个数 引用地址:51单片机-外部中断测脉冲个数

上一篇:51单片机-中断的实验现象
下一篇:51单片机-定时器概念

推荐阅读最新更新时间:2024-11-10 11:05

业界七大主流单片机最细剖析
-- 51、MSP430、STM32、PIC、AVR、STC、Freescale 单片机现在可谓是铺天盖地,种类繁多,让开发者们应接不暇,发展也是相当的迅速,从上世纪80年代,由当时的4位8位发展到现在的各种高速单片机…… 各个厂商们也在速度、内存、功能上此起彼伏,参差不齐~~同时涌现出一大批拥有代表性单片机的厂商:Atmel、TI、ST、MicroChip、ARM…国内的宏晶STC单片机也是可圈可点… 下面为大家带来51、MSP430、TMS、STM32、PIC、AVR、STC单片机之间的优缺点比较及功能体现…… 51单片机 应用最广泛的8位单片机当然也是初学者们最容易上手学习的单片机,最早由Intel推出,由于其典型
[单片机]
51单片机各种型号的区别与特点介绍
8031/8051/8751是Intel公司早期的产品。 8031的特点 8031片内不带程序存储器ROM,使用时用户需外接程序存储器和一片逻辑电路373,外接的程序存储器多为EPROM的2764系列。用户若想对写入到EPROM中的程序进行修改,必须先用一种特殊的紫外线灯将其照射擦除,之后再可写入。写入到外接程序存储器的程序代码没有什么保密性可言。 8051的特点 8051片内有4k ROM,无须外接外存储器和373,更能体现“单片”的简练。但是你编的程序你无法烧写到其ROM中,只有将程序交芯片厂代你烧写,并是一次性的,今后你和芯片厂都不能改写其内容。 8751的特点 8751与8051基本一样,但8751片内有4k的EPROM
[单片机]
51单片机程序执行的过程
单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条 指令 的过程。计算机每执行一条 指令 都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。 分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。 计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。 一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内
[单片机]
基于51单片机的无线供电模块的无线传输系统效率检测
1引言 无线供电是一种方便、安全的供电装置,之间不需要任何物理连接,当发送端产生的振荡磁场 频率 和接收端的固有频率相同时,接收端就产生共振,从而实现了能量的传输。现在已经用于一些小的家电中,也许在不久的将来将用于室内供电和城市的供电,彻底代替电线,应用前景广泛。本文主要阐述近距离无线供电,具有低功耗、安全等特点,通过单片机检测 更好的增加了它的可靠性。 2系统方案设计 无线供电演示装置的设计制作。该电路由电源发射电路、接收电路、检测显示电路三部分组成 。 2.1方案论证与选择 方案1:震荡电路 发射电路用NE555产生可以调节频率的对称方波,接L298放大和恒流源模块产生 电压 12v、频率20M
[单片机]
基于<font color='red'>51单片机</font>的无线供电模块的无线传输系统效率检测
51单片机PID+PWM直流电机转速闭环控制源码(12864液晶显示)
设计内容及要求 内容包括: 1. 查找文献资料,学习直流电机控制的工作原理; 2. 转速控制系统方案设计 3. 硬件电路设计,绘制电路原理图和PCB图; 4. 设计软件,并调试 5. 综合调试,测试、分析误差原因 6. 撰写设计报告 要求: 1.矩阵键盘设定并显示转速,实时显示实际转速 2.按键控制电机起停、正反转 3.PWM转速闭环控制。 4.用lcd12864液晶屏显示相关内容 设计 参数 1.转速调节范围:1500转/分--3000转/分 2.测速误差 10% 制作完成的pid直流电机转速控制系统实物图: 51单片机源程序如下: #include reg51.h
[单片机]
<font color='red'>51单片机</font>PID+PWM直流电机转速闭环控制源码(12864液晶显示)
51单片机+8*8点阵实现的贪食蛇源代码
电路图和单片机仿真文件下载: http://www.51hei.com/bbs/dpj-20604-1.html 下面是源代码: #include reg51.h #define uchar unsigned char #define SNAKE 20 //最大长度 #define TIME 50 //显示延时时间 #define SPEED 71 //速度控制 //#define keyenable 1 sbit keyenable=P3^6; //方向使能 /*sbit keyx=P0^1; //左右 sbit keyy=P0^2; //上下 */ //s
[单片机]
<font color='red'>51单片机</font>+8*8点阵实现的贪食蛇源代码
51单片机数据存储类型
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型。分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。与ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各种不同的模式对应不同的实际硬件系统,也将有不同的编译结果。 在51系列中data,idata,xdata,pdata的区别: data:固定指前面0x00-0x7f的128个RAM,可以用acc直接
[单片机]
有关C51存储器类型与51单片机的物理区域
1、 data区空间小,所以只有频繁用到或对运算速度要求很高的变量才放到data区内,比如for循环中的计数值。 2、 data区内最好放局部变量。 因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提高内存利用率。当然静态局部变量除外,其内存使用方式与全局变量相同; 扩展阅读:51单片机的特殊功能寄存器(SFR) 3、 确保你的程序中没有未调用的函数。 在Keil C里遇到未调用函数,编译器就将其认为可能是中断函数。函数里用的局部变量的空间是不释放,也就是同全局变量一样处理。这一点Keil C做得很愚蠢,但也没办法。 4、 程序中遇到的逻辑标志变量
[单片机]

推荐帖子

【2024 DigiKey 创意大赛】物料开箱帖
非常高兴能够入围,感谢Digikey和eeworld提供的物料。我要做的作品是一个3d打印机耗材的智能干燥箱,支持通过wifi在网页上控制。BME680传感器,用于测量温度、湿度。ESP32C6开发板,作为主控。树莓派5,用于增加一些扩展功能。【2024DigiKey创意大赛】物料开箱帖
eew_zCrdSf DigiKey得捷技术专区
uCGUI移植过程中的编译问题,Error:C2285E,Error :C2225W
移植uCGUI到S3C2440的过程中,在ADS的编译环境下碰见如下编译问题,求助各位大侠。Error:C2285E:expected\';\'or\',\'-inserted\';\'before\'GUI_COLOR\'GUIType.hinline47Error:C2225W:declarationlackstype/storage-class(assuming\'int\'):GUI_COLORGUIType.hinline47
nail26 实时操作系统RTOS
初学者真诚的向您请教
global.obj:errorLNK2019:unresolvedexternalsymbolclassCWinApp*__cdeclAfxGetApp(void)(?AfxGetApp@@YAPAVCWinApp@@XZ)referencedinfunctionstructHMENU__*__cdeclGetMenu(structHWND__*)(?GetMenu@@YAPAUHMENU__@@PAUHWND__@@@Z)emulatorDbg
holystw 嵌入式系统
米尔-T133测试评-LVGL移植
##米尔-T133测试评-LVGL移植前面我们已经成功适配了屏幕显示和电容触摸,已经达成了lvgl移动植入的必要条件,接下来我们就开始移植LVGL8.2的GUI到这个板子上###1.拉取LVGL源码我们可以通过一下命令拉取lvgl```bashgitclonehttps://github.com/lvgl/lvgl.gitgitclonehttps://github.com/lvgl/lv_drivers.gitgitclonehttps://github.com
yvwei 国产芯片交流
Kicad 原理图设置
Kicad原理图设置Kicad原理图设置可以设置一些电气规则,原理图格式,NetClasses等。Kicad的原理图设置在左上角如图1所示图1:Kicad原理图设置Netclasses设置图2:NetClasses设置图2-1添加NetClasses,图2-2添加NetClasses的成员需要手动添加网络名称,还不太智能。图2-1设置整个NetClasses在网络上的属性,如我设置的是显示线宽为12mil,颜色为红色,线型为连续直线,效果如图3所示。
xutong PCB设计
请教稳压管测试问题
12V稳压管,SOD323封装,用三用表测量正向电压:Vf=0.64V(正到负极)反向电压:Vf1=0.25V请问这个稳压管还能用不?请教稳压管测试问题【请问这个稳压管还能用不?】显然已经损坏,不能再用。正向测得0.64V是正常的,反向测得0.25V则不正常。 三用表测量反向是不通的!或者表有微弱的反应不论是什么万用表,12V稳压管均不可能被反向击穿,说明稳压管已经坏了。12V稳压管,反向电压:Vf1=0.25V,这个稳压管不能用了。
kal9623287 电源技术
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved