vfd_7seg.h

来自「代码有点长,需细心阅读,仅供影音视听类产品的开发人员参考」· C头文件 代码 · 共 155 行

H
155
字号
#ifndef __VFD_7SEG_H
#define __VFD_7SEG_H

/*
** Definition for 7-seg display
**
** we assume 7-seg are defined as traditional 7-segment LED.
**
**   AAAA
**  F    B
**  F    B
**   GGGG
**  E    C
**  E    C
**   DDDD
*/
#ifndef VFD_7SEG_SA
//#error    please define VFD_7SEG_SA-SG.
#endif

#if 0  //(VFD_DRIVER==HT1621)    //ZHX 060203

#define VFD_7SEG_0_R  (VFD_7SEG_SAR|VFD_7SEG_SBR|VFD_7SEG_SCR)
#define VFD_7SEG_0_L  (VFD_7SEG_SDL|VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_1_R  (VFD_7SEG_SBR|VFD_7SEG_SCR)
#define VFD_7SEG_1_L  (0)
#define VFD_7SEG_2_R  (VFD_7SEG_SAR|VFD_7SEG_SBR|VFD_7SEG_SGR)
#define VFD_7SEG_2_L  (VFD_7SEG_SEL|VFD_7SEG_SDL)
#define VFD_7SEG_3_R  (VFD_7SEG_SAR|VFD_7SEG_SBR|VFD_7SEG_SGR|VFD_7SEG_SCR)
#define VFD_7SEG_3_L  (VFD_7SEG_SDL)
#define VFD_7SEG_4_R  (VFD_7SEG_SGR|VFD_7SEG_SBR|VFD_7SEG_SCR)
#define VFD_7SEG_4_L  (VFD_7SEG_SFL)
#define VFD_7SEG_5_R  (VFD_7SEG_SAR|VFD_7SEG_SGR|VFD_7SEG_SCR)
#define VFD_7SEG_5_L  (VFD_7SEG_SFL|VFD_7SEG_SDL)
#define VFD_7SEG_6_R  (VFD_7SEG_SAR|VFD_7SEG_SGR|VFD_7SEG_SCR)
#define VFD_7SEG_6_L  (VFD_7SEG_SFL|VFD_7SEG_SDL|VFD_7SEG_SEL)
#define VFD_7SEG_7_R  (VFD_7SEG_SAR|VFD_7SEG_SBR|VFD_7SEG_SCR)
#define VFD_7SEG_7_L  (0)
#define VFD_7SEG_8_R  (VFD_7SEG_SAR|VFD_7SEG_SBR|VFD_7SEG_SCR|VFD_7SEG_SGR)
#define VFD_7SEG_8_L  (VFD_7SEG_SDL|VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_9_R  (VFD_7SEG_SAR|VFD_7SEG_SBR|VFD_7SEG_SCR|VFD_7SEG_SGR)
#define VFD_7SEG_9_L (VFD_7SEG_SDL|VFD_7SEG_SFL)
//#define VFD_7SEG_DIG_MASK   (VFD_7SEG_8)

#define VFD_7SEG_SPACE  0
//#define VFD_7SEG_DASH   VFD_7SEG_SG //zhg 2002/09/27 15:35
#define VFD_7SEG_A_R  (VFD_7SEG_SAR|VFD_7SEG_SBR|VFD_7SEG_SCR|VFD_7SEG_SGR)
#define VFD_7SEG_A_L  (VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_B_R  (VFD_7SEG_SGR|VFD_7SEG_SCR)
#define VFD_7SEG_B_L  (VFD_7SEG_SDL|VFD_7SEG_SFL|VFD_7SEG_SEL)
#define VFD_7SEG_C_R  (VFD_7SEG_SAR)
#define VFD_7SEG_C_L  (VFD_7SEG_SDL|VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_D_R  (VFD_7SEG_SBR|VFD_7SEG_SCR|VFD_7SEG_SGR)
#define VFD_7SEG_D_L  (VFD_7SEG_SEL|VFD_7SEG_SDL)
#define VFD_7SEG_E_R  (VFD_7SEG_SAR|VFD_7SEG_SGR)
#define VFD_7SEG_E_L  (VFD_7SEG_SDL|VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_F_R  (VFD_7SEG_SAR|VFD_7SEG_SGR)
#define VFD_7SEG_F_L  (VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_G_R  (VFD_7SEG_SAR|VFD_7SEG_SCR|VFD_7SEG_SGR)
#define VFD_7SEG_G_L  (VFD_7SEG_SDL|VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_H_R  (VFD_7SEG_SBR|VFD_7SEG_SCR|VFD_7SEG_SGR)
#define VFD_7SEG_H_L  (VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_I_R  (VFD_7SEG_SBR|VFD_7SEG_SCR)
#define VFD_7SEG_I_L  (0) 
#define VFD_7SEG_J_R  (VFD_7SEG_SBR|VFD_7SEG_SCR)
#define VFD_7SEG_J_L  (VFD_7SEG_SDL)
#define VFD_7SEG_L_R  (0) 
#define VFD_7SEG_L_L  (VFD_7SEG_SDL|VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_N_R  (VFD_7SEG_SAR|VFD_7SEG_SBR|VFD_7SEG_SCR)
#define VFD_7SEG_N_L  (VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_O_R  (VFD_7SEG_SAR|VFD_7SEG_SBR|VFD_7SEG_SCR)
#define VFD_7SEG_O_L  (VFD_7SEG_SDL|VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_P_R  (VFD_7SEG_SAR|VFD_7SEG_SBR|VFD_7SEG_SGR)
#define VFD_7SEG_P_L  (VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_R_R  (VFD_7SEG_SGR)
#define VFD_7SEG_R_L  (VFD_7SEG_SEL)
#define VFD_7SEG_S_R  (VFD_7SEG_SAR|VFD_7SEG_SGR|VFD_7SEG_SCR)
#define VFD_7SEG_S_L  (VFD_7SEG_SFL|VFD_7SEG_SDL)
#define VFD_7SEG_T_R  (VFD_7SEG_SGR)
#define VFD_7SEG_T_L  (VFD_7SEG_SDL|VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_U_R  (VFD_7SEG_SBR|VFD_7SEG_SCR)
#define VFD_7SEG_U_L  (VFD_7SEG_SDL|VFD_7SEG_SEL|VFD_7SEG_SFL)
#define VFD_7SEG_Y_R  (VFD_7SEG_SGR|VFD_7SEG_SBR|VFD_7SEG_SCR)
#define VFD_7SEG_Y_L  (VFD_7SEG_SFL)

static const BYTE vfd_digit[72] = 
      {        //0-9,A-Z is 0-35
      VFD_7SEG_0_R, VFD_7SEG_0_L,   VFD_7SEG_1_R,    VFD_7SEG_1_L,    VFD_7SEG_2_R, VFD_7SEG_2_L,   //0-5
      VFD_7SEG_3_R, VFD_7SEG_3_L,   VFD_7SEG_4_R,    VFD_7SEG_4_L,    VFD_7SEG_5_R, VFD_7SEG_5_L,   //6-11  
      VFD_7SEG_6_R, VFD_7SEG_6_L,   VFD_7SEG_7_R,    VFD_7SEG_7_L,    VFD_7SEG_8_R, VFD_7SEG_8_L,   //12-17 
      VFD_7SEG_9_R,     VFD_7SEG_9_L,   VFD_7SEG_A_R,    VFD_7SEG_A_L,     VFD_7SEG_B_R, VFD_7SEG_B_L,  //18-23
      VFD_7SEG_C_R,     VFD_7SEG_C_L,   VFD_7SEG_D_R,    VFD_7SEG_D_L,     VFD_7SEG_E_R,    VFD_7SEG_E_L,   //24-29
      VFD_7SEG_F_R,     VFD_7SEG_F_L,   VFD_7SEG_G_R,    VFD_7SEG_G_L,    VFD_7SEG_H_R, VFD_7SEG_H_L,   //30-35
      VFD_7SEG_I_R,     VFD_7SEG_I_L,   VFD_7SEG_J_R,    VFD_7SEG_J_L,    VFD_7SEG_SPACE,VFD_7SEG_SPACE,//36-41
      VFD_7SEG_L_R,     VFD_7SEG_L_L,   VFD_7SEG_SPACE,  VFD_7SEG_SPACE,  VFD_7SEG_N_R,  VFD_7SEG_N_L,  //42-47 
      VFD_7SEG_O_R,     VFD_7SEG_O_L,   VFD_7SEG_P_R,    VFD_7SEG_P_L,    VFD_7SEG_SPACE,VFD_7SEG_SPACE,//48-53
      VFD_7SEG_R_R,     VFD_7SEG_R_L,   VFD_7SEG_S_R,    VFD_7SEG_S_L,    VFD_7SEG_T_R,  VFD_7SEG_T_L,  //54-59
      VFD_7SEG_U_R,     VFD_7SEG_U_L,   VFD_7SEG_SPACE,  VFD_7SEG_SPACE,  VFD_7SEG_SPACE,VFD_7SEG_SPACE,//60-65
      VFD_7SEG_SPACE,VFD_7SEG_SPACE,    VFD_7SEG_Y_R,    VFD_7SEG_Y_L,    VFD_7SEG_SPACE,VFD_7SEG_SPACE //66-71     
      };

#else
#define VFD_7SEG_0  (VFD_7SEG_SA|VFD_7SEG_SB|VFD_7SEG_SC|VFD_7SEG_SD|VFD_7SEG_SE|VFD_7SEG_SF)
#define VFD_7SEG_1  (VFD_7SEG_SB|VFD_7SEG_SC)
#define VFD_7SEG_2  (VFD_7SEG_SA|VFD_7SEG_SB|VFD_7SEG_SG|VFD_7SEG_SE|VFD_7SEG_SD)
#define VFD_7SEG_3  (VFD_7SEG_SA|VFD_7SEG_SB|VFD_7SEG_SG|VFD_7SEG_SC|VFD_7SEG_SD)
#define VFD_7SEG_4  (VFD_7SEG_SF|VFD_7SEG_SG|VFD_7SEG_SB|VFD_7SEG_SC)
#define VFD_7SEG_5  (VFD_7SEG_SA|VFD_7SEG_SF|VFD_7SEG_SG|VFD_7SEG_SC|VFD_7SEG_SD)
#define VFD_7SEG_6  (VFD_7SEG_SA|VFD_7SEG_SF|VFD_7SEG_SG|VFD_7SEG_SC|VFD_7SEG_SD|VFD_7SEG_SE)
#define VFD_7SEG_7  (VFD_7SEG_SA|VFD_7SEG_SB|VFD_7SEG_SC)
#define VFD_7SEG_8  (VFD_7SEG_SA|VFD_7SEG_SB|VFD_7SEG_SC|VFD_7SEG_SD|VFD_7SEG_SE|VFD_7SEG_SF|VFD_7SEG_SG)
#define VFD_7SEG_9  (VFD_7SEG_SA|VFD_7SEG_SB|VFD_7SEG_SC|VFD_7SEG_SD|VFD_7SEG_SF|VFD_7SEG_SG)
#define VFD_7SEG_DIG_MASK   (VFD_7SEG_8)

#define VFD_7SEG_SPACE  0
#define VFD_7SEG_DASH   VFD_7SEG_SG //zhg 2002/09/27 15:35
#define VFD_7SEG_A  (VFD_7SEG_SA|VFD_7SEG_SB|VFD_7SEG_SC|VFD_7SEG_SE|VFD_7SEG_SF|VFD_7SEG_SG)
#define VFD_7SEG_b  (VFD_7SEG_SF|VFD_7SEG_SG|VFD_7SEG_SC|VFD_7SEG_SD|VFD_7SEG_SE)
#define VFD_7SEG_B  VFD_7SEG_b
#define VFD_7SEG_C  (VFD_7SEG_SA|VFD_7SEG_SD|VFD_7SEG_SE|VFD_7SEG_SF)
#define VFD_7SEG_d  (VFD_7SEG_SB|VFD_7SEG_SC|VFD_7SEG_SD|VFD_7SEG_SE|VFD_7SEG_SG)
#define VFD_7SEG_D  VFD_7SEG_d
#define VFD_7SEG_E  (VFD_7SEG_SA|VFD_7SEG_SD|VFD_7SEG_SE|VFD_7SEG_SF|VFD_7SEG_SG)
#define VFD_7SEG_F  (VFD_7SEG_SA|VFD_7SEG_SE|VFD_7SEG_SF|VFD_7SEG_SG)
#define VFD_7SEG_G  (VFD_7SEG_SA|VFD_7SEG_SC|VFD_7SEG_SD|VFD_7SEG_SE|VFD_7SEG_SF|VFD_7SEG_SG)
#define VFD_7SEG_H  (VFD_7SEG_SB|VFD_7SEG_SC|VFD_7SEG_SE|VFD_7SEG_SF|VFD_7SEG_SG)
#define VFD_7SEG_I  (VFD_7SEG_SB|VFD_7SEG_SC)
#define VFD_7SEG_J  (VFD_7SEG_SB|VFD_7SEG_SC|VFD_7SEG_SD)
#define VFD_7SEG_L  (VFD_7SEG_SD|VFD_7SEG_SE|VFD_7SEG_SF)
#define VFD_7SEG_N  (VFD_7SEG_SA|VFD_7SEG_SB|VFD_7SEG_SC|VFD_7SEG_SE|VFD_7SEG_SF)
#define VFD_7SEG_O  (VFD_7SEG_SA|VFD_7SEG_SB|VFD_7SEG_SC|VFD_7SEG_SD|VFD_7SEG_SE|VFD_7SEG_SF)
#define VFD_7SEG_P  (VFD_7SEG_SA|VFD_7SEG_SB|VFD_7SEG_SE|VFD_7SEG_SF|VFD_7SEG_SG)
#define VFD_7SEG_o  (VFD_7SEG_SE|VFD_7SEG_SG|VFD_7SEG_SD|VFD_7SEG_SC)
#define VFD_7SEG_r  (VFD_7SEG_SE|VFD_7SEG_SG)
#define VFD_7SEG_R  VFD_7SEG_r
#define VFD_7SEG_S  (VFD_7SEG_SA|VFD_7SEG_SF|VFD_7SEG_SG|VFD_7SEG_SC|VFD_7SEG_SD)
#define VFD_7SEG_t  (VFD_7SEG_SD|VFD_7SEG_SE|VFD_7SEG_SF|VFD_7SEG_SG)
#define VFD_7SEG_T  VFD_7SEG_t
#define VFD_7SEG_U  (VFD_7SEG_SB|VFD_7SEG_SC|VFD_7SEG_SD|VFD_7SEG_SE|VFD_7SEG_SF)
#define VFD_7SEG_Y  (VFD_7SEG_SF|VFD_7SEG_SG|VFD_7SEG_SB|VFD_7SEG_SC)

static const BYTE vfd_digit[38] = { //0-9,A-Z is 0-35
    VFD_7SEG_0, VFD_7SEG_1, VFD_7SEG_2, VFD_7SEG_3, VFD_7SEG_4, //0-4
    VFD_7SEG_5, VFD_7SEG_6, VFD_7SEG_7, VFD_7SEG_8, VFD_7SEG_9, //5-9
    VFD_7SEG_A, VFD_7SEG_B, VFD_7SEG_C, VFD_7SEG_D, VFD_7SEG_E, //10-14
    VFD_7SEG_F, VFD_7SEG_G, VFD_7SEG_H, VFD_7SEG_I, VFD_7SEG_J, //15-19
    VFD_7SEG_SPACE, VFD_7SEG_L, VFD_7SEG_SPACE, VFD_7SEG_N, VFD_7SEG_O, //20-24
    VFD_7SEG_P, VFD_7SEG_SPACE, VFD_7SEG_R, VFD_7SEG_S, VFD_7SEG_T, //25-29
    VFD_7SEG_U, VFD_7SEG_SPACE, VFD_7SEG_SPACE, VFD_7SEG_SPACE, VFD_7SEG_Y, //30-34
    VFD_7SEG_SPACE, VFD_7SEG_DASH,VFD_7SEG_o   //35-37
};

#endif
#endif/*__VFD_7SEG_H*/

⌨️ 快捷键说明

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