LED彩色护栏管程序---1个IO口搞定!

发布者:Harmonious222最新更新时间:2015-07-20 来源: 51hei关键字:LED  彩色护栏管  IO口 手机看文章 扫描二维码
随时随地手机看文章
/*************************************
MCU:STC12C56      晶振:12MHZ
*************************************/
#include
#include
#define uchar unsigned char
#define uint  unsigned int

#define RGB_count  20
#define RGB_speed  30

sbit DIN=P1^2;
/*************0码*******************/
void DIN_bit_0()
{
 uchar i;
 DIN=1;
 for(i=1;i>0;i--);    //低速模式   1+3+4*3+1
 _nop_();
 DIN=0;        //1+3+4*7
 for(i=3;i>0;i--); 
}
/*************1码*******************/
void DIN_bit_1()
{
 uchar i;
 DIN=1;       //1+3+4*7+1
 for(i=3;i>0;i--);
 _nop_();
 DIN=0;
 for(i=1;i>0;i--);   //1+3+4*3
  
}
/*************reset码*******************/
void reset()
{
 uint i;
 DIN=0;
 for(i=250;i>0;i--);   
}
/*************数据传输******************/
void send_dat(uchar dat)  //高位先传
{
    uchar i;
    for(i=8;i>0;i--)
    {
        if(dat & 0x80)  DIN_bit_1();
            else        DIN_bit_0();
        dat <<=1;
    }
}
/***************延时******************/
void delay(uchar t)
{
 unsigned long j;
    while(t--)   for(j=0;j<1000;j++);
}
/*************主程序******************/
void main()
{
 uchar i,n,num,t;
 while(1)
 {
 /*************R渐亮*******************/
  for(i=0;i<255;i++)
  {
   for(n=RGB_count;n>0;n--)
   {
    send_dat(i);
    send_dat(0);
    send_dat(0);
   }
   reset();
   delay(1);
  }
  /*************R渐灭*******************/
  for(i=255;i>0;i++)
  {
   for(n=RGB_count;n>0;n--)
   {
    send_dat(i);
    send_dat(0);
    send_dat(0);
   }
   reset();
   delay(1);
  }
  /*************G渐亮*******************/
  for(i=0;i<255;i++)
  {
   for(n=RGB_count;n>0;n--)
   {
    send_dat(0);
    send_dat(i);
    send_dat(0);
   }
   reset();
   delay(1);
  }
  /*************G渐灭*******************/
  for(i=255;i>0;i++)
  {
   for(n=RGB_count;n>0;n--)
   {
    send_dat(0);
    send_dat(i);
    send_dat(0);
   }
   reset();
   delay(1);
  }
  /*************B渐亮*******************/
  for(i=0;i<255;i++)
  {
   for(n=RGB_count;n>0;n--)
   {
    send_dat(0);
    send_dat(0);
    send_dat(i);
   }
   reset();
   delay(1);
  }
  /*************B渐灭*******************/
  for(i=255;i>0;i++)
  {
   for(n=RGB_count;n>0;n--)
   {
    send_dat(0);
    send_dat(0);
    send_dat(i);
   }
   reset();
   delay(1);
  }
  /*************RG渐亮*******************/
  for(i=0;i<255;i++)
  {
   for(n=RGB_count;n>0;n--)
   {
    send_dat(i);
    send_dat(i);
    send_dat(0);
   }
   reset();
   delay(1);
  }
  /*************RG渐灭*******************/
  for(i=255;i>0;i++)
  {
   for(n=RGB_count;n>0;n--)
   {
    send_dat(i);
    send_dat(i);
    send_dat(0);
   }
   reset();
   delay(1);
  }
  /*************GB渐亮*******************/
  for(i=0;i<255;i++)
  {
   for(n=RGB_count;n>0;n--)
   {
    send_dat(0);
    send_dat(i);
    send_dat(i);
   }
   reset();
   delay(1);
  }
  /*************GB渐灭*******************/
  for(i=255;i>0;i++)
  {
   for(n=RGB_count;n>0;n--)
   {
    send_dat(0);
    send_dat(i);
    send_dat(i);
   }
   reset();
   delay(1);
  }
  /*************RB渐亮*******************/
  for(i=0;i<255;i++)
  {
   for(n=RGB_count;n>0;n--)
   {
    send_dat(i);
    send_dat(0);
    send_dat(i);
   }
   reset();
   delay(1);
  }
  /*************RB渐灭*******************/
  for(i=255;i>0;i++)
  {
   for(n=RGB_count;n>0;n--)
   {
    send_dat(i);
    send_dat(0);
    send_dat(i);
   }
   reset();
   delay(1);
  }
  /*************RGB全灭*******************/
  for(num=RGB_count;num>0;num--)
        {
            send_dat(0);
            send_dat(0);
            send_dat(0);
        }
        reset();
  /*************B跑马灯增加*******************/
  for(i=0;i0;t--)  delay(1);
        }
  /*************B跑马灯减少*******************/
        for(i=RGB_count;i>0;i--) 
        {
            for(num=0;num0;t--)  delay(1);
   /*************RGB全灭*******************/
   for(num=RGB_count;num>0;num--)
            {
                send_dat(0);
                send_dat(0);
                send_dat(0);
            }
            reset();
  }
  /*************G跑马灯增加*******************/
  for(i=0;i0;t--)  delay(1);
        }
        /*************G跑马灯减少*******************/           
        for(i=RGB_count;i>0;i--) 
        {
            for(num=0;num0;t--)  delay(1);
   /*************RGB全灭*******************/
   for(num=RGB_count;num>0;num--)
            {
                send_dat(0);
                send_dat(0);
                send_dat(0);
            }
            reset();
  }
  /*************R跑马灯增加*******************/
  for(i=0;i0;t--)  delay(1);
        }
  /*************R跑马灯减少*******************/
        for(i=RGB_count;i>0;i--)
        {
            for(num=0;num0;t--)  delay(1);
    /*************RGB全灭*******************/
            for(num=RGB_count;num>0;num--)
            {
                send_dat(0);
                send_dat(0);
                send_dat(0);
            }
            reset();
        }
  /*************RG跑马灯增加*******************/
  for(i=0;i0;t--)  delay(1);
        }
        /*************RG跑马灯减少*******************/           
        for(i=RGB_count;i>0;i--) 
        {
            for(num=0;num0;t--)  delay(1);
   /*************RGB全灭*******************/
   for(num=RGB_count;num>0;num--)
            {
                send_dat(0);
                send_dat(0);
                send_dat(0);
            }
            reset();
  }
  /*************GB跑马灯增加*******************/
  for(i=0;i0;t--)  delay(1);
        }
        /*************GB跑马灯减少*******************/           
        for(i=RGB_count;i>0;i--) 
        {
            for(num=0;num0;t--)  delay(1);
   /*************RGB全灭*******************/
   for(num=RGB_count;num>0;num--)
            {
                send_dat(0);
                send_dat(0);
                send_dat(0);
            }
            reset();
  }
  /*************RB跑马灯增加*******************/
  for(i=0;i0;t--)  delay(1);
        }
        /*************RB跑马灯减少*******************/           
        for(i=RGB_count;i>0;i--) 
        {
            for(num=0;num0;t--)  delay(1);
   /*************RGB全灭*******************/
   for(num=RGB_count;num>0;num--)
            {
                send_dat(0);
                send_dat(0);
                send_dat(0);
            }
            reset();
  }
     /*************RGB跑马灯增加*******************/
  for(i=0;i0;t--)  delay(1);
        }
  /*************RGB跑马灯减少*******************/
        for(i=RGB_count;i>0;i--)
        {
            for(num=0;num0;t--)  delay(1);
   /*************RGB全灭*******************/
            for(num=RGB_count;num>0;num--)
            {
                send_dat(0);
                send_dat(0);
                send_dat(0);
            }
            reset();
        }  
 }
}
关键字:LED  彩色护栏管  IO口 引用地址:LED彩色护栏管程序---1个IO口搞定!

上一篇:最牛的LED遥控控制器---调整无闪烁
下一篇:写给要接触单片机和刚接触单片机的人

推荐阅读最新更新时间:2024-03-16 14:25

LED照明灯具要战胜高昂成本至少需3到5年
  在低碳技术得到大力推广的今天,LED照明已越来越多地运用到建筑、景观和市政工程等领域,与普通家庭之所以有这么大的距离究其原因,是因为LED的核心技术掌握在外国人手中,国内LED产品价格居高不下。   国内LED厂家主要瞄准建筑景观照明、大屏幕显示、交通信号灯等市场领域,针对普通百姓的产品开发不足。国内技术力量的有限所以很多零件都要依靠进口,所以种种原因叠加LED照明优势虽多,但是一直以来推广仍然面临很大的压力,始终无法攻破成本这道难关,高昂的价格让普通老百姓望而却步。那么LED灯何时能攻破价格难关走进千家万户?   LED灯拥有“比节能灯还节电80%”的良好性能,1个家用的5瓦LED球形灯泡,可以替代1只11瓦的节能灯
[电源管理]
清华大学石墨烯新突破:几乎会发出所有光的LED
    实现可调节颜色LED的关键材料是石墨烯,从太阳能电池到半导体,石墨烯作为新兴材料都取得了一定的成绩,但此前用这种材料制作的LED灯并未实现颜色可调节,直到此次科研人员将之变为现实。     现有的LED器件在传统显示或照明技术中,通过调整固定的红、绿、蓝三种基色发光单元的亮度来表示颜色或者合成白光。此次具有突破性的研究成果在获得颜色保真度的同时,还能显著减少显示器件内的发光单元数目,从而极大地优化电路进而降低功耗。     另据清华大学新闻网近日报道,这种新型LED突破了现有显示器件的颜色合成方式,有望对显示屏、照明灯具和通讯技术产生革命性影响。由于光的颜色会随特定化学物质而改变,这类器件还可能用于制备特殊的传
