利用定时器测量方波频率(P3^4口)

发布者:NatureLover最新更新时间:2022-08-11 来源: csdn关键字:定时器  测量  方波频率 手机看文章 扫描二维码
随时随地手机看文章

代码如下:


#include"reg52.h"

 

#define uchar unsigned char

#define uint unsigned int

uchar code table [] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchar code table_SMG [] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};//位选

 

//-------------------------------变量区----------------------------------

uint date_F = 0;//承装频率变量(用于显示)

uint count_F = 0;//承装频率变量(用于计算频率)

uchar time = 0;//用于定时1S

 

//-------------------------------函数区----------------------------------

 

void Delay(uint t)//延时函数

{

while(t--);

}

 

void Init_TR_0()  interrupt 1

{

count_F++;//计算脉冲个数

}

 

void Init_TR_1()  interrupt 3

{

TH1 = (65536 - 50000)/256;  //给高八位赋初值

TL1 = (65536 - 50000)%256;  //给低八位赋初值

time++;

if(time == 20)//

{

date_F = count_F;//将脉冲个数赋值给频率变量

count_F = 0;//清零脉冲变量

time = 0;//清零计时变量

}

}

 

void Init_ET_()//定时器初始化函数 

{

TMOD = 0x16;//定时器0 工作方式 1

EA = 1;    //开总中断

ET0 = 1;   //开定时器开关

ET1 = 1;

TR1 = 1;   //启动定时器

TR0 = 1;   //启动定时器

TH0 = 0xff;//用八位重装模式(来一个脉冲直接溢出产生中断)

TL0 = 0xff;

TH1 = (65536 - 50000)/256;  //给高八位赋初值50ms

TL1 = (65536 - 50000)%256;  //给低八位赋初值50ms

}

 

void Display_SMG(uchar pos , uchar date)//单个数码管显示函数(位选,段选)

{

P2 = table_SMG [pos];//位选

P1 = date ;//段选

Delay(100);//延时一小段时间用于动态显示

}

 

void Display_Time() //时间显示函数

{

Display_SMG(0 , 0x00);//关掉多余的数码管(下面递推)

Display_SMG(1 , 0x00);//  

Display_SMG(2 , 0x00);//

Display_SMG(3 , 0x00);//

if(date_F>999)//频率达到1000以上时打开否则关闭(下同)

{

Display_SMG(4 , table [date_F/1000%10]);

}

if(date_F>99)

{

Display_SMG(5 , table [date_F/100%10]);

}

if(date_F>9)

{

Display_SMG(6 , table [date_F/10%10]);

}

Display_SMG(7 , table [date_F%10]);

}

 

 

void main()

{

Init_ET_();//定时器初始化函数 

while(1)

{

Display_Time(); //频率显示函数

}

}


仿真图如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qSw5ZWK5qSw5ZOm,size_20,color_FFFFFF,t_70,g_se,x_16

关键字:定时器  测量  方波频率 引用地址:利用定时器测量方波频率(P3^4口)

上一篇:关于51单片机的地址空间溢出以及解决方法的个人看法(proteus无法仿真)
下一篇:51单片机外接ADC0808制作简易电压表

推荐阅读最新更新时间:2024-10-29 16:52

浅谈示波器测量中探头的选择和使用
目前, 数字 家电 技术 的高速 发展 使与此对应的 电子 回路速度日益加快,对观测波形 信号 的示波器和探头的要求也越来越高,因此示波器的采样速率和探头 模拟 带宽也得到了飞速发展。但是,不少示波器在实际测量过程中却出现了波形再现性不理想或无法正确观测波形等现象。问题究竟在哪里?原因在于随着被测信号频率的加快,探头的重要性也更加突出,如果探头 性能 不佳,就可能导致无法正确完成测量,本文将重点介绍几点测量高速信号时需要注意的探头 选择 和使用问题。 一、电压探头的主要种类 探头是电压 传感器 的一种,用户应根据被测对象电压值、输出阻抗、电压频率选择相适合的电压探头。目前示波器所使用的探头种类非常多,探头不同,其输入阻抗(电阻值
[测试测量]
浅谈示波器<font color='red'>测量</font>中探头的选择和使用
数字无线系统的测试和测量范例
随着业界向2.5G和3G系统的升级,今天功率放大器设计人员面监新的设计挑战。建议采用的混合系统使服务供应商可以在支持现有基础设施的情况下平滑地过渡到3G系统。这种结合多载波和多系统可用来降低系统成本、适应数据服务的要求并扩展市场覆盖面。 下一代无线电 软件定义的无线电(SDR)是能够推动这变化的技术。在多载波和多调制方案情况下,放大器设计人员在测试性能时遇到了更多难题。这同时也要求在测试和测量中采用新的架构。 要在3G系统中实现软件定义的无线电方案,设计者必须先在测试实验室内对放大器性能进行先在测试实验室内对放大器性能进行彻底的测试。为有效地实现这一点,必须采用最新的模块化测试和测量配置。本文讨论的模块化解决方案充分利
[网络通信]
控制单个单片机IO的按键+定时器10ms定时器程序
/*刚刚开始学习AVR单片机, *把学习到的知识和大家分享。有错误或者更好的写法,欢迎交流。 *方便新手学习,我都尽可能的注释 */ #include iom16v.h #include macros.h #include stdio.h //标准输入输出头文件 #define LED_DDR DDRA //LED接PA0~PA7 #define LED_P0RT PORTA //指示灯 /********************************* *按键定义 *******************************/ #define K1 PINC & (1 P
[单片机]
关于超声波传感器测量值闪烁问题
  以下因素都可能影响超声波传感器的工作,具体原因还望您具体分析,本文仅供参考。   一:范围和尺寸   被检测的物体的尺寸大小会影响超声波传感器的最大有效范围,传感器必须探测到一定级别的声波才能被激励输出信号,一个较大的物体可以将大部分声波反射给传感器,所以传感器可以在它的最大限度内对此物体进行感应,而一个小物体只能反射很少的声波,这样就明显地减小了感应的范围。   二:被测物   能运用 超声波传感器 进行检测的最理想的物体应该是大型、平坦、高密度的物体,垂直放置面对着传感器感应面。最难检测的是那些面积非常小,或者是可以吸收声波的材料制作的,比如泡沫塑料,或者是角面对着传感器的。一些比较困难被检测的物体可以先对物体的背景表
[测试测量]
STM32 通用T2、T3、T4、T5定时器详解
下定时器初始化配置 1 void TIM3_Configuration(void)//1MS 2 { 3 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; 4 5 TIM_DeInit(TIM3);//开一下时钟再关闭 6 /* 设置TIM2CLK 为 72MHZ */ 7 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3 , ENABLE); 8 9 10 /* 自动重装载寄存器周期的值(计数值) */ 11 TIM_TimeBaseStructure.TIM_Period=10
[单片机]
STM32F407ZGT6学习之定时器PWM波输出
工程代码:https://pan.baidu.com/s/1Qlfg1_br0tN6yy0fcDwCjg,密码:fhh2 (一)概述 STM32F407有三种类型的定时器,分别是基本定时器、通用定时器、高级定时器。定时器的PWM波输出是通用定时器、高级定时器才有的功能,PWM波的输出驱动,是在基本定时器的基础功能上,把定时器的计数器与一个比较值进行比较,输出高电平或者低电平的过程。 (二)通用定时器框架 通过图中可以看出,图中上半部分是基本计数器的功能(通用定时器与基本定时器的计数器功能差别在于多了几种时钟输入的方式),图中下半部分是通过定时器的”捕获输入/比较输出通道“(TIMx_CH1或TIMx_CH2),通过
[单片机]
STM32F407ZGT6学习之<font color='red'>定时器</font>PWM波输出
高精准测量的最大麻烦——欧姆定律,如何消除?
为了更精确的根据测量结果来计算器件功率及其它电气参数,在很多测量工作中,需要对电压和电流进行精确测量,这就需要很高的测量精确度。但是实际测量中会受到很多因素的干扰,特别是大家都知道的欧姆定律,这到底是怎么回事呢? 在众多测量工作中,需要对电压和电流进行精确测量,并根据测量结果来计算器件功率及其它电气参数,例如功率效率测试和电池功耗分析等。这些测量往往需要总误差达到甚至低于0.1%的测量精度。但实际过程中,总测量精度会受限于测量过程中的若干个因素的制约,包括分流器、引线、测量环境、以及数字万用表本身。数字万用表可对电流进行非常精确的测量,例如安捷伦34461A 6位半数字万用表,在测量最大10A的电流时,误差约为0.06%(24小时校
[测试测量]
高精准<font color='red'>测量</font>的最大麻烦——欧姆定律,如何消除?
相移干涉技术在小角度及直线度测量中的应用
  1 引言   直线度测量在加工设备、检测设备安装调试过程中起着十分重要的作用,其测量值准确与否将直接影响加工设备的制造精度及检测设备的测量精度。在某些高精度应用场合,直线度测量数据直接参与加工及测量设备的精度补偿,是精度补偿过程的数据来源,其测量精度决定了仪器设备的使用精度。直线度一般可通过专用仪器(如HP双频激光干涉仪结合直线度测量附件Wollaston棱镜和二面角反射镜) 直接测量得到,也可通过使用小角度测量装置(如702光电自准直仪)经换算得到 。由于小角度测量装置应用广泛,因而后者成为直线度测量的常用方法。   一般小角度测量的原理如图1所示:   其测量方程式可表示为:   由于角度很小,上式可写为:
[测试测量]
相移干涉技术在小角度及直线度<font color='red'>测量</font>中的应用
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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