用单片机实现频率可调的PWM控制信号
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用单片机实现频率可调的PWM控制信号
摘要本文介绍了一种用51系列单片机的定时器来实现频率可调的pwm信号,提供了一种可靠、有效、灵活的方法,信号准确、稳定,频率和占空比调节方便、直观,电路简单、集成度高,成本低,最高可实现几十khz频率和占空比可调的pwm信号。可作为各种需要pwm控制的信号源发生器。
关键词单片机;定时器;频率;pwm;占空比
中图分类号tp368.1文献标识码a 文章编号
1674-6708(2010)21-0220-02
0 引言
在嵌入式系统及控制系统中,经常需要产生特定频率和pwm的方波脉冲信号,以便实现精确的控制过程。在实际应用中,为了达到最佳的控制,往往需要对驱动控制信号的频率和占空比都能够按要求进行调节,也就是需要实现可调频率的pwm控制。在传统电路中,用555来实现的是比较经典的电路,但通过r、c来调节脉冲时,频率和占空比可调的范围不大,器件的误差带来的影响较大,调节时不直观,调节参数具有一定的离散性,不利于批量生产。对于需要经常改变参数的情况更不方便。
随着数字技术的不断发展,单片机的性能越来越强,价格也越来越低,51系列作为非常成熟的8位单片机,在国内得到了广泛的应用。采用51系列单片机除了能完成所需的控制功能外,完全能够实现对方波信号的频率和占空比的调节,不再需要额外的信号发生电
路,采用软件控制这种方法,电路简单,调节方便,显示直观,误差小,一致性好,可靠性高。
1 实现原理
脉冲宽度调制(pwm)是英文“pulse width modulation”的缩写,它是通过调节方波的占空比来实现的,只要占空比的步进精度足够,就可以通过pwm来实现数字输出信号对模拟电路的有效控制,比如灯光的亮度、流量的控制、开关电源电压的控制等等。脉冲宽度调制在工业控制、电源变换、测试测量、通信等领域都有广泛的应用。在一些文献中,产生各种波形信号,采用的是软件延时的方式,但这种方式占用了单片机的处理时间,且精度不易控制,尤其是在调
节时计算比较复杂,本文采用的是定时器中断方式,单片机通过中
断来产生对应的脉冲信号,还可以同时进行其他输入、输出控制功能,定时器的精度较高,调节时也仅需通过软件调整对应的设置值
即可。单片机内部一般都包含有定时/计数器功能,通过对系统时钟的分频计数,可以设定某个输出端口的接通、断开时间,也即高、低电平的时间,就可以通过这个输出端口实现频率和占空比可调的脉冲信号。频率即为高、低电平总时间也就是周期的倒数。占空比就是高电平接通时间与周期之比。
对于51系列单片机来说,通过编程设置其方式寄存器tmod可设定定时器工作于所需的工作模式,我们仅需按手册说明将其工作设定为定时方式,设定好定时时间,在时间到达时就会产生定时中断,单片机响应定时中断,我们在定时中断中根据所需的时间控制相应
输出端口的电平,即可实现对输出端口信号的频率、占空比的控制。在系统设计中,首先需要确定系统最小能调节的基准周期,也就
是定时器的周期t0。
若pwm调节的占空比的步进精度为△d,则我们能调节得到的最高频率fh为:
fh = 1 / th = 1 / (t0 * (100 / △d) * c)
则根据fh即可求出所需的t0值;
t0 = 1 / ((100 / △d) * c) *fh(1)
式中的c为单片机的周期指令系数,一般51系列为12周期指令系统,即每条指令需要12个系统周期,则c的值为定时中断的指令周期数乘以12。目前一些新的51系列单片机,比如stc有单周期指令的单片机,则c的值为定时中断的指令周期数,所以为了得到较高的可调节的频率,一方面可以采用较高的时钟频率,另一方面则可
以采用单周期指令的单片机。
虽然stc单片机有具备pwm调节功能的型号,但是其占空比是按1/256周期为步进的,在我们不需要这么细的调节范围时,反而限制了所能达到的最高调节频率,同时也为了通用性,我们采取的是用
定时中断的方式来设定占空比、频率,控制单片机的一个通用端口作为信号的输出。
2 系统实例
我们的一个实例系统的系统原理框图如图1,单片机采用了单周
期的stc16c5628系列单片机,其最高的系统时钟频率可达40mhz,
在实例中采用的外接晶振为32mhz。为了较好的人机交互调节,采用了按键输入和led显示输出部分。通过接收按键输入,频率可以设置从1khz~80khz,占空比调节范围为5%~95%(最小步进为5%),在调节过程中用2位数码管led显示对应的频率和占空比,能够很好地实现了最高80khz的频率可调的pwm信号输出,用来驱动对应频率的超声波探头,得到了较好的效果,并通过调节占空比,获得了最佳的谐振。
3 软件流程
这里主要描述产生频率、占空比可调信号的算法流程,其他的按键输入、数码管分时显示控制模块都是通用的一些方法,不作进一步说明。
在系统软件中首先需要完成以下初始化工作:
1)根据所需脉冲波的频率f、占空比步进值△d,按照以上所述的公式(1)计算出所需设置的定时器/计数器的周期t0,再除以系统时钟频率得到所需设定的定时器常数;
2)根据占空比和脉冲周期除以t0计算出占空比设定值n,以及脉冲周期计数值n;
3)设定定时器的工作模式;
4)设定定时器的常数;
5)设定一个通用i/o管脚作为输出;
6)启动定时器,计数值m清零,输出端口输出高电平。开定时器中断,开始一个脉冲周期。
定时器中断的流程如图2所示,通过在定时中断中比较计数值m 和设定的占空比值n,周期计数值n来控制输出端口的电平,即可在输出端口得到所需的理想的脉冲波形。
通过按键改变占空比和频率时,单片机只需要根据所要设定的值按照公式重新计算定时中断的周期t0,占空比计数n,脉冲周期计数n,再按以上的步骤对定时器重新初始化一次即可,定时中断不需进行修改。
4 结论
本文通过用单片机来实现频率、占空比可调的方波脉冲信号,对于很多工业控制场合来说有很好的适应范围。以上描述的电路,除了用来实现对超声波探头的驱动外,还可以直接作为一个简单的方波脉冲信号发生器,用来控制开关电源、以及led灯亮度控制等,都得到了比较好的效果。
系统软件主要采用定时器中断方式来实现,单片机还可以进行常规的按键、显示、控制等处理,能有效降低系统的总体成本。
参考文献
[1]何立民.单片机应用技术选编.北京航空航天大学出版社.
[2]李华.mcs-51系列单片机实用接口技术.北京航空航天大学出版社.
[3]stc12c5628ad系列单片机用户手册.宏晶科技.