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

📄 toucher2._c

📁 基于PIC单片机
💻 _C
📖 第 1 页 / 共 5 页
字号:
         	//  cha_print(0x1c,0x26);      //设置汉字打印方式
	     	temp=(uint)(a[9]);
         	temp=(temp<<8)+a[10];  //报警浓度
         	print1(temp);          //以格式1打印
         	unit_judge();          //浓度单位判断
	     	write_print(0x0d);     //换行
	  
	     	cha_print(0xb1,0xa8);  //报
	     	cha_print(0xbe,0xaf);  //警
         	cha_print(0xc5,0xa8);  //浓
         	cha_print(0xb6,0xc8);  //度
         	write_print(0x3a);     //:
         	write_print(0x0d);     //换行
      		// cha_print(0x1b,0x36);  //选择字符集1  
   
       		//报警类型
       		cha_print(0xb1,0xa8);  //报
            cha_print(0xbe,0xaf);  //警
         	cha_print(0xc0,0xe0);  //类
         	cha_print(0xd0,0xcd);  //型
         	write_print(0x3a);     //:
         	write_print(0x20);     //空格
         	if(a[8]==0x01)
         	{
	            cha_print(0xb5,0xcd);      //低
	        	cha_print(0xb1,0xa8);      //报
         	}
         	else if(a[8]==0x02)
         	{
	            cha_print(0xb8,0xdf);      //高
	        	cha_print(0xb1,0xa8);      //报
         	} 
	     	write_print(0x0d);     //换行
   
         	//报警时间
	     	write_print(0x32);  //2
         	write_print(0x30);  //0
         	date_print(a[2]); //年
         	write_print(0x2f);  //"/"
         	date_print(a[3]); //月
         	write_print(0x2f);  //"/"
         	date_print(a[4]); //日
	     	write_print(0x20);  //" "
         	date_print(a[5]); //时
         	write_print(0x3a);  //":"
         	date_print(a[6]); //分
         	write_print(0x0d);     //换行
	  
         	//  cha_print(0x1c,0x26);      //设置汉字打印方式
         	cha_print(0xb1,0xa8);  //报
         	cha_print(0xbe,0xaf);  //警
			cha_print(0xca,0xb1);  //时
		    cha_print(0xbc,0xe4);  //间
         	//  cha_print(0x1b,0x36);  //选择字符集1 
         	write_print(0x3a);     //:
         	write_print(0x0d);     //换行
      
         	//探测器编号
         	cha_print(0xcc,0xbd);  //探
         	cha_print(0xb2,0xe2);  //测
         	cha_print(0xc6,0xf7);  //器
         	cha_print(0xb1,0xe0);  //编
         	cha_print(0xba,0xc5);  //号
         	write_print(0x3a);     //:
         	write_print(0x20);     //空格
         	num_print(a[1]);  //打印编号
	     	write_print(0x0d);     //换行
   
         	//转换器编号
         	cha_print(0xd7,0xaa);  //转
         	cha_print(0xbb,0xbb);  //换
         	cha_print(0xc6,0xf7);  //器
         	cha_print(0xb1,0xe0);  //编
         	cha_print(0xba,0xc5);  //号
         	write_print(0x3a);     //:
         	write_print(0x20);     //空格
         	num_print(a[0]);  //打印编号
	     	write_print(0x0d);     //换行
	  	}
   	}
    //标题
	kong_print(0x04);
	cha_print(0xb1,0xa8);  //报
    cha_print(0xbe,0xaf);  //警
	cha_print(0xbc,0xc7);  //记
	cha_print(0xc2,0xbc);  //录
	write_print(0x0d);     //换行
    cha_print(0x1b,0x4a);  //走纸48点
    write_print(0x30);  
}

/*******************故障记录打印*********************/

void fault_print(void)
{
    uchar a[8];
   	uchar kkk=0;
   	uchar tt=0;
   	uchar fault_buff[11];
   	uint  temp1=0;
   
   	temp1=guzhangaddr+8;    //地址加8
   	if(temp1==0x7c00)          //到头
	    temp1=0x6800 ;  //调整  
    int_prt();
    for(kkk=0;kkk<8;kkk++)
    {
	    wdr();
	    fault_buff[1]= (uchar)(((temp1&0xff00)>>8)) ; //FM24C256片内地址高位字节 
	  	fault_buff[2]= (uchar)(temp1&0x00ff) ;      //FM24C256片内地址低位字节	
		EIMSK&=~(1<<INT6);
		//do
	  	fhz=I2cRead( SLA2_W,SLA2_R , fault_buff[1],fault_buff[2],8);
		//while(fhz==1);
		//EIMSK|=(1<<INT6);
	  	for(tt=0;tt<8;tt++)
	        a[tt]=i2c_rd_buff[tt] ;  
		EIMSK|=(1<<INT6);	 
	    if(temp1==0x7bf8)          //到头
	        temp1=0x6800 ;  //调整  
	    else
	        temp1=temp1+8 ;  //调整    
	  
	    if(a[0]==0xff)        //如果外部E2中没有数,无操作
	    ;
	  	else
	  	{
	  
	         //故障类型
	     	 kong_print(0x02);
	     	 switch(a[7])
	     	 {
	             case 1:
		    	 {
		             cha_print(0xca,0xd0);  //市
		       		 cha_print(0xb5,0xe7);  //电
		       		 cha_print(0xb9,0xca);  //故 
		       		 cha_print(0xd5,0xcf);  //障
		    	 }
		    	 break;
		    	 case 2:
		    	 {
		             cha_print(0xb1,0xb8);  //备
		       		 cha_print(0xb5,0xe7);  //电
		       		 cha_print(0xb9,0xca);  //故 
		       		 cha_print(0xd5,0xcf);  //障
	        	 }
	        	 break;
	        	 case 3:
		    	 {
		             cha_print(0xb3,0xe4);  //充
		        	 cha_print(0xb5,0xe7);  //电
		       		 cha_print(0xb9,0xca);  //故 
		       		 cha_print(0xd5,0xcf);  //障
		    	 }
		    	 break;
		    	 case 4:
		    	 {
		             cha_print(0xcd,0xa8);  //通
		       		 cha_print(0xd1,0xb6);  //讯
		       		 cha_print(0xb9,0xca);  //故 
		       		 cha_print(0xd5,0xcf);  //障
		         }
		    	 break;
		    	 case 5:
		    	 {
		       	     cha_print(0xb4,0xab);  //传
		       		 cha_print(0xb8,0xd0);  //感
		       		 cha_print(0xc6,0xf7);  //器
		       		 cha_print(0xb9,0xca);  //故 
		       		 cha_print(0xd5,0xcf);  //障
		    	 }
	        	 break;
		    	 case 6:
		    	 {
		       	     cha_print(0xc1,0xaa);  //联
		       		 cha_print(0xb6,0xaf);  //动
		       		 cha_print(0xc4,0x76);  //设
		       		 cha_print(0xbf,0x77);  //备
		       		 cha_print(0xb9,0xca);  //故 
		       		 cha_print(0xd5,0xcf);  //障
		    	 }
		    	 break;
         	 }
	     	 write_print(0x0d);     //换行
	  
	     	 cha_print(0xb9,0xca);  //故 
         	 cha_print(0xd5,0xcf);  //障
         	 cha_print(0xc0,0xe0);  //类
         	 cha_print(0xd0,0xcd);  //型
         	 write_print(0x3a);     //:
         	 write_print(0x0d);     //换行
	  
	  
	  
	     	 //故障时间
	     	 write_print(0x32);  //2
         	 write_print(0x30);  //0
         	 date_print(a[2]); //年
         	 write_print(0x2f);  //"/"
         	 date_print(a[3]); //月
         	 write_print(0x2f);  //"/"
         	 date_print(a[4]); //日
	     	 write_print(0x20);  //" "
         	 date_print(a[5]); //时
         	 write_print(0x3a);  //":"
         	 date_print(a[6]); //分
         	 write_print(0x0d);  //换行
	

         	 //  cha_print(0x1c,0x26);      //设置汉字打印方式
         	 cha_print(0xb9,0xca);  //故 
	     	 cha_print(0xd5,0xcf);  //障
         	 cha_print(0xca,0xb1);  //时
         	 cha_print(0xbc,0xe4);  //间
         	 //  cha_print(0x1b,0x36);  //选择字符集1 
         	 write_print(0x3a);     //:
         	 write_print(0x0d);     //换行
	  
	  
	     	 //探测器编号
         	 cha_print(0xcc,0xbd);  //探
         	 cha_print(0xb2,0xe2);  //测
         	 cha_print(0xc6,0xf7);  //器
         	 cha_print(0xb1,0xe0);  //编
         	 cha_print(0xba,0xc5);  //号
         	 write_print(0x3a);     //:
         	 write_print(0x20);     //空格
         	 num_print(a[1]);      //打印编号
	     	 write_print(0x0d);     //换行
   
   
         	 //转换器编号
         	 cha_print(0xd7,0xaa);  //转
         	 cha_print(0xbb,0xbb);  //换
         	 cha_print(0xc6,0xf7);  //器
         	 cha_print(0xb1,0xe0);  //编
         	 cha_print(0xba,0xc5);  //号
         	 write_print(0x3a);     //:
         	 write_print(0x20);     //空格
         	 num_print(a[0]);       //打印编号
	     	 write_print(0x0d);     //换行
      	}  
   	} 
    //标题
	kong_print(0x04); 
	cha_print(0xb9,0xca);  //故 
	cha_print(0xd5,0xcf);  //障
    cha_print(0xbc,0xc7);  //记
	cha_print(0xc2,0xbc);  //录
	write_print(0x0d);     //换行
	cha_print(0x1b,0x4a);  //走纸48点
    write_print(0x30);     
}

/********************开关机记录打印**********************/

void opclo_print(void)
{
    uchar kkk=0;
    uchar a[16];
    uchar c=0;
    uchar onoffbuff[11];  //从外部E2取开关机记录
    uint  temp1=0;
    uchar temp=0;
   
    temp=num_open-1;
    temp1=addre2+16;
    if(temp1==0x0400)          //到头
	    temp1=0x0000 ;  //调整  
    int_prt();
    for(kkk=0;kkk<8;kkk++)
    {
	    wdr();
	    onoffbuff[1]= (uchar)((temp1>>8)&0x00ff ) ; //FM24C256片内地址高位字节
	  	onoffbuff[2]= (uchar)(temp1&0x00ff) ;      //FM24C256片内地址低位字节
		EIMSK&=~(1<<INT6);	
		//do
	  	fhz=I2cRead( SLA2_W,SLA2_R , onoffbuff[1],onoffbuff[2],8);
		//while(fhz==1);
		//;
	  	for(c=0;c<8;c++)
	        a[c]=i2c_rd_buff[c] ;   //本次开机
		EIMSK|=(1<<INT6);	
	    if(temp1==0x0000)     //到头
	        temp1=0x03f8 ;  //调整到关机  
	    else
	        temp1=temp1-8  ;  //调整到关机
	  
	    onoffbuff[1]= (uchar)((temp1>>8)&0x00ff ) ; //FM24C256片内地址高位字节
	  	onoffbuff[2]= (uchar)(temp1&0x00ff) ;      //FM24C256片内地址低位字节	
		EIMSK&=~(1<<INT6);
		//do
	  	fhz=I2cRead( SLA2_W,SLA2_R , onoffbuff[1],onoffbuff[2],8);
		//while(fhz==1);
		
	  	for(c=0;c<8;c++)
	        a[c+8]=i2c_rd_buff[c] ;   //本次开机
	  	EIMSK|=(1<<INT6); 
	    if(temp1>=0x03e8)  
	        temp1=0x0010+24-0x0400;
	    else
	        temp1=temp1+24  ;  //调整到开机
      
	    //addre2lo= (uchar) (addre2&0x00ff) ;      //FM24C256片内地址低位字节	
	    // addre2hi= (uchar) ((addre2>>8)&0x00ff ) ; //FM24C256片内地址高位字节 
	  
	    //时间数组位置调整
	    for(c=3;c<6;c++)
	        a[c]=a[c+1];
	    for(c=11;c<14;c++)
	        a[c]=a[c+1];	  
	   
	    if(a[8]==0xff)
	    ;
	  	else
	  	{		 	   
	        //关机时间
	        write_print(0x32);  //2
         	write_print(0x30);  //0
         	date_print(a[8]);   //年
         	write_print(0x2f);  //"/"
         	date_print(a[9]);   //月
         	write_print(0x2f);  //"/"
         	date_print(a[10]);  //日
	     	write_print(0x2f);  //" "
         	date_print(a[11]);   //时
         	write_print(0x3a);  //":"
         	date_print(a[12]);  //分
         	write_print(0x0d);  //换行
	  
        	//  cha_print(0x1c,0x26);      //设置汉字打印方式
            cha_print(0xb9,0xd8);  //关
		 	cha_print(0xbb,0xfa);  //机
         	cha_print(0xca,0xb1);  //时
         	cha_print(0xbc,0xe4);  //间
        	//  cha_print(0x1b,0x36);  //选择字符集1 
            write_print(0x3a);     //:
         	write_print(0x0d);     //换行
	  	}
	  	if(a[0]==0xff)
	    ;
	  	else
	  	{
	        //开机时间
         	write_print(0x32);  //2
         	write_print(0x30);  //0
         	date_print(a[0]);   //年
         	write_print(0x2f);  //"/"
         	date_print(a[1]);   //月
         	write_print(0x2f);  //"/"
         	date_print(a[2]);   //日
	     	write_print(0x2f);  //" "
         	date_print(a[3]);   //时
         	write_print(0x3a);  //":"
         	date_print(a[4]);   //分
         	write_print(0x0d);     //换行
	  
         	//  cha_print(0x1c,0x26);      //设置汉字打印方式
         	cha_print(0xbf,0xaa);  //开
         	cha_print(0xbb,0xfa);  //机
         	cha_print(0xca,0xb1);  //时
         	cha_print(0xbc,0xe4);  //间
         	//  cha_print(0x1b,0x36);  //选择字符集1 
         	write_print(0x3a);     //:
         	write_print(0x0d);     //换行



         	//编号
	     	cha_print(0xb1,0xe0);  //编
         	cha_print(0xba,0xc5);  //号
         	write_print(0x3a);     //:
         	write_print(0x20);     //空格
         	num_print(temp);       //打印编号
         	write_print(0x0d);     //换行
		 	temp--;
	  	}
    }
   
    //标题
	write_print(0x20);     //空格
	cha_print(0xbf,0xaa);  //开
	cha_print(0xb9,0xd8);  //关
	cha_print(0xbb,0xfa);  //机
	cha_print(0xbc,0xc7);  //记
	cha_print(0xc2,0xbc);  //录
	write_print(0x0d);     //换行
	cha_print(0x1b,0x4a);  //走纸48点
    write_print(0x30);       
}



/*********************液晶指令集*******************************/
void zong(uchar temp)                //综合设置
{
    usart_transmit_char(0x1d);        
    usart_transmit_char(0x77);                  
    usart_transmit_char(temp);     
}

void clear(uchar temp)                //清屏
{
    usart_transmit_char(0x1b);          
    usart_transmit_char(0x51);                  
    usart_transmit_char(temp);     
}


void colour(uchar temp1,uchar temp2,uchar temp3)       //设置字符颜色
{
    usart_transmit_char(0x1D);      
    usart_transmit_char(0x75);                  
    usart_transmit_char(temp1);           
  	usart_transmit_char(temp2);
  	usart_transmit_char(temp3);
}
void sound(uchar temp1)             //蜂鸣器
{
    usart_transmit_char(0x1D);            
  	usart_transmit_char(0x6c);                  
  	usart_transmit_char(temp1);   
}
void xtzb(uchar temp1,uchar temp2,uchar temp3,uchar temp4)       //系统坐标
{
    wdr();
    usart_transmit_char(0x1b);  //数字
  	usart_transmit_char(0x7a);  //1b 7a X1h X1L Y1h Y1L设置系统坐标

⌨️ 快捷键说明

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