用液晶驱动芯片简单,HT1621b就可以, |
先一个一个数字测试好编码。然后封装起来调用就行 |
啊伟诶诶 发表于 2022-7-19 15:09 所谓交流驱动并不是非得正负交替。COM端电压实际是在0V、VCC,1/2VCC,3种状态变化,1/2VCC是在IO口设置高阻模式,由外部的两个同值电阻分压获得。笔段端电压只在0V和VCC,两种状态变化,对液晶两极而言就是交流电压。VCC不论采用的是5V还是3.3V,1/2VCC都不能满足笔段显示,只要在笔段与COM之间加电压>3V,笔段就能显示,否则不显示。但液晶不能长期加固定电压,否则液晶会被极化而无法改变显示。所以要不断改变液晶两极的电场方向。这就是所谓交流驱动的原因。前面帖子提供的LCD显示代码已经非常清楚的表明上述解释。项目完整代码因商业原因不能提供,这是大家都懂的。 |
wulin 发表于 2022-7-11 08:06 感谢大哥,但我实在没搞懂怎么用交流驱动这种段码屏 ![]() ![]() ![]() ![]() |
本帖最后由 wulin 于 2022-7-11 10:28 编辑 这个屏相当于4位半数字段码屏,如用单片机直接驱动这种LCD屏,其端口必须具备高阻模式。每个COM 口接两个分压电阻以提供1/2VCC。再以2ms高电平,2ms低电平,6ms1/2VCC(高阻态)的交流方式轮流使能4个COM。在某COM口使能期间(交流),与其对应的笔段电平相反的显示,电平相同的不显示。由于COM口不像LED那样对应一个“8”字,而是对应各字符的一部分。所以要用一个int型缓存数组把对应笔段分离出来同时显示。例: dis_buf[0]=(T5>>3|T4)|(1F>>1|1A<<2)|(2F<<1|2A<<4)|(3F<<3|3A<<6)|(V<<8);//V.3F.3A.2F.2A.1F.1A.T5.T4 dis_buf[1]=(T6>>3|T3)|(1G>>1|1B<<2)|(2G<<1|2B<<4)|(3D<<3|3B<<6)|(A<<8);//A.3G.3B.2G.2B.1G.1B.T6.T3 .........下面是一个实际使用中的LCD驱动代码,放在2ms中断中运行。单片机型号STC15W408AS
![]() ![]() |
数码管驱动IC来控制,比较直接 |
这不是LCD吗? 在中断里面刷新LCDram就行。 |
你这是个段码屏,跟数码管驱动不太一样,还要按偏压值来设计电压组合 |
1 你的单片机必须有高阻输入模式 2 每个COM 脚接上两个相同阻值的电阻来达到1/2Vdd的条件 3 根据下图输出 ![]() |
好奇葩的LCD,出线在窄边。。应力测试过了吗? |
怎么驱动不是有图了么,用脉冲去驱动恰当的刷新频率就行了 |
数码管驱动IC来控制 |
这是9个SEG*4个COM,选一款合适的LED驱动IC即可 |
先知道怎么驱动数码管,了解原理。按上面的需要13脚来驱动考虑到应该还有其他功能需要到引脚,可以考虑用数码管驱动IC来控制 |
最好用数码管驱动IC sm1623,sm1628等,如果纯单片机I/O来控制也是可以的,先搞请,第1个8字,就是1A+1B+1C+1D+1E+1F+1G,显示一个“4”,就是1B,1C,1F,1G点亮,其余熄灭,显示一个“F” 1A,1E,1F,1G点亮,第2个8,2A......2G,第3个8,3A.....3G |
知道了端电压点亮和熄灭就可以用编程实现 |