桃心led的c语言源程序
更新时间:2023-06-17程序介绍
本程序是一段C语言源代码,用于控制LED进行桃心形状的闪烁。程序主要使用了一些基本的C语言控制语句,包括if语句、for语句等。通过控制LED的亮灭状态,达到呈现出桃心形状的效果。
程序主要功能
程序主要功能包括:
- 基于C语言的控制语句计算桃心形状的像素点坐标
- 控制LED的亮灭状态呈现出桃心形状的效果
- 通过循环实现桃心形状闪烁
程序实现思路
程序的主要实现思路包括:
- 计算桃心形状的像素点坐标
- 控制LED的亮灭状态呈现出桃心形状的效果
- 通过循环实现桃心形状闪烁
#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;
}
}
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); //延时
}
go(); //计算图像各点
print(); //打印显示
while(1)
{ printf("button test\n");
if(digitalRead(BUTTON)==0) //检测到按钮按下
{ T=T*-1; }
}