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

📄 fault.c

📁 本程序是一个人机接口程序
💻 C
字号:
#include "common.h"

void Earse_All_Fault_List(void)
{
/*
	unsigned char code temp[16][8]={
//  标志  年   月   日   时  分  秒    故障
	0xff,0x08,0x02,0x23,0x10,0x32,0x00,0x01,
	0xff,0x08,0x02,0x24,0x21,0x11,0x01,0x00,
	0xff,0x08,0x02,0x25,0x01,0x00,0x02,0x05,
	0xff,0x08,0x02,0x27,0x14,0x44,0x03,0x00,
	0x00,0x08,0x02,0x29,0x09,0x35,0x04,0x0d,
	0x00,0x08,0x03,0x30,0x07,0x28,0x05,0x00,
	0x00,0x08,0x03,0x30,0x04,0x14,0x06,0x06,
	0x00,0x08,0x04,0x30,0x00,0x04,0x07,0x00,
	0x00,0x08,0x06,0x01,0x21,0x40,0x08,0x07,
	0x00,0x08,0x01,0x13,0x11,0x49,0x09,0x00,
	0x00,0x08,0x01,0x23,0x00,0x54,0x10,0x05,
	0x00,0x08,0x01,0x25,0x15,0x52,0x11,0x00,
	0x00,0x08,0x01,0x28,0x20,0x30,0x12,0x0b,
	0x00,0x08,0x01,0x30,0x01,0x33,0x13,0x00,
	0x00,0x08,0x02,0x02,0x13,0x03,0x14,0x0c,
	0x00,0x08,0x02,0x03,0x22,0x05,0x15,0x00,
	};
	unsigned char i,j;
*/
	unsigned char i,j;
	sector_erase(ADDRESS_fault_list);
	for(i=0;i<16;i++) for(j=0;j<8;j++) byte_program(ADDRESS_fault_list+i*8+j,0xff);		



}

void Show_Fault_List_Line(unsigned char line,unsigned char sn)
{

	unsigned char code message[19][16]={
		{"恢复           "},
		{"快熔报警       "},
		{"水温高报警     "},
		{"正排温度高     "},
		{"负排温度高     "},
		{"水温高报警     "},
		{"正排温度高     "},
		{"负排温度高     "},
		{"变压器温度高   "},
		{"缺相故障       "},
		{"水压低报警     "},
		{"过流报警       "},
		{"过压报警       "},
		{"网电压高报警   "},
		{"网电压低报警   "},
		{"水温高报警,封脉"},
		{"正排温度高,封脉"},
		{"负排温度高,封脉"},		
		{"变压器温高,封脉"},
	};

    ShowChar(line,0,fault_list[sn][2]/16+0x30);
	ShowChar(line,1,fault_list[sn][2]%16+0x30);
	ShowChar(line,2,'/');
	ShowChar(line,3,fault_list[sn][3]/16+0x30);
	ShowChar(line,4,fault_list[sn][3]%16+0x30);
	ShowChar(line,5,'-');
	ShowChar(line,6,fault_list[sn][4]/16+0x30);
	ShowChar(line,7,fault_list[sn][4]%16+0x30);
	ShowChar(line,8,':');
	ShowChar(line,9,fault_list[sn][5]/16+0x30);
	ShowChar(line,10,fault_list[sn][5]%16+0x30);
	ShowChar(line,11,':');
	ShowChar(line,12,fault_list[sn][6]/16+0x30);
	ShowChar(line,13,fault_list[sn][6]%16+0x30);
	ShowChar(line,14,' ');
	ShowLine(line,15,message[fault_list[sn][7]]);
}

