51单片机89c51rc,怎么设计心形流水灯?led至少30个,?求电路图,和程序!步骤要具体


邮箱2404302316@qq.com

#include //51系列单片机定义文件

#define uchar unsigned char //定义无符号字渗猜符

#define uint unsigned int //定义无符号整数

void delay(uint); //声明延时函数

void main(void)

uint i;

uchar temp; 

while(1)

{

temp=0x01;

for(i=0;i<8;i++) //8个流水灯逐个闪动

{

P0=~temp;

delay(100); //调用延时函数

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++) //8个流水灯反向逐个闪动

{

P0=~temp;

delay(100); //调用延时函数

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++) //8个流姿喊陵水灯依次全部点亮

{

P0=temp;

delay(100); //调迹戚用延时函数

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++) //8个流水灯依次反向全部点亮

{

P0=temp;

delay(100); //调用延时函数

temp>>=1;

}

}

}

void delay(uint t) //定义延时函数

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}


把led布局呈心形状春中..然后控制IO让他们依次点汪森春困耐亮,就可以了,想复杂点的话就多弄点花样,比如隔一个亮一下之类的
做点阵吧要什么图形都能出来,常用的16X16点阵的模块。
呵呵,其实不难
简简单单