用51单片机的外部中断来测频率

发布者:平安守护最新更新时间:2012-09-18 来源: 51hei关键字:51单片机  外部中断  测频率 手机看文章 扫描二维码
随时随地手机看文章
//晶振:12M
//实验方法:首先要把51hei单片机开发板上的ne555的方波输出信号J7的第一脚用杜邦线
//引入P3.2口,数码管即可显示ne555震荡电路当前的频率值,旋动PR1电位器可
//发现数字有变化.
//原理:1秒钟内计数外部脉冲个数,如计数1000次,则表示频率为1000Hz
//1秒钟定时采用51单片机定时器0实现,外部脉冲由外部中断0引脚接入 
#include
#include"51hei.h"
#define uchar unsigned char
uchar counter1;
sbit duan=P2^6;     //74HC573的LE端  U5  LED的段选端
sbit wei=P2^7;      //74HC573的LE端  U4  LED的位选端
unsigned int counter2,tmp; 
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 共阳型数码管0—9显示  
unsigned int dis[6];                
uchar con[]={0xfe,0xfd,0xfb,0xf7,0xef}; //共阳型数码管控制端   
init();
delay(uchar);
display(); 
jishu();


void main()
{guandz();
 init();
 while(1)
 {
    jishu();
    }    
}
//定时器0和外部中断0的初始化 
init()
{  
 EA=1;
 EX0=1;
 ET0=1;
 IT0=1; 
 TMOD=0x01;
 TH0=0x3c;
 TL0=0xaf;
 TR0=1;
}

//延时程序 
delay(uchar x)
{
 uchar a,b;
 for(a=x;a>0;a--)
  for(b=20;b>0;b--);
}
//外部中断0中断程序 
void external0()  interrupt 0
{
    tmp++;
   
}

//定时器0中断程序 
void timer0()  interrupt 1
{ 
 TH0=0x3c;
 TL0=0xaf;
 counter1++; 
}

//显示程序 
display()
{
 uchar i;
    dis[0]=counter2/10000; //获取计数值的万位
 dis[5]=counter2%10000;
 dis[1]=dis[5]/1000;     // 获取计数值的千位
 dis[5]=dis[5]%1000;
 dis[2]=dis[5]/100;    // 获取计数值的百位
 dis[5]=dis[5]%100;
 dis[3]=dis[5]/10;    // 获取计数值的十位
 dis[4]=dis[5]%10;    // 获取计数值的个位
 for(i=0;i<5;i++)  //依次显示万、千、百、十、个位,动态显示
  {
     // P0=0xff;
   P0=con[i];
   wei=1;
   wei=0;
   P0=table[dis[i]];
   duan=1;
   duan=0;
   delay(1);
   P0=0;
   duan=1;
   duan=0;
  }  
}

jishu()
{
  if(counter1==20)   //定时器定时50ms,故20次中断就表示1秒钟到达 
    {
  counter2=tmp;
  display();
  tmp=0;
  counter1=0;
  }
   else
     display();
}
关键字:51单片机  外部中断  测频率 引用地址:用51单片机的外部中断来测频率

上一篇:单片机流水灯三个点亮方向
下一篇:一种基于单片机的红外遥控信号解码新方法

推荐阅读最新更新时间:2024-03-16 13:08

51单片机控制PWM信号实现直流电机转速控制的方法
设计中采用了专门的芯片组成了PWM信号的发生系统并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节从而控制其输入信号波形等均作了详细的阐述。另外本系统中使用了红外对管对直流电机的转速进行测量,经过整形电路后将测量值送到单片机,并且最终作为反馈值输入到单片机进行PID运算从而实现了对直流电机速度的控制。在软件方面,文章中详细介绍了PID运算程序初始化程序等的编写思路和具体的程序实现。 1 单片机最小系统:单片机最小系统由51单片机,晶振电路,复位电路,电源组成。大家都比较熟悉,这里不再赘述。 2 四位数码管显示:在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型
[单片机]
<font color='red'>51单片机</font>控制PWM信号实现直流电机转速控制的方法
基于STM32单片机和51单片机的人体健康监测仪设计方案
近年来,随着生活节奏加快,工作压力加大,不健康的作息等原因,导致猝死的事件频发,心率情况是身体状态的直接表现,所以做好心率监测可以大大避免一些突发情况的发生。整理了电路城上8个心率监测的电路方案,工程师们不妨动动手,给自己一份健康监测,当然电路城上也还有很多心率监测相关的设计,可以进一步探索。 1、基于STM32单片机的人体健康监测仪设计-蓝牙-心率-ADXL345电路设计方案(原理图+源码) 本设计由STM32F103C8T6单片机核心板电路+蓝牙模块电路+DS18B20温度传感器电路+心率检测传感器电路+0.96寸OLED屏显示电路+ADXL345加速度传感器电路+按键电路+蜂鸣器报警电路组成。 1、开机后,OLE
[单片机]
基于STM32单片机和<font color='red'>51单片机</font>的人体健康监测仪设计方案
51单片机玩转物联网基础篇05-控制继电器
前言 本节我们开始学习如何使用51单片机控制继电器,有了继电器,我们可以使用单片机输出的低电平控制高电平期间工作,比如继电器接到220V用电器上,可通过单片机智能控制用电器。 一、基础知识 1.继电器简介 继电器是具有隔离功能的自动开关元件,实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用,广泛应用于遥控、遥测、通讯、自动控制、机电一体化及电力电子设备中,是最重要的控制元件之一,继电器可以分为很多种,本实验使用光耦隔离继电器,实物图如下: 2.继电器控制原理 继电器原理图如下所示: 从上图可知,给继电器模块供电后,红色LED灯就会被点亮,当给IO引脚输入底电平后,单片
[单片机]
<font color='red'>51单片机</font>玩转物联网基础篇05-控制继电器
基于51单片机的跳一跳小游戏 源程序
这段时间学习了LCD12864的无字库使用方法,借此设计了一个单片机跳一跳小游戏 主要功能:控制火材人跳动,判断是否跳在地板上。 不多说直接上图: 仿真原理图如下 总电图图 游戏电路图: LED控制电路图: 蜂鸣器电路图: 总流程图: 游戏界面: 单片机源程序如下: #include main.h unsigned char BGM_choose=1; //人物,地板的信息 /* ***************************************************** */ extern unsigned char mosaic_j1 ; extern unsigned char mo
[单片机]
基于<font color='red'>51单片机</font>的跳一跳小游戏 源程序
基于51单片机的简易电梯系统的设计
1系统概述 1.1设计要求 根据所学的知识以及技能,利用MCS-51系列单片机为中心设计一个简易电梯系统,实现四层电梯的无故障运行,并用数码管和指示灯显示对应楼层和运行方向等基本信息。设计所用的单片机为STC89C52为主要的控制器,自带AD转换,当一边有按键按下时,另一边以数字的形式在数码管上显示出相应的数字信息。 选择合适的芯片进行驱动电路的设计; 运行状态精确显示; 平层误差不超过±1cm。 总体设计 总的设计框图如图1-1所示,由单片机模块、矩形按键模块以及系统信息模块三个大模块构成,它们的作用分别为: 单片机模块:数据输入输出的处理。 矩形按键模块:通过按键,将相关信息送入单片机处理。 系统信息模块:用若干
[单片机]
51单片机基础之定时器中断(二)
TMOD寄存器: 这里讲一下TMOD寄存器,这个寄存器可以选择开启定时器0还是1,还有可以决定定时器以什么方式工作。如图: 代码: #include reg51.h sbit LED=P2^0; typedef unsigned char u8; typedef unsigned int u16; void time1_init(void) { TMOD|=0x10; //TMOD是一个寄存器,用来决定定时器的工作方式,高四位决定定时器1,目前是工作方式1,即16位定时计数。 TH1=0xfc; //定时器高八位 TL1=0x18; //定时器低
[单片机]
<font color='red'>51单片机</font>基础之定时器中断(二)
C51单片机定时器/计数器中断功能详细分析(一)
我们首先需要了解什么是中断? 中断是指CPU在执行某一过程中由于外界原因必须暂停现在的事情,处理别的事情,处理完了再回去执行暂停的事情。 中断的优点? 1.分时操作。 2.实时响应 3.可靠性高 中断中用到的寄存器: 中断优先级寄存器IP IP寄存器: 作用是选择优先级的,解决中断优先级问题。 PX0:外部中断0优先级设定位 PT0:定时/计数器T0优先级设定位 PX1:外部中断0优先级设定位 PT1:定时/计数器T1优先级设定位 PS :串行口优先级设定位 PT2:定时/计数器T2优先级设定位 中断允许寄存器IE IE寄存器: EX0:外部中断0允许位; E
[单片机]
C<font color='red'>51单片机</font>定时器/计数器中断功能详细分析(一)
51单片机红外遥控解码
红外遥控发射芯片采用PPM编码方式,当发射器按键按下后,将发射一组108ms的编码脉冲。遥控编码脉冲由前导码、8位用户码、8位用户码的反码、8位操作码以及8位操作码的反码组成。通过对用户码的检验,每个遥控器只能控制一个设备动作,这样可以有效地防止多个设备之间的干扰。编码后面还要有编码的反码,用来检验编码接收的正确性,防止误操作,增强系统的可靠性。前导码是一个遥控码的起始部分,由一个9ms的低电平(起始码)和一个4. 5ms的高电平(结果码)组成,作为接受数据的准备脉冲。以脉宽为0. 56ms、周期为1. 12ms的组合表示二进制的“0”;以脉宽为1. 68ms、周期为2. 24ms的组合表示二进制的“1”。如果按键按下超过108m
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

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