📄 lcd12864.h
字号:
void Clr_Scr(void)//清除内存
{
unsigned char j,k;
Mcs=1;Scs=1;
write_com(Page_Add+0);
write_com(Col_Add+0);
for(k=0;k<8;k++)
{
write_com(Page_Add+k);
write_com(Col_Add+0);
for(j=0;j<64;j++)
{
write_data(0x00);
}
}
}
/*******************************************************************************/
void Disp_Img(unsigned char code *img)//显示12864图片
{
unsigned char j,k;
for(k=0;k<8;k++)
{
Mcs=1;
Scs=0;
Delay(10);
write_com(Page_Add+k);
write_com(Col_Add+0);
for(j=0;j<64;j++)
{
write_data(img[k*128+j]);
}
Mcs=0;
Scs=1;
Delay(10);
write_com(Page_Add+k);
write_com(Col_Add+0);
for(j=64;j<128;j++)
{
write_data(img[k*128+j]);
}
}
}
/*******************************************************************************/
void Disp_Chinese(unsigned char pag,unsigned char col, char code *hzk)
{ //指定位置显示汉字16*16
unsigned char j=0,i=0;
for(j=0;j<2;j++)//程序说明:pag取值为0~7,col因为是16*16所以0~64间距为16,
{
write_com(Page_Add+pag+j);//程序为何要加一,因为是16*16所以一个汉字要占二列
write_com(Col_Add+col);
for(i=0;i<16;i++)
{
write_data(hzk[16*j+i]);
}
}
}
/*******************************************************************************/
void Disp_Digit(unsigned char pag,unsigned char col, unsigned char code *hzk)
{ //指定位置显示字母或数字8*16
unsigned char j=0, i=0;
for(j=0;j<2;j++)//程序注明,簆ag取值为0~7,col因为是8*16所以0~64间距为8,
{
write_com(Page_Add+pag+j);//程序为何要加J,是因为每一个字母或数字要占二列
write_com(Col_Add+col);
for(i=0;i<8;i++)
{
write_data(hzk[8*j+i]);
}
}
}
/********************************************************************************/
void Init_lcd(void)//初始化LCD屏
{
Lcd_Rst=0;
Delay12864(100);
Lcd_Rst=1;
Delay12864(100);
Mcs=1; Scs=1;
Delay12864(100);
write_com(Disp_Off);
write_com(Page_Add+0);
write_com(Start_Line+0);
write_com(Col_Add+0);
write_com(Disp_On);
}
/*显示汉字在指定的位置*/
void Lcd_Mark(void)//在预定的位置上写入汉字)
{
Clr_Scr();//清屏
// frame();//显示边框
Mcs=1;Scs=0;
Disp_Digit(0,8,syh);
Disp_Chinese(0,16,mao);
Disp_Chinese(0,32,ge);
Disp_Chinese(0,48,hen);
Disp_Digit(2,8,syh);
Disp_Chinese(2,16,hou);
Disp_Chinese(2,32,guo);
Disp_Chinese(2,48,hen);
Disp_Digit(4,8,bfh);
Disp_Chinese(4,16,huan);
Disp_Digit(4,32,bfh);
Disp_Chinese(4,40,ying);
Disp_Digit(4,56,bfh);
Disp_Chinese(6,0,dian);
Disp_Chinese(6,16,hua);
Disp_Digit(6,32,mh);
Disp_Digit(6,40,one);
Disp_Digit(6,48,three);
Disp_Digit(6,56,six);
Mcs=0;Scs=1;
Disp_Chinese(0,0,sheng);
Disp_Chinese(0,16,qi1);
Disp_Digit(0,32,syh);
Disp_Chinese(2,0,yan);
Disp_Chinese(2,16,zhon);
Disp_Digit(2,32,syh);
Disp_Chinese(4,0,guang);
Disp_Digit(4,16,bfh);
Disp_Chinese(4,24,lin);
Disp_Digit(4,40,bfh);
Disp_Digit(6,0,eight);
Disp_Digit(6,8,one);
Disp_Digit(6,16,nine);
Disp_Digit(6,24,six);
Disp_Digit(6,32,five);
Disp_Digit(6,40,seven);
Disp_Digit(6,48,two);
Disp_Digit(6,56,nine);
}
void Disp(void)//显示和闪烁函数
{
unsigned int i=0;
unsigned char a=0,b=0,c=0,f=0;
if(sec1==1) //秒闪烁标志位
{
if(flag==1)
{
// d=sec;//读秒
//d=((d&0x70)>>4)*10+(d&0x0f);
// e=d;
d=sec/10;
e=sec%10;
Mcs=0;Scs=1;
Disp_Digit(3,40,zero+d*16);//送显示
Disp_Digit(3,48,zero+e*16);
}
else
{
Mcs=0;Scs=1;
Disp_Digit(3,40,space); //显示空格
Disp_Digit(3,48,space);
}
}
else
{
//d=sec;//读秒
//d=((d&0x70)>>4)*10+(d&0x0f);
//e=d;
d=sec/10;
e=sec%10;
Mcs=0;Scs=1;
Disp_Digit(3,40,zero+d*16);
Disp_Digit(3,48,zero+e*16);
}
if(min1==1) //分钟闪烁标志位
{
if(flag==1)
{
// d=min;//读分钟
// e=d;
// d=d>>4;
// e=e&0x0f;
d=min/10;
e=min%10;
Mcs=0;Scs=1;
Disp_Digit(3,16,zero+d*16);
Disp_Digit(3,24,zero+e*16);
}
else
{
Mcs=0;Scs=1;
Disp_Digit(3,16,space); //显示空格
Disp_Digit(3,24,space);
}
}
else
{
// d=min;//读分钟
// e=d;
// d=d>>4;
// e=e&0x0f;
d=min/10;
e=min%10;
Mcs=0;Scs=1;
Disp_Digit(3,16,zero+d*16);
Disp_Digit(3,24,zero+e*16);
}
if(hour1==1) //小时闪烁标志位
{
if(flag==1)
{
// d=hour;//读小时
// e=d;
// d=d>>4;
// e=e&0x0f;
d=hour/10;
e=hour%10;
Mcs=1;Scs=0;
Disp_Digit(3,56,zero+d*16);
Mcs=0;Scs=1;
Disp_Digit(3,0,zero+e*16);
}
else
{
Mcs=1;Scs=0;
Disp_Digit(3,56,space); //显示空格
Mcs=0;Scs=1;
Disp_Digit(3,0,space);
}
}
else
{
// d=hour;//读小时
// e=d;
// d=d>>4;
// e=e&0x0f;
d=hour/10;
e=hour%10;
Mcs=1;Scs=0;
Disp_Digit(3,56,zero+d*16);
Mcs=0;Scs=1;
Disp_Digit(3,0,zero+e*16);
}
if(year1==1) //年闪烁标志位
{
if(flag==1)
{
// d=year;//读年
// e=d;
// d=d>>4;
// e=e&0x0f;
d=year/10;
e=year%10;
Mcs=1;Scs=0;
Disp_Digit(1,8,two);
Disp_Digit(1,16,zero);
Disp_Digit(1,24,zero+d*16);
Disp_Digit(1,32,zero+e*16);
}
else
{
Mcs=1;Scs=0;
Disp_Digit(1,24,space); //显示空格
Disp_Digit(1,32,space);
}
}
else
{
// d=read_clock(0x8d);//读年
// e=d;
// d=d>>4;
// e=e&0x0f;
d=year/10;
e=year%10;
Mcs=1;Scs=0;
Disp_Digit(1,8,two);
Disp_Digit(1,16,zero);
Disp_Digit(1,24,zero+d*16);
Disp_Digit(1,32,zero+e*16);
}
if(month1==1) //月闪烁标志位
{
if(flag==1)
{
// d=read_clock(0x89);//读月
// e=d;
// d=d>>4;
// e=e&0x0f;
d=month/10;
e=month%10;
Mcs=1;Scs=0;
Disp_Digit(1,56,zero+d*16);
Mcs=0;Scs=1;
Disp_Digit(1,0,zero+e*16);
Disp_Chinese(1,8,yue);
}
else
{
Mcs=1;Scs=0;
Disp_Digit(1,56,space); //显示空格
Mcs=0;Scs=1;
Disp_Digit(1,0,space);
}
}
else
{
// d=read_clock(0x89);//读月
// e=d;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -