logo资料库

51单片机测量方波频率.doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
单片机测量方波的频率、占空比及相位差的方法 1.2 脉冲频率测量 频率测量实际上就是在 1s 内对脉冲个数进行计数,计数值就是信号频率。令定时器 T0 工作在方式 1,得到 100ms 的定时间隔,再进行软件计数 10 次,形成一个 1s 的测量闸门信 号。在测量闸门信号期间令计数器 T1 工作在计数方式 1,对脉冲信号的频率计数,计数值 存入 COUNT、COUNT+1 和 COUNT+2 单元,计数值通过 6 位动态数码管显示出来。 1.3 扩展测量范围原理 上述系统被测脉冲宽度范围最大为 65535us,扩展计数器的位数可提高脉冲宽度的测量 范围。令定时器 T1 工作在方式 1 定时,GATE=1,用 COUNT 单元,COUNT+1 单元即定时器 T1 的计数单元 TH1 和 TL1 组成一个 32 位的计数器对脉冲宽度进行测量。并且在定时器 T1 溢出 时,给 COUNT+2 赋值#01H,并将 THI 和 TH0 置零,重新开始计数。以扩展系统测量范围使可 以达到 130ms 的任务要求。同时在进行频率测量时,当计数器 T1 溢出时,给 COUNT+2 赋值 #01H,并将 THI 和 TH0 置零,重新开始计数。以扩展系统测量范围使可以达到 100KHZ 的任务 要求。 第 2 章 测量系统的硬件设计 由于是在实验箱测试本系统,且实验箱上的芯片已经连接固定好了,不能调整,所以以 LAP 2000 模拟系统的逻辑波形作为输入信号。因此硬件只需选用 8051 芯片以及六位 LED 数 码管。在单片机应用系统中,为了便于对 LED 显示器进行管理,需要建立一个显示缓冲区。 显示缓冲区 DISBUF 是片内 RAM 的一个区域,占用片内 RAM 的 70H 至 75H 单元,它的作用是 存放要显示的字符,其长度与 LED 的位数相同。显示程序的任务是把显示缓冲区中待显示的 字符送往 LED 显示器显示。 1、 频率及占空比的测量
上 升沿 打 开定时器 下 降沿 读 取 定时 器 值并保存 下一个上升沿关 闭定时器,读取 定时器值并保存 起来的一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高、价格 低廉等特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛 的应用,极大的提高了这些领域的技术水平和自动化程度。单片机应用的意义绝不仅限于它 的广阔范围以及带来的经济效益,更重要的意义在于,单片机的应用正从根本上改变着传统 的控制系统的设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功 能,现在使用单片机通过软件就能实现了。随着单片机应用的推广普及,单片机控制技术将 不断发展,日益完善。本文是设计频率/脉冲宽度的测量与显示的硬件电路与程序的编制。 它可以测量脉冲信号的脉冲宽度,频率等参数。利用定时器的门控信号 GATE 进行控制可以 实现脉冲宽 如上图所示,当脉冲的上升沿来临时,将定时器打开;紧接着的下降沿来临 时,读取定时器的值,假设定时时间为 t1;下一个上升沿来临时关闭定时器,读 取定时器的值,假设定时时间为 t2。t1 即为 1 个周期内高电平的时间,t2 即为脉 冲的周期。t1/t2 即为占空比,1/t2 即为频率。 //定时器高位,初值设为 0 //定时器低位,初值设为 0 C 语言程序如下: TH0=0; TL0=0; //定时器溢出次数,初值设为 0 T0_num=0; //pulse 为脉冲的输入引脚 while(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,红色的波形为相位差。
分享到:
收藏