1、单片机拖尾流水灯BY-零下21度de水效果:同时亮5个LED,中间的最亮,旁边两个渐暗。原理:利用占空比调节LED亮度。思路:占空比有两种调节方法,一种是固定脉宽,调节周期,一种是固定周期,调节占空比,该例程用得是前者。观看效果:该程序提供给大家参考,抛砖引玉,望大家做出更漂亮的效果。C源码:#include #define uchar unsigned char#define uint unsigned int#define LED P1/*硬件为P1口输出,大家相应改一下*/uchar i=0;uchar Position=0x01;/*/void Delay(uchar n)uchar
2、i,j,k;for(i=n;i0;i-)for(j=100;j0;j-)for(k=100;k0;k-);void T0_INT(void)interrupt 1uchar dis_tmp;dis_tmp=Position;TH0=65432/256;/*定时器T0的中断时间就是固定脉宽,大家仔细看一下就会明白了*/TL0=65432%256;if(i100)i+;else i=0;LED=dis_tmp;/*我的硬件设计是低电平点亮LED,就是灌电流*/if(i%10=0)/*调整周期,旁边第一盏灯的周期为脉宽的10倍*/dis_tmp|=dis_tmp1;LED=dis_tmp;if(i=0)/*旁边第二盏灯的周期为脉宽的100倍*/dis_tmp|=dis_tmp1|dis_tmp2;LED=dis_tmp; void main(void)uchar k,g;ET0=1;TMOD=0X01;EA=1;TH0=55532/256;TL0=55532%256;TR0=1;LED0=0;while(1)for(g=20;g0;g-)for(k=7;k0;k-)Position0;k-)Position=1;Delay(g);for(g=0;g0;k-)Position0;k-)Position=1;Delay(g);