/*关于灯光的效果*/
#include"led.h"
byte led_over=0;
byte led_seat=0;
byte PWM_DutyRatio;//占空比
byte PWM_DutyRatio_time;//占空比时间
byte breath_Direction_time=0;//呼吸方向时间
bit breath_Direction; //呼吸方向
void Led_Positive_breath(void)//正向呼吸
{
breath_Direction=0;
PWM_DutyRatio_time++;
breath_Direction_time++;
if(PWM_DutyRatio_time<=PWM_DutyRatio)
{
switch(led_seat)
{
case 1:
led1=0;led6=0;break;
case 2:
led2=0;led7=0;break;
case 3:
led3=0;led8=0;break;
case 4:
led4=0;led9=0;break;
case 5:
led5=0;led10=0;break;
}
}
else
{
switch(led_seat)
{
case 1:
led1=1;led6=1;break;
case 2:
led2=1;led7=1;break;
case 3:
led3=1;led8=1;break;
case 4:
led4=1;led9=1;break;
case 5:
led5=1;led10=1;break;
}
}
if(PWM_DutyRatio_time==20)
{
switch(led_seat)
{
case 1:
led1=1;led6=1;break;
case 2:
led2=1;led7=1;break;
case 3:
led3=1;led8=1;break;
case 4:
led4=1;led9=1;break;
case 5:
led5=1;led10=1;break;
}
PWM_DutyRatio_time=0;
}
if((breath_Direction_time==150)&&(breath_Direction==0))
{
breath_Direction_time=0;
PWM_DutyRatio++;
if(PWM_DutyRatio==19)
{
breath_Direction=1;
}
}
if(breath_Direction==1)
{
led_over=1;
PWM_DutyRatio_time=0;
PWM_DutyRatio=0;
switch(LED_seat){ //点亮LED
case 1: LED1 = 0; LED6 = 0;
break;
case 2: LED2 = 0; LED7 = 0;
break;
case 3: LED3 = 0; LED8 = 0;
break;
case 4: LED4 = 0; LED9 = 0;
break;
case 5: LED5 = 0; LED10 = 0;
PWM_DutyRatio=19; break;
}
}
}
void Led_Reverse_Breath(void)//反向呼吸
{
breath_Direction=1;
PWM_DutyRatio_time++;
breath_Direction_time++;
if(PWM_DutyRatio_time<=PWM_DutyRatio)
{
switch(led_seat)
{
case 1:
led1=0;led6=0;break;
case 2:
led2=0;led7=0;break;
case 3:
led3=0;led8=0;break;
case 4:
led4=0;led9=0;break;
case 5:
led5=0;led10=0;break;
}
}
else
{
switch(led_seat)
{
case 1:
led1=1;led6=1;break;
case 2:
led2=1;led7=1;break;
case 3:
led3=1;led8=1;break;
case 4:
led4=1;led9=1;break;
case 5:
led5=1;led10=1;break;
}
}
if(PWM_DutyRatio_time==20)
{
switch(led_seat)
{
case 1:
led1=1;led6=1;break;
case 2:
led2=1;led7=1;break;
case 3:
led3=1;led8=1;break;
case 4:
led4=1;led9=1;break;
case 5:
led5=1;led10=1;break;
}
PWM_DutyRatio_time=0;
}
if((breath_Direction_time==150)&&(breath_Direction==1))
{
breath_Direction_time=0;
PWM_DutyRatio--;
if(PWM_DutyRatio==0)
{
breath_Direction=0;
}
}
if(breath_Direction==0)
{
led_over=1;
PWM_DutyRatio_time=0;
PWM_DutyRatio=0;
switch(LED_seat){ //点亮LED
case 1: LED1 = 1; LED6 = 1;
break;
case 2: LED2 = 1; LED7 = 1;
break;
case 3: LED3 = 1; LED8 = 1;
break;
case 4: LED4 = 1; LED9 = 1;
break;
case 5: LED5 = 1; LED10 = 1;
PWM_DutyRatio=0; break;
}
}
}
应广单片机-按键状态机(包含单击、双击、长按的demo)
需积分: 4 129 浏览量
2022-11-28
17:27:26
上传
评论 2
收藏 38KB ZIP 举报
于或非
- 粉丝: 186
- 资源: 1
最新资源
- 采用P-f和Q-V滞控的去中心化逆变器型交流微电网的模拟(Simulink仿真实现)
- 彩虹聚合二级域名DNS管理系统源码v1.3
- 【TOF相机笔记3】Simulink使用方法
- 算法部署-基于C++和Python使用ONNXRuntime部署RT-DETR目标检测算法-附项目源码-优质项目实战.zip
- Bitree.cpp
- 改变浏览器大小,图片(img)内容居中显示
- 全景分割-基于FAIR-DETR对Cityscapes数据集进行微调实现全景分割-附项目源码-优质项目实战.zip
- Tru master.m4a
- 基于ELMAN神经网络的用气量预测,基于ELMAN的天然气消费量预测(代码完整,数据齐全)
- 基于Vue3+ThreeJS实现机械臂控制和预览+源码+开发文档+代码解析(高分优秀项目)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