www.pudn.com > EFA.rar > Display.c
#include#include "define.h" #include "Global.h" /************************************************************* * 屏幕全显示 * dat: 0x00 清屏;0xFF 满屏显示 **************************************************************/ void Display_All(unsigned char dat) { CH452_Write_1(CH452_DIG0 | dat); CH452_Write_1(CH452_DIG1 | dat); CH452_Write_1(CH452_DIG2 | dat); CH452_Write_1(CH452_DIG3 | dat); CH452_Write_1(CH452_DIG4 | dat); CH452_Write_1(CH452_DIG5 | dat); CH452_Write_2(CH452_DIG0 | dat); CH452_Write_2(CH452_DIG1 | dat); CH452_Write_2(CH452_DIG2 | dat); CH452_Write_2(CH452_DIG3 | dat); CH452_Write_2(CH452_DIG4 | dat); CH452_Write_2(CH452_DIG5 | dat); CH452_Write_2(CH452_DIG6 | dat); CH452_Write_3(CH452_DIG0 | dat); CH452_Write_3(CH452_DIG1 | dat); CH452_Write_3(CH452_DIG2 | dat); CH452_Write_3(CH452_DIG3 | dat); CH452_Write_3(CH452_DIG4 | dat); CH452_Write_3(CH452_DIG5 | dat); CH452_Write_3(CH452_DIG6 | dat); CH452_Write_3(CH452_DIG7 | dat); } /************************************************************* * 数码管显示 * **************************************************************/ void Display_LED(void) { if(Display_LED_En != 0x01) return; Display_LED_En = 0x0; Display_O2_Flow(Value_O2_Cur2); // 显示氧气流量值 Display_N2O_Air_Flow(Value_N2O_Air_Cur2);// 显示笑气或空气值 Display_Qfg_Flow(Qfg_Flow_Cur); // 显示Qfg流量值 Display_FiO2(FiO2_Cur); // 显示氧浓度值 } /************************************************************* * 氧气流量显示 * dat: 显示的流量值 **************************************************************/ void Display_O2_Flow(unsigned int dat) { unsigned int Temp; if(dat == Value_O2_Pre2) return; Value_O2_Pre2 = dat; Temp = dat; if(Temp >= 1000) { CH452_Write_1(CH452_DIG0 | str[(unsigned char)(Temp/1000)]); CH452_Write_1(CH452_DIG1 | str[((unsigned char)((Temp/100))%10)] | ST); CH452_Write_1(CH452_DIG2 | str[((unsigned char)((Temp/10))%10)]); } else { CH452_Write_1(CH452_DIG0 | str[((unsigned char)((Temp/100))%10)] | ST); CH452_Write_1(CH452_DIG1 | str[((unsigned char)((Temp/10))%10)]); CH452_Write_1(CH452_DIG2 | str[(unsigned char)(Temp%10)]); } } /************************************************************* * 笑气或空气流量显示 * dat: 显示的流量值 **************************************************************/ void Display_N2O_Air_Flow(unsigned int dat) { unsigned int Temp; if(dat == Value_N2O_Air_Pre2) return; Value_N2O_Air_Pre2 = dat; Temp = dat; if(Temp >= 1000) { CH452_Write_1(CH452_DIG3 | str[(unsigned char)(Temp/1000)]); CH452_Write_1(CH452_DIG4 | str[((unsigned char)((Temp/100))%10)] | ST); CH452_Write_1(CH452_DIG5 | str[((unsigned char)((Temp/10))%10)]); } else { CH452_Write_1(CH452_DIG3 | str[((unsigned char)((Temp/100))%10)] | ST); CH452_Write_1(CH452_DIG4 | str[((unsigned char)((Temp/10))%10)]); CH452_Write_1(CH452_DIG5 | str[(unsigned char)(Temp%10)]); } } /************************************************************* * 混合气流量显示 * dat: 显示的流量值 **************************************************************/ void Display_Qfg_Flow(unsigned int dat) { unsigned int Temp; unsigned char t; if(dat == Qfg_Flow_Pre) return; Qfg_Flow_Pre = dat; Temp = dat; t = (unsigned char)(Temp/1000); if(t == 0) CH452_Write_2(CH452_DIG0 | str[10]); else CH452_Write_2(CH452_DIG0 | str[t]); CH452_Write_2(CH452_DIG1 | str[((unsigned char)((Temp/100))%10)] | ST); CH452_Write_2(CH452_DIG2 | str[((unsigned char)((Temp/10))%10)]); CH452_Write_2(CH452_DIG3 | str[(unsigned char)(Temp%10)]); } /************************************************************* * 氧气浓度显示 * dat: 显示的浓度值(0~999) **************************************************************/ void Display_FiO2(unsigned int dat) { unsigned int Temp; unsigned char t; if(dat == FiO2_Pre) return; FiO2_Pre = dat; Temp = dat; if(Temp >= 1000) { CH452_Write_2(CH452_DIG4 | str[1]); CH452_Write_2(CH452_DIG5 | str[0]); CH452_Write_2(CH452_DIG6 | str[0]); return; } t = (unsigned char)(Temp/100); if(t == 0) CH452_Write_2(CH452_DIG4 | str[10]); else CH452_Write_2(CH452_DIG4 | str[t]); CH452_Write_2(CH452_DIG5 | str[((unsigned char)((Temp/10))%10)] | ST); CH452_Write_2(CH452_DIG6 | str[(unsigned char)(Temp%10)]); } /************************************************************* * 光柱显示 **************************************************************/ void Display_Column(void) { if(Display_Column_En != 0x01) return; Display_Column_En = 0x0; Display_O2_Column(O2_Column_Cur); Display_N2O_Air_Column(N2O_Air_Column_Cur); } /************************************************************* * 氧气光柱显示:每一次都重新显示 * dat: 显示的量程(0~30) *************************************************************/ void Display_O2_Column(unsigned char dat) { unsigned char t; if(dat == O2_Column_Pre) return; O2_Column_Pre = dat; t = dat; if(t <= 8) { CH452_Write_3(CH452_DIG0 | column[t]); CH452_Write_3(CH452_DIG1); CH452_Write_3(CH452_DIG2); CH452_Write_3(CH452_DIG3 | 0x40*LED1); } else if(t > 8 && t <= 16) { CH452_Write_3(CH452_DIG0 | column[8]); CH452_Write_3(CH452_DIG1 | column[t%8]); CH452_Write_3(CH452_DIG2); CH452_Write_3(CH452_DIG3 | 0x40*LED1); } else if(t > 16 && t <= 24) { CH452_Write_3(CH452_DIG0 | column[8]); CH452_Write_3(CH452_DIG1 | column[8]); CH452_Write_3(CH452_DIG2 | column[t%8]); CH452_Write_3(CH452_DIG3 | 0x40*LED1); } else { CH452_Write_3(CH452_DIG0 | column[8]); CH452_Write_3(CH452_DIG1 | column[8]); CH452_Write_3(CH452_DIG2 | column[8]); CH452_Write_3(CH452_DIG3 | column[t%8] | 0x40*LED1); } } /************************************************************* * 笑气空气光柱显示:每一次都重新显示 * dat: 显示的量程(0~30) *************************************************************/ void Display_N2O_Air_Column(unsigned char dat) { unsigned char t; if(dat == N2O_Air_Column_Pre) return; N2O_Air_Column_Pre = dat; t = dat; if(t <= 8) { CH452_Write_3(CH452_DIG4 | column[t]); CH452_Write_3(CH452_DIG5); CH452_Write_3(CH452_DIG6); CH452_Write_3(CH452_DIG7 | 0x40*LED3 | 0x80*LED2); } else if(t > 8 && t <= 16) { CH452_Write_3(CH452_DIG4 | column[8]); CH452_Write_3(CH452_DIG5 | column[t%8]); CH452_Write_3(CH452_DIG6); CH452_Write_3(CH452_DIG7 | 0x40*LED3 | 0x80*LED2); } else if(t > 16 && t <= 24) { CH452_Write_3(CH452_DIG4 | column[8]); CH452_Write_3(CH452_DIG5 | column[8]); CH452_Write_3(CH452_DIG6 | column[t%8]); CH452_Write_3(CH452_DIG7 | 0x40*LED3 | 0x80*LED2); } else { CH452_Write_3(CH452_DIG4 | column[8]); CH452_Write_3(CH452_DIG5 | column[8]); CH452_Write_3(CH452_DIG6 | column[8]); CH452_Write_3(CH452_DIG7 | column[t%8] | 0x40*LED3 | 0x80*LED2); } }