1、32位流水灯程序 耗时两天,终于写完32位流水灯的程序,建议用stc89c58的芯片,因为有16.16K,原理图网上很多的。祝你们好运!#includetypedef unsigned char uint8;typedef unsigned int uint16;typedef unsigned long uint32;uint8 code table0=0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F; /由低位到高位;uint8 code table1=0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE; /由高位到低位;uint8
2、 code table2=0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00; /一个亮到八个亮,低位到高位渐亮;uint8 code table3=0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00; /一个亮到八个亮,高位到低位渐亮;uint8 code table4=0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF; /八个亮到一个亮,低位到高位;uint8 code table5=0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF; /八个亮到一个亮,高
3、位到低位;uint8 code table6=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80; /一个灯移位,低位到高位;uint8 code table7=0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01; /一个灯移位,高位到低位;uint8 code table8=0x01,0x03,0x06,0x0C,0x18,0x30,0x60,0xC0,0x80; /两个灯的移位,低位到高位;uint8 code table9=0x80,0xC0,0x60,0x30,0x18,0x0C,0x06,0x03,0x01; /两个灯的移位,高
4、位到低位;void delay(uint16 time) uint16 i,j; for(i=0;i=time;i+) for(j=0;j5;j+);uint16 i,j;void disp0() /逆时针四灯旋转 for(i=0;i8;i+) P0=table0i;P1=table1i;P2=table1i;P3=table1i;delay(1000);void disp1() /顺时针四灯旋转 for(i=0;i8;i+) P2=table0i;P3=table0i;P1=table0i;P0=table1i;delay(1000); P0=0xFF;P1=0xFF;P2=0xFF;P3=
5、0xFF;void disp2() /逆时针旋转 for(i=0;i8;i+) P0=table1i;delay(1000); P0=0xFF; for(i=0;i8;i+) P1=table0i;delay(1000); P1=0xFF; for(i=0;i8;i+) P3=table0i;delay(1000); P3=0xFF; for(i=0;i8;i+) P2=table0i;delay(1000); P2=0xFF;void disp3 () /顺时针旋转 for(i=0;i8;i+) P2=table1i;delay(1000); P2=0xFF; for(i=0;i8;i+)
6、P3=table1i;delay(1000); P3=0xFF; for(i=0;i8;i+) P1=table1i;delay(1000); P1=0xFF; for(i=0;i8;i+) P0=table0i;delay(1000); P0=0xFF; void disp4() /上到下的逐个点亮 for(i=0;i8;i+) P0=table1i;P2=table1i;delay(1000); P0=0xFF;P2=0xFF; for(i=0;i8;i+) P1=table0i;P3=table1i;delay(1000); P1=0xFF;P3=0xFF;void disp5() /下
7、到上的逐个点亮 for(i=0;i8;i+) P1=table1i;P3=table0i;delay(1000); P1=0xFF;P3=0xFF; for(i=0;i8;i+) P0=table0i;P2=table0i;delay(1000); P0=0xFF;P2=0xFF;void disp6() /左右分别从一个亮到全亮 for(i=0;i8;i+) P0=table3i;P2=table3i;delay(1000); P0=0x00;P1=0x00; for(i=0;i8;i+) P1=table2i;P3=table3i;delay(1000); P1=0x00;P3=0x00;
8、void disp7() /左右分别八个全亮到一个都不亮 for(i=0;i9;i+) P3=table4i;P1=table5i;P0=0x00;P2=0x00;delay(1000); P3=0xFF;P1=0xFF; for(i=0;i9;i+) P2=table4i;P0=table4i;delay(1000);void disp8() /逆时针全部点亮 for(i=0;i8;i+) P0=table3i;delay(1000); for(i=0;i8;i+) P1=table2i;delay(1000); for(i=0;i8;i+) P3=table2i;delay(1000);
9、for(i=0;i8;i+) P2=table2i;delay(1000);void disp9() /顺时针全部熄灭 for(i=0;i9;i+) P2=table5i;delay(1000); for(i=0;i9;i+) P3=table5i;delay(1000); for(i=0;i9;i+) P1=table5i;delay(1000); for(i=0;i9;i+) P0=table4i;delay(1000);void disp10() /顺时针全部点亮 for(i=0;i8;i+) P2=table3i;delay(1000); for(i=0;i8;i+) P3=table
10、3i;delay(1000); for(i=0;i8;i+) P1=table3i;delay(1000); for(i=0;i8;i+) P0=table2i;delay(1000);void disp11() /逆时针全部熄灭 for(i=0;i9;i+) P0=table5i;delay(1000); for(i=0;i9;i+) P1=table4i;delay(1000); for(i=0;i9;i+) P3=table4i;delay(1000); for(i=0;i9;i+) P2=table4i;delay(1000);void disp12() /一个灯亮到16灯亮,之后灭,
11、追逐式,逆时针 for(i=0;i8;i+) P0=table3i;delay(1000); for(i=0;i8;i+) P1=table2i;delay(1000); P0=0x00;P1=0x00;delay(3000); for(i=0;i9;i+) P0=table5i;delay(1000); for(i=0;i9;i+) P1=table4i;delay(1000);/* for(i=0;i8;i+) P3=table2i;delay(1000); for(i=0;i8;i+) P2=table2i;delay(1000); P3=0x00;P2=0x00;delay(3000)
12、; for(i=0;i9;i+) P3=table4i;delay(1000); for(i=0;i9;i+) P2=table4i;delay(1000);void disp13() /一个灯亮到16灯亮,之后灭,追逐式,顺时针 for(i=0;i8;i+) P2=table3i;delay(1000); for(i=0;i8;i+) P3=table3i;delay(1000); P2=0x00;P3=0x00;delay(3000); for(i=0;i9;i+) P2=table5i;delay(1000); for(i=0;i9;i+) P3=table5i;delay(1000);
13、/* for(i=0;i8;i+) P1=table3i;delay(1000); for(i=0;i8;i+) P0=table2i;delay(1000); P1=0x00;P0=0x00;delay(3000); for(i=0;i9;i+) P1=table5i;delay(1000); for(i=0;i9;i+) P0=table4i;delay(1000);void disp14() /一个灯亮到16个灯亮,追逐式,逆时针 for(i=0;i8;i+) P0=table3i;delay(1000); for(i=0;i8;i+) P1=table2i;delay(1000); P
14、0=0xFF;P1=0xFF; for(i=0;i8;i+) P3=table2i;delay(1000); for(i=0;i8;i+) P2=table2i;delay(1000); P2=0xFF;P3=0xFF;void disp15() /一个灯亮到16个灯亮,追逐式,顺时针 for(i=0;i8;i+) P2=table3i;delay(1000); for(i=0;i8;i+) P3=table3i;delay(1000); P2=0xFF;P3=0xFF; for(i=0;i8;i+) P1=table3i;delay(1000); for(i=0;i8;i+) P0=tabl
15、e2i;delay(1000); P0=0xFF;P1=0xFF;void disp16() /一个灯亮到八个灯亮,追逐式,逆时针 for(i=0;i8;i+) P0=table3i;delay(1000); P0=0xFF; for(i=0;i8;i+) P1=table2i;delay(1000); P1=0xFF; for(i=0;i8;i+) P3=table2i;delay(1000); P3=0xFF; for(i=0;i8;i+) P2=table2i;delay(1000); P2=0xFF;void disp17() /一个灯亮到八个灯亮,追逐式,顺时针 for(i=0;i8
16、;i+) P2=table3i;delay(1000); P2=0xFF; for(i=0;i8;i+) P3=table3i;delay(1000); P3=0xFF; for(i=0;i8;i+) P1=table3i;delay(1000); P1=0xFF; for(i=0;i8;i+) P0=table2i;delay(1000); P1=0xFF;void disp18() /四灯,一个亮到八个亮,逆时针 for(i=0;i8;i+) P0=table3i;P1=table2i;P3=table2i;P2=table2i;delay(1000); P0=0x00;P1=0x00;P
17、2=0x00;P3=0x00;delay(5000);void disp19() /四灯,八个亮到全灭,顺时针 for(i=0;i9;i+) P0=table4i;P1=table5i;P2=table5i;P3=table5i;delay(1000);void disp20() /四灯,一个亮到八个亮,顺时针 for(i=0;i8;i+) P2=table3i;P3=table3i;P1=table3i;P0=table2i;delay(1000);void disp21() /四灯,八个亮到全灭,逆时针 for(i=0;i9;i+) P0=table5i;P1=table4i;P3=tab
18、le4i;P2=table4i;delay(1000);void disp22() /LED交替闪烁 for(i=0;i9;i+) P0=0x55;P1=0x55;P2=0x55;P3=0x55;delay(3000); P0=P0; P1=P1; P2=P2; P3=P3; delay(3000); for(i=0;i17;i+) P0=0x55;P1=0x55;P2=0x55;P3=0x55;delay(1500); P0=P0; P1=P1; P2=P2; P3=P3; delay(1500); for(i=0;i27;i+) P0=0x55;P1=0x55;P2=0x55;P3=0x5
19、5;delay(700); P0=P0; P1=P1; P2=P2; P3=P3; delay(700); for(i=0;i9;i+) P0=0xAA;P1=0xAA;P2=0xAA;P3=0xAA;delay(2000); P0=P0; P1=P1; P2=P2; P3=P3; delay(2000); for(i=0;i6;i+) P0=0xAA;P1=0xAA;P2=0xAA;P3=0xAA;delay(4000); P0=P0; P1=P1; P2=P2; P3=P3; delay(4000);void disp23() /一个灯的双边移位,PO,P1逆时针,P2,P3顺时针 for
20、(i=0;i8;i+) P1=0x00;P3=0x00;P0=table7i;P2=table7i;delay(1000); P0=0x00;P2=0x00; for(i=0;i8;i+) P1=table6i;P3=table7i;delay(1000);void disp24() /一个灯的逆双边移位,P1,P0逆时针,P3,P2顺时针 for(i=0;i8;i+) P1=table7i;P3=table6i;delay(1000); P1=0x00;P3=0x00; for(i=0;i8;i+) P0=table6i;P2=table6i;delay(1000); void disp25
21、() /两个灯的双边移位 for(i=0;i9;i+) P1=0x00;P3=0x00;P0=table9i;P2=table9i;delay(1000); P0=0x00;P2=0x00; for(i=0;i9;i+) P1=table8i;P3=table9i;delay(1000); P0=0x00;P1=0x00;P2=0x00;P3=0x00; void disp26() /两个灯的逆双边移位 for(i=0;i9;i+) P1=table9i;P3=table8i;delay(1000); P1=0x00;P3=0x00; for(i=0;i9;i+) P0=table8i;P2=
22、table8i;delay(1000); P0=0x00;P1=0x00;P2=0x00;P3=0x00;void disp27() /四个灯的相互追逐,顺时针 for(j=0;j5;j+) for(i=0;i8;i+) P0=table0i;P2=table1i;P3=table1i;P1=table1i;delay(1000); for(i=0;i8;i+) P0=table2i;P2=table3i;P3=table3i;P1=table3i;delay(2000); for(i=0;i9;i+) P0=table5i;P1=table4i;P3=table4i;P2=table4i;d
23、elay(1000);void disp28() /四个灯的相互追逐,逆时针 for(j=0;j5;j+) for(i=0;i8;i+) P0=table1i;P1=table0i;P2=table0i;P3=table0i;delay(1000); for(i=0;i8;i+) P0=table3i;P1=table2i;P3=table2i;P2=table2i;delay(2000); for(i=0;i9;i+) P0=table4i;P1=table5i;P3=table5i;P2=table5i;delay(1000);void disp29() /两个灯的追逐,逆时针 for(i
24、=0;i8;i+) P0=table1i;P3=table0i;delay(1000); P0=0xFF;P3=0xFF; for(i=0;i8;i+) P1=table0i;P2=table0i;delay(1000); P1=0xFF;P2=0xFF; for(i=0;i8;i+) P0=table3i;P3=table2i;delay(1000); P0=0x00;P3=0x00; for(i=0;i8;i+) P1=table2i;P2=table2i;delay(1000); P1=0x00;P2=0x00; P0=0xFF;P1=0xFF;P2=0xFF;P3=0xFF;void
25、disp30() /两个灯的追逐,顺时针 for(i=0;i8;i+) P2=table1i;P1=table1i;delay(1000); P2=0xFF;P1=0xFF; for(i=0;i8;i+) P3=table1i;P0=table0i;delay(1000); P3=0xFF;P0=0xFF; for(i=0;i8;i+) P2=table3i;P1=table3i;delay(1000); P2=0x00;P1=0x00; for(i=0;i8;i+) P3=table3i;P0=table2i;delay(1000); P3=0x00;P0=0x00; P0=0xFF;P1=
26、0xFF;P2=0xFF;P3=0xFF;void disp31() /P0,P2一个灯到八个灯亮,之后灭;P1,P3一个灯到八个灯亮,之后灭 for(i=0;i8;i+) P0=table3i;P2=table3i;delay(1000); P0=0x00;P2=0x00; for(i=0;i9;i+) P0=table5i;P2=table5i;delay(1000); P0=0xFF;P2=0xFF; for(i=0;i8;i+) P1=table2i;P3=table3i;delay(1000); P1=0x00;P3=0x00; for(i=0;i9;i+) P1=table4i;P
27、3=table5i;delay(1000); P1=0xFF;P3=0xFF;void disp32() /P1,P3一个灯到八个灯亮,之后灭;P0,P2一个灯到八个灯亮,之后灭 for(i=0;i8;i+) P1=table3i;P3=table2i;delay(1000); P1=0x00;P3=0x00; for(i=0;i9;i+) P1=table5i;P3=table4i;delay(1000); P1=0xFF;P3=0xFF; for(i=0;i8;i+) P0=table2i;P2=table2i;delay(1000); P0=0x00;P2=0x00; for(i=0;i9;i+) P0=table4i;P2=table4i;delay(1000); P0=0xFF;P2=0xFF;void disp33() /一个亮到八个亮,P0,P2向下亮,P1,P3向上亮 for(i=0;i8;i+) P0=table3i;P2=table3i;P1=table3i;P3=table2i;delay(1000); P0=0x00;P1=0x00;P2=0x00;P3=0x00;delay(1000); for(i=0;i9;i+) P0=tabl
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2