SEG_LCD.h 9.83 KB
#ifndef _SEG_LCD_H_
#define _SEG_LCD_H_

#include "PWM.h"
#include "BU98R10.H"
#include "System_Status_Monitor.h" 

/******************************************************************************
段码
******************************************************************************/
#define   SEG_7A                             BU98R10_0_SEG33
#define   SEG_7B                             BU98R10_0_SEG32
#define   SEG_7C                             BU98R10_0_SEG106
#define   SEG_7D                             BU98R10_0_SEG105
#define   SEG_7E                             BU98R10_0_SEG104
#define   SEG_7F                             BU98R10_0_SEG34
#define   SEG_7G                             BU98R10_0_SEG31

#define   SEG_6A                             BU98R10_0_SEG37
#define   SEG_6B                             BU98R10_0_SEG36
#define   SEG_6C                             BU98R10_0_SEG102
#define   SEG_6D                             BU98R10_0_SEG101
#define   SEG_6E                             BU98R10_0_SEG100
#define   SEG_6F                             BU98R10_0_SEG38
#define   SEG_6G                             BU98R10_0_SEG35

#define   SEG_5A                             BU98R10_0_SEG41
#define   SEG_5B                             BU98R10_0_SEG40
#define   SEG_5C                             BU98R10_0_SEG99
#define   SEG_5D                             BU98R10_0_SEG98
#define   SEG_5E                             BU98R10_0_SEG97
#define   SEG_5F                             BU98R10_0_SEG42
#define   SEG_5G                             BU98R10_0_SEG39

#define   SEG_4A                             BU98R10_0_SEG45
#define   SEG_4B                             BU98R10_0_SEG44
#define   SEG_4C                             BU98R10_0_SEG96
#define   SEG_4D                             BU98R10_0_SEG73
#define   SEG_4E                             BU98R10_0_SEG72
#define   SEG_4F                             BU98R10_0_SEG46
#define   SEG_4G                             BU98R10_0_SEG43

#define   SEG_3A                             BU98R10_0_SEG49
#define   SEG_3B                             BU98R10_0_SEG48
#define   SEG_3C                             BU98R10_0_SEG71
#define   SEG_3D                             BU98R10_0_SEG70
#define   SEG_3E                             BU98R10_0_SEG69
#define   SEG_3F                             BU98R10_0_SEG50
#define   SEG_3G                             BU98R10_0_SEG47

#define   SEG_2A                             BU98R10_0_SEG53
#define   SEG_2B                             BU98R10_0_SEG52
#define   SEG_2C                             BU98R10_0_SEG68
#define   SEG_2D                             BU98R10_0_SEG67
#define   SEG_2E                             BU98R10_0_SEG66
#define   SEG_2F                             BU98R10_0_SEG54
#define   SEG_2G                             BU98R10_0_SEG51

#define   SEG_1A                             BU98R10_0_SEG57
#define   SEG_1B                             BU98R10_0_SEG56
#define   SEG_1C                             BU98R10_0_SEG65
#define   SEG_1D                             BU98R10_0_SEG64
#define   SEG_1E                             BU98R10_0_SEG63
#define   SEG_1F                             BU98R10_0_SEG58
#define   SEG_1G                             BU98R10_0_SEG55

#define   SEG_DP                             BU98R10_0_SEG103

#define   SEG_TRIP                           BU98R10_0_SEG60
#define   SEG_AA                             BU98R10_0_SEG59
#define   SEG_BB                             BU98R10_0_SEG61
#define   SEG_KM                             BU98R10_0_SEG107
#define   SEG_ODO                            BU98R10_0_SEG62

#define   SEG_YX1                            BU98R10_0_SEG75
#define   SEG_CX                             BU98R10_0_SEG74
#define   SEG_T1                             BU98R10_0_SEG76
#define   SEG_T2                             BU98R10_0_SEG77
#define   SEG_T3                             BU98R10_0_SEG78
#define   SEG_T4                             BU98R10_0_SEG79
#define   SEG_T5                             BU98R10_0_SEG80
#define   SEG_T6                             BU98R10_0_SEG81
#define   SEG_T7                             BU98R10_0_SEG82
#define   SEG_T8                             BU98R10_0_SEG83
#define   SEG_T9                             BU98R10_0_SEG84
#define   SEG_T10                            BU98R10_0_SEG85
#define   SEG_T11                            BU98R10_0_SEG86
#define   SEG_T12                            BU98R10_0_SEG87

#define   SEG_YX2                            BU98R10_0_SEG89
#define   SEG_CX2                            BU98R10_0_SEG88
#define   SEG_AE                             BU98R10_0_SEG90
#define   SEG_K1                             BU98R10_0_SEG91
#define   SEG_K2                             BU98R10_0_SEG92
#define   SEG_K3                             BU98R10_0_SEG93
#define   SEG_K4                             BU98R10_0_SEG94
#define   SEG_K5                             BU98R10_0_SEG95