void Show_Fault_List(void)
{
	unsigned char i,j,k,line;
	unsigned char sn;
	unsigned char Rev_Line_On_Page=1;

	ShowLine(0,9,"**故障列表**");
	k=0;
	for(i=0;i<16;i++)
	{
		if( byte_read(ADDRESS_fault_list+i*8)==0xff) continue;
		for(j=0;j<8;j++) 
		{
			fault_list[k][j]=byte_read(ADDRESS_fault_list+i*8+j);
		}
		k++;
	}
	for(i=k;i<16;i++) fault_list[i][0]=0xff;

  	for(sn=0;sn<16;sn++) if(fault_list[sn][0]==0xff) break;
	if(sn==0)   //空列表
	{
		CH452_Write(CH452_RESET);
		EX0=1;
		key=100;
		CH452_Write(CH452_SYSON2W);	           //配置CH452为两线制方式,SDA用做按键中断输出
		while(key!=16) feeddog();
		return;
	}
	for(i=0;i<6,i<sn;i++) 
	{
		Show_Fault_List_Line(2+i,i);	
	}
	
	ReverseShowLine(0,30,2);	//反白显示第三行
	line=1;
	CH452_Write(CH452_RESET);
	EX0=1;
	key=100;
	CH452_Write(CH452_SYSON2W);	           //配置CH452为两线制方式,SDA用做按键中断输出
	while(1)
	{
		feeddog();
		if(key==100) continue;
		CH452_Write(CH452_SYSOFF);		   //关键盘中断
		if(key==15)	 //下
		{
			if(line==sn) 
			{
				key=100;
				CH452_Write(CH452_SYSON2W);	           //配置CH452为两线制方式,SDA用做按键中断输出
				continue; 
			}
			line++;
			ReverseShowLine(0,30,Rev_Line_On_Page+1);
			Rev_Line_On_Page++;

			if(Rev_Line_On_Page==7)   
			{
				for(i=0;i<6;i++) 
				{
					Show_Fault_List_Line(2+i,i+line-6);	
				}
				ReverseShowLine(0,30,7);
				Rev_Line_On_Page=6;
			}
			else ReverseShowLine(0,30,Rev_Line_On_Page+1);
		} 
		if(key==14)	 //上
		{
			if(line==1) 
			{
				key=100;
				CH452_Write(CH452_SYSON2W);	           //配置CH452为两线制方式,SDA用做按键中断输出
				continue; 
			}
			line--;
			ReverseShowLine(0,30,Rev_Line_On_Page+1);
			Rev_Line_On_Page--;
			if(Rev_Line_On_Page==0)   
			{
				for(i=0;i<6;i++) 
				{
					Show_Fault_List_Line(2+i,i+line-1);	
				}
				ReverseShowLine(0,30,2);
				Rev_Line_On_Page=1;
			}
			else ReverseShowLine(0,30,Rev_Line_On_Page+1);
			
		}	
		if(key==16) //ESC
		{
			ClearScreen();			   //清屏  
			return;
		}
		 	
		key=100;
		CH452_Write(CH452_SYSON2W);	           //配置CH452为两线制方式,SDA用做按键中断输出
	}

}

//增加故障列表内容
void Add_Fault_List(void)
{
	unsigned char i,j;

	for(i=0;i<15;i++)    //FIFO,原表上移
	{
	 	for(j=0;j<8;j++) 
		{
		 	fault_list[i][j]=byte_read(ADDRESS_fault_list+i*8+8+j);
		}
	}
	fault_list[15][0]=0x00;				//增加新内容
	fault_list[15][1]=ucCurtime[6];
	fault_list[15][2]=ucCurtime[4];
	fault_list[15][3]=ucCurtime[3];
	fault_list[15][4]=ucCurtime[2];
	fault_list[15][5]=ucCurtime[1];
	fault_list[15][6]=ucCurtime[0];
	fault_list[15][7]=Alarm;
	
	sector_erase(ADDRESS_fault_list);	 //擦除
	for(i=0;i<16;i++) 					 //写入新表
	{
		for(j=0;j<8;j++) 
		{
			byte_program(ADDRESS_fault_list+i*8+j,fault_list[i][j]);		
		}
	}
		


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -