📄 1602.h
字号:
#ifndef _1602L_
#define _1602L_
//工作方式设置
#define LCD_DISPLAY_DOUBLE_LINE 0x38 //两行显示
#define LCD_DISPLAY_SINGLE_LINE 0x30 //单行显示
//设置显示、光标及闪烁开、关
#define LCD_DISPLAY_ON 0x0c //0000 1100 display on
#define LCD_DISPLAY_OFF 0x08 //0000 1000 diplay off
#define LCD_CURSOR_ON 0x0a //0000 1010 cursor on
#define LCD_CURSOR_BLINK_ON 0x09 //0000 1001 cursor blink on
//光标、画面移动,不影响DDRAM
#define LCD_AC_AUTO_INCREMENT 0x06 //0000 0110 数据读、写操作后,AC自动增一
#define LCD_ACPLAY_AUTO_INCREMENT 0X07 //0000 0111 数据读、写操作后,画面平移
#define LCD_MOVE_ENABLE 0x05 //0000 0101 数据读、写操作,画面平移,AC减一
#define LCD_MOVE_DISENABLE 0x04 //0000 0100 数据读、写操作,画面不动
#define LCD_CLEAR_SCREEN 0X01 //清屏
#define LCD_GO_HOME 0x02 //AC=0,光标、画面回HOME位
/***********************LCD1602地址相关******************************/
#define LINE1_HEAD 0x80 // 第一行DDRAM起始地址
#define LINE2_HEAD 0xc0 // 第二行DDRAM起始地址
#define LINE1 0 //第一行
#define LINE2 1 //第二行
#define LINE_LENGTH 16 //每行的最大字符长度
/***********************LCD1602接线引脚定义**************************/
sbit LCD_RS=P3^4;
sbit LCD_RW=P3^5;
sbit LCD_EN=P3^3;
sbit LCD_BUSY=P1^7;
/**********************另外相关的定*********************************/
#define HIGH 1
#define LOW 0
#define TURE 1
#define FALSE 0
#define uchar unsigned char
#define uint unsigned int
/*************************以下是函数的申明部*************************/
void LCD_init(uchar x,uchar y,uchar z,uchar w); //LCD1602初始化
void LCD_send_command(uchar command); //
void LCD_send_data(uchar dat);
void LCD_write_char(uchar x,uchar y,uchar dat);
void LCD_disp_string(uchar x,uchar y,char *Data);
void delay_ms(uint n);
void LCD_check_busy(void);
/*************************以下是函数的定义*************************/
void LCD_init(uchar x,uchar y,uchar z,uchar w) //初始化函数定义
{
LCD_send_command(x);
LCD_send_command(y);
LCD_send_command(z);
LCD_send_command(w);
}
//
void LCD_check_busy(void) //检测LCD状态,看它是不是还在忙呢
{
do
{
LCD_EN=0;
LCD_RS=0;
LCD_RW=1;
LCDIO=0xff;
LCD_EN=1;
}
while(LCD_BUSY==1);
LCD_EN=0;
}
//
void LCD_send_command(uchar command) //写命令子程序
{
LCD_check_busy();
LCD_RS=LOW;
LCD_RW=LOW;
LCD_EN=HIGH;
LCDIO=command;
LCD_EN=LOW;
}
//
void LCD_send_data(uchar dat) //写数据子程序
{
LCD_check_busy();
LCD_RS=HIGH;
LCD_RW=LOW;
LCD_EN=HIGH;
LCDIO=dat;
LCD_EN=LOW;
}
//
void delay_ms(uint n) //毫秒延时
{
uint i,j;
for(i=n;i>0;i--)
for(j=0;j<1140;j++)
;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -