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

📄 display.c

📁 msp430F435做的医疗器械,包括语音模块,知识源于网络
💻 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 + -