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

📄 play.#2

📁 该程序是基于c8051f的红外线发射率的测量程序
💻 #2
📖 第 1 页 / 共 5 页
字号:
		else
		{
			LCDDAT(temp[i][1]+0x30);
		}		
		temp[i][0]=GY[GYNUM].power[i]%10;
		LCDDAT(temp[i][0]+0x30);		
	}	
	LCDGBOC(1);//光标显示
	while(1)
	{	
		for(i=0;i<20;i++)
		{
newlly:     ZERO=0;
			while(KEY != 0xFF){}
			if(i<10)
			{
				LCDXY(5,4+i);//光标到(5,4+i)	
			}
			else
			{
				LCDXY(24,i-6);//光标到(24,i-6)	
			}
			for(j=10;j<11;j--)
			{
loop:
				switch(j)
				{
					case 10:{LCDFCOLOR(4);break;}//设置前景色为红色			
					case 6:{LCDFCOLOR(1);break;}//设置前景色为兰色
					case 2:{LCDFCOLOR(6);break;}//设置前景色为黄色
					default:{break;}
				}
				if(j!=8)
				{
					while((KEY <'0' || KEY >'9') && (KEY != 'S') && (KEY != 'C') && (KEY != 'R') && (KEY != 'L') && (KEY != 'U') && (KEY != 'D')){}
					key=KEY;
					switch(key)
					{
						case '0':
						case '1':
						case '2':
						case '3':
						case '4':
						case '5':
						case '6':
						case '7':
						case '8':
						case '9':
								{								
									temp[i][j]=(key-0x30);
									if((j>=4 && j<=6) || (j>=1 && j<=2))
									{
										if(j==2)
										{
											ZERO=0;
										}										
										if(ZERO==0 && temp[i][j]==0)
										{
											LCDDAT(' ');
										}
										else
										{
											ZERO=1;
											LCDDAT(key);
										}	
									}									
									else
									{
										LCDDAT(key);										
									}																										
									break;
								}
						case 'R':
								{								
									if(temp[i][j] != 0)
									{
										if(j==6 || j==2)
										{
											ZERO=1;
										}										
									}
									else
									{
										if(j==6 || j==2)
										{
											ZERO=0;
										}
									}
									LCDRSFT(1);
									break;
								}
						case 'L':{goto newlly;break;}
						case 'U':
								 {
								 	if(i>0)									
									{
										i--;																			
									}
									goto newlly;
									break;									
								 }
						case 'D':
								 {
								 	if(i<19)									
									{
										i++;																			
									}
									goto newlly;										
									break;								
								 }
						case 'S':{goto ack;break;}
						case 'C':{goto cancel;break;}
						default: {goto loop;break;}
					}
				}
				else
				{
					while((KEY <'0' || KEY >'5') && (KEY != 'S') && (KEY != 'C') && (KEY != 'R') && (KEY != 'L') && (KEY != 'U') && (KEY != 'D')){}
					key=KEY;
					switch(key)
					{
						case '0':
						case '1':
						case '2':
						case '3':
						case '4':
						case '5':{LCDDAT(key);temp[i][j]=(key-0x30);break;}
						case 'R':{LCDRSFT(1);break;}
						case 'L':{goto newlly;break;}
						case 'U':
								 {
								 	if(i>0)									
									{
										i--;																			
									}
									goto newlly;										
									break;
								 }
						case 'D':
								 {
								 	if(i<19)									
									{
										i++;																			
									}
									goto newlly;										
									break;									
								 }
						case 'S':{goto ack;break;}
						case 'C':{goto cancel;break;}
						default: {goto loop;break;}
					}
				}
				switch(j)
				{
					case 9:
					case 7:
					case 3:{LCDRSFT(1);break;}//右移一个字符
					default:{break;}
				}
				while(KEY != 0xFF){}
			}
		}
	}
ack:
	while(KEY != 0xFF){}
	for(i=0,k=0;i<20;i++)
	{
		GY[0].time[i]=temp[i][10]*600+temp[i][9]*60+temp[i][8]*10+temp[i][7];
		if(i!=0 && GY[0].time[i] == 0)
		{
			k=i;
			break;
		}
		GY[0].temperature[i]=temp[i][6]*1000+temp[i][5]*100+temp[i][4]*10+temp[i][3];
		GY[0].power[i]=temp[i][2]*100+temp[i][1]*10+temp[i][0];
	}
	for(i=0,j=0;i<k;i++)
	{
		if((GY[0].temperature[i] > TEMPRATURE_hi) || (GY[0].temperature[i] < TEMPRATURE_lo) || 
		   (GY[0].power[i] > POWER_hi) || (GY[0].power[i] < POWER_lo))
		{j++;}
	}
	if((j!=0) || (GY[0].time[0]!=0))
	{
		LCDGBOC(0);//光标关闭
		goto again;
	}
	for(i=0;i<k;i++)
	{
		GY[GYNUM].time[i]=GY[0].time[i];
		GY[GYNUM].temperature[i]=GY[0].temperature[i];
		GY[GYNUM].power[i]=GY[0].power[i];
	}
	for(i=k;i<20;i++)
	{
		GY[GYNUM].power[i]=0;
		GY[GYNUM].time[i]=0;
		GY[GYNUM].temperature[i]=0;	
	}	
	LCDSHOW(PARAUPLOAD);
	while(KEY != 'S' && KEY != 'C'){}
	key=KEY;
	while(KEY != 0xFF){}
	if(key=='S')
	{
		LCDSHOW(LOADINPARA);
		address=(GYNUM-1)*100;
		for(i=0;i<20;i++)
		{
			addr=address+i*5;		
loop1:
			start();
			transmitbyte(0xA0);
			if(cack())
			{
				goto loop1;
			}
			transmitbyte(addr/256);
			if(cack())
			{
				goto loop1;
			}
			transmitbyte(addr%256);
			if(cack())
			{
				goto loop1;
			}
			transmitbyte(GY[GYNUM].power[i]);
			if(cack())
			{
				goto loop1;
			}
			stop();
loop2:
			start();
			transmitbyte(0xA0);
			if(cack())
			{
				goto loop2;
			}
			transmitbyte((addr+1)/256);
			if(cack())
			{
				goto loop2;
			}
			transmitbyte((addr+1)%256);
			if(cack())
			{
				goto loop2;
			}
			transmitbyte(GY[GYNUM].time[i]/256);
			if(cack())
			{
				goto loop2;
			}
			stop();
loop3:
			start();
			transmitbyte(0xA0);
			if(cack())
			{
				goto loop3;
			}
			transmitbyte((addr+2)/256);
			if(cack())
			{
				goto loop3;
			}
			transmitbyte((addr+2)%256);
			if(cack())
			{
				goto loop3;
			}
			transmitbyte(GY[GYNUM].time[i]%256);
			if(cack())
			{
				goto loop3;
			}
			stop();
loop4:
			start();
			transmitbyte(0xA0);
			if(cack())
			{
				goto loop4;
			}
			transmitbyte((addr+3)/256);
			if(cack())
			{
				goto loop4;
			}
			transmitbyte((addr+3)%256);
			if(cack())
			{
				goto loop4;
			}
			transmitbyte(GY[GYNUM].temperature[i]/256);
			if(cack())
			{
				goto loop4;
			}
			stop();	
loop5:
			start();
			transmitbyte(0xA0);
			if(cack())
			{
				goto loop5;
			}
			transmitbyte((addr+4)/256);
			if(cack())
			{
				goto loop5;
			}
			transmitbyte((addr+4)%256);
			if(cack())
			{
				goto loop5;
			}
			transmitbyte(GY[GYNUM].temperature[i]%256);
			if(cack())
			{
				goto loop5;
			}
			stop();	
		}
	}	
cancel:
	LCDSHOW(MENUSELECT);//菜单选择画面
}
//***********************
void setsenpara()//设置传感器参数
{
	uchar i,j;
	bit ZERO=0;
	uchar key;
	uint tempratureh;
	uint tempraturel;
	uint  powerh;
	uint  powerl;
	uchar tempdat[2][4];
	uchar powerdat[2][3];
	LCDSHOW(SENPARASET);
	LCDASIIC();//西文方式
	LCDGBCOLOR(7,0);//光标前景色为白色光标背景色为黑色
	LCDOVERLAP(1);//覆盖方式
again:
	ZERO=0;
	LCDFCOLOR(4);//设置前景色为红色
	LCDXY(23,7);//光标到(23,7)	
	tempdat[0][3]=TEMPRATURE_lo/1000;
	if(ZERO==0 && tempdat[0][3]==0)
	{
		LCDDAT(' ');
	}
	else
	{
		ZERO=1;
		LCDDAT(tempdat[0][3]+0x30);
	}	
	tempdat[0][2]=TEMPRATURE_lo/100%10;
	if(ZERO==0 && tempdat[0][2]==0)
	{
		LCDDAT(' ');
	}
	else
	{
		ZERO=1;
		LCDDAT(tempdat[0][2]+0x30);
	}
	tempdat[0][1]=TEMPRATURE_lo%100/10;
	if(ZERO==0 && tempdat[0][1]==0)
	{
		LCDDAT(' ');
	}
	else
	{
		LCDDAT(tempdat[0][1]+0x30);
	}
	tempdat[0][0]=TEMPRATURE_lo%10;	
	LCDDAT(tempdat[0][0]+0x30);
	ZERO=0;
	LCDXY(31,7);//光标到(31,7)
	tempdat[1][3]=TEMPRATURE_hi/1000;
	if(ZERO==0 && tempdat[1][3]==0)
	{
		LCDDAT(' ');
	}
	else
	{
		ZERO=1;
		LCDDAT(tempdat[1][3]+0x30);
	}
	tempdat[1][2]=TEMPRATURE_hi/100%10;
	if(ZERO==0 && tempdat[1][2]==0)
	{
		LCDDAT(' ');
	}
	else
	{
		ZERO=1;
		LCDDAT(tempdat[1][2]+0x30);
	}
	tempdat[1][1]=TEMPRATURE_hi%100/10;
	if(ZERO==0 && tempdat[1][1]==0)
	{
		LCDDAT(' ');
	}
	else
	{
		LCDDAT(tempdat[1][1]+0x30);
	}
	tempdat[1][0]=TEMPRATURE_hi%10;
	LCDDAT(tempdat[1][0]+0x30);
	ZERO=0;
	LCDFCOLOR(7);//设置前景色为白色
	LCDXY(24,10);//光标到(24,10)
	powerdat[0][2]=POWER_lo/100;
	if(ZERO==0 && powerdat[0][2]==0)
	{
		LCDDAT(' ');
	}
	else
	{
		ZERO=1;
		LCDDAT(powerdat[0][2]+0x30);
	}	
	powerdat[0][1]=POWER_lo/10%10;
	if(ZERO==0 && powerdat[0][1]==0)
	{
		LCDDAT(' ');
	}
	else
	{
		LCDDAT(powerdat[0][1]+0x30);
	}	
	powerdat[0][0]=POWER_lo%10;
	LCDDAT(powerdat[0][0]+0x30);
	ZERO=0;
	LCDXY(32,10);//光标到(32,10)
	powerdat[1][2]=POWER_hi/100;
	if(ZERO==0 && powerdat[1][2]==0)
	{
		LCDDAT(' ');
	}
	else
	{
		ZERO=1;
		LCDDAT(powerdat[1][2]+0x30);
	}	
	powerdat[1][1]=POWER_hi/10%10;
	if(ZERO==0 && powerdat[1][1]==0)
	{
		LCDDAT(' ');
	}
	else
	{
		LCDDAT(powerdat[1][1]+0x30);
	}	
	powerdat[1][0]=POWER_hi%10;
	LCDDAT(powerdat[1][0]+0x30);			
	LCDGBOC(1);//光标显示
	//数据输入
	while(1)
	{		
		for(i=0;i<2;i++)
		{
newlly1:	ZERO=0;
			while(KEY != 0xFF){}
			LCDFCOLOR(4);//设置前景色为红色	
			LCDXY(23+i*8,7);
			for(j=3;j<4;j--)
			{
loop1:
				while((KEY <'0' || KEY >'9') && (KEY != 'S') && (KEY != 'C') && (KEY != 'R') && (KEY != 'L') && (KEY != 'U') && (KEY != 'D')){}
				key=KEY;
				switch(key)
				{
					case '0':
					case '1':
					case '2':
					case '3':
					case '4':
					case '5':
					case '6':
					case '7':
					case '8':
					case '9':
							{
								tempdat[i][j]=(key-0x30);
								if(j>=1)
								{
									if(ZERO==0 && tempdat[i][j]==0)
									{
										LCDDAT(' ');
									}
									else
									{
										ZERO=1;
										LCDDAT(key);
									}
								}
								else
								{
									LCDDAT(key);
								}								
								break;
							}
					case 'R':
							{
								if(tempdat[i][j] != 0)
								{
									ZERO=1;
								}
								LCDRSFT(1);
								break;
							}
					case 'L':{goto newlly1;break;}
					case 'U':
					         {
							 	if(i>0)
								{
									i--;																		
								}
								goto newlly1;
								break;							
							 }
					case 'D':
					         {
							 	if(i>0)
								{
									i=0;
									goto newlly2;
								}
								else
								{
									i++;
									goto newlly1;									
								}
								break;								
							 }
					case 'S':{goto ack;break;}
					case 'C':{goto cancel;break;}
					default: {goto loop1;break;}
				}
				while(KEY != 0xFF){}
			}
		}
		//	
		for(i=0;i<2;i++)
		{
newlly2:	ZERO=0;
			while(KEY != 0xFF){}
			LCDFCOLOR(7);//设置前景色为白色	
			LCDXY(24+i*8,10);
			for(j=2;j<3;j--)
			{
loop2:
				while((KEY <'0' || KEY >'9') && (KEY != 'S') && (KEY != 'C') && (KEY != 'R') && (KEY != 'L') && (KEY != 'U') && (KEY != 'D')){}
				key=KEY;
				switch(key)
				{
					case '0':
					case '1':
					case '2':
					case '3':
					case '4':
					case '5':
					case '6':
					case '7':
					case '8':
					case '9':
							{
								powerdat[i][j]=(key-0x30);
								if(j>=1)
								{
									if(ZERO==0 && powerdat[i][j]==0)
									{
										LCDDAT(' ');
									}
									else
									{
										ZERO=1;
										LCDDAT(key);
									}
								}
								else
								{
									LCDDAT(key);
								}								
								break;
							}
					case 'R':
							{

⌨️ 快捷键说明

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