簡(jiǎn)單實(shí)用的四線(xiàn)點(diǎn)陣液晶驅動(dòng)方式
隨著(zhù)科學(xué)技術(shù)的飛速發(fā)展,電子產(chǎn)品越來(lái)越向智能化、小型化、人性化、低功耗等方面發(fā)展。而液晶顯示屏的興起,為上述要求的實(shí)現提供了可能。液晶顯示屏大致可分為段式、字符式、點(diǎn)陣式,或者單色、彩色等。大多液晶顯示屏都實(shí)現了標準化和模塊化,采用通用的控制芯片(例如SED1330、SED1520、HD61202等)實(shí)現與單片機等的簡(jiǎn)單連接,但此類(lèi)液晶顯示模塊多采用并行的數據線(xiàn)和控制線(xiàn)連接。在實(shí)際應用中,考慮到產(chǎn)品的成本和體積,采用并行的數據線(xiàn)和控制線(xiàn)連接,使用起來(lái)不是很方便。因此希望采用標準的工業(yè)總線(xiàn)I2C、SPI等連接,而這類(lèi)產(chǎn)品卻很少見(jiàn)。本文巧妙地利用液晶顯示模塊的特點(diǎn),采用一片74LS164實(shí)現液晶的四線(xiàn)控制,電路簡(jiǎn)單實(shí)用。
本文引用地址:http://dyxdggzs.com/article/173887.htm本文介紹的是一種采用SED1520芯片控制的122×32圖形點(diǎn)陣液晶顯示屏,它主要由行驅動(dòng)/列驅動(dòng)及122×32全點(diǎn)陣液晶顯示器組成,可完成圖形顯示,也可顯示七個(gè)半(16×16點(diǎn)陣)漢字。主要技術(shù)參數和顯示特性如下:
?電源:VDD為+3V~+5V;LCD外接驅動(dòng)電壓VDD-VLCD=5.0V。
?顯示內容:122(列)×32(行)點(diǎn)。
?顯示顏色:黃綠底藍字。
?顯示角度:6點(diǎn)鐘直視。
?STN正視反射模式。
?驅動(dòng)方式:1/32 Duty,1/6 Bias。
?驅動(dòng)電流:最大240μA。
液晶顯示模塊驅動(dòng)原理圖如圖1所示。
液晶顯示模塊引腳特性如表1所示。
部分傳送指令表如表2所示。
2 四線(xiàn)點(diǎn)陣液晶顯示屏驅動(dòng)電路
四線(xiàn)點(diǎn)陣液晶顯示屏驅動(dòng)電路如圖2所示。
系統采用一片74LS164以串入并出方式與點(diǎn)陣液晶顯示模塊FM12232C連接,通過(guò)四條信號線(xiàn)(SDA串行數據線(xiàn)、CLK/A0串行時(shí)鐘線(xiàn)即液晶顯示模塊的A0數據/指令控制線(xiàn)、E1主驅動(dòng)芯片使能線(xiàn)、E2從驅動(dòng)芯片使能線(xiàn))實(shí)現點(diǎn)陣液晶顯示屏的驅動(dòng)。與液晶顯示模塊所提供的電路連接方式相比,四條線(xiàn)與單片機2051連接至少減少7根口線(xiàn),這樣大大節省了小型電子產(chǎn)品中寶貴的單片機口線(xiàn)資源,使產(chǎn)品更加人性化和智能化。
根據液晶顯示屏的控制指令及時(shí)序可知,只要在對模塊寫(xiě)入數據的同時(shí)保證模塊指令操作延時(shí)足夠,就可以不檢查模塊狀態(tài),達到直接控制的目的。點(diǎn)陣液晶顯示屏的一個(gè)點(diǎn)對應存儲器中的一位,置位則顯示,清除則不顯示,因此只要控制相應的數據位就可控制液晶顯示屏的顯示。液晶顯示模塊的顯示數據采用分頁(yè)方式存儲(存儲器的劃分請參閱相關(guān)資料)。
數據傳送時(shí),首先選擇使能端“E1”或“E2”,送數據到74LS164,然后送指令/數據選擇信號“A0”,關(guān)閉使能端,實(shí)現數據和指令的傳送,使液晶顯示屏顯示圖形或漢字等。
3 相關(guān)軟件
相關(guān)軟件采用匯編語(yǔ)言編寫(xiě)。由于篇幅限制,只提供傳送指令和數據到液晶顯示模塊的子程序,并通過(guò)初始化程序和顯示漢字程序介紹如何使用上述子程序。關(guān)于顯示漢字子程序、其它顯示字符串、動(dòng)畫(huà)、圖形以及在Windows下提取字庫和圖形庫相關(guān)程序,如有需要請與作者聯(lián)系。
源程序如下:
sda bit p1.7 ;定義sda線(xiàn)
clk bit p1.6 ;定義clk線(xiàn)
e1 bit p1.5 ;定義master 使能
e2 bit p1.4 ;定義slave使能
a0 bit p1.6 ;定義數據/指令選擇線(xiàn)
outmi: ;送顯示指令到master SED1520
setb e1 ;master使能
clr e2 ;slave關(guān)閉
lcall trndata ;傳送一個(gè)字節
clr a0 ;設置此字節為指令
clr e1 ;master關(guān)閉
ret
outsi: ;送顯示指令到slave SED1520
setb e2
clr e1
lcall trndata
clr a0
clr e2
ret
outmd: ;送顯示數據到master SED1520
setb e1
clr e2
lcall trndata
setb a0
clr e1
ret
outsd: ;送顯示數據到slave SED1520
setb e2 ;slave使能
clr e1 ;master關(guān)閉
lcall trndata ;傳送一個(gè)字節
setb a0 ;設置此字節為顯示數據
clr e2 ;slave關(guān)閉
ret
trndata: ;傳送一個(gè)字節到液晶顯示模塊
push a ;保存原始數據
setb sda ;sda線(xiàn)置位
setb clk ;clk線(xiàn)置位
mov r7,#08h
trn_loop:
rlc a
clr clk
mov sda,C
setb clk
djnz r7,trn_loop
pop a ;恢復原始數據
ret
init: ;初始化液晶顯示模塊
mov a,#0e3h ;LCD復位
lcall outmi
lcall outsi
mov a,#0aeh ;關(guān)顯示
lcall outmi
lcall outsi
mov a,#0a4h ;動(dòng)態(tài)驅動(dòng)
lcall outmi
lcall outsi
mov a,#0a9h ;刷新率選擇1/32
lcall outmi
lcall outsi
mov a,#0a0h ;ADC選擇右移
lcall outmi
lcall outsi
mov a,#0eeh ;結束讀寫(xiě)
lcall outmi
lcall outsi
mov a,#00h ;設置列地址0
lcall outmi
lcall outsi
mov a,#0c0h ;設置顯示開(kāi)始行0
lcall outmi
lcall outsi
mov a,#0afh ;開(kāi)顯示
lcall outmi
lcall outsi
;下面為漢字顯示
mov r1,#20 ;漢字顯示的起始為第 20列
mov dptr,#tian ;“天”字字庫地址
clr 10h ;10h=‘0’顯示在第一行
mov 1fh,#10h ;1fh=‘10h’表示為16×16 點(diǎn)陣
lcall dishz ;調用顯示漢字子程序
;子程序名稱(chēng): dishz
;dptr: 對應字庫的起始地址
;r1: 顯示數據在122列中的起始列
;位10h: 0――顯示在第一行,1――顯示在第二行
;1fh: 顯示漢字16×16=10h,顯示字符16×8=8h
評論