好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

pwm参数测量仪的设计与制作.doc

3页
  • 卖家[上传人]:第***
  • 文档编号:34613196
  • 上传时间:2018-02-26
  • 文档格式:DOC
  • 文档大小:679.50KB
  • / 3 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • PWM 参数测量仪的设计与制作PWM(Pulse Width Modulation,脉宽调制)是利用微处理器的数字量输出来对模拟电路进行控制的一种非常有效的技术,在测量、通信、功率控制与变换等诸多领域有着非常广泛的应用笔者最近在一个项目中需要精确测量 PWM 信号的周期、频率、脉宽、占空比等参数,但由于普通数字频率计只有频率测量功能,无法满足需要;如果使用示波器进行测量,不仅操作麻烦而且测量结果不够直观俗话说:“自己动手,丰衣足食于是笔者用 PIC16F877A 单片机制作了一个 PWM 参数测量仪,本文将向读者详细介绍该测量仪的设计方法1.测量原理PWM 参数测量仪的设计思路和数字频率计类似,但除了周期和频率以外,PWM 信号还有脉宽、占空比等参数,所以在数据处理和结果显示方面要比数字频率计复杂一些本设计的硬件电路很简单,如图 1 所示外部的频率信号从 PIC16F877A 单片机的CCP1(RC2)引脚输入,测量结果经处理后在 LCD1602 字符液晶屏上显示出来图 1. 多功能数字频率计原理图PIC16F877A 单片机内部集成有 2 个 CCP(捕捉/比较/脉宽调制 PWM) 模块,当它工作在 PWM 方式下时,可以产生周期和电平宽度均可由编程决定的 PWM 波形;当它工作在捕捉方式时,可以捕捉外部输入脉冲的上升沿或下降沿,当输入信号发生边沿跳变时,CCP 模块立即把当时 TMR1 的 16bit 计数值放入 CCPRxH 和 CCPRxL 寄存器,并产生相应的中断。

      利用 CCP 模块的捕捉功能,可以很容易的完成 PWM 信号的周期、频率、脉宽、占空比等参数的测量PWM 信号各项参数的测量以周期测频法为基础,原理如图 2 所示把 PIC16F877A 单片机的 CCP1 模块设置为捕捉模式,第一次先把 CCP1 设置为捕捉脉冲的上升沿,当脉冲信号的上升沿到来时,触发 CCP 中断,并在中断服务程序中记录下此时 TMR1 寄存器中16bit 的值 T1;第二次把 CCP1 模块设置成捕捉脉冲的下降沿,当脉冲信号的下降沿到来时,再次触发 CCP 中断,又在中断服务程序中记录下此时 TMR1 寄存器中 16bit 的值T2;第三次再把 CCP1 模块设置成捕捉脉冲的上升沿,当脉冲信号的上升沿再次到来时,第三次触发 CCP 中断,再次在中断服务程序中记录下此时 TMR1 寄存器中 16bit 的值T3,这样就完成了 PWM 信号一个周期的测量// CCP1 模块初始化程序如下:void ccp1_init(){T1CON = 0x00; //关闭 TMR1 振荡器TMR1H = 0; //清除 TMR1 计数值TMR1L = 0; CCPR1L = 0; //清除 CCPR1L 寄存器CCPR1H = 0; //清除 CCPR1H 寄存器CCP1CON = 0x05; //设置 CCP1 捕捉 1 个脉冲的上升沿CCP1IE = 1; //CCP1 中断允许CCP1IF = 0; //中断标志清零PEIE = 1; //外围中断允许TRISC |= 0x04; //设置 RC2_CCP1 为输入}// 中断处理程序如下:void interrupt ISR(){if (CCP1IE && CCP1IF) //判断是否为 CCP1 中断{CCP1IF = 0; //CCP1 中断标志清零ccp1u.ccp1[0] = CCPR1L; //保存 16bit 计数值ccp1u.ccp1[1] = CCPR1H;cp1data[n] = ccp1u.x; //存入数组CCP1CON = CCP1CON ^ 0x01; //捕捉相反跳变沿n++;count_int--; //中断次数减一}}注:完整源程序见本刊网站。

      通过捕捉到的这三个测量值,就可以计算出 PWM 信号的周期、频率、脉宽、占空比等参数当 PIC16F877A 使用 4MHz 晶振时,时钟周期=1/4MHz=250nS(纳秒) ,指令周期=1uS(微秒),这样 TMR1 寄存器中 16bit 记数值的单位就是微秒PWM 信号各项参数的具体计算方法如下:信号周期:T=(T3-T1)uS信号频率:F=1000000/T脉冲宽度:P=(T2-T1)uS占空比:R=P/T*100%在实际使用中,为了提高测量结果的准确性,可以重复测量多个周期的 PWM 信号参数,然后求出平均值作为最终的测量结果需要特别注意的是,两次 CCP 中断发生的时间间隔必须大于一次中断服务的执行时间;否则,如果在中断服务程序执行过程中又发生 CCP 中断,那么测量结果就不正确在实际应用中如果发现有上述状况的发生,则可以通过改变 CCP1CON 寄存器的设置值,使 CCP1 模块每 4 个脉冲上升沿或每 16 个脉冲上升沿捕捉一次,这样两次中断发生的时间间隔就会增大,如果还不能达到要求,则可以通过使用分频器对输入的脉冲信号进行分频处理后,再由 CCP1 引脚输入,这样就可以测量更高频率的 PWM 信号了。

      2.实测效果该 PWM 参数测量仪的测量范围如下:输入信号电压:直流 3.7V~5V;输入信号电流:<=20mA;信号频率范围:10Hz~50KHz;PIC16F877A 单片机捕捉并计算出 PWM 信号的各项参数后,将在 LCD1602 字符液晶屏上依次显示周期 T、频率 F、脉宽 P 和占空比 R为了检测该测量仪的测量效果,用信号发生器产生一组频率为 1KHz,占空比为 50%的 PWM 信号,将该信号接到 PIC16F877A 单片机的 CCP1(RC2)引脚,得到的实际测量结果如图 3 所示:3.总结综上所述,该 PWM 参数测量仪具有使用简单、测量速度快、分辨率高、显示信息量大的优点,在实际使用中取得了很好的效果除了上面介绍的用来测量 PWM 信号的各项参数以外,还可以作为一个低频数字频率计来使用,用来测量低频晶振的振荡频率;或者用红外发射和红外接收管将转速信号转化为频率信号,从而达到测量转速的目的;读者还可以根据本文介绍的方法,对源程序稍加改造,增加脉冲计数功能,使之成为一个脉冲计数器。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.