实现LED分级亮度的简便算法

发布者:omicron25最新更新时间:2012-08-25 来源: 51hei关键字:LED  分级亮度  简便算法 手机看文章 扫描二维码
随时随地手机看文章

#include"reg52.h"
unsigned char code table[]={0xfe,0xfc,0xf0,0xe0,0xc0,0x80,0x00};
void main()
{
  unsigned char i;
  while(1)
   {
     i++;
     i&=0x07;
     P1=table;
    }
}

低电平点亮LED,i=0到7;
while循环周期*8=PWM的周期
当i=0时,D0亮
当i=1时,D0,D1亮
当i=2时,D0,D1,D2亮
。。。。。。
当i=7时,D0,D1,D2,D3,D4,D5,D6,D7全亮
也就是说,在while的8个循环中,D0一直亮,D1则只有7次亮。。。。。。D7则只有1次亮

按照这个算法,只要定义一个一维表格,就可以静态现实LED的8个不同亮度,且亮度次序任意
如果定义一个二维表格,则可以动态现实LED亮度,几乎可以任意定义次序花样

 

下面来看一个完整的二维数组渐变程序
完整代码下载地址:http://www.51hei.com/f/jianb.rar

#include "reg52.h" 
unsigned char code table[37][8]=   //定义一个2维数组 
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//off 
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,//D0亮度等级1/8 
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,//D1亮度等级1/8 
0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfc,//D1亮度等级2/8 
0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xf8,//D2亮度等级1/8 
0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xf8,//D2亮度等级2/8 
0xff,0xff,0xff,0xff,0xff,0xfb,0xf9,0xf8,//D2亮度等级3/8 
0xff,0xff,0xff,0xff,0xff,0xfb,0xf9,0xf0,//D3 
0xff,0xff,0xff,0xff,0xff,0xfb,0xf1,0xf0, 
0xff,0xff,0xff,0xff,0xff,0xf3,0xf1,0xf0, 
0xff,0xff,0xff,0xff,0xf7,0xf3,0xf1,0xf0, 
0xff,0xff,0xff,0xff,0xf7,0xf3,0xf1,0xe0,//D4 
0xff,0xff,0xff,0xff,0xf7,0xf3,0xe1,0xe0, 
0xff,0xff,0xff,0xff,0xf7,0xe3,0xe1,0xe0, 
0xff,0xff,0xff,0xff,0xe7,0xe3,0xe1,0xe0, 
0xff,0xff,0xff,0xef,0xe7,0xe3,0xe1,0xe0, 
0xff,0xff,0xff,0xef,0xe7,0xe3,0xe1,0xc0,//D5 
0xff,0xff,0xff,0xef,0xe7,0xe3,0xc1,0xc0, 
0xff,0xff,0xff,0xef,0xe7,0xc3,0xc1,0xc0, 
0xff,0xff,0xff,0xef,0xc7,0xc3,0xc1,0xc0, 
0xff,0xff,0xff,0xcf,0xc7,0xc3,0xc1,0xc0, 
0xff,0xff,0xdf,0xcf,0xc7,0xc3,0xc1,0xc0, 
0xff,0xff,0xdf,0xcf,0xe7,0xe3,0xc1,0x80,//D6 
0xff,0xff,0xdf,0xcf,0xe7,0xe3,0x81,0x80, 
0xff,0xff,0xdf,0xcf,0xe7,0x83,0x81,0x80, 
0xff,0xff,0xdf,0xcf,0x87,0x83,0x81,0x80, 
0xff,0xff,0xdf,0x8f,0x87,0x83,0x81,0x80, 
0xff,0xff,0x9f,0x8f,0x87,0x83,0x81,0x80, 
0xff,0xbf,0x9f,0x8f,0x87,0x83,0x81,0x80, 
0xff,0xbf,0x9f,0x8f,0x87,0x83,0x81,0x00,//D7 
0xff,0xbf,0x9f,0x8f,0x87,0x83,0x01,0x00, 
0xff,0xbf,0x9f,0x8f,0x87,0x03,0x01,0x00, 
0xff,0xbf,0x9f,0x8f,0x07,0x03,0x01,0x00, 
0xff,0xbf,0x9f,0x0f,0x07,0x03,0x01,0x00, 
0xff,0xbf,0x1f,0x0f,0x07,0x03,0x01,0x00, 
0xff,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00, 
0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00, 
}; 

