⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd1602.h

📁 一些lcd1602的资料,及我从网上找的源码经自已整理后提取出1602的驱动.
💻 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 + -