📄 lcd128x64_2.c
字号:
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
};
/*---------------------------------------*/
/*---------------------------------------*/
//延迟时间子程序
void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++)
;
}
/*---------------------------------------*/
/*---------------------------------------*/
//写入指令到LCD128X64
void write_command(unsigned char cmdcode)
{
RS=0;
RW=0;
P0=cmdcode;
delay(0);
E=1;
delay(0);
E=0;
}
/*---------------------------------------*/
/*---------------------------------------*/
//写入数据到LCD128X64
void write_data(unsigned char Dispdata)
{
RS=1;
RW=0;
P0=Dispdata;
delay(0);
E=1;
delay(0);
E=0;
}
/*---------------------------------------*/
/*---------------------------------------*/
//读出LCD128X64中的数据
/*unsigned char read_data(void)
{
unsigned char tempin;
RS=1;
RW=1;
delay(0);
E=1;
delay(0);
E=0;
tempin=P0;
return (tempin);
}
*/
/*---------------------------------------*/
/*---------------------------------------*/
//显示边框
/*
void frame(void)
{
unsigned char i;
CS2=1;
CS1=1;
write_command(Page_Add+0);
write_command(Col_Add +0);
for(i=0;i<64;i++)
write_data(0x01);
write_command(Page_Add+7);
write_command(Col_Add+ 0);
for(i=0;i<64;i++)
write_data(0x80);
for(i=0;i<8;i++)
{
CS2=0;
CS1=1;
write_command(Page_Add+i);
write_command(Col_Add+63);
write_data(0xff);
CS2=1;
CS1=0;
write_command(Page_Add+i);
write_command(Col_Add+0);
write_data(0xff);
}
}
*/
/*---------------------------------------*/
/*---------------------------------------*/
//显示清屏
void clr_scr(void)
{
unsigned char j,k;
CS2=1;
CS1=0; //清除左边半边屏幕
{
write_command(Page_Add+0);
write_command(Col_Add+0);
for(k=0;k<4;k++) // 清左上半屏
{
for(j=0;j<64;j++)
write_data(0x00);
}
for(k=0;k<4;k++) // 清左下半屏
{
for(j=0;j<64;j++)
write_data(0x00);
}
for(k=0;k<4;k++)
{
write_command(Page_Add+4);
for(j=0;j<64;j++)
write_data(0x00);
}
}
CS2=0;
CS1=1; // 清右半屏
{
write_command(Page_Add+0);
write_command(Col_Add+0);
for(k=0;k<4;k++) // 清右上半屏
{
for(j=0;j<64;j++)
write_data(0x00);
}
for(k=0;k<4;k++) // 清右下半屏
{
write_command(Page_Add+4);
for(j=0;j<64;j++)
write_data(0x00);
}
}
}
/*---------------------------------------*/
/*---------------------------------------*/
//显示128X64图片
void Disp_Img(unsigned char code *img)
{
unsigned char j,k;
for(k=0;k<8;k++)
{
CS2=1;
CS1=0;
delay(10);
write_command(Page_Add+k);
write_command(Col_Add+0);
for(j=0;j<64;j++)
write_data(img[k*128+j]);
CS2=0;
CS1=1;
delay(10);
write_command(Page_Add+k);
write_command(Col_Add+0);
for(j=64;j<128;j++)
write_data(img[k*128+j]);
}
}
/*-------------------------------------------*/
/*-------------------------------------------*/
//显示横线
/*
void Disp_H_Line(void)
{
unsigned char i,j;
CS2=1;
CS1=1;
write_command(Disp_On);
write_command(Page_Add);
write_command(Start_Line);
write_command(Col_Add);
for(j=0;j<8;j++)
{
write_command(Page_Add+j);
write_command(Col_Add+0);
write_command(Start_Line+0);
for(i=0;i<64;i++)
write_data(0x55);
}
}
*/
/*-------------------------------------------*/
/*-------------------------------------------*/
//显示列线
/*
void Disp_V_Line(void)
{
unsigned char i,j;
write_command(Disp_On);
write_command(Page_Add);
write_command(Start_Line);
write_command(Col_Add);
for(j=0;j<8;j++)
{
write_command(Page_Add+j);
write_command(Col_Add+0);
for(i=0;i<32;i++)
{
write_data(0x00);
write_data(0xff);
}
}
}
*/
/*-------------------------------------------*/
/*-------------------------------------------*/
//指定位置显示数字8*16
void sz_disp16(unsigned char pag, unsigned char col, unsigned char code *szk)
{
unsigned char i=0,j=0;
for(j=0;j<2;j++)
{
write_command(Page_Add+pag+j);
write_command(Col_Add+col);
for(i=0;i<8;i++)
write_data(szk[8*j+i]);
}
}
/*-------------------------------------------*/
/*-------------------------------------------*/
//指定位置显示汉字16*16
void hz_disp16(unsigned char pag, unsigned char col, unsigned char code *hzk)
{
unsigned char i=0,j=0;
for(j=0;j<2;j++)
{
write_command(Page_Add+pag+j);
write_command(Col_Add+col);
for(i=0;i<16;i++)
write_data(hzk[16*j+i]);
}
}
/*-------------------------------------------*/
/*-------------------------------------------*/
//初始化LCD128*64
void init_lcd(void)
{
RST=0;
delay(100);
RST=1;
delay(100);
CS2=1;
CS1=1;
delay(100);
write_command(Disp_Off);
write_command(Page_Add+0);
write_command(Start_Line+0);
write_command(Col_Add+0);
write_command(Disp_On);
}
/*-------------------------------------------*/
/*-------------------------------------------*/
//开机显示信息
void StartMsg(void)
{
clr_scr(); //首先清除屏幕
CS2=1;
CS1=0;
hz_disp16(0,32,huan); //欢
delay(2000);
hz_disp16(0,48,ying); //迎
delay(2000);
CS2=0;
CS1=1;
hz_disp16(0,0,shi1); //使
delay(2000);
hz_disp16(0,16,yong); //用
delay(2000);
CS2=1;
CS1=0;
hz_disp16(2,32,shu); // 数
delay(2000);
hz_disp16(2,48,ma); // 码
delay(2000);
CS2=0;
CS1=1;
hz_disp16(2,0,shi); // 时
delay(2000);
hz_disp16(2,16,zhong); // 钟
delay(2000);
CS2=1;
CS1=0;
hz_disp16(5,16,zhi); // 制
delay(2000);
hz_disp16(5,32,zuo); // 作
delay(2000);
hz_disp16(5,48,maohao); // :
delay(2000);
CS2=0;
CS1=1;
hz_disp16(5,0,wei); // 刘
delay(2000);
hz_disp16(5,16,zhi1); // 兵
delay(2000);
hz_disp16(5,32,gantanhao); // !
delay(2000);
}
/*-------------------------------------------*/
/*-------------------------------------------*/
//时钟固定位置显示汉字
void ClockMsg(void)
{
clr_scr(); // 先清屏 //
CS2=1;
CS1=0; // 左屏
hz_disp16(1,0,xing); // 星
hz_disp16(1,16,qi); // 期
sz_disp16(3,0,shuzi[2]); // 2
sz_disp16(3,8,shuzi[0]); // 0
hz_disp16(3,32,nian); // 年
hz_disp16(5,32,shi2); // 时
CS2=0;
CS1=1; // 右屏
hz_disp16(3,0,yue); // 月
hz_disp16(3,32,ri); // 日
hz_disp16(5,0,fen); // 分
hz_disp16(5,32,miao); // 秒
}
/*-------------------------------------------*/
//时钟部分函数
/*-------------------------------------------*/
//写入字节子函数
void InputByte(unsigned char dat)
{
unsigned char i;
ACC=dat;
for(i=8;i>0;i--)
{
IO=ACC0;
CLK=1;
CLK=0; //下降沿写入数据
ACC=ACC>>1;
}
}
/*-------------------------------------------*/
/*-------------------------------------------*/
//读出字节子函数
unsigned char OutputByte(void)
{
unsigned char i;
for(i=8;i>0;i--)
{
ACC=ACC>>1;
ACC7=IO;
CLK=1;
CLK=0;
}
return (ACC);
}
/*-------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -