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

📄 disp.c

📁 OCM240128-7.rar
💻 C
📖 第 1 页 / 共 3 页
字号:
	/*	显示总线													*/
	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 + -