📄 12864.h
字号:
#define _12864_h
#define uint unsigned int
#define uchar unsigned char
sbit RST=P1^4;
sbit E=P0^3;
sbit RW=P0^4;
sbit RS=P0^5;
sbit CS1=P0^7;
sbit CS2=P0^6;
void delay1(uint k) //延时函数
{
while(k!=0) k--;
}
void reset(void) //复位
{
RST=0; //低电平复位
delay1(200);
RST=1;
delay1(200);
}
void lcd_busy(void) //忙碌检测
{
uchar key;
P3=0xff;
while(1)
{
RS=0;//命令
RW=1;//读
E=1; //使能
key=P3; //禁能
if((key&0x80)==0x00)break;
E=0;
}
E=0;
}
/*写指令*/
void WRcom(uchar c,uchar cs1,uchar cs2)
{
CS1=cs1; //左半屏幕
CS2=cs2; //右半屏幕
lcd_busy();
RS=0; //指令
RW=0; //写
P3=c;
delay1(10);
E=1;
delay1(10);
E=0;
}
/*写数据*/
void WRdata(uchar c,uchar cs1,uchar cs2)
{
CS1=cs1;
CS2=cs2;
lcd_busy();
RS=1; //数据
RW=0; //写
P3=c;
delay1(10);
E=1;
delay1(10);
E=0;
}
/*设置起始行*/
void set_startline(uchar i)
{
i=0xc0+i;
WRcom(i,1,1);
}
/*设置页值,设置列值*/
void set_adr(uchar x,uchar y)
{
x=x+0xb8; //8行为一页,共为8页 ,即为64行
y=y+0x40; //共有128列
WRcom(x,1,1);
WRcom(y,1,1);
}
/*开/关显示函数*/
void dison_off(uchar o)
{
o=o+0x3e;
WRcom(o,1,1);
}
/*清屏函数*/
void clear(void)
{
uchar i,loop;
for(i=0;i<8;i++)
{
set_adr(i,0); //设置页,从零列开始
for(loop=0;loop<64;loop++)
{
WRdata(0x00,1,1); //左右半屏都清零
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -