📄 hex_1.c
字号:
write_com(0x91);//第二行(如果是地址是:90H,即LCD的第二行的第一个位置显示)
hzkdis("单片机学习网");
write_com(0x88);//第三行(如果是地址是:88H,即LCD的第二行的第一个位置显示)
hzkdis("LCD12864点阵液晶");
write_com(0x9A);//第四行(如果是地址是:98H,即LCD的第二行的第一个位置显示)
hzkdis("测试程序");
}
/*------------------显示图片------------------------2005.11.14.21:20修改---benladn911---*/
void Disp_Img(unsigned char code *img)
{ unsigned int j=0;
unsigned char x,y,i;
for(i=0;i<9;i+=8)
for(y=0;y<32;y++)/*原来 为 y<26 ,上下两个半屏不能正常对接显示,导致显示的图片中间有空隙*/
for(x=0;x<8;x++)
{ write_com(0x36);//功能设置---8BIT控制界面,扩充指令集
write_com(y+0x80); //行地址
write_com(x+0x80+i); //列地址
write_com(0x30);
write_data(img[j++]);
write_data(img[j++]);
}
}
/*------------------清整个GDRAM空间---------------------------- */
void clrgdram()
{ unsigned char x,y;
for(y=0;y<64;y++)
for(x=0;x<16;x++)
{ write_com(0x34);
write_com(y+0x80); //行地址
write_com(x+0x80); //列地址
write_com(0x30);
write_data(0x00);
write_data(0x00);
}
}
/*------------------整屏写入数据:全亮,或者竖条-----------------------------*/
void lcdfill(unsigned char disdata)
{ unsigned char x,y;
for(y=0;y<32;y++)
for(x=0;x<16;x++)
{ write_com(0x36);
write_com(y+0x80); //行地址
write_com(x+0x80); //列地址
write_com(0x30);
write_data(disdata);
write_data(disdata);
}
write_com(0x34);
write_com(0x36);
}
/*------------------显示横-----------------------------*/
void Disp_H_Line()
{ unsigned char x,y;
unsigned char k=0x00;
for(y=0;y<32;y++)
{ k=~k;
for(x=0;x<16;x++)
{ write_com(0x36);
write_com(y+0x80); //行地址
write_com(x+0x80); //列地址
write_com(0x30);
write_data(k);
write_data(k);
};
}
write_com(0x34);
write_com(0x36);
}
/*------------------显示边框-------------------------------
void Frame()
{unsigned char x,y;
lcdfill(0x00);
for(x=0;x<9;x+=8)
for(y=0;y<32;y++)
{ write_com(0x36);
write_com(y+0x80); //行地址
write_com(x+0x80); //列地址
write_com(0x30);
write_data(0x80);
write_data(0x00);
write_com(0x36);
write_com(y+0x80); //行地址
write_com(x+0x87); //列地址
write_com(0x30);
write_data(0x00);
write_data(0x01);
}
for(y=0;y<2;y++)
for(x=0;x<8;x++)
{write_com(0x36);
write_com(y*31+0x80); //行地址
write_com(x+0x80+8*y); //列地址
write_com(0x30);
write_data(0xff);
write_data(0xff);
}
write_com(0x34);
write_com(0x36);
}
*/
/*------------------清屏命令--------------------------*/
void clrscreen()
{
write_com(0x01);
delay(10);
}
/*------------------唐诗《静夜思》--------------------------*/
void gushi_display()
{ write_com(0x30);
clrscreen();
write_com(0x90);
hzkdis("Welcome to here!");
write_com(0x88);
hzkdis("TELL:13602412565");
delay(20000);
clrscreen();
write_com(0x80);
hzkdis("成功的人--");
write_com(0x92);
hzkdis("失败找原因。");
write_com(0x88);
hzkdis("失败的人--");
write_com(0x9a);
hzkdis("失败找理由。");
delay(20000);
}
main()
{
unsigned char i;
RES=0;
delay(100);
RES=1;
while(1)
{
RW=0;
lcdreset(); //初始化LCD屏
delay(2000);
ceshi(); //显示测试字样
delay(20000);
clrgdram();
clrscreen(); //清屏
Disp_Img(BMP); //调入一幅图画
delay(20000);
clrgdram();
clrscreen(); //清屏
Disp_Img(BMP1); //调入一幅图画
delay(20000);
clrgdram();
clrscreen(); //清屏
Disp_Img(BMP2); //调入一幅图画
delay(20000);
clrgdram();
clrscreen(); //清屏
Disp_Img(BMP3); //调入一幅图画
delay(20000);
clrgdram();
clrscreen(); //清屏
Disp_Img(BMP4); //调入一幅图画
delay(20000);
clrgdram();
clrscreen(); //清屏
Disp_Img(BMP5); //调入一幅图画
delay(20000);
// clrscreen(); //清屏
// lcdfill(0xff); //显示全开
// delay(20000);
clrscreen(); //清屏
Disp_H_Line(); //显示横条
delay(20000);
clrscreen(); //清屏
lcdfill(0xaa); //显示竖条
delay(20000);
// Frame(); //显示边框
// delay(20000);
// write_com(0x87); //调用自定义的CGRAM的代码
// write_data(0x00);
// write_data(0x00);
// delay(4000);
clrscreen(); //清屏
gushi_display(); //显示唐诗
delay(20000);
for(i=0;i<8;i++) //字符循环左移
{write_com(0x18);
delay(10000);}
clrgdram();
clrscreen(); //清屏
gushi_display();
delay(20000);
write_com(0x36);
write_com(0x04); //第一行反白显示
delay(20000);
write_com(0x04); //第一行恢复正常
delay(20000);
write_com(0x05); //第二行反白显示
delay(20000);
write_com(0x05); //第二行恢复正常
delay(20000);
write_com(0x03); //垂直滚动屏幕的内容
write_com(0x60);
delay(20000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -