呼吸灯

呼吸灯的实现方法

时光怂恿深爱的人放手 提交于 2020-01-21 04:31:19
本实验是基于STC8A8K64S4A12上的 呼吸灯,顾名思义就是灯的亮度像人的呼吸一样有节奏的由暗到亮,再又亮到暗,在现代手机中被广泛的应用。 一般来说现在的单片机都带有PWM所以直接用就好了,这里就不对这个做介绍了,这里我们是使用定时器来模拟实现的。 PWM(脉冲宽度调制)对模拟信号电平进行数字编码的方法,计算机只能输出0或5V的数字电压值而不能输出模拟电压,而我们如果想获得一个模拟电压值,则需通过使用高分辨率计数器,改变方波的占空比来对一个模拟信号的电平进行编码。通过对连接和断开时间的控制,只要带宽足够,可以输出任意不大于最大电压值的模拟电压。 与之相对应的公式为: 输出电压=(接通时间/脉冲时间)*最大电压值 这样的话我们可以操作高低电平在相同的带宽内输出不同的电压,从而达到一个连续变化的电压(模拟量),这样就可以满足呼吸灯的效果了。 软件驱动 首先一些变量的声明和初始化一个定时器: unsigned char PWM_COUNT; //计数 unsigned int HUXI_COUNT; //占空比更新时间 unsigned char PWM_VLAUE; //占空比比对值 bit direc_flag; //占空比更新方向 void Timer5Init(void) //200微秒@24.000MHz { AUXR &= 0xFB; //定时器时钟12T模式 T2L

CSS呼吸灯效果

本秂侑毒 提交于 2019-12-05 02:17:44
<html> <head> </head> <body> <div class="arrow_box">按按</div> </body> <style> .arrow_box { width:40px; height:40px; animation: glow 800ms ease-out infinite alternate; } @keyframes glow { 0% { border-color: #393; box-shadow: 0 0 5px rgba(0,255,0,.2), inset 0 0 5px rgba(0,255,0,.1), 0 1px 0 #393; } 100% { border-color: #6f6; box-shadow: 0 0 20px rgba(0,255,0,.6), inset 0 0 10px rgba(0,255,0,.4), 0 1px 0 #6f6; } } </style> </html> 来源: https://www.cnblogs.com/winchance/p/11897165.html

呼吸灯和花样流水灯 51单片机实现

Deadly 提交于 2019-11-30 16:57:41
1.用C51单片机实现花样流水灯,代码如下: #include <reg52.h> #define LED_All P1            //led灯所用的接口,单片机接口不同,led灯不同 void delayms() { unsigned char x = 0;           unsigned char i; unsigned char y = 0; while(y < 0.001)             //定义led灯的切换的延时时间,越小越快 {                    //i,x,y均可以修改 x = 0; while(x<100) { i = 0; while(i<100) { i++; } x++; } y++; } } #define LED_NUM 8          //定义led灯的数量,可快速实现不同用途的修改 void main() { unsigned char k; unsigned char j; unsigned char LED_ALL[] = {0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F};      //led灯亮灭的十六进制数组 unsigned char LED_ALL1[] = {0XFC,0XF3,0XCF,0X3F};   while(1)   {     for

京东呼吸灯(轮播图)

情到浓时终转凉″ 提交于 2019-11-29 16:44:34
布局: div.slider > ul + div.arrow ul > ll(*8)> a > img div.arrow > span.arrow-left + span.arrow-right 案例分析: 当左箭头一点击,上一张图片渐渐的显示,其他图片渐渐的隐藏 当右箭头一点击,下一张图片渐渐的显示,其他图片渐渐的隐藏 关键代码 $(function(){ var count=0; $(".arrow-left").click(function(){ count--; if(count<0) { count=7; } $(.slider li).eq(count)。fadeIn().siblings().fadeOut(); }) $(".arrow-right").click(function(){ count++; if(count > 7) { count=0; } $(".slider li").eq(count).fadeIn().siblings().fadeOut(); }) }) 完整代码 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>京东商城</title> <style> * { margin: 0; padding: 0; list-style: none

嵌入式学习8--模拟PWM与呼吸灯

谁说胖子不能爱 提交于 2019-11-27 13:02:38
最近看了看PWM,但是我手上的板子4路PWM只接出来2路,还都占用了,没有办法,就想试试软件模拟pwm,本身模拟PWM是比较简单的事,但是在做了以后我又想做做呼吸灯,在呼吸灯上卡了挺久了,不过经过调试,也算勉强实现了 1.PWM概念 其实PWM的概念比较简单,无非就是在固定的周期内,设置高电平占用的时间长短,简单的说一秒一个周期,这个周期的占空比是50%。说明高电平的时间和低电平的时间是一样的,如果控制灯的话,就会看到灯在1S内会亮一次然后灭一次。 虽说PWM的概念很简单,但是要用好想当困难,对我而言是这样,特别是在肉眼可见的情况下,你需要考虑到肉眼每秒能接受多少次动作,所以需要设置PWM的频率,我就是在这个地方卡了很久,待会代码里面会解释。 PWM 用于背光、呼吸灯、舵机等器件之上,大部分PWM的实现是依赖硬件的,通过配置相应的寄存器来达到目的。硬件PWM的精度和稳定性会比软件PWM更稳定,所以在板子上一般会自带PWM。 2.PWM与hrtimer 为了使PWM更精确,所以使用了hetimer来控制,hrtimer可以做到ns级别的控制,相对来说会更加精确 对于hrtimer主要使用的是注册、定时器中断、启动、重置触发时间、注销 注册:hrtimer_init(&pwm_dev->mytimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); 定时器中断