void main()         
{ 
unsigned char i; 
unsigned int j; 
unsigned int counter; 
bit flag=0; 
while(1) 
{ 
  i++; 
  i&=0x07;       //i=0到7 
  counter++; 
  if(counter==12000)     //延时对j++ 
  { 
   if(flag==0) j++;     
   else j--; 
   counter=0; 
   if(j==36 || j==0) 
   { 
    flag=!flag;     //决定正向扫描还是逆向扫描 
    i=0; 
   } 
  } 
   P1=table[j];     //扫描第i列,扫描第j行 
} 
} 

注意:用2003时,是高电平点亮LED。要对它取反。

关键字:LED  分级亮度  简便算法 引用地址:实现LED分级亮度的简便算法

上一篇:外部中断控制
下一篇:单片机驱动19264a液晶显示英文程序

推荐阅读最新更新时间:2024-03-16 13:06

北京8分钟的“冰屏”为什么不是OLED?
不管你怎么评价平昌奥运会,这一届冬奥会的是是非非都已经随着圣火的熄灭成为往事。 就让遗憾留在平昌吧,毕竟冬奥会已经进入了“北京时间”。 说到这个,平昌冬奥会闭幕式上张艺谋执导的“北京八分钟”,炫彩的光影特效和诸多高科技元素轮番登场,让世界为之惊艳。 其中最吸引眼球的当属贯穿全场的“冰屏”机器人,这块透明又多彩的屏幕引起了很多人的好奇:家里的电视屏幕是黑的,那这块透明的“冰屏”是怎么做的呢? 猜想A:冰块——既然叫“冰屏”,那么当然是用冰做的了!透明的大冰块用做屏幕刚刚好! 辟谣:亲……你想过冰块怎么显示画面么? 猜想B:超短焦投影——屏幕下边的机器人其实是个投影机,把画面投射到屏幕上。 辟谣:机器人既负责行走又要当投影
[家用电子]
LED球泡灯、路灯成本分析
目前照明市场主流产品为5-7W及9-12W球泡灯的产品,在此以7W LED 球泡灯为例,在大陆深圳地区的销售卖场我们所调查到的价格是14.98美元(台资芯片、陆资封装),先假设经销商的利润为15%(2.25美元),其结构成本为12.73美元。经过调查与了解,其中LED光源成本约37.7%,结构件占18.5%,电源占21.7%。这三块占成本比重,光源和电源成本仍有下降空间。   LED光源(芯片、封装)2011年第三季度的市场报价大约在0.92-0.45美元之间,平均值按0.68美元/每颗计算,7W产品共计需要7颗,也就是LED光源的部份为4.8美元,约占结构成本37.7%左右。结构主体的部份,包括:散热器件、连接器、球体等部件,
[电源管理]
<font color='red'>LED</font>球泡灯、路灯成本分析
驱动LED阵列的同步降压开关电源
背景 汽车照明装配供应商正在考虑用LED器件与高强度放电(HID) 照明竞争。首先,LED器件的驱动电路没有HID 灯复杂。HID灯要求高压镇流电路在HID 灯中启动一个电弧,而且在启弧后需要调整其电压输出,以维持对HID灯的恒定功率供应。从电磁兼容(EMC)的观点来看,这些高压电路易于产生噪声,进一步阻碍了这些技术在汽车领域使用。最后,LED器件的成本持续下降,使这种技术对于成本敏感的汽车市场越来越有吸引力。 一个典型的LED前照灯应用要求给LED阵列提供大约25 瓦以上的功率。因为LED元件的一个优点是效率高,所以驱动电子元件也应该提高效率,以充分发挥LED技术的优势。因此考虑采用某种开关电源 (SMPS)来实现这个目标是
[电源管理]
LED和VR技术要融合,川大智胜+利亚德:看我们的
利亚德 、川大智胜相继发布公告,双方签署“ 虚拟现实 技术创新与应用”战略合作协议,将合作研究 LED 小间距显示技术与VR技术的融合。 关于利亚德与川大智胜的合作,国内一位VR业内人士告诉记者,LED小间距显示技术在VR设备上的使用“主要解决分辨率的问题,提供更高清的图像”。 3月22日,川大智胜与利亚德签订了“虚拟现实技术创新与应用”战略合作协议,两家上市公司将就VR+LED的融合展开合作。 根据协议,双方的合作重点有三个方面,将巨幕立体互动科普体验系统推广到校园电影院线中;共同投资研发影院级“高清晰立体LED显示”;共同投资建设和运营“虚拟现实科普体验馆”。 如今虚拟现实技术有两种主流的实现手段,一种是倍受市
[嵌入式]
使用STM32、SFPGA和I.MX6ULL IO点亮LED
摘要:你点亮过多少板子的LED灯呢?有很多小伙伴要求讲一下STM32、FPGA、Liunx他们之间有什么不同。不同点很多,口说无凭,今天就来点亮一下STM32、FPGA和Liunx板子的LED灯,大家大致看一下点灯流程和点灯环境以及点灯流程,就能大概的了解一下三者的区别,可以有选择的去学习! 一、使用STM32点亮LED灯 STM32从字面上来理解ST是意法半导体,M是Microelectronics的缩写,32 表示32位,合起来理解,STM32就是指ST公司开发的32位微控制器。在如今的32 位控制器当中,STM32可以说是最璀璨的新星,它受宠若娇,大受工程师和市场的青睐,无芯能出其右。首先使用STM32电亮一个led灯,
[单片机]
使用STM32、SFPGA和I.MX6ULL IO点亮<font color='red'>LED</font>灯
基于51单片机的单个LED灯的设计
本设计旨在完成精确控制1个LED的亮灭状态而设计的,代码仅供参考。 代码: #include reg52.h #include intrins.h sbit LED=P1^0; void Delay1000ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 8; j = 1; k = 243; do { do { while (--k); } while (--j); } while (--i); } void main() { while(1) { LED
[单片机]
基于51单片机的单个<font color='red'>LED</font>灯的设计
白光LED升压转换器和电荷泵的比较
目前,便携式产品广泛使用彩色LCD显示器,用白光LED作为背光。为白光led供电需要特别的转换器,需要提供LED正向导通的高压和恒流驱动,减小电池电压变化时所引起的亮度变化以及不同LED之间的亮度不匹配。为了达到这个目的,有两种主流的转换器:基于电感的升压转换器和基于电容的电荷泵转换器。这两种转换器各具优缺点,需要根据系统的具体要求决定选用哪种架构。 本文以MAX1561升压转换器和MAX1573电荷泵为例,对两种转换架构进行比较。文中评估了每种转换器的优点,所得出的结论有助于系统设计者选择正确的方案。MAX1561和MAX1573几乎是在同一时期、在同一工厂、采用相同工艺设计的,开关频率均为1MHz,适合进行对比。
[电源管理]
白光<font color='red'>LED</font>升压转换器和电荷泵的比较
日本LED封装供给吃紧 中国迎产业发展契机
   据悉,日本LED产业方面,由于制程以化学反应为主,不像半导厂商必须经过多道制程,且大部分厂商离震区较远、防震要求高,地震对其影响程度较低。      日本LED两大巨头无碍封装厂商供给吃紧     据了解,日本地震对于LED产业影响较小,小部分位于关东地区的厂商,其厂房与设备也大多安然无恙,不过受到福岛核电厂停止运作,加上海啸造成部分地区交通中断影响,某些零组件与材料出现供给不足现象。     生产厂商方面,日本两大LED龙头,日亚化和丰田合成,工厂位置都在关西地区,地震并未对它们造成太大的影响。这两家公司在LED晶粒产能占日本80%左右。另一生产厂商昭和电工,由于该公司有一部分的生产线位于千叶县,在电力吃紧的
[电源管理]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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