Board logo

标题: 32*32点阵LED显示汉字-STC单片机2 [打印本页]

作者: rise_ming    时间: 2013-4-23 23:45     标题: 32*32点阵LED显示汉字-STC单片机2

i++;
}
}
}
/*************第2个16*16点阵显示*********************/
//
void dis2()
{
//第二个16*16点阵开始显示
uchar i,j;
for(i=16;i<24;i++)
{/*****我在修改的时候,总是字显示不完整,一开始还以为是哪里有错,后来改延时程序也不行,最后每行连续扫描几次,可以了******/
for(j=0;j<8;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;i<32;i++)
{
/*****我在修改的时候,总是字显示不完整,一开始还以为是哪里有错,后来改延时程序也不行,最后每行连续扫描几次,可以了******/
for(j=0;j<8;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;i<40;i++)
{ /*****我在修改的时候,总是字显示不完整,一开始还以为是哪里有错,后来改延时程序也不行,最后每行连续扫描几次,可以了******/
for(j=0;j<8;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;i<48;i++)
{
for(j=0;j<8;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;i<56;i++)
{
for(j=0;j<8;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;i<64;i++)
{
for(j=0;j<8;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;j<155;j++)
{;}
}
}




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0