段式液晶程序设计技巧

一、段式液晶的基本参数

1.Duty:占空比

该项参数一般也称为Duty数或者com数,段式液晶一般采用时分动态扫描的驱动模式,此模式下,每个com的有效选通时间与整个扫描周期的比值即占空比是固定的,等于1/com数。

2.Bias:偏置

LCD的SEG/COM的驱动波形为模拟信号,而各档模拟电压相对于LCD输出的最高电压的比例称为偏置,而一般来讲,Bias是以最低一档与输出最高电压的比值来表示。一般而言,bias和duty之间是有一定联系的,duty数越多,每根com对应的扫描时间变短,而要达到同样的显示亮度和显示对比度,von的电压就要提高,选电平和非选电平的差异需要加大,即Bias需要加大,Duty和Bias间有一个经验公式,即:
Bias = 1/(√Duty + 1)

3.VDD:工作电压

液晶分子是需要交流信号来驱动的,长时间的直流电压加在液晶分子两端,会影响液晶分子的电气化学特性,引起显示模糊,寿命减少,其破坏性不可恢复。

4.Frame:扫描帧频

扫描频率,直接驱动液晶分子的交流电压的频率一般在60~100Hz之间,具体是依据LCDPanel的面积和设计而定,频率过高,会导致驱动功耗的增加,频率过低,会导致显示闪烁,同时如果扫描频率同光源的频率之间有整数倍关系,则显示也会有闪烁现象出现。

其他诸如可视角度,连接方式,工作温度范围之类的,那就根据具体需求让供应商做就好了;

二、段码液晶屏真值表

这个如果设计好了,程序写起来也会方便很多,以下面的为例:


主要是中间8个显示数字的段码,所有的最好按照同样的规律排布:

这样我们就好计算出显示不同数字所需要的数组:

然后将数组写到程序中:

至于如何控制段码屏显示,有的MCU如MSP4304152支持段码驱动,如果不支持可以使用专门的驱动IC如HT1621B/HT1622等,驱动搞定之后,无非就是写入数据,每个数据位控制对应的段码显示还是不显示;
道理都一样,但是使用一些C语言的技巧会使程序更简洁,效率更高;

下面要介绍的就是一个结构体和一个数组组合为一个共用体:

typedef union _DISPLAY{struct{unsigned NUM4:8;        unsigned NUM5_3:3;//低位开始unsigned S14_KBIT:1;unsigned NUM5_4:4;unsigned NUM6_3:3;unsigned S13_RH:1;unsigned NUM6_4:4;unsigned NUM7_3:3;unsigned S10_BOT_P:1;unsigned NUM7_4:4;unsigned NUM0:8;unsigned NUM1_3:3;unsigned S12_F:1;unsigned NUM1_4:4;unsigned NUM2_3:3;unsigned S11_C:1;unsigned NUM2_4:4;unsigned NUM3_3:3;unsigned S9_TOP_P:1;unsigned NUM3_4:4;unsigned S5_BAUD:1;unsigned S6_ADR:1;unsigned S7_TX:1;unsigned S8_RX:1;unsigned S1_WARNNING:1;unsigned S2_HI:1;unsigned S3_LO:1;unsigned S4_SET:1;}Segment;//段码真值表中对应到SEG18*4 = 72 ,共72个段码,这里是以一个字节(8bit)为单位写数据,所以数组大小为72/8 = 9 UINT8 Content[9];
}DISPLAY;
void AppLCDShowVersionAddr(void)
{UINT8 i,*Point;CommSet.Addr = ParaRO.Item.Serial[0];UINT8 temp = CommSet.Addr;for (i = 0; i < DISP_LEN; i++)//Clear DisplayDisplay.Content[i] = 0;Display.Segment.S9_TOP_P = ON; //单独控制某一个段码Display.Content[4] |= NUMBER[BLANK];//控制整个数码显示对应内容Display.Content[5] |= NUMBER[CHAR_U];Display.Content[6] |= NUMBER[ParaRO.Item.Version[3]-48];Display.Content[7] |= NUMBER[ParaRO.Item.Version[4]-48];Display.Content[3] |= NUMBER[temp % 10];  temp /= 10;Display.Content[2] |= NUMBER[temp % 10];Display.Content[1] |= NUMBER[temp /= 10];/*********************LCDUpdate**********************/Point = (void *)&LCDM1;for(i=0;i<DISP_LEN;i++)//填充完数组后直接用数组刷新所有显示内容*Point++ = Display.Content[i];
}

段式液晶程序设计技巧相关推荐

  1. 单片机直接驱动段式液晶

    0X00 最近几天需要用到段式液晶,同事打样回来,惊奇发现驱动不了,放狗一顿搜,才发现硬件连接错误,同事直接把seg com直接连接到单片机IO上了,直接用IO来驱动段式液晶不是不可以,但是1/2偏压 ...

  2. 段码液晶屏笔段电压范围_一种笔段式液晶屏测试装置的制作方法

    本实用新型属于液晶屏测试技术领域,具体涉及一种笔段式液晶屏测试装置. 背景技术: 笔段式液晶屏,用以区别于点阵型液晶屏,是液晶产品中的一种,其又称为段码液晶.图案型液晶屏或单色液晶屏等.笔段式液晶屏叫 ...

  3. TM1722驱动笔段式液晶策略的一些理解

    最近在使用一款杭州航龙电子科技有限公司的一款笔段式液晶屏,使用TM1722来驱动液晶,对于液晶的驱动有些个人的理解.网上关于这款芯片的资料好像有些少,故将我理解的TM1722驱动液晶屏的策略与大家分享 ...

  4. 国家二级c语言程序设计技巧,计算机等级考试二级C语言程序设计技巧.doc

    计算机等级考试二级C语言程序设计技巧 在许多应用软件运行时都带有命令行参数,其实这些命令行参数在C语言编写的程序中也可以实现,灵活地运用命令行参数进行处理可以有效地提高程序的运行效率,收到事半功倍的效 ...

  5. 070_《Delphi7程序设计技巧与实例》

    <Delphi7程序设计技巧与实例> Delphi 教程 系列书籍 (070) <Delphi7程序设计技巧与实例> 网友(邦)整理 EMail: shuaihj@163.co ...

  6. FRDM-KL43开发板驱动段式液晶SLCD的实现方法

    LCD的驱动不像LED那样,加上电压(LED实际上是电流驱动)就可以长期显示的. LCD驱动必须使用交流电压驱动才能保持稳定的显示,如果在LCD上加上稳定的直流电压, 不但不能正常显示,时间久了还会损 ...

  7. 国家二级c语言程序设计技巧,国家二级C语言机考程序设计题技巧.doc

    计算机国家二级C机考程序设计题技巧 双击桌面上的,启动计算机等级考试二级模拟软件:启动软件后出现如下界面,选择练习模式后确定: 之后出现下面窗口,选择一套题,我们提供的模拟软件中共提供了50套模拟题目 ...

  8. Windows 程序设计技巧

    #include<iostream> #include<windows.h>using namespace std;int main() {int nSelect = ::Me ...

  9. Android学习总结————Java程序设计技巧与开发实例(朱福喜)

    第一部分   记于2013年7月21 1.安卓开发环境的安装 (1)设置相关环境变量 a.JAVA_HOME        D:\Java\jdk1.6.0_29 b.PATH          %J ...

最新文章

  1. Linux课2021
  2. 给AI一张高清照片,分分钟还你细节满满的3D人体模型,GitHub标星3.6k | 在线可玩...
  3. 被陆奇看好的项目都好奇葩
  4. [C++] C++风格的强制类型转换探讨
  5. 二叉树结点入度等于出度
  6. linux压缩和打包的区别,Linux中的压缩和打包
  7. Python入门字符串
  8. alibaba fastjson
  9. 学习笔记7-C语言-进制转换、原返补、位运算、函数
  10. Python基础----NumPy
  11. 厉害,96秒100亿,阿里双十一到底做了什么杠过亿级流量??
  12. 极客导航 - 建站教程的背景
  13. 三星GAST考试分享
  14. python绘制相频特性曲线_详解基于python的图像Gabor变换及特征提取
  15. 【转载】7个最佳的双因素认证解决方案
  16. 宇视摄像机媒体流达到上限
  17. hdu 3625 Examining the Rooms
  18. 基于sinc的音频重采样(一):原理
  19. win11 右键菜单恢复成win10样式(亲测有效)
  20. TreeMap用法 示例

热门文章

  1. python pil grab screen
  2. 校验国内外的座机和手机号码
  3. 打码兼职练习程序下载及说明
  4. 谈谈DDD(领域驱动设计)
  5. 华为鸿蒙支持APP,曝华为鸿蒙 2.0 将于 6 月 2 日正式登场,200+ 主流 App 已支持
  6. Android RecyclerView只显示第一行
  7. Excel Vba快速界面设计入门
  8. MAC OS苹果系统密码破解方法
  9. rsyslogd(开机或大量消息)消息丢失速率限制[internal_messages]: 569 messages lost due to rate-limiting
  10. 1分钟利用Excel快速制作随机点名器