1、单片机心型流水灯程序文件#include #define uint unsigned int#define uchar unsigned charuchar code table0=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/LED从低位往高位移uchar code table1=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;/LED从高位往低位移uchar code table2=0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00;/LED从1个亮到8个都点亮(从低位往高位)uchar cod
2、e table3=0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00;/LED从1个亮到8个都点亮(从高位往低位)uchar code table4=0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff;/LED从8个全亮到一个都不亮(从低位往高位)uchar code table5=0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff;/LED从8个全亮到一个都不亮(从高位往低位)uchar code table6=0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e
3、;/LED从低位往高位移(最低位始终为0)uchar code table7=0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e;/LED从高位往低位移(最高位始终为0)uchar i,j; /定义循环变量uint tt=70; /定义时间指数void delay(uint time) /延时函数 uint x,y; for(x=time;x0;x-) for(y=110;y0;y-);void disp0() /状态0 所有LED闪烁3次 for(i=0;i3;i+) P0=0x00; P2=0x00; P3=0x00; P1=0x00; delay(300);
4、P0=0xff; P2=0xff; P3=0xff; P1=0xff; delay(300); void disp1() /状态1 LED顺时针转一圈 for(i=0;i8;i+) P2=table1i; delay(100); P2=0xff; for(i=0;i8;i+) P3=table1i; delay(100); P3=0xff; for(i=0;i8;i+) P1=table1i; delay(100); P1=0xff; for(i=0;i8;i+) P0=table0i; delay(100); P0=0xff;void disp2() /状态2 LED逆时针转一圈 for(i
5、=0;i8;i+) P0=table1i; delay(100); P0=0xff; for(i=0;i8;i+) P1=table0i; delay(100); P1=0xff; for(i=0;i8;i+) P3=table0i; delay(100); P3=0xff; for(i=0;i8;i+) P2=table0i; delay(100); P2=0xff;void disp3() /状态3 4个LED同时顺时、逆时针移动1/4圈 for(i=0;i8;i+) P0=table1i; P1=table1i; P2=table1i; P3=table0i; delay(100); f
6、or(i=0;i8;i+) P0=table0i; P1=table0i; P2=table0i; P3=table1i; delay(100); P3=0xff; P0=0xff; void disp4() /状态4 2个LED同时顺时针移动半圈 for(i=0;i8;i+) P2=table1i; P1=table1i; delay(100); P2=0xff; P1=0xff; for(i=0;i8;i+) P3=table1i; P0=table0i; delay(100); P3=0xff; P0=0xff;void disp5() /状态5 2个LED同时逆时针移动半圈 for(i
7、=0;i8;i+) P0=table1i; P3=table0i; delay(100); P0=0xff; P3=0xff; for(i=0;i8;i+) P1=table0i; P2=table0i; delay(100); P1=0xff; P2=0xff;void disp6() /状态6 LED自上而下逐渐点亮(一半点亮一半不亮) for(i=0;i8;i+) P0=table3i; P2=table3i; delay(100); P0=0xff; P2=0xff; for(i=0;i8;i+) P1=table2i; P3=table3i; delay(100); P1=0xff;
8、 P3=0xff;void disp7() /状态7 LED自下而上逐渐点亮(直到全部点亮) for(i=0;i8;i+) P1=table3i; P3=table2i; delay(100); for(i=0;i8;i+) P0=table2i; P2=table2i; delay(100); void disp8() /状态8 间断8格的4个LED亮并逆时针旋转 for(j=0;j2;j+) for(i=0;i8;i+) P0=table1i; P2=table0i; P1=table0i; P3=table0i; delay(100); P0=0xff; P2=0xff; P1=0xff
9、; P3=0xff; for(i=0;i8;i+) P0=table1i; P2=table0i; P1=table0i; P3=table0i; delay(100); P0=0xff; P2=0xff; P1=0xff; P3=0xff; void disp9() /状态9 间断8格的4个LED亮,然后逆时针逐渐点亮(直到全部点亮) for(i=0;i8;i+) P0=table3i; P2=table2i; P1=table2i; P3=table2i; delay(100); delay(500); void disp10() /状态10 从LED全部亮到全不亮(间断8格的4个LED开
10、始逆时针熄灭) for(i=0;i9;i+) P0=table5i; P2=table4i; P1=table4i; P3=table4i; delay(100); delay(300);void disp11() /状态11 间断8格的4个LED亮并顺时针旋转 for(j=0;j2;j+) for(i=0;i8;i+) P0=table0i; P2=table1i; P1=table1i; P3=table1i; delay(100); P0=0xff; P2=0xff; P1=0xff; P3=0xff; for(i=0;i8;i+) P0=table0i; P2=table1i; P1=
11、table1i; P3=table1i; delay(100); P0=0xff; P2=0xff; P1=0xff; P3=0xff; void disp12() /间断8格的4个LED亮,然后顺时针逐渐点亮(直到全部点亮) for(i=0;i8;i+) P0=table2i; P2=table3i; P1=table3i; P3=table3i; delay(100); delay(1000);void disp13() /状态13 从LED全部亮到全不亮(间断8格的4个LED开始顺时针熄灭) for(i=0;i9;i+) P0=table4i; P2=table5i; P1=table5
12、i; P3=table5i; delay(100); delay(300);void disp14() /状态14 从LED不亮到全亮(从P0.0、P1.0、P2.0、P3.7开始逐步点亮) for(i=0;i8;i+) P0=table2i; P1=table2i; P2=table2i; P3=table3i; delay(100); void disp15() /状态15 从LED全亮到全不亮(从P0.7、P1.7、P2.7、P3.0开始逐步熄灭) for(i=0;i9;i+) P0=table5i; P1=table5i; P2=table5i; P3=table4i; delay(100); delay(300);void disp16() /状态16 LED灯交替闪烁(频率有慢变快) for(i=0;i5;i+) P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa; delay(100); P0=P0; P1=P1; P2=P2; P3=P3; delay(100); for(i=0;i5;i+)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1