精华内容
下载资源
问答
  • 呼吸灯C51最短编程

    2014-09-14 22:56:34
    呼吸灯C51最短编程
  • 51单片机心形灯——实现旋转呼吸灯流水编程 实现按键K1实现从左向右流水,按键K2实现从右往左流水,按键K3实现暂停流水,按键K4实现继续流水 注意:本代码存在小小BUG即按键K1以后可以按键K3和K4控制流水,不能按K2...

    51单片机心形灯——实现旋转呼吸灯流水编程

    其他心形灯类型编码请看我的其他博文~
    心形灯效果图 如果是静态效果请刷新页面哦
    在这里插入图片描述
    心形灯原理图
    在这里插入图片描述

    #include <reg51.h>
    #include <intrins.h>
    #define uchar unsigned char
    #define uint unsigned int
    sbit led0 =P3^6;
    sbit led1 = P2^2;
    uint num, timenum=100, leddirction=0, ledpwm=0, ledpwm_temp, pwm_max=100, pwm_min=0;
    unsigned char code table[]={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};
    unsigned char code table1[]={0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};
    uint flag0=0;
    
    void init(){
    	TMOD=0x01;	//定时器1模式
    	TH0 = (65536-10)/256;
    	TL0 = (65536-10)%256; 
    	ET0=1;	//开定时器0中断
    	EA=1;		//开总中断
    	TR0=1;	//启动定时器0
    }
    
    void Delay(unsigned int i){
    	unsigned char j;
    	for(;i>0;i--){
    		for(j=110;j>0;j--);
    	}
    }
    
    void main(){
    	//init();
    	uint i=0;
    	while(1){
    		while(flag0==0){	//先让心形灯做底部D17号灯呼吸闪烁,在这里利用flag来控制当前接口内灯的循环闪烁
    			if((timenum++)>=100){
    				timenum=0;
    				if(leddirction==0){
    					ledpwm++;
    					if(ledpwm>=pwm_max){
    						ledpwm=pwm_max;
    						leddirction=1;
    					}
    				}
    				if(leddirction==1){
    					ledpwm--;
    					if(ledpwm<=pwm_min){
    						ledpwm=pwm_min;
    						flag0=1;
    						leddirction=0;
    					}
    				}
    				ledpwm_temp=ledpwm;
    			}
    			if(ledpwm_temp>0){
    				led0 = 0;
    				ledpwm_temp--;
    			}else{
    				led0 = 1;
    			}
    		}
    		P3=0xff;			//D17号灯闪烁结束,让其位置变为1让其熄灭
    		flag0=0;
    		
    		for(i=0;i<8;i++){		//让心形灯右半部分呼吸闪烁
    			while(flag0==0){
    				if((timenum++)>=100){
    					timenum=0;
    					if(leddirction==0){
    						ledpwm++;
    						if(ledpwm>=pwm_max){
    							ledpwm=pwm_max;
    							leddirction=1;
    						}
    					}
    					if(leddirction==1){
    						ledpwm--;
    						if(ledpwm<=pwm_min){
    							ledpwm=pwm_min;
    							flag0=1;
    							leddirction=0;
    						}
    					}
    					ledpwm_temp=ledpwm;
    				}
    				if(ledpwm_temp>0){
    					P0 = table[i];
    					ledpwm_temp--;
    				}else{
    					P0 = 0xff;
    				}
    			}
    			P0=0xff;
    			flag0=0;
    		}
    		
    		for(i=0;i<8;i++){		//左半部分
    			P2 = table1[i];
    			while(flag0==0){
    				if((timenum++)>=100){
    					timenum=0;
    					if(leddirction==0){
    						ledpwm++;
    						if(ledpwm>=pwm_max){
    							ledpwm=pwm_max;
    							leddirction=1;
    						}
    					}
    					if(leddirction==1){
    						ledpwm--;
    						if(ledpwm<=pwm_min){
    							ledpwm=pwm_min;
    							flag0=1;
    							leddirction=0;
    						}
    					}
    					ledpwm_temp=ledpwm;
    				}
    				if(ledpwm_temp>0){
    					P2 = table1[i];
    					ledpwm_temp--;
    				}else{
    					P2 = 0xff;
    				}
    			}
    			P2=0xff;
    			flag0=0;
    		}
    	}
    }
    

    可能存在我心形灯效果图与代码放错不匹配的情况,如果你按照我的代码装载运行效果与我效果图不一样请评论告诉我!我找一下改一下,如果我后期把相应的效果视频删了,那么就emmmmm意会~意会~我觉得你很聪明肯定懂我的意思hiahia

    展开全文
  • 关于呼吸灯的C语言编程Options 1,0,0 // Target 'Target 1' Device (AT89C51) Vendor (Atmel) Cpu (IRAM(0-0x7F) IROM(0-0xFFF) CLOCK(24000000)) FlashUt () StupF ("LIB\STARTUP.A51" ("Standard 8051 ...
  • 文章目录实验材料与环境软硬件连接【实验一】呼吸灯1.图形化编程块2.代码块3.实验成果【实验二】可调档位灯1.图形化编程块2.代码块3.实验成果 实验材料与环境 硬件:Arduino、LED灯、按钮 软件:Mixly IDE 软硬件...

    实验材料与环境

    硬件:Arduino、LED灯、按钮
    软件:Mixly IDE

    软硬件连接

    两个实验的接法相同,我的接法是:
    灯:9号(因为灯的亮度需变化,所以选择接:3,5,6,9接口)
    按钮:8号
    在这里插入图片描述

    【实验一】呼吸灯

    1.图形化编程块

    在这里插入图片描述

    2.代码块

    volatile boolean status;
    
    void FadeOff(int time) {
      for (int i = 255; i >= 0; i = i + (-5)) {
        if (digitalRead(8) == LOW) {
          delay(200);
          if (digitalRead(8) == LOW) {
            status = !status;
            while (digitalRead(8) == LOW) {
            }
    
          }
          if (status == 0) {
            return;
          }
    
        }
        analogWrite(9,i);
        delay((time / (255 / 5)));
      }
    }
    
    void FadeOn(int time) {
      for (int i = 0; i <= 255; i = i + (5)) {
        if (digitalRead(8) == LOW) {
          delay(200);
          if (digitalRead(8) == LOW) {
            status = !status;
            while (digitalRead(8) == LOW) {
            }
    
          }
          if (status == 0) {
            return;
          }
    
        }
        analogWrite(9,i);
        delay((time / (255 / 5)));
      }
    }
    
    void setup(){
      status = 0;
      pinMode(8, INPUT_PULLUP);
      pinMode(9, OUTPUT);
      Serial.begin(9600);
    }
    
    void loop(){
      if (digitalRead(8) == LOW) {
        delay(200);
        if (digitalRead(8) == LOW) {
          status = !status;
          while (digitalRead(8) == LOW) {
          }
    
        }
    
      }
      if (status == 1) {
        FadeOn(2000);
        FadeOff(2000);
    
      } else {
        digitalWrite(9,LOW);
    
      }
      Serial.print(digitalRead(8));
      Serial.println(status);
    
    }
    

    3.实验成果

    实验视频我放在了B站上:(是高清的)
    B站https://www.bilibili.com/video/av73622143/

    【实验二】可调档位灯

    1.图形化编程块

    在这里插入图片描述

    2.代码块

    volatile int bright;
    volatile int click;
    
    void setup(){
      pinMode(8, INPUT);
      Serial.begin(9600);
      click = 0;
      bright = 0;
      pinMode(8, INPUT_PULLUP);
    }
    
    void loop(){
      if (digitalRead(8) == LOW) {
        delay(200);
        if (digitalRead(8) == LOW) {
          click = click + 1;
          if (click == 6) {
            click = 0;
    
          }
          while (digitalRead(8) == LOW) {
          }
    
        }
    
      }
      analogWrite(9,(click * 51));
      Serial.println(click);
    
    }
    

    3.实验成果

    实验视频我放在了B站上:(由于拍摄手法不好,此视频不是高清)
    B站https://www.bilibili.com/video/av73518373/

    展开全文
  • 米思奇呼吸灯

    2019-10-27 16:40:55
    米思奇呼吸灯 这是一个简单的米思奇呼吸灯 ...米思奇呼吸灯的图形化编程 米思奇呼吸灯的图形化编程的C源码 volatile int time; void fadeOff(int time) { for (int i = 255; i >= 0; i = i + (-...

    米思奇呼吸灯

    这是一个简单的米思奇呼吸灯


    米思奇呼吸灯的所需工具

    UNO R3开发板,UNO拓展版,杜邦线:公对公:一条。


    米思奇呼吸灯

    LED----10


    米思奇呼吸灯的图形化编程

    呼吸灯


    米思奇呼吸灯的图形化编程的C源码

    volatile int time;
    
    void fadeOff(int time) {
      for (int i = 255; i >= 0; i = i + (-5)) {
        analogWrite(10,i);
        delay((time / (255 + 5)));
      }
    }
    
    void fadeOn(int time) {
      for (int i = 0; i <= 255; i = i + (5)) {
        analogWrite(10,i);
        delay((time / (255 + 5)));
      }
    }
    
    void setup(){
      time = 0;
    }
    
    void loop(){
      fadeOn(10000);
      fadeOff(10000);
    
    }
    

    展开全文
  • #include <STC15F2K60S2.h> unsigned char PWM_COUNT=0; unsigned char PWM_DUTY=5; unsigned char PWM_CICLE=10; bit PWM_DRECTION=0;//0:DUTY增加 1:DUTY减小 unsigned int PWM_RENER_LIMIT=0;...

    #include <STC15F2K60S2.h>

    unsigned char PWM_COUNT=0;
    unsigned char PWM_DUTY=5;
    unsigned char PWM_CICLE=10;
    bit PWM_DRECTION=0;//0:DUTY增加 1:DUTY减小
    unsigned int PWM_RENER_LIMIT=0;

    void Timer0Init(void) //100微秒@11.0592MHz
    {
    AUXR |= 0x80; //定时器时钟1T模式
    TMOD &= 0xF0; //设置定时器模式
    TL0 = 0xAE; //设置定时初值
    TH0 = 0xFB; //设置定时初值
    TF0 = 0; //清除TF0标志
    TR0 = 1; //定时器0开始计时
    ET0 = 1;
    EA = 1;
    }

    void main(void)
    {
    P2=0XA0;P0=0X00;P2=0X1F;
    P2=0x80;P0=0xff;P2=0x1F;
    Timer0Init();
    while(1)
    {

    }
    

    }

    void timer0_int (void) interrupt 1
    {
    PWM_COUNT++;PWM_RENER_LIMIT++;

    if(PWM_COUNT==PWM_DUTY)
    {
    	P2=0x80;P0=0X00;P2=0x00;
    }
    if(PWM_COUNT==PWM_CICLE)
    {
    	P2=0x80;P0=0xff;P2=0x00;
    	PWM_COUNT=0;
    }
    
    
    if(PWM_RENER_LIMIT==1000 && PWM_DRECTION==0)	//增加DUTY
    {
    	PWM_RENER_LIMIT=0;
    	PWM_DUTY++;
    	if(PWM_DUTY==9)PWM_DRECTION=1;
    }
    
    if(PWM_RENER_LIMIT==1000 && PWM_DRECTION==1)	//增加DUTY
    {
    	PWM_RENER_LIMIT=0;
    	PWM_DUTY--;
    	if(PWM_DUTY==1)PWM_DRECTION=0;
    }
    

    }

    展开全文
  • VET+呼吸灯.rar

    2020-05-12 22:48:45
    完整的基于IAR 8平台的STM32F103VET6呼吸灯源代码,亲编程亲测可用。源程序只采用了单一的蓝色灯做实验,在程序启动时把红灯和绿灯关了以免影响效果。呼吸灯在原来的正弦波数据上做了修正,以避免灯最亮时太刺明。
  • Mixly-呼吸灯及可调灯

    2019-11-22 14:46:45
    使用图形化编程实现呼吸灯以及可调节灯 实验所需 硬件:Arduino、LED灯、按钮 软件:Mixly IDE 1.Arduino简介 Arduino是一种开源的电子平台,该平台最初主要基于AVR单片机的微控制器和相应的开发软件,目前在国内正...
  • 这期带来一个由Arduino UNO板控制的呼吸灯电路实验效果小灯在UNO板PWM信号的控制下可以逐渐变亮呼吸灯效果所需器材一根编程线一块Arduino 的UNO板一块用于电路搭接的面包板一个220欧电阻(起限流作用)一颗发光二极管...
  • 5 呼吸灯verilog与Systemverilog编码 1 本章目录 1)FPGA简介 2)Verilog简介 3)Systemverilog简介 4)呼吸灯verilog编码 5)呼吸灯Systemverilog编码 6)结束语 2 FPGA简介 FPGA(Field Programmable ...
  • 这样大家可以自己编程做出各种各样的灯光效果,例如想做出呼吸灯效果、闪烁灯效果都是可以的。这颗LED灯可以配合着语音交互过程,做出各样反馈效果,这样语音板就显的更好玩一点。这颗LED灯,我用的是一颗蓝色的LED...
  • 实现“呼吸灯” 既然已经能够使用 C语言编程单片机控制 LED 小灯的亮度,实现“呼吸灯”就不难了。只要传递给 twinkle_once() 函数的参数由小变大,再有大变小就可以了。所以可以写出如下控制代码,请看: int main...
  • STM32 使用PWM实现呼吸灯

    千次阅读 2020-03-26 22:22:06
    STM32 PWM实现呼吸灯 使用STM32F103ZET6 定时器4 CH2通道产生PWM波,在GPIOD,GPIO_PIN13引脚LED1产生呼吸灯效果。 实验工具:MDK5,STM32F103ZET6开发板 使用固件库编程 实验效果:LED灯亮——逐渐变暗——全灭——...
  • 创新放飞梦想,实践铸就未来 小黑上回说道stm32新建工程的操作(任意门:STM32新建工程(固件库版)【点击查看】(图一) 接下来我们讲stm32的点灯操作,点灯是学习任意一款单片机的入门级操作,就像一门编程语言的...
  • 文章目录 1.软硬件连接 2.图形化编程块 3.代码块 ...制作一个简易的呼吸灯 1.软硬件连接 LED——10 2.图形化编程块 volatile int time; void fadeOn(int time) { for (int i = 0; i <= 255; i...
  • 5呼吸灯systemverilog与VHDL编码 1 本章目录 1)FPGA简介 2)SystemVerilog简介 3)VHDL简介 4)呼吸灯verilog编码 5)呼吸灯VHDL编码 6)结束语 2 FPGA简介 FPGA(Field Programmable Gate Array)是在PAL...
  • stm32使用延时实现呼吸灯(寄存器) 该实验是使用STM32F103C8T6实现,使用寄存器编程呼吸灯:灯光的亮度在控制下不断的从亮到暗,再从暗到亮之间变化,感觉好像是人在呼吸。 一般使用PWM脉冲调制实现,其原理就时...
  • 2.05 SystemVerilog语言编写呼吸灯 2.5.1 本节目录 1)章节目录; 2)FPGA简介; 3)SystemVerilog简介; 4)SystemVerilog语言编写呼吸灯; 5)本节结束; 2.5.2 FPGA简介 FPGA(Field Programmable Gate ...
  • 2.5 verilog语言编写呼吸灯 2.5.1 本节目录 1)本节目录; 2)FPGA简介; 3)verilog简介; 4)verilog语言编写呼吸灯; 5)本节结束。 2.5.2 FPGA简介 FPGA(Field Programmable Gate Array)是在PAL、GAL...
  • Nodemcu延迟实现呼吸灯

    2020-05-31 18:30:53
    nodemcu用lua语言实现延迟呼吸灯。 做过单片机,用惯了c语言的,都喜欢用while或for来实现延迟,但是lua语言用while循环就没用了,因为c语言是同步语言,lua是异步语言。 同步和异步什么区别呢? 同步:第一句没执行...
  • 这样大家可以自己编程做出各种各样的灯光效果,例如想做出呼吸灯效果、闪烁灯效果都是可以的。这颗LED灯可以配合着语音交互过程,做出各样反馈效果,这样语音板就显的更好玩一点。这颗LED灯,我用的是一颗蓝色的LED...
  • 如果使用可编程器件,我们可以考虑使用“亮-灭”的方式,即通过修改PWM波占空比来实现呼吸灯的效果,记得学习arduino的基础实验中就有这个,但本篇博客主要讨论如何用电路来实现呼吸灯。 那么第一个要考虑的问题便....
  • 实现“呼吸灯” 既然已经能够使用 C语言编程单片机控制 LED 小灯的亮度,实现“呼吸灯”就不难了。只要传递给 twinkle_once() 函数的参数由小变大,再有大变小就可以了。所以可以写出如下控制代码,请看: int main...
  • 5 呼吸灯verilog与VHDL编码 1 本章目录 1)FPGA简介 2)Verilog简介 3)VHDL简介 4)呼吸灯verilog编码 5)呼吸灯VHDL编码 6)结束语 2 FPGA简介 FPGA(Field Programmable Gate Array)是在PAL、GAL等可...
  • stm32f103呼吸灯(PWM脉冲宽度调制)一、PWM脉冲宽度调制二、硬件说明三、编程实现1、硬件相关宏定义2、GPIO初始化3、定义 PWM表4、定时器 PWM配置5、定时器中断服务函数6、计算拟合周期四、呼吸灯演示1、PWM输出...
  • 于是就傻乎乎的用循环体写了一个简单的呼吸灯,并在潘多拉STM32L4上运行。运行效果较好。 代码如下: #include "main.h" //HAL库编程 int main(void) { int i,j,k; GPIO_InitTypeDef gpio_Init; HAL_Init(); __...
  • STM32的通用定时器使用实现呼吸灯

    千次阅读 2019-10-12 17:43:09
    STM32的通用定时器使用实现呼吸灯 ** STM32通用定时器应用 STM3F1拥有4个通用定时器,分别是TIM2、 TIM3、 TIM4 和 TIM5;高级定时器2个分别是TIM1和TIM8。 TIM3主要功能 1、通用TIMx (TIM2、 TIM3、 TIM4和TIM5)...
  • 玩转树莓派 2017-07-09 22:52呼吸灯概述上一篇 我们通过控制GPIO口输出高低电平来控制一只 LED 的亮灭。这次我们来控制 LED 的亮度,灯由暗渐渐变亮,再由亮渐渐边暗,反复循环,也就是呼吸灯的效果。按 Ctrl+C结束...
  • STM32HAL定时器PWM输出呼吸灯

    千次阅读 2018-07-23 17:19:56
     ●16位可编程(可实时修改)预分频器,用于对输入的时钟按系数为1~65536之间的任意数值分频   ●在更新事件(计数器溢出)时产生中断/DMA请求  高级与通用定时器功能包括(红色字体为高级定时器与通用定时器区别...

空空如也

空空如也

1 2 3 4
收藏数 80
精华内容 32
关键字:

呼吸灯编程