📄 main.c
字号:
Enable();
for(i=0;i<8;i++)
WriteLCD(Bottom[i]);
}
else if(PowerFlag)
{
DATA = 0x01;
Enable();
DATA = Addr_LCD_Top;
Enable();
for(i=0;i<8;i++)
{
WriteLCD(TOP_PowerInput[i]);
}
DATA = Addr_LCD_Bottom+2;
Enable();
for(i=0;i<PowerInCount;i++)
WriteLCD('.');
DATA = Addr_LCD_Bottom+9;
Enable();
}
else if(PowerLowFlag) //低电压报警
{
DATA = Addr_LCD_Top;
Enable();
for(i=0;i<8;i++)
{
WriteLCD(TOP_POWER[i]);
}
DATA = Addr_LCD_Bottom;
Enable();
for(i=0;i<8;i++)
{
WriteLCD(BTM_LOW[i]);
}
}
else if(ErrorFlag) //故障
{
DATA = Addr_LCD_Top;
Enable();
for(i=0;i<8;i++)
{
Top[i] = TOP_ERROR[i];
WriteLCD(Top[i]);
}
}
else if(MENU_Flag) //菜单显示
{
if(!SonMenuFlag)
{
DATA = Addr_LCD_Top;
Enable();
for(i=0;i<8;i++)
WriteLCD(TOP_MENU[i]);
DATA = Addr_LCD_Bottom;
Enable();
switch(UPDOWN)
{
case 1:
for(i=0;i<8;i++)
Bottom[i] = MENU_1[i];
break;
case 2:
for(i=0;i<8;i++)
Bottom[i] = MENU_2[i];
break;
case 3:
for(i=0;i<8;i++)
Bottom[i] = MENU_3[i];
break;
case 4:
for(i=0;i<8;i++)
Bottom[i] = MENU_4[i];
break;
case 5:
for(i=0;i<8;i++)
Bottom[i] = MENU_5[i];
break;
case 6:
for(i=0;i<8;i++)
Bottom[i] = MENU_6[i];
break;
default:
break;
}
for(i=0;i<8;i++)
WriteLCD(Bottom[i]);
DATA = Addr_LCD_Bottom;
Enable();
}
else //子菜单
{
switch(UPDOWN)
{
case 1: //warn
Show_Warn();
DATA = Addr_LCD_Bottom+4;
Enable();
break;
case 2: //time
Show_Time();
if(time_Menu_Flag==1)
DATA = Addr_LCD_Top+1;
else if(time_Menu_Flag==2)
DATA = Addr_LCD_Top+4;
else if(time_Menu_Flag==3)
DATA = Addr_LCD_Top+7;
else if(time_Menu_Flag==4)
DATA = Addr_LCD_Bottom+1;
else if(time_Menu_Flag==5)
DATA = Addr_LCD_Bottom+4;
else if(time_Menu_Flag==6)
DATA = Addr_LCD_Bottom+7;
else DATA = Addr_LCD_Bottom+8;
Enable();
break;
case 3: //zero
DATA = 0x01;
Enable();
DATA = Addr_LCD_Bottom+2;
Enable();
Top[0]=Zero>=100?(0x30+Zero/100):' ';
Top[1]=Zero>=10?(0x30+Zero/10%10):' ';
Top[2]=Zero%10+0x30;
for(i=0;i<3;i++)
WriteLCD(Top[i]);
DATA = Addr_LCD_Top+2;
Enable();
AD = Adresult_Vol.Int;
Bottom[0]=AD>=100?(0x30+AD/100):' ';
Bottom[1]=AD>=10?(0x30+AD/10%10):' ';
Bottom[2]=AD%10+0x30;
for(i=0;i<3;i++)
WriteLCD(Bottom[i]);
DATA = Addr_LCD_Bottom+4;
Enable();
break;
case 4: //biaoding
DATA = 0x01;
Enable();
DATA = Addr_LCD_Top+2;
Enable();
Top[0]=Biaoding.Int>=100?(0x30+Biaoding.Int/100):' ';
Top[1]=Biaoding.Int>=10?(0x30+Biaoding.Int/10%10):' ';
Top[2]=Biaoding.Int%10+0x30;
for(i=0;i<3;i++)
WriteLCD(Top[i]);
DATA = Addr_LCD_Bottom+2;
Enable();
AD = Adresult_Vol.Int;
Bottom[0]=AD>=100?(0x30+AD/100):' ';
Bottom[1]=AD>=10?(0x30+AD/10%10):' ';
Bottom[2]=AD%10+0x30;
for(i=0;i<3;i++)
WriteLCD(Bottom[i]);
DATA = Addr_LCD_Bottom+4;
break;
case 5: //danwei
DATA = 0x01;
Enable();
DATA = Addr_LCD_Top+2;
Enable();
for(i=2;i<7;i++)
{
WriteLCD(MENU_5[i]);
}
Bottom[0]=Bottom[1]=Bottom[2]=Bottom[3]=' ';
if(Danwei==DW_LEL)
{
Bottom[4]='%';
Bottom[5]=Bottom[7]='L';
Bottom[6]='E';
}
else if(Danwei==DW_PPM)
{
Bottom[4]=' ';
Bottom[5]=Bottom[6]='P';
Bottom[7]='M';
}
else if(Danwei==DW_VOL)
{
Bottom[4]=' ';
Bottom[5]='V';
Bottom[6]='O';
Bottom[7]='L';
}
else
Danwei = 0xff;
DATA = Addr_LCD_Bottom;
Enable();
for(i=0;i<8;i++)
WriteLCD(Bottom[i]);
DATA = Addr_LCD_Bottom;
Enable();
break;
case 6: //liangcheng
Show_Liangcheng();
DATA = Addr_LCD_Bottom+4;
Enable();
break;
}
}
}
else //正常显示状态
{
switch(ShowFlag)
{
case 0: //浓度
Top[0]=Top[6]=Top[7] = ' ';
Top[1]=nongdu>=1000?0x31:' ';
Top[2]=0x30+nongdu/100%10;
Top[3]=0x30+nongdu/10%10;
Top[4]='.';
Top[5]=0x30+nongdu%10;
DATA = Addr_LCD_Top;
Enable();
for(i=0;i<8;i++)
WriteLCD(Top[i]);
Bottom[0]=Bottom[1]=Bottom[2]=Bottom[3]=' ';
if(Danwei==DW_LEL)
{
Bottom[4]='%';
Bottom[5]=Bottom[7]='L';
Bottom[6]='E';
}
else if(Danwei==DW_PPM)
{
Bottom[4]=' ';
Bottom[5]=Bottom[6]='P';
Bottom[7]='M';
}
else if(Danwei==DW_VOL)
{
Bottom[4]=' ';
Bottom[5]='V';
Bottom[6]='O';
Bottom[7]='L';
}
else
Danwei = 0xff;
DATA = Addr_LCD_Bottom;
Enable();
for(i=0;i<8;i++)
WriteLCD(Bottom[i]);
break;
case 1: //时间
Show_Time();
break;
case 2: // 报警点
Show_Warn();
break;
case 3: //电压值
DATA = Addr_LCD_Top;
Enable();
for(i=0;i<8;i++)
WriteLCD(TOP_POWER[i]);
Bottom[0]=Bottom[1]=Bottom[6]=Bottom[7]= ' ';
Bottom[2]=0x30+dianya/100%10;
Bottom[3]='.';
Bottom[4]=0x30+dianya/10%10;
Bottom[5]=0x30+dianya%10;
DATA = Addr_LCD_Bottom;
Enable();
for(i=0;i<8;i++)
WriteLCD(Bottom[i]);
break;
case 4: //量程
Show_Liangcheng();
DATA = Addr_LCD_Bottom+8;
Enable();
break;
}
}
}
else if(timeCount==65) //时钟计数
{
if(Time_Day==0)
Time_Day=1;
if(Time_Month>12||Time_Month==0)
Time_Month=1;
if(Time_Year<8)
Time_Year=8;
if(MENU_Flag&&SonMenuFlag&&UPDOWN==2)
{;}
else if(++Time_Second>=60)
{
Time_Second=0;
if(++Time_Min>=60)
{
Time_Min = 0;
if(++Time_Hour>=24)
{
Time_Hour=0;
Time_Day++;
switch(Time_Month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(Time_Day>31)
{
Time_Day=1;
Time_Month++;
}
break;
case 4:
case 6:
case 9:
case 11:
if(Time_Day>30)
{
Time_Day=1;
Time_Month++;
}
break;
case 2:
if(Time_Year%400==0||(Time_Year%4==0&&Time_Year%100!=0))
{
if(Time_Day>29)
{
Time_Day=1;
Time_Month++;
}
}
else
{
if(Time_Day>28)
{
Time_Day=1;
Time_Month++;
}
}
break;
default:
Time_Month = 1;
break;
}
}
}
}
}
else if(timeCount==30) //AD转换
{
ADFlag =!ADFlag;
if(ADFlag)
{
ADIN(0x81,0x85); //AN0,Vref=AN3
while(1)
{
if(ADIF)
break;
}
ADIF=0;
Adresult_Vol.Char[0]=ADRESL;
Adresult_Vol.Char[1]=ADRESH;
}
else
{
ADIN(0x99,0x84); //AN3,Vref=VDD
while(1)
{
if(ADIF)
break;
}
ADIF=0;
Adresult_Power.Char[0]=ADRESL;
Adresult_Power.Char[1]=ADRESH;
}
}
else if(timeCount==50) //背光计数
{
if(time_Light_Count<10)
{
BL_LightOn;
time_Light_Count++;
}
else BL_LightOff;
if(WarnFlag)
{
Ctrl_Bell_On;
Ctrl_Shake_On;
}
else
{
Ctrl_Bell_Off;
Ctrl_Shake_Off;
}
if(time_Return<ReturnTime)
{
time_Return++;
}
else
{
if(MENU_Flag)
{
MENU_Flag = 0;
SonMenuFlag = 0;
UPDOWN = 0;
Secret=0;
}
else
{
ShowFlag=0;
}
}
}
else if(timeCount==112)
{
Ctrl_Bell_Off;
Ctrl_Shake_Off;
if(PowerFlag)
if(++PowerInCount>=5)
PowerInCount=0;
}
}
}
}
void Show_Warn()
{
uchar i;
DATA = Addr_LCD_Top;
Enable();
for(i=0;i<8;i++)
WriteLCD(TOP_POINT[i]);
Bottom[0]=Bottom[1]=Bottom[2]=Bottom[5]=Bottom[6]=Bottom[7]= ' ';
Bottom[3]=0x30+WarnPoint/10;
Bottom[4]=0x30+WarnPoint%10;
DATA = Addr_LCD_Bottom;
Enable();
for(i=0;i<8;i++)
WriteLCD(Bottom[i]);
}
void Show_Liangcheng()
{
uchar i;
DATA = 0x01;
Enable();
DATA = Addr_LCD_Top+1;
Enable();
for(i=2;i<=7;i++)
{
WriteLCD(MENU_6[i]);
}
DATA = Addr_LCD_Bottom+2;
Enable();
Bottom[0]=Liangcheng>=100?(0x30+Liangcheng/100):' ';
Bottom[1]=Liangcheng>=10?(0x30+Liangcheng/10%10):' ';
Bottom[2]=Liangcheng%10+0x30;
for(i=0;i<3;i++)
WriteLCD(Bottom[i]);
}
void Show_Time()
{
uchar i;
DATA = Addr_LCD_Top;
Enable();
Top[0]=0x30+Time_Year/10%10;
Top[1]=0x30+Time_Year%10;
Top[2]='-';
Top[3]=0x30+Time_Month/10;
Top[4]=0x30+Time_Month%10;
Top[5]='-';
Top[6]=0x30+Time_Day/10;
Top[7]=0x30+Time_Day%10;
for(i=0;i<8;i++)
WriteLCD(Top[i]);
Bottom[0]=0x30+Time_Hour/10;
Bottom[1]=0x30+Time_Hour%10;
Bottom[2]=':';
Bottom[3]=0x30+Time_Min/10;
Bottom[4]=0x30+Time_Min%10;
Bottom[5]=':';
Bottom[6]=0x30+Time_Second/10;
Bottom[7]=0x30+Time_Second%10;
DATA = Addr_LCD_Bottom;
Enable();
for(i=0;i<8;i++)
WriteLCD(Bottom[i]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -