📄 display.c
字号:
#include <msp430x14x.h>
#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);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -