16×16点阵汉字
运行通过,缺不显示,中间显示了一次
有没有人知道哪里出问题了,是仿真还是代码,谢谢谢谢
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define SPEED 2
sbit DS=P2^0;
sbit ST=P2^2;
sbit SH=P2^1;
void delay(uint m)
{
uint j;
for(j=m;j>0;j--);
}
uchar code table1[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x04,0x24,0x24,0x24,0x7F,0xC4,0x44,0x04,0x04,0xFF,0x04,0x44,0x34,0x05,0x04,0x00,
0x01,0x26,0x34,0x2C,0x24,0x24,0x37,0x4C,0x44,0x44,0x4C,0x74,0xC4,0x45,0x06,0x00,
0x00,0x01,0x06,0x1F,0xE0,0x02,0x04,0x18,0xF0,0x10,0x13,0x10,0x10,0x14,0x18,0x00,
0x00,0x00,0x0F,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0x0F,0x00,0x00,0x00,
0x00,0x7F,0x40,0x48,0x49,0x49,0x49,0x4F,0x49,0x49,0x49,0x48,0x40,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
uchar code table2[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x10,0x12,0x21,0xFE,0x40,0x82,0x02,0x04,0xC8,0x30,0x28,0x44,0x82,0x1F,0x00,/*"我",0*/
0x00,0x82,0x84,0x89,0x91,0xE1,0xB2,0xAA,0xA4,0xA4,0xAA,0xB2,0x81,0x01,0x01,0x00,/*"爱",1*/
0x80,0x00,0x00,0xFF,0x00,0x08,0x30,0xC0,0x02,0x01,0xFE,0x00,0x80,0x60,0x18,0x00,/*"你",2*/
0x00,0x00,0xF0,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0xF0,0x00,0x00,0x00,/*"中",3*/
0x00,0xFF,0x02,0x12,0x12,0x12,0x12,0xF2,0x12,0x52,0x32,0x12,0x02,0xFF,0x00,0x00,/*"国",4*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
void senddata(uchar m,uchar n)
{
uchar i;
ST=0;
for(i=0;i<16;i++)
{
SH=0;
if(i<8)
{
DS=0X80&(m<<i);
}
else if(i>=8 && i<16)
{
DS=0X80&(n<<(i-8));
}
SH=1;
}
ST=1;
}
void main()
{
uchar i,j,k,m,n=0;
while(1)
{
for(i=0;i<96;i++)
{
for(j=0;j<SPEED;j++)
{
for(k=0,k<16;k++)
{
m=i+k;
P1=k;
senddata(table1[m],table2[m]);
delay(100);
senddata(0,0);
}
}
}
}
} |