摘 要:通過對液晶觸摸顯示終端性能特點和控制方式的分析,對指令功能進行詳細的闡述。以AT89C51單片機為核心,通過RS 232串行口連接CPU 與觸摸液晶顯示終端,使系統CPU 發出控制命令。詳細說明了利用其生成圖形顯示人機界面的方法以及觸摸按鍵的檢測控制方法,從而實現對彩色觸摸液晶顯示器的控制。給出了單片機與串行控制液晶顯示模塊的接口電路原理、主要控制程序的設計方法及其主要功能的程序設計。解決了微處理器使用大點陣LCD顯示器過程中,選擇液晶屏、驅動、復雜的軟件編程等問題。
關鍵詞:串行控制; 液晶觸摸顯示終端; 程序設計; RS 232
中圖分類號:TP229 文獻標識碼:B
文章編號:1004-373X(2010)12-0016-03
Interface Design of LCD Touch-display Terminal and SCM
JI Song-bo, HOU Ting
(College of Information Engineering, Inner Mongolia University of Technology, Hohhot 010051, China)
Abstract:The command functions is elaborated after the analysis of performance characteristics and controlling modes of LCD touch-display terminal. With AT89C51 microcontroller as the core, CPU is connectted with LCD touch-display terminal through RS232 serial port.The method of generating the graphics displaying man-machine interface by LCD touch-display terminals is described. The control of color LCD touch-display is achieved through system control commands issued by CPU. The methods of testing and controlling the touch-button are illuminated. The principle of interface circuit of SCM and LCD terminal, the design method of the major controlling program and program design of the main functions are given. The selection of LCD screens, drivers and complex software programming in the course of the application of large dot-matrix LCD displays in the microprocessor is settled down.
Keywords: serial control; LCD touch-display terminal; program design; RS 232
作為一種常見的顯示設備,LCD具有功耗低,體積小,重量輕,顯示信息量大等特點,尤其是在便攜設備中,更占據著絕對主流的地位[1] 。對于字符或數字的簡單信息顯示,通常可用段碼式LCD驅動器。對于復雜的信息顯示,則必須由點陣式LCD驅動器來顯示。最常見的點陣式LCD控制/驅動器中,有不帶中文字庫的LCD驅動器,也有帶中文字庫的LCD驅動器。隨著嵌入式系統的廣泛應用,出現了大量的16位和32位的嵌入式處理器。然而傳統的8位單片機長期用于生產實踐中,制造工藝成熟,性能更加可靠,因此仍然占有相當大的市場,特別是在汽車電子等對可靠性要求極高的領域。液晶顯示器具有顯示信息量豐富,功耗低,體積小,質量輕,無輻射等優點。觸摸屏作為一種特殊的計算機外設,是目前最自然、便利的一種人機交互方式。
在微處理器系統中(MCS-51,C8051F,AVR,PIC,MPS430,DSP,部分工業用的ARM)使用LCD液晶顯示器設計一般比較麻煩,特別對于大點陣或者彩色的LCD設計更加困難。首先要選擇液晶屏,有進口的、國產的、無背光、帶背光、尺寸大小、點陣多少、單色、彩色、貨源情況、價格等。然后是LCD驅動器的問題,例如與選用的液晶模塊如何連接,如何顯示緩沖區的操作;與單片機如何連接,軟件如何編程等。另外,由于大屏幕液晶都是工作在圖形方式,所以還要建立各種字庫(外文,漢字、圖形符號等),并研究如何顯示這些符號和漢字。在需要顯示曲線圖形時,還需計算機圖形學等相關知識,并用單片機程序來實現各種算法等。通常大屏幕液晶顯示系統的設計將占用很多的設計時間[2] 。
在此,選用LJD-ZN系列液晶顯示終端可解決以上全部問題。只要通過RS 232串行口將CPU與觸摸液晶顯示終端相連,利用系統CPU發幾個簡單的命令就可以實現對彩色及單色液晶顯示器的控制。
1 LJD-ZN系列液晶顯示終端介紹
該產品是北京藍海微芯公司設計的彩色液晶顯示智能液晶終端。LJD-ZN-8400T型是彩色8.4 inch的智能終端。液晶屏為8.4 inch,分辨率為640×480,外殼尺寸為248 mm×192 mm,可以安裝在主控制器的面板上。LJD-ZD-8400T與外部的連接是通過該模塊背面的接口來實現的。LJD-ZN-8400T 背面設有RS 232通信端口,這個端口用于連接具有RS 232通信端口的控制器。RS 232通信端口為9針D型母座管腳排列,管腳排列見表1。
表1 RS 232管腳排列圖
管腳號信號功能管腳號信號功能
1Not used4Not used
2RXD接收數據5GND信號地
3TXD發送數據
該模塊還設有RS 485通信端口,這個端口用于連接具有RS 485或是TTL 通信端口的控制器。RS 485通信端口為9 針D 型母座管腳排列,管腳排列見表2。
表2 RS 485管腳排列
管腳號信號功能
2ARS 485發送
3BRS 485接收
5GND信號地
針對LJD-ZN-8400T智能終端的二次開發,有與之配套的工具軟件,可以直接運行,輕松實現圖片下載,字庫下載等功能。用戶可以在計算機上選擇自己熟悉的方式,如:畫圖軟件、Photoshop軟件等。圖片必須保存為*.bmp格式。圖片的大小不超過640×480像素,因為LJD-ZN-8400T顯示為640×480,超出的部分也不會顯示,只會浪費存儲空間。
圖片數量:LJD-ZN-8400T可以顯示24位真彩位圖,對下兼容;可以顯示620×480整幅真彩圖片8幅,可以擴展為17幅;整幅256色圖片23幅,可擴展為48幅;整幅16色圖片47幅,可擴展為100幅;整幅單色圖片185幅,可擴展為400幅。
2 控制命令、數據格式的說明
LJD-ZN-8400T 顯示系統提供了豐富的操作命令,設計者利用這些命令就可以很簡單地完成各個顯示功能的設計。
(1) 顯示屏坐標值全部以BCD 碼(十進制)格式發送或接收,在設計軟件時把BCD 碼當作16進制直接處理,不需要轉換。
例如:坐標x=200,y=120,那么傳輸時格式應該為:
02H,00H,01H,20H
指令格式:
MOV XH,#02H
MOV XL,#00H
MOV YH,#01H
MOV YL,#20H
(2) 如果接收到的坐標值為01H,23H,10H,80H表示x=123,y=180。
(3) 送到LCD 顯示的數據必須為ASCII碼。數據傳輸過程如下:
包頭+數據類型+(相關控制)+包尾
說明:包頭格式統一為F0H,5AH 個字節;數據類型為相關不同操作的命令;包尾格式統一為A5H F0H 兩個字節;例如,波特率的設定命令為15H,其格式如下:
數據包頭+數據類型+COM口+波特率(2個字節十六進制)+數據包尾
波特率:2 400 b/s(09H 60H),4 800 b/s(12H C0H),9 600 b/s(25H 80H),19 200 b/s(4BH 00H),38 400 b/s(96H 00H),57 600 b/s(E1H 00H)。
COM 口只有在與計算機通信時設定,如果是與單片機等COM 口通信,一般設為00H。
例如:用波特率為2 400 b/s進行通信設置,Sample:F0 5A 15 00 09 60 A5 F0。上電時默認波特率為9 600 b/s,上電后用戶可以根據LJD-ZN 設備通信協議進行更改。
3 單片機與顯示終端接口的程序設計
3.1 單片機串口的初始化設置
主控制單元上電復位后,首先設置控制核心單片機的串口工作在方式1,速率為9 600 b/s。
串口初始化設置程序[3] :
MOVTMOD,#21H ;T1工作方式2
MOVTL1,#0FDH ;9 600 b/s,f=11.05 MHz
MOVTH1,#0FDH ;置初值
SETB TR1 ;啟動T1
MOVSCON,#50H ;串口方式1,REN=1
MOVPCON,#00H
3.2 控制指令發送程序
LJD-ZN-8400T 顯示系統提供了豐富的操作命令,設計者利用這些命令就可以很簡單地完成各個顯示功能的設計。例如:波特率設定,命令為15H,格式如下:
數據包頭+ 數據類型+ COM口+ 波特率(2 個字節16進制)+ 數據包尾
波特率:2 400 b/s(09H 60H),4 800 b/s(12H C0H),9 600 b/s(25H 80H),19 200 b/s(4BH 00H),38 400 b/s(96H 00H),57 600 b/s(E1H 00H)。
COM 口只有在與計算機通信時設定,如果是與單片機等COM 口通信,一般設為00H。
例如:用波特率為2 400 b/s進行通信設置;
Sample:F0 5A 15 00 09 60 A5 F0
程序如下:
SLSZCX:MOV DPTR,#TABSL
MOV R1,#00H
SLSZ1: MOV A,R1
MOVC A,@A+DPTR
MOV SBUF,A
SLSZ2: JBC TI,SLSZ3
SJMP SLSZ2
SLSZ3: CLR TI
INC R1
CJNE R1,#8,SLSZ1
RET
TABSL: DB 0F0H,5AH,15H,00H,09H,60H,DB 0A5H,0F0H
3.3 觸摸位置檢測程序設計
LJD-ZN-8400T顯示終端可以根據外部觸摸位置,由串口輸出觸摸位置坐標。實際應用時,需要設置觸摸功能區的左上角坐標和右下角坐標,從而可以確定一個觸摸功能區。所以,根據串口輸出的觸摸位置坐標,即可以判斷是否觸摸在確定功能區,而執行相應的功能。串口輸出觸摸屏位置坐標數據格式如下:
數據包頭+數據類型+XH+XL+YH+YL+標志位+數據包尾
Sample:F0 5A 37 01 30 02 05 01 A5 F0
解釋:按下觸摸屏的坐標值為(130,205)
Sample:F0 5A 37 01 30 02 05 02 A5 F0
解釋:抬起觸摸屏的坐標值為(130,205)
說明:LJD-ZN-8400T 的觸摸屏分按下和抬起2個鍵值,其是通過標志位來判斷的。觸摸屏的值與屏的分辨率是一致的,左上角是起始位置,x坐標是(00,00),y坐標是(00,00);右下角是最大值,x坐標是(03,19),y坐標是(02,39)。觸摸位置判斷子程序流程圖如圖1所示。
圖1 觸摸位置判斷子程序流程圖
用戶自定義觸摸按鍵,編程的時候首先要根據串口輸出的數據,判斷觸摸點的x/y坐標值。當觸摸點x的坐標值大于所定義的左上角x坐標值和小于所定義的右下角x坐標值,并且觸摸點y的坐標值在大于所定義的左上角y坐標值和小于所定義的右下角y坐標值時,可以確定觸摸點在所定義的按鍵范圍之內,調用該按鍵的鍵功能子程序,否則,視為無效觸摸點。
4 結 語
隨著現代微電子技術的發展,各種設備的智能化程度越來越高,對操作性的要求也越來越高,良好的人機交互界面越來越受到設計者的重視。本文介紹基于LJD-ZN-8400T系列智能觸摸液晶顯示終端與單片機的接口及編程具有廣泛的使用價值。
參考文獻
[1]朱維杰,吳薇.內置觸摸屏與鍵盤接口的LCD控制器RA8806的應用[J].電子設計工程,2009(5):24-26.
[2]北京藍海微芯科技發展有限公司.LJD-ZN-8400T智能終端用戶手冊[M].北京:北京藍海微芯科技發展有限公司,2008.
[3]紀松波.1.6 M成纜機電氣控制系統的設計[D].呼和浩特:內蒙古工業大學,2008.
[4]周超,王琛,方彥軍.基于W77E58的LCD控制及觸摸屏接口設計[J].儀表技術與傳感器,2009(3):70-71.
[5]潘新民,王燕芳.單片微型計算機實用系統設計[M].北京:人民郵電出版社,1992.
[6] 莫莉,董萬福,喻洪平,等.基于TMS320F2812的液晶顯示模塊接口設計[J].計算機測量與控制,2009,17(2):407-408.
[7]王靜濤,張立軍.液晶顯示控制器T6963C與C8051F的接口及編程[J].儀表技術,2009(2):9-10.
[8]裴巖,劉利民.單片機系統綜合設計與實踐[M].呼和浩特:內蒙古大學出版社,2003.
[9]金文,郝瑩.液晶顯示控制器與單片機的接口設計及應用[J].高校實驗室工作研究,2008(4):42-43.
[10]張穎超,施亮,吳士芬.單片機與LCD的串行接口設計與實現[J].單片機開發與應用,2007(23):79-81.