📄 lcddriver.c
字号:
#include<AT89X52.h>
#define uchar unsigned char
#define DISP_ON 0x3f
#define DISP_OFF 0x3e
#define COL_ADD 0x40
#define PAGE_ADD 0xb8
#define START_LINE 0xc0
#define LCD_BUS P0
sbit MCS=P2^0;
sbit SCS=P2^1;
sbit DI=P2^2;
sbit RW=P2^3;
sbit ENABLE=P2^4;
sbit LCD_RST=P2^5;
void Delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++)
;
}
void Write_Command(uchar cmd_code)
{
DI=0;
RW=0;
LCD_BUS=cmd_code;
Delay(0);
ENABLE=1;
Delay(0);
ENABLE=0;
}
void Write_Data(uchar Disp_Data)
{
DI=1;
RW=0;
LCD_BUS=Disp_Data;
Delay(0);
ENABLE=1;
Delay(0);
ENABLE=0;
}
void Clear_Scran()
{
uchar j,k;
MCS=1; SCS=1;
Write_Command(PAGE_ADD+0);
Write_Command(COL_ADD+0);
for(k=0;k<8;k++)
{
Write_Command(PAGE_ADD+k);
Write_Command(COL_ADD+0);
for(j=0;j<64;j++)
Write_Data(0x00);
}
}
void Initial_LCD(void)
{
LCD_RST=0;
Delay(100);
LCD_RST=1;
Delay(100);
MCS=1;
SCS=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 Disp_Line(uchar page)
{
uchar i;
MCS=1;
SCS=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+page);
Write_Command(COL_ADD+0);
for(i=0;i<64;i++)
Write_Data(0x80);
// }
}
void HZK_Disp8(uchar page,uchar col,uchar code *hzk)
{
uchar i;
Write_Command(PAGE_ADD+page);
Write_Command(COL_ADD+col);
for(i=0;i<8;i++)
{
Write_Data(hzk[i]);
}
}
void HZK_Disp16(uchar page,uchar col,uchar code *hzk)
{
uchar i,j;
for(j=0;j<2;j++)
{
Write_Command(PAGE_ADD+page+j);
Write_Command(COL_ADD+col);
for(i=0;i<16;i++)
{
Write_Data(hzk[16*j+i]);
}
}
}
void LCD_MCS()
{
MCS=1;
SCS=0;
}
void LCD_SCS()
{
MCS=0;
SCS=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -