1、 /红色3灯走马左移声明rjl(); /红色渐亮声明rja(); /红色渐暗声明rdlszy(); /倒流水左移函数/rdlsyy(); /倒流水右移函数,还未加入zkb(unsigned char d);void ys1ms(unsigned int s); /延时声明,修改s的数值,就可以改变时间main() /主函数,由于模块化设计,只要修改下面各模块的排列顺序和时间,就可以实现各种变化模式 EA=1;/打开中断,使用中断方便调试查看模式 EX0=1; /允许外部中断0中断 EX1=1; /允许外部中断1中断 PX0=1; / 外部中断0位高优先级 while(1) /无限循环 rdls
2、zy(); /倒流水左移 rja(); /渐暗 P0=0xff; ys1ms(300); /延时0.3秒 /rdlsyy(); / 倒流水右移 /P0=0xff; /ys1ms(300); rzmyy(); /走马右移 rzmzy(); /走马左移 rjl(); /渐亮 rzmnwyd(); /走马内外移动 rlszy(); /流水左移 rlsyy(); /流水右移 rsdzmyy(); /3灯走马右移 rsdzmzy(); rlsnwyd(); /流水内外移动 P0=0xff; rtbyd(); /跳变7种模式 rzmyy() /走马拖尾右移函数 P0=0x7f; ys1ms(60); P0
3、=0xbf; if(P0_7=1) unsigned int a; for(a=0;a350;a+) /调节点亮时间 unsigned char i; P0_7 = 0; for(i = 0; i 15; i+); /调节亮度高低 P0_7 = 1; for(i = 0; 50; P0=0xdf; if(P0_6=1) P0_6 = 0; 1; P0_6 = 1; P0_7 = 1; P0=0xef; if(P0_5=1) P0_5 = 0; P0_5 = 1; P0_6 = 1; P0=0xf7; if(P0_4=1) P0_4 = 0; P0_4 = 1; P0_5 = 1; P0=0xf
4、b; if(P0_3=1) P0_3 = 0; P0_3 = 1; P0_4 = 1; P0=0xfd; if(P0_2=1) P0_2 = 0; P0_2 = 1; P0_3 = 1; P0=0xfe; if(P0_1=1) P0_1 = 0; P0_1 = 1; P0_2 = 1; if(P0_0=1) P0_0 = 0; P0_0 = 1; P0_1 = 1; /*/rzmzy() /走马拖尾左移函数 10; if(P0_1=1) P0_0 = 1; if(P0_2=1) if(P0_3=1) rlszy() /流水左移函数 unsigned char a,i,led; /声明无字符整形
5、变量a,i,led led=0xfe; /左移初始值定位 P0=led; /输出 ys1ms(120); /延时 for(i=1;i8;i+) /设置移动7次 a=led/灯右移i位rdlszy() /倒流水左移函数 P0=0x7e; P0=0x7d; P0=0x7b; P0=0x6f; P0=0x5f; P0=0x3f; P0=0x3d; P0=0x3b; P0=0x37; P0=0x2f; P0=0x1f; P0=0x1e; P0=0x1d; P0=0x1b; P0=0x17; P0=0x0f; P0=0x0e; P0=0x0d; P0=0x0b; P0=0x07; P0=0x06; P0
6、=0x05; P0=0x04; P0=0x03; P0=0x02; P0=0x01; P0=0x00;/*rdlsyy() /倒流水右移函数,参考上面左移rsdzmyy() /3灯走马右移函数 ,可以参考单灯走马加入拖尾 P0=0x8f; P0=0xc7; P0=0xe3; P0=0xf1; P0=0xf8; P0=0xfc;rsdzmzy() /3灯走马左移函数, 可以参考单灯走马加入拖尾rzmnwyd() /走马内外移动函数/ ys1ms(90); P0=0xbd; P0=0xdb; P0=0xe7;rlsnwyd() /红色流水内外移动函数 P0=0xc3; P0=0x81; P0=0x3c; P0=0x18;rtbyd() /红色跳变8模式移动函数 ys1ms(180); P0=0xf0;/*