📄 lcd.c
字号:
#include "Fs7805.h"
#include "Fs7805Regs.h"
#include "lcd.h"
unsigned char gx,gy;
void delay100us(int us)
{
unsigned char i,j;
for(i=0;i<us;i++)
for(j=0;j<100;j++);
}
void delay1ms(int ms)
{
int i,j;
for(i=0;i<ms;i++)
for (j=0;j<1000;j++);
}
void delay10ms(int a)
{
int i,j,k;
for (i=0;i<a;i++)
for(j=0;j<10;j++)
for (k=0;k<1000;k++);
}
/*------------------初始化-----------------*/
void clear_GLCD()
{
int i,j;
GLCD_CS1=1;//选择全屏
GLCD_CS2=1;
wr_lcd(0,GLCD_ON);//GLCD_ON=63=00111111(开显示器)
wr_lcd(0,GLCD_START_LINE_0);//GLCD_START_LINE_0=192=11000000(设定绘图型LCD左半边的起始行)
for(i=0;i<8;i++)
{
wr_lcd(0,SET_PAGE+i);//选择页数0-7
wr_lcd(0,SET_Y_ADDRESS_0);//重新选择行数0-63
for(j=0;j<64;j++)
wr_lcd(1,0);//逐行清0
}
}
void show_pattern(unsigned char page,unsigned char y,
unsigned char *pattern,unsigned char len)//显示函数
{
int i;
wr_lcd(0,SET_PAGE+page);//选择第几页写内容(page=0-7)
wr_lcd(0,SET_Y_ADDRESS_0+y);//选择第几行
for(i=0;i<len;i++)
{
wr_lcd(1,*pattern);//显示数组内的内容
pattern++;//从第一个开始逐个显示
}
}
void display_GLCD_data(unsigned char *p)//显示数据
{
if (gx<64) {
GLCD_CS1=1;//选择左半
GLCD_CS2=0;
show_pattern(gy,gx,p,8);
show_pattern(gy,gx+8,p+8,8);
show_pattern(gy+1,gx,p+16,8);
show_pattern(gy+1,gx+8,p+24,8);
} else
{
GLCD_CS1=0; //选择右半
GLCD_CS2=1;
show_pattern(gy,gx-64,p,8);
show_pattern(gy,gx-56,p+8,8);
show_pattern(gy+1,gx-64,p+16,8);
show_pattern(gy+1,gx-56,p+24,8);
}
gx=gx+16;
}
void display_number(unsigned char *p)//显示数字
{
if (gx<64) {
GLCD_CS1=1;//选择左半
GLCD_CS2=0;
show_pattern(gy,gx,p,8);
show_pattern(gy+1,gx,p+8,8);
} else
{
GLCD_CS1=0; //选择右半
GLCD_CS2=1;
show_pattern(gy,gx-64,p,8);
show_pattern(gy+1,gx-64,p+8,8);
}
gx=gx+8;
}
void display_GLCD_string(unsigned char *p,int len)//显示字符串
{
int i;
for(i=0;i<len;i++)
{display_GLCD_data(p+32*i);}
}
void gotoxy(unsigned x,unsigned y)
{
gy=y;
gx=x;
}
/*--------------显示图片----------------*/
void display_photo (unsigned char code *img)
{
unsigned char i,j;
for(j=0;j<8;j++)
{
GLCD_CS1=1;GLCD_CS2=0;
wr_lcd (0,GLCD_ON);
wr_lcd (0,disp_x+j);
wr_lcd (0,disp_z);
wr_lcd (0,disp_y);
for(i=0;i<64;i++)
wr_lcd (1,img[j*128+i]);
GLCD_CS1=0;GLCD_CS2=1;
wr_lcd (0,GLCD_ON);
wr_lcd (0,disp_x+j);
wr_lcd (0,disp_z);
wr_lcd (0,disp_y);
for(i=64;i<128;i++)
wr_lcd (1,img[j*128+i]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -