PWM控制LED源代码

发布者:静心静气最新更新时间:2022-12-27 来源: zhihu关键字:PWM控制  LED  ATTiny13 手机看文章 扫描二维码
随时随地手机看文章

// Cpu ATTiny13

// 频率: 内部9.6000Mhz 不分频

// winavr gcc 优化级别O0

#include


#define nop() __asm__ __volatile__("nop") //空语句


unsigned char PWM[]={0x20,0x40,0x60,0x80,0xA0,0xC0,0xE0,0xFF};

unsigned char PWMON;

unsigned char PWMVal;


//IO引脚初始化 

void port_init(void)

{

PORTB = 0x08; //PB3接按键设置为输出上拉

DDRB = 0x37; //PB0为PWM输出 上电置0

}


//Timer0初始化

//快速PWM模式 频率37.500KHz

void timer0_init(void)

{

OCR0A = 0x00;

TCNT0 = 0x01; //设计数

TCCR0A = 0x03; //设置Timer0为快速PWM模式

TCCR0B = 0x01; //启动Timer0

}


//延时N毫秒

void delay_ms(void)

{

unsigned char TempCycA;

unsigned char TempCycB;


for (TempCycA=0; TempCycA<10; TempCycA++)

for (TempCycB=0; TempCycB<90; TempCycB++)

nop();

}


//主函数

int main(void)

{

unsigned int tempval=0;

unsigned int keytime=0;


port_init();

timer0_init();


PWMON = 1; //初始为PWM开启

PWMVal = 0; //第一档

OCR0A = PWM[PWMVal]; //更改占空比

TCCR0A = 0x83; //开启PWM


while(1)

{

if (!(PINB&0x08))

{

keytime = 0;

for (tempval=0; tempval<4000; tempval++)

{

if (!(PINB&0x08)) //键采样、防抖

{

keytime++;

delay_ms();

}

else

break;

}

}


if (PWMON) //PWM开启的状态下

{

if ((keytime>100)&&(keytime<1000)) //短按100-1000ms则调节

{

PWMVal++;

if (PWMVal>7) //循环

PWMVal = 0;

keytime = 0;

OCR0A = PWM[PWMVal]; //更改占空比

}

if (keytime>2999) //长按3秒则关

{

PWMON = 0;

keytime = 0;

TCCR0A = 0x03; //关闭PWM

delay_ms(); //延时

}

}

else //PWM关闭的状态下

{

if (keytime>2999) //长按3秒则开

{

PWMON = 1;

keytime = 0;

TCCR0A = 0x83; //开启PWM

}

}

}

}


关键字:PWM控制  LED  ATTiny13 引用地址:PWM控制LED源代码

上一篇:如何使用Arduino构建数字键盘安全门锁
下一篇:基于微控制器和无线通信模块实现无线传感器网络节点的设计

推荐阅读最新更新时间:2024-11-16 20:00

怎样设计LED线性恒流驱动电路
LED是冷光源,工作电压低、光效高,被认为是21世纪照明的新光源。然而,目前LED照明设备投有得到普及应用的关键问题有两个,一是价格偏高;二是控制电路不稳定导致LED寿命大大降低。据统计,目前LED白光照明灯具出现的失效故障,70%左右是电源问题,20%左右是线路和结构问题,只有不到10%是LED单管的本身质量问题,所以电源管理方案的选择对于节能而言也举足轻重,这就要求在驱动电路设计中选择最合适的AC-DC驱动器。因此可靠、低成本的控制电路是LED照明推广普及的前提。   由LED的电学特性可知,LED的平均正向电流随着正向电压的增大呈现大幅度的线性增长,LED在正向导通后其正向电压的细小变动将引起LED电流的很大变化,且
[电源管理]
怎样设计<font color='red'>LED</font>线性恒流驱动电路
三星电子宣布全面退出LED业务,聚焦功率半导体和Micro LED领域
10 月 21 日消息,据央视财经报道,由于集团整体业绩未达预期,韩国三星电子最近启动了业务架构的调整,其中半导体部门决定全面退出发光二极管(LED)业务。这一决定标志着继 2020 年 LG 电子退出后,韩国两大电子企业都退出 LED 业务。此前,三星电子主要生产和销售电视、智能手机闪光灯等用途的 LED 产品。 三星电子在 2012 年通过合并三星 LED 公司正式涉足 LED 照明领域,但近年来该业务的表现持续低迷,在国际市场的竞争力也逐渐减弱。尽管每年销售额仍可达约 104 亿元人民币,但相较于三星电子的整体营收,占比微不足道。公司认为,难以从这一业务中获取预期的利润,因此决定将其剥离,集中资源于功率半导体和 Micr
[电源管理]
LED设备国产化:外延有机会 封装待完善
  市场研究机构近期将2011年全球高亮度LED产值预估由2011年初106亿美元下修至90亿美元(年增率仅8%)。不过,这并未影响中国业界对LED的热情。工业和信息化部最新统计数据显示,2011年1~7月中国LED产量达到491.6亿只,比去年同期增长了31%。   尽管背光市场受阻,但照明市场仍被业界看好。DisplaySearch最新报告指出,照明将逐渐成为LED主要应用,预估2011年使用量将较2010年成长20%,2014年LED背光和照明总营收将达127亿美元。   MOCVD国产化路漫漫   由于技术含量高,MOCVD设备站在了LED行业价值链的顶端。在LED产业链众多设备中,唯独只有MOCVD设备单价超过1
[电源管理]
LED开关电源五大实用保护电路图
  LED开关电源过电流保护电路、LED开关电源过电压保护电路、LED开关电源软启动保护电路、LED开关电源过热保护电路……行内人士贡献五大实用电路图,同你做好LED开关电源的保护设计。   LED开关电源过电流保护电路   在直流LED开关电源电路中,为了保护调整管在电路短路、电流增大时不被烧毁。其基本方法是,当输出电流超过某一值时,调整管处于反向偏置状态,从而截止,自动切断电路电流。如图1所示,过电流保护电路由三极管BG2 和分压电阻R4、R5组成。电路正常工作时,通过R4与R5的压作用,使得BG2 的基极电位比发射极电位高,发射结承受反向电压。于是BG2 处于截止状态(相当于开路),对稳压电路没有影响。当电路短路时,输出
[电源管理]
<font color='red'>LED</font>开关电源五大实用保护电路图
采用市电供电的LED驱动器
LED的特点是工作电压低,即使是白光LED的工作电压也不会高于4V,相对于有效值220V的交流市电来说,就需要降压或限流。降压是通过工频变压器或高频逆变器将市电降低到与LED工作电压相匹配的电压等级,限流是通过电路的限流特性使得流过LED的电流达到合适的数值。前者是电压匹配,后者是电流匹配。就LED自身应用特性和有利于LED使用寿命而言,无论是电压匹配还是电流匹配最终均需要对电流进行控制,所不同的是电压匹配是将施加到LED的电压控制在LED工作电压数值上,这需要根据LED工作结温进行调节;电流控制方式则只控制流过LED电流值,无须考虑LED的串联数。 实际应用中经常需要多只LED串联应用,串联LED的总工作电压越接近电源电压,驱动器
[电源管理]
采用市电供电的<font color='red'>LED</font>驱动器
手把手教你学51单片机:点亮你的LED
2.1 单片机内部资源 三大资源: Flash:程序存储空间 RAM:数据存储空间 SFR:特殊功能寄存器 2.2单片机最小系统 三要素:电源、晶振、复位电路 2.3LED小灯 限流:5~20mA(限流电阻阻值计算) 自身压降2V 2.4程序代码编写 2.4.1特殊功能寄存器和位定义 eg:sfr P0=0x80; //sfr 关键字,定义一个单片机特殊功能寄存器 sbit LED=P0^0;//为P0^0口赋名LED 注意:写sfr必须根据手册中的寄存器的地址(Add)写,写sbit的时候可以直接将一个其中某一位(eg:P0^0、P0^1…)取出来写。 2.4.2 新
[单片机]
为拍照手机选择合适的闪光灯驱动方案
  如今拍照功能已经是手机的标准配置。中国市场上以30万跟130万像素为主,并有往更高像素发展的趋势。例如,最近有不少机型提供了200万或者320万像素配置,而且还能拍摄视频短片,以及使用可插拔的存储卡。在某些产品中,甚至还集成了自动对焦和其它相机功能,也有制造商已经在研发600万或700万像素的可拍照手机。   可拍照手机有取代传统中低端数码相机的趋势,并且消费者期望能够在低光照亮度的条件下拍摄高质量的照片,因而采用Flash LED作为闪光灯是提高数码相机性能的重要措施。Flash LED的光学特性决定它既可以作为拍照的闪光应用,也可以用于视频拍摄时补光,甚至是用于照明的电筒应用。因此Flash LED在手机中的应用将会越来
[手机便携]
为拍照手机选择合适的闪光灯驱动方案
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved