段码液晶显示屏简称段码屏(LCD SEGMENT DISPLAY)。本文以如下图数字显示的段码屏(YR1213)为例,从初学者的角度,分析一个段码屏的驱动原理。
每个显示单元单独控制。例如一个数字分成A、B、C、D、E、F、G 7个显示单元,一个小数点为一个单独的显示单元。这样的定义方式,方便开发者在开发时定位显示单元的位置。如显示数字1,将单元B、C驱动显示即可,显示数字2,驱动A、B、G、E、D显示即可。
每个独立的显示单元,通过控制两端的电压实现控制显示。
以3.3v显示屏为例,如果COM、SEG端压差为3.3v则COM显示,如果压差为0V 则不显示;(注意:使用交流电驱动(采用方波),直流可能会导致液晶屏损坏)。
为什么把显示单元的两端分为COM和SEG端?了解完驱动方式可知答案。?
一般是在 COM 口加一恒定的交变方波信号,通过控制 SEG 的电压变化而在 LCD 间产生所需的 0 电压或两倍幅值的交变电压,达到对 LCD 进行亮灭的控制。这样一个七段的LCD就需要 8 个口进行驱动。
当显示字段增多时,为了减少引出线和驱动回路数,就要采用时分割驱动方式。时分割驱动方式通常采用电压平均化法,其占空比用 1/2、1/4、1/8、1/16、1/32 等,偏比有 1/2、1/3、1/4、1/5 等,其分母数字越大,则其清晰度越高。
按照时分割方式驱动,驱动此段码屏就只需要四个COM和8个seg,31个显示单元就只需要12个PIN脚进行驱动。?
按照屏幕手册提供的”坐标”信息,可以知道具体的显示单元受哪个COM和SEG控制,例如第一个数字显示为1,则选通1B 1C,设置1B对应的公共电极端COM3,选通电极的端为第六脚。?
SWM241系列所有型号SLCD控制模块操作均相同,使用前需使能SLCD控制模块时钟, 并通过设置PA15输出高电平开启SLCD电源域。最大支持4COM*32SEG驱动(不同封装有差异),支持偏压(BIAS)、占空比(DUTY)、帧率、配置。
以上文YR1213型号为例,根据SWM241 库开发,编写 4COM,8SEG段码屏驱动:首先根据屏幕手册确定屏幕的工作电压,确认PCB连线方式。
以一下SWM241与屏幕脚位连接方式为例:
第一步:华芯微特SWM241数据手册,确定SWM241 COM与SEG驱动口功能、屏幕COM SEG的功能,为避免顺序混乱,定义为宏方便修改连线方式。?
?
第二步:设置PA15输出高电平开启SLCD电源域
第三步:配置LCD的GPIO功能
第四步:设置驱动参数初始化并打开驱动模块
驱动参数详解:
Duty:占空比:? SLCD_DUTY_1DIV4 ? SLCD_DUTY_1DIV3
Bias:偏置模式:SLCD_BIAS_1DIV3 ?? SLCD_BIAX_1DIV2
FrameFreq:帧频率:?
SLCD_FRAMEFREQ_488Hz?
SLCD_FRAMEFREQ_244Hz?
SLCD_FRAMEFREQ_122Hz?
SLCD_FRAMEFREQ_61Hz
Duty在屏幕的数据手册中会给出,SLCD_DUTY_1DIV4 为1/4,
Bias在屏幕的数据手册中会给出,?SLCD_BIAS_1DIV3 ?为1/3
FrameFreq:根据需要的刷新频率设定,可调整看显示效果,无拖影显示效果明显即可。
第五步:点亮屏幕测试效果
点亮所有显示单元,测试所有单元显示有效:
完成以上五步,查看显示
第六步:根据“坐标图“,自定义显示数据
?例如显示 1.1.1.1