一种段码液晶驱动方法
文献发布时间:2023-06-19 10:00:31
技术领域
本发明涉及电子电子技术领域,具体为一种段码液晶驱动方法。
背景技术
在仪器仪表中经常要使用到段码液晶屏,特别是有些设备中需要用显示大量的数字,和独立的固定指示符,而液晶屏厂家在出显示图纸往往因为布局问题很难让各种显示符有规律的分布。因此在程序员做驱动程序时,往往需要根据显示需要将分布在不同位置的段码拼装在一起从而得到一个完整的显示符,比如显示一个数字8 需要7个段码,如果段码分布在不同的SEG引脚中。就需要做一个独立函数把7个段码屏在一起。如果显示内量不多还好。如有大量数字显示,则要做大量函数。将浪费大量开发人员的时间,程序调用起来将十分繁琐浪费效率,而且日后维护起来将十分麻烦。
为此,提出一种段码液晶驱动方法。
发明内容
本发明的目的在于提供一种段码液晶驱动方法,能够使分散无序的同一个数码管的不同液晶段码轻松的从庞大的段码中提取出来构造一个显示数字,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种段码液晶驱动方法,包括以下步骤:
步骤一:断码排序,按液晶图纸从SEG0开始从左到右,按COM0~COM5从上到下定义;
步骤二:分类命名,使用拼装语法,让数字对应段码,组合成一个方便编程的数组;
步骤三:制作段码结构体,制作数字需要段码结构体,即数字映射的段码标志字节,使用一个字节的8个BIT位对应数码的8段;
步骤四:扫描结构体,根据需要显示数字开始扫描结构体;
步骤五:判断是否为对应数字;
步骤六:显示对应的数字。
优选的,在步骤二中:通过以下方法进行组合,#define u8DIGIT_AtoG(n) {DISPLAY_##n##A ,DISPLAY_##n##B ,DISPLAY_##n##C ,
DISPLAY_##n##D ,DISPLAY_##n##E ,DISPLAY_##n##F ,DISPLAY_##n##G }
const static u8 DIGIT_TABLE[][7]={/*A B C D E F G*/。
优选的,在步骤三中:通过如下方式制作结构体:#define CODEA 0x01 /*A笔段 */
#define CODEB 0x02 /* B笔段 */
#define CODEC 0x04 /* C笔段 */
#define CODED 0x08 /* D笔段 */
#define CODEE 0x10 /* E笔段 */
#define CODEF 0x20 /* F笔段 */
#define CODEG 0x40 /* G笔段 */
#define CODEDP 0x80 /* DP笔段 */
static const u8 CODE_TABLE[][2]=
{
{0, CODEA+CODEB+CODEC+CODEC+CODEE+CODEF},
{1, CODEB+CODEC},
{2, CODEA+CODEB+CODEG+CODEE+CODEC},
{3, CODEA+CODEB+CODEG+CODEC+CODEC},
{4, CODEF+CODEG+CODEB+CODEC},
{5, CODEA+CODEF+CODEG+CODEC+CODEC},
{6, CODEA+CODEC+CODEC+CODEE+CODEF+CODEG},
{7, CODEA+CODEB+CODEC},
{8, CODEA+CODEB+CODEC+CODEC+CODEE+CODEF+CODEG},
{9, CODEA+CODEB+CODEC+CODEC+CODEF+CODEG},
{'A', CODEA+CODEB+CODEC+CODEE+CODEF+CODEG},
{'b', CODEC+CODEC+CODEE+CODEF+CODEG},
{'C', CODEA+CODEC+CODEE+CODEF},
{'-', CODEG},
{'E', CODEA+CODEF+CODEE+CODEC+CODEG},
{'F', CODEA+CODEF+CODEE+CODEG},
{'P', CODEA+CODEB+CODEG+CODEF+CODEE},
{'t', CODEF+CODEE+CODEG+CODEC},
{'r', CODEE+CODEG},
{'J', CODEB+CODEC+CODEC+CODEE},
{'o', CODEG+CODEC+CODEC+CODEE},
{'L', CODEF+CODEE+CODEC},
{'d', CODEB+CODEC+CODEC+CODEE+CODEG},
{'U', CODEF+CODEE+CODEC+CODEC+CODEB},
{'S', CODEA+CODEF+CODEG+CODEC+CODEC},
{'V', CODEF+CODEE+CODEC+CODEC+CODEB},
{'H', CODEF+CODEE+CODEG+CODEC+CODEB},
{'K', CODEF+CODEE},
{'n', CODEF+CODEE+CODEA+CODEB+CODEC},
{'i', CODEE},
{'y', CODEB+CODEG+CODEC+CODEF+CODEC},
}。
优选的,在步骤四中,通过如下方式进行扫描结构体,void Display_SetDigit(u8u8n, u8 u8v)
{
u8 u8i,u8j;
u8n--;
if (u8n >= (sizeof(DIGIT_TABLE)/sizeof(DIGIT_TABLE[0]))) return;
for (u8i=0; u8i<(sizeof(CODE_TABLE)/sizeof(CODE_TABLE[0])); i++){
if (SEG[u8i][0] == u8v){
for (u8j=0; u8j<7; u8j++){
if (CODE_TABLE[u8i][1]&(1< mDispBuf[DIGIT_TABLE[u8n][u8j]/6] |= 1<<(DIGIT_TABLE[u8n][u8j]%6); } } return; } } return; }。 与现有技术相比,本发明的有益效果是:使分散无序的同一个数码管的不同液晶段码轻松的从庞大的段码中提取出来构造一个显示数字,从而提高了更换段码液晶显示器程序的效率,同时操作简便,提高了工作效率。 附图说明 图1为本发明的原理图。 具体实施方式 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 请参阅图1,本发明提供一种技术方案: 一种段码液晶驱动方法,包括以下步骤: 步骤一:断码排序,按液晶图纸从SEG0开始从左到右,按COM0~COM5从上到下定义; 步骤二:分类命名,使用拼装语法,让数字对应段码,组合成一个方便编程的数组; 步骤三:制作段码结构体,制作数字需要段码结构体,即数字映射的段码标志字节,使用一个字节的8个BIT位对应数码的8段; 步骤四:扫描结构体,根据需要显示数字开始扫描结构体; 步骤五:判断是否为对应数字; 步骤六:显示对应的数字。 2.根据权利要求1所述的一种段码液晶驱动方法,其特征在于:在步骤二中:通过以下方法进行组合,#define u8DIGIT_AtoG(n) { DISPLAY_##n##A ,DISPLAY_##n##B ,DISPLAY_##n##C , DISPLAY_##n##D ,DISPLAY_##n##E ,DISPLAY_##n##F ,DISPLAY_##n##G } const static u8 DIGIT_TABLE[][7]={/*A B C D E F G*/。 3.根据权利要求1所述的一种段码液晶驱动方法,其特征在于:在步骤三中:通过如下方式制作结构体:#define CODEA 0x01 /* A笔段 */ #define CODEB 0x02 /* B笔段 */ #define CODEC 0x04 /* C笔段 */ #define CODED 0x08 /* D笔段 */ #define CODEE 0x10 /* E笔段 */ #define CODEF 0x20 /* F笔段 */ #define CODEG 0x40 /* G笔段 */ #define CODEDP 0x80 /* DP笔段 */ static const u8 CODE_TABLE[][2]= { {0, CODEA+CODEB+CODEC+CODEC+CODEE+CODEF}, {1, CODEB+CODEC}, {2, CODEA+CODEB+CODEG+CODEE+CODEC}, {3, CODEA+CODEB+CODEG+CODEC+CODEC}, {4, CODEF+CODEG+CODEB+CODEC}, {5, CODEA+CODEF+CODEG+CODEC+CODEC}, {6, CODEA+CODEC+CODEC+CODEE+CODEF+CODEG}, {7, CODEA+CODEB+CODEC}, {8, CODEA+CODEB+CODEC+CODEC+CODEE+CODEF+CODEG}, {9, CODEA+CODEB+CODEC+CODEC+CODEF+CODEG}, {'A', CODEA+CODEB+CODEC+CODEE+CODEF+CODEG}, {'b', CODEC+CODEC+CODEE+CODEF+CODEG}, {'C', CODEA+CODEC+CODEE+CODEF}, {'-', CODEG}, {'E', CODEA+CODEF+CODEE+CODEC+CODEG}, {'F', CODEA+CODEF+CODEE+CODEG}, {'P', CODEA+CODEB+CODEG+CODEF+CODEE}, {'t', CODEF+CODEE+CODEG+CODEC}, {'r', CODEE+CODEG}, {'J', CODEB+CODEC+CODEC+CODEE}, {'o', CODEG+CODEC+CODEC+CODEE}, {'L', CODEF+CODEE+CODEC}, {'d', CODEB+CODEC+CODEC+CODEE+CODEG}, {'U', CODEF+CODEE+CODEC+CODEC+CODEB}, {'S', CODEA+CODEF+CODEG+CODEC+CODEC}, {'V', CODEF+CODEE+CODEC+CODEC+CODEB}, {'H', CODEF+CODEE+CODEG+CODEC+CODEB}, {'K', CODEF+CODEE}, {'n', CODEF+CODEE+CODEA+CODEB+CODEC}, {'i', CODEE}, {'y', CODEB+CODEG+CODEC+CODEF+CODEC}, }。 4.根据权利要求1所述的一种段码液晶驱动方法,其特征在于:所述在步骤四中,通过如下方式进行扫描结构体,void Display_SetDigit(u8 u8n, u8 u8v) { u8 u8i,u8j; u8n--; if (u8n >= (sizeof(DIGIT_TABLE)/sizeof(DIGIT_TABLE[0]))) return; for (u8i=0; u8i<(sizeof(CODE_TABLE)/sizeof(CODE_TABLE[0])); i++){ if (SEG[u8i][0] == u8v){ for (u8j=0; u8j<7; u8j++){ if (CODE_TABLE[u8i][1]&(1< mDispBuf[DIGIT_TABLE[u8n][u8j]/6] |= 1<<(DIGIT_TABLE[u8n][u8j]%6); } } return; } } return; }。 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
- 一种段码液晶驱动方法
- 段码液晶屏与TFT液晶屏组合仪表盖板贴合胶及贴合方法