這幾天在寫ht1621b顯示LCD的程序,主芯片是Stm32f10的芯片。對於stm32和ht1621b的運用和操作本人是新手,屬於趕鴨子上架,通過查看datasheet等資料和網上查看前人寫的程序終於完成了LCD的顯示,在此做個記錄以備不時之需,並希望像能幫助想我一樣的新人少走點彎路和共同學習。
- 接口腳和顯示內存。
ht1621b的接口腳主要有4個,分別是CS腳,DATA腳,WR腳,RD腳。我們只對LCD進行顯示的話可以不用考慮RD腳。CS腳用於初始化串行接口電路和結束主控制器與HT1621之間的通訊。CS腳設置為1 時主控制器和HT1621之間的數據和命令無效並初始化。在產生模式命令或模式轉換之前必須用一個高電平脈沖初始化HT1621的串行接口。DATA腳是串行數據輸入/輸出管腳,讀/寫數據和寫命令通過管腳DATA進行。RD腳是讀時鍾輸入管腳。在RD信號的下降沿時數據輸出管腳DATA上。在RD信號上升沿和下一個下降沿之間,主控制器應讀取相應的數據。WR腳是寫時鍾輸入管腳,在WR信號上升沿時,管腳DATA上的數據、地址和命令被寫入HT1621。可選的管腳IRQ可用作主控制器和HT1621之間的接口,IRQ可用軟件設置作為定時器輸出或WDT溢出標志輸出。主控制器與HT1621的IRQ腳相連接后,可以實現時基或WDT 功能。
ht1621b的顯示內存是以32X4位的格式儲存所顯示的數據,RAM的數據直接映象到LCD 驅動器,可以使用讀寫命令訪問。
當初本人也是不理解“RAM的數據直接映象到LCD 驅動器,可以使用讀寫命令訪問”,這句話的含義,網上也看到很多人對這句話不解。我們可以看一下ht1621b的RAM映象圖和LCD映象圖不難發現他們的關系。
從映象圖中可以看出,每個ht1621b的地址都都對應LCD,而對ht1621b的地址4位操作都對應LCD的一個“燈管”。地址的每一位0代表“” - 時序圖。
只有按照ht1621b的時序讀寫數據才能完成一個數據的讀寫。下面我們來看看讀模式的時序圖,
可以看出在讀寫模式之前先拉低管腳cs,再把管腳WR拉低等待數據的寫入,管腳DATA寫入101表示為寫模式,每次寫完一位后拉高管腳WR完成寫入,再拉低管腳WR再次等待寫入。寫入模式要寫6位表示地址的數據,程序中實現就是拉高拉低6次,后面的表示數據。當CS的上升沿到達時表示一數據寫入完成。更多的時序請看ht1621b的datasheet。
以下是驅動代碼,僅供參考,寫的不好希望大神指正。
下載
轉載請注明出處:http://www.cnblogs.com/fyluyg/p/5880584.html