[家用电子]
高功率白光LED散热问题的解决方案
今天,白光LED仍旧存在着发光均匀性不佳、封闭材料的寿命不长等问题,无法发挥白光led被期待的应用优点。但就需求层面来看,不仅一般的照明用途,随着手机、LCD TV、汽车、医疗等的广泛应用,使得最合适开发稳定白光LED的技术研究成果就广泛的被关注。 改善白光LED的发光效率,目前有两大方向,一是提高LED芯片的面积,藉此增加发光量。二是把几个小型芯片一起封装在同一个模块下。 藉由提高芯片面积来增加发光量 虽然,将LED芯片的面积予以大型化,藉此能够获得高得多的亮度,但因过大的面积,在应用过程和结果上也会出现适得其反的现象。所以,针对这样的问题,部分LED业者就根据电极构造的改进和覆晶的构造,在芯片表面进行改良
[电源管理]
基于LM3402的新型LED无影灯控制系统设计
  无影灯是用来照明外科手术部位不可缺少的重要设备,要求能以最佳地观察处于切口和体腔中不同深度、大小、对比度低的物体。因此,除需要“无影”以外,还需要光照度均匀、光质好,能够很好地区分血液与人体其他组织、脏器的色差。此外,无影灯还须能长时间地持续工作,而不散发出过量的热,因为过热会使手术者不适,也会使处在外科手术区域中的组织干燥 。   目前手术灯一般都采用环形节能灯或卤素灯,但随着发光二极管LED技术的不断发展,特别是高亮度白光LED的发展,LED无影灯彻底解决了环形节能灯自身存在的先天缺陷,是环形节能灯的升级换代产品。目前,LED无影灯的优越性逐渐被显微镜使用者所了解和接受,使用成本亦较环形节能灯低,减少了每1~2 个月就需更
