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

📄 newmain.c

📁 这是运用c51单片机测试电压电流的完整工程项目文件
💻 C
📖 第 1 页 / 共 4 页
字号:
		dxz(0,168,hour1,0);
		dxz(0,174,11,0);
		dxz(0,180,minute10,0);
		dxz(0,186,minute1,0);
}

//读键值
uchar namekey(void)
{
 uchar   SW;
 uchar   KK ;
 bit flag;

 flag=IRcvByte(0x70,&SW);//读pcf8574数据

 if ( (SW&0xff)!=0xff)   //如果无键按下,则返回键值0
           {
              delay1ms (10) ;     //按键延时10ms
              flag=IRcvByte(0x70,&SW);//读pcf8574数据

              if ( (SW&0xff)!=0xff)     //如果判断无键,则为误抖动,返回0
	                       {
			                          KK = SW;
			                          do( flag=IRcvByte(0x70,&SW));//读pcf8574数据
                                     while ( (SW&0xff)!=0xff);   //等键释放
			                          KK = KK & 0xff ;
			                          switch(KK)
			                            {
											case  0xfe:return(1);break;  //上
											case  0xfd:return(2);break;  //下
											case  0xfb:return(3);break; //右
											case  0xf7:return(4);break;  //返回
											case  0xef:return(5);break;  //存储
											case  0xdf:return(6);break;  //打印
											case  0xbf:return(7);break; //确定

			                            }

	                       }
            }
     return (0);
}


 //第一屏,产品厂家信息
void diyiping()
{
		dh(0,52,0,0);
		dh(0,76,1,0);
		dh(0,100,2,0);
		dh(0,124,3,0);
		dh(3,24,4,0);
		dh(3,40,5,0);
		dh(3,56,6,0);
		dh(3,72,7,0);
		dh(3,88,8,0);
		dh(3,104,9,0);
		dh(3,120,10,0);
		dh(3,136,11,0);
		dh(3,152,12,0);
		dh(6,8,13,0);
		dh(6,24,14,0);
		dh(6,40,15,0);
		dh(6,56,16,0);
		dh(6,72,17,0);
		dh(6,88,18,0);
		dh(6,104,19,0);
		dh(6,120,20,0);
		dh(6,136,21,0);
		dh(6,152,22,0);
		dh(6,168,23,0);
}



void disanping()                //测试界面
{

	  battery();          //显示电池电量
	  time();           //显示实时时间

		dh(0,0,33,0);               //正在测试中:
		dh(0,16,34,0);
		dh(0,32,10,0);
		dh(0,48,11,0);
		dh(0,64,35,0);
		df(0,80,24,0);
		//dh(0,80,36,0);

		df(3,58,25,0);              //U=XX.XKV
		df(3,70,26,0);              //=
		df(3,118,27,0);             //K
		df(3,126,28,0);             //V

		df(3,82,TmpBuf[0],0);  //26.8
		df(3,90,TmpBuf[1],0);
		df(3,98,22,0);
		df(3,106,TmpBuf[2],0);


		df(6,58,29,0);              //I=XXXuA
		df(6,70,26,0);              //=
		df(6,118,30,0);             //u
		df(6,126,31,0);             //A

		df(6,82,TmpBuf[3],0);  //1999
		df(6,90,TmpBuf[4],0);
		df(6,98,TmpBuf[5],0);
		df(6,106,TmpBuf[6],0);


}

void disiping()   //测试结果
{
	  battery();          //显示电池电量
	  time();           //显示实时时间

		dh(0,0,10,0);               //测试结果:
		dh(0,16,11,0);
		dh(0,32,37,0);
		dh(0,48,38,0);
		df(0,64,24,0);



		df(3,46,25,0);              //U1mA=XX.XKV
		dxz(4,54,12,0);
		dxz(4,62,13,0);
		dxz(4,70,14,0);
		df(3,82,26,0);
		df(3,130,27,0);
		df(3,138,28,0);

		df(3,94,TmpBuf[0],0);  //26.8
		df(3,102,TmpBuf[1],0);
		df(3,110,22,0);
		df(3,118,TmpBuf[2],0);


		df(6,46,29,0);              //I,I0.75U=XXXuA
		dxz(7,52,15,0);             //0.
		dxz(7,60,16,0);             //7
		dxz(7,66,17,0);             //5
		dxz(7,72,18,0);             //U
		df(6,82,26,0);             //=
		df(6,130,30,0);             //u
		df(6,138,31,0);             //A

		df(6,94, TmpBuf[3],0);  //1999
		df(6,102,TmpBuf[4],0);
		df(6,110,TmpBuf[5],0);
		df(6,118,TmpBuf[6],0);
}

void Dis_history()//历史查询界面
{
	  lcd_init() ; //清屏
	  dh(0,52,24,0);               //历史数据
		dh(0,68,32,0);
		dh(0,76,25,0);
		dh(0,92,32,0);
		dh(0,100,26,0);
		dh(0,116,32,0);
		dh(0,124,27,0);

	//显示8*8点阵数字1. U=27.5KV I=25μA 17:25
		dxz(2,0,1,0);    //1
		dxz(2,8,19,0);//.
	//	dxz(2,16,20,0);//空格
		dxz(2,16,18,0);//U
		dxz(2,24,21,0);//=
		dxz(2,32,2,0);//2
		dxz(2,40,7,0);//7
		dxz(2,48,19,0);//.
		dxz(2,56,5,0);//5
		dxz(2,62,22,0);//K
		dxz(2,70,23,0);//V
		dxz(2,78,20,0);//空格
		dxz(2,86,24,0);//I
		dxz(2,94,21,0);//=
		dxz(2,102,2,0);//2
		dxz(2,110,5,0);//5
		dxz(2,118,25,0);//u
		dxz(2,126,14,0);//A
		dxz(2,132,20,0);//空格
		dxz(2,140,20,0);//空格
		dxz(2,148,1,0);//1
		dxz(2,156,7,0);//7
		dxz(2,164,11,0);//:
		dxz(2,172,2,0);//2
		dxz(2,180,5,0);//5

		//显示8*8点阵数字1. U=27.5KV I=25μA 17:25
		dxz(3,0,2,0);    //1
		dxz(3,8,19,0);//.
	//	dxz(2,16,20,0);//空格
		dxz(3,16,18,0);//U
		dxz(3,24,21,0);//=
		dxz(3,32,2,0);//2
		dxz(3,40,7,0);//7
		dxz(3,48,19,0);//.
		dxz(3,56,5,0);//5
		dxz(3,62,22,0);//K
		dxz(3,70,23,0);//V
		dxz(3,78,20,0);//空格
		dxz(3,86,24,0);//I
		dxz(3,94,21,0);//=
		dxz(3,102,2,0);//2
		dxz(3,110,5,0);//5
		dxz(3,118,25,0);//u
		dxz(3,126,14,0);//A
		dxz(3,132,20,0);//空格
		dxz(3,140,20,0);//空格
		dxz(3,148,1,0);//1
		dxz(3,156,7,0);//7
		dxz(3,164,11,0);//:
		dxz(3,172,2,0);//2
		dxz(3,180,5,0);//5

		//显示8*8点阵数字1. U=27.5KV I=25μA 17:25
		dxz(4,0,3,0);    //1
		dxz(4,8,19,0);//.
	//	dxz(2,16,20,0);//空格
		dxz(4,16,18,0);//U
		dxz(4,24,21,0);//=
		dxz(4,32,2,0);//2
		dxz(4,40,7,0);//7
		dxz(4,48,19,0);//.
		dxz(4,56,5,0);//5
		dxz(4,62,22,0);//K
		dxz(4,70,23,0);//V
		dxz(4,78,20,0);//空格
		dxz(4,86,24,0);//I
		dxz(4,94,21,0);//=
		dxz(4,102,2,0);//2
		dxz(4,110,5,0);//5
		dxz(4,118,25,0);//u
		dxz(4,126,14,0);//A
		dxz(4,132,20,0);//空格
		dxz(4,140,20,0);//空格
		dxz(4,148,1,0);//1
		dxz(4,156,7,0);//7
		dxz(4,164,11,0);//:
		dxz(4,172,2,0);//2
		dxz(4,180,5,0);//5

		//显示8*8点阵数字1. U=27.5KV I=25μA 17:25
		dxz(5,0,4,0);    //1
		dxz(5,8,19,0);//.
	//	dxz(2,16,20,0);//空格
		dxz(5,16,18,0);//U
		dxz(5,24,21,0);//=
		dxz(5,32,2,0);//2
		dxz(5,40,7,0);//7
		dxz(5,48,19,0);//.
		dxz(5,56,5,0);//5
		dxz(5,62,22,0);//K
		dxz(5,70,23,0);//V
		dxz(5,78,20,0);//空格
		dxz(5,86,24,0);//I
		dxz(5,94,21,0);//=
		dxz(5,102,2,0);//2
		dxz(5,110,5,0);//5
		dxz(5,118,25,0);//u
		dxz(5,126,14,0);//A
		dxz(5,132,20,0);//空格
		dxz(5,140,20,0);//空格
		dxz(5,148,1,0);//1
		dxz(5,156,7,0);//7
		dxz(5,164,11,0);//:
		dxz(5,172,2,0);//2
		dxz(5,180,5,0);//5

		//显示8*8点阵数字1. U=27.5KV I=25μA 17:25
		dxz(6,0,5,0);    //1
		dxz(6,8,19,0);//.
	//	dxz(2,16,20,0);//空格
		dxz(6,16,18,0);//U
		dxz(6,24,21,0);//=
		dxz(6,32,2,0);//2
		dxz(6,40,7,0);//7
		dxz(6,48,19,0);//.
		dxz(6,56,5,0);//5
		dxz(6,62,22,0);//K
		dxz(6,70,23,0);//V
		dxz(6,78,20,0);//空格
		dxz(6,86,24,0);//I
		dxz(6,94,21,0);//=
		dxz(6,102,2,0);//2
		dxz(6,110,5,0);//5
		dxz(6,118,25,0);//u
		dxz(6,126,14,0);//A
		dxz(6,132,20,0);//空格
		dxz(6,140,20,0);//空格
		dxz(6,148,1,0);//1
		dxz(6,156,7,0);//7
		dxz(6,164,11,0);//:
		dxz(6,172,2,0);//2
		dxz(6,180,5,0);//5

		//显示8*8点阵数字1. U=27.5KV I=25μA 17:25
		dxz(7,0,6,0);    //1
		dxz(7,8,19,0);//.
	//	dxz(2,16,20,0);//空格
		dxz(7,16,18,0);//U
		dxz(7,24,21,0);//=
		dxz(7,32,2,0);//2
		dxz(7,40,7,0);//7
		dxz(7,48,19,0);//.
		dxz(7,56,5,0);//5
		dxz(7,62,22,0);//K
		dxz(7,70,23,0);//V
		dxz(7,78,20,0);//空格
		dxz(7,86,24,0);//I
		dxz(7,94,21,0);//=
		dxz(7,102,2,0);//2
		dxz(7,110,5,0);//5
		dxz(7,118,25,0);//u
		dxz(7,126,14,0);//A
		dxz(7,132,20,0);//空格
		dxz(7,140,20,0);//空格
		dxz(7,148,1,0);//1
		dxz(7,156,7,0);//7
		dxz(7,164,11,0);//:
		dxz(7,172,2,0);//2
		dxz(7,180,5,0);//5

}

//显示设定前初始值
void disset()
{
	    df(4,16,year10,1);          //设置年、月、日、时、分
		df(4,24,year1,0);
		dh(4,32,39,0);
		df(4,48,month10,0);
		df(4,56,month1,0);
		dh(4,64,40,0);
		df(4,80,day10,0);
		df(4,88,day1,0);
		dh(4,96,41,0);
		df(4,112,hour10,0);
		df(4,120,hour1,0);
		dh(4,128,42,0);
		df(4,144,minute10,0);
		df(4,152,minute1,0);
		dh(4,160,43,0);
}

void Dis_settime()//时钟设置显示
{
	  lcd_init() ; //清屏
	    dh(0,52,28,0);              //显示"时 钟 设 置"标题
		dh(0,68,32,0);
		dh(0,76,29,0);
		dh(0,92,32,0);
		dh(0,100,30,0);
		dh(0,116,32,0);
		dh(0,124,31,0);
		disset();     //显示设定前初始值

}








//主菜单上下键处理程序
void program_1()
{
	lcd_init() ; //清屏
	battery();          //显示电池电量
	time();           //显示实时时间

	if ( KeyCount	==	0 )
	{
		          //反白显示,测试
		dh(2,52,10,1);
		dh(2,68,32,1);
		dh(2,84,32,1);
		dh(2,100,32,1);
		dh(2,108,32,1);
		dh(2,124,11,1);

		dh(4,52,24,0);               //历史数据
		dh(4,68,32,0);
		dh(4,76,25,0);
		dh(4,92,32,0);
		dh(4,100,26,0);
		dh(4,116,32,0);
		dh(4,124,27,0);

		dh(6,52,28,0);              //时钟设置
		dh(6,68,32,0);
		dh(6,76,29,0);
		dh(6,92,32,0);
		dh(6,100,30,0);
		dh(6,116,32,0);
		dh(6,124,31,0);
	}
	if ( KeyCount	==	1 )
	{
		dh(4,52,24,1);               //反显历史数据
		dh(4,68,32,1);
		dh(4,76,25,1);
		dh(4,92,32,1);
		dh(4,100,26,1);
		dh(4,116,32,1);
		dh(4,124,27,1);
		                               // 测试
		dh(2,52,10,0);
		dh(2,68,32,0);
		dh(2,84,32,0);
		dh(2,100,32,0);
		dh(2,108,32,0);
		dh(2,124,11,0);

		dh(6,52,28,0);              //时钟设置
		dh(6,68,32,0);
		dh(6,76,29,0);
		dh(6,92,32,0);
		dh(6,100,30,0);
		dh(6,116,32,0);
		dh(6,124,31,0);
	}
	if ( KeyCount	==	2 )
	{
		dh(6,52,28,1);              //反显时钟设置
		dh(6,68,32,1);
		dh(6,76,29,1);
		dh(6,92,32,1);
		dh(6,100,30,1);
		dh(6,116,32,1);
		dh(6,124,31,1);

		dh(4,52,24,0);               //历史数据
		dh(4,68,32,0);
		dh(4,76,25,0);
		dh(4,92,32,0);
		dh(4,100,26,0);
		dh(4,116,32,0);
		dh(4,124,27,0);
		                               // 测试
		dh(2,52,10,0);
		dh(2,68,32,0);
		dh(2,84,32,0);
		dh(2,100,32,0);
		dh(2,108,32,0);
		dh(2,124,11,0);
	}

}
//试品异常处理程序
void shipin_error()
{
	lcd_init();
	dh(4,60,11,0);
	dh(4,76,48,0);
	dh(4,76,49,0);
	dh(4,76,50,0);
	df(4,76,32,0);


}
void shipin_error_dispose()
{
	shipin_error();
	daCount = 0;
	tlc5615(daCount);
	if ( namekey() == 4)
		dierping();
}
//测试过程界面
void test()
{
	uchar key = 0;
	lcd_init() ; //清屏
	//升压
	if ( !daFlag )	 //小于1mA判断
	{
		while(  daCount < 1024  )
		if ( read2543(1) < 2048 )
		{
			daCount = daCount + 16;
			tlc5615(daCount);              //全速升压
			delay1ms(10);
		    Shipin_UI_dispose();
			disanping();
		}
		else
		{
			daCount = daCount + 8;
			tlc5615(daCount);               //半速升压
			delay1ms(10);
			Shipin_UI_dispose();
			disanping();
		}
		if(daCount >= 1024)
			shipin_error_dispose();          //电压到30KV 电流未达1MA 处理程序
}


	delay1ms(255);
 	delay1ms(255);
 	delay1ms(255);
 	delay1ms(255);
 	lcd_init() ; //清屏
 	disiping();   //测试结果
 	do                              //等待返回键被按下
 	{key=namekey();}
 	while(key!=4);

 	program_1();
}

//历史查询界面
void history()
{
	uchar key = 0;
	lcd_init() ; //清屏
	Dis_history();//进入历史查询界面
	do                              //等待返回键被按下
 	{key=namekey();}
 	while(key!=4);

 	program_1();
}

⌨️ 快捷键说明

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