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

📄 htlcd_lib.h

📁 ST736单片机
💻 H
字号:
#ifndef HTLCDlib_h
#define HTLCDlib_h


#undef HTLCD_EXT
#ifndef HTLCD_C
#define HTLCD_EXT extern
#else
#define HTLCD_EXT
#endif

#include "Pub_PUCK.h"

//#define CONFLICT_TAB_CHKEN     //检查所有配置表是否冲突

#define MAX_SEG                 32                 //最大的SEG序号:0~MAX_SEG
#define MAX_COL                 7                  //最大的COL序号:0~MAX_COL

HTLCD_EXT INT8U Show_Lcd_Ram[MAX_SEG+1];         //0~MAX_SEG
HTLCD_EXT INT8U Show_Lcd_Flag;

#define SEG(x)                  x                 //0~MAX_SEG
#define COM(y)                  y            //0~MAX_COL

#define Sx       1  
#define Dx       2  
#define Nx       3  

#define DOT_0   0       //不显示小数点
#define DOT_1   1       //显示下小数点
#define DOT_2   2       //显示上小数点
#define DOT_3   3       //显示2个小数点

//显示设备标示------Sx---------1~255
#define S_A                    1         //A
#define S_B                    2         //B
#define S_C                    3         //C
#define S_N                    4         //N
#define S_SHANG                5         //上
#define S_BEN                  6         //本
#define S_SHANG1               7         //上
#define S_SHIYUE               8         //1
#define S_YUE                  9         //月
#define S_CI                   10        //次
#define S_SHURU                11        //输入
#define S_FAN                  12        //反
#define S_ZHENG                13        //正
#define S_XIANG                14        //向
#define S_XU                   15        //需
#define S_DIAN                 16        //电
#define S_LIANG                17        //量
#define S_SHI                  18        //时
#define S_JIAN                 19        //间
#define S_FEI                  20        //费
#define S_XIANGXIAN1           21        //第1象限符号
#define S_XIANGXIAN2           22        //第2象限符号
#define S_XIANGXIAN3           23        //第3象限符号
#define S_XIANGXIAN4           24        //第4象限符号
#define S_COS                  25        //
#define S_FAI                  26        //
#define S_I1                   27        //I
#define S_I2                   28        //I
#define S_I3                   29        //I
#define S_V                    30        //V
#define S_ZONG                 103       //总
#define S_T                    31        //T
#define S_GUO                  32        //过
#define S_SHUCHU               33        //输出
#define S_WU                   34        //无
#define S_YOU                  35        //有
#define S_GONG0                36        //功
#define S_SHI1                  37        //失
#define S_YA                   38        //压
#define S_LIU                  39        //流
#define S_DUAN                 40        //段
#define S_GONG                 41        //功
#define S_LV                   42        //率
#define S_JIAN1                 44        //尖
#define S_FENG                 45        //峰
#define S_PING                 46        //平
#define S_GU                   47        //谷
#define S_1                    48        //①
#define S_2                    49        //②
#define S_3                    50        //③
#define S_4                    51        //④

#define S_1A1                  52        //A
#define S_1B1                  53        //B

#define S_1C1                  54        //C


#define S_M_55                 55        //MVKWHz
#define S_M_56                 56        //MVKWH

#define S_M_57                 57        //MVKWHz
#define S_M_58                 58        //MVKWHz
#define S_M_59                 59        //MVKWHz

#define S_M_60                 60        //MVKWHz

#define S_M_61                 61        //MVKWHz
#define S_M_62                 62        //MVKWHz

#define S_M_63                 63        //MVKWHz
#define S_M_64                 64        //MVKWHz
#define S_M_65                 65        //MVKWHz

#define S_M_66                 66        //MVKWHz
#define S_M_67                 67        //MVKWHz
#define S_M_68                 68        //MVKWHz

#define S_M_69                 69        //MVKWHz

#define S_CUOFENG              70        //错峰

#define S_QIANFEI              71        //欠费
#define S_DONG                 72        //冬
#define S_RS1                  73        //欠费
#define S_RS2                  74        //欠费
#define S_HONGWAI              75        //红外
#define S_NIXIANGXU            76        //逆相序

#define S_BAT1                 77 
#define S_BAT2                 78
#define S_BAT3                 79

#define S_Ua                   80     //Ua
#define S_Ub                   81     //Ub
#define S_Uc                   82     //Uc

#define S_CIRCLE               83     //圆饼

#define S_ARROW_LEFT           84     //左箭头
#define S_CSQ4                 85     //信号4
#define S_CSQ3                 86     //信号3
#define S_CSQ2                 87     //信号2

#define S_CSQ1                 88     //信号1
#define S_ARROW_RIGHT          89     //左箭头


#define S_Ia_                 90     //-
#define S_Ia                  91     //Ia
#define S_Ib_                 92     //-
#define S_Ib                  93     //Ib
#define S_Ic_                 94     //-
#define S_Ic                  95     //Ic

#define S_TT                  96     //Ic
#define S_BUTTON              97     //Ic
#define S_HOUSE               98     //Ic
#define S_KEY                 99     //Ic
#define S_LOCK                100     //Ic
#define S_LIGHT               101     //Ic
#define S_SHOT                102     //Ic


//显示设备标示------Nx--------'8'-----256~511
#define N_LED(x)              x						//((x&0xff)|0x100)     //某一个'8'字

//显示设备标示------Dx--------'.',":"-----512~767
#define D_(x)                 x						//((x&0xff)|0x200)

typedef struct
{
  INT16U Sign;
  INT8U x;        //Seg
  INT8U y;        //com
}LCD_S_D_POS;


//Sx,Seg,Com,以下是常量元素,Sx,单独可以表达一个意思
HTLCD_EXT LCD_S_D_POS LCD_S_Const[]=
{ 
  {0,0,0},			//位置0,表示为空
  {1,23,1},
  {2,23,2},
  {3,23,3},
  {4,23,4},
  {5,23,5},
  {6,23,6},
  {7,23,7},  
  {8,18,7},  
  {9,31,1},
  {10,31,3},
    
  {11,31,5},
  {12,31,7},  
  {13,30,7},
  {14,30,5},
  {15,30,3},
  {16,30,1},  
  {17,29,1},
  {18,29,3},
  {19,29,5},  
  {20,29,7},  
    
  {21,32,1},
  {22,31,0},
  {23,32,0},
  {24,23,0},
  {25,32,2},
  {26,32,3},
  {27,32,4},
  {28,32,5},
  {29,32,6},
  {30,32,7},
    
  {31,19,7},
  {32,31,2},
  {33,31,4},
  {34,31,6},
  {35,30,6},
  {36,30,4},
  {37,30,2},
  {38,30,0},  
  {39,29,0},
  {40,29,2},
    
  {41,29,4},
  {42,29,6},
  {43,9,7},
  {44,0,7},
  {45,24,7},
  {46,24,3},
  {47,25,3},
  {48,2,7},
  {49,25,5},
  {50,25,6},
  
  {51,26,6},
  {52,27,5},
  {53,26,4},
  {54,27,2},  
  {55,21,1},
  {56,21,2},
  {57,21,3},
  {58,21,4},
  {59,21,5},
  {60,21,6},
    
  {61,21,7},
  {62,22,7},
  {63,22,6},
  {64,22,5},
  {65,22,4},
  {66,22,3},  
  {67,22,2},
  {68,22,1},
  {69,22,0},
  {70,24,1},
    
  {71,25,1},
  {72,24,2},
  {73,25,2},
  {74,25,4},
  {75,25,7},
  {76,26,7},
  {77,27,3},
  {78,27,1},
  {79,27,0},  
  {80,28,3},
  
  {81,28,7},
  {82,28,1},
  {83,26,0},
  {84,10,7},
  {85,11,7},
  {86,12,7},
  {87,13,7},
  {88,14,7},
  {89,15,7},
  {90,21,0},
  
  {91,28,0},
  {92,28,5},
  {93,28,6},
  {94,28,4},
  {95,28,2},
  {96,20,7},
  {97,26,2},
  {98,26,5},
  {99,26,3},  
  {100,27,6},
  
  {101,26,1},
  {102,27,4},  
};
 
#define MAX_S_NUM (sizeof(LCD_S_Const)/sizeof(LCD_S_D_POS))
//Sx,Seg,Com,以下是常量元素,但必须与Nx一起表示一个变量
HTLCD_EXT LCD_S_D_POS LCD_D_Const[]=
{
  {0,0,0},      //位置0,表示为空
  {4,1,7},      //:
  {6,3,7},      //:
  {7,5,7},      //.
  {8,27,7},     //.
  {9,6,7},      //.
  {10,7,7},     //.
  {11,8,7},     //.
  
  {19,16,7},    //.
  {20,17,7},    //.
  {21,24,6},    //.
  {22,24,5}     //.
};

#define MAX_D_NUM (sizeof(LCD_D_Const)/sizeof(LCD_S_D_POS))


#define MAX_AU_ID 4
typedef struct
{
  INT16U Sign;    //Sx, Dx,  Nx
  INT8U x;                    //Seg
  INT8U y;                    //com
  //INT8U RelaType;             //关联类型
  //INT8U RelaNum;             //关联类型
  //INT8U RelaID[MAX_AU_ID];    //关联元素
}LCD_N_POS;

HTLCD_EXT LCD_N_POS LCD_N_Const[]=
{
  //Sx,Seg,Com,以下是变量元素,8字符,A~G联合才能表达一个意思,同时和其它辅助标志关联
  {0,0,0},			 //位置0,表示为空
  {1,18,0},      //A
  {1,18,1},      //B
  {1,18,4},      //C
  {1,18,6},      //D
  {1,18,5},      //E
  {1,18,2},      //F
  {1,18,3},      //G
  
  {2,19,0},      //A
  {2,19,1},      //B
  {2,19,4},      //C
  {2,19,6},      //D
  {2,19,5},      //E
  {2,19,2},      //F
  {2,19,3},      //G
  
  {3,0,0},      //A
  {3,0,1},      //B
  {3,0,4},      //C
  {3,0,6},      //D
  {3,0,5},      //E
  {3,0,2},      //F
  {3,0,3},      //G
  
  {4,1,0},      //A
  {4,1,1},      //B
  {4,1,4},      //C
  {4,1,6},      //D
  {4,1,5},      //E
  {4,1,2},      //F
  {4,1,3},      //G
  
  {5,2,0},      //A
  {5,2,1},      //B
  {5,2,4},      //C
  {5,2,6},      //D
  {5,2,5},      //E
  {5,2,2},      //F
  {5,2,3},      //G
  
  
  {6,3,0},      //A
  {6,3,1},      //B
  {6,3,4},      //C
  {6,3,6},      //D
  {6,3,5},      //E
  {6,3,2},      //F
  {6,3,3},      //G
  
  {7,4,0},      //A
  {7,4,1},      //B
  {7,4,4},      //C
  {7,4,6},      //D
  {7,4,5},      //E
  {7,4,2},      //F
  {7,4,3},      //G
  
  {8,5,0},      //A
  {8,5,1},      //B
  {8,5,4},      //C
  {8,5,6},      //D
  {8,5,5},      //E
  {8,5,2},      //F
  {8,5,3},      //G
  
  {9,6,0},      //A
  {9,6,1},      //B
  {9,6,4},      //C
  {9,6,6},      //D
  {9,6,5},      //E
  {9,6,2},      //F
  {9,6,3},      //G
  
  
  {10,7,0},      //A
  {10,7,1},      //B
  {10,7,4},      //C
  {10,7,6},      //D
  {10,7,5},      //E
  {10,7,2},      //F
  {10,7,3},      //G
  
  {11,8,0},      //A
  {11,8,1},      //B
  {11,8,4},      //C
  {11,8,6},      //D
  {11,8,5},      //E
  {11,8,2},      //F
  {11,8,3},      //G
  
  
  {12,9,0},      //A
  {12,9,1},      //B
  {12,9,4},      //C
  {12,9,6},      //D
  {12,9,5},      //E
  {12,9,2},      //F
  {12,9,3},      //G
  
  {13,20,0},      //A
  {13,20,1},      //B
  {13,20,4},      //C
  {13,20,6},      //D
  {13,20,5},      //E
  {13,20,2},      //F
  {13,20,3},      //G
  
  
  {14,10,0},      //A
  {14,10,1},      //B
  {14,10,4},      //C
  {14,10,6},      //D
  {14,10,5},      //E
  {14,10,2},      //F
  {14,10,3},      //G
  
  {15,11,0},      //A
  {15,11,1},      //B
  {15,11,4},      //C
  {15,11,6},      //D
  {15,11,5},      //E
  {15,11,2},      //F
  {15,11,3},      //G
  
  
  {16,12,0},      //A
  {16,12,1},      //B
  {16,12,4},      //C
  {16,12,6},      //D
  {16,12,5},      //E
  {16,12,2},      //F
  {16,12,3},      //G
  
  {17,13,0},      //A
  {17,13,1},      //B
  {17,13,4},      //C
  {17,13,6},      //D
  {17,13,5},      //E
  {17,13,2},      //F
  {17,13,3},      //G
  
  
  {18,14,0},      //A
  {18,14,1},      //B
  {18,14,4},      //C
  {18,14,6},      //D
  {18,14,5},      //E
  {18,14,2},      //F
  {18,14,3},      //G
  
  {19,15,0},      //A
  {19,15,1},      //B
  {19,15,4},      //C
  {19,15,6},      //D
  {19,15,5},      //E
  {19,15,2},      //F
  {19,15,3},      //G
  
  
  {20,16,0},      //A
  {20,16,1},      //B
  {20,16,4},      //C
  {20,16,6},      //D
  {20,16,5},      //E
  {20,16,2},      //F
  {20,16,3},      //G
  
  {21,17,0},      //A
  {21,17,1},      //B
  {21,17,4},      //C
  {21,17,6},      //D
  {21,17,5},      //E
  {21,17,2},      //F
  {21,17,3}     //G
};


#define MAX_N_NUM (sizeof(LCD_N_Const)/sizeof(LCD_N_POS))

typedef struct
{
  INT8U Type_8;     //0~9,A b,C,d,E,F,上口('O'),下口('o'),=,-
  INT8U Num;        //元素个数
  INT8U Pxy8[7];    //显示的元素都是'A'~'G'组成
}LCD_LED;

//对'8'的描述
HTLCD_EXT LCD_LED LED_Pixy8_Const[]=
{  
  {'0',6,{'A','B','C','D','E','F'}},
  {'1',2,{'B','C'}},
  {'2',5,{'A','B','D','E','G'}},
  {'3',5,{'A','B','C','D','G'}},
  {'4',4,{'B','C','F','G'}},
  {'5',5,{'A','C','D','F','G'}},
  {'6',6,{'A','C','D','E','F','G'}},
  {'7',3,{'A','B','C'}},
  {'8',7,{'A','B','C','D','E','F','G'}},
  {'9',6,{'A','B','C','D','F','G'}},
  
  {'A',6,{'A','B','C','E','F','G'}},
  {'b',5,{'C','D','E','F','G'}},
  {'C',4,{'A','D','E','F'}},
  {'d',5,{'B','C','D','E','G'}},
  {'E',5,{'A','D','E','F','G'}},
  {'F',4,{'A','E','F','G'}},
  {'O',4,{'A','B','F','G'}},      //上口
  {'o',4,{'C','D','E','G'}},      //下口
  {'P',5,{'A','B','E','F','G'}},
  {'=',2,{'A','D'}},
  {'-',1,{'G'}}
};


#define MAX_LED_NUM (sizeof(LED_Pixy8_Const)/sizeof(LCD_LED))

//以下3个函数提供给应用层
INT8U SetOnDevice_PUCK(INT16U Device);       //Sx
INT8U SetOnDevice_D_PUCK(INT16U Device);      //Dx
INT8U SetOnLED8Device_PUCK(INT16U DeviceID,INT8U DisChar);    //Nx

#endif 

⌨️ 快捷键说明

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