介紹碼屏的一般結構、原理、驅動方法和使用ht1621驅動段碼屏的方法。
一、 段碼屏的顯示原理和驅動方法
一般段碼屏有段電極和公共極,就像在圖 2中,seg1~seg5為段電極,com為公共極。段碼屏中的每個段,都填充了一種特殊的液態晶體。在電場的作用下,晶體的排列方向會發生扭轉,因而改變其透光性,從而可以看到顯示的內容。一般電場電壓就加在段電極和公共極的兩端。
但是段碼液晶顯示屏不像數碼管,施以一定大小的直流正向電壓就能顯示,如果在seg和com兩端加直流電壓,將會導致液態晶體不可逆的損壞。那麼正確的操作是怎樣呢?資料上說要想液晶顯示的話需要在seg和com兩端需要施加一定壓差的交流電,假如不要液晶顯示的話也需要在seg和com兩端施加電壓,不過施加電壓的壓差很小或者為零就可以。舉個例子,我們要點亮某個段時,只需要保證給其電極兩端加的電壓差為3.3v(如com1=3.3v,seg1=0v),並且間隔合適的時間,將這兩極的電壓反轉輸出(如com1=0v,seg1=3.3v);不點亮某個段時,只需要保證給其電極兩端加的電壓差為0v(如com1=3.3v,seg1=3.3v),並且間隔合適的時間,將這兩極的電壓反轉輸出(如com1=0v,seg1=0v)。
上面將的就是段碼屏的原理,下面舉個簡單的例子,說一下段碼屏的結構。這個段碼屏能顯示的字元是「888.e」,一共有10個引腳,1-4號引腳分別是com4-com1,5-10號引腳分別是seg1-seg6。假如我們想讓第乙個符號顯示「8」,就需要第乙個字元的abcdefg碼段都點亮,就需要在com1-seg2,com2-seg1和seg2, com3-seg1和seg2, com4-seg1和seg2,之間同時施加交流電壓,就是圖 4裡左邊的電壓邏輯。可以看出,這個段碼屏的驅動方式還是比較複雜的,所以,咱們為了簡便,需要使用到乙個段碼屏驅動晶元ht1621,在下一節詳細地講一講。
二、 用ht1621來驅動段碼屏
客官您看了在上一章節介紹的段碼屏驅動原理吧,要想點亮乙個碼段就需要在它的兩極施加交流電壓,客官您是不是感覺太麻煩了,其實沙鷗也有這個感覺,不過其實廠家一般是用一些驅動晶元來做段碼屏產品,比較常見的就是ht1621.
那ht1621又是幹嘛的呢,來自百科的解釋,ht1621是128 點記憶體映象和多功能的lcd驅動器,ht1621 的軟體配置特性使它適用於多種lcd應用場合包括lcd模組和顯示子系統,用於連線主控制器和ht1621的管腳只有4 或5 條,ht1621 還有乙個節電命令用於降低系統功耗,一句話來說,ht1621就是用來驅動lcd的,它跟主控制器用幾根線連線就可以了。那麼問題來了,用ht1621怎麼來驅動段碼屏呢?
查閱了很多資料,有一篇文件非常值得推薦:《多功能lcd驅動器ht1621及其應用》,關於ht1621的具體引數、引腳配置等資訊可以找一下它的datasheet看看,本文就直接講一下怎麼使用這個晶元。
ht1621有seg0~seg31一共32個段電極輸出,com0~com3四個背電極輸出,也就是能夠驅動32*4=128個段碼。在實際的應用中,一般我們是用不了這麼多個段碼的,可以先從低位向高位依次連線到段碼屏。圖 6又舉了乙個例子講了一下微控制器、ht1621和段碼屏的接線。
線接好了,那問題來了,怎麼讓段碼屏顯示我們想要的字元呢?
看來還得從ht1621說起,ht1621內部有個ram,大小是32*4=128,對應著32個seg和4個com電極組成的128個段碼。將ram中某一位置1,那麼對應的段碼就會被點亮,同樣,置0的話,對應的段碼就不顯示,如圖 7。舉個例子,如圖 8的段碼屏,我們想讓第一位顯示字元「1」,根據圖 5的邏輯表,我們需要讓b和c碼段的電極seg2-com2、seg2-com3兩端有電壓差,假如是用ht1621驅動並且按照圖 5接線,那麼只需要讓ht1621 ram中位址1中的資料位d1、d2為1,其餘為0即可。
那麼問題又來了,怎麼讓ram中的資料變化呢?這就需要使用到微控制器等微處理器,由微控制器向ht1621傳輸資料改變ram中內容,ht1621和微控制器有四個引腳是連線的,cs、rd、wr和data,微控制器就是通過這幾個連線的引腳採用序列通訊的方式向ht1621傳輸資料。
它們之間通訊的時序圖如圖 9,可見按照時序控制cs,wr,data引腳就能向ht1621的ram中寫入資料,從而改變段碼屏中的顯示內容。