利用单片机测PWM

作者&投稿:类官 (若有异议请与网页底部的电邮联系)
怎样用51单片机测量某一pwm信号? 请教方法或程序? 谢谢!~

我觉得可以把PWM信号读入I/O口,定义两个变量,一个high表示高电平,一个low表示低电平,遇到第一个上升沿开始给high+1,遇到第一个下降沿给low+1,遇到第二个上升沿,则停止计数。统计high与low,就可以知道一个周期内,占空比。

单片机产生PWM波形波形的方法:
主要是采用软件控制,控制2个时间。
具体就是由单片机的引脚输出PWM波形;单片机引脚 如P1.7 控制其输出高电平的时间T1 和输出低电平的时间T2。
PWM波形的周期T=T1+T2
PWM波形的占空比=(100T1/T)%

PWM波形实现的算法:
1 根据PWM波形的频率f,计算出PWM波形的周期T=1/f;
2 根据PWM波形的占空比 计算出高电平时间 T1=占空比×T
3 计算出低电平时间 T2=T-T1
4 按上述时间去控制 单片机引脚高低电平的时间就可以了。

呵呵 赶快自己写程序吧 别忘了给俺加分呀

“形成一个反馈控制系统”
AT128单片机产生的PWM信号本来就很精确的,还需要反馈吗?
如果你要做反馈的话,
1.你可以用AD采集PWM的电压。(频率不变的话)
2.还有就是用中断方式,一个上升沿触发,一个下降沿触发,这个比较准确的!

Atmega128有2个16位定时器,每个可提供3路PWM输出,设置为快速PWM方式,ICR=0xFFFF,这样就是16位PWM输出了了。

补充:就是说要测量PWM的占空比?这就需要ICP了,但是Atmega128单片机的两个16位定时器都被占用了,所以只能再使用一片单片机了。

这样是很难实现的.而且也浪费单片机的资源
你的pwm是控制什么的,如果是控制电机的话,就以电机的速度为反馈
无论如果,直接将pwm的脉宽作为反馈量的话是不实际而且实际上单片机也是识别不出来的.一定要将其转换成为一个较大容易测量的信号才可以
像是楼上的利用电容转换为电压(但是此电容必须借放电电路)

可以把你产生的PWM信号用电容积分,得到一个电压。A/D此电压,与你想要的标准相比较,得到PWM的脉宽是否需要增加减少。即可。


单片机如何用PWM来测出方波频率???
如果你非要用PWM测方波的频率的话,你看下我说的对不:将PWM和方波通过一个与非门,因为只有两个同时为1时,门电路输出才为0,因此,在需要测量时,调整PWM的频率,当调整到门电路输出信号与输入的PWM信号同步时,此时所测的方波频率就是PWM的频率了,当然,前提是必须输入的是方波,而且PWM要从0...

51单片机如何用计数器检测脉冲信号(高低电平),程序怎么做!没有思路...
可以利用51单片机的计数器T0、T1,例如用计数器0的外部计数脉冲输入端T0计数,当计满100个脉冲数量后,触发中断。进入计数服务中断程序。如果有脉冲信号,经过电容微分后,在下降沿会产生一个向下的尖端脉冲,电阻R2是作为一个偏置,当有向下的尖端脉冲来后,反相端的电压会低于同向端的电压。从而比较器...

怎么51单片机定时器来模拟PWM波?
PWM的意思是“脉冲宽度调制”PWM有两个最基本的参数:频率、占空比。频率就是每秒钟电平高低变化的次数,占空比是指高电平保持时间和整个脉冲周期中的比例关系。对于用定时器来模拟,最基本的方法就是使用一个IO口循环设置其输出值为高电平和低电平。那么定时器在这里起计时作用,而且需要两个时间:高电平...

STC单片机PWM编程!
看看这个,单片机用的是ADUC848,AD转换输出正弦波,和PWM原理类似。实验八 D\/A转换实验 一、实验目的 1.了解芯片内部D\/A转换模块设置方法。2.了解D\/A转换原理。3. 了解Keil软件中逻辑分析仪的使用方法。4. 了解用单片机产生正弦信号的基本方法。二、实验原理 ADuC848中包含一个12位电压输出DAC...

如何用单片机捕捉PWM占空比?
你说的用外部中断的方法也可以。思路1 采用timer来进行计数。遇到相应的边沿后中断,停计数器。然后进行相应的处理。思路2 直接用循环来检测,当然如果这个地方用循环检查的话,不如就不用中断了,直接用软件来实现上升沿下降沿的识别。也就是我写的程序一样了。提示,思路1的话明显的会觉得有点问题。

单片机的PWM脉冲怎么调?
占空比通过连接4英尺的10K电阻调节,连接6英尺f=1.1/(CT*RT)的5K电阻频率调节,连接2、8、14、15英尺。9英尺输出PWM波。利用单片机通过DA芯片的输出电压抑制,将该电压加到PWM比较器的TL494正输入端,即TL494端口3,调节DA芯片的输出电压,可以控制TL494PWM的宽度。误差放大器有两个,一个用于...

求用单片机设计的PWM波形发生器(C语言写的)
CYCLE = 10;\/\/ 时间可以调整 这个是10调整 8位PWM就是256步 while(!Flag){ delay(20000); \/\/延时时间,从一个亮度到下一个亮度的间隔时间,速度快就能看到连续效果 PWM_ON++; \/\/这个使用较长延时,以便能看清楚变化过程 if(PWM_ON == CYCLE){ \/\/这个里可以添加其他程序 如到最亮时...

单片机PWM捕捉模式是什么意思?
PWM,是脉冲宽度调制的意思,主要参数有三个,整个脉冲的宽度,高电平的宽度,占空比。这里假设高电平有效。占空比 = 高电平的宽度 \/ 整个脉冲的宽度。PWM捕捉,就是同时捕捉PWM的整个脉冲的宽度以及高电平的宽度,进而可以计算得出占空比。典型的做法,在脉冲上升沿和下降沿都执行捕捉。上升沿复位并启动...

51单片机处理传感器传来的pwm波,需要检测出其低脉冲率,怎么接线,如何...
1、1根信号线,还有个地能共到吧?2、周期是30秒。对吧。采样30秒的时间内,低电平的计时时间tl。一除得到低脉冲率。3、用定时器和电平中断方式来处理。step1:初始化定时器0,定时器1,外部电平方式触发中断。T0,INT0中断,T1中断(优先顺序T0>T1>INT0,PT0、PT1置1)step2:开启定时器0,...

我想用单片机发出的pmw信号控制电路的通断,求教怎么做
三极管用90120,91013,绝对可以响应单片机12mzh的频率 并可以提供300~400ma的通断,要是需更大的电流就用8050、8550三极管 至于编程,网上很多 搜 单片机pwm调速 很多的 当时毕业设计就是搞的这个

布尔津县18975389099: 如何用单片机产生PWM -
舌庞瑞立: /*--------------- 文件名称: PWM.C 功能 :单片机脉冲方式产生PWM信号 ----------------*/ #include <reg52.h> // 引用标准库的头文件 #include <absacc.h> #include <stdio.h> #define uchar unsigned char #define uint unsigned int #define COUNT0 ...

布尔津县18975389099: 想用单片机实现10路PWM信号的测量,怎么实现? -
舌庞瑞立: 这么慢的速度,完全可以轮询读IO口,然后寻找上升和下降的边缘,记录时间点(用一个周期30毫秒左右的定时器).上升沿之间的时间是PWM周期,上升沿到下降沿的时间是占空比.定时器周期很重要,要在PWM的两个周期之内,一个周期之外,当出现后一个边缘时间小于前一个的数值的情况时,只需给后一个值加一个定时器周期的值,就能够保证读取正确读数.

布尔津县18975389099: 怎么用单片机写一个pwm信号? -
舌庞瑞立: 用单片机产生一个pwm信号最简单的方法就是利用定时器中断.用一个全局变量表示PWM信号占空比,在PWM输出高、低电平时对定时器寄存器进行不同的赋初值.

布尔津县18975389099: 怎么测量pwm信号 -
舌庞瑞立: 可以利用单片机的定时器,配合中断来进行测量.

布尔津县18975389099: 怎么实现用单片机控制的PWM发生电路 -
舌庞瑞立: 这种电路主要是在单片机的程序,只要单片机有定时器,就可以利用CCR实现PWM输出,或是有PWM输出专用的模块也可以实现PWM输出.对后输出后的信号只需要根据需要加驱动电路就可以了,一般是半H桥居多.

布尔津县18975389099: 51单片机怎么模拟PWM波 -
舌庞瑞立: 有两个选择,要么用延时函数,要么用中断,一个一个定时器控制周期,一个控制脉宽

布尔津县18975389099: 51单片机怎样做PWM -
舌庞瑞立: 你用定时器开中断吧,如果只是简单的用IO口的话,得到的频率很不准确的!思路:根据单片机的晶振大小计算定时器的初值,在中断程序里给对要输出脉冲的引脚取反操作就是了,例如:P1^0=~P1^0; 还有脉冲频率不能太高哦,要保证定时器的计时时间大于中断程序执行时间~~ 程序大体结构: void Init_timer() //定时器初始化 { } void main() //主程序 { } void t0() interrupt 1//t0的中断程序{ }

布尔津县18975389099: 单片机控制电机转速试验(PWM) -
舌庞瑞立: 单片机控制电机转速:如果只有一个转向的话就比较容易了,如果要有正反两个转向,就需要一个H桥,并且两个I/O口输出高低电频控制.比如用P1口的P1.0,P1.1,P1.2三个I/O口接按键,P3.4口接电频输出,编个定时程序及按键程序,如果是...

布尔津县18975389099: STC单片机使用定时器进行PWM调速 -
舌庞瑞立: STC单片机 使用PWM功能,有PWM专用定时器,和定时器 T0 与 T1 无关. STC单片机 的 数据手册 上有 PWM 例程,有C 语言的,也有汇编语言的,】 可以上官网下载 个 相关 单片机的 数据手册 看看.

布尔津县18975389099: 单片机输出38khz占空比50%的pwm波 检测p1.0口高电压持续时间是否大于1ms,计算的一个程序 还要控制显示 -
舌庞瑞立: 38khz占空比50%的pwm波 其实也就是 38khz占空比50%的方波了. 通过程序中断实现38khz占空比50%的pwm波,单片机确实几乎忙得不用做其它事了. 但是现在大多单片机都有 pwm 或者 可编程时钟输出,前者可以调频率和占空比,后者只能调频率(占空比固定50%),只需向特殊寄存器输入参数就可以得到想要的方波了,在不需要改变波形频率时,单片机就不用管它而去做其它事情了. 比如便宜的STC89C52RC 5元,就有一路可编程时钟输出.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网