HT1621液晶顯示驅動詳細原理及程序_第1頁
HT1621液晶顯示驅動詳細原理及程序_第2頁
HT1621液晶顯示驅動詳細原理及程序_第3頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.Ht1621液晶顯示詳細驅動使用說明以及程序1 概述HT1621是128點內存映象和多功能的LCD驅動器,HT1621的軟件配置特性使它適用于多種LCD應用場合,包括LCD模塊和顯示子系統。用于連接主控制器和HT1621的管腳只有4或5條,HT1621還有一個節電命令用于降低系統功耗。在虎風所做的這個系統中ht1621用于驅動一個靜態的LCD液晶顯示器。液晶顯示的方式分為靜態顯示和動態顯示。靜態與動態的區別在于靜態顯示是持續供電的,而動態顯示是利用人的視覺停留效果,快速掃描數碼管各個段,讓人在視覺上感覺到數碼管是同時顯示的。2 HT1621接線原理圖3 靜態LCD構造圖4 幾個曾經糾結的概念

2、Timebase:時基,即時間基準,可以用來輸出,作為外部時鐘的時間基準。占空比:將所有公共電極各施加一次掃描電壓的時間叫一幀,單位時間內掃描多少幀的頻率叫幀頻,將掃描公共電極選通的時間與幀周期之比叫占空比。通常占空比等于公共電極數N的倒數,即1/N。這就是說假設你要驅動4個液晶,就需要4個,那么你的占空比就要設定為1/4。偏壓比:指的是液晶的偏壓系數,可以看看專業技術文章,偏壓目的是克制穿插效應,通過把半選擇點與非選擇點的電壓平均,適度提高非選擇點的電壓來抵消半選擇點上的一局部電壓,使半選擇點上的電壓下降,從而提高顯示比照度;最終行半選擇點和非選擇點上的電壓均為顯示電壓的1/a,1/a就稱為

3、偏壓系數,也稱為偏壓。此方法稱為1/a偏壓的平均電壓法,簡稱為1/a偏壓法。VLCD(LCD驅動電壓): LCD的驅動電壓為加在點亮局部的段電壓與公共電壓之差(峰-峰值)。5 關于RAM地址映射的概念為了這個問題困擾了很久,虎風太愚鈍啦Ht1621有一個32*4的LCD驅動,映射到32*4的RAM地址。上圖中寫命令101后面跟6位RAM地址,那么這個地址是如何確定的呢.其實說白了也很簡單,RAM地址就是SEG的序號。我們要點亮一段液晶管需要給他提供一個電平,而這個電平是由SEG管腳提供的,SEG管腳電平的輸出又取決于對應RAM地址中的值。驅動一個8段數碼管的順序是A,B,C,D,E,F,G,D

4、P,我們認為前面LCD構造圖中的數碼管3為我們要顯示的低位,那么連接原理圖中A3的是SEG12,我們就說此時的RAM地址為0b001100,連接B3的是SEG11,對應的RAM地址為0b001011,依次類推,第一個數碼管的所有地址為:0b001100,0b001011,0b001010,0b001001,0b001000,0b001101,0b001110,0b000111/DP2;其余地址類似,在此不再解釋。6 程序Unsignedchar LCD_ADD=0b00001100,0b00110100,0b00010100,0b00100100,0b00000100,0b00101100,0

5、b00011100,0b00111000,0b00000010,0b00111100,0b00011000,0b00101000,0b00001000,0b00100010,0b00010010,0b00110000,0b00001010,0b00110010,0b00010000,0b00100000,0b00000000,0b00101010,0b00011010;void HT1621_Dis_Char(unsigned char d,unsigned char d_loca) unsigned char j; unsigned char seg_t=8 ;if (d_loca=(HT1

6、621_DATA_NUM-1) seg_t=7; /送3位模式碼101及6位首地址000000 0b000000101 for (j=0; j<seg_t; j+) /送cache_size組數據 HT1621_PORT&=_BV(HT1621_CS); HT1621_Send_Bits(0x05,3); /送寫命令代碼101,高到低 HT1621_Send_Bits(LCD_ADDd_loca*8+j,6); /送每段對應的地址 HT1621_Send_Bits(d&0x01,4); /送數據,0對應的低位,低到高 d=d>>1;/右移位 HT1621_PO

7、RT|=_BV(HT1621_CS); /*=顯示小數點= 輸入參數:Poi_loca,為小數點的位置0是第一位,1是第二位) */void HT1621_Pri_Point(unsigned char Poi_loca) unsigned char seg_t=8; if (Poi_loca<2) HT1621_PORT&=_BV(HT1621_CS); HT1621_Send_Bits(0x05,3); /送寫命令代碼101 HT1621_Send_Bits(LCD_ADDPoi_loca*seg_t+7,6); /送點對應的地址 /送數據 HT1621_Send_Bits(

8、1,4); HT1621_PORT|=_BV(HT1621_CS); /*=顯示INT型數據dat-待顯示數據*/void HT1621_Print_onlyInt(unsigned long dat) unsigned char i; unsigned char dataHT1621_DATA_NUM; if (dat>=HT1621_DATA_max) dat=dat%HT1621_DATA_max;for(i=0;i<HT1621_DATA_NUM;i+) datai=LCD_CODEHT1621_NoPrint_Loc;/初始化為不顯示 if(dat<10) data

9、0 = LCD_CODE(unsigned char) (dat); /個位數 else if(dat<100) data1 =LCD_CODE(unsigned char) (dat/10); data0 =LCD_CODE(unsigned char) (dat%10) ; /十位數 else data2 =LCD_CODE(unsigned char) (dat/100%10); data1 =LCD_CODE(unsigned char) (dat/10%10) ; data0 =LCD_CODE(unsigned char) (dat%10); /百位數for(i=0;i<

10、;HT1621_DATA_NUM;i+)/從低位到高位,調用顯示每個數的函數HT1621_Dis_Char HT1621_Dis_Char(datai,i); /*/打印INT型數據/dat-待顯示數據/chk-顯示的數據位數: 0-關閉 13時,顯示對應的數據;大于3時只顯示3位;從左到右/point_loc-顯示的小數點的位置:0以及大于2時:不顯示小數點;1-顯示第1個,2-顯示第2個;從左到右/*/void HT1621_Print_Int(unsigned long dat,unsigned char chk,unsigned char point_loc) unsigned cha

11、r i; unsigned char dataHT1621_DATA_NUM; /chk為0,那么屏幕不顯示for(i=0;i<HT1621_DATA_NUM;i+) datai= LCD_CODEHT1621_NoPrint_Loc; if(chk>0) data0 = LCD_CODE(unsigned char) (dat%10); dat=dat/10; if(chk>1) data1 = LCD_CODE(unsigned char) (dat%10); dat=dat/10; if(chk>2) data2 = LCD_CODE(unsigned char)

12、 (dat%10); /顯示小數點if (point_loc=1) data0|=0x80;else if (point_loc=2) data1|=0x80; /從低位到高位,調用顯示每個數的函數HT1621_Dis_Char for(i=0;i<HT1621_DATA_NUM;i+) HT1621_Dis_Char(datai,i);/*/送d_count位數據d;從低位開場送/*/void HT1621_Send_Bits(unsigned char d, unsigned char d_count) unsigned char j; for (j=0; j<d_count;

13、 +j) HT1621_PORT&=_BV(HT1621_WR); /wr置低; HT1621_Delay(50); if (d & 0x01=1) /置數據位; HT1621_PORT|=_BV(HT1621_DATA); /data置0elseHT1621_PORT&=_BV(HT1621_DATA); /data置1 HT1621_PORT|=_BV(HT1621_WR); /wr置高; HT1621_Delay(50);d =(d>>1); /右移位/*/HT1621初始化/*/void HT1621_Init()DDRC |= _BV(4)|_BV(5)|_BV(7); /定義端口PC4-PC5-PC7輸出HT1621_PORT&=_BV(HT1621_CS); /CS端清零 HT1621_Send_Bits(0x01,3); /送3位命令模式碼100 0x80=0b10000000HT1621_Send_Bits(0x18,9); /系統時鐘選用片內RCHT1621_Send_Bits(0x80,9); /翻開系統振蕩器HT1621_Send_Bits(0x94,9); /1/2偏置,2個公共口 1000

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論