📄 main.c
字号:
// Header:DIY摇棒
// Author:hxembed
// Date:2010年1月
#include<AT89x52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key = P3^0;//定义切换画面开关
uchar Key_num;//定义按键次数
uchar Int0_num;//定义中断次数
uchar Direction;//定义摇动方向(从左到右)
uchar code Embed[]={
0x80,0x00,0x88,0x00,0x4A,0x80,0x4A,0x41,0x2A,0x21,0x2A,0x19,0x1A,0x07,0xFE,0x01,
0x19,0x09,0x19,0x0D,0x29,0x4B,0x29,0x89,0x49,0x48,0xC8,0x38,0x48,0x00,0x00,0x00,/*秀*/
0x80,0x00,0x88,0x00,0x4A,0x80,0x4A,0x41,0x2A,0x21,0x2A,0x19,0x1A,0x07,0xFE,0x01,
0x19,0x09,0x19,0x0D,0x29,0x4B,0x29,0x89,0x49,0x48,0xC8,0x38,0x48,0x00,0x00,0x00,/*秀*/
0x20,0x04,0x20,0x04,0x22,0x42,0x22,0x82,0xFE,0x7F,0x21,0x01,0x21,0x01,0x20,0x10,
0x20,0x10,0xFF,0x08,0x20,0x07,0x22,0x1A,0xAC,0x21,0x20,0x40,0x20,0xF0,0x00,0x00,/*我*/
0x00,0x40,0x40,0x20,0xB2,0xA0,0x96,0x90,0x9A,0x4C,0x92,0x47,0xF6,0x2A,0x9A,0x2A,
0x93,0x12,0x91,0x1A,0x99,0x26,0x97,0x22,0x91,0x40,0x90,0xC0,0x30,0x40,0x00,0x00,/*爱*/
0x80,0x00,0x40,0x00,0xF0,0x7F,0x2C,0x00,0x43,0x10,0x20,0x0C,0x98,0x03,0x0F,0x21,
0x0A,0x40,0xE8,0x3F,0x08,0x00,0x88,0x00,0x28,0x03,0x1C,0x1C,0x08,0x08,0x00,0x00,/*你*/
};
uchar code love[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x20,0x00,0x20,0x00,0x20,
0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,
0x04,0x10,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x04,0x10,0xF8,0x0F,0x00,0x00,
0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x10,
0x00,0x08,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x82,0x20,0x82,0x20,
0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*LOVE*/
};
uchar code love_picture[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x78,0x00,0xFC,0x00,0xFE,0x01,0xFE,0x03,0xFE,0x07,0xFE,0x0F,0xFE,0x1F,0xFC,0x3F,
0xF8,0x7F,0xFC,0x3F,0xFE,0x1F,0xFE,0x0F,0xFE,0x07,0xFE,0x03,0xFE,0x01,0xFC,0x00,
0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*心形图案*/
};
uchar code Hello[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/
0x08,0x20,0xF8,0x3F,0x08,0x21,0x00,0x01,0x00,0x01,0x08,0x21,0xF8,0x3F,0x08,0x20,/*"H",1*/
0x00,0x00,0x00,0x1F,0x80,0x22,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x13,0x00,0x00,/*"e",2*/
0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/*"l",3*/
0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/*"l",4*/
0x00,0x00,0x00,0x1F,0x80,0x20,0x80,0x20,0x80,0x20,0x80,0x20,0x00,0x1F,0x00,0x00,/*"o",5*/
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x33,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",6*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",7*/
};
uchar code Smile[] =
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xF0,0x1F,0x3C,0x3C,0x0E,0xF7,0x06,0xEF,0xF3,0xDC,0xF3,0xB0,0x63,0xB0,0x03,0xB0,
0xF3,0xB0,0xF3,0xB8,0x03,0xDD,0x06,0xEF,0x0E,0x76,0x3C,0x3C,0xF8,0x1F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
uchar code Hxembed_Make[]={
0x00,0x00,0x00,0x0E,0x00,0x11,0x80,0x20,0x80,0x20,0x88,0x10,0xF8,0x3F,0x00,0x20,/*"d",6*/
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x40,0x08,0x20,0x28,0x10,0x49,0x08,0x8A,0x04,0x0C,0x03,0xC8,0x06,0x38,0x38,
0x08,0x10,0x00,0x00,0xF8,0x07,0x00,0x20,0x00,0x40,0xFF,0x3F,0x00,0x00,0x00,0x00,/*刘*/
0x00,0x00,0x90,0x00,0x8C,0x00,0x84,0x00,0x84,0x00,0x84,0x40,0x85,0x80,0x86,0x7F,
0x84,0x00,0x84,0x00,0x84,0x00,0x84,0x00,0x94,0x00,0x8E,0x00,0x04,0x00,0x00,0x00,/*宁*/
0x00,0x00,0x00,0x00,0xC0,0x00,0xB8,0x1E,0xA0,0x02,0xFE,0x3F,0xA4,0x02,0x60,0x02,
0x50,0x1E,0x00,0x00,0xE0,0x03,0x00,0x00,0x14,0x60,0xEC,0x3F,0x00,0x00,0x00,0x00,/*"制",7*/
0x00,0x00,0x00,0x01,0x80,0x00,0x40,0x00,0xF0,0x3F,0x0C,0x00,0x80,0x00,0x40,0x00,
0x30,0x00,0xEE,0x7E,0x20,0x09,0x20,0x09,0x20,0x05,0x10,0x00,0x00,0x00,0x00,0x00,/*"作",8*/
};
uchar code Thanks[] =
{
0x00,0x00,0x00,0x08,0x00,0x09,0x00,0x10,
0x00,0xFF,0x00,0x20,0x00,0x42,0x00,0x04,
0x00,0xC8,0x00,0x30,0x00,0x2C,0x00,0xC3,
0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x81,0x00,0x86,
0x00,0x98,0x00,0xE0,0x00,0xB1,0x00,0xAA,
0x00,0xA4,0x00,0xAA,0x00,0xB2,0x00,0xA1,
0x00,0x81,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,
0x00,0x00,0x00,0x08,0x00,0x10,0x00,0x61,
0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x40
};
/*延时函数*/
void delay(uint X)
{
uint i;
for(i=0;i<=X;i++)
;
}
/* '嵌入式系统工程'显示112*16像素 */
void display1()
{
uchar i;
delay(4000);
for(i=0;i<80;i++)
{
P0=~Embed[i*2];
P2=~Embed[i*2+1];
delay(40);//延时时间自己可以调,最好让画面显示在中间
}
}
/*'LOVE'显示64*16像素 */
void display2()
{
uchar i;
delay(4000);
for(i=0;i<64;i++)
{
P0=~love[i*2];
P2=~love[i*2+1];
delay(120);
}
}
/*心形图案 显示64*16像素 */
void display3()
{
uchar i;
delay(4000);
for(i=0;i<64;i++)
{
P0=~love_picture[i*2];
P2=~love_picture[i*2+1];
delay(120);
}
}
/*‘Hello!’显示64*16像素 */
void display4()
{
uchar i;
delay(4000);
for(i=0;i<64;i++)
{
P0=~Hello[i*2];
P2=~Hello[i*2+1];
delay(120);
}
}
/*笑脸图案 显示64*16像素*/
void display5()
{
uchar i;
delay(4000);
for(i=0;i<64;i++)
{
P0=~Smile[i*2];
P2=~Smile[i*2+1];
delay(120);
}
}
/*‘Hxembed制作 显示88*16像素’*/
void display6()
{
uchar i;
delay(4000);
for(i=0;i<88;i++)
{
P0=~Hxembed_Make[i*2];
P2=~Hxembed_Make[i*2+1];
delay(60);
}
}
/* '谢谢!'显示48*16像素 */
void display7()
{
uchar i;
delay(4000);
for(i=0;i<48;i++)
{
P0=~Thanks[i*2];
P2=~Thanks[i*2+1];
delay(120);
}
}
/*外部中断0子函数*/
void int0(void) interrupt 0
{
Direction=~Direction;
if(Direction==0)
{
Int0_num++;//中断次数加1
switch(Key_num)
{
case 0:display1();break;
case 1:display2();break;
case 2:display3();break;
case 3:display4();break;
case 4:display5();break;
case 5:display6();break;
case 6:display7();break;
default :display1();
}
}
}
void main(void)
{
EA=1;//开总中断
IT0=1;//下降沿中断
EX0=1;//启动外部中断0你——怒目
Key_num=0;//初始化按键次数为零
while(1)
{
if(key==0)
{
delay(10000); // 去抖,可以跟自己的电路适当选择时间
if(key==0)
{
Key_num++;
if(Key_num>6)//如果超过切换页面的次数就清零
Key_num=0;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -