32*32点阵LED显示汉字-STC单片机
i++;
}
}
}
/*************第2个16*16点阵显示*********************/
//
void dis2()
{
//第二个16*16点阵开始显示
uchar i,j;
for(i=16;i24;i++)
{/*****我在修改的时候,总是字显示不完整,一开始还以为是哪里有错,后来改延时程序也不行,最后每行连续扫描几次,可以了******/
for(j=0;j8;j++)//特别注意这里每组点阵的每行扫描8遍,人眼看起来才完整,否则会有残缺不亮
{
P2=hang[i%16];
CS1=1;
P0=tab[i*2];
L3=1;
delay(1);
P0=0x00;
L3=0;
P0=tab[i*2+1];
L4=1;
delay(1);
P0=0x00;//这句才是真正关闭阳极正电的
L4=0; //关闭列,这句是使以后的操作不再影响本列状态
P2=0xff;//这句才是关闭阴极正电的语句
CS1=0; //关闭行低,使以后的操作部影响本行状态
i++;
}
}
for(i=24;i32;i++)
{
/*****我在修改的时候,总是字显示不完整,一开始还以为是哪里有错,后来改延时程序也不行,最后每行连续扫描几次,可以了******/
for(j=0;j8;j++)//特别注意这里每组点阵的每行扫描8遍,人眼看起来才完整,否则会有残缺不亮
{
P2=hang[i%24];
CS2=1;
P0=tab[i*2];
L3=1;
delay(1);
P0=0x00;
L3=0;
P0=tab[i*2+1];
L4=1;
delay(1);
P0=0x00;//这句才是真正关闭阳极正电的
L4=0; //关闭列,这句是使以后的操作不再影响本列状态
P2=0xff;//这句才是关闭阴极正电的语句
CS2=0; //关闭行低,使以后的操作部影响本行状态
i++;
}
}
//第二个16*16点阵显示完毕
}
/***********第3个16*16点阵显示**************************/
//
void dis3()
{
//第三个16*16点阵开始显示
uchar i,j;
for(i=32;i40;i++)
{ /*****我在修改的时候,总是字显示不完整,一开始还以为是哪里有错,后来改延时程序也不行,最后每行连续扫描几次,可以了******/
for(j=0;j8;j++)//特别注意这里每组点阵的每行扫描8遍,人眼看起来才完整,否则会有残缺不亮
{
P2=hang[i%32];
CS3=1;
P0=tab[i*2];
L1=1;
delay(1);
P0=0x00;
L1=0;
P0=tab[i*2+1];
L2=1;
delay(1);
P0=0x00;//这句才是真正关闭阳极正电的
L2=0; //关闭列,这句是使以后的操作不再影响本列状态
P2=0xff;//这句才是关闭阴极正电的语句
CS3=0; //关闭行低,使以后的操作部影响本行状态
i++;
}
}
for(i=40;i48;i++)
{
for(j=0;j8;j++)//特别注意这里每组点阵的每行扫描8遍,人眼看起来才完整,否则会有残缺不亮
{
P2=hang[i%40];
CS4=1;
P0=tab[i*2];
L1=1;
delay(1);
P0=0x00;
L1=0;
P0=tab[i*2+1];
L2=1;
delay(1);
P0=0x00;//这句才是真正关闭阳极正电的
L2=0; //关闭列,这句是使以后的操作不再影响本列状态
P2=0xff;//这句才是关闭阴极正电的语句
CS4=0; //关闭行低,使以后的操作部影响本行状态
i++;
}
}
//第三个16*16点阵显示完毕
}
/********第4个16*16点阵显示*********************/
//
void dis4()
{
/************第4个16*16点阵显示***********************/
//第四个16*16点阵开始显示
uchar i,j;
for(i=48;i56;i++)
{
for(j=0;j8;j++)//特别注意这里每组点阵的每行扫描8遍,人眼看起来才完整,否则会有残缺不亮
{
P2=hang[i%48];
CS3=1;
P0=tab[i*2];
L3=1;
delay(1);
P0=0x00;
L3=0;
P0=tab[i*2+1];
L4=1;
delay(1);
P0=0x00;//这句才是真正关闭阳极正电的
L4=0; //关闭列,这句是使以后的操作不再影响本列状态
P2=0xff;//这句才是关闭阴极正电的语句
CS3=0; //关闭行低,使以后的操作部影响本行状态
i++;
}
}
for(i=56;i64;i++)
{
for(j=0;j8;j++)//特别注意这里每组点阵的每行扫描8遍,人眼看起来才完整,否则会有残缺不亮
{
P2=hang[i%56];
CS4=1;
P0=tab[i*2];
L3=1;
delay(1);
P0=0x00;
L3=0;
P0=tab[i*2+1];
L4=1;
delay(1);
P0=0x00;//这句才是真正关闭阳极正电的
L4=0; //关闭列,这句是使以后的操作不再影响本列状态
P2=0xff;//这句才是关闭阴极正电的语句
CS4=0; //关闭行低,使以后的操作部影响本行状态
i++;
}
}
//第四个16*16点阵显示完毕
}
//
void delayus()
{
uchar i=3;
while(i--);
}
void delay(uint k)
{
uint data i,j;
for(i=0;i
{
for(j=0;j155;j++)
{;}
}
}
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码