1 引言 由于LCD液晶顯示器具有功耗低、體積小、重量輕、超薄等諸多其他顯示器無(wú)法比擬的優(yōu)點(diǎn),已廣泛應用于各種智能型儀表和低功耗電子產(chǎn)品中。點(diǎn)陣式或圖形式LCD不僅可以顯示字符、數字,還可以顯示各種圖形、曲線(xiàn)及漢字,并且可以實(shí)現屏幕上下滾動(dòng)、動(dòng)畫(huà)、閃爍、文本特征顯示等功能,用途十分廣泛。 2 鍵盤(pán)設計原理 采用美國Microchip Technology公司的8位PIC16F877單片機,利用RB口電平變化中斷來(lái)實(shí)現參數修改,通過(guò)查表方式可以選擇兩百多種起動(dòng)方式以及選定起動(dòng)方式下兩百多個(gè)參數值輸入,其最大的選擇值取決于寄存器N和M的上限值,如圖1所示。 讀RB口狀態(tài)要進(jìn)行軟件消抖處理,即讀入RB口狀態(tài),然后軟件延時(shí)大約50ms再讀入RB口狀態(tài),兩次狀態(tài)相同說(shuō)明狀態(tài)正確,防止抖動(dòng)引起誤操作。 3 中文液晶顯示器LCM12832ZK與單片機PIC16F877硬件接線(xiàn) 本設計單片機PIC16F877與中文液晶顯示器LCM12832ZK采用模擬串行通信方式,單片機RD5引腳接液晶顯示器串行時(shí)鐘線(xiàn)E,單片機RD6引腳接液晶顯示器數據線(xiàn)RW,單片機RD7引腳接液晶顯示器串行選通線(xiàn)RS。 如圖2所示,R1用來(lái)調節液晶顯示器背光源亮度,R2用來(lái)調整液晶顯示器中文字幕的輝度。調節電位器R2到適當值對字幕顯示來(lái)說(shuō)很重要,當R2過(guò)大液晶顯示器黑屏;當R2過(guò)小,液晶顯示器過(guò)亮,看不到字體顯示。 RB口要設置為弱上拉。利用RB口電平變化中斷,通過(guò)查表方式找到相應的中斷服務(wù)子程序,最多有兩百多種參數可選擇,操作簡(jiǎn)單方便。 4 中文液晶顯示器LCM12832ZK的串行及并行接口 4.1 LCM12832ZK引腳及其功能如表(1)所示: 表(1): 4.2 LCM12832ZK液晶顯示基本功能 LCM12832ZK可兩行顯示,每行可顯示8個(gè)漢字。其字型ROM內含8192個(gè)中文字型和128個(gè)半寬的字母符號字型,另外繪圖顯示畫(huà)面提供一個(gè)繪圖區域GDRAM,而且內含CGRAM 提供4組軟件可編程的點(diǎn)陣造字功能。 LCM12832ZK與單片機等微控器的接口界面靈活,三種模式并行8位/4位及串行3線(xiàn)/2線(xiàn),還可實(shí)現漢字、ASCII碼和點(diǎn)陣圖形的同屏顯示,以及具有上/下/左/右移動(dòng)當前顯示屏幕及清除屏幕的命令,具有光標顯示/閃爍控制命令及液晶睡眠/喚醒/關(guān)閉顯示命令預留多種控制線(xiàn),如復位/串并選擇/亮度調整供用戶(hù)靈活使用。 4.3 并/串接口模塊設置 4.4 串行接口數據傳輸 本設計采用串行模式,即將模塊背面S/P的短路電阻在“S”側。在串行模式下將使用二條傳輸線(xiàn)作串行資料的傳送,主控制系統將配合傳輸同步時(shí)鐘(SCLK)與接收串行數據線(xiàn)(SID),來(lái)完成串行傳輸的動(dòng)作。 串行接口在傳輸數據時(shí),片選CS先置為1。當時(shí)鐘SCLK上升緣到達時(shí),傳輸一個(gè)數據。從一個(gè)完整的串行傳輸流程來(lái)看,一開(kāi)始先傳輸起始位,它需先接收到五個(gè)連續的“1”(同步位串)在起始位元組,此時(shí)傳輸計數將被重置并且串行傳輸將被同步,再跟隨的二個(gè)BIT 分別指定傳輸方向位(RW)及暫存器選擇位(RS),RW:RS為0:0時(shí)寫(xiě)命令到LCD的RAM中,RW:RS為0:1時(shí)寫(xiě)數據到LCD的RAM中,最后第八位則為“0”。 在接收到起始位元組后,每個(gè)指令/數據將分為二組接收到:較高4位元(DB7~DB4)的指令資料將會(huì )被放在第一組的LSB部分,而較低4位元(DB3~DB0)的指令資料則會(huì )被放在第二組的LSB 部分,至于相關(guān)的另四位則都為0,具體如圖4所示。 5 中文液晶顯示器LCM12832ZK的串行接口程序設計 5.1 PIC16F877單片機串行端口設定 #DEFINE CS PORTD,7 ;CS是片選,工作時(shí)為1 #DEFINE SCLK PORTD,5 ;SCLK是時(shí)鐘線(xiàn),上升沿動(dòng)作 #DEFINE SID PORTD,6 ;SID是數據線(xiàn) 5.2 中文液晶顯示器LCM12832ZK的初始化過(guò)程 MOVLW .40 CALL DELAY_2 MOVLW B'00110000' ;功能設定 MOVWF DAT CALL W_COMMOND CALL DELY_1 MOVLW B'00110000' ;功能設定 MOVWF DAT CALL W_COMMOND CALL DELY_1 MOVLW B'00001100' ;顯示狀態(tài)開(kāi)/關(guān) MOVWF DAT CALL W_COMMOND CALL DELY_1 MOVLW B'00000001' ;清除顯示 MOVWF DAT CALL W_COMMOND MOVLW .10 CALL DELAY_2 MOVLW B'00000110' ;進(jìn)入點(diǎn)設定 MOVWF DAT CALL W_COMMOND 5.3 中文液晶顯示器LCM12832ZK字型顯示子程序 單片機的數據和指令是以串行輸送的方式發(fā)給中文液晶顯示器LCM12832ZK模塊,每次輸1個(gè)字節。輸送時(shí),LCM12832ZK中文液晶顯示器有固定的傳輸模式,本設計在軟件上是采用循環(huán)的方式每次輸送24個(gè)位元,具體的時(shí)序如圖4所示,其實(shí)現的程序如下: MOVLW 0XB2 ;顯示“參”字子程序 MOVWF DATH ;其中“B2CE”為“參”字字庫代碼 MOVLW 0XCE MOVWF DATL MOVLW B'10000000' ;80H為“參”字顯示位址 CALL DISPLAY DISPLAY &nb sp; ;顯示通用子程序 MOVWF DAT CALL W_COMMOND ;調用寫(xiě)命令子程序 CALL DELY_1 ;調用延時(shí)100μs子程序 BSF RWRS,0 ;RWRS的1位和0位為命令與數據判斷位 BCF RWRS,1 ;bit1-bit0: 00 傳輸命令 MOVF DATH,W ;bit1-bit0: 01 傳輸數據 MOVWF DAT CALL WRITE_1 ;調用寫(xiě)數據子程序 MOVF DATL,W MOVWF DAT CALL WRITE_1 RETURN 6 結束語(yǔ) 采用PIC16F877單片機控制LCM12832ZK中文液晶顯示器以及多參數鍵盤(pán)輸入編程方法,具有實(shí)用、低價(jià)、指令小、功能強和簡(jiǎn)單易學(xué)的特點(diǎn),而且外部接線(xiàn)簡(jiǎn)單靈活,軟件修改方便。采用的LCM12832ZK中文液晶顯示器有強大的字庫和圖形編輯功能,適用于各種低壓電器智能化液晶顯示部分。 |