📄 liwu.c
字号:
#include<reg51.h>
typedef unsigned int uint;
typedef unsigned char uchar;
uchar code JSTU[144] =
{
//-------新---------
0x00, 0x00,0x04,0x84,0x24,0x88,0x34,0xB2,0xAC,0x81,0x67,0xFE,0x2C,0xA0,0x34,0x9A,0x24,0x84,
0x00,0x18,0x3F,0xE0,0x24,0x00,0x24,0x00,0x47,0xFF,0x44,0x00,0x44,0x00,0x00,0x00, 0x00, 0x00,
//-------年---------
0x00, 0x00,0x02,0x20,0x04,0x20,0x08,0x20,0x30,0x20,0xC7,0xE0,0x44,0x20,0x44,0x20,0x44,0x20,
0x7F,0xFF,0x44,0x20,0x44,0x20,0x44,0x20,0x44,0x20,0x40,0x20,0x00,0x20,0x00,0x00, 0x00, 0x00,
//-------快---------
0x00, 0x00,0x0E,0x00,0x00,0x00,0xFF,0xFF,0x10,0x00,0x0D,0x01,0x11,0x02,0x11,0x0C,0x11,0x70,
0xFF,0x80,0x11,0x60,0x11,0x10,0x11,0x0C,0x1F,0x06,0x01,0x03,0x01,0x02,0x00,0x00, 0x00,0x00,
//-------乐---------
0x00, 0x00,0x00,0x00,0x00,0x04,0x02,0x18,0x3F,0x30,0x22,0xE0,0x22,0x48,0x22,0x04,0x62,0x02,
0x5F,0xFC,0x42,0x00,0xC2,0x00,0xC2,0x40,0x42,0x30,0x02,0x1C,0x00,0x08,0x00,0x00, 0x00, 0x00
};
uchar code DX[144]=
{
//-------天---------
0x00, 0x00,0x00,0x00,0x02,0x01,0x42,0x02,0x42,0x04,0x42,0x08,0x42,0x10,0x42,0x60,0x7F,0x80,
0x42,0x40,0x42,0x20,0x42,0x10,0x42,0x08,0x42,0x0C,0x42,0x06,0x02,0x04,0x00,0x00, 0x00,0x00,
//-------天---------
0x00, 0x00,0x00,0x00,0x02,0x01,0x42,0x02,0x42,0x04,0x42,0x08,0x42,0x10,0x42,0x60,0x7F,0x80,
0x42,0x40,0x42,0x20,0x42,0x10,0x42,0x08,0x42,0x0C,0x42,0x06,0x02,0x04,0x00,0x00, 0x00,0x00,
//-------开---------
0x00, 0x00,0x02,0x00,0x42,0x02,0x42,0x04,0x42,0x08,0x42,0x30,0x7F,0xC0,0x42,0x00,0x42,0x00,
0x42,0x00,0x42,0x00,0x7F,0xFE,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x00,0x00, 0x00, 0x00,
//-------心---------
0x00, 0x00,0x00,0x20,0x01,0xC0,0x00,0x00,0x00,0x00,0x0F,0xFC,0x00,0x02,0x80,0x02,0x40,0x02,
0x38,0x02,0x10,0x02,0x00,0x02,0x02,0x1E,0x01,0x00,0x00,0xE0,0x00,0x40,0x00,0x00, 0x00, 0x00
};
uchar code CK[144]=
{
//-------笑---------
0x00, 0x00,0x08,0x01,0x30,0x41,0xC2,0x42,0x62,0x42,0x52,0x44,0x42,0x48,0x4A,0x70,0x13,0xC0,
0xE4,0x60,0x44,0x50,0x64,0x48,0x54,0x44,0x48,0x46,0x40,0x43,0x40,0x02,0x00,0x00, 0x00,0x00,
//-------口---------
0x00, 0x00,0x00,0x00,0x00,0x00,0x3F,0xFC,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,
0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x3F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, 0x00, 0x00,
//-------常---------
0x00, 0x00,0x04,0x00,0x18,0x00,0x10,0x7C,0x90,0x40,0x77,0x40,0x55,0x40,0x15,0x40,0xF5,0xFF,
0x15,0x40,0x15,0x40,0x37,0x48,0xD0,0x44,0x54,0x78,0x18,0x00,0x10,0x00,0x00,0x00, 0x00, 0x00,
//-------开---------
0x00, 0x00,0x02,0x00,0x42,0x02,0x42,0x04,0x42,0x08,0x42,0x30,0x7F,0xC0,0x42,0x00,0x42,0x00,
0x42,0x00,0x42,0x00,0x7F,0xFE,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x00,0x00, 0x00, 0x00
};
//------------两边加0x0000是为了两个字之间延时时不出现字的”拖尾“现象---------
/*------------------小心图-------------------*/
uchar code small_heart[36] =
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xc0,0x07,0xe0,0x07,0xf0,0x07,0xf0,0x03,0xf8,
0x03,0xf8,0x07,0xf0,0x07,0xf0,0x07,0xe0,0x03,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
/*-------------------大心图--------------------*/
uchar code big_heart[36]=
{
0x00,0x00,0x00,0x00,0x0f,0x80,0x1f,0xc0,0x1f,0xe0,0x1f,0xe0,0x1f,0xf0,0x0f,0xf8,0x07,0xfc,
0x07,0xfc,0x0f,0xf8,0x1f,0xf0,0x1f,0xe0,0x1f,0xe0,0x1f,0xc0,0x0f,0x80,0x00,0x00,0x00,0x00
};
/*------------------笑脸图-------------------*/
uchar code smile[36]=
{
0x00,0x00,0x03,0x80,0x0c,0x60,0x10,0x18,0x20,0xc4,0x4c,0x24,0x4c,0x12,0x4c,0x12,0x40,0x12,
0x40,0x12,0x4c,0x12,0x4c,0x12,0x4c,0x24,0x20,0xc4,0x10,0x18,0x0c,0x60,0x03,0x80,0x00,0x00
};
uchar wave_time = 0;
uchar state = 10; //无效状态
uchar flag = 0; //显示过一遍则置1
//----延时-----
void delay(uchar time);
void main(void)
{
signed int i;
IT0 = 1;
IE0 = 0;
EX0 = 1;
EA =1 ;
//----P2接上面八位,P1接下面八位----
P1 = 0xff;
P2 = 0xff;
while(1)
{
//--如果没有中断产生则不显示---
if(!flag)
{
IE0 = 0;//--中断请求置0---
EA = 0; //--关中断----
//----状态转换-------
switch(state)
{
//-------技术师范---------
case 0:
{
delay(50); // 使图形在中央附近显示
for(i = sizeof(JSTU)-1; i >= 0;i--)
{
P1 = ~JSTU[i];
P2 = ~JSTU[--i];
delay(2);
}
flag = 1;
break;
}
//-------电信学院--------
case 1:
{
delay(50); // 使图形在中央附近显示
for(i = sizeof(DX)-1;i >= 0;i--)
{
P1 = ~DX[i];
P2 = ~DX[--i];
delay(2);
}
flag = 1;
break;
}
//--------05测控1W----------
case 2:
{
delay(50); // 使图形在中央附近显示
for(i = sizeof(CK)-1;i >= 0;i--)
{
P1 = ~CK[i];
P2 = ~CK[--i];
delay(2);
}
flag = 1;
break;
}
//--------笑脸------------
case 3:
{
delay(50); // 使图形在中央附近显示
for(i = sizeof(smile)-1;i >= 0;i--)
{
P1 = ~smile[i];
P2 = ~smile[--i];
delay(5);
}
flag = 1;
break;
}
//---------心跳(小)----------
case 4:
{
delay(50); // 使图形在中央附近显示
for(i = sizeof(small_heart)-1;i >= 0;i--)
{
P1 = ~small_heart[i];
P2 = ~small_heart[--i];
delay(5);
}
flag = 1;
break;
}
//---------心跳(大)----------
case 5:
{
delay(50); // 使图形在中央附近显示
for(i = sizeof(big_heart)-1;i >= 0;i--)
{
P1 = ~big_heart[i];
P2 = ~big_heart[--i];
delay(5);
}
flag = 1;
break;
}
//----其它不显示----
default:
{
P1 = 0xff;
P2 = 0xff;
flag = 1;
break;
}
}
EA = 1;
}
}
}
//-----延时-----
void delay(uchar time)
{
uint i,j;
for(i = 0;i < 15;i++)
for(j = 0;j < time;j++);
}
//-----外部中断-----
void INT_0() interrupt 0 using 1
{
flag = 0;
if(wave_time++ >= 90)wave_time = 0;//---90次一个轮回
if(wave_time < 15) state = 0;//技术师范
else if (wave_time < 30) state = 1;// 电信学院
else if (wave_time < 45) state = 2;// 05测控1W
else if (wave_time < 60) state = 3;// 笑脸
else if (wave_time %2 == 0) state= 4;// 大心图
else if (wave_time %2 == 1) state= 5;// 小心图
IE0 = 0;//----防抖动-----
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -