📄 lcd12864.h
字号:
#include<reg51.h>
#define _LCD12864_h
#define uchar unsigned char
#define uint unsigned int
void delay(uint k);//延时
void wcode(uchar com,uchar cs1,uchar cs2);//写指令
void wdata(uchar da,uchar cs1,uchar cs2);//写数据
void set_startline(uchar i);//起始行
void set_adr(uchar x,uchar y);//页值设置,起始列值函数
void clear(void);///clear清屏
void initi_LCD(void);//初始化LCD
//////////单片机与液晶显示的引脚连接/////////
//sbit RST=P2^2;
sbit CS2=P2^0;
sbit CS1=P2^1;
sbit RS=P2^2;//或DI
sbit RW=P2^3;
sbit E=P2^4;
//P0口为数据口
//////////////////////////////
void initi_LCD(void)//初始化LCD
{ wcode(0x3f,1,1);//显示开//0x3e关
set_startline(0);//起始行第0行
clear();//清屏
}
///////////////////////
void delay (uint k)//延时
{
while(k--);
}
////////复位///////////
/*void reset()
{
RST=0;
delay(200);
RST=1;
delay(200);
}
*/
////////write code写指令///////
void wcode(uchar com,uchar cs1,uchar cs2)//写指令
{
CS1=cs1;
CS2=cs2;
RW=0;
RS=0;
P0=com;
E=0;
delay(10);
E=1;
delay(10);
E=0;
}
/////////write data写数据///////////////
void wdata(uchar da,uchar cs1,uchar cs2)//写数据
{
CS1=cs1;
CS2=cs2;
RW=0;
RS=1;
P0=da;
E=0;
delay(10);
E=1;
delay(10);
E=0;
}
////////////set start设置起始行/////////////
void set_startline(uchar i)//起始行。11A5A4A3A2A1A0 共有64行
{ //液晶显示器的最底层为第0行
i=0xc0+i;//此算法为把最顶层做为第一层
wcode(i,1,1);
}
///////////////////////////////
void set_adr(uchar x,uchar y)//页值设置,起始列值函数
{
x=x+0xb8;//行//页地址设置。10111A2A1A0 DDRAM的8行为一页,A0~A2为页码,LCD为64行8页
y=y+0x40;//列地址设置。01A5A4A3A2A1A0 两半屏分别有64列,A0~A5送入列地址计数器,
//作为列(Y)地址指针。每读写一次其自动加一,指向下一列DDRAM单元
wcode(x,1,1);
wcode(y,1,1);
}
///////////clear清屏///////////////
void clear(void)///clear清屏
{
uchar i,loop;
for(i=0;i<8;i++)///循环页写0/////////
{
set_adr(i,0);//页码//行
for(loop=0;loop<64;loop++)wdata(0x00,1,1);//列//左右屏幕同时写//
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -