📄 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 + -