📄 lcd12864.h
字号:
#ifndef _LCD12864_H_
#define _LCD12864_H_
#endif //_LCD12864_H_
#define LcdEN *(unsigned int *)PIO_LCD_EN_BASE
#define LcdRS *(unsigned int *)PIO_LCD_RS_BASE
#define LcdRW *(unsigned int *)PIO_LCD_RW_BASE
#define LcdFSB *(unsigned int *)PIO_LCD_FSB_BASE
#define DatBus *(unsigned int *)PIO_LCD_DATA_BASE
#define LCD_DATA_DIR *(unsigned int *)(PIO_LCD_DATA_BASE+4)
#define LCD_DATA_OUT 0xFF
#define LCD_DATA_IN 0
unsigned char yb=0x80;
unsigned char hanzi00[]={"百善孝为先,"};
unsigned char hanzi01[]={"家和万事兴。"};
unsigned char hanzi02[]={"精心准备提效果,"};
unsigned char hanzi03[]={"老槐树茶馆。"};
unsigned char hanzi10[]={"回眸一笑百媚生。"};
unsigned char hanzi11[]={"忽闻岸上踏歌声。"};
unsigned char hanzi12[]={"桃花潭水深千尺,"};
unsigned char hanzi13[]={"不及汪伦送我情。"};
unsigned char hanzi20[]={"love family "};
unsigned char hanzi21[]={"display program,"};
unsigned char hanzi22[]={"welcome to commu"};
unsigned char hanzi23[]={"come on with me "};
//延时子程序
void delay(unsigned int t)
{ unsigned int i,j;
for(i=0;i<t;i++)
{ for(j=0;j<100;j++);
{;}
}
}
//写命令到LCD
void write_com(unsigned char cmdcode)
{ LcdFSB=1;
LcdRS=0;
LcdRW=0;
LcdEN=1;
DatBus=cmdcode;
LcdEN=0;
delay(5);
}
//写数据到LCD
void write_data(unsigned char Dispdata)
{ LcdFSB=1;
LcdRS=1;
LcdRW=0;
LcdEN=1;
DatBus=Dispdata;
LcdEN=0;
delay(5);
}
//初始化LCD屏
void lcdinit()
{ delay(2000);
write_com(0x30); //选择基本指令集
delay(10);
write_com(0x30); //选择8bit数据流
delay(5);
write_com(0x0c); //开显示(无游标,不反白)
delay(10);
write_com(0x01); //清显示并设地址指针为00H
delay(500);
write_com(0x06); //指定在资料的读取及写入时设定游标的
//移动方向及指定显示的位移
delay(0);
}
void outChinese(unsigned char place,unsigned char unit,unsigned char charcode[] )
{
unsigned char i;
write_com(place);
for(i=0;i<unit*2;i++)//一个汉字为两个字符
{write_data(charcode[i]);}
}
void outchar(unsigned char place,unsigned char unit,unsigned char charcode[] )
{
unsigned char i;
write_com(place);
for(i=0;i<unit;i++)
{write_data(charcode[i]);}
}
void ydgb(void)
{
write_com(yb);//显示光标位置
//if(P1_0==0)
//{
delay(10);
//if(P1_0==0)
//{
yb=yb+0x01;
if(yb==0x88){yb=0x90;}
if(yb==0x98){yb=0x88;}
if(yb==0x90){yb=0x98;}
if(yb==0xa0){yb=0x80;}
//}
//while(P1_0==0);
//}
}
void display1(void)
{
ydgb();
outChinese(0x80,8,hanzi00);//第一行:80-87H
outChinese(0x90,8,hanzi01);//第二行:90-97H
outChinese(0x88,8,hanzi02);//第三行:88-8FH
outChinese(0x98,8,hanzi03);//第四行:98-9FH
//outchar(0x9f,2,name4);
}
void display2(void)
{
ydgb();
outChinese(0x80,8,hanzi10);
outChinese(0x90,8,hanzi11);
outChinese(0x88,8,hanzi12);
outChinese(0x98,8,hanzi13);
}
void display3(void)
{
ydgb();
outchar(0x80,16,hanzi20);
outchar(0x90,16,hanzi21);
outchar(0x88,16,hanzi22);
outchar(0x98,16,hanzi23);
}
//显示字符串
/*void hzkdis(unsigned char *s)
{ while(*s>0)
{ write_data(*s);
s++;
delay(50);
}
}
//显示文本
void ceshi()
{ write_com(0x01);
delay(5);
write_com(0x82);
hzkdis("TOPWAY");
write_com(0x88);
hzkdis("LM3033 测试程序");
}*/
//显示图片
/*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++)
for(x=0;x<8;x++)
{ write_com(0x36);
write_com(y+0x80);
write_com(x+0x80+i);
write_com(0x30);
write_data(img[j++]);
write_data(img[j++]);
}
}
unsigned char code BMP[]={0x00,0x00,......} */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -