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

📄 disp_mod.c

📁 msp430F435做的医疗器械,包括语音模块,知识源于网络
💻 C
字号:
/****************************************************************
            discrible:显示主流程

            author   :Ye Yun Kai

            date     :05.04.15(yy.mm.dd)
****************************************************************/
#include "msp430x42x.h"
#include "Sys_data.h"
#include "Sys_fun.h"


void Disp_Mod(void)
{
    Lcd_clr();                                          //清屏

    if((Display_symbol & firlayer_flag) ==firlayer_flag)//-------------主显示层
    {
        test_index_Disp =0;         //在主显示层,测试层键显显示项计数器清0
        sysdata_index_Disp =0;      //在主显示层,系统数据键显显示项计数器0
        hisHeatdata_index_Disp = 0; //在主显示层,历史数据显示层键显显示项计数器清0
        hisCooldata_index_Disp = 0;
        
        turn_index_Disp++;
        if(turn_index_Disp>6)
            turn_index_Disp = 0;

        switch(turn_index_Disp)                       //数据更新
        {
            case 0x00:   Lcd_all();                   //全显
                         break;

            case 0x01:   Up_Datebuffer(Heat_WH,4);    //当前热量(单位:1KWH)
                         break;
                         
            case 0x02:   Up_Datebuffer(Cool_WH,4);    //当前冷量(单位:1KWH)
                         break;             
					
	    case 0x03:   Up_Datebuffer(Flux,4);       //当前流量(单位:0.01m3)
	                 break;
					
	    case 0x04:   Up_Datebuffer(In_Temp,2);    //进水温度
	                 break;
		 			
            case 0x05:   Up_Datebuffer(Out_Temp,2);   //出水温度
	                 break;
		 			
	    case 0x06:   Up_Datebuffer(Sub_Temp,2);   //温差
	                 break;
		  			
	    default:     Lcd_all();                   //全显
	                 break;		 			
        }
	
        Up_Promptbuffer(turn_index_Disp);             //提示符更新
	
        Lcd_buffer_update(Data_buffer);               //更新LCD

        if((SVSCTL&0x01)==0x01)                       //MCU内置电源管理模块检测工作电压2.8V,则亮低压提示符
            LCDM10 |= 0x04;                           //点亮低压提示符
    }

    else if((Display_symbol & seclayer_flag) ==seclayer_flag)//----------测试显示层
    {
        turn_index_Disp =0;         //测试显示层,主显示层键显显示项计数器清0
        sysdata_index_Disp =0;      //测试显示层,系统数据键显显示项计数器0
        hisHeatdata_index_Disp = 0;     //测试显示层,历史数据显示层键显显示项计数器清0
        hisCooldata_index_Disp = 0;
        
        test_index_Disp++;
        if(test_index_Disp>9)
            test_index_Disp = 1;

        switch(test_index_Disp) //-------------------------数据更新
        {
            case 0x00:   Lcd_all();                       //全显
                         break;

            case 0x01:   Up_Datebuffer(Power_test,4);     //测试实时功率(单位:W)
                         break;
					
            case 0x02:   Up_Datebuffer(FluxSpeed_test,4); //测试实时流速(单位:L/h)
	                 break;

            case 0x03:   if((Display_symbol & test_off)==test_off)//测试状态("ON"或"OFF")
	                     Up_test_off();                       //往Data_buffer寄存器内直接写段码值"TESTOFF"
                         else
                             Up_test_on();                        //往Data_buffer寄存器内直接写段码值"TEST ON"
                         break;

            case 0x04:   Up_Datebuffer(Heat_test,4);      //当前测试热量(单位:0.1WH)
                         break;
                         
            case 0x05:   Up_Datebuffer(Cool_test,4);      //当前测试冷量(单位:0.1WH)
                         break;             
					
            case 0x06:   Up_Datebuffer(Flux_test,4);      //当前测试流量(单位:1L)
	                 break;

            case 0x07:   Up_Datebuffer(In_Temp,2);        //进水温度
	
	    		 Data_buffer[2] = Num_Disp[(In_SD16Value[0]&0x0F)];
                         Data_buffer[1] = Num_Disp[(In_SD16Value[0]&0xF0)>>4];

                         Data_buffer[0] = Num_Disp[(In_SD16Value[1]&0x0F)];
	                 break;
		 			
            case 0x08:   Up_Datebuffer(Out_Temp,2);       //出水温度

            	         Data_buffer[2] = Num_Disp[(Out_SD16Value[0]&0x0F)];
                         Data_buffer[1] = Num_Disp[(Out_SD16Value[0]&0xF0)>>4];

                         Data_buffer[0] = Num_Disp[(Out_SD16Value[1]&0x0F)];
	                 break;
		 			
	    case 0x09:   Up_Datebuffer(Sub_Temp,2);       //温差
	
	    		 Data_buffer[2] = Num_Disp[(BasicValue[0]&0x0F)];
                         Data_buffer[1] = Num_Disp[(BasicValue[0]&0xF0)>>4];

                         Data_buffer[0] = Num_Disp[(BasicValue[1]&0x0F)];
	                 break;
		  			
	    default:     Lcd_all();                       //全显
	                 break;		 			
        }

        Up_test_Promptbuffer(test_index_Disp);        //测试提示符更新
	
        Lcd_buffer_update(Data_buffer);               //更新LCD

        if((SVSCTL&0x01)==0x01)                     //MCU内置电源管理模块检测工作电压2.8V,则亮低压提示符
            LCDM10 |= 0x04;                         //点亮低压提示符
    }


    else if((Display_symbol & thilayer_flag) ==thilayer_flag)//----------系统数据显示层
    {
        turn_index_Disp =0;         //在系统数据显示层,测试层键显显示项计数器清0
        test_index_Disp =0;         //在系统数据显示层,系统数据键显显示项计数器0
        hisHeatdata_index_Disp = 0; //在系统数据显示层,历史数据显示层键显显示项计数器清0
        hisCooldata_index_Disp = 0;
        
        sysdata_index_Disp++;
        if(sysdata_index_Disp>0x07)
            sysdata_index_Disp = 1;

        switch(sysdata_index_Disp)
        {
            case 0x01:   Up_Datebuffer(Meter_Num,4);      //表号
                         break;

            case 0x02:   Up_Datebuffer(Address,2);        //地址项
	                 break;
					
	    case 0x03:   Up_Datebuffer(Power_test,4);     //测试实时功率(单位: W)
                         break;

            case 0x04:   Up_Datebuffer(FluxSpeed_test,4); //测试实时流速(单位: L/h)
	                 break;

            case 0x05:   Up_Datebuffer(Pile_time,4);      //累积运行时间
                         break;

            case 0x06:   Up_Datebuffer(Date,3);          //系统日期
	                 break;

            case 0x07:   Up_Datebuffer(Time,3);          //系统时间
	                 break;

        }

        Up_sysdata_Promptbuffer(sysdata_index_Disp);  //系统数据提示符更新
	
        Lcd_buffer_update(Data_buffer);               //更新LCD

        if((SVSCTL&0x01)==0x01)                       //MCU内置电源管理模块检测工作电压2.8V,则亮低压提示符
            LCDM10 |= 0x04;                           //点亮低压提示符
    }


    else if((Display_symbol & foulayer_flag) ==foulayer_flag)//----------历史数据显示层
    {
        turn_index_Disp =0;         //在系统数据显示层,测试层键显显示项计数器清0
        test_index_Disp =0;         //在系统数据显示层,系统数据键显显示项计数器0
        sysdata_index_Disp = 0;     //在系统数据显示层,历史数据显示层键显显示项计数器清0
        hisCooldata_index_Disp = 0;
        
        hisHeatdata_index_Disp++;
        if(hisHeatdata_index_Disp>0x0C)
            hisHeatdata_index_Disp = 1;

        switch(hisHeatdata_index_Disp)                    //上1月~上12月数据更新
        {
            case 0x01:   Up_Datebuffer(His_HeatWH,4);    //更新上1月数据
                         break;
					
	    case 0x02:   Up_Datebuffer(His_HeatWH+4,4);  //更新上2月数据
                         break;

            case 0x03:   Up_Datebuffer(His_HeatWH+8,4);  //更新上3月数据
                         break;

            case 0x04:   Up_Datebuffer(His_HeatWH+12,4); //更新上4月数据
                         break;

            case 0x05:   Up_Datebuffer(His_HeatWH+16,4); //更新上5月数据
                         break;

            case 0x06:   Up_Datebuffer(His_HeatWH+20,4); //更新上6月数据
                         break;

            case 0x07:   Up_Datebuffer(His_HeatWH+24,4); //更新上7月数据
                         break;

            case 0x08:   Up_Datebuffer(His_HeatWH+28,4); //更新上8月数据
                         break;

            case 0x09:   Up_Datebuffer(His_HeatWH+32,4); //更新上9月数据
                         break;

            case 0x0A:   Up_Datebuffer(His_HeatWH+36,4); //更新上10月数据
                         break;

            case 0x0B:   Up_Datebuffer(His_HeatWH+40,4); //更新上11月数据
                         break;

            case 0x0C:	 Up_Datebuffer(His_HeatWH+44,4); //更新上12月数据
                         break;
        }

        Up_hisHeatdata_Promptbuffer(hisHeatdata_index_Disp);  //历史数据提示符更新
	
        Lcd_buffer_update(Data_buffer);               //更新LCD

        if((SVSCTL&0x01)==0x01)                       //MCU内置电源管理模块检测工作电压2.8V,则亮低压提示符
            LCDM10 |= 0x04;                           //点亮低压提示符
    }
    
    else if((Display_symbol & fivlayer_flag) ==fivlayer_flag)//----------历史数据显示层
    {
        turn_index_Disp =0;         //在系统数据显示层,测试层键显显示项计数器清0
        test_index_Disp =0;         //在系统数据显示层,系统数据键显显示项计数器0
        sysdata_index_Disp = 0;     //在系统数据显示层,历史数据显示层键显显示项计数器清0
        hisHeatdata_index_Disp = 0;
        
        hisCooldata_index_Disp++;
        if(hisCooldata_index_Disp>0x0C)
            hisCooldata_index_Disp = 1;

        switch(hisCooldata_index_Disp)                    //上1月~上12月数据更新
        {
            case 0x01:   Up_Datebuffer(His_CoolWH,4);    //更新上1月数据
                         break;
					
	    case 0x02:   Up_Datebuffer(His_CoolWH+4,4);  //更新上2月数据
                         break;

            case 0x03:   Up_Datebuffer(His_CoolWH+8,4);  //更新上3月数据
                         break;

            case 0x04:   Up_Datebuffer(His_CoolWH+12,4); //更新上4月数据
                         break;

            case 0x05:   Up_Datebuffer(His_CoolWH+16,4); //更新上5月数据
                         break;

            case 0x06:   Up_Datebuffer(His_CoolWH+20,4); //更新上6月数据
                         break;

            case 0x07:   Up_Datebuffer(His_CoolWH+24,4); //更新上7月数据
                         break;

            case 0x08:   Up_Datebuffer(His_CoolWH+28,4); //更新上8月数据
                         break;

            case 0x09:   Up_Datebuffer(His_CoolWH+32,4); //更新上9月数据
                         break;

            case 0x0A:   Up_Datebuffer(His_CoolWH+36,4); //更新上10月数据
                         break;

            case 0x0B:   Up_Datebuffer(His_CoolWH+40,4); //更新上11月数据
                         break;

            case 0x0C:	 Up_Datebuffer(His_CoolWH+44,4); //更新上12月数据
                         break;
        }

        Up_hisCooldata_Promptbuffer(hisCooldata_index_Disp);  //历史数据提示符更新
	
        Lcd_buffer_update(Data_buffer);               //更新LCD

        if((SVSCTL&0x01)==0x01)                       //MCU内置电源管理模块检测工作电压2.8V,则亮低压提示符
            LCDM10 |= 0x04;                           //点亮低压提示符
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -