1 引言 隨著信息技術(shù)的發(fā)展,人們?cè)絹?lái)越頻繁地面對(duì)各種各樣的顯示裝置,其中液晶顯示(LCD)是一種最有前景的顯示裝置,目前已廣泛應(yīng)用于移動(dòng)通訊、儀器儀表、電子設(shè)備、家用電器等各方面。與傳統(tǒng)顯示模塊相比,采用 SED1335LCD液晶驅(qū)動(dòng)器和 320×240點(diǎn)陣式圖形液晶顯示模塊,使顯示信息量增大、操作簡(jiǎn)化、界面友好、外形美觀,不僅可以采用數(shù)字形式顯示信息數(shù)據(jù),而且可以采用圖形畫(huà)面來(lái)顯示。 2 SED1335控制器 SED1335是 SEIKO EPSON公司出品的一種高性能的液晶顯示控制器。它具有較強(qiáng)的 I/O緩沖器,指令功能很豐富,并且四位數(shù)據(jù)并行發(fā)送,最大驅(qū)動(dòng)能力為 640×256點(diǎn)陣。 ![]() SED1335硬件結(jié)構(gòu)可分成 MPU接口部、內(nèi)部控制部和驅(qū)動(dòng) LCM 的驅(qū)動(dòng)部。硬件結(jié)構(gòu)圖如圖1所示。 SED1335的 MPU接口部由指令輸入緩沖器、數(shù)據(jù)輸入緩沖區(qū)、數(shù)據(jù)輸出緩沖器和標(biāo)志寄存器組成。作為微機(jī)的一種外圍接口芯片, SED1335通過(guò)數(shù)據(jù)總路線接收來(lái)自 CPU的指令和數(shù)據(jù)。它具有 2個(gè)通道,一個(gè)為指令口,用來(lái)接收 CPU的指令碼;另一個(gè)為數(shù)據(jù)口,用來(lái)接收和發(fā)送指令參數(shù)和顯示數(shù)據(jù)。系統(tǒng)共用數(shù)據(jù)總線,由 A0口來(lái)區(qū)分:高電平時(shí),為指令碼,低電平時(shí),為指令參數(shù)或顯示數(shù)據(jù)。 SED1335與 8031單片機(jī)的硬件連接如圖 1所示。在圖 1中,用 8031的 P2.7口作為 SED1335的片選信號(hào),用 P2.0口與 SED1335的 A0口連接。這樣當(dāng) SED1335的指令地址為 8100H,數(shù)據(jù)地址為 8000H。 SED1335內(nèi)部控制部是 SED1335的核心。它由振蕩器、功能邏輯電路、顯示 RAM管理電路、字符庫(kù)及其管理電路以及產(chǎn)生驅(qū)動(dòng)時(shí)序的時(shí)序發(fā)生器等組成。振蕩器工作頻率可在 1M~10M Hz范圍內(nèi)選擇。SED1335能在很高的工作頻率下迅速地解譯 MPU發(fā)來(lái)的指令代碼,將參數(shù)置入相應(yīng)的寄存器內(nèi),并觸發(fā)相應(yīng)的邏輯功能電路運(yùn)行。其中最重要的特點(diǎn)是能分區(qū)管理 64k的顯示存儲(chǔ)器,可以同時(shí)管理 3個(gè)或 4個(gè)顯示區(qū)。顯示區(qū)可以根據(jù)數(shù)據(jù)的性質(zhì)設(shè)置為圖形方式或文本方式。在圖形方式下,該顯示區(qū)的數(shù)據(jù)被認(rèn)為是 8位的顯示數(shù)據(jù)而直接送到液晶顯示驅(qū)動(dòng)系統(tǒng)顯示;在文本方式下,該顯示區(qū)的數(shù)據(jù)被認(rèn)為是字符代碼。 ![]() SED1335 驅(qū)動(dòng)部具有各顯示區(qū)的合成顯示能力傳輸數(shù)據(jù)的組織功能及產(chǎn)生液晶顯示模塊所需要的時(shí)序,向液晶顯示模塊傳輸數(shù)據(jù)的方式為4位并行方式。 3 SED1335軟件控制實(shí)現(xiàn) SED1335有 13條指令,多數(shù)指令帶有參數(shù),參數(shù)值由用戶根據(jù)所控制的液晶顯示模塊的特征和顯示的需要來(lái)設(shè)置。通過(guò)指令可以完成 LCD的初始化、光標(biāo)、顯示合成方式和顯示數(shù)據(jù)的輸入輸出等。根據(jù)顯示屏的特點(diǎn)對(duì) SED1335控制器的各參數(shù)進(jìn)行設(shè)定,對(duì)于 320 ×240點(diǎn)陣式圖形液晶,在 Keil C51單片機(jī)軟件開(kāi)發(fā)平臺(tái)中編寫(xiě)的初始化程序如下: unsigned char SYSTAB[8]={0x30,0x87,0x07,0x27,0x42,0xef,0x28,0x00}; unsigned char SCRTAB[10]={0x00,0x00,0xEF,0x80,0x25,0xef,0x00,0x50,0x00,0x00}; …… outportb( LcdComPort, 0x40 ); for(i=0;i<8;i++) outportb( LcdDatPort, SYSTAB); //初始化,顯示窗口設(shè)置 ,共 8個(gè)參數(shù) …… outportb( LcdComPort, 0x44 ); for(i=0;i<10;i++) outportb( LcdDatPort, SCRTAB); //設(shè)置顯示區(qū)域 ,共 10個(gè)參數(shù) …… 在圖形方式下顯示漢字,其漢字庫(kù)是建立在系統(tǒng)程序內(nèi),由程序逐字節(jié)地向圖形顯示區(qū)相應(yīng)單元寫(xiě)入,然后在顯示屏上顯示出相應(yīng)的漢字。首先在程序中定義漢字字庫(kù)數(shù)組: unsigned char HZ[][32] ={ /*-- 文字: 漢 --*/ /*-- 宋體 12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x高=16x16 --*/ 0x20,0x00,0x10,0x00,0x17,0xFC,0x02,0x08,0x82,0x08,0x49,0x10,0x49,0x10,0x11,0x10, 0x10,0xA0,0x20,0xA0,0xE0,0x40,0x20,0xA0,0x21,0x18,0x26,0x0E,0x28,0x04,0x00,0x00, /*-- 文字: 字 --*/ /*-- 宋體 12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x高=16x16 --*/ 0x02,0x00,0x01,0x00,0x3F,0xFC,0x20,0x04,0x40,0x08,0x1F,0xE0,0x00,0x40,0x00,0x80, 0x01,0x00,0x7F,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00, } 然后,將 16x16漢字點(diǎn)陣分為左右兩部分,分別驅(qū)動(dòng)顯示: lcd_write_16_8( x0, y0, HZ[0], 16, 2,); lcd_write_16_8( x0+8, y0, &HZ[0][1], 16, 2); 其中,16 x8點(diǎn)陣顯示子程序如下: void lcd_write_16_8 ( int x, int y, unsigned char* hfont) { unsigned int Z, i,j; //計(jì)算光標(biāo)位置 Z = (x >> 3) + y * 40; // 設(shè)置光標(biāo)自動(dòng)往下 outportb( LcdComPort, 0x4f ); // 設(shè)置液晶屏上的光標(biāo)位置 outportb( LcdComPort, 0x46 ); outportb( LcdDatPort, Z ); outportb( LcdDatPort, Z>>8 ); // 將顯示數(shù)據(jù)發(fā)送到顯示緩沖區(qū) outportb( LcdComPort, 0x42 ); for( i=0,j=0; i<16; i++ ) { outportb( LcdDatPort, hfont[j] ); j+=2; } } 最終顯示的漢字如圖 3所示: ![]() 4 結(jié)束語(yǔ) 在實(shí)際的單片機(jī)系統(tǒng)中,往往都需要良好的用戶界面,其中 LCD是被大量采用的顯示器件。通過(guò) SED1335圖形液晶控制器,在單片機(jī)和 LCD之間加入一條雙向的快速通道,可以在不增加任何成本的情況下,大大提高單片機(jī)系統(tǒng)的顯示性能。 SED1335液晶顯示控制器是一種集控制與驅(qū)動(dòng)于一身的顯示控制器件,其最大的特點(diǎn)是特別適合在光線不足的條件下實(shí)現(xiàn)圖文信息顯示。由于該模塊亮度高,可以滿足在光線較暗的環(huán)境中顯示的要求,而且性能可靠,價(jià)格適中。另外,它還具有接口方便、編程簡(jiǎn)單等優(yōu)點(diǎn),可以被廣泛地應(yīng)用在辦公自動(dòng)化設(shè)備、工業(yè)控制儀器表、家用電器等各種領(lǐng)域中。 在作者實(shí)際參與的項(xiàng)目中充分利用了SED1335圖形液晶控制器,節(jié)約了項(xiàng)目投入的成本,并提高了系統(tǒng)的顯示性能,直接和間接經(jīng)濟(jì)效益達(dá)200萬(wàn)元。 本文作者創(chuàng)新點(diǎn):研究了 SED1335液晶顯示控制器應(yīng)用于單片機(jī)系統(tǒng)的顯示模塊中,同時(shí)提出了其在圖形方式下漢字顯示的軟件設(shè)計(jì)。 作者:楊洋 來(lái)源:《微計(jì)算機(jī)信息》2009年第1-2期 |