单片机测量方波的频率、占空比及相位差的方法
占空比测量方法范文
占空比测量方法范文占空比(Duty Cycle)是用来描述信号中高电平时占据的时间与一个完整周期的时间之比。
在电子领域,占空比非常重要,因为它可以描述一个信号的稳定性和功率特性。
在本文中,我们将介绍几种常见的占空比测量方法。
1.基于示波器的测量方法:示波器是电子工程师最常用的仪器之一,它可以用来观察和测量电信号的波形。
要测量占空比,首先将输入信号连接到示波器的通道上。
然后,通过调整示波器的水平和垂直设置,使得观察到一个完整的周期波形。
示波器通常带有一个自动测量功能,可以直接测量信号的占空比。
2.基于计时器的测量方法:计时器是一种可以测量时间间隔的仪器。
要测量占空比,可以使用一个计时器测量信号的高电平时间和周期时间,然后将高电平时间除以周期时间得到占空比。
计时器可以是硬件计时器,也可以是软件计时器(使用微处理器或微控制器)。
3.基于频率计的测量方法:频率计是一种可以测量信号频率的仪器,它可以计算出信号的周期时间。
要测量占空比,可以使用一个频率计测量信号的周期时间和高电平时间,然后将高电平时间除以周期时间得到占空比。
频率计通常可以在显示屏上直接显示出信号的占空比。
4.基于单片机的测量方法:单片机是一种集成了微处理器、存储器和输入输出接口的超大规模集成电路。
要测量占空比,可以使用单片机的定时器来测量信号的高电平时间和周期时间,然后将高电平时间除以周期时间得到占空比。
在代码中,可以使用计数器和捕获寄存器来实现占空比测量。
5.基于逻辑分析仪的测量方法:逻辑分析仪是一种可以观察和分析数字信号的仪器。
它可以实时显示信号的波形,并可以测量信号的占空比。
要测量占空比,将输入信号连接到逻辑分析仪的通道上,然后设置触发条件和采样速率,触发信号的上升沿或下降沿,并观察信号波形的高电平时间和周期时间。
总结起来,占空比测量可以通过示波器、计时器、频率计、单片机或逻辑分析仪等多种方法来实现。
选择合适的测量方法取决于具体的应用场景和仪器的可用性。
单片机测量方波的频率、占空比及相位差的方法
单片机测量方波的频率、占空比及相位差的方法1、 频率及占空比的测量如上图所示,当脉冲的上升沿来临时,将定时器打开;紧接着的下降沿来临时,读取定时器的值,假设定时时间为t1;下一个上升沿来临时关闭定时器,读取定时器的值,假设定时时间为t2。
t1即为1个周期内高电平的时间,t2即为脉冲的周期。
t1/t2即为占空比,1/t2即为频率。
C 语言程序如下:TH0=0; //定时器高位,初值设为0TL0=0; //定时器低位,初值设为0T0_num=0; //定时器溢出次数,初值设为0while(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,红色的波形为相位差。
STM32单片机测量方波频率方法总结
STM32单片机测量方波频率方法总结一、测周法:通过一个方波的两个上升沿或下降沿触发中断,然后定时器计数,计数的总个数乘以计数单位时间即该方波的周期,具体可通过单片机输入捕获功能实现,以下为参考代码//输入捕获初始化函数void input_frequent_init(void) //采用TIM4的Channel_1通道作为输入捕获通道{//声明结构体变量,用来初始化定时器TIM_TimeBaseInitTypeDef TIM4_TimeBaseInitStructure;TIM_ICInitTypeDef TIM4_ICInitStructure;NVIC_InitTypeDef TIM4_NVIC_InitStructure;/* 开启定时器4时钟 */RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);TIM_ClearITPendingBit(TIM4,TIM_IT_Update|TIM_IT_CC1); //清除捕获和中断标志位TIM4_TimeBaseInitStructure.TIM_Period = 0xffff;//设定计数器自动重装值(设置为最大)TIM4_TimeBaseInitStructure.TIM_Prescaler = 1; //设置分频系数TIM4_TimeBaseInitStructure.TIM_ClockDivision = TIM_C KD_DIV1; //设置时钟分割:TDTS = Tck_timTIM4_TimeBaseInitStructure.TIM_CounterMode = TIM_Cou nterMode_Up; //TIM向上计数模式TIM_TimeBaseInit(TIM4,&TIM4_TimeBaseInitStructure);/ /根据结构体参量初始化定时器TIM4_ICInitStructure.TIM_Channel = TIM_Channel_1; //选择输入捕获的输入端,IC1映射到TI1上TIM4_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity _Rising; //设置为上升沿捕获TIM4_ICInitStructure.TIM_ICSelection = TIM_ICSelecti on_DirectTI; //映射到TI1上TIM4_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV 1; //配置输入分频,不分频TIM4_ICInitStructure.TIM_ICFilter = 0x00; //IC1F=000 0 配置输入滤波器,此处不滤波TIM_ICInit(TIM4, &TIM4_ICInitStructure); //初始化TIM 4通道1//中断分组初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);TIM4_NVIC_InitStructure.NVIC_IRQChannel=TIM4_IRQn;//打开TIM4的全局中断TIM4_NVIC_InitStructure.NVIC_IRQChannelPreemptionPri ority=1; //抢占优先级配置为1TIM4_NVIC_InitStructure.NVIC_IRQChannelSubPriority=1; //响应优先级配置为1TIM4_NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能NVIC_Init(&TIM4_NVIC_InitStructure); //初始化中断TIM_Cmd(TIM4,ENABLE); //使能中断TIM_ITConfig(TIM4, TIM_IT_Update|TIM_IT_CC1, ENABLE ); //使能捕获和更新中断}需要注意的是,如果所测信号中存在尖峰干扰信号,则TIM4_ICInitStructure.TIM_ICFilter = 0x00; //IC1F=0000 配置输入滤波器,此处不滤波这一行应根据干扰信号的高电平时间来赋予合适的滤波器的值,具体计算方法参考芯片手册或自行百度。
最新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 的值及为脉冲周期。
最新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 的值及为脉冲周期。
单片机 方波判断
单片机方波判断单片机是一种微型计算机,它可以完成特定的控制任务。
方波是一种特殊的信号波形,非常常见。
在许多单片机应用中,需要对方波进行判断和处理。
那么,如何使用单片机判断方波呢?判断方波的原理比较简单,就是通过检测信号的高低电平变化来进行判断。
首先,需要将方波信号输入到单片机的IO口上。
接着,通过编写程序来检测IO口上信号的高低电平变化,以此来判断方波。
下面,我们以STM32单片机为例,介绍具体的方波判断方法。
1. 初始化IO口在使用IO口前,需要对其进行初始化。
具体步骤如下:①打开GPIO外设时钟,例如:```c++RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); // 打开GPIOB时钟```② 初始化IO口的模式和速率,例如:```c++GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // GPIOB0引脚GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; // 输入模式GPIO_InitStructure.GPIO_Speed = GPIO_High_Speed; // 高速模式GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; // 推挽输出GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN; // 下拉电阻GPIO_Init(GPIOB, &GPIO_InitStructure); // 初始化GPIOB0```上述代码中,我们将GPIOB0引脚初始化为输入模式,同时设置了下拉电阻。
这样,当引脚上没有信号输入时,它的电平就会被拉低,以避免误判。
2. 判断方波当IO口初始化完成后,就可以开始判断方波了。
在STM32单片机中,IO口的状态可以通过读取其寄存器的值来获取。
占空比测量原理
占空比测量原理一、概述占空比测量是电子工程中常用的一种测量方法,用于测量信号的高电平时长与周期间隔的比值,常用于脉冲调制、PWM调光等应用中。
本文将深入探讨占空比测量的原理,包括其定义、测量方法、应用等。
二、占空比定义占空比(Duty Cycle)指的是信号在一个周期中的高电平时长占整个周期的比例。
一般以百分比来表示,例如50%的占空比表示信号的高电平时间等于周期的一半。
占空比的取值范围在0%到100%之间,其中0%表示低电平占主导,100%表示高电平占主导,50%表示高低电平时间相等。
三、占空比测量方法占空比的测量主要有以下几种方法:1. 频率测量法频率测量法是一种直接测量占空比的方法。
步骤如下: 1. 使用频率计测量信号的周期,记为T。
2. 使用占空比计算公式:占空比 = 高电平时间 / T * 100%。
2. 电压积分法电压积分法是一种间接测量占空比的方法。
步骤如下: 1. 将信号通过电阻电容滤波电路,使其转换成直流电压。
2. 将滤波后的信号输入到积分电路中,得到信号的积分值。
3. 使用示波器观察信号的波形,根据积分值计算占空比。
3. 时钟周期测量法时钟周期测量法是一种数字信号测量占空比的方法。
步骤如下: 1. 计算时钟周期的总数目N。
2. 统计高电平的持续时间,记为M。
3. 占空比 = M / N * 100%。
四、占空比测量应用占空比测量在许多电子设备和系统中都有广泛的应用,下面列举了一些常见的应用场景:1. 脉冲调制在脉冲调制中,占空比用于控制脉冲的宽度,从而实现对信号的调制。
例如,在脉冲宽度调制(PWM)中,通过改变占空比来控制LED的亮度。
2. PWM调光占空比也广泛应用于PWM调光技术中。
通过改变占空比,可以控制LED灯的亮度,实现调光的功能。
3. 电机控制在电机控制中,占空比可以用来控制电机的转速。
通过改变占空比,可以调整电机的驱动电压和电流,从而控制转速和力矩。
五、结论占空比测量是电子工程中常用的一种测量方法,用于测量信号的高电平时长与周期间隔的比值。
单片机课程设计-频率相位表
一、 设计原理 (一)测频原理分析频率测量的常用方式有直接测频法、测周法和等精度测量法。
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 (. )"
直接测得的是时间 ! 相位差角要由这一中间结果与
!
引言
正弦交流电信号相位差的测量可以采用多种
信号的周期运算后才能得到 ! 所以周期的测量不可 缺少 ! 其测量精度也将影响相位差角的精度 $ 在此 比较直接的数字式测量方法是在已知信 号周期的前提下用定时的方法测得相位差角对应 的时间 ! 然后根据已知的周期将其换算成相位差角 度 $ 但是 ! 这种方法的测量精度依赖于定时器的精 度和分辨率 $ 在信号频率较高或频率虽不甚高但相 位差角较小时 ! 都可能出现较大的误差 $ 另外 ! 由于
!"!#$%
文章编号 !#!!#>))++*.!!+-!+>!!.’>!,
!"#$%&’()*+
刘 杰 !王旭光 ! 赵永林
! 山东交通学院 ! 山东 济南 "#$$"%&
用单片机控制可测方波100~1000Hz,并显示脉宽
脉宽(Pulse-Width)是脉冲宽度的缩写,脉冲宽度就是高电平持续的时间,常用来作为采样信号或者晶闸管等元件的触发信号。
脉宽由信号的周期和占空比确定,其计算公式是脉宽W=T×P(T:周期,P:占空比)。
4.2.1 AT89S51具有如下特点:
40个引脚,8k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
AT89S51有PDIP、PLCC、TQFP三种封装方式,其中最常见的就是采用40Pin封装的双列直接PDIP封装,外形结构图2。
芯片共有40个引脚,引脚的排列顺序为从靠芯片的缺口(见右图)左边那列引脚逆时针数起,依次为1、2、3、4......40,其中芯片的1脚顶上有个凹点。在单片机的40个引脚中,电源引脚2根,外接晶体振荡器引脚2根,控制引脚4根以及4组8位可编程I/O引脚32根。
计算方法:脉冲宽度=计数值*0.001s,再将表示脉冲宽度的十六进制转换为压缩BCD码,再将压缩BCD码转为非压缩BCD码用来显示,数码管显示的数据即为要测量的脉宽。
3.4脉冲宽度测量
利用定时器的门控信号GATE进行控制可以实现脉冲宽度的测量。对定时器T1来讲,,被测脉冲信号从INT1端引入,其上升沿启动T1计数,下降沿停止T1计数。定时器的计数值乘以机器周期即为脉冲宽度。下图中给出了脉冲宽度测量的原理图。
意义:
1、通过单片机的综合设计,能够将所学的知识融会贯通,锻炼独立设计、制作和调试单片机的应用系统能力,领会单片机应用系统的软件、硬件调试方法和系统的研制开发过程,为进一步的科研实践活动打下一定的基础。
单片机的频率测量技术
基于8051单片机的频率测量技术0引言随着无线电技术的发展与普及,"频率"已经成为广大群众所熟悉的物理量。
而单片机的出现,更是对包括测频在内的各种测量技术带来了许多重大的飞跃,然而,小体积、价廉、功能强等优势也在电子领域占有非常重要的地位。
为此.本文给出了一种以单片机为核心的频率测量系统的设计方法。
1 测频系统的硬件结构测量频率的方法一般分为无源测频法、有源测频法及电子计数法三种。
无源测频法(又可分为谐振法和电桥法),常用于频率粗测,精度在1%左右。
有源比较法可分为拍频法和差频法,前者是利用两个信号线性叠加以产生拍频现象,再通过检测零拍现象进行测频,常用于低频测量,误差在零点几Hz;后者则利用两个非线性信号叠加来产生差频现象,然后通过检测零差现象进行测频,常用于高频测量,误差在±20 Hz左右。
以上方法在测量范围和精度上都有一定的不足,而电子计数法主要通过单片机进行控制。
由于单片机的较强控制与运算功能,电子计数法的测量频率范围宽,精度高,易于实现。
本设计就是采用单片机电子计数法来测量频率,其系统硬件原理框图如图1所示。
为了提高测量的精度,拓展单片机的测频范围,本设计采取了对信号进行分频的方法。
设计中采用两片同步十进制加法计数器74LS160来组成一个100分频器。
该100分频器由两个同步十进制加法计数器74LS160和一个与非门74LS00共同设计而成。
由于一个74LS160可以分频十的一次方,而当第一片74LS160工作时,如果有进位,输出端TC便有进位信号送进第二片的CEP端,同时CET也为高电平,这样两个工作状态控制端CET、CEP将同时为高电平,此时第二片74LS160将开始工作。
2 频率测量模块的电路设计用单片机电子计数法测量频率有测频率法和测周期法两种方法。
测量频率主要是在单位定时时间里对被测信号脉冲进行计数;测量周期则是在被测信号一个周期时间里对某一基准时钟脉冲进行计数。
用单片机测量相位差的新方法
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) 。
占空比测量方法
占空比测量方法
占空比是指一个周期内有效信号出现的时间占整个周期时间的比例,常用于测量交流电信号中的脉冲宽度。
以下是几种常见的占空比测量方法:
1. 蓝盖法(Block Alignment Method):将待测脉冲信号与一
个已知占空比的参考信号进行比较,通过调整参考信号的相位或频率,使得两个信号的上升沿或下降沿对齐,并通过计数器测量两个信号之间的时间差,从而得到占空比。
2. 正交测量法(Quadrature Method):利用正交信号的相位差
关系,将待测脉冲信号分解成正弦信号和余弦信号,在一个周期内将正弦信号和余弦信号分别进行整流,再通过低通滤波器提取出直流信号,然后计算直流信号的比例就可以得到占空比。
3. 逐位测量法(Bit-serial Method):将待测脉冲信号与一个
时钟信号进行逐位比较,通过测量脉冲信号在每个时钟周期内的持续时间,从而得到占空比。
4. 采样并保持法(Sample and Hold Method):使用一个采样
器和保持器对待测脉冲信号进行采样并保持,然后利用一个计数器来测量采样器保持的时间与整个周期的时间差,从而得到占空比。
注意:不同的测量方法适用于不同的信号特点和要求,选择合适的测量方法应根据实际应用场景和需求进行。
用单片机测频率
用单片机测频率1.引言无论何种类型的信号,连续的或离散的,有规律的或无规律的,对计算机控制系统而言,首先得通过前向通道的调理,使信号能够被机器所检测:高低电平的范围,时序的配合、是否需要锁存、是否需要分频等等。
测速、测V/I、测相位等一般都要用到频率信号,特别是在工业控制中。
很多变送器如电压、电量变速器,功率、行程变速器等都有频率信号或者说脉冲信号的输出。
频率信号抗干扰性能好,适于远距离传送,并且频率信号所需的接口简单,占用资源少,一般它只占用一路计数器接口直接进行计数或一个中断源输入接口,在中断服务程序中对脉冲进行计数,当然也可利用外部计数装置输入若干路通用I/O接口中。
总之频率信号的测量具有灵活的输入方式,对频率信号的各种参数的测量有重要的意义。
频率参数主要包括周期、高低电平的持续时间以及占空比。
2.周期的测量因为周期=脉冲数/时间,为了计算出单位时间的脉冲数,首先要有一个时间基准。
如果用单片机的定时器进行定时则直接接入单片机内的信号的最高频率取决于晶振频率,由于所测信号的每一个脉冲的高低电平要持续至少一个机器周期,即它的周期不得高于2倍的机器周期;另一方面,一个机器周期等于6个状态周期,一个状态周期等于2个晶振周期。
故有:T待测<=24*T晶振。
2.1低频信号周期的测量接线示意图如图1,前端属于信号调理电路,工作原理是:用一个计数器,一个定时器,在设定的时间内对脉冲数进行累加;另一方法是一个定时器一个中断口,中断为下降沿触发,在中断程序中计数。
很明显,上述方法所得计数值会受到定时误差的影响;在精度要求高的场合可以用外接精密脉冲源的方法来规避此误差。
即:使用外部脉冲进行比较计数时没有定时原因造成的误差。
如图2。
此时会有如下的关系式:F待测*COUNT标准=F标准*CONNT待测2.2高频信号周期的测量,图3是一个典型的电路这个电路中各部分的功能说明如下:AD9686:将非TTL电平信号转变为TTL电平,属于前向调理电路。
单片机课程设计_测量方波频率
课程设计论文课题:使用STC89C52单片机测量方波频率姓名:荀园周,丁丞,杨培龙学号:********* ********* ********* 指导老师:**目录第一章引言 (1)第二章方案论证2.1理论分析 (1)2.2原理图 (1)第三章电路设计3.1单片机模块 (2)3.2 显示模块 (2)3.3 电源模块 (3)第四章软件设计4.1 软件工作流程图 (3)4.2 软件设计原理 (4)4.3 程序及测试程序 (4)第五章测试结果 (6)第六章误差分析 (7)第七章结论 (7)第八章参考文献 (7)一、引言频率测量在科技研究和实际应用中的作用日益重要。
传统的频率计采用组合电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接使用。
而现在的频率计测量频率信号抗干扰性强、易于运输,可以获得较高的测量精度。
同时,频率测量方法的优化也越来越受到重视,并采用单片机和相关硬件实现。
STC89C52系列单片机具有体积小、功能强、性能价格比较高等特点,因此被广泛应用与工业控制和智能化仪器,仪表等领域。
此频率计以STC89C52单片机为核心,具有性能优良,精度高,可靠性好等特点。
以STC89C52单片机为控制器件的频率测量方法,采用单片机语言进行设计,采用单片机智能控制,结合外围电子电路。
最终实现数字频率计的设计方案,根据频率计的特点,广泛应用于各种测试场所。
在基础理论和专业技术基础上,通过对数字频率计的设计,用十进制数字来显示被测信号频率的测量装置。
以精确迅速的特点测量信号频率,在本设计中让我们在时间理论上锻炼提高了自己的综合运用知识的水平,为以后的开发及科研工作打下基础。
二、方案论证2.1理论分析用单片机设计频率计的基本思想:使用单片机自带的定时器定时1秒,在一秒内计数器对输入脉冲进行计数,定时完成后读取计数器的值,并输出到数码管予以显示。
但本方案直接测低频信号很容易产生较大误差。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,红色的波形为相位差。