51单片机测量PWM波的占空比的C语言程序

51单片机测量PWM波的占空比的C语言程序,第1张

用定时器产生败态圆程序如察塌下:

unsigned

int

a=0

,b=10

void

main()

{

tmod=0x01

th0=(65536-50000)/256

tl0=(65536-50000)%256

ea=1

et0=1

tr0=1

}

void

pwm()

interrupt

1

{

th0=(65536-50000)/256

tl0=(65536-50000)%256

a++

p1^1=0

if(a=20)

{

a=0

}

if(a=b)

{

p1^1=1

}

}

调节a

,b的值即可调节占空比,程闭激序框架就是这样,具体自己改吧

首先读出AD值,这样就是AD就是一个中或数值。假如AD结果为渣蠢

0-256,

那么0就对应0%

占空比如培陪

128对应50%,256对应100%占空比。

利用计数器进行测量

在进行占空比测量时,最简单的一种方案就是使用计数器半周期完成测量。支持的计数器需颤梁要乎渣有双边沿分离检测的特性,在实际工作中,通常32位宽的计数器都支持该测量。该方案通过预设半周期时间可以得到非常高精度的测量结果。在NI的采集板卡类型中,cDAQ 9174,9178有四个计数器,每个槽都可以使用计数器资源,而cDAQ-9172只有5槽和6槽可以使用计数器资源。对于带2个24位计数器的板卡来说,这种板卡一般不具有双边沿分离检测,工程师可以采用脉冲宽度测量的方式,分别测量高脉宽时间和低脉宽时间,从而计算占空比。

利用模拟采集测量

除了使用计数器来完成占空比测量之外,工程师也可以利用模拟采集来完成测量工作。该方案主要使用波形测量选板中的脉冲测量VI,可以根据周期性的采集数据计算占空比。要求模拟采集有足够高的采样率(5~10倍以上脉冲频率,根据占空比而定)才能获取足够的波形信息,来提高占空比测量精度。这种通过软件来计算占空比的方式处理速度相对而言比较一般。

利用FPGA完成测量

想要测量PWM波的占空比,工程师还可以利用FPGA来帮助自己完成测量工作。FPGA上有精确的40MHz时钟驱动的计数器资源,通过记录信号沿变化时刻的计数器值可以计算得到PWM波的脉宽和周期,从而计算茄顷运出占空比。可使用程序即为FPGA占空比测量程序,实际调用时可将Digital In换成模块IO。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12472310.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存