[电源管理]
基于LM3402的新型<font color='red'>LED</font>无影灯控制系统设计
欧司朗“点亮”Rinspeed最新自动驾驶概念车
全球照明与科技领导者 欧司朗 光电半导体携手林斯比得汽车公司(Rinspeed),成为Rinspeed Snap 自动驾驶 概念车的独家照明合作伙伴,这款概念车将于 2018 年美国拉斯维加斯国际消费电子展 (CES) 正式亮相。作为全球汽车照明的翘楚,欧司朗光电半导体是助力Snap团队达成目标的必然之选,运用先进技术和下一代照明功能重新定义驾驶体验。   来自瑞士的Rinspeed公司向来以富以远见的创意和前卫的设计著称,Snap概念车即以由自动驾驶和城市化定义的未来趋势为设计灵感,并在这款概念车上采用了多项欧司朗  LED 、激光和光电感应解决方案,产品覆盖UV、可见光和红外波段。   随着自动驾驶时代的到来和日渐加快的城市化
[嵌入式]
LED彩墙屏幕应用优势与存在的问题
LED 是一种能够将 电能 转化为可见光的 半导体 ,由于具有容易控制、低压直流 驱动 、组合后色彩表现丰富、使用寿命长等优点,广泛应用于城市亮化工程、大屏幕 显示 系统中。LED彩墙屏幕是LED技术应用到室外装饰照明领域的新产品,其工作原理是通过驱动和控制两部分组成,以小型LED方形灯作为发 光显示 单元,通过多个方形的 LED灯 像素单元按照一定的矩阵排列而形成 LED屏 幕或LED广告广告牌,外加连接视频 控制器 及 计算机 而构成。 由于其能根据旋律、节奏而产生明暗及色彩的变化并能形成各种动态画面效果,可烘托出一种梦幻迷离、眩目神秘、华丽斑斓的背景灯光,应和了高档的DISCO酒吧、歌舞厅等娱乐场所对灯光背景的特
[电源管理]
提高LED电子显示屏光效和降低能量消耗的方法
一、 LED 电子显示屏光效的定义:   光源发出的光通量除以光源所消耗的功率。它是衡量光源节能的重要指标。在发光层产生的光子的一部分或在 LED芯片 内被吸收,或在LED芯片内不停地反射,出不了LED芯片。因此,外部量子效率比内部量子效率要低。发光效率为100lm/W的白色LED,其输入电力只有32%作为光能输出到了外部。剩余的68%转变为热能。    二、如何提高LED电子显示屏光效,降低成本问题:   1、多芯片封装造成良率下降与不易达到光的一致性。   2、光色的一致性,如何把光做到一致性是非常困难,也会使成本增加。   3、高功率 LED封装 的信赖性越高,原材料也相对越贵,使得成本不易下降。   4、LED应该要符
[电源管理]
泰科电子推出全新LED连接器
  近日,泰科电子宣布推出全新线对板插头连接器和板对板连接器,进一步丰富了无极性插片及插座连接器系列。该连接器专为连接覆铝印刷电路板而设计,主要用于照明控制及LED照明模块等应用,使其组装更快捷、更简便。   全新插头连接器采用可支持18-22AWG( 0.3至0.9平方毫米 )多股线径,材料采用压接型镀锡铜端子和具有94V-0阻燃值热塑外壳。该插头连接器与板座连接器配合使用并可提供主动锁止功能,确保安全连接。   泰科电子产品经理Alexander Hunt III 表示:“随着LED照明应用的持续高速发展,制造商致力于不断研发安装与维护成本更低的照明系统解决方案。此次推出的无极性插片及插座连接器增加了线对板功能,为客户
[电源管理]
泰科电子推出全新<font color='red'>LED</font>连接器
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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