精华内容
下载资源
问答
  • LED呼吸灯程序

    2021-04-17 13:32:19
    LED呼吸灯是在闪烁的基础上,调节LED点亮的时间和熄灭的时间,进而时LED呈现出逐渐变亮或者变暗的过程。 我们知道点亮或者熄灭LED就是给端口高低电平即1或0,通过调节占空比,改变1和0 的占用时间即可达到此效果。 ...

    STM32入门一百步第二十八步
    LED呼吸灯是在闪烁的基础上,调节LED点亮的时间和熄灭的时间,进而时LED呈现出逐渐变亮或者变暗的过程。
    我们知道点亮或者熄灭LED就是给端口高低电平即1或0,通过调节占空比,改变1和0 的占用时间即可达到此效果。

    文件:590m.com/f/25127180-490364941-38e8fc(访问密码:551685)

    主程序如下

    int main (void)
    {
    u8 MENU;
    u16 t,i;
    //初始化程序
    RCC_Configuration(); //时钟设置
    LED_Init();
    //设置变量的初始值
    MENU = 0;
    t = 1;
    //主循环
    while(1)
    {
    //菜单0
    if(MENU == 0)
    { //变亮循环
    for(i = 0; i < 10; i++)
    {
    GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED1接口输出高电平1
    delay_us(t); //延时
    GPIO_WriteBit(LEDPORT,LED1,(BitAction)(0)); //LED1接口输出低电平0
    delay_us(501-t); //延时
    }
    t++;
    if(t500){
    MENU = 1;
    }
    }
    //菜单1
    if(MENU == 1)
    { //变暗循环
    for(i = 0; i < 10; i++)
    {
    GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED1接口输出高电平1
    delay_us(t); //延时
    GPIO_WriteBit(LEDPORT,LED1,(BitAction)(0)); //LED1接口输出低电平0
    delay_us(501-t); //延时
    }
    t–;
    if(t
    1)
    {
    MENU = 0;
    }
    }
    }
    }

    以下内容无关:

    -------------------------------------------分割线---------------------------------------------

    封装三要素 —— 属性、插槽、事件、方法
    可以封装,但是原生UI库提供的强大功能不能给封装没了吧,吃了回扣可是不好滴。
    那么如何做到不遗漏呢?先做一个合格的传声筒。

    传递属性
    先看看 el-input 提供的属性:

    el-input的属性

    太长了,这里只截了一半。
    这么多的属性,如果一个一个都弄到 props 里面,然后再一个一个绑定上去,这就太麻烦了。

    我们可以分成两部分,重要的属性做到 props 里面,其他的可以放到 $attrs 里面。

    定义一个简单的组件
    模板

    export default {
    name: ‘test-text’,
    inheritAttrs: false,
    props: {
    modelValue: [String, Number]
    },
    setup(props, ctx) {
    const value = debounceRef(props, ctx.emit)

    return {
      value
    }
    

    }
    }
    父组件的调用代码:
    模板

    <inputtext
    v-model=“value”
    v-bind=“attrs”

    代码

    const value = ref(‘222’)

    const attrs = reactive({
    maxlength: 10,
    ‘show-word-limit’: true,
    clearable: true
    })
    这里 modelValue 就是 props ,maxlength、show-word-limit、clearable 就变成了 $attrs 。

    然后要看 el-input 是否是根元素,如果是跟元素的话,那么会自动绑定上,不需要我们手动写 v-bind="$attrs"。

    如果像上面的例子不是根元素的话,需要手动写 v-bind="$attrs"。

    inheritAttrs
    这个是指定组件是否自动绑定 $attrs 。
    默认是 true,会自动把 attrsfalseattrs 绑定到根元素上面,不管根元素是啥。 这里设置为 false,那么attrs 就不会自动绑定到 div 上面了。

    插槽
    这个稍微复杂一点,插槽本来就有一点绕,官网的介绍又比较含混。

    展开全文
  • 1-2-3-LED呼吸灯程序.zip

    2021-03-19 10:12:24
    呼吸灯测试例程,stm32f103
  • 基于wiringPi库PWM aip 的LED呼吸灯控制程序
  • ZigBee-CC2530单片机 - LED呼吸灯 程序源码 #include "ioCC2530.h" #define LED1 P1_0 // P1_0定义为P1_0 #define LED2 P1_1 // P1_0定义为P1_1 #define LED3 P1_3 // P1_0定义为P1_3 #define LED4 P1_4 // P1_0...

    ZigBee-CC2530单片机 - LED呼吸灯

    程序源码

    #include "ioCC2530.h"
    
    #define LED1 P1_0     // P1_0定义为P1_0
    #define LED2 P1_1     // P1_0定义为P1_1
    #define LED3 P1_3     // P1_0定义为P1_3
    #define LED4 P1_4     // P1_0定义为P1_4
    #define SW1  P1_2     //SW1端口宏定义
    
    unsigned char h;
     
    /*******************LED1初始化部分*****************/
    void InitLed()
    {
        P1SEL &= ~0x01;         //设置P1_0口为普通I/O口
        P1DIR |= 0x01;          //设置P1_0口为输出口
        LED1 = 0;            //熄灭LED1
    }
    /***************************************************/
    
    /*****************定时器1初始化部分****************/
    void InitT1()
    {
        T1CTL |= 0x01;        //定时器1时钟频率1分频,自动重装0x0000-0xFFFF
        PERCFG=0x40;       //定时器1选择外设位置2
        P1SEL|=0x01;         //P1_0选择外设功能
        T1CCTL2=0x64;       //定时器1通道2向上比较,比较模式
        T1CC2L=0xFF;        //
        T1CC2H=h;
    }
    /***************************************************/
    void main(void)
    {
        unsigned char js=0;
        unsigned char a=1;          //a=1为渐亮,a=2为渐灭
        InitLed();           //调用初始化函数
        InitT1();            
        while(1)
        {
    	     if((T1STAT&0x04)>0)  
    		 {
    		     T1STAT=T1STAT&0xfb;   //清除中断标志
    		     js++;
    		     if(js>=1)        //改变亮度的时间
    		     {
    		       js=0;         //清零
    		       if(a==1)      //渐亮
    		         h=h+1;
    		       else          //渐灭
    		         h=h-1;
    		       T1CC2L=0xff;  //重装比较值
    		       T1CC2H=h;
    		       if(h>=254)     //最大亮度
    		          a=2;       //设为渐灭
    		       if(h==0)       //最小亮度
    		         a=1;        //设为渐亮
    			}
    		}
    	}
    }
    
    
    
    展开全文
  • 呼吸灯是利用人的视觉图像滞留效应,控制led灯的通过电流以控制led灯的亮灭程度,从而实现呼吸灯的效果。归根结底,需要控制led灯两端电压,实现占空比(高电平时长)如同呼吸一样的消长。 附上Verilog程序: module...

    呼吸灯是利用人的视觉图像滞留效应,控制led灯的通过电流以控制led灯的亮灭程度,从而实现呼吸灯的效果。归根结底,需要控制led灯两端电压,实现占空比(高电平时长)如同呼吸一样的消长。
    附上Verilog程序:

    module breath_led(
        input   	 sys_clk,
        input   	 rst_n,
        output reg   led
        );
        
    reg flag;   //控制呼or吸
    reg [13:0]  cnt; 
    reg [13:0]  breath_time;
    always  @ (posedge sys_clk or negedge rst_n)begin
    	if(!rst_n)begin
    		cnt <= 14'b0;
    		breath_time <= 14'b0;
    		flag <= 1'b0;
    	end
    	else
    		if(cnt < 14'd10000)
    			cnt <= cnt + 1'b1;
    		else begin
    			cnt <= 14'b0;
    			if(breath_time < 14'd10000 && flag==0 )
    				breath_time <= breath_time +1'b1;
    			else if(breath_time > 14'd0 && flag==1)
    				breath_time <= breath_time - 1'b1;
    			else 
    				flag <=~flag;
    		end
    end   
    always  @ (posedge sys_clk or negedge rst_n)begin
    	if(!rst_n)
    		led <= 1'b0;
    	else 
    		if(cnt < breath_time)	
    			led <= 1'b1;
    		else
    			led <= 1'b0;
    end
    endmodule
    
    展开全文
  • 树莓派呼吸灯程序

    2016-05-20 23:58:30
    基于wiringPi库PWM aip 的LED呼吸灯控制程序
  • 程序是用51单片机通过PWM(脉冲宽度调制)方式控制LED,达到呼吸灯的效果。
  • msp430呼吸灯程序

    2013-12-05 16:52:20
    msp430g2553呼吸灯程序,控制一个led灯呼吸闪烁。
  • 在创建好寄存器模板工程的前提下,我将进一步使用寄存器点亮一个LED灯(D1),具体步骤及说明如下:1在开发板原理图中查看LED模块电路原理,易知该模块共8个LED小灯,分别为D1~D8,且共阳极,连接在3.3V的电源上。D1...

    f9ffff6f059f632532788e8349b2bc65.png

    这是一块普中STM32-F1开发板,具体型号是PZ6806L-STM32F103,用到了

    STM32F103ZET6芯片。在创建好寄存器模板工程的前提下,我将进一步使用寄存器点亮一个LED灯(D1),具体步骤及说明如下:

    1

    在开发板原理图中查看LED模块电路原理,易知该模块共8个LED小灯,分别为D1~D8,且共阳极,连接在3.3V的电源上。

    1d03c03dab1f38c81ea69e5eb9e1c922.png

    灯D1的阴极连接在芯片的26号引脚PC0(GPIO端口C的第0管脚)上,当PC0输出低电平时,发光二极管正向导通,D1被点亮。因此,我将转而对PC0进行操作。

    99904d86d6bea085ff517f00c5fef08b.png

    2

    结合《芯片数据手册》和《中文参考手册》,确定GPIO端口C在内存中的地址。首先,Cortex-M3是32位的内核,其PC指针可以指向232=4G的地址空间,ARM将这4G的存储空间划分成8块大小均为512MB的区域,分别是block0~block7。

    ca6133ab0092e8cbf84f0559ba20f979.png

    block2连接的是STM32的片上外设,根据速度的不同,这些外设分别挂载在APB1、APB2、AHB总线上。相应总线的最低地址为该总线的基地址,例如:APB1的基地址是0x40000000,片上外设就从这个地址开始,所以也称为外设基地址(PERIPH_BASE)。

    4d749efc48852cc7a0e4fad6bd7a0e5d.png

    查阅《寄存器组起始地址表》可知:GPIO端口A ~GPIO端口G都挂接在APB2总线上,其中GPIO端口C的基地址为0x40011000,相对APB2总线的地址偏移为0x00001000。有了外设端口地址后,还需要知道GPIO端口C中各寄存器的地址,可查阅《中文参考手册》关于GPIO寄存器的描述,结果如下:

    cbbf14376a5aa51836022460e3e680ba.png

    另外,STM32为了实现低功耗,将所有外设的时钟都设置成disable(不使能),而使用任何外设都必须先启动相应的时钟,所以还要用到APB2外设时钟使能寄存器(RCC_APB2ENR) ,因为GPIO端口C挂载在APB2总线上。

    接下来,就可以利用这些地址信息来配置stm32f10x.h头文件了,其中第6行定义是将表示地址的立即数先转换成指针类型,再读取该指针指向的内存单元的内容,以实现对寄存器的操作。

    //配置头文件stm32f10x.h//定义外设、APB2、GPIOC基地址及GPIOC所包含的寄存器地址#define PERIPH_BASE ((unsigned int)0x40000000)#define APB2_BASE (PERIPH_BASE + 0x00010000)          #define GPIOC_BASE (APB2_BASE + 0x1000)            #define GPIOC_CRL *(unsigned int*)(GPIOC_BASE + 0x00)#define GPIOC_CRH *(unsigned int*)(GPIOC_BASE + 0x04)#define GPIOC_IDR *(unsigned int*)(GPIOC_BASE + 0x08)#define GPIOC_ODR *(unsigned int*)(GPIOC_BASE + 0x0C)#define GPIOC_BSRR *(unsigned int*)(GPIOC_BASE + 0x10)#define GPIOC_BRR *(unsigned int*)(GPIOC_BASE + 0x14)#define GPIOC_LCKR *(unsigned int*)(GPIOC_BASE + 0x18)//定义AHB、RCC基地址及APB2外设时钟使能寄存器地址//AHB的起始地址是0x40018000(SDIO的地址),标准库中是0x40020000(DMA1外设的地址)#define AHB_BASE (PERIPH_BASE + 0x20000)#define RCC_BASE (AHB_BASE + 0x1000)#define RCC_APB2ENR *(unsigned int*)(RCC_BASE + 0x18)

    3

    在编写主程序main.c之前,我还需要有两个知识储备:C语言位操作方法和寄存器操作方法。

    先看前者,以8位的无符号整型变量A为例,将A的第6位清零,其他位不变,编写代码如下:

    A &= ~(1<<5);
    • 1左移5位,得到0010 0000

    • 按位取反,得到1101 1111

    • 和A相与,第6位被清零,其它位不变

    再看后者,以开启GPIO端口C的时钟为例,根据《中文参考手册》可知,将APB2外设时钟使能寄存器(RCC_APB2ENR) 的“位4”置1即可,编写代码如下:

    RCC_APB2ENR|=(1<<4);

    4

    是时候开始编写主程序main.c了!首先,开启GPIO端口C的时钟;接着,配置GPIO端口C的工作模式和工作速度,在本例中选择通用推挽输出模式且最大速率为50MHz,通过设置端口配置低寄存器(GPIOC_CRL) 即可完成;最后,使用端口位设置/清除寄存器(GPIOC_BSRR)间接控制PC0输出低电平。

    #include"stm32f10x.h"void SystemInit()  //初始化内部FALSH、PLL并且更新系统时钟{  }int main(){  RCC_APB2ENR|=(1<<4);  GPIOC_CRL&=~(0x0f<4*  GPIOC_CRL|=(3<4*  GPIOC_BSRR=(1<16+}

    编译链接0报错,即可将程序通过ARM仿真器下载到开发板内,灯D1被点亮,发出微弱的红光!

    89923d91b639aa206ea5ffa103b61ffc.png

    5

    学习单片机总是从点亮LED灯开始,就好比学习编程语言总是先输出“Hello World !”。如果你完全看懂了以上所述,毋庸置疑,你也会觉得这是一个不错的应用示例,即串起了许多重要的知识点,又能让初学者略感成就。

    在此基础上,可以继续尝试点亮更多的LED灯,以及改变它们的发光样式,常亮或者闪烁都是可以做到的,Just do it !

    展开全文
  • 呼吸灯程序 breath.c

    2020-08-31 08:51:12
    单片机两种实用的呼吸灯程序,结构体和常用的方法,不占作MCU的系统时间,定时扫描就可以了调节LED点亮的时间和熄灭的时间。适合工程上用。
  • led实现呼吸灯

    千次阅读 2018-08-12 10:46:46
    从1us到1s钟,改变led呼吸灯的触发条件。 2.依旧把程序写出来,这次在写计数器的时候,发现自己很大问题,就是计数器条件写不全。要不就是只写计数不清零,要么就是忘记清零不拉高。说白了,就是不理解时序,没有...
  • 程序为基于加强型51单片机内部的PWM输出功能设计的LED呼吸灯
  • 程序名: 两键控制亮度 编写人: 编写时间: 2017年12月15日 硬件支持: STC12C2052 内部RC或外部12MHZ晶振 接口说明: 8个LED彩灯接P1口,按键接P3.7和P3.3 修改日志:   NO.1- /**************************...
  • 蓝桥杯单片机PWM呼吸灯程序,通过调节PWM值,改变灯的亮度,本程序以LED1为例,让其明白原理,应用其它地方就不难了。非常的银杏,非常的好用!
  • 51单片机呼吸灯程序

    2013-04-25 12:30:29
    使用延时控制led的亮暗来达到呼吸灯的效果
  • 玩转树莓派 2017-07-09 22:52呼吸灯概述上一篇 我们通过控制GPIO口输出高低电平来控制一只 LED 的亮灭。这次我们来控制 LED 的亮度,灯由暗渐渐变亮,再由亮渐渐边暗,反复循环,也就是呼吸灯的效果。按 Ctrl+C结束...
  • 呼吸灯程序

    千次阅读 2014-06-06 15:49:28
    #define DY_PORT P1 //设置LED连接的I/O组 #define DY_SPEED 1 //设置每一个明亮级的停留时间(值域:0~65535) #define DY_PWM 500 //设置明亮的总级数(级数过大会出现闪烁)(值域:0~65535) #define DY_...
  • 2.LED灯发光原理 LED灯中有电流通过时候,将点亮LED灯,单片机系统中,常见的LED灯如下所示,其中长的引脚一端为正极,短的为负极。 那么问题来了,如何让LED中有电流通过呢?电流到多少才能点亮LED呢?我们先看下...
  • 可调呼吸灯C程序

    2013-02-27 19:24:12
    51单片机控制LED灯,PWM输出,实现LED明暗调节;关键词:可调 呼吸灯 C程序
  • 基于51单片机pwm控制的呼吸灯程序

    热门讨论 2011-11-04 21:39:24
    基于51单片机,通过定时器输出pwm波,全局变量控制占空比,达到led呼吸灯的目的。欢迎下载。
  • 呼吸灯,就是指灯光设备的亮度随着时间由暗到亮逐渐增强,再由亮到暗逐渐衰减, 很有节奏感地一起一伏,就像是在呼吸一样,因而被广泛应用于手机、电脑等电子设备的 指示灯中,冰冷的...要控制 LED 灯达到呼吸灯的...
  • 2:呼吸灯效果。 3:PC端通过串口发送RTC_Set函数设置实时时钟,通过串口发送RTC_Alarm_Set设置闹钟。 4:PC端通过发送test_fun函数控制LED7的亮灭和蜂鸣器。 发送test_fun(1),LED7亮; 发送test_fun(2),LED7...
  • 本次实验是基于基于qtLED呼吸灯程序(多线程控制),大家都知道呼吸灯都是用pwm波来控制输出电压的大小来控制呼吸灯的一闪一灭来实现呼吸的...led.cpp文件,里面写了一个run函数,就是呼吸灯程序 。。。下面下煮菜 这
  • 之前写过用内部pwm直接产生... 这次写的是用定时器,不推薦用延时来模拟。此程序结合了我之前发的矩阵按键程序,按键进行亮度调整。 #include"lcd12864.h" #include<reg51.h> uchar code num1[]={" 1234567...
  • 这个程序简单,能让你的led呼吸起来!很好用,希望能帮大家啊

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 125
精华内容 50
关键字:

led呼吸灯程序