📄 lcd1602drv.h
字号:
#ifndef __LCD1602DRV_H__
#define __LCD1602DRV_H__
/********************************************************************************************************
** 公用函数头文件
**
** 版权所有 (c) 2007,罗建
** 保留所有权利
**
** V1.00
**
**
**-------------------------------------------------文件信息----------------------------------------------
**文 件 名: LCD1602Drv.H
**创 建 人: 罗 建
**最后修改日期: 2007年07月29日
**描 述: LCD1602Drv.c单元对应的头文件。
**
**-----------------------------------------------历史版本信息--------------------------------------------
** 创建人: 罗建
** 版 本: V1.00
** 日 期: 2007年07月29日
** 描 述: 原始版本
**
**-----------------------------------------------当前版本修订--------------------------------------------
** 修改人: 罗建
** 日 期: 2007年07月29日
** 描 述: 原始版本。
**
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "MiscUnit.h"
#include "STC12C5410AD.h"
/********************************************************************************************************
** OCM2X16A中,CGROM和CGRAM中字符代码与字符图形对应关系(参考ASCII码表)
**
/********************************************************************************************************
** OCM2X16A LCD屏的命令定义(2007.07.05,增加)
** 序号 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0
** 1 清显示 0 0 0 0 0 0 0 0 0 1
** 2 光标返回 0 0 0 0 0 0 0 0 1 *
** 3 置输入模式 0 0 0 0 0 0 0 1 I/D S
** 4 显示开/关控制 0 0 0 0 0 0 1 D C B
** 5 光标或字符移位 0 0 0 0 0 1 S/C R/L * *
** 6 置功能 0 0 0 0 1 DL N F * *
** 7 置字符发生存储器地址 0 0 0 1 字符发生存储器地址(AGG)
** 8 置数据存储器地址 0 0 1 显示数据存储器地址(ADD)
** 9 读忙标志或地址 0 1 BF 计数器地址(AC)
** 10 写数到CGRAM或DDRAM 1 0 要写的数
** 11 从CGRAM或DDRAM读数 1 1 读出的数据
**
** 命令说明
** 命令1:清显示,指令码01H,光标复位到地址00H位置。
** 命令2:光标复位,光标返回到地址00H。
** 命令3:光标和显示模式设置。I/D表示光标移动的方向,高电平右移,低电平左移;S表示屏幕上所有文字是否左移
** 或右移,高电平表示有效,低电平表示无效。
** 命令4:显示开关控制。D用来控制整体显示的开与关,高电平表示开显示,低电平表示关显示;C用来控制光标的开
** 与关,高电平表示有光标,低电平表示无光标;B用来控制光标是否闪烁,高电平闪烁,低电平不闪烁。
** 命令5:光标或显示移位。S/C为高电平时移动显示的文字,低电平时移动光标。
** 命令6:功能设置命令。DL为高电平时选择4位总线,低电平时选择8位总线;N为低电平时选择单行显示,高电平时选
** 择双行显示;F为低电平时显示5X7的点阵字符,高电平时显示5X10的点阵字符。
** 命令7:字符发生器RAM地址设置。
** 命令8:DDRAM地址设置。
** 命令9:读忙信号和光标地址。BF为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示
** 不忙。
** 命令10:写数据。
** 命令11:读数据。
**
/********************************************************************************************************
** OCM2X16A LCD屏的显示定义(ADD)(2007.07.05,增加)
** 字符位置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
** 第一行 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
** 第二行 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
**
** 说明:实际要写的字符地址还应再加上0x80才能送入相应显示RAM地址。
**
/********************************************************************************************************
** OCM2X16A(16*2)模拟口线接线方式
**
** ---------------------------------------------------
** |LCM-----51 | LCM-----51 | LCM------51 |
** |-----------------------------------------------|
** |D0------P2.0 | D4------P2.4 | RW-------P3.4 |
** |D1------P2.1 | D5------P2.5 | RS-------P3.5 |
** |D2------P2.2 | D6------P2.6 | E--------P3.7 |
** |D3------P2.3 | D7------P2.7 | V0接电位器2K |
** ---------------------------------------------------
********************************************************************************************************/
// ------------------------------------------------------------------------------------------------------
/* 定义常量 */
#define BUSY 0x80 // 用于检测LCM状态字中的Busy标识
// ------------------------------------------------------------------------------------------------------
/* LCD显示屏操作位定义(视不同的设计而定) */
sbit LCM_RW = P3^4; // 定义LCM控制引脚
sbit LCM_RS = P3^5;
sbit LCM_E = P3^7;
sfr LCM_DATA = 0xA0; // 定义LCM数据引脚(P2口)
// ------------------------------------------------------------------------------------------------------
/* 驱动程序导出函数 */
void WaitLCD(void);
void CheckLCDBusy(void);
void WriteCmdToLCD(INT8U nCmd, bit bCheckBusy);
void WriteDataToLCD(INT8U nData, bit bCheckBusy);
void ReadDataFromLCD(INT8U* nData, bit bCheckBusy);
void LCDInit(void);
void DisplayOneChar(INT8U nX, INT8U nY, INT8U nData);
void DisplayListChar(INT8U nX, INT8U nY, INT8U nLen, INT8U *nData);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -