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

📄 toucher2._c

📁 基于PIC单片机
💻 _C
📖 第 1 页 / 共 5 页
字号:
		x=x+0x40;
    	x2l=x;
		x2h=x>>8;
		x2h=x2h&0x03;
		y=y+0x46;
		yl=y;                     
		yh=y>>8;
		y=y+0x2d;
		y2l=y;
		y2h=y>>8;
		y2h=y2h&0x03;
    }
  	fdbs(0x04);
  	xh=0x00;
  	xl=0x00;
  	xl=0x60;
  	yh=0x00;
  	yl=0x76;
	wdr();
  	for(i=0;i<4;i++)
  	{
        xtzb(xh,xl,yh,yl);
    	xszf(0x34,0x81);      //吸
		xszf(0x34,0x82);      //合
		zhuanhuan();
		x=x+0x70;
		xl=x;
		xh=x>>8;
		xtzb(xh,xl,yh,yl);
		xszf(0x34,0x83);      //断
		xszf(0x34,0x4b);      //开
		xh=0x00;
		xl=0x60;
	    zhuanhuan();
		y=y+0x46;
		yl=y;                     
		yh=y>>8;
    }
  /*	xh=0xa1;
  	xl=0x20;
  	yh=0x04;
  	yl=0x68;
  	x2h=0x01;
  	x2l=0x50;
  	y2h=0x00;
  	y2l=0x95;
  	for(i=0;i<4;i++)
  	{
        juxing(xh,xl,yh,yl,x2h,x2l,y2h,y2l);       //4个矩形
		zhuanhuan();
		y=y+0x46;
		yl=y;                     
		yh=y>>8;
		y=y+0x2d;
		y2l=y;
		y2h=y>>8;
		y2h=y2h&0x03;
    }*/
	juxing(0xa1,0x20,0x04,0x68,0x01,0x50,0x00,0x95);
	juxing(0xa1,0x20,0x04,0xae,0x01,0x50,0x00,0xdb);      //4个矩形
	juxing(0xa1,0x20,0x04,0xf4,0x01,0x50,0x01,0x21);
	juxing(0xa1,0x20,0x05,0x3a,0x01,0x50,0x01,0x67);
  	xh=0x81;
  	xl=0x28;
  	yh=0xa0;
  	yl=0x76;
	wdr();
  	for(i=0;i<4;i++)
  	{					
        xtzb(xh,xl,yh,yl);
		if((cha_local&temp2)==0x00)
		{
		    xszf(0x34,0x83); //断
			xszf(0x34,0x4b); //开
		}
		else
		{
		    xszf(0x34,0x81);      //吸
			xszf(0x34,0x82);      //合
		}
		zhuanhuan();
		y=y+0x46;
		yl=y;                     
		yh=y>>8;
		temp2=temp2<<1;
    }
	button3();
}
/*********************修改地址界面*******************/
void jiemian10(void)
{
    jiemian=10;    //置界面标志
  	p1=0;       //对应old_can数组
  	p2=0;       //对应new_can数组
  	p3=0;       //对应can数组
  	p4=0;       //对应old_det数组
  	p5=0;       //对应new_det数组
  	background();  //背景
  	xtzb(0x00,0x38,0x00,0x59);
  	fdbs(0x04);
  	xszf(0x34,0xe8); //修
  	xszf(0x34,0xe9); //改
  	xszf(0x34,0xd6); //转
  	xszf(0x34,0xd7); //换
  	xszf(0x34,0xd8); //器
  	xszf(0x34,0xe6); //地
  	xszf(0x34,0xe7); //址
  	xtzb(0x00,0xc8,0x00,0x7c);
  	xszf(0x34,0xea); //原
  	xszf(0x34,0xe6); //地
  	xszf(0x34,0xe7); //址
  	juxing(0xf1,0x08,0x04,0x79,0x01,0x58,0x00,0x8f);
  	X1H=0x01;             
  	X1L=0x09;         
  	Y1H=0x00;
  	Y1L=0x7b; 
  	X2H=0x01;          
  	X2L=0x09;
  	Y2H=0x00;
  	Y2L=0x8d;
  	gbxs(X1H,X1L,Y1H,Y1L,X2H,X2L,Y2H,Y2L);  //显示光标
  	xtzb(0x00,0xc8,0x00,0xc2);
  	xszf(0x34,0x73); //新
  	xszf(0x34,0xe6); //地
  	xszf(0x34,0xe7); //址
  	juxing(0xf1,0x08,0x04,0xbf,0x01,0x58,0x00,0xd5);
  	xtzb(0x00,0x38,0x00,0xe5);
  	xszf(0x34,0xe8); //修
  	xszf(0x34,0xe9); //改
  	xszf(0x34,0x85); //探
  	xszf(0x34,0x86); //测
  	xszf(0x34,0xd8); //器
  	xszf(0x34,0xe6); //地
  	xszf(0x34,0xe7); //址
  	xtzb(0x00,0xc8,0x01,0x08);
  	xszf(0x34,0xea); //原
  	xszf(0x34,0xe6); //地
  	xszf(0x34,0xe7); //址
  	juxing(0xf1,0x08,0x05,0x05,0x01,0x58,0x01,0x1b);
  	juxing(0xf1,0x78,0x05,0x05,0x01,0xc8,0x01,0x1b);
  	xtzb(0x00,0xc8,0x01,0x4e);
  	xszf(0x34,0x73); //新
  	xszf(0x34,0xe6); //地
  	xszf(0x34,0xe7); //址
  	juxing(0xf1,0x08,0x05,0x4b,0x01,0x58,0x01,0x61);
  	button2(); 
 	button3();
}

/********************实时报警故障界面******************/
void jiemian11()
{
    jiemian=11;
	regist=0;
	realaddr=0x3000;
	background();  //背景
	bank7();
	xtzb(0x00,0x08,0x00,0x59);
	fdbs(0x04);
	bank8();
	kong(0x33,0x06);
	bank8();
	//real_disp();
}

/********************登录界面*************************/
void denglu1()
{
    regist=1;  //屏蔽菜单按钮
  	denglu=1;  //置登陆标志
  	m3=0;      //清密码
  	juxing(0xf0,0x80,0x04,0x8d,0x01,0x50,0x01,0x0d);  //(0x80,0x8d,0x150,0x10d)
  	fdbs(0x04);
  	xtzb(0x00,0x90,0x00,0x97);
  	xszf(0x34,0x68); //请
  	xszf(0x34,0x69); //输
  	xszf(0x34,0x6a); //入
  	xszf(0x34,0x64); //登
  	xszf(0x34,0x65); //录
  	xszf(0x34,0x6b); //密
  	xszf(0x34,0x6c); //码
  	juxing(0xa0,0x90,0x00,0xb0,0x01,0x40,0x00,0xc6);
	X1H=0x00;
    X1L=0x91;         
  	Y1H=0x00;
  	Y1L=0xb2; 
  	X2H=0x00;          
  	X2L=0x91;
  	Y2H=0x00;
  	Y2L=0xc4;
  	gbxs(X1H,X1L,Y1H,Y1L,X2H,X2L,Y2H,Y2L);   //关标显示
  	ltjx(0x88,0x90,0x04,0xd4,0x00,0xd0,0x01,0x06);
  	xtzb(0x80,0xa0,0x00,0xe5);
  	xszf(0x34,0x71); //确
  	xszf(0x34,0xb2); //定
  	ltjx(0x89,0x00,0x04,0xd4,0x01,0x40,0x01,0x06);
  	xtzb(0x81,0x10,0x00,0xe5);
  	xszf(0x34,0x66); //退
  	xszf(0x34,0x67); //出
}
void denglu2()
{
    denglu=2; //置登陆标志
  	juxing(0xf0,0x60,0x04,0x8d,0x01,0x60,0x00,0xed);  //(0x80,0x8d,0x150,0x10d)
  	fdbs(0x04);
  	xtzb(0x00,0x70,0x00,0x97);
  	xszf(0x34,0x6d); //您
  	xszf(0x34,0x6e); //的
  	xszf(0x34,0x6b); //密
  	xszf(0x34,0x6c); //码
  	xszf(0x34,0x6f); //不
  	xszf(0x34,0x36); //正
  	xszf(0x34,0x71); //确
  	xszf(0x33,0x2c);
  	xszf(0x34,0x68); //请
  	xszf(0x34,0x72); //重
  	xszf(0x34,0x73); //新
  	xszf(0x34,0x69); //输
  	xszf(0x34,0x6a); //入
  	ltjx(0x88,0xc0,0x04,0xb1,0x01,0x00,0x00,0xe3); 
  	xtzb(0x80,0xd0,0x00,0xc2);
  	xszf(0x34,0x71); //确
  	xszf(0x34,0xb2); //定
} 

/********************实时记录********************/
void real_disp()
{
    uchar ii=0;
  	uchar kkk=0;
  	uchar temp1=0;
  	uchar temp2=0;
  	uchar temp3=0;
  	uchar temp4=0;
  	uint  addr=0;
  	uchar rambuff[11];
  	xh=0xc0;   //颜色 e0
  	xl=0x08;   
  	yh=0xb0;
  	yl=0x7c;
	addr=realaddr;   //探测器和节点对应的RAM地址  
	EIMSK&=~(1<<INT6);                
    rambuff[1]=(uchar)(((addr&0xff00)>>8)); //高址
	rambuff[2]=(uchar)(addr&0x00ff);        //低址
	//do
	fhz=I2cRead(SLA1_W,SLA1_R, rambuff[1],rambuff[2],3);  //读出
	//while(fhz==1);
	for(ii=0;ii<3;ii++)
		rambuff[ii]=i2c_rd_buff[ii];
	EIMSK|=(1<<INT6);	
	if(rambuff[0]==0xff)
	    realaddr=0x3000;
  	for(kkk=0;kkk<7;kkk++)
    {
	    wdr();
        if((kkk==1)||(kkk==3)||(kkk==5))
	    {
		    xh=0xe0;             //换行颜色为红色
     	    xl=0x08;
			yh=yh&0x9f;          //将字体背景设为蓝色
	    }
	    else if((kkk==0)||(kkk==2)||(kkk==4)||(kkk==6))
	    { 
		    xh=0xc0;             //换行颜色为黄色
        	xl=0x08;
	        yh=yh|0x20;          //将字体背景设为青色
	    }
        else
	    ;
        for(j=0;j<2;j++)
	    { 
		    EIMSK&=~(1<<INT6);
		    addr=realaddr;   //探测器和节点对应的RAM地址                  
			rambuff[1]=(uchar)(((addr&0xff00)>>8)); //高址
			rambuff[2]=(uchar)(addr&0x00ff);        //低址
			//do
			fhz=I2cRead(SLA1_W,SLA1_R, rambuff[1],rambuff[2],3);  //读出
			//while(fhz==1);
			for(ii=0;ii<3;ii++)
		        rambuff[ii]=i2c_rd_buff[ii];
			//if(realaddr==0x3129)     //到头
	            //realaddr=0x3000 ;  //调整  
	    	//else
			EIMSK|=(1<<INT6);
	            realaddr=realaddr+3 ;  //调整   
		    if(rambuff[0]==0xff)
			{
			    xtzb(xh,xl,yh,yl);      //不显示
			    kong(0x33,0x10);
				zhuanhuan7(0xa0,0x00);
				xtzb(xh,xl,yh,yl);
				kong(0x33,0x06);
			}
		    /*******************显示编号******************/
			else
			{
			    temp1=rambuff[0]/10+0x30;       //转换器编号高位
	     	    temp2=rambuff[0]%10+0x30;       //转换器编号低位
	     	    temp3=rambuff[1]/10+0x30;       //探测器编号高位
	     	    temp4=rambuff[1]%10+0x30;       //探测器编号低位
				xtzb(xh,xl,yh,yl);
				fdbs(0x14);   
				xszf(0x31,temp1);
				xszf(0x31,temp2);
				xszf(0x31,0x2f);     //"/"
				xszf(0x31,temp3);
				xszf(0x31,temp4); 
				zhuanhuan7(0x40,0x00);
				xtzb(xh,xl,yh,yl);
				fdbs(0x04);
				switch(rambuff[2]) 
				{
			        case 0x01:
					{
				        xszf(0x34,0x5a);      //低
	        			xszf(0x34,0x3f);      //报
					}
					break;
					case 0x02:
					{
				        xszf(0x34,0x59);       //高
	        			xszf(0x34,0x3f);       //报
					}
					break;
			    	default :
					{
				        xszf(0x33,0x20);
						xszf(0x33,0x20);
					}
			    	break;
				}
		    	zhuanhuan7(0x60,0x00);
				xtzb(xh,xl,yh,yl);
				switch(rambuff[2])   
				{
			    	case 0x03:
					{
					    xszf(0x34,0x4e);  //通
		       			xszf(0x34,0x4f);  //讯
		       			xszf(0x34,0x3b);  //故 
		       			xszf(0x34,0x3c);  //障
						kong(0x33,0x02);
					}
					break;
					case 0x04:
					{
				        xszf(0x34,0x50);  //传
		       			xszf(0x34,0x51);  //感
		       			xszf(0x34,0x52);  //器
		       			xszf(0x34,0x3b);  //故 
		       			xszf(0x34,0x3c);  //障
						kong(0x33,0x01);
					}
					break;
					case 0x05:
					{
				        xszf(0x34,0x87);  //联
		       			xszf(0x34,0x88);  //动
		       			xszf(0x34,0x76);  //设
		       			xszf(0x34,0x77);  //备
		       			xszf(0x34,0x3b);  //故 
		       			xszf(0x34,0x3c);  //障
					}
					break;
					case 7:
				    {
				        xszf(0x34,0xd6);  //转
  	                	xszf(0x34,0xd7);  //换
  	                	xszf(0x34,0xd8);  //器
		       			xszf(0x34,0x3b);  //故 
		       			xszf(0x34,0x3c);  //障
						kong(0x33,0x01);
					}
					break;
					default :
					{
				        kong(0x33,0x06);
					}
					break;
				}
			}
			zhuanhuan7(0xa0,0x00);       //纵坐标不变,横坐标增加0x60  
		}
		zhuanhuan();
	 	y=y+0x23;
	 	yl=y;
	    yh=(y>>8);
    }
}

/****************显示数字功能函数***************/
void common4(uchar temp2)         
{
    gbxs(X1H,X1L,Y1H,Y1L,X2H,X2L,Y2H,Y2L);   
  	xtzb(X1H,X1L,Y1H,Y1L);   
  	fdbs(0x14);         
  	xszf(0x31,temp2);                         
  	zbzj();
  	gbxs(X1H,X1L,Y1H,Y1L,X2H,X2L,Y2H,Y2L);
}

/*****************清除外部RAM实时记录******************/
void ram_erase()
{
    uchar tempbuff[7];
	uchar kkk=0;
	uint temp=0x3000;
	for(kkk=0;kkk<100;kkk++)
	{
	    EIMSK&=~(1<<INT6) ;  //时钟
	    tempbuff[0]= SLA1_W ;
	 	tempbuff[1]= (uchar)((temp>>8)&0x00ff) ; //FM24C256片内地址高位字节
	 	tempbuff[2]= (uchar)(temp&0x00ff) ;      //FM24C256片内地址低位字节	
	 	tempbuff[3]= 0xff;        //准备要写入的数据
		tempbuff[4]= 0xff;
		tempbuff[5]= 0xff;
		tempbuff[6]= 0xff;
		//do
	 	fhz=I2cWrite(tempbuff,7);
		//while(fhz==1);
		temp=temp+4;
		wdr();   //dog
	}
	EIMSK|=(1<<INT6)  ;  //时钟
}

⌨️ 快捷键说明

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