用单片机实现频率可调的PWM控制信号
- 格式:doc
- 大小:24.50 KB
- 文档页数:6
、PWM原理2、调制器设计思想3、具体实现设计一、PWM(脉冲宽度调制Pulse Width Modulation)原理:脉冲宽度调制波通常由一列占空比不同的矩形脉冲构成,其占空比与信号的瞬时采样值成比例。
图1所示为脉冲宽度调制系统的原理框图和波形图。
该系统有一个比较器和一个周期为Ts的锯齿波发生器组成。
语音信号如果大于锯齿波信号,比较器输出正常数A,否则输出0。
因此,从图1中可以看出,比较器输出一列下降沿调制的脉冲宽度调制波。
通过图1b的分析可以看出,生成的矩形脉冲的宽度取决于脉冲下降沿时刻t k时的语音信号幅度值。
因而,采样值之间的时间间隔是非均匀的。
在系统的输入端插入一个采样保持电路可以得到均匀的采样信号,但是对于实际中tk-kTs< (1)其中,x{t}是离散化的语音信号;Ts是采样周期;是未调制宽度;m是调制指数。
然而,如果对矩形脉冲作如下近似:脉冲幅度为A,中心在t = k Ts处,在相邻脉冲间变化缓慢,则脉冲宽度调制波xp(t)可以表示为:(2)其中,。
无需作频谱分析,由式(2)可以看出脉冲宽度信号由语音信号x(t)加上一个直流成分以及相位调制波构成。
当时,相位调制部分引起的信号交迭可以忽略,因此,脉冲宽度调制波可以直接通过低通滤波器进行解调。
二、数字脉冲宽度调制器的实现:实现数字脉冲宽度调制器的基本思想参看图2。
图中,在时钟脉冲的作用下,循环计数器的5位输出逐次增大。
5位数字调制信号用一个寄存器来控制,不断于循环计数器的输出进行比较,当调制信号大于循环计数器的输出时,比较器输出高电平,否则输出低电平。
循环计数器循环一个周期后,向寄存器发出一个使能信号EN,寄存器送入下一组数据。
在每一个计数器计数周期,由于输入的调制信号的大小不同,比较器输出端输出的高电平个数不一样,因而产生出占空比不同的脉冲宽度调制波。
图3为了使矩形脉冲的中心近似在t=kTs处,计数器所产生的数字码不是由小到大或由大到小顺序变化,而是将数据分成偶数序列和奇数序列,在一个计数周期,偶数序列由小变大,直到最大值,然后变为对奇数序列计数,变化为由大到小。
PWM信号生成原理及在单片机控制中的应用随着现代科技的迅猛发展,单片机成为了各类电子设备和系统中不可或缺的关键组件。
而PWM信号作为一种重要的数字信号,广泛应用于单片机控制中,它的产生原理以及在单片机控制中的应用,是我们需要深入了解和研究的。
一、PWM信号生成原理PWM信号是一种脉冲宽度调制信号,通过改变脉冲的宽度来模拟模拟量电压的变化。
PWM信号的产生原理主要通过改变脉冲的高电平时间和低电平时间来控制信号的平均电平值,从而实现对输出的调整。
在数字系统中,PWM信号的生成需要借助计时器和定时器。
单片机中的计时器/定时器模块可以发挥关键作用,产生高效、精确的PWM信号。
具体来说,使用计时器和定时器可以先设定一个固定的周期,然后在每个周期内,根据占空比的设定,分别设定高电平和低电平的持续时间。
通常,高电平时间和低电平时间之和即为一个周期的时间。
二、PWM信号在单片机控制中的应用1. 电机控制PWM信号在电机控制中得到广泛应用。
通过控制PWM信号的占空比,可以实现对电机转速的调节。
通过改变高电平时间和低电平时间的比例,可以实现不同的转速控制。
2. LED亮度控制PWM信号在LED亮度控制中也扮演着重要角色。
通过改变PWM信号的占空比,可以实现对LED灯的亮度调节,从而得到不同亮度的光效。
3. 温度控制PWM信号还可以用于温度控制。
通过控制PWM信号的占空比,可以调整加热元件的电源开关频率和工作时间,从而实现对温度的控制。
这种控制方式下,可以减少功耗,提高系统效率。
4. 声音输出PWM信号还可应用于音频处理。
通过改变PWM信号的频率和占空比,可以产生不同音高的声音。
利用PWM信号的高频特性,可以实现模拟音频信号的数字化。
5. 无线通信PWM信号还可以被用于无线通信中。
通过控制PWM信号的占空比和频率,可以产生数字调制信号,实现与无线通信模块的数据传输。
三、PWM信号控制方法1. 软件控制通过使用单片机的GPIO口,可以编写程序,实现对PWM信号的软件控制。
单片机指令的PWM输出与模拟信号生成单片机(Microcontroller)是一种集成电路芯片,内部包含有处理器核心、存储器和各种输入输出接口。
它们可以通过编程实现各种功能,包括模拟信号的生成和PWM(Pulse Width Modulation)输出。
PWM是一种调制技术,通过调整方波信号的占空比来控制输出信号的平均功率。
单片机可以通过改变PWM输出的占空比,实现对电机速度、LED亮度等设备进行精确控制。
本文将介绍单片机指令中PWM 输出与模拟信号生成的原理和应用。
一、PWM的原理与工作原理PWM技术通过改变信号的高电平和低电平持续的时间比例来实现对输出信号的控制。
调整占空比可以改变输出信号的功率。
PWM信号由一个恒定频率的方波信号和一个占空比可变的调制信号组成。
单片机通过控制寄存器和定时器,可以产生一定频率和占空比的PWM信号。
具体实现PWM输出的方式根据不同的单片机型号和架构会有所差异。
一般来说,通过设置定时器的初值和重载值,以及改变比较器的阈值,单片机可以按需生成PWM波形。
PWM信号的频率决定了输出信号的周期,而占空比则决定了高电平信号的持续时间比例。
通常,高电平持续时间比例越大,输出信号的平均功率越高。
二、单片机中PWM输出的应用1. 电机控制:PWM可用于控制电机的转速和方向。
通过改变PWM信号的占空比,可以调整电机的运行速度。
同时,通过反馈回路,可以实现闭环控制,使电机保持稳定的转速。
2. LED亮度调节:基于人眼暂时视觉暂留效应,通过快速切换LED 的亮灭状态,可以在人眼的感知上产生不同亮度的效果。
通过改变PWM信号的占空比,可以实现对LED的亮度进行调节。
3. 数字信号转模拟信号:通过PWM技术,单片机可以将数字信号转换为模拟信号。
在数字信号中,通过改变PWM信号的频率和占空比,可以模拟出各种不同的模拟信号形态,如正弦波、方波等。
三、使用单片机指令生成PWM输出与模拟信号在使用单片机进行PWM输出和模拟信号生成时,需要根据具体的单片机型号和开发环境来进行相应的编程。
51单片机定时器产生pwm波的程序PWM(Pulse Width Modulation)是一种调节脉冲信号宽度的技术,通过改变信号的高电平时间和低电平时间的比例来控制输出电压的大小。
在很多应用中,PWM技术被广泛应用于电机控制、LED调光、音频放大器等领域。
在使用51单片机生成PWM波之前,我们首先需要了解51单片机的定时器的工作原理。
51单片机内部集成了多个定时器,其中最常用的是定时器0和定时器1。
这两个定时器都是16位的,可以通过设定定时器的计数值和工作模式来控制定时器的工作。
在使用定时器0和定时器1生成PWM波之前,我们还需要明确一些概念。
占空比是指高电平时间与一个周期的比值,通常用百分比表示。
频率是指一个周期的时间,单位是赫兹(Hz)。
接下来我们以定时器1为例,介绍如何在51单片机上生成PWM波。
我们需要设置定时器1的工作模式。
定时器1的工作模式分为两种:8位自动重装载模式和16位工作模式。
在8位自动重装载模式下,定时器1的计数器值从0到255,然后自动重装载为初始值,重复计数。
在16位工作模式下,定时器1的计数器值从0到65535,然后自动重装载为初始值,重复计数。
在生成PWM波时,我们通常使用16位工作模式。
我们需要设置定时器1的计数值。
定时器1的计数值决定了PWM波的频率。
计数值越大,频率越低;计数值越小,频率越高。
我们可以根据具体的应用需求来设定计数值。
然后,我们需要设置定时器1的占空比。
占空比决定了PWM波的高电平时间与低电平时间的比例。
占空比为50%时,高电平时间和低电平时间相等;占空比小于50%时,低电平时间多于高电平时间;占空比大于50%时,高电平时间多于低电平时间。
我们可以通过改变定时器1的占空比来控制PWM波的输出电压的大小。
我们需要启动定时器1开始工作。
定时器1开始工作后,会自动根据设定的计数值和占空比生成相应的PWM波。
使用51单片机定时器生成PWM波的步骤如下:1. 设置定时器1的工作模式为16位工作模式;2. 设定定时器1的计数值,确定PWM波的频率;3. 设定定时器1的占空比,确定PWM波的输出电压的大小;4. 启动定时器1开始工作。
单片机PWM调光程序一、概述PWM(Pulse Width Modulation,脉宽调制)是一种常用的调光技术,通过控制信号的脉冲宽度来调节输出电平的平均值,从而实现对光源亮度的调节。
本文将介绍如何编写单片机PWM调光程序,并提供一个基于XX单片机的示例代码。
二、硬件准备1. 单片机:XX单片机(型号)2. 光源:LED灯(型号)3. 光敏电阻:用于实时检测环境光强度的元件4. 电路连接:将单片机的PWM输出引脚连接到LED灯的控制引脚,将光敏电阻连接到单片机的模拟输入引脚三、软件设计1. 引入头文件:根据单片机型号,引入相应的头文件,例如"xx.h"。
2. 定义宏:定义LED灯的控制引脚和光敏电阻的模拟输入引脚。
3. 初始化:设置单片机的引脚模式和PWM参数,例如设置PWM频率、占空比等。
4. 光敏检测:通过模拟输入引脚读取光敏电阻的电压值,将其转换为环境光强度的数值。
5. PWM调光:根据光敏检测到的环境光强度数值,计算对应的PWM占空比,并将其输出到LED灯的控制引脚。
四、示例代码```c#include <xx.h> // 引入相应的头文件#define LED_PIN 1 // 定义LED灯的控制引脚#define LDR_PIN 2 // 定义光敏电阻的模拟输入引脚void init_pwm() {// 设置引脚模式为PWM输出pinMode(LED_PIN, PWM_OUTPUT);// 设置PWM参数pwmSetMode(PWM_MODE_MS);pwmSetClock(100); // 设置PWM频率为100HzpwmSetRange(1024); // 设置PWM占空比范围为0-1024 }int read_ldr() {// 读取光敏电阻的电压值int ldr_value = analogRead(LDR_PIN);// 根据电压值转换为环境光强度数值int light_intensity = map(ldr_value, 0, 1023, 0, 100);return light_intensity;}void adjust_brightness(int light_intensity) {// 根据环境光强度计算PWM占空比int pwm_duty_cycle = map(light_intensity, 0, 100, 0, 1023);// 输出PWM占空比到LED灯的控制引脚pwmWrite(LED_PIN, pwm_duty_cycle);}int main() {init_pwm(); // 初始化PWMwhile (1) {int light_intensity = read_ldr(); // 光敏检测adjust_brightness(light_intensity); // PWM调光}return 0;}```五、使用方法1. 将示例代码中的XX单片机型号替换为实际使用的单片机型号。
单片机PWM调光原理与实现方法近年来,随着LED灯具的广泛应用,调光技术也变得越来越重要。
单片机作为调光控制的核心部件之一,使用PWM(脉宽调制)技术可以实现灯光的亮度调节。
本文将介绍单片机PWM调光原理及实现方法。
一、PWM调光原理PWM是一种基于时间的调光方法,通过改变信号的高低电平持续时间的比例来调节灯光的亮度。
该方法适用于LED等光源,因为LED的发光亮度与通电时间成正比。
PWM调光原理如下:1. 设定周期:在PWM调光中,首先需要设定一个时间的基本周期。
周期越大,灯光的亮度变化也就越平滑。
典型的PWM周期一般为几十微秒。
2. 设定占空比:占空比是表示高电平时间占总周期时间的比例,通常以百分比表示。
占空比越高,灯光亮度越大;占空比越低,灯光亮度越小。
3. 生成PWM信号:根据设定的周期和占空比,单片机通过不断计数生成PWM信号。
当计数值小于占空比时,输出高电平;当计数值大于占空比时,输出低电平。
通过改变计数阈值,可以实现不同占空比的PWM信号。
4. 连接LED灯:通过PWM输出口将生成的PWM信号连接到LED灯。
当PWM信号为高电平时,LED点亮;为低电平时,LED熄灭。
通过不断重复生成PWM信号,可实现灯光的调光效果。
二、实现方法在单片机上实现PWM调光功能有多种方法,下面将介绍两种常见的实现方法。
1. 软件实现PWM调光软件实现PWM调光是通过单片机的定时器和计数器来实现的。
具体步骤如下:1) 设置定时器:选择适合的定时器工作模式,并设置定时周期。
定时周期即为PWM的周期。
2) 设置计数器:设置计数器的初值。
3) 发出PWM信号:当计数器值小于占空比时,输出高电平;否则输出低电平。
4) 重复步骤3,不断更新计数器的值,从而生成PWM信号。
2. 硬件实现PWM调光硬件实现PWM调光是通过使用专用的PWM模块和电路来实现的。
具体步骤如下:1) 配置PWM模块:根据单片机的特点,选择适合的PWM模块,并进行配置。
单片机pwm调光电路单片机PWM调光电路一、引言随着人们对照明效果的追求,调光技术在照明领域中得到广泛应用。
而单片机PWM调光电路作为一种常见的调光技术,具有调光范围广、精度高、响应速度快等优点,被广泛应用于LED照明、舞台灯光等领域。
本文将介绍单片机PWM调光电路的原理和实现方法。
二、原理单片机PWM调光电路的原理是利用单片机的定时器产生PWM信号,通过改变PWM信号的占空比来调节灯光的亮度。
PWM(Pulse Width Modulation)即脉宽调制,通过改变信号脉冲的高电平时间和低电平时间的比例,来控制被调光设备的平均功率,从而达到调光的效果。
三、实现方法1. 硬件设计单片机PWM调光电路的硬件设计主要包括单片机、光敏电阻、三极管等元件。
其中,单片机是控制调光的核心部件,光敏电阻用于感知环境光亮度,并将感知的信号输入给单片机,三极管则用于控制LED灯的亮度。
2. 程序设计在单片机PWM调光电路中,需要通过编程来实现PWM信号的控制。
具体的实现步骤如下:(1)初始化定时器:设置定时器的工作模式和时钟源。
(2)设置PWM参数:设置PWM的频率和占空比。
(3)启动定时器:使定时器开始工作。
(4)根据光敏电阻的信号调节PWM占空比:通过读取光敏电阻的信号,计算出对应的PWM占空比,并将其写入PWM寄存器。
(5)循环执行以上步骤,实现实时调光。
四、优点与应用1. 优点(1)调光范围广:单片机PWM调光电路可以在0-100%之间连续调节亮度,满足不同场合的需求。
(2)精度高:PWM调光电路的调光精度可以达到0.1%左右,保证了照明效果的准确性。
(3)响应速度快:由于PWM信号的高低电平时间可以非常短,因此单片机PWM调光电路的响应速度很快,可以实现实时调光。
(4)节能环保:通过调节灯光的亮度,可以达到节能减排的效果,降低能耗,环保节能。
2. 应用(1)LED照明:单片机PWM调光电路广泛应用于LED照明领域,通过调节LED的亮度,实现不同场合的照明需求,如家居照明、商业照明等。
51单片机实现PWM波占空比可调单片机实现PWM波占空比可调的方法有很多种,下面将详细介绍一种常见的实现方式。
PWM(脉冲宽度调制)是一种常用的数字信号调制技术,可以通过改变脉冲的高电平时间来控制电平的占空比,从而实现对信号的调节。
在单片机中,可以使用定时器/计数器模块来生成PWM波,并通过改变计数器的值来调整占空比。
以AT89C51单片机为例,以下是实现PWM功能的步骤:1.设置定时器模式:选择合适的定时器模式来生成所需的PWM信号。
AT89C51单片机有定时器/计数器模块,可以选择模式2,该模式下定时器有自动重装载功能,能够方便地实现周期性的PWM波。
3. 设置PWM参数:根据需要调节的占空比,计算出所需的高电平时间和低电平时间。
通常,PWM波的高电平时间与低电平时间之和等于一个周期的时间(定时器的重装载值)。
例如,如果需要一个占空比为60%的PWM波,周期为20ms,则高电平时间为「20ms * 60% = 12ms」,低电平时间为「20ms - 12ms = 8ms」。
4.设置PWM引脚:选择一个合适的IO口作为PWM波的输出引脚,并在程序中设置该引脚为输出模式。
5.编写中断服务程序(ISR):针对定时器溢出中断(TOF)编写中断服务程序。
每当定时器溢出时,PWM波应该翻转输出引脚的电平,以实现所需的占空比。
6.初始化定时器和中断:在程序初始化阶段,将定时器设为所需的模式,设置中断向量表中的对应中断服务函数,并开启定时器中断。
7.主循环中设置占空比:在主循环中,通过改变定时器的初值来实现不同占空比的调节。
将计算得到的高电平时间和低电平时间分别赋值给定时器初值,即可实现占空比的调整。
通过上述步骤,我们可以实现占空比可调的PWM波。
在实际应用中,可以根据需要进行适当的优化和改进,例如增加输入口的设置,使得用户可以通过外部按键或旋钮来实时调整占空比,从而更加灵活地控制PWM波的输出。
总结:通过合适的定时器模式、初值设置和中断服务程序编写,配合适当的IO口配置和占空比计算,我们可以在单片机中实现占空比可调的PWM波。
51系列单片机输出PWM的两种方法51系列单片机(如STC89C52、AT89C51等)是一种常用的8位微处理器,具有较高的性价比和广泛的应用领域。
PWM(Pulse Width Modulation)是一种常用的模拟信号生成技术,在很多领域中都有广泛应用,比如电机控制、LED调光等。
在51系列单片机中,有两种常用的方法可以实现PWM输出,分别是软件实现PWM和硬件实现PWM。
下面将详细介绍这两种方法及其实现方式。
1.软件实现PWM软件实现PWM是通过定时器和IO口的相互配合来产生PWM信号。
具体实现的步骤如下:步骤1:设置定时器的工作模式和计数器初值。
选择一个合适的定时器,比如定时器0,然后设置定时器工作模式和计数器初值。
定时器的工作模式选择“模式1”或“模式2”,并根据需求设置计数器初值。
步骤2:设置IO口的工作模式。
选择一个合适的IO口,比如PWM输出口(如P1.2),然后将该IO口设置为输出模式。
步骤3:编写软件控制代码。
在主循环中,通过改变IO口的电平状态来实现PWM输出。
根据定时器的计数值,可以确定PWM信号的占空比大小。
当定时器计数值小于一些阈值时,将IO口置高电平;当定时器计数值大于该阈值时,将IO口置低电平。
通过改变该阈值,可以实现不同的PWM占空比。
通过上述步骤,就可以实现软件控制的PWM输出。
需要注意的是,软件实现PWM的精度较低,同时也会占用较多的处理器时间。
2.硬件实现PWM硬件实现PWM是通过专门的PWM模块或专用的计时电路来实现PWM输出。
具体实现的步骤如下:步骤1:选择一个合适的PWM模块或计时电路。
可以选择专门的PWM模块(如PCA模块)或计时电路(如555计时芯片),根据需求选择合适的硬件模块。
步骤2:设置PWM模块或计时电路的相关参数。
根据需求设置PWM频率、占空比等参数。
步骤3:连接并配置IO口。
将PWM模块或计时电路的输出引脚连接到需要输出PWM信号的IO口,然后将该IO口设置为输出模式。
单片机中PWM技术原理与应用案例详解PWM(Pulse Width Modulation)是一种常用于控制电子设备的技术,广泛应用于单片机系统中。
PWM技术通过调整一个周期内高电平和低电平的时间比例,来实现对设备的控制。
本文章将详细介绍PWM技术的原理和应用案例。
首先,我们来了解PWM技术的基本原理。
PWM信号由高电平和低电平构成,高电平的时间称为占空比,用百分比来表示。
占空比越高,则高电平时间越长,输出的平均功率也越大。
相反,占空比越低,则高电平时间越短,输出的平均功率也越小。
PWM技术的原理是通过改变高电平和低电平的时间比例,来控制设备的输出。
以LED灯为例,当占空比为0%时,LED灯处于关闭状态;当占空比为100%时,LED灯处于全亮状态;当占空比为50%时,LED灯以一半的亮度工作。
在单片机系统中,PWM技术通常是通过定时器/计数器模块实现的。
所谓定时器,就是计算时间的设备,而计数器则是计数的设备。
定时器/计数器模块可以提供一个可编程的时钟源,并通过读取定时器的计数器值来确定时间的流逝。
使用PWM技术控制设备的步骤如下:1. 设定PWM的周期:通过设定定时器的计数器值和时钟源,来确定PWM的周期。
周期的选择取决于设备的要求和设计需求。
2. 设定PWM的占空比:通过修改定时器的计数器的初值和阈值,来设定PWM的占空比。
高电平的时间和低电平的时间由这两个值共同决定。
3. 启动定时器:启动定时器,开始产生PWM信号。
4. 反复循环:通过不断修改占空比,可以实现对设备的精确控制。
下面我们来看一个PWM技术的应用案例:温度控制。
在温度控制系统中,通过PWM技术可以精确地控制加热设备,以维持设定温度。
具体步骤如下:1. 设定温度范围和初始温度:根据实际需求,设定温度范围和初始温度。
2. 读取温度数据:使用温度传感器读取当前的温度数据。
3. 判断温度范围:将读取到的温度数据与设定的温度范围进行比较,判断当前的温度处于哪个范围。
用单片机实现频率可调的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系列单片机用户手册.宏晶科技.。