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

本文介绍了两种实用的单片机呼吸灯程序,利用结构体和PWM控制LED的亮度变化,实现呼吸效果。程序不占用MCU的系统时间,通过定时扫描调节点亮和熄灭时间,适用于工程应用。
摘要由CSDN通过智能技术生成

 


typedef struct     // 结构体
{

    uchar    dir;
    uchar    pwm_duty;


}StuType;


 StuType R,G,B;

 


/*****************************
函数名:void  Change_RGB(StuType  *p)
功能:多种颜色RGB 合成呼吸灯


*******************************/
void  Change_RGB(StuType  *p)
{
    
    
    if(p->dir)            //方向
    {
        if((p->pwm_duty)>0)
        {
            p->pwm_duty--;

            if(p->pwm_duty==0)
            {
                p->dir=0;
            }
        }
        

    }
    else
    {
        if(p->pwm_duty<SET_COLOUR)
        {
            p->pwm_duty++;
            if(p->pwm_duty==SET_COLOUR)
            {

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
循环闪烁LED灯的程序可以使用C语言实现。下面是一个基本的程序结构示例,其中包括了结构体使用和函数调用两个方面。 1. 结构体使用 结构体是一种用户自定义数据类型,可以将不同数据类型的成员组合在一起,形成一个新的数据类型。在本例中,我们可以定义一个名为 LED结构体,用来描述 LED 灯的状态。 typedef struct { int pin; // LED 的引脚 int state; // LED 的状态(0表示灭,1表示亮) } LED; 2. 函数调用 函数是一段代码,用来完成特定的任务。在本例中,我们需要编一个函数,用来控制 LED 灯的闪烁。该函数的基本结构如下所示: void blink(LED* led) { // 在此处编控制 LED 灯闪烁的代码 } 其中,参数 led 是指向 LED 结构体的指针,表示需要控制的 LED 灯。 3. 程序结构 在上述结构体和函数的基础上,我们可以编一个完整的程序,用来控制 LED 灯的闪烁。程序的基本结构如下所示: #include <stdio.h> typedef struct { int pin; int state; } LED; void blink(LED* led); int main() { LED led = { 13, 0 }; while (1) { blink(&led); } return 0; } void blink(LED* led) { led->state = !led->state; digitalWrite(led->pin, led->state); delay(1000); } 该程序首先定义了一个名为 LED结构体,用来描述 LED 灯的状态。然后,定义了一个名为 blink 的函数,用来控制 LED 灯的闪烁。该函数的参数是一个指向 LED 结构体的指针。在函数中,首先改变了 LED 灯的状态,然后调用 digitalWrite 函数将新状态LED 灯的引脚中,最后使用 delay 函数延时 1 秒。 在主函数中,创建了一个 LED 结构体对象 led,并将引脚号设为 13,状态设为 0。然后,使用一个无限循环调用 blink 函数,来控制 LED 灯的闪烁。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值