/******************************************************************************
段码状态
******************************************************************************/
#define   SEG_LCD_LIGHT                     7
#define   SEG_LCD_GRAY                      1
#define   SEG_LCD_GRAY_light                0
#define   SEG_LCD_OFF                       0
#define   SEG_LCD_ON                        255

/******************************************************************************
段码液晶显示数据备份结构
******************************************************************************/
typedef struct
{
  uint8_t   Brightness;
  uint8_t   Window;
  uint8_t   VSpeedSeg;
  uint8_t   ESpeedSeg;
  uint16_t  VSpeed;
  uint16_t  ESpeed; 
  uint32_t  ODONum; 
  uint16_t  Power ;
  uint16_t  Voltage ;
  uint16_t  Current ;
  uint16_t  Mileage ;
  uint8_t  SOCSeg ;
  uint8_t  InitPowerSeg ;
  uint8_t  RePowerSeg ;
  uint8_t  TotalPowerSeg ;
  
}SEGLCDBackupStruct;

/******************************************************************************
图标状态寄存器SEGLCDIconxxxStatus位定义
================================================================
 Bit 7 | SEG_LCD_ICON_FORCE      | 强制显示标志
-------+-------------------------+------------------------------
 Bit 6 | Rsvd.                   | 保留
-------+-------------------------+------------------------------
 Bit 5 | Rsvd.                   | 保留
-------+-------------------------+------------------------------
 Bit 4 | Rsvd.                   | 保留
-------+-------------------------+------------------------------
 Bit 3 | Rsvd.                   | 保留
-------+-------------------------+------------------------------
 Bit 2 | Rsvd.                   | 保留
-------+-------------------------+------------------------------
 Bit 1 | SEG_LCD_ICON_FORCE_STAT | 强制显示状态 1-强制点亮 0-强制熄灭
-------+-------------------------+------------------------------
 Bit 0 | SEG_LCD_ICON_STAT       | 显示状态 1-点亮 0-熄灭
================================================================
******************************************************************************/
#define  SEG_LCD_ICON_FORCE                 ((uint8_t)0x80)
#define  SEG_LCD_ICON_FORCE_STAT            ((uint8_t)0x02)
#define  SEG_LCD_ICON_STAT                  ((uint8_t)0x01)

/******************************************************************************
Icon开关状态
******************************************************************************/
typedef enum
{
  SEG_LCD_ICON_OFF = 0,    //熄灭图标
  SEG_LCD_ICON_ON,         //点亮图标
  SEG_LCD_ICON_FORCE_OFF,  //强制熄灭图标,通过 SEG_LCD_ICON_OFF / SEG_LCD_ICON_ON 状态不能控制图标熄灭或点亮
  SEG_LCD_ICON_FORCE_ON,   //强制点亮图标,通过 SEG_LCD_ICON_OFF / SEG_LCD_ICON_ON 状态不能控制图标熄灭或点亮
  SEG_LCD_ICON_FREE,       //取消对图标的强制熄灭或点亮,将图标交由 SEG_LCD_ICON_OFF / SEG_LCD_ICON_ON 状态控制 
}SEGLCDIconStatusEnum;

/******************************************************************************
函数声明
******************************************************************************/
void SEG_LCD_Init(void);
void SEG_LCD_Shutdown(void);
void SEG_LCD_Set_Brightness(uint8_t Br);

void SEG_LCD_Window_Switch(uint8_t Sw);
void SEG_LCD_Window_Control_Service(void);


/******************************************************************************
函数名:SEG_LCD_ODO_Speed_Num_Display
功  能: 总计里程数字显示                                 
******************************************************************************/
void SEG_LCD_ODO_Speed_Num_Display(uint8_t DOD_TRIP_FLAG, uint32_t ODONum);
/******************************************************************************
函数名:SEG_LCD_ODO_Speed_Num_Off
功  能: 总计里程数字关闭                                  
******************************************************************************/
void SEG_LCD_ODO_Speed_Num_Off(void);
/******************************************************************************
函数名:SEG_LCD_FUEL_Seg_Display
功  能: 段码燃油显示                                   
******************************************************************************/
void SEG_LCD_FUEL_Seg_Display(uint8_t SegNum);
/******************************************************************************
函数名:SEG_LCD_FUEL_Seg_Off
功  能: 段码燃油全关闭                                   
******************************************************************************/
void SEG_LCD_FUEL_Seg_Off(void);
/******************************************************************************
函数名:SEG_LCD_ADBLUE_Seg_Display
功  能: 段码ADBLUE显示                                   
******************************************************************************/
void SEG_LCD_ADBLUE_Seg_Display(uint8_t SegNum);
/******************************************************************************
函数名:SEG_LCD_ADBLUE_Seg_Off    
功  能: 段码ADBLUE全关闭                                
******************************************************************************/
void SEG_LCD_ADBLUE_Seg_Off(void);

#endif