MSP430單片機HT1261驅動LCD段碼屏

去年幫人做的一個段碼屏相關的開發,網上有關這方面的資料比較少,這裏寫一點自己的積累。

一、參考資料

(1)http://www.51hei.com/bbs/dpj-127088-1.html
(2)https://wenku.baidu.com/view/0b3e1e4f2b160b4e767fcf61.html(重點)
(3)https://blog.csdn.net/cxycao/article/details/77112984
(4)https://blog.csdn.net/qq_43188920/article/details/91511913

二、液晶段碼屏主要參數
1.段電極SEG、公共極COM

一般段碼屏有段電極和公共極,就像在圖中,SEG爲段電極,COM爲公共極。段碼屏中的每個段,都填充了一種特殊的液態晶體。在電場的作用下,晶體的排列方向會發生扭轉,因而改變其透光性,從而可以看到顯示的內容。一般電場電壓就加在段電極和公共極的兩端。
在這裏插入圖片描述

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也能正常顯示;
(3)按照博客 https://blog.csdn.net/qq_43188920/article/details/91511913中所說,“當液晶屏的工作電壓小於4.5V時讓客戶做1/2偏壓,此時液晶抖度大清晰度高,容易過法線。相反,若用1/3偏壓垂直視角不清晰,且無法過法線。”
所以,爲了更好的顯示效果,#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”。
在這裏插入圖片描述

3.連續寫地址數據(以連續寫入6個數據爲例)

(1)先發送“0xa0”中的高3位數據,即“1010 0000”的高三位“101”,代表寫數據;
(2)再發送 初始寫入地址對應的 6 位數據,從高位到低位,“a5a4a3a2a1a0”,最後從低位向高位連續6個發送8位數據“d0d1d2d3d4d5d6d7”。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
歡迎關注:FPGA探索者
主做 FPGA 無線通信,Verilog設計,Vivado HLS,嵌入式
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章