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

📄 toucher.c

📁 基于PIC单片机
💻 C
📖 第 1 页 / 共 5 页
字号:
	xszf(0x34,0xff);     //面
	fdbs(0x14);
	xszf(0x31,0x28);
	xszf(0x31,0x55);
	xszf(0x31,0x29);
}
void choice2(void)
{
    choice=2;   //置选择标志
  	juxing(0xf0,0xa0,0x04,0x2d,0x01,0x20,0x00,0x93);     //(48,45,176,109)
  	juxing(0xb0,0xa0,0x04,0x2d,0x01,0x20,0x00,0x5b);
  	juxing(0xb0,0xa0,0x04,0x65,0x01,0x20,0x00,0x93);
  	xtzb(0x00,0xaf,0x00,0x3d);
  	fdbs(0x04);
  	xszf(0x34,0x61);                 //管
  	xszf(0x34,0x62);                 //理
  	xszf(0x34,0x63);                 //员 
  	xszf(0x34,0x64);                 //登
  	xszf(0x34,0x4a);                 //录
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x59);
  	xszf(0x31,0x29);
  	fdbs(0x04);
  	xtzb(0x00,0xaf,0x00,0x75);
  	xszf(0x34,0x66);                 //退
  	xszf(0x34,0x67);                 //出 
  	xszf(0x34,0x64);                 //登
  	xszf(0x34,0x4a);                 //录
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x5a);
  	xszf(0x31,0x29);
}
void choice3(void)
{
    choice=3;  //置选择标志
  	juxing(0xf0,0xa0,0x04,0x2d,0x01,0x20,0x00,0xfb);  //(0x00,0x2d,0xa3,0xb7)
  	juxing(0xb0,0xa0,0x04,0x2d,0x01,0x20,0x00,0x5a);
  	juxing(0xb0,0xa0,0x04,0x63,0x01,0x20,0x00,0x8f);
  	juxing(0xb0,0xa0,0x04,0x99,0x01,0x20,0x00,0xc5);
	juxing(0xb0,0xa0,0x04,0xcf,0x01,0x20,0x00,0xfb);
  	//juxing(0xb0,0xa0,0x04,0xcf,0x01,0x20,0x00,0xfb);
  	//juxing(0xb0,0xa0,0x05,0x05,0x01,0x20,0x01,0x31);
	//juxing(0xb0,0xa0,0x05,0x3b,0x01,0x20,0x01,0x67);
  	xtzb(0x00,0xaf,0x00,0x3c);
  	fdbs(0x04);
  	xszf(0x34,0x61);                 //管
  	xszf(0x34,0x62);                 //理
  	xszf(0x34,0x63);                 //员 
  	xszf(0x34,0x64);                 //登
  	xszf(0x34,0x4a);                 //录
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x59);
  	xszf(0x31,0x29);
  	fdbs(0x04);
  	xtzb(0x00,0xaf,0x00,0x72);
  	xszf(0x34,0x66);                 //退
  	xszf(0x34,0x67);                 //出 
  	xszf(0x34,0x64);                 //登
  	xszf(0x34,0x4a);                 //录
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x5a);
  	xszf(0x31,0x29);
  	fdbs(0x04);
  	xtzb(0x00,0xaf,0x00,0xa8);
  	xszf(0x34,0x32);                 //系
  	xszf(0x34,0x33);                 //统
  	xszf(0x34,0x22);                 //设
  	xszf(0x34,0x23);                 //置
  	fdbs(0x14);
	xszf(0x31,0x28);
    xszf(0x31,0x57);
  	xszf(0x31,0x29);
	fdbs(0x04);
  	xtzb(0x00,0xaf,0x00,0xde);       
  	xszf(0x34,0x78);                 //自
  	xszf(0x34,0x88);                 //动
  	xszf(0x34,0x5c);                 //搜
  	xszf(0x34,0x8f);                 //索
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x58);
  	xszf(0x31,0x29);
}
void choice8(void)
{
    choice=8;  //置选择标志
  	juxing(0xf0,0xa0,0x04,0x2d,0x01,0x20,0x01,0x31);  //(0x00,0x2d,0xa3,0xb7)
  	juxing(0xb0,0xa0,0x04,0x2d,0x01,0x20,0x00,0x5a);
  	juxing(0xb0,0xa0,0x04,0x63,0x01,0x20,0x00,0x8f);
  	juxing(0xb0,0xa0,0x04,0x99,0x01,0x20,0x00,0xc5);
  	juxing(0xb0,0xa0,0x04,0xcf,0x01,0x20,0x00,0xfb);
  	juxing(0xb0,0xa0,0x05,0x05,0x01,0x20,0x01,0x31);
	//juxing(0xb0,0xa0,0x05,0x3b,0x01,0x20,0x01,0x67);
  	xtzb(0x00,0xaf,0x00,0x3c);
  	fdbs(0x04);
  	xszf(0x34,0x61);                 //管
  	xszf(0x34,0x62);                 //理
  	xszf(0x34,0x63);                 //员 
  	xszf(0x34,0x64);                 //登
  	xszf(0x34,0x4a);                 //录
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x59);
  	xszf(0x31,0x29);
  	fdbs(0x04);
  	xtzb(0x00,0xaf,0x00,0x72);
  	xszf(0x34,0x66);                 //退
  	xszf(0x34,0x67);                 //出 
  	xszf(0x34,0x64);                 //登
  	xszf(0x34,0x4a);                 //录
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x5a);
  	xszf(0x31,0x29);
  	fdbs(0x04);
  	xtzb(0x00,0xaf,0x00,0xa8);
  	xszf(0x34,0x32);                 //系
  	xszf(0x34,0x33);                 //统
  	xszf(0x34,0x22);                 //设
  	xszf(0x34,0x23);                 //置
  	fdbs(0x14);
	xszf(0x31,0x28);
    xszf(0x31,0x57);
  	xszf(0x31,0x29);
  	fdbs(0x04);
  	xtzb(0x00,0xaf,0x00,0xde);
  	xszf(0x34,0x47);                 //节
  	xszf(0x34,0x48);                 //点
  	xszf(0x34,0x22);                 //设 
  	xszf(0x34,0x23);                 //置
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x58);
  	xszf(0x31,0x29);
  	fdbs(0x04);
  	xtzb(0x00,0xaf,0x01,0x14);
  	xszf(0x34,0xe6);                //地
  	xszf(0x34,0xe7);                //址
  	xszf(0x34,0xe8);                //修
  	xszf(0x34,0xe9);                //改
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x55);
  	xszf(0x31,0x29);
	/*
	fdbs(0x04);
	xtzb(0x00,0xaf,0x01,0x4a);
  	xszf(0x34,0xcb);                 //本
  	xszf(0x34,0xe6);                 //地
  	xszf(0x34,0x4c);                 //关 
  	xszf(0x34,0x87);                 //联
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x56);
  	xszf(0x31,0x29);
	*/
}
void choice4(void)
{
    choice=4;  //置选择标志
  	juxing(0xf1,0x40,0x04,0x2d,0x01,0xe0,0x01,0x67);     //(80,45,288,225)
  	juxing(0xb1,0x40,0x04,0x2d,0x01,0xe0,0x00,0x59);
  	juxing(0xb1,0x40,0x04,0x63,0x01,0xe0,0x00,0x8f);
  	juxing(0xb1,0x40,0x04,0x99,0x01,0xe0,0x00,0xc5);
  	juxing(0xb1,0x40,0x04,0xcf,0x01,0xe0,0x00,0xfb);
  	juxing(0xb1,0x40,0x05,0x05,0x01,0xe0,0x01,0x31);
  	juxing(0xb1,0x40,0x05,0x3b,0x01,0xe0,0x01,0x67);
  	xtzb(0x01,0x4f,0x00,0x3c);
  	fdbs(0x04);
  	xszf(0x34,0x24);                 //控
  	xszf(0x34,0x25);                 //制
  	xszf(0x34,0x74);                 //外 
  	xszf(0x34,0x75);                 //部
  	xszf(0x34,0x76);                 //设
  	xszf(0x34,0x77);                 //备
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x55);
  	xszf(0x31,0x29);
  	xtzb(0x01,0x4f,0x00,0x72);
  	fdbs(0x04);
  	xszf(0x34,0x78);                 //自
  	xszf(0x34,0x79);                 //检
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x56);
  	xszf(0x31,0x29);
  	xtzb(0x01,0x4f,0x00,0xa8);
  	fdbs(0x04);
  	xszf(0x34,0x7a);                 //复
  	xszf(0x34,0x7b);                 //位
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x57);
  	xszf(0x31,0x29);
  	xtzb(0x01,0x4f,0x00,0xde);
  	fdbs(0x04);
  	xszf(0x34,0x7c);                 //打
  	xszf(0x34,0x7d);                 //印
  	xszf(0x34,0x3f);                 //报 
  	xszf(0x34,0x40);                 //警
  	xszf(0x34,0x7e);                 //信
  	xszf(0x34,0x7f);                 //息
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x58);
  	xszf(0x31,0x29);
  	xtzb(0x01,0x4f,0x01,0x14);
  	fdbs(0x04);
  	xszf(0x34,0x7c);                 //打
  	xszf(0x34,0x7d);                 //印
  	xszf(0x34,0x3b);                 //故 
  	xszf(0x34,0x3c);                 //障
  	xszf(0x34,0x7e);                 //信
  	xszf(0x34,0x7f);                 //息
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x59);
  	xszf(0x31,0x29);
  	xtzb(0x01,0x4f,0x01,0x4a);
  	fdbs(0x04);
  	xszf(0x34,0x7c);                 //打
  	xszf(0x34,0x7d);                 //印
  	xszf(0x34,0x4b);                 //开 
  	xszf(0x34,0x4c);                 //关
  	xszf(0x34,0x4d);                 //机
  	xszf(0x34,0x7e);                 //信
  	xszf(0x34,0x7f);                 //息
  	fdbs(0x14);
  	xszf(0x31,0x28);
  	xszf(0x31,0x5a);
  	xszf(0x31,0x29);
}

/********************自检函数********************/
void self_check(void)
{
    uchar i=0;
    uchar gal2,gal3,gal4;
   	gal2=gal2data;     //保存原有状态
   	gal3=gal3data;
   	gal4=gal4data;
   	//点亮所有灯
	
   	GAL4ADDR=0x2a;
   	GAL3ADDR=0x10;
   	GAL2ADDR=0x4f;
   	//检查报警声音
	delay_nms(3);
   	alarm(1);
   	juxing(0xc0,0x00,0x04,0x2d,0x02,0x80,0x01,0x66);   //红色
	for(i=0;i<6;i++)
	{
   	    delay_nms(500);
		wdr();
	}
   	alarm(2);
   	juxing(0xb0,0x00,0x04,0x2d,0x02,0x80,0x01,0x66);   //青色
   	for(i=0;i<6;i++)
	{
   	    delay_nms(500);
		wdr();
	}
	GAL4ADDR=0x15;
	GAL3ADDR=0x8b;
   	alarm(3);
   	juxing(0x90,0x00,0x04,0x2d,0x02,0x80,0x01,0x67);   //蓝色
   	for(i=0;i<6;i++)
	{
   	    delay_nms(500);
		wdr();
	}
   	PORTE&=~(1<<PE4);    //消音
   	for(i=0;i<6;i++)
	{
   	    delay_nms(200);
		wdr();
	}
   	//恢复灯的原有状态
   	GAL4ADDR=gal4;
   	GAL3ADDR=gal3;
   	GAL2ADDR=gal2;
	jiemian1();
}

/*******************复位函数*******************/
void reset(void)
{
    uchar kkk=0,iii=0;
    PORTE&=~(1<<PE4);   //消音
   	//清故障报警灯
   	gal4data|=0x6a;
   	GAL4ADDR=gal4data;    
   	gal3data|=0x15;
   	GAL3ADDR=gal3data;
   	gal2data|=0x30;
   	GAL2ADDR=gal2data;
   	cuo1=0;
   	cuo2=0;
	cuo3=0;
	cuo4=0;
	first_alarm=0;
    firstuse1=0;  //判断电源故障是不是第一次进入用
 	firstuse2=0;  
 	firstuse3=0;
 	firstuse4=0;   //亏电
	for(iii=0;iii<32;iii++)
	{
	    for(kkk=0;kkk<4;kkk++)
		{
		    hibao[iii][kkk]=0;     //高报
			lobao[iii][kkk]=0;     //低报
			detector[iii][kkk]=0;       //传感器
			communicate[iii][kkk]=0;	 //通讯 
			rxerror.di[iii][kkk]=0;
			rxerror.tan[iii][kkk]=0;
			rxerror.tong[iii][kkk]=0;
			rxerror.gao[iii][kkk]=0;
		}
	}	
	for(kkk=0;kkk<10;kkk++)
	{
	    shoubao[kkk]=0;
	}
	//for(kkk=0;kkk<32;kkk++)
	   // can_cuo_flag[kkk]=0;
	error.bei=0;
	error.shi=0;
	error.cong=0;
	//断开所有继电器
	gal2data|=0x0f;
	GAL2ADDR=gal2data;
	cha_local&=0xf0;
	flag_local=0 ;
}

/****************恢复出厂设置*****************/
void renew(void)
{
    uchar erase_buff[35];
    uint yyy=0;
	uchar j1=0;
	uint j2=0;
	uchar ehi=0,elo=0;    //循环擦外部E2PROM用
	//灯灭
	GAL4ADDR=0xff;
	GAL3ADDR=0xff;
    gal2data|=0x30;
	GAL2ADDR=gal2data;
	//擦除内部E2PROM
	for(yyy=0;yyy<7;yyy++)
	{
	    EEPROMwrite(yyy,0x00);
	}
	for(yyy=7;yyy<4096;yyy++)       
	    EEPROM_write(yyy,0xff);
		delay_nms(1);
	//擦外部E2PROM	
	yyy=0;
	for(j2=0;j2<1024;j2++)
	{
	    ehi=(uchar)(((yyy&0xff00)>>8)); //高
		elo=(uchar)(yyy&0x00ff);  //低
		erase_buff[0]= SLA2_W  ; 
		erase_buff[1]=ehi  ;
		erase_buff[2]=elo  ;
		for(j1=3; j1<35;j1++)
            erase_buff[j1] = 0xff;   //    初始化外部E2PROM
		EIMSK&=~(1<<INT6) ;	
		//do	
	       fhz=I2cWrite(erase_buff,35);
		//while(fhz==1);
		EIMSK|=(1<<INT6) ;
	    yyy=yyy+32 ;
		delay_nms(5);
		wdr();
	}
	//加一个恢复完成字样
		
}	

//实时时钟处理函数
void clock_deal(uchar temp)              //时钟处理函数
{ 
    uchar temp1=0;
   	uchar temp2=0;
   	fdbs(0x14);                 //放大两倍
   	//temp1=realtimebuff[temp]>>4;   //取年\月\日\时\分\秒的高四位
  	temp1=temp>>4; 
   	temp1=temp1+0x30;
   	xszf(0x31,temp1);                //显示
   	//temp2=realtimebuff[temp]&0x0f;  //取年\月\日\时\分\秒的低四位
   	temp2=temp&0x0f;  //取年\月\日\时\分\秒的低四位
   	temp2=temp2+0x30;
   	xszf(0x31,temp2);                //显示
}
//实时时钟显示函数
void clock_disp(void)
{
    wdr();
    xtzb(0xE1,0xdc,0x91,0x90);       //背景为黄色,字体为蓝色,覆盖显示
  	clock_deal(realtimebuff[0]); 
   	//显示年
	wdr();
  	xtzb(0xE1,0xee,0x91,0x90);
  	clock_deal(realtimebuff[1]);  //显示月
	wdr();
  	xtzb(0xE2,0x00,0x91,0x90);
  	clock

⌨️ 快捷键说明

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