sysdata_update.c

来自「msp430F435做的医疗器械,包括语音模块,知识源于网络」· C语言 代码 · 共 248 行

C
248
字号
/****************************************************************
            discrible:系统数据更新程序

            author   :Ye Yun Kai

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

void SysData_Update(void)
{
    Lcd_clr();//清屏
    if((Display_symbol & firlayer_flag) ==firlayer_flag)//主显示层更新
    {
       switch(turn_index_Disp)                   //数据更新
       {
            case 0x00:   Lcd_all();               //全显(防止全显时下次更新后黑屏)
                         break;

            case 0x01:   Up_Datebuffer(Heat_WH,4);//当前热量
                         break;
                         
            case 0x02:   Up_Datebuffer(Cool_WH,4);//当前冷量(单位:1KWH)
                         break;              
					
	    case 0x03:   Up_Datebuffer(Flux,4);   //当前流量
	                 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:     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)//测试显示层更新
    {
        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)//系统数据显示层更新
    {
        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)//历史数据显示层更新
    {
        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
    {
        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 + =
减小字号Ctrl + -
显示快捷键?