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

📄 lcd.c.bak

📁 24位AD压力实验板 protell99se打开
💻 BAK
📖 第 1 页 / 共 2 页
字号:
                      {
			WriteData(DOWN, 18, Number4_6[num][0]);
			WriteData(DOWN, 19, Number4_6[num][1]);
                        } 
                      else 
                      {
                        WriteData(DOWN, 18, Number1_3[10][0]);
			WriteData(DOWN, 19, Number1_3[10][1]);                      
                      } 
			break;
		case 6:
                      if(flag_null==0x00)
                      {
			WriteData(DOWN, 16, Number4_6[num][0]);
			WriteData(DOWN, 17, Number4_6[num][1]);
                        } 
                      else 
                      {
                        WriteData(DOWN, 16, Number1_3[10][0]);
			WriteData(DOWN, 17, Number1_3[10][1]);                      
                      } 
			break;
		default:
			break;
	}
}
/******************************************************************
*函数描述:电流电压数值送显
*局部变量:Point:电流 电压值小数点; Value: 电流电压值
*返回变量:
******************************************************************/
void I_VDisplay(unsigned char Point, long Value)
{
	unsigned char DisplayData[7] = {0,0,0,0,0,0,0};
	
	DisplayData[0] = 0;   DisplayData[1] = 0;
	DisplayData[2] = 0;   DisplayData[3] = 0;
	DisplayData[4] = 0;   DisplayData[5] = 0;
	DisplayData[6] = 0;
	
	if(Value >= 0)
	{
		DisplayData[0] = 10;  // 正号
	}
	else
	{
		DisplayData[0] = 11;  // 负号
		Value = -Value;
	}
	
	DisplayData[1] = Value / 100000;
	Value %= 100000;
	DisplayData[2] = Value / 10000;
	Value %= 10000;
	DisplayData[3] = Value / 1000;
	Value %= 1000;
	DisplayData[4] = Value / 100;
	Value %= 100;
	DisplayData[5] = Value / 10;
	Value %= 10;
	DisplayData[6] = Value;
	
	if(DisplayData[0] == 10)
		WriteData(DOWN, 0, Number1_3[DisplayData[1]][0]);
	else
		WriteData(DOWN, 0, Number1_3[DisplayData[1]][0] | 0x08);

	WriteData(DOWN, 1, Number1_3[DisplayData[1]][1]);
	
	WriteData(DOWN, 3, Number1_3[DisplayData[2]][1]);
	WriteData(DOWN, 5, Number1_3[DisplayData[3]][1]);
	WriteData(DOWN, 20, Number4_6[DisplayData[4]][0]);
	WriteData(DOWN, 18, Number4_6[DisplayData[5]][0]);
	WriteData(DOWN, 16, Number4_6[DisplayData[6]][0]);

	switch(Point)
	{
		case 1:
			WriteData(DOWN, 2, Number1_3[DisplayData[2]][0] | 0x08);
			WriteData(DOWN, 4, Number1_3[DisplayData[3]][0]);
			WriteData(DOWN, 21, Number4_6[DisplayData[4]][1]);
			WriteData(DOWN, 19, Number4_6[DisplayData[5]][1]);
			WriteData(DOWN, 17, Number4_6[DisplayData[6]][1]);
			break;	
		case 2:
			WriteData(DOWN, 2, Number1_3[DisplayData[2]][0]);
			WriteData(DOWN, 4, Number1_3[DisplayData[3]][0] | 0x08);
			WriteData(DOWN, 21, Number4_6[DisplayData[4]][1]);
			WriteData(DOWN, 19, Number4_6[DisplayData[5]][1]);
			WriteData(DOWN, 17, Number4_6[DisplayData[6]][1]);
			break;	
		case 3:
			WriteData(DOWN, 2, Number1_3[DisplayData[2]][0]);
			WriteData(DOWN, 4, Number1_3[DisplayData[3]][0]);
			WriteData(DOWN, 21, Number4_6[DisplayData[4]][1] | 0x08);
			WriteData(DOWN, 19, Number4_6[DisplayData[5]][1]);
			WriteData(DOWN, 17, Number4_6[DisplayData[6]][1]);
			break;	
		case 4:
			WriteData(DOWN, 2, Number1_3[DisplayData[2]][0]);
			WriteData(DOWN, 4, Number1_3[DisplayData[3]][0]);
			WriteData(DOWN, 21, Number4_6[DisplayData[4]][1]);
			WriteData(DOWN, 19, Number4_6[DisplayData[5]][1] | 0x08);
			WriteData(DOWN, 17, Number4_6[DisplayData[6]][1]);
			break;	
		case 5:
			WriteData(DOWN, 2, Number1_3[DisplayData[2]][0]);
			WriteData(DOWN, 4, Number1_3[DisplayData[3]][0]);
			WriteData(DOWN, 21, Number4_6[DisplayData[4]][1]);
			WriteData(DOWN, 19, Number4_6[DisplayData[5]][1]);
			WriteData(DOWN, 17, Number4_6[DisplayData[6]][1] | 0x08);
			break;
		case 6:
			WriteData(DOWN, 2, Number1_3[DisplayData[2]][0]);
			WriteData(DOWN, 4, Number1_3[DisplayData[3]][0]);
			WriteData(DOWN, 21, Number4_6[DisplayData[4]][1]);
			WriteData(DOWN, 19, Number4_6[DisplayData[5]][1]);
			WriteData(DOWN, 17, Number4_6[DisplayData[6]][1]);
		default:
			break;	
	}
}
/******************************************************************
*函数描述:显示校准压力 电压 电流 
*局部变量:P_V_I  0:不显示
                 1:显示校准压力
                 2:显示校准电压
                 3:显示校准电流
*返回变量:
******************************************************************/
void CalibrateDisplay(unsigned char P_V_I)
{
	if(P_V_I == 0)
		WriteData(DOWN, 14, 0x00);			
	else if(P_V_I == 1)
		WriteData(DOWN, 14, 0x03);			
	else if(P_V_I == 2)
		WriteData(DOWN, 14, 0x05);		
	else if(P_V_I == 3)
		WriteData(DOWN, 14, 0x09);	
}
/******************************************************************
*函数描述:显示校准步骤 
*局部变量:number: 校准步数; step: 0:不显示校准步数 1:显示校准步数
*返回变量:
******************************************************************/
void CalibStepDisplay(unsigned char number, unsigned char step)
{
	unsigned char i = 0;
	
	i = number / 10;
	number -= i * 10;
	
	if(step == 0)
	{	
		WriteData(DOWN, 10, 0x00);
		WriteData(DOWN, 11, 0x00);
		WriteData(DOWN, 12, 0x00);
		WriteData(DOWN, 13, 0x00);	
	}
	else
	{
		WriteData(DOWN, 10, Number13_16[i][0]);
		WriteData(DOWN, 11, Number13_16[i][1]);
		WriteData(DOWN, 12, Number13_16[number][0]);
		WriteData(DOWN, 13, Number13_16[number][1]);
	}
}
/******************************************************************
*函数描述:压力数值送显,Value为KPA值或Pa
*局部变量:
*返回变量:
******************************************************************/
void PressureDisplay(unsigned char unit, unsigned char Point, float Value)
{
	float tmp = 0;
	
	if(ZeroFlag == 1)
	{
		Value -= SecondZero;
	}
	
	tmp = Value;
	if(tmp < 0)
	{
		tmp = -tmp;
	}
	
	if(P_RangeFlag == MPA)
	{
		// MPA模块一般小数点在第5位,默认是KPA显示
		// MMH2O,PA超出6位
		switch(unit)
		{
			case MPA:
				Point -= 3;
				break;
			case MMHG:
				Value *= 7.5006;
				break;
			case MBAR:
				Value *= 10;
				break;
			case BAR:
				Point -= 2;
				break;
			case PSI:
				Value *= 1.45038;
				--Point;
				break;
			case KGF:
				Value *= 1.019716;
				Point -= 2;
				break;
			default:
				break;
		}  // END SWITCH
	}
	else if(P_RangeFlag == KPA)
	{
		// KPA模块一般小数点在第4位,默认是KPA显示
		// MMH2O,PA超出6位
		switch(unit)
		{
			case MPA:
				Point -= 3;
				break;
			case MMHG:
				if(Value > 1330)  // 大于1330KPA,小数点右移一位
					++Point;
				Value *= 7.5006;
				break;
			case MBAR:
				Value *= 10;
				++Point;
				break;
			case BAR:
				Value *= 10;
				Point -= 2;
				break;
			case PSI:
				if(Value < 6894)
				{
					Value *= 14.50377;
					--Point;
				}
				else
				{
					Value *= 1.450377;
				}
				break;
			case KGF:
				Value *= 0.010197162;
				Point -= 2;
				break;
			default:
				break;
		}  // END SWITCH
	}
	else  // PA
	{
		if(Point == 4)  // 传进来的Point值已经+1
		{
			// PA模块小数点在第3位
			// MPA,KPA,BAR无显示
			switch(unit)
			{
				case MMHG:
					Value *= 75.006;
					Point -= 2;
					break;
				case MBAR:
					Value *= 0.01;
					break;
				case MMH2O:
					Value *= 0.10197162;
					Point -= 2;
					break;
				case PSI:
					Value *= 1.45;
					Point -= 2;
					break;
				case KGF:
					Value *= 0.1;
					Point -= 2;
					break;
				default:
					break;
			}
		}
	}
	
	if(Value >= 0)
	{
		DisplayData[0] = 10;  // 正号
	}
	else
	{
		DisplayData[0] = 11;  // 负号
		Value = -Value;
	}
	
	DisplayData[1] = Value / 100000;
	if(DisplayData[1] > 13)
	{
		Value = 1;
	}
	DisplayData[1] = Value / 100000;
	Value -= DisplayData[1] * 100000;
	DisplayData[2] = Value / 10000;
	Value -= (long)DisplayData[2]*10000;
	DisplayData[3] = Value / 1000;
	Value -= (long)DisplayData[3]*1000;
	DisplayData[4] = Value / 100;
	Value -= (long)DisplayData[4]*100;
	DisplayData[5] = Value / 10;
	Value -= (long)DisplayData[5]*10;
	DisplayData[6] = Value;
	
	if(unit == MMH2O)
	{
		if(DisplayData[0] == 10)
			WriteData(UP, 14, Number[DisplayData[0]][0] | 0x08);
		else
			WriteData(UP, 14, Number[DisplayData[0]][0] | 0x0C);	
	}
	else
	{
		if(DisplayData[0] == 10)
			WriteData(UP, 14, Number[DisplayData[0]][0]);
		else 
			WriteData(UP, 14, Number[DisplayData[0]][0] | 0x04);
	}
	
	WriteData(UP, 0, Number[DisplayData[1]][0]);
	WriteData(UP, 2, Number[DisplayData[2]][0]);
	WriteData(UP, 4, Number[DisplayData[3]][0]);
	WriteData(UP, 6, Number[DisplayData[4]][0]);
	WriteData(UP, 8, Number[DisplayData[5]][0]);
	WriteData(UP,10, Number[DisplayData[6]][0]);
	WriteData(UP,11, Number[DisplayData[6]][1]);
	
	switch(Point)
	{
		case 1:
			WriteData(UP, 1, Number[DisplayData[1]][1] | 0x01);
			WriteData(UP, 3, Number[DisplayData[2]][1]);
			WriteData(UP, 5, Number[DisplayData[3]][1]);
			WriteData(UP, 7, Number[DisplayData[4]][1]);
			WriteData(UP, 9, Number[DisplayData[5]][1]);
			break;
		case 2:
			WriteData(UP, 1, Number[DisplayData[1]][1]);
			WriteData(UP, 3, Number[DisplayData[2]][1] | 0x01);
			WriteData(UP, 5, Number[DisplayData[3]][1]);
			WriteData(UP, 7, Number[DisplayData[4]][1]);
			WriteData(UP, 9, Number[DisplayData[5]][1]);
			break;
		case 3:
			WriteData(UP, 1, Number[DisplayData[1]][1]);
			WriteData(UP, 3, Number[DisplayData[2]][1]);
			WriteData(UP, 5, Number[DisplayData[3]][1] | 0x01);
			WriteData(UP, 7, Number[DisplayData[4]][1]);
			WriteData(UP, 9, Number[DisplayData[5]][1]);
			break;
		case 4:
			WriteData(UP, 1, Number[DisplayData[1]][1]);
			WriteData(UP, 3, Number[DisplayData[2]][1]);
			WriteData(UP, 5, Number[DisplayData[3]][1]);
			WriteData(UP, 7, Number[DisplayData[4]][1] | 0x01);
			WriteData(UP, 9, Number[DisplayData[5]][1]);
			break;
		case 5:
			WriteData(UP, 1, Number[DisplayData[1]][1]);
			WriteData(UP, 3, Number[DisplayData[2]][1]);
			WriteData(UP, 5, Number[DisplayData[3]][1]);
			WriteData(UP, 7, Number[DisplayData[4]][1]);
			WriteData(UP, 9, Number[DisplayData[5]][1] | 0x01);
			break;
		case 6:
			WriteData(UP, 1, Number[DisplayData[1]][1]);
			WriteData(UP, 3, Number[DisplayData[2]][1]);
			WriteData(UP, 5, Number[DisplayData[3]][1]);
			WriteData(UP, 7, Number[DisplayData[4]][1]);
			WriteData(UP, 9, Number[DisplayData[5]][1]);  // 无小数点
			break;
		default:
			break;
	}
}
/******************************************************************
*函数描述:主函数
******************************************************************/
/*void main()
{
	
	WriteCommand(ALL, 0x00);   // 关闭振荡器关LCD显示进入静态模式
	WriteCommand(ALL, 0x02);   // 关LCD显示
	WriteCommand(ALL,  0x14);  // 外部振荡
	WriteCommand(ALL,  0x01);  // 开启系统振荡器
	ClearRAM(ALL);
	WriteCommand(ALL,  0x03);  // 开启LCD偏压发生器,开LCD显示
	WriteCommand(ALL,  0x29);
}
*/

⌨️ 快捷键说明

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