⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led.c

📁 LED显示程序
💻 C
字号:
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int 
#define uchar unsigned char
sbit dr0=P2^0;
sbit dg0=P0^7;
sbit db0=P2^1;
sbit dr1=P0^6;
sbit dg1=P2^2;
sbit db1=P0^5;
sbit dr2=P2^3;
sbit dg2=P0^4;
sbit db2=P2^4;
sbit dr3=P0^3;
sbit dg3=P2^5;
sbit db3=P0^2;
sbit le=P2^6;
sbit oe=P0^1;
sbit clk=P2^7;
sbit cs_=P1^2;
sbit clk_=P1^3;
sbit DO=P1^4;

uint code table[][16]=			   //123456789a
{
{0x0000,0x4684,0x0000,0x14e3,0x0000,0x3120,0x0000,0x419f,0x0000,0x92f3,0x0000,0x4439,0x0000,0x110e,0x0000,0x0000},
{0x0444,0x8404,0xc204,0x0001,0x2829,0x7925,0xcf41,0x5050,0x4380,0x4444,0x3844,0x4444,0x1111,0x109e,0x0300,0x0704},
{0xce44,0x0000,0xe710,0x0000,0x6021,0x0000,0x8e51,0x0000,0x4344,0x0000,0x3844,0x0000,0x0e92,0x0000,0x0f04,0x0000},
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}
};


uint code table1[][16]=		  //223456789a
{
{0x0000,0x518e,0x0000,0x14e3,0x0000,0x3120,0x0000,0x419f,0x0000,0x92f3,0x0000,0x4439,0x0000,0x110e,0x0000,0x0000},
{0x0851,0x8204,0xc204,0x0001,0x2829,0x7925,0xcf41,0x5050,0x4380,0x4444,0x3844,0x4444,0x1111,0x109e,0x0300,0x0704},
{0xdf41,0x0000,0xe710,0x0000,0x6021,0x0000,0x8e51,0x0000,0x4344,0x0000,0x3844,0x0000,0x0e92,0x0000,0x0f04,0x0000},
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}
};

uint code table2[][16]=		 //323456789a
{
{0x0000,0x518e,0x0000,0x14e3,0x0000,0x3120,0x0000,0x419f,0x0000,0x92f3,0x0000,0x4439,0x0000,0x110e,0x0000,0x0000},
{0x0c50,0x9010,0xc204,0x0001,0x2829,0x7925,0xcf41,0x5050,0x4380,0x4444,0x3844,0x4444,0x1111,0x109e,0x0300,0x0704},
{0xce51,0x0000,0xe710,0x0000,0x6021,0x0000,0x8e51,0x0000,0x4344,0x0000,0x3844,0x0000,0x0e92,0x0000,0x0f04,0x0000},
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}
};


uint code table3[][16]=			  //423456789a
{
{0x0000,0x4c88,0x0000,0x14e3,0x0000,0x3120,0x0000,0x419f,0x0000,0x92f3,0x0000,0x4439,0x0000,0x110e,0x0000,0x0000},
{0x0a4a,0x9e09,0xc204,0x0001,0x2829,0x7925,0xcf41,0x5050,0x4380,0x4444,0x3844,0x4444,0x1111,0x109e,0x0300,0x0704},
{0xd848,0x0000,0xe710,0x0000,0x6021,0x0000,0x8e51,0x0000,0x4344,0x0000,0x3844,0x0000,0x0e92,0x0000,0x0f04,0x0000},
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}
};

uint code table4[][16]=			  //523456789a
{
{0x0000,0x419f,0x0000,0x14e3,0x0000,0x3120,0x0000,0x419f,0x0000,0x92f3,0x0000,0x4439,0x0000,0x110e,0x0000,0x0000},
{0x0f41,0x9010,0xc204,0x0001,0x2829,0x7925,0xcf41,0x5050,0x4380,0x4444,0x3844,0x4444,0x1111,0x109e,0x0300,0x0704},
{0xce51,0x0000,0xe710,0x0000,0x6021,0x0000,0x8e51,0x0000,0x4344,0x0000,0x3844,0x0000,0x0e92,0x0000,0x0f04,0x0000},
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}
};

uint code table5[][16]=		   //623456789a
{
{0x0000,0x498e,0x0000,0x14e3,0x0000,0x3120,0x0000,0x419f,0x0000,0x92f3,0x0000,0x4439,0x0000,0x110e,0x0000,0x0000},
{0x0f41,0x9111,0xc204,0x0001,0x2829,0x7925,0xcf41,0x5050,0x4380,0x4444,0x3844,0x4444,0x1111,0x109e,0x0300,0x0704},
{0xce51,0x0000,0xe710,0x0000,0x6021,0x0000,0x8e51,0x0000,0x4344,0x0000,0x3844,0x0000,0x0e92,0x0000,0x0f04,0x0000},
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}
};

uint code table6[][16]=		   //723456789a
{
{0x0000,0x499f,0x0000,0x14e3,0x0000,0x3120,0x0000,0x419f,0x0000,0x92f3,0x0000,0x4439,0x0000,0x110e,0x0000,0x0000},
{0x0448,0x8404,0xc204,0x0001,0x2829,0x7925,0xcf41,0x5050,0x4380,0x4444,0x3844,0x4444,0x1111,0x109e,0x0300,0x0704},
{0xc444,0x0000,0xe710,0x0000,0x6021,0x0000,0x8e51,0x0000,0x4344,0x0000,0x3844,0x0000,0x0e92,0x0000,0x0f04,0x0000},
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}
};


uint code table7[][16]=		//823456789a
{
{0x0000,0x518e,0x0000,0x14e3,0x0000,0x3120,0x0000,0x419f,0x0000,0x92f3,0x0000,0x4439,0x0000,0x110e,0x0000,0x0000},
{0x0e51,0x9111,0xc204,0x0001,0x2829,0x7925,0xcf41,0x5050,0x4380,0x4444,0x3844,0x4444,0x1111,0x109e,0x0300,0x0704},
{0xce51,0x0000,0xe710,0x0000,0x6021,0x0000,0x8e51,0x0000,0x4344,0x0000,0x3844,0x0000,0x0e92,0x0000,0x0f04,0x0000},
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}
};


uint code table8[][16]=		 //923456789a
{
{0x0000,0x518e,0x0000,0x14e3,0x0000,0x3120,0x0000,0x419f,0x0000,0x92f3,0x0000,0x4439,0x0000,0x110e,0x0000,0x0000},
{0x1151,0x901e,0xc204,0x0001,0x2829,0x7925,0xcf41,0x5050,0x4380,0x4444,0x3844,0x4444,0x1111,0x109e,0x0300,0x0704},
{0xce52,0x0000,0xe710,0x0000,0x6021,0x0000,0x8e51,0x0000,0x4344,0x0000,0x3844,0x0000,0x0e92,0x0000,0x0f04,0x0000},
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}
};


uint code table9[][16]=			   //133456789a
{
{0x0000,0x4684,0x0000,0xc483,0x0000,0x047c,0x0000,0x419f,0x0000,0x92f3,0x0000,0x4439,0x0000,0x110e,0x0000,0x0000},
{0x0404,0x0404,0xa3a4,0xe494,0x3c04,0x4140,0xcf41,0x5050,0x4380,0x4444,0x3844,0x4444,0x1111,0x109e,0x0300,0x0704},
{0x8e44,0x0000,0x8384,0x0000,0x3944,0x0000,0x8e51,0x0000,0x4344,0x0000,0x3844,0x0000,0x0e92,0x0000,0x0f04,0x0000},
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}
};


delay(uint a)
{
uchar b,c;
for(b=0;b<1;b++)
for(c=0;c<a;c++);
}


uint ADC_read()
{
	uchar i;
	uint  dig=0;
	cs_=0;
	delay(128);
	clk_=1;			  
	clk_=0;			  //第一个时钟,下降沿触发
	for(i=8;i>0;i--)
	{
		clk_=1;
    	clk_=0;
		dig=dig|DO;
		dig=dig<<1;
		_nop_();
	}
	cs_=1;			  //转换结束
	delay(128);
	dig=~dig;
	return(dig);
}


red(e)
{
uint val1,val2,val3,val4;
uchar b,a;
for(b=0;b<16;b++)
{
val1=table[0][b];
val2=table[1][b];
val3=table[2][b];
val4=table[3][b];
for(a=0;a<16;a++)
{
if(val1&0x0001)
{dr0=1;
dg0=1;
}
else
{
dr0=0;
dg0=0;
}
if(val2&0x0001)
{
dr1=1;
dg1=1;
}
else
{
dr1=0;
dg1=0;
}

if(val3&0x0001)
{
dr2=1;
dg2=1;
}
else
{
dr2=0;
dg2=0;
}


if(val4&0x0001)
{
dr3=1;
dg3=1;
}
else
{
dr3=0;
dg3=0;
}
val1=val1>>1;
val2=val2>>1;
val3=val3>>1;
val4=val4>>1;
clk=0;
clk=1;
}

}
le=1;
le=0;
oe=0;
delay(e);
oe=1;
}



red1(e)			//223456789a
{
uint val1,val2,val3,val4;
uchar b,a;
for(b=0;b<16;b++)
{
val1=table1[0][b];
val2=table1[1][b];
val3=table1[2][b];
val4=table1[3][b];
for(a=0;a<16;a++)
{
if(val1&0x0001)
{
dr0=1;
dg0=1;
}
else
{
dr0=0;
dg0=0;
}

if(val2&0x0001)
{
dr1=1;
dg1=1;
}
else
{
dr1=0;
dg1=0;
}

if(val3&0x0001)
{
dr2=1;
dg2=1;
}
else
{
dr2=0;
dg2=0;
}

if(val4&0x0001)
{
dr3=1;
dg3=1;
}
else
{
dr3=0;
dg3=0;
}
val1=val1>>1;
val2=val2>>1;
val3=val3>>1;
val4=val4>>1;
clk=0;
clk=1;
}

}
le=1;
le=0;
oe=0;
delay(e);
oe=1;
}



red2(e)			//323456789a
{
uint val1,val2,val3,val4;
uchar b,a;
for(b=0;b<16;b++)
{
val1=table2[0][b];
val2=table2[1][b];
val3=table2[2][b];
val4=table2[3][b];
for(a=0;a<16;a++)
{
if(val1&0x0001)
{
dr0=1;
dg0=1;
}
else
{
dr0=0;
dg0=0;
}

if(val2&0x0001)
{
dr1=1;
dg1=1;
}
else
{
dr1=0;
dg1=0;
}

if(val3&0x0001)
{dr2=1;
dg2=1;
}
else
{
dr2=0;
dg2=0;
}

if(val4&0x0001)
{
dr3=1;
dg3=1;
}
else
{
dr3=0;
dg3=0;
}
val1=val1>>1;
val2=val2>>1;
val3=val3>>1;
val4=val4>>1;
clk=0;
clk=1;
}

}
le=1;
le=0;
oe=0;
delay(e);
oe=1;
}

red3(e)			//423456789a
{
uint val1,val2,val3,val4;
uchar b,a;
for(b=0;b<16;b++)
{
val1=table3[0][b];
val2=table3[1][b];
val3=table3[2][b];
val4=table3[3][b];
for(a=0;a<16;a++)
{
if(val1&0x0001)
{
dr0=1;
dg0=1;
}
else
{
dr0=0;
dg0=0;
}

if(val2&0x0001)
{
dr1=1;
dg1=1;
}
else
{
dr1=0;
dg1=0;
}

if(val3&0x0001)
{dr2=1;
dg2=1;
}
else
{
dr2=0;
dg2=0;
}

if(val4&0x0001)
{
dr3=1;
dg3=1;
}
else
{
dr3=0;
dg3=0;
}
val1=val1>>1;
val2=val2>>1;
val3=val3>>1;
val4=val4>>1;
clk=0;
clk=1;
}

}
le=1;
le=0;
oe=0;
delay(e);
oe=1;
}



red4(e)			//523456789a
{
uint val1,val2,val3,val4;
uchar b,a;
for(b=0;b<16;b++)
{
val1=table4[0][b];
val2=table4[1][b];
val3=table4[2][b];
val4=table4[3][b];
for(a=0;a<16;a++)
{
if(val1&0x0001)
{
dr0=1;
dg0=1;
}
else
{
dr0=0;
dg0=0;
}

if(val2&0x0001)
{
dr1=1;
dg1=1;
}
else
{
dr1=0;
dg1=0;
}

if(val3&0x0001)
{dr2=1;
dg2=1;
}
else
{
dr2=0;
dg2=0;
}

if(val4&0x0001)
{
dr3=1;
dg3=1;
}
else
{
dr3=0;
dg3=0;
}
val1=val1>>1;
val2=val2>>1;
val3=val3>>1;
val4=val4>>1;
clk=0;
clk=1;
}

}
le=1;
le=0;
oe=0;
delay(e);
oe=1;
}


red5(e)			//623456789a
{
uint val1,val2,val3,val4;
uchar b,a;
for(b=0;b<16;b++)
{
val1=table5[0][b];
val2=table5[1][b];
val3=table5[2][b];
val4=table5[3][b];
for(a=0;a<16;a++)
{
if(val1&0x0001)
{
dr0=1;
dg0=1;
}
else
{
dr0=0;
dg0=0;
}

if(val2&0x0001)
{
dr1=1;
dg1=1;
}
else
{
dr1=0;
dg1=0;
}

if(val3&0x0001)
{dr2=1;
dg2=1;
}
else
{
dr2=0;
dg2=0;
}

if(val4&0x0001)
{
dr3=1;
dg3=1;
}
else
{
dr3=0;
dg3=0;
}
val1=val1>>1;
val2=val2>>1;
val3=val3>>1;
val4=val4>>1;
clk=0;
clk=1;
}

}
le=1;
le=0;
oe=0;
delay(e);
oe=1;
}


red6(e)			//723456789a
{
uint val1,val2,val3,val4;
uchar b,a;
for(b=0;b<16;b++)
{
val1=table6[0][b];
val2=table6[1][b];
val3=table6[2][b];
val4=table6[3][b];
for(a=0;a<16;a++)
{
if(val1&0x0001)
{
dr0=1;
dg0=1;
}
else
{
dr0=0;
dg0=0;
}

if(val2&0x0001)
{
dr1=1;
dg1=1;
}
else
{
dr1=0;
dg1=0;
}

if(val3&0x0001)
{dr2=1;
dg2=1;
}
else
{
dr2=0;
dg2=0;
}

if(val4&0x0001)
{
dr3=1;
dg3=1;
}
else
{
dr3=0;
dg3=0;
}
val1=val1>>1;
val2=val2>>1;
val3=val3>>1;
val4=val4>>1;
clk=0;
clk=1;
}

}
le=1;
le=0;
oe=0;
delay(e);
oe=1;
}


red7(e)			//823456789a
{
uint val1,val2,val3,val4;
uchar b,a;
for(b=0;b<16;b++)
{
val1=table7[0][b];
val2=table7[1][b];
val3=table7[2][b];
val4=table7[3][b];
for(a=0;a<16;a++)
{
if(val1&0x0001)
{
dr0=1;
dg0=1;
}
else
{
dr0=0;
dg0=0;
}

if(val2&0x0001)
{
dr1=1;
dg1=1;
}
else
{
dr1=0;
dg1=0;
}

if(val3&0x0001)
{dr2=1;
dg2=1;
}
else
{
dr2=0;
dg2=0;
}

if(val4&0x0001)
{
dr3=1;
dg3=1;
}
else
{
dr3=0;
dg3=0;
}
val1=val1>>1;
val2=val2>>1;
val3=val3>>1;
val4=val4>>1;
clk=0;
clk=1;
}

}
le=1;
le=0;
oe=0;
delay(e);
oe=1;
}



red8(e)			//923456789a
{
uint val1,val2,val3,val4;
uchar b,a;
for(b=0;b<16;b++)
{
val1=table8[0][b];
val2=table8[1][b];
val3=table8[2][b];
val4=table8[3][b];
for(a=0;a<16;a++)
{
if(val1&0x0001)
{
dr0=1;
dg0=1;
}
else
{
dr0=0;
dg0=0;
}

if(val2&0x0001)
{
dr1=1;
dg1=1;
}
else
{
dr1=0;
dg1=0;
}

if(val3&0x0001)
{dr2=1;
dg2=1;
}
else
{
dr2=0;
dg2=0;
}

if(val4&0x0001)
{
dr3=1;
dg3=1;
}
else
{
dr3=0;
dg3=0;
}
val1=val1>>1;
val2=val2>>1;
val3=val3>>1;
val4=val4>>1;
clk=0;
clk=1;
}

}
le=1;
le=0;
oe=0;
delay(e);
oe=1;
}


red9(e)			//923456789a
{
uint val1,val2,val3,val4;
uchar b,a;
for(b=0;b<16;b++)
{
val1=table9[0][b];
val2=table9[1][b];
val3=table9[2][b];
val4=table9[3][b];
for(a=0;a<16;a++)
{
if(val1&0x0001)
{
dr0=1;
dg0=1;
}
else
{
dr0=0;
dg0=0;
}

if(val2&0x0001)
{
dr1=1;
dg1=1;
}
else
{
dr1=0;
dg1=0;
}

if(val3&0x0001)
{dr2=1;
dg2=1;
}
else
{
dr2=0;
dg2=0;
}

if(val4&0x0001)
{
dr3=1;
dg3=1;
}
else
{
dr3=0;
dg3=0;
}
val1=val1>>1;
val2=val2>>1;
val3=val3>>1;
val4=val4>>1;
clk=0;
clk=1;
}

}
le=1;
le=0;
oe=0;
delay(e);
oe=1;
}




void main()
{
uchar a,b;
clk=0;
dr0=0;
dr1=0;
dr2=0;
dr3=0;

dg0=0;
dg1=0;
dg2=0;
dg3=0;


db0=0;
db1=0;
db2=0;
db3=0;
le=0;
oe=1;

do{
b=ADC_read();
for(a=50;a>0;a--)
red(b);
for(a=50;a>0;a--)
red1(b);
for(a=50;a>0;a--)
red2(b);
for(a=50;a>0;a--)
red3(b);
for(a=50;a>0;a--)
red4(b);
for(a=50;a>0;a--)
red5(b);
for(a=50;a>0;a--)
red6(b);
for(a=50;a>0;a--)
red7(b);
for(a=50;a>0;a--)
red8(b);
for(a=50;a>0;a--)
red9(b);
}while(1);


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -