精华内容
下载资源
问答
  • 彩灯特效 html+css
    千次阅读 多人点赞
    2021-03-06 15:58:34

    效果:

    在这里插入图片描述

    实现:

    1. 添加标签,可以看出一个 li 就是一个灯泡,可以多点,保证设置大小后整体能大过浏览器默认可视区宽度。

     <ul class="container">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>      
        </ul>
    

    2. 设置底层盒子 .container的基本样式:

    .container{
                margin-top: 10px;
                width: 100%;
                height: 120px;
                white-space: nowrap;
                overflow: hidden;
            }
    

    white-space: nowrap; 子元素 li 不换行,会在在同一行上继续排列。
    overflow: hidden; 溢出隐藏。

    3.设置 li 灯泡的样式:

    .container li{
                display: inline-block;
                margin-top: 30px;
                margin-right: 50px;
                width: 15px;
                height: 30px;
                border-radius: 50%;
                position: relative;
            }
    

    display: inline-block; 换为行内块元素。
    border-radius: 50%; 角弧度。

    4. 用双伪类设置灯帽:

    .container li::after{
                content: '';
                position: absolute;
                top: -5px;
                left: 50%;
                transform: translateX(-50%);
                width: 20px;
                height: 12px;
                background-color: rgb(27, 27, 27);
                box-shadow: inset 0 0 3px rgb(129, 129, 129);
                border-radius: 10px;
            }
    

    left: 50%;
    transform: translateX(-50%); 水平居中
    box-shadow: inset 0 0 3px rgb(129, 129, 129); 内阴影

    5. 用双伪类设置电线:

    .container li::before{
                content: '';
                position: absolute;
                top: -23px;
                left: 15px;
                width: 55px;
                height: 30px;
                border-bottom: 3px solid  rgb(61, 61, 61);
                border-radius: 50%;
            }
    

    border-bottom: 3px solid rgb(61, 61, 61);
    border-radius: 50%; 这样边框可以呈现月牙形状。

    6. 设置 4 个动画效果,分别显示不同的颜色闪烁:

     @keyframes lan{
                0%,100%{
                    background-color: rgba(4, 255, 242, 0.5);
                }
                50%{
                    background-color: rgb(4, 255, 242);
                    box-shadow: 0 0 10px rgb(4, 255, 242),
                    0 0 30px rgb(4, 255, 242),
                    0 0 50px rgb(4, 255, 242);              
                }
            }
            @keyframes huang{
                0%,100%{
                    background-color: rgba(251, 255, 4,.5);
                }
                50%{
                    background-color: rgb(251, 255, 4);
                    box-shadow: 0 0 10px rgb(251, 255, 4),
                    0 0 12px rgb(251, 255, 4),
                    0 0 30px rgb(251, 255, 4);              
                }
            }
            @keyframes lv{
                0%,100%{
                    background-color: rgba(33, 255, 4,.5);
                }
                50%{
                    background-color: rgb(33, 255, 4);
                    box-shadow: 0 0 10px rgb(33, 255, 4),
                    0 0 12px rgb(33, 255, 4),
                    0 0 30px rgb(33, 255, 4);              
                }
            }
            @keyframes zhi{
                0%,100%{
                    background-color:  rgba(255, 4, 255,.5);
                }
                50%{
                    background-color: rgb(255, 4, 255);
                    box-shadow: 0 0 10px  rgb(255, 4, 255),
                    0 0 25px  rgb(255, 4, 255),
                    0 0 40px  rgb(255, 4, 255);              
                }
            }
    

    box-shadow: 阴影,添加了它就相当于发光。

    7. 给不同位置的 li 添加动画属性:

     .container li:nth-of-type(2n+1){
               animation: lan 2s  infinite;
            }.container li:nth-child(2n+2){
                animation: huang 2.2s infinite;
            }.container li:nth-child(3n+3){
                animation: zhi 1.8s infinite;
            }
           .container li:nth-child(4n+4){
            animation: lv 2.8s infinite;
           }
    

    完整代码:

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            *{
                margin: 0;
                padding: 0;
                box-sizing: border-box;
            }
            body{
                background-color: rgb(0, 0, 0);
            }
            .container{
                margin-top: 10px;
                width: 100%;
                height: 120px;
                white-space: nowrap;
                overflow: hidden;
            }
            .container li{
                display: inline-block;
                margin-top: 30px;
                margin-right: 50px;
                width: 15px;
                height: 30px;
                border-radius: 50%;
                position: relative;
            }
            .container li::after{
                content: '';
                position: absolute;
                top: -5px;
                left: 50%;
                transform: translateX(-50%);
                width: 20px;
                height: 12px;
                background-color: rgb(27, 27, 27);
                box-shadow: inset 0 0 3px rgb(129, 129, 129);
                border-radius: 10px;
    
            }
            .container li::before{
                content: '';
                position: absolute;
                top: -23px;
                left: 15px;
                width: 55px;
                height: 30px;
                border-bottom: 3px solid  rgb(61, 61, 61);
                border-radius: 50%;
            }
            .container li:nth-of-type(2n+1){
               animation: lan 2s  infinite;
            }.container li:nth-child(2n+2){
                animation: huang 2.2s infinite;
            }.container li:nth-child(3n+3){
                animation: zhi 1.8s infinite;
            }
           .container li:nth-child(4n+4){
            animation: lv 2.8s infinite;
           }
    
            @keyframes lan{
                0%,100%{
                    background-color: rgba(4, 255, 242, 0.5);
                }
                50%{
                    background-color: rgb(4, 255, 242);
                    box-shadow: 0 0 10px rgb(4, 255, 242),
                    0 0 30px rgb(4, 255, 242),
                    0 0 50px rgb(4, 255, 242);              
                }
            }
            @keyframes huang{
                0%,100%{
                    background-color: rgba(251, 255, 4,.5);
                }
                50%{
                    background-color: rgb(251, 255, 4);
                    box-shadow: 0 0 10px rgb(251, 255, 4),
                    0 0 12px rgb(251, 255, 4),
                    0 0 30px rgb(251, 255, 4);              
                }
            }
            @keyframes lv{
                0%,100%{
                    background-color: rgba(33, 255, 4,.5);
                }
                50%{
                    background-color: rgb(33, 255, 4);
                    box-shadow: 0 0 10px rgb(33, 255, 4),
                    0 0 12px rgb(33, 255, 4),
                    0 0 30px rgb(33, 255, 4);              
                }
            }
            @keyframes zhi{
                0%,100%{
                    background-color:  rgba(255, 4, 255,.5);
                }
                50%{
                    background-color: rgb(255, 4, 255);
                    box-shadow: 0 0 10px  rgb(255, 4, 255),
                    0 0 25px  rgb(255, 4, 255),
                    0 0 40px  rgb(255, 4, 255);              
                }
            }
        </style>
    </head>
    <body>
        <ul class="container">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
          
        </ul>
    </body>
    </html>
    

    总结:

    虽然实现不难,但效果还是挺好看的。

    其它文章:
    炫彩流光文字 html+css
    气泡浮动背景特效 html+css
    简约时钟特效 html+css+js
    赛博朋克风格按钮 html+css
    仿网易云官网轮播图 html+css+js
    水波加载动画 html+css
    导航栏滚动渐变效果 html+css+js
    书本翻页 html+css
    3D立体相册 html+css
    霓虹灯绘画板效果 html+css+js
    记一些css属性总结(一)
    Sass总结笔记
    …等

    更多相关内容
  • 数码彩灯通电后,LED数码显示器显示“00”;当显示乱码时,可按下清零按键,进行手动清零;当按下“开始”按键后,彩灯按照要求(彩灯的排列方案不允许有雷同,突出各组设计个性)开始闪烁,调试频率电位器,可以...
  • 单片机设计节日彩灯控制器课程设计报告 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.9 积分片用单片机设计节日彩灯控制器一、 设计任务与要求本实验中采用汇编...

    单片机设计节日彩灯控制器课程设计报告

    (8页)

    本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

    9.9 积分

    片用单片机设计节日彩灯控制器一、 设计任务与要求本实验中采用汇编语言和89C51单片机实现儿円彩灯控制器,在Keil uVision软件环境中编辑和调试节日彩灯程序,并在Proteus软件环境下仿真节 口彩灯的硬件电路。可编程节口彩灯系统采用8个LK)灯来模拟彩灯的显示,设 计要求8个LED灯能以多种不同的方式变换的亮火,以达到节日彩灯的效果。木实验中彩灯具体的变换方式采用以下四种方式:方式一:启动彩灯运行,按下与89C51单片机P1.2相连接的按钮,则彩灯 按照由上而下的顺序依次点亮。方式二:停止彩灯运行,按下与89C51单片机P1.3相连接的按钮,则彩灯 全部熄火。方式三:向下依次点亮彩灯,按下与89C51单片机P1.4相连接的按钮,则 彩灯按照由上向下的顺序依次点亮。方式四:向上依次点亮彩灯,按下与89C51单片机P1.5相连接的按钮,则 彩灯按照由下向上的顺序依次点亮。二、 设计方案以80C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键 等组成电路,实现彩灯在开扁时满足不一样的闪亮方法。按键可以在彩灯使用的 时候选择不同的亮法,使彩灯流动的方向改变,键一可以使彩灯由上而下开始流 动,键二可以使彩灯停止,三号键可以使彩灯由上而K流动,四键则可以使彩灯 由下而上流动。通过按键能方便使用者选择节日彩灯的开启、流动方向和停止。 系统框图如下:三、单片机设计节H彩灯控制器的硬件电路设计单片机设计过程中用到的管脚说明:1、 VCC (40):供电电压。2、 GND (20):接地。3、 P1端口 (P1.0-P1.7): P1 口是一个内部提供上拉电阻的8位双向I/O 口,P1 口缓冲器能接收输出4TTL门电流。P1 口管脚写入1后,被内部上拉为高 电平,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内 部上拉的缘故。在FLAS11编程和校验时,P1门作为第八位地址接收。4、 P2端U (P2.0-P2. 7): P2 U为一个内部上拉电阻的8位双向T/0 l_l, P2 U 缓冲器可接收,输出4个TTL门电流,当P2 口被写“1”时,其管脚被内部 上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低, 将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或16 位地址外部数据存储器进行存取时,P2门输出地址的高八位。在给出地址“1” 吋,它利用内部上拉优势,当对外部八位地址数据存储器进行读写吋,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH编程和校验时接收高八位地 址信号和控制信号。5、 P3端口 (P3.0-P3. 7): P3 口管脚是一个带有内部上拉电阻的8位的双向I/O 端门,可接收输出4个TTL门电流。当P3 口写入“1”后,它们被内部上拉 为高电平,并用作输入。作为输入端吋,由于外部下拉为低电平,P3 口将输 出电流(ILL)。P3 口也可作为AT89C51的一些特殊功能口,其中P3.3可作 为外部中断1输入。6、 XTALK19):反向振荡放大器的输入及内部时钟工作电路的输入。7、 XTAL2C18):來自反向振荡器的输出。8> (31):外部程序存储器访问允许控制端。打开PROTEUS的ISIS编辑环境,从PROTEUS中选取该电路所需要的元器件,放置元器件、放置电源和地、连线得到下图所示的电路原理图,再点菜单栏工具 下拉的电气规则检査,当规则检査出现:“NETL 1ST GENERATED OK NO ERC ERROR!) FOUND”,表示通过检查。电路设计完成。C2Hh30pC130pVCCU722.U1?XTAL1PO.G'ADOP0.VAD1PO2AD2XTAL2P0,3.'AD3P0.4.AQ4PO.5.'AD5P0.6.-AD6RSTP07/AD7R20A8R2J/A9P2.2-A10PSENP2.3/A11ALEP2.4.A12EAP2.5'A13P2.a-Al4P2.7/A15P1.0P3.0/RXDP1.1P3.1OXDP1.2P32»1NT0P1.3P3.a-1NT1P1.4P3.4JDP1.5P3.5/T1P1.6R3.6AVRP1.7P3.7W2L-9-292S_ 311TZ士ATg9C51LEDREOAND_PROTEUS硬件电路原理图四、单片机设计节日彩灯控制器的软件设计单片机设计节闩彩灯控制器的软件设计流程图如下: 编写成功的程序如下所示:ORG 0000H:程序入U地址LJMP MAIN;跳转到主程序ORG 0013H;中断入口地址LJMP INT1X ;跳转到中断程序ORG 010011;主程序入门地址MAIN:SETBTT1 :设置外部中断1为跳沿触发方式SETB EX1;允许外部中断1SETB EA;开启中断总开关CLR F0;清标志位MOV A, #0FFH ;为久赋初值SO:MOV P2,A ;设置P2为OFFHJB F0, SI;若印为1则跳转S1RR A;右移A值SJMP S2;跳转S2S1:RL A;左移A值;S2: LCALL DELA ;调用延吋SJMP SOINT1X: JNB Pl. 2, L00P1 ;P1. 2 端口为 0 则跳转 L00P1JXB Pl. 3, L00P2JNB Pl. 4, L00P1JXB Pl. 5, L00P3LOOP1:MOVA, #OFEH ;对4进行赋值SETB F0;对标志位置1AJMP INT;跳转至INTL00P2:MOVA, #0FFHAJMP TNT在Keil uVision软件环境下编写单片机设计节日彩灯控制器的软件,最终LOOP3:MOV A,#7FHCLR FOAJMP INTTNT: RETT ;中断返回DELA:MOV R1,#1OO ;延时子程序MOV R3, #50DELA 1: MOV R2,#10DELA2: NOPDJNZ R2, DELA2DJNZ Rl’DELAlDJNZ R3,DELA1RET ;子程疗:返回END ;结束五、 在PROTEUS中的硬件电路中进行仿真把程序装入单片机后,通过按不同的按键实现彩灯运行的不同方式,检验实 验结果是否与要求相符合。若与要求不符,则检验电路和程序是否正确,直至实 验结果与要求相符合。六、 实验程序与实验电路的总体叙述硬件电路中LED灯是共阳极的,在程序运行时,按下与P1. 2相连的按键, 程序进入中断,并检测到P1. 2为低电平0,此时进入L00P1,对A赋值FEH和置 标志位F0为1,然后返回S0,对P2端门赋值(赋值为FE11,转换为二进制数为 11111110),及此吋在电路上为P2. 7为低电平0,只有最上面的LED灯亮,程序 跳至S1,左移A值,及A变为11111101,调用延时子程序,然后返InjSO,此时 重复以上过程,使得第二个LED灯亮,依次执行则LED等依次点亮,直到改变按 下的按键。七、 单片机课程设计的体悟本设计本身比较简单,整个课程设计的过程中每一步都是自己亲自做的,在 经过遇到问题,思索问题到解决问题的过程中,收获是最多的。以往没有注意到的问题,都在这一次的课程设计中得以体现,这培养了我的细心,耐心和专心。 经过几天的努力,终于完成丫本学期的单片机课程设计,过程虽是辛苦的,但从中我们却学到了很多东西。首先巩固了课上学的理论知识,对于计算机汇 编语言的系统化整体化有了更深的认识。在编写程序的过程中遇到了很多困难经 过我反复修改不断修正最终冰能得以执行。再次是经过搜集资料基本了解了 protcus软件是使用。整个设计过程最大的收获就是意识到理论知识扎实的重要 性,实践是建立在理论之上的。 关 键 词: 单片机 设计 节日 彩灯 控制器 课程设计 报告

     天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

    展开全文
  • 基于VHDL的彩灯控制

    2021-02-03 17:52:45
    用在舞台上增强晚会灯光效果。对动态灯光实时控制的装置很多,如电脑编程4路彩灯控制器、CEC电脑彩灯控制器、EPROM程控编码彩灯控制器和计算机灯光控制系统。这些控制装置均运用计算机技术、电子技术和声光技术,对...
  • 可以通过按钮暂停彩灯效果,使小灯全亮,再次按下相同按钮后继续之前的效果; 增加自动在几种效果间切换的功能,并设置一个按钮可以在自动模式和手动模式间切换; 使用定时中断延时。 运行效果 (为方便演示,速度...

    题目要求

    • 用16盏以上的LED小灯,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭);
    • 可以用输入按钮在几种灯光效果间切换;
    • 可以通过按钮暂停彩灯效果,使小灯全亮,再次按下相同按钮后继续之前的效果;
    • 增加自动在几种效果间切换的功能,并设置一个按钮可以在自动模式和手动模式间切换;
    • 使用定时中断延时。

    运行效果

    (为方便演示,速度已调快一倍处理)
    最终实现的效果
    一共实现有十钟灯光效果,分别是:

    顺时针流水灯、逆时针流水灯、交替闪烁、顺时针对角灯、逆时针对角灯、顺时针逐个点亮、顺时针逐个熄灭、逆时针逐个点亮、逆时针逐个熄灭、二进制加法。

    完整代码

    #include <reg51.h>
    #define false 0
    #define true 1
    #define uchar unsigned char
    #define uint unsigned int
    sbit pause_key = P3^0;  //暂停按钮
    sbit auto_key = P3^1;   //手动模式的效果切换
    sbit change_key = P3^2; //手动模式效果切换
    sbit pauseLed = P3^6;   //暂停、启动指示灯
    sbit autoLed = P3^7;    //自动、手动模式指示灯
    int ledCode[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //led段码(单个显示)
    int ledCode2[8]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; //led段码(半显示半灭)
    int disCode[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09}; //数码管段码 0~9
    void displayLed(void);  //显示led的主函数
    void keyScan(void); //键盘扫描处理函数
    void Delay10ms(unsigned int n); //延时10ms
    bit isPause = false;    //是否暂停
    bit isAuto = true;  //是否自动运行
    bit isChange = false;   //是否要切换下一个效果
    uchar time;   //计时满0.5s
    uchar types;    //第几种灯光显示方案
    uint counts;    //灯光的第几个
    /******************************************************************************* 
    * 函 数 名          : T0_INT
    * 函数功能         : T0定时器中断函数
    * 输      入         : 无
    * 输      出         : 无 
    *******************************************************************************/
    void T0_INT(void)  interrupt 1
    {
        TL0= (65536-50000)/256;
        TH0= (65536-50000)%256;
        time ++;
        if(time >= 10) //定时时间:0.5s
        {
            time=0;
            if(isChange == true)    //可以变换下一种显示效果了
            {
                counts = 0;
                types++;    //显示下一种效果
                if(types > 9) types = 0;
                P0 = disCode[types];        //更新数码管显示
                isChange = false;
            }
            displayLed();
            counts++;
        }
    }
    /******************************************************************************* 
    * 函 数 名          : main
    * 函数功能         : 主函数
    * 输      入         : 无
    * 输      出         : 无 
    *******************************************************************************/
    void main(void)
    {
        TMOD=0x61; //0110 0001  //方式一
        TL0= (65536-50000)/256;     //50ms
        TH0= (65536-50000)%256;
        TR0=1;      //开启T0
        ET0=1;      //T0中断允许
        EA=1;   //总中断开启
        time = 0;   //定时器时间扩种(0.5s)
        counts = 0; //灯光的第几次    
        types = 0;  //灯光显示模式
        pauseLed = 0; //暂停指示灯灭
        P0 = disCode[types];        //更新数码管显示
        while(1)
        {
            keyScan();  //键盘扫描及处理
        }
    }
    /******************************************************************************* 
    * 函 数 名          : keyScan
    * 函数功能         : 键盘扫描处理
    * 输      入         : 无
    * 输      出         : 无 
    *******************************************************************************/
    void keyScan(void)
    {
        if(pause_key == 0)  //按下了暂停按钮
        {
            Delay10ms(1);
            if(pause_key == 0)
            {
                isPause = ~isPause;
                pauseLed = isPause;
                if(isPause == true)
                {
                    ET0=0;      //关闭T0中断
                    P0 = 0xfd;  //数码管显示 “-”
                    P1 = 0x00;  //所有的灯都亮起来
                    P2 = 0x00;
                }else{
                    ET0=1;      //T0中断允许
                    P0 = disCode[types];        //更新数码管显示
                    displayLed();
                }
                while(pause_key == 0);  //防止按键重复检测
            }
        }
        if(auto_key == 0)   //自动、手动切换按键按下
        {
            Delay10ms(1);
            if(auto_key == 0)
            {
                isAuto = ~isAuto;
                autoLed = isAuto;
            }
            while(auto_key == 0);   //防止按键重复检测
        }
        if(change_key == 0 && isAuto == false)  //手动模式,并且效果切换按下
        {
            Delay10ms(1);
            if(change_key == 0)
            {
                isChange = true;
            }
            while(change_key == 0); //防止按键重复检测
        }
    }
    /******************************************************************************* 
    * 函 数 名          : displayLed
    * 函数功能         : 显示led灯
    * 输      入         : (全局变量 )types:显示效果;counts:当前效果下的第几次
    * 输      出         : 无 
    *******************************************************************************/
    void displayLed(void)
    {
        switch(types)
        {
            case 0: //顺时针旋转led灯
            {
                if(counts >= 16) counts = 0;
                if(counts >=15)
                {
                    if(isAuto == true) isChange = true;
                }
                if(counts <8)
                {
                    P1 = 0xff;
                    P2 = ledCode[7-counts];
                }
                else
                {
                    P1 = ledCode[15-counts];
                    P2 = 0xff;
                }
                break;
            }
            case 1: //逆时针旋转LED灯
            {
                if(counts >= 16) counts = 0;
                if(counts >=15)
                {
                    if(isAuto == true) isChange = true;
                }
                if(counts <8)
                {
                    P1 = ledCode[counts];
                    P2 = 0xff;
                }
                else
                {
                    P1 = 0xff;
                    P2 = ledCode[counts-8];
                }
                break;
            }
            case 2: //交叉替换
            {
                if(counts >= 16) counts = 0;
                if(counts >=15)
                {
                    if(isAuto == true) isChange = true;
                }
                if(counts % 2 == 0) //偶数
                {
                    P1=0xaa;
                    P2=0xaa;
                }
                else
                {
                    P1=0x55;
                    P2=0x55;
                }
                break;
            }
            case 3: //对角顺时针
            {
                if(counts >= 8) counts = 0;
                if(counts >=7)
                {
                    if(isAuto == true) isChange = true;
                }
                P1 = ledCode[7 - counts];
                P2 = ledCode[7 - counts];
                break;
            }
            case 4: //对角逆时针
            {
                if(counts >= 8) counts = 0;
                if(counts >=7)
                {
                    if(isAuto == true) isChange = true;
                }
                P1 = ledCode[counts];
                P2 = ledCode[counts];
                break;
            }
            case 5: //顺时针逐个点亮
            {
                if(counts >= 17) counts = 0;
                if(counts <8)
                {
                    P1 = ~ledCode2[7 - counts];
                    P2 = 0xff;
                }
                else if(counts <16)
                {
                    P1 = 0x00;
                    P2 = ~ledCode2[15 - counts];
                }
                else    //全亮
                {
                    P1 = 0x00;
                    P2 = 0x00;
                    if(isAuto == true) isChange = true;
                }
                break;
            }
            case 6: //顺时针逐个又灭掉
            {
                if(counts >= 17) counts = 0;
                if(counts <8)
                {
                    P1 = ledCode2[7 - counts];
                    P2 = 0x00;
                }
                else if(counts <16)
                {
                    P1 = 0xff;
                    P2 = ledCode2[15 - counts];
                }
                else    //全灭
                {
                    P1 = 0xff;
                    P2 = 0xff;
                    if(isAuto == true) isChange = true;
                }
                break;
            }
            case 7: //逆时针逐个点亮
            {
                if(counts >= 17) counts = 0;
                if(counts <8)
                {
                    P1 = 0xff;
                    P2 = ledCode2[counts];
                }
                else if(counts <16)
                {
                    P1 = ledCode2[counts - 7];
                    P2 = 0x00;
                }
                else    //全亮
                {
                    P1 = 0x00;
                    P2 = 0x00;
                    if(isAuto == true) isChange = true;
                }
                break;
            }
            case 8: //逆时针逐个灭掉
            {
                if(counts >= 17) counts = 0;
                if(counts <8)
                {
                    P1 = 0x00;
                    P2 = ~ledCode2[counts];
                }
                else if(counts <16)
                {
                    P1 = ~ledCode2[counts - 7];
                    P2 = 0xff;
                }
                else    //全亮
                {
                    P1 = 0xff;
                    P2 = 0xff;
                    if(isAuto == true) isChange = true;
                }
                break;
            }
            case 9: //二进制加法
            {
                if(counts >= 255) counts = 0;
                if(counts == 254 && isAuto == true) isChange = true;
                P1 = ~counts;
                P2 = ~counts;
                break;
            }
            default:
                types = 0;
                P0 = disCode[types];        //更新数码管显示
        }
    }
    /******************************************************************************* 
    * 函 数 名          : Delay10ms (多个) 
    * 函数功能         : 延时函数,延时n*10ms 
    * 输      入         : n-延时次数 
    * 输      出         : 无 
    *******************************************************************************/
    void Delay10ms(unsigned int n)
    {
        unsigned char a, b;
        for (; n>0; n--)
        {
            for (b=38; b>0; b--)
            {
                for (a=130; a>0; a--);
            }
        }
    }
    

    完整的 proteus 仿真图布局

    完整的 proteus 仿真图布局

    打包下载

    源代码、编译过的 HEX 文件以及仿真图已打包上传,下载地址:

    https://download.csdn.net/download/oqqmoon1234/72026438

    展开全文
  • 节日彩灯控制电路

    2021-02-03 17:14:24
    若用彩灯串组合成相应的庆祝文字或彩色图案,其依次点亮时的效果就如同五颜六色的霓虹灯一般,可为节日增添许多喜庆气氛。现以用其控制由8个彩灯串组合成的“庆祝建国五十周年”的标语彩灯为例将该电路介绍如下,供...
  • 该资源为用PLC进行实际工程应用的梯形图程序,简单实用,适合初级的PLC学习或工程应用。
  • 1:基于51单片机的幻彩LED设计程序 2:基于SMT32 的2812,2811的设计程序。
  • 3. 可以通过按钮暂停彩灯效果,使小灯全亮,再次按下相同按钮后继续之前的效果; 4. 增加自动在几种效果间切换的功能,并设置一个按钮可以在自动模式和手动模式间切换; 5. 使用定时中断延时。 程序中实现了十钟灯光...
  • 此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性。  全球气候暖化危机和能源紧缺在进一步推动LED照明的普及,LED照明具有环保、光效高和寿命长的特点,但在完全取代具有墙上型调光器的白炽灯方面,...
  • 此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性。  气候暖化危机和能源紧缺在进一步推动LED照明的普及,LED照明具有环保、光效高和寿命长的特点,但在完全取代具有墙上型调光器的白炽灯方面,LED...
  • 随着科学技术的发展以及人民生活水平的提高,在现代生活中,彩灯作为一种装饰,既可以增强人们的感观,起到广告宣传的作用,又可以增添节日气氛,为人们的生活增添亮丽,用在舞台上增强晚会灯光效果。随着电子技术的...
  • 1 引言  随着人们生活环境的不断改善和美化,在许多场合可以看到...此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。  本文提出了一种基
  • 课程设计题四:LED彩灯控制器设计

    千次阅读 多人点赞 2019-07-04 11:32:50
    2、彩灯花样变换的快慢节拍可以手动和自动方式控制,手动控制按钮按一次转换一次;自动控制方式每15秒变换一次,1分钟循环一遍。 3、系统复位清零开关。 获取该 程序+protues 的方式: 1、CSDN下载: ...

    要求:

    1、至少10个发光管4种花样自动变换,循环往复。

    2、彩灯花样变换的快慢节拍可以手动和自动方式控制,手动控制按钮按一次转换一次;自动控制方式每15秒变换一次,1分钟循环一遍。

    3、系统复位清零开关。

    获取该 程序+protues 的方式:

    1、CSDN下载:

    https://download.csdn.net/download/qq_38351824/11274657

    2、关注微信公众号下载:

         ① 关注微信公众号:Tech云  

         ②

    3、可以关注点赞并在下方评论,我给你邮箱发过去。

    一、Protues仿真图:

    二、程序源码:

    因为注释非常的全,这里就不再进行讲解了。

    /*******************************************************************************
    ================================================================================
    【平    台】STC89C51平台
    【编    写】Sumjess
    【E-mail  】1371129880@qq.com
    【软件版本】V2.0
    【最后更新】2018年09月06日
    【相关信息参考下列地址】
    【网    站】
      Sumejss博客  https://blog.csdn.net/qq_38351824
      电子发烧友  http://bbs.elecfans.com/zhuti_mcu_1.html
      中国电子网  http://bbs.21ic.com/icfilter-typeid-11-214.html
    ---------------------------------------------------------------------------------
    【dev.env.】MDK4.14及以上版本
    【Target  】STC89C51
    第一次修订:2019/05/23
    第二次修订:2018/05/24
    第三次修订:2018/05/26
    ================================================================================
    ********************************************************************************/	
    #include <reg52.h>	         //调用单片机头文件
    #define uchar unsigned char  //无符号字符型 宏定义	变量范围0~255
    #define uint  unsigned int	 //无符号整型 宏定义	变量范围0~65535
    
    sbit led0 = P0^0;	  //led定义
    sbit led1 = P0^1;	  //led定义
    sbit led2 = P0^2;	  //led定义
    sbit led3 = P0^3;	  //led定义
    sbit led4 = P0^4;	  //led定义
    sbit led5 = P0^5;	  //led定义
    sbit led6 = P0^6;	  //led定义
    sbit led7 = P0^7;	  //led定义
    sbit led8 = P2^0;	  //led定义
    sbit led9 = P2^1;	  //led定义
    
    sbit key0 = P3^2;	  //定义手动控制按键
    sbit key1 = P3^3;	  //定义自动控制按键
    
    uchar x =50;   		  //调节LED闪烁速率
    uint js = 0,flag_auto=0;//定义计数15秒,自动变花样标志位
    
    void delayms(uint z)	 //毫秒
    {
    	uint x,y;
        for(x=z;x>0;x--)
          for(y=110;y>0;y--);   
    }
    
    void Timer0_init()		  	    //定时器0初始化
    {
    	TMOD=0x01;					//设置定时器0为工作方式1(M1M0为01)
    	TH0=(65536-45872)/256;		//装初值11.0592M晶振定时50ms数为45872
    	TL0=(65536-45872)%256;		
    	ET0=1;						//开定时器0中断
    	EA=1;						//开总中断
    }
     
    void timer0() interrupt 1 using 1	//定时器0中断服务函数
    {
    	TH0=(65536-45872)/256;		//装初值11.0592M晶振定时50ms数为45872
    	TL0=(65536-45872)%256;	
    	js++;						//叠加20次 是一秒
    	if(js==300) 
    	{ 
    	  js=0;						//清空
    	  flag_auto=flag_auto+1;		//产生15s的倒计时
    	  if(flag_auto>3)  flag_auto=1;	//限幅,最多4个花样
    	 }
    }
    
    void LED0();  //花样1
    void LED1();  //花样2
    void LED2();  //花样3
    void LED3();  //花样4
    
    void main()
    {
       Timer0_init(); //定时器初始化
       while(1)
       {
    
        if(key1==0)   //自动控制按键
        {  
          delayms(3); //去除按键抖动
          if(key1==0)
          { 
            while(!key1);     //以上表示按下开始按键
    		flag_auto=0;	  //清零
            TR0=1;            //开启定时器
    		while(1)
    		{
    		  if(key0==0)  	  //调节到手动模式
    		  {
    			  TR0=0;      //关闭定时器
    			  js=0;	flag_auto=0;//计数、自动换花样变量清零
    			  break;	  //跳出
    			}
    		  switch(flag_auto)//花样自动变化
    		  {
    		  case 0:  LED0(); break;
    		  case 1:  LED1(); break;
    		  case 2:  LED2(); break;
    		  case 3:  LED3(); break;
    		  }
    		  }
          }
        }
        if(key0==0)   //手动控制按键
        {  
          delayms(3); //去除按键抖动
          if(key0==0)
          { 
    		while(1)
    		{
    		  if(key1==0)  			//调节到自动模式
    		  {
    			  TR0=0;            //关闭定时器
    			  js=0;	flag_auto=0;//计数、自动换花样变量清零
    			  break;			//跳出
    			}
    		  if(key0==0)  	++flag_auto;//换花样
    		  if(flag_auto>3)  flag_auto=1;	//限幅,最多4个花样
    		  switch(flag_auto)	//花样手动变化
    		  {
    		  case 0:  LED0(); break;
    		  case 1:  LED1(); break;
    		  case 2:  LED2(); break;
    		  case 3:  LED3(); break;
    		  }
    		  }
    		}
         }
    
         }
      }
    
    void LED0(){
    led0 = 1;	  //led赋值
    delayms(x);
    led1 = 1;	  //led赋值
    delayms(x);
    led2 = 1;	  //led赋值
    delayms(x);
    led3 = 1;	  //led赋值
    delayms(x);
    led4 = 1;	  //led赋值
    delayms(x);
    led5 = 1;	  //led赋值
    delayms(x);
    led6 = 1;	  //led赋值
    delayms(x);
    led7 = 1;	  //led赋值
    delayms(x);
    led8 = 1;	  //led赋值
    delayms(x);
    led9 = 1;	  //led赋值
    delayms(x);
    led0 = 0;	  //led赋值
    delayms(x);
    led1 = 0;	  //led赋值
    delayms(x);
    led2 = 0;	  //led赋值
    delayms(x);
    led3 = 0;	  //led赋值
    delayms(x);
    led4 = 0;	  //led赋值
    delayms(x);
    led5 = 0;	  //led赋值
    delayms(x);
    led6 = 0;	  //led赋值
    delayms(x);
    led7 = 0;	  //led赋值
    delayms(x);
    led8 = 0;	  //led赋值
    delayms(x);
    led9 = 0;	  //led赋值
    delayms(x);
    	}
    void LED1(){
    led0 = 1;	  //led赋值
    led1 = 1;	  //led赋值
    delayms(x);
    led2 = 1;	  //led赋值
    led3 = 1;	  //led赋值
    delayms(x);
    led4 = 1;	  //led赋值
    led5 = 1;	  //led赋值
    delayms(x);
    led6 = 1;	  //led赋值
    led7 = 1;	  //led赋值
    delayms(x);
    led8 = 1;	  //led赋值
    led9 = 1;	  //led赋值
    delayms(x);
    led0 = 0;	  //led赋值
    led1 = 0;	  //led赋值
    delayms(x);
    led2 = 0;	  //led赋值
    led3 = 0;	  //led赋值
    delayms(x);
    led4 = 0;	  //led赋值
    led5 = 0;	  //led赋值
    delayms(x);
    led6 = 0;	  //led赋值
    led7 = 0;	  //led赋值
    delayms(x);
    led8 = 0;	  //led赋值
    led9 = 0;	  //led赋值
    delayms(x);
    }
    void LED2(){
    led0 = 1;	  //led赋值
    led1 = 1;	  //led赋值
    led2 = 1;	  //led赋值
    delayms(x);
    led3 = 1;	  //led赋值
    led4 = 1;	  //led赋值
    led5 = 1;	  //led赋值
    delayms(x);
    led6 = 1;	  //led赋值
    led7 = 1;	  //led赋值
    led8 = 1;	  //led赋值		
    led9 = 1;	  //led赋值
    delayms(x);
    led0 = 0;	  //led赋值
    led1 = 0;	  //led赋值
    led2 = 0;	  //led赋值
    delayms(x);
    led3 = 0;	  //led赋值
    led4 = 0;	  //led赋值
    led5 = 0;	  //led赋值
    delayms(x);
    led6 = 0;	  //led赋值
    led7 = 0;	  //led赋值
    led8 = 0;	  //led赋值
    led9 = 0;	  //led赋值
    delayms(x);
    }
    void LED3(){
    led0 = 1;	  //led赋值
    delayms(x);
    led0 = 0;	  //led赋值
    delayms(x);
    led1 = 1;	  //led赋值
    delayms(x);
    led1 = 0;	  //led赋值
    delayms(x);
    led2 = 1;	  //led赋值
    delayms(x);
    led2 = 0;	  //led赋值
    delayms(x);
    led3 = 1;	  //led赋值
    delayms(x);
    led3 = 0;	  //led赋值
    delayms(x);
    led4 = 1;	  //led赋值
    delayms(x);
    led4 = 0;	  //led赋值
    delayms(x);
    led5 = 1;	  //led赋值
    delayms(x);
    led5 = 0;	  //led赋值
    delayms(x);
    led6 = 1;	  //led赋值
    delayms(x);
    led6 = 0;	  //led赋值
    delayms(x);
    led7 = 1;	  //led赋值
    delayms(x);
    led7 = 0;	  //led赋值
    delayms(x);
    led8 = 1;	  //led赋值
    delayms(x);
    led8 = 0;	  //led赋值
    delayms(x);
    led9 = 1;	  //led赋值
    delayms(x);
    led9 = 0;	  //led赋值
    delayms(x);
    }

     

    展开全文
  • 本系统核心硬件为AT89C51单片机,用于控制LED彩灯的各种变换,以高低电平控制LED灯的明灭,通过LED彩灯明灭以显示不同图案花样,让彩灯整体达到美轮美奂的视觉效果。设计4种循环亮灯的效果,只需要两个按键就能实现...
  • (1)用 P1 口作为输出口实现循环彩灯。(至少要有 5 种形式) (2) 设计一个简易数字钟。 选择一位开关作为数字钟的开关,开关合上后,数字钟开始运行。led8--led13 表示为 6 位二进制数,显示数字钟的秒值;led14--...
  • 为解决目前市场上销售的LED彩灯控制器闪烁频率不可调或不容易调的问题,设计出一种基于TTL电路...通过实际组装电路调试,电路顺利实现了10个档位手动控制,通过改变LED彩灯闪烁频率,提高了LED彩灯控制性能和闪烁效果
  • 手机APP控制LED彩灯概述: 一款智能灯是注重外形的设计还是操作上体验呢?而智能蘑菇灯给出的答案是两者兼具才更爽快!...效果实物展示: 智能RGB彩灯制作需要的材料如下展示(具体制作步骤见附件说明)
  • esp32 sdk编程利用rmt驱动ws2812七彩灯,实现彩虹渐变效果。对应的博客 https://blog.csdn.net/xh870189248/article/details/90897877
  • 设T1x为T1的延时值,则通过一个定时中断即可定时刷新PWM的占空比,如果定时中断刷新T1X的值为渐增的,则PWM占空比是上升的,则LED产生渐亮的变化,反之,则LED则产生渐暗的变化效果,刷新的速度由定时器进行控制,也...
  • 灯光效果设置PSD素材

    2015-03-26 16:19:22
    灯光效果设置PSD素材灯光效果设置PSD素材
  • 随着人们对房屋的装饰需要彩灯,在许多城市可以看到彩色霓虹灯。LED彩灯由于其丰富的灯光色彩,便宜的造价以及控制简单等特点而得到了广泛的应用,...此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性。
  • 最近关注了油管上的 CSS Animation Effects Tutorial 系列,里面介绍了非常多有意思的 CSS 动效。其中第一个就是很酷炫的霓虹灯效果,这里就实现思路做一个简单的...
  • 1 引言  随着人们生活环境的不断改善和美化,在许多场合可以看到...此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。  本文提出了一种基
  • 彩灯控制程序

    2015-11-22 17:01:47
    彩灯控制程序 西门子:plc 源代码
  • 随着人们对房屋的装饰需要彩灯,在许多城市可以看到彩色霓虹灯。LED彩灯由于其丰富的灯光色彩,便宜的造价以及控制简单等特点而得到了广泛的应用,...此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性...
  • 根据不同控制器和客户不同形式要求,进行脱机或联机运行,可视效果分明,级联方式简单,数据传输稳定、抗干扰能力强;最大串行输入数据时钟频率10MHz,数据信号锁相再生,1MHz数据传输速度下级联点光源可达1024个。...
  • 喇叭音效播放效果 1.效果控件是吉他,驱动盒的话是使声音有喇叭的效果。回声的效果的是模拟延迟。 彩色灯光卡点 先把视频放到轨道上,放在v1的位置,V代表的是vedio。然后再复制一层,复制的那层放在v2上。v2的那...
  • 反之,使(P1)=10101010B=AAH,则另外4只LED亮,若反复以一定时间间隔不断从P1口轮流输出55H和AAH,则P1口上8只LED会呈现流水彩灯效果。 3.1.2 控制程序 实现上述8只LED发光二极管控制的程序非常简单,可以用不同的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,197
精华内容 478
关键字:

彩灯效果