设为主页  加入收藏
 
·I2S数字功放IC/内置DSP音频算法功放芯片  ·马达驱动IC  ·2.1声道单芯片D类功放IC  ·内置DC/DC升压模块的D类功放IC  ·锂电充电管理IC/快充IC  ·无线遥控方案
当前位置:首页->技术分享
PWM呼吸灯原理及程序分享
文章来源:永阜康科技 更新时间:2020/10/16 11:04:00
在线咨询:
给我发消息
小鄢 2850985542
给我发消息
姚红霞 3003214837
给我发消息
张顺平 3003262363
13713728695
 
PWM

PulseWidthModulation脉冲宽度调制,简称PWM。

PWM(脉冲宽度调制)对模拟信号电平进行数字编码的方法,计算机只能输出0或5V的数字电压值而不能输出模拟电压,而我们如果想获得一个模拟电压值,则需通过使用高分辨率计数器,改变方波的占空比来对一个模拟信号的电平进行编码。

仍输出数字信号,因为满幅值的直流供电只有5V(1)和0V(0)两种。电压是以一种连接(1)或断开(0)的重复脉冲序列被夹到模拟负载上去的,连接即是直流供电输出,断开即是直流供电断开。通过对连接和断开时间的控制,只要带宽足够,可以输出任意不大于最大电压值的模拟电压。

51单片机的Timer

用的单片机是STC89C52,其内部有3个16位Timer,分别为T/C0,T/C1,T/C2,通过配置相关寄存器即可实现Timer的功能控制。

控制PWM需要用到定时器来生成不同占空比的波形,采用定时器中断的方式。

相关寄存器:

1.IE寄存器

2. TCON寄存器

3. TMOD寄存器

控制Timer0/1的工作方式

4. Timer0/1计数寄存器

TL0

TL1

TH0

TH1

当定时开启后,TL0(TL1)自动跟随机器周期加一。当TL0(TL1)满了后,自动清零同时向TH0(TH1)进一位,不需要手动操作。

而当TL0(TL1)和TH0(TH1)都满了以后,此时如果定时中断和总中断都已经打开,那么就会发生溢出中断,同时这两个寄存器清零。

运用PWM完成呼吸灯硬件电路

程序设计:

unsigned char PWM_COUNT; //计数

unsigned int HUXI_COUNT; //占空比更新时间

unsigned char PWM_VLAUE; //占空比比对值

bit direc_flag; //占空比更新方向

void timer0_init()

{ TMOD=0x02; //模式设置,00010000,定时器0,工作于模式2(M1=1,M0=0)

TH0=0x47; //定时器溢出值设置,每隔200us发起一次中断。

TL0=0X47; TR0=1; //定时器0开始计时

ET0=1; //开定时器0中断

EA=1; //开总中断

PWM_COUNT =0; }

void time0() interrupt 1

{ PWM_COUNT++; HUXI_COUNT++;

if(PWM_COUNT == PWM_VLAUE) //判断是否到了点亮LED的时候

LED = 1; //点亮LED

if(PWM_COUNT == 10) //当前周期结束

{ LED = 0; //熄灭LED

PWM_COUNT = 0; //重新计时 }

if((HUXI_COUNT == 600) && (direc_flag == 0)) { //占空比增加10%

HUXI_COUNT = 0;

PWM_VLAUE++; if(PWM_VLAUE == 9) //占空比更改方向

direc_flag = 1;

}

if((HUXI_COUNT == 600) && (direc_flag == 1))

{ //占空比减少10%

HUXI_COUNT = 0;

PWM_VLAUE--;

if(PWM_VLAUE == 1) //占空比更改方向

direc_flag = 0;

}

}

void main()

{ HUXI_COUNT = 0;

PWM_COUNT = 0;

PWM_VLAUE = 5;

direc_flag = 0;

LED = 1; //默认LED熄灭

timer0_init(); //定时器0初始化

while(1);

}

 
 
 
    您可能对以下产品感兴趣  
产品型号 功能介绍 兼容型号 封装形式 工作电压 备注
HTR3236 HTR3236是一款36路LED PWM驱动器,PWM频率可固定为3kHz或22kHz。每一路最大输出电流可通过外置电阻REXT调节,最大38mA,并 可独立控制4档可选。每一路可通过I2C单独控制256级细腻亮度调节。 IS31FL3236/SN3218 QFN-44 2.5V-5.5V 36路LED PWM驱动器
HTR3218 HTR3218是一款18路LED PWM驱动器,PWM频率可固定为3kHz或22kHz。每一路最大输出电流可通过外置电阻REXT调节,最大38mA,并可独立控制4档可选。每一路可通过I2C单独控制256级细腻亮度调节。 IS31FL3218/SN3218 QFN-24 2.5V-5.5V 18路LED PWM驱动器
 
 
    相关产品  
A3992/HR3992(DMOS全桥PWM串行控制两相步进电机驱动IC)
DRV8833/HR8833( 2A低电压双路刷式直流或单路双极步进PWM绕组电流调节/限制电机驱动器IC)
APA2068(PWM脉宽调制/模拟音量控制/直流音量控制2.6W双声道AB类音频功放IC)
 
 
·蓝牙音箱的音频功放/升压/充电管
·单节锂电内置升压音频功放IC选型
·HT7179 12V升24V内置
·5V USB输入、三节锂电升压型
·网络主播声卡专用耳机放大IC-H
 
M12269 HT366 ACM8629 HT338 

业务洽谈:手机:13713728695(微信同号)   QQ:3003207580  EMAIL:panbo@szczkjgs.com   联系人:潘波

地址:深圳市宝安西乡航城大道航城创新创业园A5栋307/309

版权所有:深圳市永阜康科技有限公司  备案号:粤ICP备17113496号