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

📄 lcd1602.h

📁 一个实用的单片机试验程序
💻 H
字号:
#ifndef  _LCD1602_H_
#define  _LCD1602_H_

#define  uint  unsigned int
#define  uchar unsigned char

sbit PinRS   = P2^0;
sbit PinRW   = P2^1;
sbit PinE    = P2^2;

#define  PinData  P0

/*************  短延时  *************/
void ShortDelay(uchar i);

/*************  长延时  *************/
void LongDelay(uint i);

/********** 寄存器选择信号 **********/
/******* 1 —— 数据;0 —— 指令 *******/
void  SetRS(bit i);

/********* 读写操作控制信号 *********/
/********* 1 —— 读;0 —— 写 *********/
void SetRW(bit i);

/************* 使能信号 *************/
/******* 1 —— 有效;0 —— 无效 *******/
void SetE(bit i);

/********  IO输入输出控制  **********/
void InitP0(bit i);
	
/********  函数功能:写指令  ********/
/*        Instruc为8位的指令        */
void WriteInstruc(uint Instruc);

/*********  函数功能:清屏  *********/
#define  ClearScreen()			WriteInstruc(0x01)

/*********  函数功能:归位  *********/
#define  CursorReturn()			WriteInstruc(0x02)

/*****  函数功能:输入方式设置  *****/
/*说明:设置光标移动方向以及是否移动*/
/*          temp取值如下:          */
/*      0x04 : 减量方式,不移位     */
/*      0x05 :减量方式,移位       */
/*      0x06 : 增量方式,不移位     */
/*      0x07 :增量方式,移位       */
#define  InputMode(temp)		WriteInstruc(temp)

/*****  函数功能:显示开关控制  *****/
/* 说明:设置显示开/关,            */
/*       设置光标开/关,            */
/*       设置光标所在位置闪烁与否   */
/*          temp取值如下:          */
/*   0x08 : 显示关,光标关,闪烁关  */
/*   0x0c :显示开,光标关,闪烁关  */
/*   0x0d : 显示开,光标关,闪烁开  */
/*   0x0e : 显示开,光标开,闪烁关  */
/*   0x0f : 显示开,光标开,闪烁开  */
#define  DispControl(temp)		WriteInstruc(temp)

/***   函数功能:光标、画面移位  ****/
/* 说明:光标以及画面移位           */
/*         temp取值如下:           */
/*      0x10 :光标左移             */
/*      0x14 :光标右移             */
/*      0x18 :显示整体左移         */
/*      0x1c : 显示整体右移         */
#define  DispShift(temp)		WriteInstruc(temp)

/*******  函数功能:功能设置  *******/
/* 说明:设置接口数据位数,         */
/*       设置显示行数,             */
/*       设置显示字符字体           */
/*         temp取值如下:           */
/*      0x20 : 4位,1行,5×7       */
/*      0x24 : 4位,1行,5×10      */
/*      0x28 : 4位,2行,5×7       */
/*      0x2c : 4位,2行,5×10      */
/*      0x30 : 8位,1行,5×7       */
/*      0x34 : 8位,1行,5×10      */
/*      0x38 : 8位,2行,5×7       */
/*      0x3c : 8位,2行,5×10      */
#define  FunctionSet(temp)	WriteInstruc(temp)	

/****  函数功能:CGRAM地址设置  *****/
/* 说明:设置CGRAM地址              */
/*       Address为CGRAM地址         */
#define  SetCGRAM_Add(Address)	WriteInstruc(0x40 | Address)

/****  函数功能:DDRAM地址设置  *****/
/* 说明:设置DDRAM地址              */
/*       Address为DDRAM地址         */
#define  SetDDRAM_Add(Address)	WriteInstruc(0x80 | Address)

/*****  函数功能:读BF以及AC值  *****/
/* 说明:读取BF以及AC值,           */
/*       其中最高位为BF,低7位为AC  */
uint Read_BF_AC(void);

/******  函数功能:写数据到RAM  *****/
void WriteData(uint data1);

/******  函数功能:从RAM读数据  *****/
uint ReadData(void);


/** 函数功能:检测LCD控制器状态函数 */
/*  返回一bit数:1 —— 忙;0 —— 闲   */
bit StatusCheck();

/**  函数功能:在指定位置显示字符  **/
/* 说明:x为行号(0 ~ 1)             */
/*       y为列号(0 ~ 15)            */
/*       data为显示字符的码字数据   */
void DispCharacter(uint x, uint y, uint data1);

/********  函数功能:LCD复位  *******/
void LCDReset();

#endif   //_LCD1602_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -