一、参考资料 二、液晶段码屏主要参数 1.段电极SEG、公共极COM 一般段码屏有段电极和公共极,就像在图中,SEG为段电极,COM为公共极。段码屏中的每个段,都填充了一种特殊的液态晶体。在电场的作用下,晶体的排列方向会发生扭转,因而改变其透光性,从而可以看到显示的内容。一般电场电压就加在段电极和公共极的两端。 图1 2.供电电压、偏压比(偏置比)Bias、占空比Duty (1)占空比:1根COM线在扫描过程中所占的时间,假如一共用了2根COM线,Duty=1/2,假如一共用了3根COM线,Duty=1/3,假如一共用了4根COM线,Duty=1/4。 HT1621一共可驱动4根COM,占空比 Duty 取值范围是1/2或1/3或1/4。 (2)偏压比:偏压就是用于控制液晶偏转角度的电压,HT1621的偏压比 Bias 取值范围是1/2或1/3。当供电电压为3.3V,偏压比为1/3时,求得偏压为 3.3V*(1/3)=1.1V,代表 图1 中 SEG和COM之间的电压差值超过偏压1.1V时点亮。 三、HT1621的指令代码介绍 如下表为部分能用到的指令代码,其中: (1)以第一个指令 READ 为例,指令“110a5a4a3a2a1a0d0d1d2d3”的前三位“110”代表读数据操作 READ,中间的“a5a4a3a2a1a0”为6位地址(高位在前,以二进制的0-31对应对应32个段电极SEG0-SEG31),最后的“d0d1d2d3”为4位数据(低位在前,每一位依次对应4个COM中的一个)。 (2)指令 SYSEN,“100 0000 0001 x”,打开系统时钟,其中前三位“100”代表发出的是命令,取得控制权,中间的8位“00000001”换算成十六进制为0x01,固定代码指示打开系统时钟,最后一位“x”代表任意传入一位“0”或“1”。 (3)指令 LCDOFF,“100 0000 0010 x”,关闭偏置发生器,其中前三位“100”代表发出的是命令,取得控制权,中间的8位“00000010”换算成十六进制为0x02,固定代码指示关闭偏置发生器,最后一位“x”代表任意传入一位“0”或“1”。 (4)指令 LCDON,“100 0000 0011 x”,打开偏置发生器,其中前三位“100”代表发出的是命令,取得控制权,中间的8位“00000011”换算成十六进制为0x03,固定代码指示打开偏置发生器,最后一位“x”代表任意传入一位“0”或“1”。 (5)指令 BIAS 1/2,“100 0010 abx0 x”,偏压比为1/2时使用,其中前三位“100”代表发出的是命令,取得控制权,中间的8位“0010abx0”中“ab”可取“00”或“01”或“10”,分别代表2个COM或3个COM或4个COM,最后一位“x”代表任意传入一位“0”或“1”。 (6)指令 BIAS 1/3,“100 0010 abx1 x”,偏压比为1/3时使用,其中前三位“100”代表发出的是命令,取得控制权,中间的8位“0010abx1”中“ab”可取“00”或“01”或“10”,分别代表2个COM或3个COM或4个COM,最后一位“x”代表任意传入一位“0”或“1”。 四.本例中代码分析 1.从下图可知,本液晶屏供电电压3.3V,占空比1/4,偏压比1/3,根据 三 中的分析,可得 使用指令 BIAS 1/3,其中占空比为1/4,即使用4个COM,得到“ab”为“10”,所以代码为“100 0010 10x1 x”,令“x”均为“0”,得到中间的8位指令为“0010 1001”,即为十六进制的“0x29”。 此处,如果使用指令 BIAS 1/2,其中占空比为1/4,即使用4个COM,得到“ab”为“10”,所以代码为“100 0010 10x0 x”,令“x”均为“0”,得到中间的8位指令为“0010 1000”,即为十六进制的“0x28”。
2. 如下图定义的 BIAS为0x28,对应于偏压比为1/2,和给出的参数偏压比为1/3不符合,分析: (1)提高偏压比,为了更好的对比度,呈现更好的显示效果; (2)猜测调成0x29也能正常显示; 所以,为了更好的显示效果,#define BIAS 0x28。 3.根据 三 中的说明,指令 SYSEN,“100 0000 0001 x”,打开系统时钟,其中前三位“100”代表发出的是命令,取得控制权,中间的8位“00000001”换算成十六进制为0x01,最后一位“x”代表任意传入一位“0”或“1”, 所以 #define SYSEN 0x01。 4.根据 三 中的说明,指令 LCDOFF,“100 0000 0010 x”,关闭偏置发生器,其中前三位“100”代表发出的是命令,取得控制权,中间的8位“00000010”换算成十六进制为0x02,最后一位“x”代表任意传入一位“0”或“1”, 所以 #define LCDOFF 0x02。 5.根据 三 中的说明,指令 LCDON,“100 0000 0011 x”,打开偏置发生器,其中前三位“100”代表发出的是命令,取得控制权,中间的8位“00000011”换算成十六进制为0x03,最后一位“x”代表任意传入一位“0”或“1”, 所以 #define LCDON 0x03。 五、结合代码 1.发送3个命令 BIAS、SYSEN、LCDON, (1)先发送“0x80”中的高3位数据,即“1000 0000”的高三位“100”,代表命令; (2)再发送 BIAS、SYSEN、LCDON 对应的 8 位数据 0x28、0x01、0x02等代码,最后一位任意。 2.写单个地址的数据 (1)先发送“0xa0”中的高3位数据,即“1010 0000”的高三位“101”,代表写数据; (2)再发送 写入地址 对应的 6 位数据,从高位到低位,“a5a4a3a2a1a0”,最后从低位向高位发送4位数据“d0d1d2d3”。 4.连续写地址数据(以连续写入6个数据为例) (1)先发送“0xa0”中的高3位数据,即“1010 0000”的高三位“101”,代表写数据; (2)再发送 初始写入地址对应的 6 位数据,从高位到低位,“a5a4a3a2a1a0”,最后从低位向高位连续6个发送8位数据“d0d1d2d3d4d5d6d7”。
|