c语言编程笔录

首页 >   > 笔记大全

笔记大全

桃心led的c语言源程序

更新时间:2023-06-17

程序介绍

本程序是一段C语言源代码,用于控制LED进行桃心形状的闪烁。程序主要使用了一些基本的C语言控制语句,包括if语句、for语句等。通过控制LED的亮灭状态,达到呈现出桃心形状的效果。

程序主要功能

程序主要功能包括:

  1. 基于C语言的控制语句计算桃心形状的像素点坐标
  2. 控制LED的亮灭状态呈现出桃心形状的效果
  3. 通过循环实现桃心形状闪烁

程序实现思路

程序的主要实现思路包括:

  1. 计算桃心形状的像素点坐标
  2. #define T 10 //状态标志,0标识暂停,1标识心形图像
      #define N 3 //延时参数
      int A=6,B=10; //控制桃心大小
      int s1=-1,s2=-1;
      int x,y;
      int z[15][15]={0};
      void print() //打印函数,显示图像
      { int i,j;
        for(i=0;i<=15;i++,printf("\n")) //15*15打印图像
        for(j=0;j<=15;j++) printf("%c",z[i][j]?'*':' '); //1为点,0为空格
      }
      void go() //核心代码,计算图像各点
      { float x,y;
        int i,j;
        for(i=0;i<=48;i++) //y轴对应[0,48]
        for(j=0;j<=78;j++) //x轴对应[0,78]
        { y=-i/48.0+1; x=j/39.0-1;
          if((x*x+y*y-1)*(x*x+y*y-1)*(x*x+y*y-1)-x*x*y*y*y<=0.0)
          z[i/3+5][j/3+5]=1;
        }
      }
  3. 控制LED的亮灭状态呈现出桃心形状的效果
  4. int main() //主函数
      { int i,j,flag=0;
        wiringPiSetup();
        pinMode(LED0,OUTPUT);//LED0对应GPIO17
        while(1)
        { for(j=0;j<2;j++) //心形图像闪烁
          { if(T==1) //状态标志为1时显示图像
            { for(i=0;i<15;i++) //实现闪烁效果
              { digitalWrite(LED0,LOW); //点亮LED0
                if(i==6) digitalWrite(LED0,HIGH); //让LED0闪烁
                 delay(N); //延时
                 digitalWrite(LED0,HIGH); //关闭LED0
                if(i==6) digitalWrite(LED0,LOW); //让LED0闪烁
                 delay(N); //延时
              }
            }
            else //状态标志为0时关闭LED0
            { digitalWrite(LED0,HIGH); }
          }
          delay(N*10); //延时
      }
  5. 通过循环实现桃心形状闪烁
  6. go(); //计算图像各点
      print(); //打印显示
      while(1)
      { printf("button test\n");
        if(digitalRead(BUTTON)==0) //检测到按钮按下
        { T=T*-1; }
      }