关于单片机实现方波信号的输出,求大神解惑!

我知道用AVR单片机可以实现PWM信号输出,用定时计数器也可以实现方波信号输出。在一般的流水灯程序里面,我们用一个延时函数让高低电平维持数秒,也能在IO端口产生一定频率的方波输出。我想知道,可否用这种延时函数的模式实现PWM信号的输出?另外,PWM信号和方波信号的区别可否解释一下,PWM信号的作用是用来干嘛的?小弟刚入门,谢谢了!!!

PWM信号又叫脉宽调制信号,是通过控制脉宽来改变输出的,实际上你说的那个控制LED灯的也算是一种脉宽调制(PWM),只是它的频率稍微低了点.

脉宽调制简单来说就是改变占空比,一个脉冲周期分为一个高电平和一个低电平,其周期是固定的,高电平脉宽越宽,其输出功率越大,高电平脉宽越小,输出功率越小,反映到设备上就是(比如一个LED),高电平越宽,LED越亮,高电平越小,LED越暗.
方波信号通常是固定高低电平宽度的,比如2毫秒的高电平+2毫秒的低电平
而PWM信号是可变的,周期同样是4毫秒,在T时刻,高电平脉宽为1毫秒,低电平脉宽为3毫秒,在T+1时刻,高电平脉宽为1.5毫秒,低电平脉宽为2.5毫秒等等,(因为它的占空比是可变的)

占空比变化是根据你单片机程序写的
比如:
setb p1.0
nop
nop
clr p1.0
nop
nop
setb p1.0
.....
这就是一个方波
setb p1.0;占空比1:3
nop
clr p1.0
nop
nop
nop
setb p1.0;占空比1:1
nop
nop
clr p1.0
nop
nop
setb p1.0
setb p1.0;占空比3:1
nop
nop
nop
clr p1.0
nop
setb p1.0
.....
这就是一个PWM调制的脉宽,至于PWM的输入,那要根据实际情况来定,将输入的值经过一定算法后控制输出脉宽的改变.

这些概念可以到百度百科里看下,我的通俗化理解就是这些了.
望采纳,谢谢
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-10
PWM 就是脉宽调制 pulse width modulation
方波信号就是只有高电平和低电平两种(理想的)的波形
PWM可以调节方波的占空比(一个周期内高电平持续的时间)
可以用PWM的方法调节电机转速,灯的亮度等等本回答被网友采纳