在网上找到个32*32点阵,可以循环显示汉字
我把它扩展成32*64,两个32屏都显示同一个汉字
大家可以帮帮忙吗?如何更改
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit E1=P3^5;
sbit DS=P2^0;
sbit SRCK=P2^1;
sbit RCK=P2^2;
uchar k;
uchar speed=20;
//阴码 逆向 逐列式扫描
uchar code bless[][128]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x80,0x00,0x00,0x0C,0x80,0x04,0x00,0x06,
0x80,0x1C,0x00,0x03,0x80,0x38,0xC0,0x01,0x80,0x70,0xF0,0x00,0x80,0xE0,0x7D,0x00,
0x80,0xC0,0x1F,0x00,0x80,0xE0,0x0F,0x40,0x80,0xFC,0x3F,0x40,0xC0,0x7F,0xFC,0x60,
0xE0,0x1F,0xF8,0x23,0xE0,0x01,0xE0,0x33,0x40,0x80,0x80,0x19,0x00,0xE0,0x00,0x0C,
0x00,0x7C,0x00,0x0E,0xC0,0x1F,0x80,0x07,0xFC,0x07,0xE0,0x03,0xFC,0x03,0xFE,0x00,
0x38,0xF2,0x3F,0x00,0x08,0xF2,0x0F,0x00,0x00,0xF2,0x1F,0x00,0x00,0x12,0xFE,0x00,
0x00,0x02,0xF0,0x03,0x00,0x22,0x80,0x0F,0x00,0x3A,0x00,0x1E,0x00,0x1E,0x00,0x3C,
0x00,0x0F,0x00,0x38,0x00,0x07,0x00,0x30,0x00,0x06,0x00,0x10,0x00,0x00,0x00,0x00,//欢0
0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x04,0x00,0x10,0x00,0x0E,0x00,0x10,0x00,0x0E,
0x04,0x10,0x00,0x07,0x1C,0x10,0x00,0x03,0x78,0xF0,0xFF,0x01,0xF8,0xF8,0xFF,0x01,
0xF0,0xF8,0xFF,0x03,0x60,0x10,0x00,0x07,0x00,0x00,0x00,0x06,0x00,0x00,0x10,0x0C,
0xC0,0xFF,0x3F,0x0C,0xC0,0xFF,0x3F,0x18,0xC0,0xFF,0x3F,0x18,0x60,0x00,0x18,0x18,
0x30,0x00,0x0C,0x18,0x30,0x00,0x0C,0x10,0x18,0x00,0x04,0x10,0x18,0x00,0x04,0x10,
0xD8,0xFF,0xFF,0x33,0xD0,0xFF,0xFF,0x33,0xC0,0xFF,0xFF,0x33,0x80,0x00,0x10,0x30,
0x80,0x00,0x30,0x30,0x80,0x00,0x20,0x30,0xC0,0x00,0x70,0x30,0xE0,0xFF,0x7F,0x30,
0xE0,0xFF,0x3F,0x38,0xC0,0x00,0x00,0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x08,//迎1
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x80,0x00,0x40,
0x00,0x80,0x00,0x60,0x00,0x80,0x00,0x20,0x00,0x80,0x00,0x30,0x40,0x80,0x00,0x18,
0xC0,0x80,0x00,0x0C,0x80,0x87,0x00,0x0F,0x80,0x9F,0xE0,0x07,0x00,0x9F,0xFF,0x03,
0x00,0x8E,0xFF,0x00,0x00,0x80,0x0F,0x00,0x00,0x80,0x00,0x00,0xFC,0xFF,0x00,0x00,
0xFC,0x7F,0x00,0x00,0xF8,0xFF,0x00,0x00,0x08,0x80,0xFF,0x1F,0x00,0xC0,0xFF,0x3F,
0x00,0xF0,0xFF,0x3F,0x00,0xBC,0x00,0x30,0x80,0x8F,0x00,0x20,0xC0,0x87,0x00,0x20,
0xC0,0x83,0x00,0x20,0xC0,0x80,0x00,0x20,0x80,0xC0,0x00,0x20,0x00,0x60,0x00,0x30,
0x00,0x60,0xC0,0x3F,0x00,0x40,0xC0,0x3F,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,//光2
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0x03,
0x80,0xFF,0xFF,0x03,0x80,0xFF,0xFF,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x7F,0xFC,0xFF,0xFF,0x7F,0x08,0x80,0x00,0x3C,
0x08,0xC0,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x38,0xFE,0x7F,0x00,0x1E,0xFE,0x7F,
0xC0,0x07,0xFE,0x7F,0xF8,0x03,0x04,0x08,0xF8,0x05,0x04,0x08,0x38,0x0D,0x04,0x08,
0x18,0x19,0xFC,0x0F,0x00,0x39,0xFC,0x0F,0x00,0xF1,0xFC,0x0F,0x00,0xF1,0x04,0x08,
0x00,0xE1,0x04,0x08,0x00,0x01,0x04,0x08,0x00,0x01,0x06,0x08,0x80,0x01,0xFF,0x3F,
0x80,0x01,0xFF,0x3F,0x00,0x01,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//临3
};
void delay()
{
uint i;
for(i=0;i<150;i++);
}
void write_byte(uchar a)
{
uchar i,num;
num=a;
for(i=0;i<8;i++)
{
RCK=0;
SRCK=0;
if((num&0x01)==0) DS=0;
else DS=1;
SRCK=1;
RCK=1;
num>>=1;
}
}
void main()
{
uchar i,j,k,scan;
DS=1;
E1=0;
while(1)
{ scan=0;
for(j=0;j<4;j=j+1)
{
for(k=0;k<speed/2;k++)
{
scan=0;
for(i=0;i<128;i=i+4)
{
write_byte(bless[j][i+3]);
write_byte(bless[j][i+2]);
write_byte(bless[j][i+1]);
write_byte(bless[j]);
P3=scan;
E1=0;
delay();
E1=1;
if(i%2==0)
scan++;
}
}
}
}
}
32 32点阵.rar
(60.18 KB, 下载次数: 286)
|