📄 disp.c
字号:
/* 显示总线 */
OCM_ac(2, Text_Addr + (30 * 14 + 10)); //显示地址14行第15个开始显示
switch (bus)
{
case 0: OCM_onewr(0, 0); //不显示总线1
OCM_onerd(0); //执行空读,实现地址加一
OCM_onewr(0, 0); //不显示总线2
break;
case 1: OCM_onewr(0, 1 + 16); //显示总线1
OCM_onerd(0); //执行空读,实现地址加一
OCM_onewr(0, 0); //不显示总线2
break;
case 2: OCM_onewr(0, 0); //不显示总线1
OCM_onerd(0); //执行空读,实现地址加一
OCM_onewr(0, 2 + 0X10); //显示总线2
break;
default:OCM_onewr(0, 1 + 0X10); //显示总线1
OCM_onerd(0); //执行空读,实现地址加一
OCM_onewr(0, 2 + 0X10); //显示总线2
}
}
/*********************************************************************************************
** 函数名称: void Disp(struct alarm *info)
** 功能描述: 显示报警详细信息
** 输入参数: struct alarm (*info)定义指向结构体数组指针
** 输出参数:
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_Alarm( struct alarm *info)
{
uchar i = 0;
for (i = 0; i < 4; i++)
{
OCM_ac(DISP, MESSAGE_ADDR1 + 60 * i);
if ((info+i) -> addr)
{
/* 显示地址 */
OCM_onewr(0, (info+i)->addr / 100 + 0X10);
OCM_onewr(0, ((info+i)->addr % 100) / 10 + 0X10);
OCM_onewr(0, (info+i)->addr % 10 + 0X10);
OCM_onewr(0, 0x00); //显示空格
/* 显示气体类型图标 */
OCM_onewr(0, gas_type_tab[(info+i)->gas_type][0] - 0x20);
OCM_onewr(0, gas_type_tab[(info+i)->gas_type][1] - 0x20);
OCM_onewr(0, gas_type_tab[(info+i)->gas_type][2] - 0x20);
OCM_onewr(0, 0x00); //显示空格
/* 显示气体浓度高低限 */
OCM_onewr(0, (info+i)->value / 10 + 0X10);
OCM_onewr(0, (info+i)->value % 10 + 0X10);
OCM_onewr(0, (info+i)->H_L - 0x20); //显示高低限报警
OCM_onewr(0, 0x00); //显示空格
/* 显示时间 */
OCM_onewr(0,( &((info+i)->t) )->mon / 10 + 0X10);
OCM_onewr(0,( &((info+i)->t) )->mon % 10 + 0X10);
OCM_onewr(0, '-' - 0X20);
OCM_onewr(0,( &((info+i)->t) )->date / 10 + 0X10);
OCM_onewr(0,( &((info+i)->t) )->date % 10 + 0X10);
OCM_onewr(0, 0x00); //显示空格
OCM_onewr(0,( &((info+i)->t) )->hour / 10 + 0X10);
OCM_onewr(0,( &((info+i)->t) )->hour % 10 + 0X10);
OCM_onewr(0, ':' - 0X20); //冒号显示
OCM_onewr(0,( &((info+i)->t) )->min / 10 + 0X10);
OCM_onewr(0,( &((info+i)->t) )->min % 10 + 0X10);
}
else //addr = 0表示没有需要显示的信息
{
OCM_line_clr(MESSAGE_ADDR1 + 60 * i,0x00); //显示空格
}
}
}
/*********************************************************************************************
** 函数名称: void Disp__limit(struct limit *info)
** 功能描述: 显示上下限详细信息
** 输入参数: struct fault (*info)定义指向结构体数组指针
** 输出参数:
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_limit(struct limit *info)
{
uchar i;
for (i = 0; i < 4; i++)
{
OCM_ac(DISP, MESSAGE_ADDR1 + 60 * i);
if ((info+i) -> addr)
{
/* 显示地址 */
OCM_onewr(0, (info+i)->addr / 100 + 0X10);
OCM_onewr(0, ((info+i)->addr % 100) / 10 + 0X10);
OCM_onewr(0, (info+i)->addr % 10 + 0X10);
OCM_onewr(0, 0x00); //显示空格
/* 显示气体类型图标 */
OCM_onewr(0, gas_type_tab[(info+i)->gas_type][0] - 0x20);
OCM_onewr(0, gas_type_tab[(info+i)->gas_type][1] - 0x20);
OCM_onewr(0, gas_type_tab[(info+i)->gas_type][2] - 0x20);
OCM_onewr(0, 0x00); //显示空格
/* 显示气体高限报警值 */
OCM_onewr(0, (info+i)->limit_h / 10 + 0X10); //显示高低限报警
OCM_onewr(0, (info+i)->limit_h % 10 + 0X10);
OCM_onewr(0, 'H' - 0x20);
OCM_onewr(0, 0x00); //显示空格
/* 显示气体低限报警值 */
OCM_onewr(0, (info+i)->limit_l / 10 + 0X10); //显示高低限报警
OCM_onewr(0, (info+i)->limit_l % 10 + 0X10);
OCM_onewr(0, 'L' - 0x20);
OCM_onewr(0, 0x00);
}
else //addr = 0表示没有需要显示的信息
{
OCM_line_clr(MESSAGE_ADDR1 + 60 * i,0x00); //显示空格
}
}
}
/*********************************************************************************************
** 函数名称: void Disp__shield(struct shield *info)
** 功能描述: 显示屏蔽详细信息
** 输入参数: struct shiled (*info)定义指向结构体数组指针
一行显示3个信息
** 输出参数:
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_shield(struct shield *info)
{
uchar i, k;
for (i = 0; i < 4; i++)
{
OCM_ac(DISP, MESSAGE_ADDR1 + 60 * i);
for (k = 0; k < 3; k++)
{
if ((info+i) -> addr)
{
/* 显示地址 */
OCM_onewr(0, (info+3*i + k)->addr / 100 + 0X10);
OCM_onewr(0, ((info+3*i + k)->addr % 100) / 10 + 0X10);
OCM_onewr(0, (info+3*i + k)->addr % 10 + 0X10);
OCM_onewr(0, 0x00); //显示空格
/* 显示是否屏蔽 */
if ((info+3*i + k)->shield_f) OCM_onewr(0, 'Y' - 0x20);
else OCM_onewr(0, 'N' - 0x20);
OCM_onewr(0, 0x00);
/* 显示分区 */
OCM_onewr(0, (info+3*i + k)->area + 0X10);
OCM_onewr(0, 0x00);
/* 显示空格 */
OCM_onewr(0, 0x00);
OCM_onewr(0, 0x00);
}
else //addr = 0表示没有需要显示的信息
{
//不显示
//OCM_line_clr(MESSAGE_ADDR1 + 60 * i,0x00); //显示空格
}
}
}
}
/*********************************************************************************************
** 函数名称: void Disp__fault(struct fault *info)
** 功能描述: 显示故障详细信息
** 输入参数: struct fault (*info)定义指向结构体数组指针
** 输出参数:
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_fault(struct fault *info)
{
uchar i,j;
for (i = 0; i < 4; i++)
{
OCM_ac(DISP, MESSAGE_ADDR1 + 60 * i);
if ((info+i)->addr)
{
/* 显示地址 */
OCM_onewr(0, (info+i)->addr / 100 + 0X10);
OCM_onewr(0, ((info+i)->addr % 100) / 10 + 0X10);
OCM_onewr(0, (info+i)->addr % 10 + 0X10);
OCM_onewr(0, 0x00); //显示空格
/* 显示故障信息 */
OCM_onewr(0, fault_type_tab[(info+i)->fault_type][0] - 0x20);
OCM_onewr(0, fault_type_tab[(info+i)->fault_type][1] - 0x20);
OCM_onewr(0, fault_type_tab[(info+i)->fault_type][2] - 0x20);
OCM_onewr(0, 0x00); //显示空格
for (j = 0; j < 8; j++) OCM_onewr(0, 0x00); //空格
/* 显示时间 */
OCM_onewr(0,( &((info+i)->t) )->mon / 10 + 0X10);
OCM_onewr(0,( &((info+i)->t) )->mon % 10 + 0X10);
OCM_onewr(0, '-' - 0X20);
OCM_onewr(0,( &((info+i)->t) )->date / 10 + 0X10);
OCM_onewr(0,( &((info+i)->t) )->date % 10 + 0X10);
OCM_onewr(0, 0x00); //显示空格
OCM_onewr(0,( &((info+i)->t) )->hour / 10 + 0X10);
OCM_onewr(0,( &((info+i)->t) )->hour % 10 + 0X10);
OCM_onewr(0, ':' - 0X20); //冒号显示
OCM_onewr(0,( &((info+i)->t) )->min / 10 + 0X10);
OCM_onewr(0,( &((info+i)->t) )->min % 10 + 0X10);
}
else
{
OCM_line_clr(MESSAGE_ADDR1 + 60 * i,0x00); //显示空格
}
}
}
/*********************************************************************************************
** 函数名称: void Disp__login(struct login *info)
** 功能描述: 显示注册信息
** 输入参数: struct login (*info)定义指向结构体数组指针
一行显示3个信息
** 输出参数:
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_login(struct login *info)
{
uchar i, k;
for (i = 0; i < 4; i++)
{
OCM_ac(DISP, MESSAGE_ADDR1 + 60 * i);
for (k = 0; k < 3; k++)
{
if ((info+i) -> addr)
{
/* 显示地址 */
OCM_onewr(0, (info+3*i + k)->addr / 100 + 0X10);
OCM_onewr(0, ((info+3*i + k)->addr % 100) / 10 + 0X10);
OCM_onewr(0, (info+3*i + k)->addr % 10 + 0X10);
OCM_onewr(0, 0x00); //显示空格
/* 显示气体类型图标 */
OCM_onewr(0, gas_type_tab[(info+3*i + k)->gas_type][0] - 0x20);
OCM_onewr(0, gas_type_tab[(info+3*i + k)->gas_type][1] - 0x20);
OCM_onewr(0, gas_type_tab[(info+3*i + k)->gas_type][2] - 0x20);
OCM_onewr(0, 0x00);
/* 显示空格 */
OCM_onewr(0, 0x00);
OCM_onewr(0, 0x00);
}
else //addr = 0表示没有需要显示的信息
{
//OCM_line_clr(MESSAGE_ADDR1 + 60 * i,0x00); //显示空格
}
}
}
}
/*********************************************************************************************
** 函数名称: void Disp_Power(struct power *info)
** 功能描述: 显示上掉电信息
** 输入参数: struct power *info:定义指向结构体的指针里面有4个结构体元素
** 输出参数: 无
** 调用模块: 外部函数调用
*********************************************************************************************/
void Disp_Power(struct power *info)
{
uchar i,j;
for (i = 0; i < 4; i++)
{
OCM_ac(DISP, MESSAGE_ADDR1 + 60 * i);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -