一、參考資料 二、液晶段碼屏主要參數 1.段電極SEG、公共極COM 一般段碼屏有段電極和公共極,就像在圖中,SEG為段電極,COM為公共極。段碼屏中的每個段,都填充了一種特殊的液態晶體。在電場的作用下,晶體的排列方向會發生扭轉,因而改變其透光性,從而可以看到顯示的內容。一般電場電壓就加在段電極和公共極的兩端。
1.jpg (3.93 KB, 下載次數: 57)
下載附件
2019-7-20 12:07 上傳
圖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”。
2.jpg (79.71 KB, 下載次數: 66)
下載附件
2019-7-20 12:25 上傳
四.本例中代碼分析 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”。
3.jpg (22.21 KB, 下載次數: 44)
下載附件
2019-7-20 12:25 上傳
2. 如下圖定義的 BIAS為0x28,對應于偏壓比為1/2,和給出的參數偏壓比為1/3不符合,分析: (1)提高偏壓比,為了更好的對比度,呈現更好的顯示效果; (2)猜測調成0x29也能正常顯示; 所以,為了更好的顯示效果,#define BIAS 0x28。
4.jpg (24 KB, 下載次數: 52)
下載附件
2019-7-20 12:25 上傳
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等代碼,最后一位任意。
5.jpg (22.49 KB, 下載次數: 57)
下載附件
2019-7-20 12:25 上傳
6.jpg (14.92 KB, 下載次數: 47)
下載附件
2019-7-20 12:25 上傳
2.寫單個地址的數據 (1)先發送“0xa0”中的高3位數據,即“1010 0000”的高三位“101”,代表寫數據; (2)再發送 寫入地址 對應的 6 位數據,從高位到低位,“a5a4a3a2a1a0”,最后從低位向高位發送4位數據“d0d1d2d3”。
7.jpg (19.65 KB, 下載次數: 43)
下載附件
2019-7-20 12:25 上傳
4.連續寫地址數據(以連續寫入6個數據為例) (1)先發送“0xa0”中的高3位數據,即“1010 0000”的高三位“101”,代表寫數據; (2)再發送 初始寫入地址對應的 6 位數據,從高位到低位,“a5a4a3a2a1a0”,最后從低位向高位連續6個發送8位數據“d0d1d2d3d4d5d6d7”。
8.jpg (10.65 KB, 下載次數: 47)
下載附件
2019-7-20 12:25 上傳
9.jpg (25.13 KB, 下載次數: 44)
下載附件
2019-7-20 12:25 上傳
10.jpg (23.33 KB, 下載次數: 48)
下載附件
2019-7-20 12:25 上傳
|