📄 drive_functions.h
字号:
#define uchar unsigned char
#define uint unsigned int
#define DI P00
#define RW P01
#define CS1 P02
#define CS2 P03
#define E P04
uchar chip_select=1;
uchar color=0x00;
bit black_flag=0; //黑屏显示标志位
sbit P00=P0^0;
sbit P01=P0^1;
sbit P02 =P0^2;
sbit P03=P0^3;
sbit P04=P0^4;
sbit P05=P0^5;
sbit P06=P0^6;
sbit P07=P0^7;
bit busy_bit=1;
bit menu=0;
uchar line=0;
uchar select=0;
#define LCD P1
#define LCOM P0
void yanshi(uchar x)
{ data uchar i,j,k;
for (i=0;i<x;i++)
for (j=0;j<109;j++)
for (k=0;k<10;k++);}
/*************************** check busy ************************/
bit CheckBusy(void)
{
uchar state=0;
if(chip_select==1)
{
LCOM=0X04;
}
else
{
LCOM=0X08;
}
LCD=0xFF;
LCOM|=0X12;
LCOM&=0XEF;
LCOM|=0X10; state=LCD;
LCOM&=0XEF;
busy_bit=(bit)(state>>7);
return(busy_bit);
}
/************************* set display page ****************/
void SetPage(uchar page)
{
if(chip_select==1)
{
LCOM=0X04;
}
else{
LCOM=0X08;
}
while(CheckBusy());
LCD=0xFF;
LCOM&=0XFC;
LCD=page+0xB8;
LCOM|=0X10;
LCOM&=0XEF;
}
/************************ set display column *****************/
void SetColumn(uchar column)
{
if(chip_select==1)
{
LCOM=0X04;
}
else{
LCOM=0X08;
}
while(CheckBusy());
LCD=0xFF;
LCOM&=0XFC;
LCD=column+0x40;
LCOM|=0X10;
LCOM&=0XEF;
}
/***************************** write data ************************/
void WriteData(uchar dsp_data)
{
LCD=0xFF;
if(chip_select==1)
{ LCOM=0X04;
}
else{
LCOM=0X08;
}
while(CheckBusy());
LCOM&=0XFC;
LCOM|=0X01;
LCD=dsp_data;
LCOM|=0X10;
LCOM&=0XEF;
}
/**************************** read data ***********************/
uchar ReadData(void)
{
uchar dsp_data;
LCD=0xFF;
if(chip_select==1)
{
LCOM=0X04;
}
else{
LCOM=0X08;
}
while(CheckBusy());
LCOM|=0X03;
LCOM|=0X10;
LCOM&=0XEF;
LCOM|=0X10;
dsp_data=LCD;
LCOM&=0XEF;
return(dsp_data);
}
/******************** clear LCD *******************************/
void ClearLCD(void)
{
uchar page,column,t=1;
if(black_flag==1)color=0xFF; //设置清屏颜色
else color=0x00;
for(page=0;page<8;page++)
{
SetPage(page);
SetColumn(0);
for(column=0;column<64;column++)
{
chip_select=1;
WriteData(color); //clear chip1
chip_select=2;
WriteData(color); //clear chip2
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -