/*************************************************************************************
一个8×8点阵字符显示
8x8点阵循环显示I L O V E Y O U
****************************************************************************************/
#include"reg51.h"
#define uint unsigned int
#define uchar unsigned char
const uchar tab1[]={
0x00,0x00,0x42,0x7E,0x42,0x42,0x00,0x00, //;"I"
0x00,0x42,0x7E,0x42,0x02,0x02,0x02,0x00, //;"L"
0x00,0x3C,0x22,0x42,0x42,0x22,0x3C,0x00, //;"O"
0x00,0x40,0x70,0x0C,0x0C,0x70,0x40,0x00, //;"V"
0x00,0x42,0x7E,0x4A,0x4A,0x5A,0x22,0x00, //;"E"
0x00,0x40,0x62,0x1E,0x12,0x60,0x40,0x00, //;"Y"
0x00,0x3C,0x22,0x42,0x42,0x22,0x3C,0x00, //;"O"
0x00,0x7C,0x46,0x02,0x02,0x7C,0x40,0x00 //;"U"
};
const uchar tab2[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};// 扫描代码
void delay(uint n)
{ uint i;
for(i=0;i
}
void main(void)
{
char j,r,q=0,t=0;
while(1)
{
for(r=0;r<15;r++)
for(j=q;j<8+q;j++)
{
P3=tab2[t++];
P0=tab1[j];
delay(555);
if(t==8)
t=0;
}
q=q+8;
if(q==64)
q=0;
}
}
|