📄 main.c
字号:
0x08,0x08,0x08,0xFF,0x88,0x40,0xFE,0x92,0x92,0x92,0xF2,0x92,0x92,0x9E,0x80,0x00,
0x02,0x42,0x81,0x7F,0x40,0x30,0x0F,0xFC,0x44,0x44,0x47,0x44,0x44,0xFC,0x00,0x00,/*"据",27*/
0x00,0xFC,0x44,0x44,0x44,0xFC,0x10,0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,
0x00,0x07,0x04,0x04,0x04,0x07,0x00,0x00,0x03,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,/*"时",28*/
0x40,0x30,0x2C,0xEB,0x28,0x28,0x00,0xF8,0x08,0x08,0xFF,0x08,0x08,0xF8,0x00,0x00,
0x01,0x01,0x01,0xFF,0x41,0x21,0x00,0x01,0x01,0x01,0xFF,0x01,0x01,0x01,0x00,0x00,/*"钟",29*/
0x40,0x41,0xCE,0x04,0x00,0x80,0x40,0xBE,0x82,0x82,0x82,0xBE,0xC0,0x40,0x40,0x00,
0x00,0x00,0x7F,0x20,0x90,0x80,0x40,0x43,0x2C,0x10,0x10,0x2C,0x43,0xC0,0x40,0x00,/*"设",30*/
0x00,0x20,0x2F,0xA9,0xA9,0xAF,0xE9,0xB9,0xA9,0xAF,0xA9,0xA9,0x2F,0x20,0x00,0x00,
0x80,0x80,0x80,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0x80,0x80,0x80,0x00,/*"置",31*/
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,/*"空白",32*/
0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0x02,0xFE,0x82,0x82,0x82,0x82,0x82,0x02,0x00,
0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x00,/*"正",33*/
0x00,0x04,0x04,0xC4,0x64,0x9C,0x87,0x84,0x84,0xE4,0x84,0x84,0x84,0x84,0x04,0x00,
0x04,0x02,0x01,0x7F,0x00,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x00,/*"在",34*/
0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,
0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,/*"中",35*/
0x00,0xC0,0xC0,0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"…",36*/
0x20,0x30,0xAC,0x63,0x10,0x00,0x08,0x48,0x48,0x48,0x7F,0x48,0x48,0x48,0x08,0x00,
0x22,0x23,0x22,0x12,0x12,0x00,0x00,0x7E,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00,/*"结",37*/
0x00,0x00,0x00,0x3E,0x2A,0x2A,0x2A,0xFE,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00,0x00,
0x21,0x21,0x11,0x11,0x09,0x05,0x03,0xFF,0x03,0x05,0x09,0x09,0x11,0x31,0x11,0x00,/*"果",38*/
};
//16*8 点阵字符
unsigned char code zf[]={
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,/*"0",0*/
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*"1",1*/
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,/*"2",2*/
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,/*"3",3*/
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,/*"4",4*/
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,/*"5",5*/
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,/*"6",6*/
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,/*"7",7*/
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,/*"8",8*/
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,/*"9",9*/
0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,/*"A",10*/
0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,/*"B",11*/
0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,/*"C",12*/
0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,/*"R",13*/
0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*"I",14*/
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,/*"m",15*/
0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,/*"K",16*/
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,/*"F",17*/
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,/*"O",18*/
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,/*"=",19*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,/*"-",20*/
0x6C,0x54,0x4C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"2次方",21*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,/*".",22*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*消隐,23*/
0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,/*":",24*/
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,/*"U",25*/
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,/*"=",26*/
0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,/*"K",27*/
0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,/*"V",28*/
0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*"I",29*/
0x00,0xF8,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x7F,0x04,0x08,0x08,0x04,0x07,0x08,/*"μ",30*/
0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,/*"A",31*/
};
//小数字为8*8点阵
unsigned char code xz[]={
0x00,0x3E,0x41,0x41,0x3E,0x00,0x00,0x00,/*"0",0*/
0x00,0x42,0x7F,0x40,0x00,0x00,0x00,0x00,/*"1",1*/
0x00,0x62,0x51,0x49,0x46,0x00,0x00,0x00,/*"2",2*/
0x00,0x22,0x49,0x49,0x36,0x00,0x00,0x00,/*"3",3*/
0x00,0x38,0x26,0x7F,0x20,0x00,0x00,0x00,/*"4",4*/
0x00,0x4F,0x49,0x49,0x31,0x00,0x00,0x00,/*"5",5*/
0x00,0x3E,0x49,0x49,0x32,0x00,0x00,0x00,/*"6",6*/
0x00,0x03,0x71,0x09,0x07,0x00,0x00,0x00,/*"7",7*/
0x00,0x36,0x49,0x49,0x36,0x00,0x00,0x00,/*"8",8*/
0x00,0x26,0x49,0x49,0x3E,0x00,0x00,0x00,/*"9",9*/
0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,/*"_",10*/
0x00,0x00,0x24,0x00,0x00,0x00,0x00,0x00,/*":",11*/
0x00,0x82,0x82,0xFF,0x80,0x80,0x00,0x00,/*"1",12*/
0x88,0xF8,0x88,0x08,0xF8,0x88,0x08,0xF8,/*"m",13*/
0x80,0xE0,0xBC,0x23,0x26,0xB8,0xC0,0x80,/*"A",14*/
0x00,0x3E,0x41,0x41,0x41,0x3E,0x00,0x80,/*"0",15*/
0x80,0x03,0x01,0x79,0x07,0x01,0x00,0x00,/*"7",16*/
0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00,/*"5",17*/
0x00,0x01,0x3F,0x40,0x40,0x3F,0x01,0x00,/*"U",18*/
};
//电池标志为8*16点阵
unsigned char code tu[]={
0x00,0x00,0x1C,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x42,0x42,0x7E,0x42,0x42,0x7E,0x00,/*"bmp1",0*/
0x00,0x00,0x1C,0x7E,0x42,0x42,0x42,0x42,0x7E,0x42,0x42,0x7E,0x42,0x42,0x7E,0x00,/*"bmp2",1*/
0x00,0x00,0x1C,0x7E,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x7E,0x42,0x42,0x7E,0x00,/*bmp3",2*/
};
//显示汉字,fb==1:反白显示,16*16点阵
void dh(unsigned char x,unsigned char y,unsigned char n,unsigned char fb)
{
unsigned char i,bb,dd;
for (bb=0;bb<2;bb++)
{
for (i=0;i<16;i++)
{
dd=hz[i+16*bb+n*32];
if (fb)
dd=~dd;
lw(x,y,dd);
y=y++;
}
x=x++;
y=y-16;
}
}
//显示字符,fb==1:反白显示,16*8点阵
void df(unsigned char x,unsigned char y,unsigned char n,unsigned char fb)
{
unsigned char i,bb,dd;
for (bb=0;bb<2;bb++)
{
for (i=0;i<8;i++)
{
dd=zf[i+8*bb+n*16];
if (fb)
dd=~dd;
lw(x,y,dd);
y=y++;
}
x=x++;
y=y-8;
}
}
//8*8点阵显示,fb==1:反白显示
void dxz(uchar x,uchar y,uchar n,uchar fb)
{
unsigned char i,bb,dd,tt,gg;
for (bb=0;bb<1;bb++)
{
for (i=0;i<8;i++)
{
dd=xz[i+8*bb+n*8];
if (fb)
dd=~dd;
lw(x,y,dd);
y=y++;
}
x=x++;
y=y-8;
}
}
//8*16 电池图形点阵,fb==1:反白显示
void dtx(uchar x,uchar y,uchar n,uchar fb)
{
unsigned char i,bb,dd,tt,gg;
for (bb=0;bb<1;bb++)
{
for (i=0;i<16;i++)
{
dd=tu[i+16*bb+n*16];
if (fb)
dd=~dd;
lw(x,y,dd);
y=y++;
}
x=x++;
y=y-8;
}
}
void diyiping() //产品厂家信息
{
dh(0,52,0,0);
dh(0,76,1,0);
dh(0,100,2,0);
dh(0,124,3,0);
dh(3,24,4,0);
dh(3,40,5,0);
dh(3,56,6,0);
dh(3,72,7,0);
dh(3,88,8,0);
dh(3,104,9,0);
dh(3,120,10,0);
dh(3,136,11,0);
dh(3,152,12,0);
dh(6,8,13,0);
dh(6,24,14,0);
dh(6,40,15,0);
dh(6,56,16,0);
dh(6,72,17,0);
dh(6,88,18,0);
dh(6,104,19,0);
dh(6,120,20,0);
dh(6,136,21,0);
dh(6,152,22,0);
dh(6,168,23,0);
}
void dierping() //主菜单
{
dtx(1,176,0,0); //电池满格
dxz(0,108,0,0); //显示年月日
dxz(0,114,8,0);
dxz(0,120,10,0);
dxz(0,126,1,0);
dxz(0,132,1,0);
dxz(0,138,10,0);
dxz(0,144,1,0);
dxz(0,150,7,0);
dxz(0,162,1,0); //显示时分
dxz(0,168,2,0);
dxz(0,174,11,0);
dxz(0,180,2,0);
dxz(0,186,9,0);
//dh(2,36,32,1); //反白显示,测试
dh(2,52,10,1);
dh(2,68,32,1);
dh(2,84,32,1);
dh(2,100,32,1);
dh(2,108,32,1);
dh(2,124,11,1);
// dh(2,140,32,1);
dh(4,52,24,0); //历史数据
dh(4,76,25,0);
dh(4,100,26,0);
dh(4,124,27,0);
dh(6,52,28,0); //时钟设置
dh(6,76,29,0);
dh(6,100,30,0);
dh(6,124,31,0);
}
void disanping() //测试界面
{
dtx(1,176,0,0); //电池满格
dxz(0,108,0,0); //显示年月日
dxz(0,114,8,0);
dxz(0,120,10,0);
dxz(0,126,1,0);
dxz(0,132,1,0);
dxz(0,138,10,0);
dxz(0,144,1,0);
dxz(0,150,7,0);
dxz(0,162,1,0); //显示时分
dxz(0,168,2,0);
dxz(0,174,11,0);
dxz(0,180,2,0);
dxz(0,186,9,0);
dh(0,0,33,0); //正在测试中:
dh(0,16,34,0);
dh(0,32,10,0);
dh(0,48,11,0);
dh(0,64,35,0);
// df(0,80,24,0);
dh(0,80,36,0);
df(3,58,25,0); //U=XX.XKV
df(3,70,26,0); //=
df(3,118,27,0); //K
df(3,126,28,0); //V
df(3,82,2,0); //26.8
df(3,90,6,0);
df(3,98,22,0);
df(3,106,8,0);
df(6,58,29,0); //I=XXXuA
df(6,70,26,0); //=
df(6,118,30,0); //u
df(6,126,31,0); //A
df(6,82,1,0); //1999
df(6,90,9,0);
df(6,98,9,0);
df(6,106,9,0);
}
void disiping() //测试结果
{
dtx(1,176,0,0); //电池满格
dxz(0,108,0,0); //显示年月日
dxz(0,114,8,0);
dxz(0,120,10,0);
dxz(0,126,1,0);
dxz(0,132,1,0);
dxz(0,138,10,0);
dxz(0,144,1,0);
dxz(0,150,7,0);
dxz(0,162,1,0); //显示时分
dxz(0,168,2,0);
dxz(0,174,11,0);
dxz(0,180,2,0);
dxz(0,186,9,0);
dh(0,0,10,0); //测试结果:
dh(0,16,11,0);
dh(0,32,37,0);
dh(0,48,38,0);
df(0,64,24,0);
df(3,46,25,0); //U1mA=XX.XKV
dxz(4,54,12,0);
dxz(4,62,13,0);
dxz(4,70,14,0);
df(3,82,26,0);
df(3,130,27,0);
df(3,138,28,0);
df(3,94,2,0); //26.8
df(3,102,6,0);
df(3,110,22,0);
df(3,118,8,0);
df(6,46,29,0); //I,I0.75U=XXXuA
dxz(7,52,15,0); //0.
dxz(7,60,16,0); //7
dxz(7,66,17,0); //5
dxz(7,72,18,0); //U
df(6,82,26,0); //=
df(6,130,30,0); //u
df(6,138,31,0); //A
df(6,94,1,0); //1999
df(6,102,9,0);
df(6,110,9,0);
df(6,118,9,0);
}
uchar namekey(void)
{
uchar SW;
uchar KK ;
bit flag;
flag=IRcvByte(0x40,&SW);//读pcf8574数据
if ( (SW&0xff)!=0xff) //如果无键按下,则返回键值0
{
delay1ms (10) ; //按键延时10ms
flag=IRcvByte(0x40,&SW);//读pcf8574数据
if ( (SW&0xff)!=0xff) //如果判断无键,则为误抖动,返回0
{
KK = SW;
do( flag=IRcvByte(0x40,&SW));//读pcf8574数据
while ( (SW&0xff)!=0xff); //等键释放
KK = KK & 0xff ;
switch(KK)
{
case 0xfe:return(1);break; //上
case 0xfd:return(2);break; //下
case 0xfb:return(3);break; //右
case 0xf7:return(4);break; //返回
case 0xef:return(5);break; //存储
case 0xdf:return(6);break; //打印
case 0xbf:return(7);break; //确定
}
}
}
return (0);
}
void program_1()
{
}
void program_2()
{
}
void program_7()
{
lcd_init() ; //清屏
disanping(); //测试中
}
void key_chuli_1(uchar key) //按键处理1,键值为3、4、5、6均不起作用
{
switch(key)
{
case 1:program_1(); break;//上
case 2:program_2(); break;//下
case 7:program_7(); break;//确定
}
}
void main()
{ uchar key;
lcd_init() ; //液晶屏初始化,清屏
diyiping(); //产品信息显示
do //等待确定键被按下
{key=namekey();}
while(key!=7);
lcd_init() ; //清屏
dierping(); //测试主菜单
do //等待有键被按下
{key=namekey();}
while(!key); //key=0,表示无键按下,继续扫描键盘
key_chuli_1(key); //有键被按下,转键盘处理1
/* lcd_init() ; //清屏
disanping(); //测试中
delay1ms(255);
delay1ms(255);
delay1ms(255);
delay1ms(255);
lcd_init() ; //清屏
disiping(); //测试结果
*/
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -