📄 main.c
字号:
LCD_Cursor_Addr++;
if(LCD_Cursor_Addr>=LCD_NUM) LCD_Cursor_Addr=0;
key_data=0;
}
break;
case 0x04:
{
if(LCD_Cursor_Addr!=0x00)
{
LCD_Key_bar[LCD_Cursor_Addr]++;
if(LCD_Key_bar[LCD_Cursor_Addr]>=10) LCD_Key_bar[LCD_Cursor_Addr]=0;
}
else
{
if(LCD_Key_bar[0]=='+')
LCD_Key_bar[0]='-';
else
{ if(LCD_Key_bar[0]=='-')
LCD_Key_bar[0]='+';
else
LCD_Key_bar[0]='-';
}
}
key_data=0;
}
break;
case 0x02:
{
flag=1;
key_data=0;
}
break;
case 0x20:
{
unit++;
if(unit>9) unit=0x00;
DisplayUnit(unit);
key_data=0;
}
break;
}
Data_LCD_Display(LCD_Cursor_Addr,LCD_Key_bar,5);
}
}
data=(float)(LCD_Key_bar[1]*1000+LCD_Key_bar[2]*100+LCD_Key_bar[3]*10+LCD_Key_bar[4]);
data=data+((float)LCD_Key_bar[5]/10);
data=Other_unit_to_KPa(unit,data);
if(LCD_Key_bar[0]=='-')
data=0-data;
return data;
}
//========================================================================================
//函数:void Password_LCD_Display(unsigned char Cursor_Addr, unsigned char *LCD_data)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
//闪烁显示函数
void Password_LCD_Display(unsigned char Cursor_Addr, unsigned char *LCD_data)
{
unsigned char i;
for(i=0;i<LCD_NUM;i++)
{
if(i==LCD_Cursor_Addr)
{DisplayNum((Cursor_Addr+7),LCD_data[Cursor_Addr],0,0);}
else
{DisplayNum((i+7),LCD_data[i],0,0);}
}
Delay_1ms(200);
for(i=0;i<LCD_NUM;i++)
{
if(i==LCD_Cursor_Addr)
{DisplayNum((Cursor_Addr+7),LCD_data[Cursor_Addr],0,1);}
else{DisplayNum((i+7),LCD_data[i],0,0);}
}
Delay_1ms(200);
}
//========================================================================================
//函数:void Password_LCD_Display(unsigned char Cursor_Addr, unsigned char *LCD_data)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
//闪烁显示函数
void Data_LCD_Display(unsigned char Cursor_Addr, unsigned char *LCD_data,unsigned char radixPoint)
{
unsigned char i;
for(i=0;i<LCD_NUM;i++)
{
if(i==LCD_Cursor_Addr)
{
if(LCD_Cursor_Addr==0x00)
{
if(LCD_Key_bar[0]=='-')sign_Display(1);
else DisplayNum(7,0,0,0);
}
else
{
if(i==4) DisplayNum((Cursor_Addr+7),LCD_data[Cursor_Addr],1,0);
else DisplayNum((Cursor_Addr+7),LCD_data[Cursor_Addr],0,0);
}
}
else
{
if(i==0x00)
{
if(LCD_Key_bar[0]=='-')sign_Display(1);
else DisplayNum(7,0,0,0);
}
else
{
if(i==4) DisplayNum((i+7),LCD_data[i],1,0);
else DisplayNum((i+7),LCD_data[i],0,0);
}
}
}
Delay_1ms(200);
for(i=0;i<LCD_NUM;i++)
{
if(i==LCD_Cursor_Addr)
{
if(i==4) DisplayNum((Cursor_Addr+7),LCD_data[Cursor_Addr],1,1);
else DisplayNum((Cursor_Addr+7),LCD_data[Cursor_Addr],0,1);
}
else
{
if(i==0x00)
{
if(LCD_Key_bar[0]=='-')sign_Display(1);
else DisplayNum(7,0,0,0);
}
else
{
if(i==4) DisplayNum((i+7),LCD_data[i],1,0);
else DisplayNum((i+7),LCD_data[i],0,0);
}
}
}
Delay_1ms(200);
}
//========================================================================================
//函数:void mode_check(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Mode_Check(void)
{
unsigned char i;
switch(key_data)
{
case 0x01://背光
{
Task_Mode=2;
key_data=0;
P2OUT &= ~BIT6;// 背光打开
Back_Light_Task_Start=1;
Back_Light_Time_num=0;
KeyDown_flag=0;
}
break;
case 0x02://校正
{
Task_Mode=1;
key_data=0;
WDTCTL=WDTPW+WDTHOLD; //Stop WDT
Dis_AD_DRDY_INT(); //关中断
Close_AD_Power();//关AD电源
LCD_Cursor_Addr=0;
for(i=0;i<6;i++)
LCD_Key_bar[i]=0;
Password_ok_flag=0;
}
break;
case 0x04://清零
{
//Task_Mode=3;
Reset_AD_Data=ad12401;
key_data=0;
}
break;
case 0x20://单位
{
Unitage=Unitage+1;
if(Unitage>9)Unitage=0;
//Task_Mode=4;
// Task_Mode=4;
// key_data=0;
// P2DIR |= BIT5;//
//P2OUT &= ~BIT5;// 0x7e;
//back_light_flag=1;
// back_light_num=0;
key_data=0;
}
break;
default: break;
}
}
//========================================================================================
//函数:float Other_unit_to_KPa(unsigned char unit,float data)
//功能:把压力其他单位数值转换为KPA单位数值
//变量:unsigned char unit,float data
//返回:float
//========================================================================================
float Other_unit_to_KPa(unsigned char unit,float data)
{
switch(unit)
{
case PA:
data =data/1000; //
break;
case MPA:
data =data*1000; //
break;
case BAR:
data =data/100;
break;
case MBAR:
data =data*10;
break;
case KGF:
data =data/100;
data =data*1.0197162;
break;
case MMHG:
data =data*7.5006;
break;
case MMH2O:
data =data*101.97162;
break;
case PSI:
data =data*0.1450377;
break;
default:
break;
}
return data;
}
//========================================================================================
//函数:float Other_unit_to_KPa(unsigned char unit,float data)
//功能:把压力其他单位数值转换为KPA单位数值
//变量:unsigned char unit,float data
//返回:float
//========================================================================================
unsigned char Line_num_Input(unsigned char line_num)
{
unsigned char flag,num;
////校正密码验证
flag=0;
LCD_NUM=2;
LCD_Cursor_Addr=0;
LCD_Key_bar[0]=line_num/10;
LCD_Key_bar[1]=line_num-(line_num/10)*10;
DisplayNum(12,0,0,1);
DisplayNum(11,0,0,1);
DisplayNum(10,0,0,1);
DisplayNum(9,0,0,1);//液晶显示两位关闭其他位
while(!flag)
{
switch(key_data)
{
case 0x01:
{
LCD_Cursor_Addr++;
if(LCD_Cursor_Addr>=LCD_NUM) LCD_Cursor_Addr=0;
key_data=0;
}
break;
case 0x04:
{
LCD_Key_bar[LCD_Cursor_Addr]++;
if(LCD_Key_bar[LCD_Cursor_Addr]>=10) LCD_Key_bar[LCD_Cursor_Addr]=0;
key_data=0;
}
break;
case 0x02:
{
flag=1;
key_data=0;
}
break;
}
Password_LCD_Display(LCD_Cursor_Addr,LCD_Key_bar);
}
num=LCD_Key_bar[0]*10+LCD_Key_bar[1];
return num;
}
//========================================================================================
//函数:void rest_LCD_data(void)
//功能:对显示和键盘缓冲区清零
//变量:Byte
//返回:无
//========================================================================================
void rest_LCD_data(void)
{
unsigned char i;
LCD_Cursor_Addr=0;
for(i=0;i<6;i++)
LCD_Key_bar[i]=0;
}
//========================================================================================
//函数:unsigned char * Foat_TO_CHAR(float data)
//功能:对显示和键盘缓冲区清零
//变量:Byte
//返回:无
//========================================================================================
void Foat_TO_Char(float data,unsigned char *s)
{
long int data1 ;
unsigned long int data3,data4,data5;
float data2;
data2=data*100;
data1=(long int)data2;
if(data1<0) data3=(~data1)+1;
else data3=data1;
data4=(unsigned long int)(data3/10);
data5=data3-data4*10;
if(data5>=5) data3=data3+1;
if(data1<0) data1=0-data3;
else data1=data3;
data1=(long int)(data1/10);
*s=data1-((data1>>8)<<8);
data1=(data1>>8);
*(s+1)=data1-((data1>>8)<<8);
data1=(data1>>8);
*(s+2)=data1-((data1>>8)<<8);
data1=(data1>>8);
*(s+3)=data1-((data1>>8)<<8);
}
//========================================================================================
//函数:unsigned char * Foat_TO_CHAR(float data)
//功能:对显示和键盘缓冲区清零
//变量:Byte
//返回:无
//========================================================================================
void Long_TO_Char(long int data,unsigned char *s)
{
long int data1 ;
data1=data;
*s=data1-((data1>>8)<<8);
data1=(data1>>8);
*(s+1)=data1-((data1>>8)<<8);
data1=(data1>>8);
*(s+2)=data1-((data1>>8)<<8);
data1=(data1>>8);
*(s+3)=data1-((data1>>8)<<8);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -