sbit led7=P3^7;

sbit led8=P1^0;

sbit led9=P1^1;

sbit led10=P1^2;

sbit led11=P1^7;

sbit led12=P1^6;

sbit led13=P1^5;

sbit led14=P1^4;

sbit led15=P1^3;

uchar d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15;//各IO口变量

/***************************************************/

/**********************延时子程序*******************/

/***************************************************/

void delay(uint z)

{

uint x,y;//局部变量定义

for(x=0;x《5;x++)//延时外循环

for(y=0;y《z;y++);//延时内循环

}

/**********************************************/

/**********PWM控制红绿兰3种灯亮灭时间**********/

/**********************************************/

void RGBpwm(uchar d0,uchar d1,uchar d2,uchar d3,uchar d4,uchar d5,uchar d6,uchar d7,uchar d8,uchar d9,uchar d10,uchar d11,uchar d12,uchar d13,uchar d14,uchar d15)//3个局部变量,些部分为带参数函数

{

if(d0!=0)

{

led0=0;

delay(d0);

led0=1;//1

}

if(d1!=0)

{

led1=0;

delay(d1);

led1=1;//1

}

if(d2!=0)

{

led2=0;

delay(d2); //2

led2=1;

}

if(d3!=0)

{

led3=0;

delay(d3);

led3=1;//3

}

if(d4!=0)

{

led4=0;

delay(d4);

led4=1;//4

}

if(d5!=0)

{

led5=0;

delay(d5);

led5=1;//5

}

if(d6!=0)

{

led6=0;

delay(d6);

led6=1;//6

}

if(d7!=0)

{

led7=0;

delay(d7);

led7=1;//7

}

if(d8!=0)

{

led8=0;

delay(d8);

led8=1;//8

}

if(d9!=0)

{

led9=0;

delay(d9);

led9=1;//9

}

if(d10!=0)

{

led10=0;

delay(d10); //10

led10=1;

}

if(d11!=0)

{

led11=0;

delay(d11);

led11=1;//11

}

if(d12!=0)

{

led12=0;

delay(d12);

led12=1;//12

}

if(d13!=0)

{

led13=0;

delay(d13); //13

led13=1;

}

if(d14!=0)//14

{

led14=0;

delay(d14);

led14=1;

}

if(d15!=0)//15

{

led15=0;

delay(d15);

led15=1;

}

}

/***********************************************/

/********************主程序*********************/

/***********************************************/

void main()

{

TMOD=0x01;

EA=1;

ET0=1;

TR0=1;

TH0=(65536-56)/256;

TL0=(65536-56)%256;

while(1)//程序主循环

{

RGBpwm(d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15);//调用RGBpwm子程序