📄 lcd1602.h
字号:
/*------------------------------------------------
FileName:lcd1602.h
与同目录的lcd1602.c一起构成lcd1602驱动
lcd1602.h为各驱动函数的声时,引脚定义,宏定义等
---------------------------------------------------*/
#ifndef LCD1602_HEADER
#define LCD1602_HEADER
#include<reg52.h>
/*-----------------------------------------------------
宏定义及引脚定义部分,修改可用于不同型号及不同程序
----------------------------------------*/
#define LCD_EN 1 //LCD使能工作,定义为1为上升沿有效
#define LCD_DISABLE 0 //LCD禁止工作,高阻态?
//用于底层函数控制LCD使能
#define COMMAND 0 //用于赋值给RS片选端,RS=0,选中指令寄存器
#define ADDR 1 //RS=1,选中数据寄存器
//用于lcd_write函数的第一个参数
#define READ 1 //用于赋值给RW读写控制端,RW=1,读寄存器
#define WRITE 0 // RW=0,写寄存器
//用于lcd_write函数里给RW赋值
#define DATA P1 //LCD数据口引脚定义
sbit BUSY=P1^7; //忙标记位引脚定义,为LCD数据口的最高位,数据口更改,忙标记位也要跟着修改
//暂时没用到,此驱动以足够的延时来确保LCD处于空闲状态
sbit RS = P2^0; //片选端引脚定义
sbit RW = P2^1; //读写端引脚定义
sbit LCDEN=P2^2; //使能端引脚定义
/*---------------------------------------------------------
以下为驱动API函数声明
-------------------------------------------------------*/
void delay_lcd(); //自带一个延时函数,具体延时时间可看定义
void lcd_write(unsigned int rs, unsigned int lcddata); //rs为COMMAND写指令,为ADDR写数据 ,lcddata为所写指令或数据
//如lcd_write(ADDR,'0');为在数据RAM中写入'0'字符
// lcd_write(COMMAND,0x02); 为在指令RAM中写入0x02指令,即光标回首行首列
void Print(unsigned char *str); //输出字符串,与GotoXY结合使用在指定处显示字符串
//如 Print("hello");
//以上语句等价于char str[]="hello";Print(str);
void GotoXY(unsigned char x, unsigned char y); //从指定位置开始显示.y为行数,x为列数
//y为0-15,0为第一列.x为0-1,0为第一行.
void lcd_init(); //初始化为数据8位,双列字,5*7字型,关光标,不闪烁,设定AC递增,屏幕不移动,并清屏
void lcd_clear(); //清屏
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -