单片机测量频率,占空比,相位差

合集下载

使用STM32测量频率和占空比的几种方法

使用STM32测量频率和占空比的几种方法

(纯干货)使用STM32测量频率和占空比的几种方法
使用平台:官方STM32F429DISCOVERY开发板,180MHz的主频,定时器频率90MHz。

相关题目:
(1)测量脉冲信号频率f_O,频率范围为10Hz~2MHz,测量误差的绝对值不大于0.1%。

(15分)
(2)测量脉冲信号占空比D,测量范围为10%~90%,测量误差的绝对值不大于2%。

(15分)
思路一:外部中断
思路:这种方法是很容易想到的,而且对几乎所有MCU都适用(连51都可以)。

方法也很简单,声明一个计数变量TIM_cnt,每次一个上升沿/下降沿就进入一次中断,对TIM_cnt++,然后定时统计即可。

如果需要占空比,那么就另外用一个定时器统计上升沿、下降沿之间的时间即可。

缺点:缺陷显而易见,当频率提高,将会频繁进入中断,占用大量时间。

而当频率超过100kHz时,中断程序时间甚至将超过脉冲周期,产生巨大误差。

同时更重要的是,想要测量的占空比由于受到中断程序影响,误差将越来越大。

总结:我们当时第一时间就把这个方案PASS了,没有相关代码(这个代码也很简单)。

不过,该方法在频率较低(10K以下)时,可以拿来测量频率。

在频率更低的情况下,可以拿来测占空比。

思路二:PWM输入模式
思路:翻遍ST的参考手册,在定时器当中有这样一种模式:
简而言之,理论上,通过这种模式,可以用硬件直接测量出频率和占空比。

当时我们发现这一模式时欢欣鼓舞,以为可以一步解决这一问题。

最新AVR单片机占空比及频率测量学习笔记资料

最新AVR单片机占空比及频率测量学习笔记资料

信号占空比测量及频率计算测量信号频率只要得到信号的两个上升沿或者下降沿之间所用的时间即可。

占空比指一个信号高电平和这个信号周期时间的比值,测量信号占空比只需测量信号一下降沿和上升沿之间的距离即可。

测量边沿可以采用AVR单片机外部中断,中断可以设置成边沿触发,设置为上升沿触发或者下降沿触发。

同时启用一个定时器,用定时器的计数值取得相应的时间。

定时器初始化:只需将定时器打开,单片机晶振为16M时,AVR单周期及可计算定时器每曾一所用的时间。

例如用8分频时,每加1用时0.5us。

void Timer1_init(void){CLI(); //disable all interruptsTCNT1H = 0x00; //清零计数值TCNT1L = 0x00;TIMSK |=(1<<TOIE1); //开启溢出中断TIMSK |=(1<<TICIE1); //开启捕获中断TCCR1B = 0x82; //8分频,自增一用时0.5us,开启输入捕获噪声抑制SETBIT(TCCR1B,ICES1);//设置初始为上升沿捕获SEI(); //re-enable interrupts}在中断函数使用中需先将其初始化,设置为起始的上升沿触发中断,并且开启外部中断及总中断,此时如果外部有上升沿及可触发中断函数。

void INT0_Init(void){MCUCR=0x03;//上升沿触发中断GICR =0x40;//开启外部0中断SEI(); //开启总中断}在中断函数中,当有上升沿时,就可触发中断,在中断函数中有一标志位flag_Int,通过此标志位来判断是上升沿的中断还是下降沿产生的中断。

第一次进入中断后flag_int==0;读取定时器1高低位的数据,同时将中断的触发沿改为下降沿触发,然后将定时器值清零。

同时将flag_Int标志位置一,当信号变为下降沿时再次触发中断,此时进入flag_Int=1函数,此时读取定时器值,并将中断改为上升沿中断,此时即可计算(高电平时间=定时器数值*0.5us)将flag_Int=0,当边沿为上升沿时即可进入if(flag_Int==0),此时读取的定时器时间,及Int_End 的值及为脉冲周期。

单片机pwm占空比计算公式(一)

单片机pwm占空比计算公式(一)

单片机pwm占空比计算公式(一)
单片机PWM占空比计算公式
1. 什么是PWM占空比?
PWM(Pulse Width Modulation,脉宽调制)是一种常用的电子技术,在单片机领域用于控制数字信号的输出。

PWM占空比指的是PWM信号中高电平的时间占整个周期的比例,用百分数来表示。

2. PWM占空比计算公式
PWM占空比可以通过以下公式来计算:
DutyCycle = (Thigh / Tperiod) * 100%
其中,DutyCycle为PWM占空比,Thigh为高电平时间,Tperiod为周期时间。

3. PWM占空比举例解释
假设有一个PWM信号的周期为20ms,其中高电平时间为5ms。

那么可以通过上述公式计算出PWM的占空比:
DutyCycle = (5ms / 20ms) * 100% = 25%
这表示PWM信号的高电平时间占整个周期的25%。

4. 结论
通过以上的计算公式和实例,我们可以很方便地计算出单片机PWM信号的占空比。

这对于控制电机速度、LED亮度等应用非常有用。

掌握PWM占空比计算的方法,能够更好地实现单片机信号输出的精确控制。

f103 hal 多路 pwm 相位差 占空比

f103 hal 多路 pwm 相位差 占空比

主题:F103 HAL多路PWM相位差占空比内容:1. 介绍F103 HALF103 HAL是针对STM32F103系列的外设驱动库,通过HAL库可以方便地进行外设的初始化和配置,减少了底层驱动的编写工作,使开发者能够更快速地进行STM32F103系列的开发工作。

2. 多路PWMF103 HAL中提供了多路PWM输出功能,可以灵活地控制多路PWM 信号的输出,满足不同应用场景的需求。

3. 相位差相位差是指两路或多路PWM信号之间的相位角度差,通过调整相位差可以实现多路PWM信号的协调工作。

4. 占空比占空比是PWM信号高电平占据的时间比例,通过调节占空比可以实现PWM信号的输出电平控制。

5. F103 HAL多路PWM相位差占空比的配置在使用F103 HAL进行多路PWM相位差占空比配置时,首先需要初始化相关的PWM外设,并设置好对应的时序参数。

6. 实现多路PWM信号的相位差调节通过修改不同PWM通道的占空比和相位差,可以实现多路PWM信号之间的相位差调节,从而实现复杂的波形输出。

7. 示例代码以下为使用F103 HAL实现多路PWM相位差占空比配置的示例代码:```c#include "stm32f1xx_hal.h"TIM_HandleTypeDef htim1;TIM_HandleTypeDef htim2;void MX_TIM1_Init(void){TIM_OC_InitTypeDef sConfigOC;htim1.Instance = TIM1;htim1.Init.Prescaler = 0;htim1.Init.Period = 255;htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;htim1.Init.CounterMode = TIM_COUNTERMODE_UP; HAL_TIM_Base_Init(htim1);HAL_TIM_PWM_Init(htim1);sConfigOC.OCMode = TIM_OCMODE_PWM1;sConfigOC.Pulse = 128;sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;HAL_TIM_PWM_ConfigChannel(htim1, sConfigOC, TIM_CHANNEL_1);HAL_TIM_PWM_Start(htim1, TIM_CHANNEL_1);}void MX_TIM2_Init(void){TIM_OC_InitTypeDef sConfigOC;htim2.Instance = TIM2;htim2.Init.Prescaler = 0;htim2.Init.Period = 255;htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim2.Init.CounterMode = TIM_COUNTERMODE_UP; HAL_TIM_Base_Init(htim2);HAL_TIM_PWM_Init(htim2);sConfigOC.OCMode = TIM_OCMODE_PWM1;sConfigOC.Pulse = 64;sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;HAL_TIM_PWM_ConfigChannel(htim2, sConfigOC,TIM_CHANNEL_1);HAL_TIM_PWM_Start(htim2, TIM_CHANNEL_1);}int m本人n(void){HAL_Init();SystemClock_Config();MX_TIM1_Init();MX_TIM2_Init();while (1){// 实现相位差和占空比的调节__HAL_TIM_SET_COMPARE(htim1, TIM_CHANNEL_1, 128); __HAL_TIM_SET_COMPARE(htim2, TIM_CHANNEL_1, 64);}}```8. 总结通过F103 HAL的多路PWM功能,可以轻松实现多路PWM信号的相位差和占空比调节,为各种应用场景的PWM信号控制提供了便利和灵活性。

用单片机测量电网频率相位差及功率因数

用单片机测量电网频率相位差及功率因数

用单片机测量电网频率相位差及功率因数
马晓敏
【期刊名称】《电测与仪表》
【年(卷),期】1990(027)005
【总页数】2页(P32-33)
【作者】马晓敏
【作者单位】无
【正文语种】中文
【中图分类】TM727
【相关文献】
1.利用8098单片机测量电网的频率和功率因数 [J], 孟宪陆;陈祥初
2.基于准同步窗的相位差法实现电网频率的高精度测量 [J], 尹引
3.加窗相位差校正算法在电网频率测量中的应用 [J], 杨力森;范李平
4.用单片机测量电力系统的频率,功率因数 [J], 郭太峰
5.基于相位差校正的电网频率高精度测量 [J], 贺建闽;黄治清
因版权原因,仅展示原文概要,查看原文内容请购买。

[毕业设计]以STC12C5A3252单片机为控制核心的频率及相位测试仪

[毕业设计]以STC12C5A3252单片机为控制核心的频率及相位测试仪

1前言在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。

在传统的生产制造企业中,频率计被广泛的应用在产线的生产测试中。

频率计能够快速的捕捉到晶体振荡器输出频率的变化,用户通过使用频率计能够迅速的发现有故障的晶振产品,确保产品质量。

在计量实验室中,频率计被用来对各种电子测量设备的本地振荡器进行校准。

在无线通讯测试中,频率计既可以被用来对无线通讯基站的主时钟进行校准,还可以被用来对无线电台的跳频信号和频率调制信号进行分析。

测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。

相位是反映交流电任何时刻的状态的物理量。

常应用在科学领域,如数学、物理学、电学等。

交流电的大小和方向是随时间变化的。

两个频率相同的交流电相位的差叫做相位差,或者叫做相差。

这两个频率相同的交流电,可以是两个交流电流,可以是两个交流电压,可以是两个交流电动势,也可以是这三种量中的任何两个。

随着科学技术飞速发展,对频率、相位的可靠性、输出精度要求越来越高,利用单片机设计制作的数字频率相位测量仪就显示出其优越性。

功能切换由面板上的按键控制单片机实现,给电路实验带来极大的方便,提高了工作效率。

本次设计是以STC12C5A3252单片机为控制核心的频率及相位测试仪。

本次设计可完成对信号频率的频率测量和相位差测量。

要求测量频率的范围为20Hz到20KHz,相位的范围为0°到360°。

可通过按键实现测频或测相,用LED数码管直接显示读数,显示清晰直观。

误差小,稳定性高。

2总体方案设计2.1.1 方案一方案一的结构框图如下图2.1所示。

图2.1 方案一方框图方案二的结构框图如下图2.2所示。

图2.2 方案二方框图本设计要完成信号频率的测量和相位差的测量。

设计中有两路输入信号,也是被测量信号,它们是两个频率相同的正弦信号,频率范围为20Hz到20KHz,幅度为1到5V (可以扩展到(0.3到5V),但两者幅度不一定相等。

单片机课程设计-频率相位表

单片机课程设计-频率相位表

一、 设计原理 (一)测频原理分析频率测量的常用方式有直接测频法、测周法和等精度测量法。

1.1 直接测频法:在确定的闸门时间T 内,利用计数器对待测信号进行计数,根据所得计数值N ,由公式/x f N T =计算出被测脉冲的频率。

1.2 测周法:以待测信号为门限,已知频率M 的高频脉冲为标频,用计数器记录在此门限内标频的脉冲数N ,由公式/x f M N =得待测信号频率。

1.3 等精度测频法(相关计数测频法)此方法和测周法很相似,但其测量时间并不是被测信号的一个周期,而是人为设定的一段时间。

闸门的开启和闭合由被测信号的上升沿来控制,测量精度与被测信号频率无关,因此可以保证在整个测量频段内的测量精度保持不变。

在这里,同时使用两个计数器分别对待测信号x f 和频标信号m f 在设定的精确门内进行计数,x f 的上升沿触发精确门。

若两个计数器在精确门内对x f 和m f 的计数值分别为M 和N,则待测信号的频率为:x m Mf f N=。

方案比较与选择:(1) 直接测频法电路结构简单,软件易于实现,较适合于高频信号的测量,但对低频信号的测量的精度很低。

(2)测周法:当被测信号频率较低时,用此方案可获得较高的精度,而当被测频率过高时,由于测量时间不够,导致精度较低。

(3)等精度测量法要求提高较高的时钟频率作为频标信号,对微处理器的处理速度有较高的要求。

方案选择:由于在本课设中使用的是MCS-51单片机,八位处理器,所测信号频率多在低频可以获得较高的精度,所以,选择方案二:测周法。

具体实现方法是:定时器T0工作在定时模式,选择工作方式1,16位定时器,初值为0,则在单片机时钟频率f=12MHz的前提下,每执行一条机器周期的指令是1us,所以,利用门控位,gate=1时,定时器T0、T1的启动依靠TR0、TR1和外部中断的高电平。

当输入在外部中断0的被测脉冲由低电平到高电平时,触发定时器T0,T0开始计数,当被测方波由高电平转到低电平时,触发外部中断0,在外部中断0 服务程序中停止定时器0计数,此时T0的溢出次数为m,保存此时的TH0和TL0;则方波周期为:2(6553602560)=⨯⨯+⨯+,取其倒T m TH TL数即是被测方波的频率。

单片机一种测量相位差的新方法

单片机一种测量相位差的新方法

%#!& 孙涵芳 "56789 #2 位单片机 %: &"北京 ’ 北京航空航天大学出版社 ! #))1" %##&
汪建 ! 孙开放 ! 章 述 汉 ":;0<)2 系 列 单 片 机 原 理 及 应 用 技 术 %: &" 华中理工大学出版社 !.!!!"
*+,- ’+,"
贾振 "/0#1.! 及其高精度温度测量的实现 %( &"电子技术应用 " 景小宁 "智能热电测温技术及其实现 %( &"微型机与应用 !.!!#*#-" 刘少强 "新型精密铂电阻测温方法 %( &" 传感器技术 !#))) !#1 (. )"
直接测得的是时间 ! 相位差角要由这一中间结果与
!
引言
正弦交流电信号相位差的测量可以采用多种
信号的周期运算后才能得到 ! 所以周期的测量不可 缺少 ! 其测量精度也将影响相位差角的精度 $ 在此 比较直接的数字式测量方法是在已知信 号周期的前提下用定时的方法测得相位差角对应 的时间 ! 然后根据已知的周期将其换算成相位差角 度 $ 但是 ! 这种方法的测量精度依赖于定时器的精 度和分辨率 $ 在信号频率较高或频率虽不甚高但相 位差角较小时 ! 都可能出现较大的误差 $ 另外 ! 由于
!"!#$%
文章编号 !#!!#>))++*.!!+-!+>!!.’>!,
!"#$%&’()*+
刘 杰 !王旭光 ! 赵永林
! 山东交通学院 ! 山东 济南 "#$$"%&

单片机汇编语言 周期性信号的频率和占空比

单片机汇编语言 周期性信号的频率和占空比

周期性信号的频率和占空比测试接法:INT0接周期性信号(1)测量信号的周期INT0的初始化应该为:void int0_init(){EA=0; //关掉所有中断允许IT0=1; //选用下降沿触发INT0中断EA=1; //开所有中断EX0=1;//开INT0中断}INT0的中断服务程序应该为:Unsigned intCycleTime = 0; //周期的计数值void int0_svr() interrupt 0{if(!flag1) //第一次下降沿出现时启动Timer1计数;{timer1_init();flag1=1;}Else //第二次下降沿出现时停止Timer1计数,计算周期,并关掉INT0中断{EX0=0;CycleTime =TH1*256+TL1;// 获得一个周期的计数值,乘上机器周期就可以了}}//Timer1计算信号的周期,由于只计算一次,所以选用MODE1.void timer1_init(){EA=0;//GATE=0;C/T=0;M1=0;M2=1;TMOD=TMPD|0x10;//从0开始计数TH1=0;TL1=0;EA=1;ET1=1;}考虑一个问题:如果信号的周期特别长,超过了65536个机器周期,那该怎么处理?解决方案:当Time1超过65536,会触发Timer1中断,在中断里面计数,假设为Y_Y那么最终的计数应该是: ( Y_Y*65536+ CycleTime)Unsigned intY_Y_=0;void timer1_svr() interrupt 3{timer1_init();Y_Y++;}(2)测量周期信号的高电平时间利用Timer0对高电平进行计数,由于只计算一次,所以选用MODE1.Void timer0_init(){EA =0 ;//GATE=1;C/T =0;;M1=0;M2=1;TMOD = TMOD|0x09;TH0=0;TL0=0;EA=1;ET0=1;}I)在INT0的中断里面直接关掉Timer0,并将计数结果(TH0、TL0)提取出来计算II)考虑一个问题:如果信号的周期特别长,超过了65536个机器周期,处理方法与上面一样34、并行接口扩展可以采用74LS595,是串入并出的,可接任意个595,只占用3个脚,即ser(数据),sclk(移位时钟),srclk(输出)。

基于单片机的相位差在线检测

基于单片机的相位差在线检测

引言:在实际工作中,常常会遇到两列频率相同信号之间存在的相位差,那么就需要测量它们之间的相位差。

电力系统中的电网并网合闸时,需要两电网的电信号的相位相同,这时需要精确测量两列工频信号之间的相位差,相位差测量在工业自动化,智能控制、通讯及电子技术等许多领域有着广泛的应用。

随着计算机软硬件的日益发展。

在测试系统中,以数字信号处理为核心的软件法测量技术越来越多的得到广泛的用。

在电工仪表、同步检测的数据处理以及电工实验中,常常需要测量两列同频信号的相位差。

相位测量的方法很多,典型的传统方法是通过显示器观测,这种方法误差较大,读数不方便。

为此,我们设计一种数字式工频电压相位差测量仪。

一. 系统功能的确定及概念1.1基本要求:⑴ 能够快速准确的测量出相位差; ⑵ 精度较高;⑶ 抗干扰能力强,不受被测信号幅值,频率的影响;⑷ 稳定性较高。

1.2 相位和相位差的概念相位和相位差是正相交流电的重要概念和技术参数。

但是相位也不只是正弦信号的“专利”,非正弦周期信号同样具有相位,因为任何一个非正弦周期信号均可以被分解为一系列频率与初相不同的正弦信号。

相位说明谐波振荡在某一瞬时的状态。

在数学上定义为正弦或余弦函数的幅角,其数学表达式为:)sin()(ϕω+=t A t v式中, ϕ是初始角,ϕω+t 就是相位角,通常称为相位。

ϕωϕ+=t t )(从式中可以看出相位是时间t的线性函数。

令ϕ1(t)、ϕ2(t)表示角频率为1ω2ω 的两个简谐振荡的相位,则有:)()()()()()(21212121ϕϕωϕϕωωφφφ-+=-+-=-=t t t t t从式中可以看出相位角是时间t的函数。

若ω1=ω2,即两个同频率的信号,则有:21)(ϕϕφ-=t显而易见,两个同频率的相位差为常数,由初始相位角之差确定。

相位差反映了若干个正弦量之间的相位关系。

同频正弦量的相位关系是:超前、滞后、同相、反相、正交。

当A 、B 两个频率相同的正弦信号电压波形同时增大,同时减小,同时为正半周,同时为负半周,同时达到正峰点,同时达到负峰点,这样的两种信号其相位相同,信号的相位差0 o ,称为同相信号。

用单片机测量相位差的新方法

用单片机测量相位差的新方法

3
误差分析
影响该相位差测量精度的主要因素有 : ①运算放大器的偏移电压和偏移电流引起的误
差 : 经计算这两项误差之和不超过 0. 5 % 。 ② DAC 和计数器的量化误差 : 该误差之和不超过
0. 8 % 。
③ 模拟开关的断开电阻不为无穷大引起的误差 : Ω 以上 ,该误差不超过 0. 5 % 。 典型的断开电阻在 1M
θ
( 7)
θ= M1 π/ ( 2 n - 1) 计数值 M1 输入 AT89C52CPU , 经计算处理输出两 信号的相位差 , 并送显示电路显示 。可见 : 两信号的相 位差只与计数值及数模转换器 DAC 的位数有关 , 而与 时钟频率 、 信号频率无关 。 测量原理与双斜式模数转换 器 ADC 的转换原理类似 ,精确度可达 0. 01 % 。
M 为 tr 或 tf 内的计数值 , T 为信
图1 过零比较法
号频率 该法不仅与信号频率 、 时钟频率有关 , 而且易受元 件性能影响 , 当过零不稳时 , 上升沿或下降沿的时间差 并不能反映信号的真实相位差 ,见图 1 ( e) 。 而信号中点 的时间差 Δt (Δt = 位差
3 3 3
[2 ]
・ 30 ・( 总 344)
用单片机测量相位差的新方法
2000 年
用单片机测量相位差的新方法
A Ne w Wa y to Measure Phase Difference with Single - Chip Computer
史健芳
( 太原理工大学
太原
030024)
【摘
要】 介绍了利用 AT89C52 单片机测量两正弦信号相位差的测量原理 、电路组成 , 并分析了引起误差的原
方法来测量信号的相位差 。测量原理电路如图 2 所 示。 电路由 AT89C52CPU、 比较器 、 计数器 、 DAC 转换 器、 积分器等组成 , 正弦信号 x1 、x2 经比较器转换为方 波信号 m1 、 m2 , 经异或门输出两信号的上升沿及下降 沿的时间差 tr 及 tf , m1 信号经二分频电路输出 m4 信 号 ,工作波形如图 3 ( a) ~ (f) 。

单片机频率测量原理

单片机频率测量原理

单片机频率测量原理A VR单片机 2008-10-09 19:29 阅读721 评论0字号:大中小单片机应用系统中,经常要对一个连续的脉冲波频率进行测量。

在实际应用中,对于转速,位移、速度、流量等物理量的测量,一般也是由传感器转换成脉冲电信号,采用测量频率的手段实现。

使用单片机测量频率或周期,通常是利用单片机的定时计数器来完成的,测量的基本方法和原理有两种:测频法:在限定的时间内(如1秒钟)检测脉冲的个数。

测周法:测试限定的脉冲个数之间的时间。

这两种方法尽管原理是相同的,但在实际使用时,需要根据待测频率的范围、系统的时钟周期、计数器的长度、以及所要求的测量精度等因素进行全面和具体的考虑,寻找和设计出适合具体要求的测量方法。

在具体频率的测量中,需要考虑和注意的因素有以下几点。

ü系统的时钟。

首先测量频率的系统时钟本身精度要高,因为不管是限定测量时间还是测量限定脉冲个数的周期,其基本的时间基准是系统本身时钟产生的。

其次是系统时钟的频率值,因为系统时钟频率越高,能够实现频率测量的精度也越高。

因此使用A VR测量频率时,建议使用由外部晶体组成的系统的振荡电路,不使用其内部的RC振荡源,同时尽量使用频率比较高的系统时钟。

ü所使用定时计数器的位数。

测量频率要使用定时计数器,定时计数器的位数越长,可以产生的限定时间越长,或在限定时间里记录的脉冲个数越多,因此也提高了频率测量的精度。

所以对频率测量精度有一定要求时,尽量采用16位的定时计数器。

ü被测频率的范围。

频率测量需要根据被测频率的范围选择测量的方式。

当被测频率的范围比较低时,最好采用测周期的方法测量频率。

而被测频率比较高时,使用测频法比较合适。

需要注意的是,被测频率的最高值一般不能超过测频MCU系统时钟频率的1/2,因为当被测频率高于MCU时钟1/2后,MCU往往不能正确检测被测脉冲的电平变化了。

除了以上三个因素外,还要考虑频率测量的频度(每秒内测量的次数),如何与系统中其它任务处理之间的协调工作等。

占空比测量方法

占空比测量方法

占空比测量方法
占空比是指一个周期内有效信号出现的时间占整个周期时间的比例,常用于测量交流电信号中的脉冲宽度。

以下是几种常见的占空比测量方法:
1. 蓝盖法(Block Alignment Method):将待测脉冲信号与一
个已知占空比的参考信号进行比较,通过调整参考信号的相位或频率,使得两个信号的上升沿或下降沿对齐,并通过计数器测量两个信号之间的时间差,从而得到占空比。

2. 正交测量法(Quadrature Method):利用正交信号的相位差
关系,将待测脉冲信号分解成正弦信号和余弦信号,在一个周期内将正弦信号和余弦信号分别进行整流,再通过低通滤波器提取出直流信号,然后计算直流信号的比例就可以得到占空比。

3. 逐位测量法(Bit-serial Method):将待测脉冲信号与一个
时钟信号进行逐位比较,通过测量脉冲信号在每个时钟周期内的持续时间,从而得到占空比。

4. 采样并保持法(Sample and Hold Method):使用一个采样
器和保持器对待测脉冲信号进行采样并保持,然后利用一个计数器来测量采样器保持的时间与整个周期的时间差,从而得到占空比。

注意:不同的测量方法适用于不同的信号特点和要求,选择合适的测量方法应根据实际应用场景和需求进行。

基于单片机的400Hz军用电源频率和相位的测量设计

基于单片机的400Hz军用电源频率和相位的测量设计

EMBEDDED SYSTEMS42EMBEDDED SYSTEMS嵌入式系统2003.3/下半月 www.eepw.com.cn电子产品世界引言三相400Hz/115V交流电源广泛应用于航天、航空及军用设备的动力系统。

该电源的频率、相位等参数的精度要求较高,因此,必须对研制、生产的军用电源的参数准确测试,使其满足军用标准,提高我国国防装备的科技水平,满足现代化高科技的发展需要。

目前,军用电源有两种产生方式,一是利用专用400Hz发电机组产生。

二是由工频电源经交-直--交变换,由电子电路控制大功率开关器件,经滤波变压后产生。

对于发电机组来讲,由于发电机绕组的不对称性及转速不稳定性,都会使输出的频率及相位有误差。

而对于电子方式产生的电源,受大功率器件特性及控制策略的不同,也会产生相移或频率不合要求。

另外,电源在带载或三相作为单相运行时,也会引起相位或频率的变化。

而通过常规的频率计一般不能测量相位,而用示波器测量则测量误差较大,因此,我们在研制400Hz军用电源的同时,利用89C51单片机测量周期或时间,设计出了频率、相位测试系统测试军用电源参数,使用表明,它具有较高的精度。

频率、相位测试原理三相400Hz/115V正弦波交流电经降压后,由过零比较器产生的每相波形如图1所示。

对于频率的测量,例如测试A相频率fA,只要测出A相半个周期的时间tA,便可计算出fA=1/2tA.同样方法,可测量出fB=1/2tB,fC=1/2tC.对相位测量,例如A、B相的相位差φAB,只要测出时间tAB, 因为tA/180°= tAB/φAB,由此可得 φAB=180°×tAB/tA。

(tA为A相半周的时间)同样,φBC=180°×tBC/tB,φCA=180°×tCA/tC。

微机测量设计硬件电路如图2所示,A、B、C三相经降压、过零比较后,分别经三态门(分别由P1.0 ̄P1.5控制)连接到89C51的INT0、INT1引脚。

基于单片机的相位差在线检测

基于单片机的相位差在线检测

引言:在实际工作中, 经常会遇到需要检测两个信号的相位差, 这也是研究网络相频特性中不可缺少的重要方面。

传统的测量方法有很多, 如示波器测量法、转化为时间间隔法、零示法等。

随着集成电路技术的发展、单片机的普及, 用单片机组成的相位差测量电路具有精度高、速度快、成本低的优点, 日益受到人们的重视。

本相位差测量方法充分利用MCS -51 系列单片机内部精确的时钟源及校正电路, 能进行在线检测、显示,大大提高了相位差的测试精度和速度。

设计目的:使用单片机组建相位差检测系统, 利用单片机内部时钟及定时/ 计数器, 能够对被测信号的相位差进行精确、快速的测定, 可广泛应用于各种实时系统之中。

1. 系统功能的确定基本要求:⑴ 能够快速准确的测量出相位差; ⑵ 精度较高;⑶ 抗干扰能力强,不受被测信号幅值,频率的影响; ⑷ 稳定性较高。

2. 方案论证2.1方案一基于异或门的测量方法两路同频信号经过零比较后,得到两路同周期的方波。

该两方波经异或后得到的脉冲宽度与信号周期的比值(占空比)即对应为两信号的相位差,这里的异或门相当于鉴相器。

对脉宽信号的处理有以下两种方法。

<1> 电压测量法;<2>数字计数法。

2.2方案二基于函数计算的测量方法 我们先从数学理论上计算相位差,假设信号A 为)cos(1αω+=t A S A ,信号B 为)cos(2αω+=t B S B 。

),其中A,B 分别为信号A 和信号B 的幅度, ω为角频率,1α,2α为信号A和信号B 的初相位,两信号相乘可得[])cos()2cos(2)cos()cos(212121ααααωαωαω-+++=++=t ABt t AB S S B A 式中21ααα-=为所求相位差。

把乘法运算结果中的二次谐波滤除,只剩下直流分量,设结果为M,可得到)2arccos(21ABM=-=ααα 此式是从理论上分析求出的相位差,而实际上输入的信号A 和信号B 都是带有各种谐波干扰的。

最新AVR单片机占空比及频率测量学习笔记资料

最新AVR单片机占空比及频率测量学习笔记资料

信号占空比测量及频率计算测量信号频率只要得到信号的两个上升沿或者下降沿之间所用的时间即可。

占空比指一个信号高电平和这个信号周期时间的比值,测量信号占空比只需测量信号一下降沿和上升沿之间的距离即可。

测量边沿可以采用AVR单片机外部中断,中断可以设置成边沿触发,设置为上升沿触发或者下降沿触发。

同时启用一个定时器,用定时器的计数值取得相应的时间。

定时器初始化:只需将定时器打开,单片机晶振为16M时,AVR单周期及可计算定时器每曾一所用的时间。

例如用8分频时,每加1用时0.5us。

void Timer1_init(void){CLI(); //disable all interruptsTCNT1H = 0x00; //清零计数值TCNT1L = 0x00;TIMSK |=(1<<TOIE1); //开启溢出中断TIMSK |=(1<<TICIE1); //开启捕获中断TCCR1B = 0x82; //8分频,自增一用时0.5us,开启输入捕获噪声抑制SETBIT(TCCR1B,ICES1);//设置初始为上升沿捕获SEI(); //re-enable interrupts}在中断函数使用中需先将其初始化,设置为起始的上升沿触发中断,并且开启外部中断及总中断,此时如果外部有上升沿及可触发中断函数。

void INT0_Init(void){MCUCR=0x03;//上升沿触发中断GICR =0x40;//开启外部0中断SEI(); //开启总中断}在中断函数中,当有上升沿时,就可触发中断,在中断函数中有一标志位flag_Int,通过此标志位来判断是上升沿的中断还是下降沿产生的中断。

第一次进入中断后flag_int==0;读取定时器1高低位的数据,同时将中断的触发沿改为下降沿触发,然后将定时器值清零。

同时将flag_Int标志位置一,当信号变为下降沿时再次触发中断,此时进入flag_Int=1函数,此时读取定时器值,并将中断改为上升沿中断,此时即可计算(高电平时间=定时器数值*0.5us)将flag_Int=0,当边沿为上升沿时即可进入if(flag_Int==0),此时读取的定时器时间,及Int_End 的值及为脉冲周期。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机测量频率,占空比,相位差
1、 频率及占空比的测量
如上图所示,当脉冲的上升沿来临时,将定时器打开;紧接着的下降沿来临时,读取定时器的值,假设定时时间为t1;下一个上升沿来临时关闭定时器,读取定时器的值,假设定时时间为t2。

t1即为1个周期内高电平的时间,t2即为脉冲的周期。

t1/t2即为占空比,1/t2即为频率。

C 语言程序如下:
TH0=0; //定时器高位,初值设为0
TL0=0; //定时器低位,初值设为0
T0_num=0; //定时器溢出次数,初值设为0
while(pulse); //pulse 为脉冲的输入引脚
while(!pulse); //等待上升沿来临
TR0=1; //打开定时器
while(pusl1); //等待下降沿来临
th1=TH0;tl1=TL0;num1=T0_num; //保存定时器值
while(!pusl1); //等待上升沿来临
TR0=0; //关闭定时器
th2=TH0;tl2=TL0;num2=T0_num; //保存定时器值
2、 相位差的测量
上升沿打开定时器 下降沿读取定时器值并保存 下一个上升沿关
闭定时器,读取
定时器值并保存
测量相位差的电路如上所示,待测量的两路脉冲分别作为两个D触发器的时钟输入,两个D触发器的输入端D及S端都接高电平,第一个D触发器的输出接第二个D触发器的R端,第二个D触发器的互补输出端接第一个D触发器的R端。

从下面的波形图可以看出,第一个D触发器输出的脉冲信号的占空比乘以2π即为相位差。

这样就将测量两路方波信号的相位差转化为测量一路方波
信号的占空比,就可以按照前面介绍的测量占空比的方法来测量了。

黄色的波形为脉冲1,蓝色的波形为脉冲2,红色的波形为相位差。

相关文档
最新文档