/**********************************************************************************************
** 文件名称: DISP.H
** 最后修改: 2009-11-9
** 版 本: 1.0
** 描 素: 气体检测系统OCM240128液晶显示界面显示程序
**---------------------------------------------------------------------------------------------
** 作 者: 李雪川
** 创作日期: 2009-11-9
** 文件描述: 驱动OCM240128显示气体检测显示界面
------------------------硬件端口连接定义-------------------------------------------------------
** 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位总线数据端口
----------------------------------------------------------------------------------------------
** 全局变量:
** 主要函数:
void Disp_Arrow(uchar num) 显示箭头
void Disp_Alarm_num(uchar num, uchar bus) 显示报警数量
void Disp_Alarm(uchar mod,struct alarm *info) 显示详细报警信息
void Disp_Time(struct time * t) 显示时间
void Disp_picture(uchar target, uchar mod) 图标显示
void OCM_dispinit(void) 显示初始化
**----------------------------------------------------------------------------------------------
** 硬件平台: 51系列单片机,总线方式驱动
** 软件平台: Keil3.0
*************************************************************************************************/
#ifndef DISP_H_
#define DISP_H_
#include "compile.h"
/* 测试宏定义,使用时清零 */
#define DISP_TEST 0
/* 结构体定义 */
struct time
{
uchar mon;
uchar date;
uchar hour;
uchar min;
};
/* 报警信息结构体 */
struct alarm
{
uchar addr; //报警从机地址
uchar gas_type; //气体类型
uchar value; //报警信息值
uchar H_L; //高限报警或底限报警
struct time t; //报警时间
};
/* 故障信息结构体 */
struct fault
{
uchar addr;
uchar fault_type; //故障信息
struct time t;
};
/* 报警上下限结构体 */
struct limit
{
uchar addr;
uchar gas_type;
uchar limit_h; //高限报警
uchar limit_l; //底限报警
};
/* 屏蔽信息结构体 */
struct shield
{
uchar addr;
uchar shield_f; //是否屏蔽标志1:屏蔽 0:不屏蔽
uchar area; //对应区域
};
/* 系统注册结构体 */
struct login
{
uchar addr;
uchar gas_type;
};
/* 上掉电结构体 */
struct power
{
uchar num;
struct time t;
};
/* 定义显示信息地址首地址 */
#define MESSAGE_ADDR1 Text_Addr + 30 * 4 + 2 //信息显示栏第一行首地址
#define MESSAGE_ADDR2 Text_Addr + 30 * 6 + 2 //信息显示栏第二行首地址
#define MESSAGE_ADDR3 Text_Addr + 30 * 8 + 2 //信息显示栏第三行首地址
#define MESSAGE_ADDR4 Text_Addr + 30 * 10 + 2 //信息显示栏第四行首地址
#define DATA_ADDR Text_Addr + (30 * 12 + 16) //年月显示首地址
#define TIME_ADDR Text_Addr + 30 * 14 + 20 //时分显示首地址
#define ICO_ADDR (Figure_Addr + 30 * 6 + 6) //显示图标首地址
#define ICO_WIDE 5 //显示图标的宽度
/* 定义显示信息内容信息分类 */
#define Alarm 30
#define Power 31
/* 气体类型,修改下面宏定义和气体类型数组实现气体类型修改 */
#define Gas_num 5 //气体类型个数
#define Gas0 0
#define Gas1 1
#define Gas2 2
#define Gas3 3
#define Gas4 4
#define Gas0_ico "CO " /*请保证显示图标字符数一致 */
#define Gas1_ico "SO "
#define Gas2_ico "SO2"
#define Gas3_ico "CH4"
#define Gas4_ico "CH4"
uchar code gas_type_tab[Gas_num][3] = {Gas0_ico,Gas1_ico,Gas2_ico,Gas3_ico,Gas4_ico}; //气体显示内容
/* 报警类型,修改下面宏定义和报警类型数组实现报警类型修改 */
#define Alarm_num 4 //报警类型个数数
#define Alarm0 0
#define Alarm1 1
#define Alarm2 2
#define Alarm3 3
#define Alarm0_ico "F1"
#define Alarm1_ico "F2"
#define Alarm2_ico "F3"
#define Alarm3_ico "F4"
uchar code alarm_type_tab[Alarm_num][4] = {Alarm0_ico,Alarm1_ico,Alarm2_ico,Alarm3_ico}; //报警信息显示内容
/* 故障类型,修改下面宏定义和故障类型数组实现故障类型修改 */
#define Fault_num 2 //故障类型个数
#define Fault0 0
#define Fault1 1
#define Fault0_ico "AB "
#define Fault1_ico "CD "
uchar code fault_type_tab[Fault_num][4] = {Fault0_ico,Fault1_ico};
/* 定义信息数组 */
uchar code PLEASE_tab[] = {'P'-0X20,'l'-0X20,'e'-0X20,'a'-0X20,'s'-0X20,'e'-0X20, 0, 'I'-0X20,'n'-0X20,'p'-0X20,'u'-0X20,'t'-0X20,':'-0X20};
uchar code ADDR_tab[] = {'A'-0X20,'d'-0X20,'d'-0X20,'r'-0X20,'L'-0X20,'-'-0X20,'A'-0X20,'d'-0X20,'d'-0X20,'r'-0X20,'H'-0X20,0X00,0X00};
uchar code LIMIT_tab[] = {'L'-0X20,'i'-0X20,'m'-0X20,'i'-0X20,'t'-0X20,'L'-0X20,'-'-0X20,'L'-0X20,'i'-0X20,'m'-0X20,'i'-0X20,'t'-0X20,'H'-0X20};
uchar code SHIELD_tab[] = {'S'-0X20,'h'-0X20,'i'-0X20,'e'-0X20,'l'-0X20,'d'-0X20};
uchar code LINKAGE_tab[] = {'L'-0X20,'i'-0X20,'n'-0X20,'k'-0X20,'a'-0X20,'g'-0X20,'e'-0X20,0X00,0X00};
uchar code ALARM_BUS_tab[] = {'A'-0X20,'l'-0X20,'a'-0X20,'r'-0X20,'m'-0X20,' '-0X20,' '-0X20,' '-0X20,'B'-0X20,'U'-0X20,'S'-0X20};
/********************************************************************************************
** 函数名称: void Message_clr(void)
** 函数功能: 清除信息区
在切换界面时调用该函数,彻底清除上次的信息界面
** 调用模块: 无
*********************************************************************************************/
void Message_clr(void);
/*********************************************************************************************
** 函数名称: void Disp_Arrow(uchar num)
** 功能描述: 显示箭头
** 输入参数: num: =0 不显示箭头 =1 显示向上箭头 =2 显示向下箭头 =其他 两个同时显示
** 输出参数:
** 调用模块: 内部函数调用
*********************************************************************************************/
void Disp_Arrow(uchar num);
/*********************************************************************************************
** 函数名称: void Disp_Alarm_num(uchar num, uchar bus)
** 功能描述: 显示警告信息
** 输入参数: num警告个数
bus总线 =0 不显示总线 =1:显示总线1 =2:显示中线2 其他:显示总线1和2
** 输出参数:
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_Alarm_num(uchar num, uchar bus);
/*********************************************************************************************
** 函数名称: void Disp(struct alarm *info)
** 功能描述: 显示报警详细信息
** 输入参数: struct alarm (*info)定义指向结构体数组指针
** 输出参数:
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_Alarm( struct alarm *info);
/*********************************************************************************************
** 函数名称: void Disp__limit(struct limit *info)
** 功能描述: 显示上下限详细信息
** 输入参数: struct fault (*info)定义指向结构体数组指针
** 输出参数:
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_limit(struct limit *info);
/*********************************************************************************************
** 函数名称: void Disp__shield(struct shield *info)
** 功能描述: 显示屏蔽详细信息
** 输入参数: struct shiled (*info)定义指向结构体数组指针
一行显示3个信息
** 输出参数:
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_shield(struct shield *info);
/*********************************************************************************************
** 函数名称: void Disp__fault(struct fault *info)
** 功能描述: 显示故障详细信息
** 输入参数: struct fault (*info)定义指向结构体数组指针
** 输出参数:
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_fault(struct fault *info);
/*********************************************************************************************
** 函数名称: void Disp__login(struct login *info)
** 功能描述: 显示注册信息
** 输入参数: struct login (*info)定义指向结构体数组指针
一行显示3个信息
** 输出参数:
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_login(struct login *info);
/*********************************************************************************************
** 函数名称: void Disp_Power(struct power *info)
** 功能描述: 显示上掉电信息
** 输入参数: struct power *info:定义指向结构体的指针里面有4个结构体元素
** 输出参数: 无
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_Power(struct power *info);
/*******************************************************************************************
** 函数名称: void Disp_picture(uchar target, uchar mod)
** 功能描述: 显示相应图标
** 输入参数: target: 对象选择
target 0 1 2 3 4 5
对象 目录 时钟 注册 继电器 上下限修改 电源
mod: =0: 不显示, =其他 :显示
** 调用模块: 外部函数
********************************************************************************************/
void Disp_picture(uchar target, uchar mod);
/*********************************************************************************************
** 函数名称: void Disp_Year(uint year)
** 功能描述: 显示年
** 输入参数: year 年份
** 调用模块: 外部函数
*********************************************************************************************/
void Disp_Year(uint year);
/*********************************************************************************************
** 函数名称: void Disp_Time(struct time * t)
** 功能描述: 显示时间
** 输入参数: struct time * t
** 输出参数: 无
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_Time(struct time * t);
/*******************************************************************************************
** 函数名称: void Limit_change_ico(void)
** 功能描述: 上下限报警修改界面显示
** 输入参数: 无
** 调用模块: 外部函数
********************************************************************************************/
void Limit_change_ico(void);
/*******************************************************************************************
** 函数名称: void Linkage_change_ico(void)
** 功能描述: 上下限报警修改界面显示
** 输入参数: 无
** 调用模块: 外部函数
********************************************************************************************/
void Linkage_change_ico(void);
/******************************************************************************************
函数名称: void OCM_dispinit(void)
函数描述: 初始显示
********************************************************************************************/
void OCM_dispinit(void);
#endif