📄 ocm240128.h
字号:
/**********************************************************************************************
** 文件名称: OCM240128.H
** 最后修改: 2009-10-26
** 版 本: 1.0
** 描 素: OCM240128液晶驱动程序
**---------------------------------------------------------------------------------------------
** 作 者: 李雪川
** 创作日期: 2009-10-6-26
** 文件描述: OCM240128液晶驱动程序,采用8位数据总线方式驱动
------------------------硬件端口连接定义-------------------------------------------------------
** OXM240128 MCU
** FS GND 字形选择0: 8*8 1: 6*8
** C_D P2.6 =1选择指令, =0选择数据
** _CE P2.7 片选=0有效
** _RW P3.6(_RW) 总线控制读写
** _RD P3.7(_RD)
** PDAT P0 8位总线数据端口
----------------------------------------------------------------------------------------------
** 全局变量:
** 主要函数:
******************OCM240128内部有CGRAM 2K(256字节)空间*************************************
使用内部字符发生器CGROM时低128字节为内部字符,CGROM的高128字节可自己定义
禁止内部字符发生器CGROM时CGRAM256字节都用于用户字符定义
通过void OCM_mode(uchar mod,uchar cg) cg参数控制
*******************************************************************************************
void OCM_ac(uchar target, uint dat) 地址设置
void OCM_area(uchar target, uint int) 显示区域设置
OCM_onewr(mod, dat) 单次写
void OCM_autrd(uint, uchar num, uchar *p) 连续自动读
void OCM_autwr(uadd, uchar num, uchar *p) 连续自动写)
void OCM_picture(uint addr, uchar w, uchar h, uchar *tab) 图形显示
void OCM_picture_clr(uint addr, uchar w, uchar h) 图形清除
void OCM_line_clr(uint addr,uchar dat) 清除一行
void OCM_clr(uchar dat) 清屏
void OCM_init(void) 初始化
**----------------------------------------------------------------------------------------------
** 硬件平台: 51系列单片机,总线方式驱动
** 软件平台: Keil3.0
*************************************************************************************************/
#ifndef _OCM_240128_H
#define _OCM_240128_H
#include"reg52.h"
#include"compile.h"
#include"absacc.h"
#include"string.h"
#define C_Addr XBYTE[0X7F00] //指令选通地址单元
#define D_Addr XBYTE[0X3F00] //数据选通地址单元
/* 地址设置,设置的图形和文字首地址 */
#define Text_Addr 0x0000
#define Figure_Addr 0x0800
#define EN_CGROM 1 //启用内部CGROM
#define DIS_CGROM 0 //禁止内部CGROM
/* TEST_natule mod参数 */
#define Po_Disp_S (1 << 3 | 0X00) //正向显示 闪烁
#define Ne_Disp_S (1 << 3 | 0X05) //负向显示 闪烁
#define Po_Disp_N (0 << 3 | 0X00) //正向显示 不闪烁
#define Ne_Disp_N (0 << 3 | 0X05) //负向显示 不闪烁
#define Ne_HIDE 0X03 //禁止显示(正向)
#define Po_HIDE 0X04 //禁止显示(负向)
/* 2009-11-20 lixuechuan 添加子函数功能宏定义 */
#define CURSOR 0 //AC光标设置
#define CGRAM 1 //AC CGRAM设置
#define DISP 2 //AC显示设置
#define ADD 0 //单次读写后地址自加
#define SUBB 1 //单次读写后地址自减
#define UNMOV 2 //单次读写后地址不变
/* 2009-11-20 lixuechuan 添加子函数功能宏定义结束 */
/*----------------------自动读写设置,自动读写时显示地址自动加一-------------------------*/
/* 启动进人自动读方式 */
#define OCM_autrd_start() \
{ \
while (!OCM_busy(0)); \
C_Addr = 0XB1; \
}
/* 退出自动读方式 */
#define OCM_autrd_stop() \
{ \
while (!OCM_busy(0)); \
C_Addr = 0XB2; \
}
/* 启动进人自动写方式 */
#define OCM_autwr_start() \
{ \
while (!OCM_busy(0)); \
C_Addr = 0XB0; \
}
/* 退出自动写方式 */
#define OCM_autwr_stop() \
{ \
while (!OCM_busy(0)); \
C_Addr = 0XB2; \
}
/*---------------------------------------------------------------------------------------------------*/
/******************************************************************************************
** 函数名称: void 0CM_ac(uchar target, uint dat)
** 功能描述: AC地址设置:光标地址,CGRAM地址,显示地址设置
双参数指令
** 输入参数: target: 0: 光标地址设置
1: CGRAM地址设置
2: 显示地址设置(显示存储器的地址为, 该地址指针计
数器为 16 位字长)
其他:默认为0:光标地址设置
tartet:0 1 2
dat低位: 水平位置 偏置地址值 低 8 位地址
dat高位: 垂直位置 0 高 8 位地址
** 输出参数: 无
** 全局变量: 无
** 调用模块: 0XM240128.C文件内部调用
******************************************************************************************/
void OCM_ac(uchar target, uint dat);
/******************************************************************************************
** 函数名称: void OCM_one_wr(uchar mod,uchar dat)
** 功能描述: 单次写液晶函数
** 输入参数: mod: mod =0: 地址加一
=1:地址减一
=2: 地址不变
其他: 地址不变
dat: 数据
** 输出参数: 无
** 全局变量: 无
** 调用模块: 无
******************************************************************************************/
void OCM_onewr(uchar mod, uchar dat);
/******************************************************************************************
** 函数名称: void OCM_autwr(uint addr, uchar num, uchar *p)
** 功能描述: 自动写液晶函数
** 输入参数: addr: 液晶开始写的地址
num: 自动写数据的个数
*p: 写数据区
** 输出参数: 无
** 全局变量: 无
** 调用模块: 无
******************************************************************************************/
void OCM_autwr(uint addr, uchar num, uchar *p);
/******************************************************************************************
** 函数名称: uchar OCM_one_rd(uchar mod,uchar dat)
** 功能描述: 单次读液晶函数
** 输入参数: mod: mod =0: 地址加一
=1:地址减一
=2: 地址不变
其他: 地址不变
** 输出参数: uchar 读到的数据
** 全局变量: 无
** 调用模块: 无
*******************************************************************************************/
uchar OCM_onerd(uchar mod);
/******************************************************************************************
** 函数名称: void OCM_picture(uint addr, uchar w, uchar h, uchar *tab)
** 功能描述: 图像显示
图形的高和宽必须设置正确
** 输入参数: addr: 显示起始地址
h: 图像高(点单位) 横向取模方式
w: 图像宽(点单位)
*tab: 地址必须是2维数组地址
** 输出参数: 无
** 全局变量: 无
** 调用模块: 无
******************************************************************************************/
void OCM_picture(uint addr, uchar w, uchar h, uchar *tab);
/******************************************************************************************
** 函数名称: void OCM_picture_lcr(uint addr, uchar w, uchar h)
** 功能描述: 清图像函数,清除图像
图形的高和宽必须设置正确
** 输入参数: addr: 显示起始地址
h: 图像高(点单位) 横向取模方式
w: 图像宽(点单位)
** 输出参数: 无
** 全局变量: 无
** 调用模块: 无
******************************************************************************************/
void OCM_picture_clr(uint addr, uchar w, uchar h);
/******************************************************************************************
** 函数名称: void OCM_line_clr(uint addr,uchar dat)
** 功能描述: 单行清除数据
** 输入参数: dat: 清屏数据
addr: 地址
** 输出参数: 无
** 全局变量: 无
** 调用模块: 无
******************************************************************************************/
void OCM_line_clr(uint addr,uchar dat);
/******************************************************************************************
** 函数名称: void OCM_clr(uchar dat)
** 功能描述: 清屏函数
** 输入参数: dat: 清屏数据
** 输出参数: 无
** 全局变量: 无
** 调用模块: 无
******************************************************************************************/
void OCM_clr(uchar dat);
/******************************************************************************************
** 函数名称: void OCM_init(void)
** 功能描述: OCM240128初始化函数
** 输入参数: 无
** 输出参数: 无
** 全局变量: 无
** 调用模块: 无
******************************************************************************************/
void OCM_init(void);
#endif
/*********************************END**********************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -