51单片机定时器2捕获模式测脉冲频率

发布者:时光如梦最新更新时间:2022-08-10 来源: csdn关键字:51单片机  定时器2  捕获模式  脉冲频率 手机看文章 扫描二维码
随时随地手机看文章

常规方法测量脉冲的频率,利用51单片机的两个定时器来测量,一个定时器来定时,一个定时器作为计数方式;能不能有一个更好的方法,不使用这么多硬件,只使用一个定时器就可以满足需求? 当然可以的,定时器2有输入捕获功能,P1.1接外部脉冲,当来一个脉冲,定时2就进入中断服务程序中断一次,同时也有定时功能。下面是主要的程序:


#include

#define uint unsigned int

#define uchar unsigned char

#define ulong unsigned long 

uint timer2_count;

uint cap_count;

uchar code dispbit[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; // 定义位选  从第二个数码开始

uchar code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};//定义段码

uchar dispbuf[8]={0,0,0,0,0,0,10,10}; //显示缓冲

uchar temp[8];

uchar dispcount;

uint x;

bit flag;

sbit L1 = P0^7;

//sbit L2 = P0^1;

sbit W1=P1^2;

sbit W2=P1^3;

sbit W3=P1^4;

sbit W4=P1^5;

sbit W5=P1^6;

sbit W6=P1^7;


void display_wei(uchar dipcount)

{

 switch (dipcount){

 case 0: W1=1;W2=W3=W4=W5=W6=0;

   break;

 case 1: {W2=1;W1=W3=W4=W5=W6=0;}

   break;

 case 2: {W3=1;W2=W1=W4=W5=W6=0;}

   break;

 case 3: {W4=1;W2=W3=W1=W5=W6=0;}

   break;

 case 5: {W5=1;W2=W3=W4=W1=W6=0;}

   break;

 case 6: {W6=1;W2=W3=W4=W5=W1=0;}

   break;

 }

}

void timer2_init()

{

 ET2=1;       // 开定时器2

   T2CON=0X09;  //设置T2为捕获模式,下降沿则产生中断

   TH2=(65535-5000)/256;

   TL2=(65535-5000)%256;


   EA=1;        //打开中断

   TR2=1;       //启动计数器

}


void main()

{

  timer2_init();

  while(1)

  {

   uchar i;

 if(flag==1)

 {

  flag=0;

  x=cap_count;   //频率公式  一秒钟测量的脉冲数

  //x= x*563;

  //x=x/10;

  for(i=0;i<8;i++)

  {

   temp[i]=0;     //数组清零

  }

  i=0;   

  //x=123456;

  while(x/10)

  {

   temp[i]=x%10;

   x=x/10;

   i++;

  }

  temp[i]=x;

  for(i=0;i<6;i++)

  {

   dispbuf[i]=temp[i];   //显示6位频率数(缓存)

  }

  

  cap_count=0;

  TR2=1; 

 }

  }

}


void timer2_interrupt(void) interrupt 5 using 1 //中断服务程序

{

  if(EXF2) //捕获的中断

  {

    //L1=!L1;

 cap_count++;

        EXF2=0;

  }


  if(TF2)

  {

    TH2=(65535-5000)/256;

   TL2=(65535-5000)%256;

 timer2_count++;

 if(timer2_count==400)

 {

  //L2=!L2;

  flag=1;

  timer2_count=0;

  TR2=0;//停止计数

    }

 TF2=0;

 P0=dispcode[dispbuf[dispcount]]; //显示数据

 

 //P1 = ((P1&0x02)|dispbit[dispcount+2]);          //位选

 display_wei(dispcount);

 dispcount++;

 if(dispcount==6)

 {

  dispcount=0;

 }

  }

}


关键字:51单片机  定时器2  捕获模式  脉冲频率 引用地址:51单片机定时器2捕获模式测脉冲频率

上一篇:51单片机定时器计数器原理以及应用(方波、pwm、脉冲计数、高电平脉宽测量)
下一篇:51单片机制作脉冲发生器

推荐阅读最新更新时间:2024-11-17 12:31

C51单片机对抽油机的智能功率控制电路设计
为了实现抽油机能自动根据负载需要实时进行Δ/Y双向切换和间歇定时控制的目标,采用嵌入式控制技术设计了如图1所示的控制电路。 智能功率控制器的硬件系统以新华龙电子公司为C8051F206配套的实验板为基础,新增输出电路和键盘显示电路后形成。直接利用实验板上的C8051F206MCU、JTAG接口、晶振、复位及电源电路,大大降低了硬件设计工作量。 (1)输出电路 本系统的被控对象是电机的开关。为满足星角切换和开机/停机要求,需要对3只交流接触器(C1~C3)按一定组合关系进行控制,其电路原理和控制真值表如图2(a)和图2(b)所示。考虑到现场抗干扰的需要,在输出端口P0.1,P0.3和P0.5后采用了光电隔离电路(图2(c)),其
[单片机]
C<font color='red'>51单片机</font>对抽油机的智能功率控制电路设计
51单片机 (2)流水灯实验
一、控制一/多灯亮灭 汇编实现 ;注释 LOOP: ;SETB P1.1 ;(1)熄灭灯 MOV P1,#0FFH; LCALL DELAY ;(2)延时一段时间 ;CLR P1.1 ;(3)点亮灯 MOV P1,#0FDH; LCALL DELAY ;(4)延时一段时间 AJMP LOOP ;(5)跳转到第一句LOOP处 ;以下子程序 DELAY: MOV R7,#250 ; D1: MOV R6,#250 ; D2: DJNZ R6,D2 ;R6=R6-1;IF(R6!=0) GOTO D2; DJNZ R7,D1 ;
[单片机]
51单片机播放音乐(一):蜂鸣器
蜂鸣器 蜂鸣器分为有(震动)源的和无源的,有源的无法控制频率,所以用无源的才能播放音乐。无源蜂鸣器需要自己控制输入变化的信号才能发声,最简单的就是输入方波信号了,通过单片机控制方波的频率就能发出不同音调的声音 这是发出50%占空比方波的代码: int i; while (1) { for (i = 0; i 10; ++i); // 改变循环次数可以改变方波频率 P1_0 = 1; for (i = 0; i 10; ++i); P1_0 = 0; } 乐谱转成循环次数 首先要有蜂鸣器乐谱,就是用频率和持续时间表示一个音符的乐谱,至于如何获取蜂鸣器乐谱可以看我上一篇文章。由于单片机的运行速度很慢,如果在单片
[单片机]
<font color='red'>51单片机</font>播放音乐(一):蜂鸣器
80C51单片机对压力测量控制系统的设计
1 引言 目前我国发展煤炭生产机械化发展迅速。综采设备的应用,是提高效率、改善安全状况的措施。 影响开机率的一个主要因素是支架对工作面的顶板控制的好坏,因此,对综采工作面进行矿压监测与控制是很有必要的。要做到这一点,首先需要对井下工作面的液压支架的实际工作状况进行监测,通过对检测数据处理、分析,评定其效果,并采取相应措施,以提高开机率、提高产量。本文以监测综采液压支架的压力为研究内容,开发了一套基于单片机的压力测量控制系统。 2 压力测量控制系统功能设计 压力测量控制系统用于监测支架压力, 每台测量控制系统配有四只传感器, 可分别通过高压油管连接支架的立柱、平衡千斤顶, 前探梁千斤顶的油压腔。压力测量控制系统接收到通讯测量
[单片机]
80C<font color='red'>51单片机</font>对压力测量控制系统的设计
51单片机入门 - SPI协议与应用实验
简介: 串行外围设备接口 全双工三线同步,可以同时发出和接收串行数据 采用主从(Master Slave)架构,支持多Slave模式应用,一般仅支持单Slave 时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后 目前应用中可以达到几Mbps的水平 优点:与普通的串行设备相比,可以按位传输,甚至可以暂停。当没有时钟跳变时,从设备不采集和传送数据。不需要寻址操作。全双工通信。 缺点:没有应答机制确认。 特点: 提供频率可编程时钟 发送结束、中断标志;写冲突保护 总线竞争保护 SPI总线工作的4种工作方式中,使用最广泛的是SPI0和SPI3方式 - - - - - - - - - -
[单片机]
<font color='red'>51单片机</font>入门 - SPI协议与应用实验
基于AT89C2051单片机制作的厨房定时器
该制作以5分钟为一个计时单位,最多计时1小时,3V电池做电源,有蜂鸣器报警,工作时功耗为6mA左右(使用AT89C2051),可以使用3V钮扣电池,具有自动关机功能,不运行时耗电量可以忽略不计,单键操作,简单方便。   电路图   VT1为PNP的9012,当电路不工作时VT1的B极由R4得到高电平,VT1截止,AT89C2051无法从VT1的E极得到电源。当SW1按下时,VT1的B极通过VD2和SB1接地,由高电平转为低电平,VT1导通。此时AT89C2051得电,同时通过C1,R4复位。复位成功后P3.7升为高电平,使得VT2导通,从而使VT1的B极保持低电平状态,这时就算松开SB1,VT1也不会截止而导致MCU失
[工业控制]
基于AT89C20<font color='red'>51单片机</font>制作的厨房<font color='red'>定时器</font>
以AT89C51单片机为核心的量程自动切换频率设计
近年来,随着科学技术的快速发展,特别是类似单片机等相关集成电路生产技术的快速堀起,推动了仪器仪表及家电产业的快速发展,用程序代码来简化硬件电路的复杂程度,使其不断向着体积小,价格低廉,功能更加多样化、智能化的方向发展。功能齐全,价格低廉的产品越来越受到人们的青睐,当然,科技的发展最先受益的 还是从事前沿科技研究领域的人员,对于他们来说,一款好的测量设备将为他们的研究工作带来便利的同时也减轻很多负担。就目前而言,高端仪器设备很多均依赖进口,研究并制造出属于我们国家自己的高端仪器设备将是我们一直努力的方向,而且也具有非常广阔的发展前景。 1 硬件电路设计 本设计主要由信号采集电路、放大整形电路、分频电路、信号处理电路、电源电路和显
[单片机]
以AT89C<font color='red'>51单片机</font>为核心的量程自动切换<font color='red'>频率</font>设计
基于51单片机的定时顺序控制器
求代码,作用是单片机控制继电器用于自动操作键盘。 要求: P01 导通三分钟,然后断开; P02 导通 10 秒后断开; P03 导通 0.5 秒后断开; P04 导通 0.2 秒后断开; P05 导通 0.5 秒后断开; P06 导通 0.2 秒后断开。 断开 P06 之后,循环所有。 单片机 89C52RC。 如下程序。 //-------------------------------------------------- #include #define uchar unsigned char #define uint unsigned int sbit P0_1 = P0^1; sbit P0_2 = P0^2; s
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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