📄 lcd1602.h
字号:
//#include "AT89X51.H"
#define Ddata P0
sbit RS=P2^5;
sbit RW=P2^6;
sbit LCDE=P2^7;
//1PIN--GND 2PIN--VCC 3PIN--VO 4PIN--RS 5PIN--RW 6PIN--E 7-14PIN--DB0-DB7 15PIN--A 16PIN--K
unsigned char hour=12,min=0,sec=0;
unsigned int count=0;
unsigned char line1[16]={"www.gliet.edu.cn"};
unsigned char line2[16]={"Gui Lin 12:00:00"};
unsigned char tab[]={'0','1','2','3','4','5','6','7','8','9'};
void delay5ms()
{unsigned int i;
for (i=0;i<1000;i++);
}
void delay50us()
{register int i;
for (i=0;i<20;i++);
}
/*
void delay()
{unsigned char m,n;
for(m=255;m>0;m--)
for(n=255;n>0;n--);}
*/
wr_com(unsigned char comm)//********写控制字符程序 E=1 RS=0 RW=0**********//
{
LCDE=0;
RS=0; //********RS寄存器选择输入端,当RS=0;当进行写模块操作,指向指令寄存器。
RW=0; //********当RS=1,无论是读操作还是写操作,都是指向数据寄存器。
LCDE=1;
Ddata=comm;
RS=0;
RW=0;
LCDE=0;
}
wr_data(unsigned char dat)//*****当前位置写字符子程序:E=1 RS=1 RW=0
{
LCDE=0;
RS=0; //********RS寄存器选择输入端,当RS=0;当进行写模块操作,指向指令寄存器。
RW=0; //********当RS=1,无论是读操作还是写操作,都是指向数据寄存器。
RS=1;
RW=0;
LCDE=1;
Ddata=dat;
LCDE=0;
RS=0;
RW=0;
}
unsigned char busycheck()//*****忙状态检查*******//
{
unsigned char i;
LCDE=0;
RS=0;
RW=0;
RS=0;
RW=1;
LCDE=1;
i=Ddata;
LCDE=0;
return(i);
}
void init()//**********初始化程序,必须按照产品的资料介绍的过程进行********//
{
wr_com(0x38); //*****显示模式设置必须三次,不用检测忙信号
delay5ms();
wr_com(0x38);
delay5ms();
wr_com(0x38);
delay5ms();
wr_com(0x01); ///***清屏****
delay5ms();
busycheck();
delay5ms();
wr_com(0x06); ///****光标移动设置***
delay5ms();
busycheck();
delay50us();
wr_com(0x38); ////***显示模式设置****
delay50us();
busycheck();
delay50us();
wr_com(0x0c); /////***显示开***
delay50us();
busycheck();
delay50us();
wr_com(0x40); //set cgram address
delay50us();
delay50us(); //***这些延时可用可不用***//
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -