RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)國家電網(wǎng)智能電力終端標準顯示接口的實現(xiàn)

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-16 09:16 ? 次閱讀

EM9160是英創(chuàng)公司一款資源豐富、性能穩(wěn)定、簡單易用的高性價比工控主板,它包含了6個用戶可用的通用異步串口、一個網(wǎng)口、16位GPIO、以及英創(chuàng)特有的精簡ISA總線等豐富的硬件資源,支持WinCE5.0、WinCE6.0和Linux系統(tǒng)。目前,EM9160廣泛應用于國家電網(wǎng)智能電力終端,如集抄器、充值終端等,出貨量超過10W片。國家電網(wǎng)公司企業(yè)標準對國家電網(wǎng)智能電力終端的外形接口、人機界面、通信接口等都做了詳細的規(guī)定。用戶基于EM9160,在外圍做一定的電路擴展后就能滿足國網(wǎng)標準關(guān)于電力終端數(shù)據(jù)通信、電量采集、信息顯示等方面的需求。

國家智能電網(wǎng)己經(jīng)進入全面建設階段,要求電力終端的通訊接口越來越多,應用軟件越來越復雜,對系統(tǒng)可靠性的要求也越來越高。為此,我們將EM9160 的操作系統(tǒng)WinCE5.0的升級到了WinCE6.0,系統(tǒng)可靠性進一步提高。同時根據(jù)當下對電力終端的新需求,開發(fā)了EM9160的升級主板EM9280。

EM9280板載了8個異步串口,完全滿足當下電力智能終端對通訊接口的需求,根據(jù)電力智能終端特點,去掉了ISA總線擴展,轉(zhuǎn)而支持多達32位的GPIO。同時系統(tǒng)內(nèi)核、Flash、CPU主頻等都有較大升級。在顯示方面,EM9280支持分辨率從320 X 240到1024 X 768的彩色TFT LCD顯示,為了支持國家智能電網(wǎng)智能電力終端對顯示的規(guī)定,EM9280專門引出了一個單色LCD接口。下圖是EM9280連接符合國網(wǎng)標準的單色LCD的效果圖。

圖1:EM9280連接160*160單色液晶

本文就將介紹EM9280如何支持滿足國家電網(wǎng)標準的160 X160單色點陣液晶顯示。

1、EM9280單色LCD硬件接口

EM9280的單色屏接口在主板背面,編號為CN4,其引腳定義如下:

EM9280_CN4 單色LCD信號定義及說明
1 GND
2 LCD_RS,LCE命令/數(shù)據(jù)寄存器選擇
3 LCD_WR#,LCD寫信號,低有效,Inter時序
4 LCD_RD#,LCD讀信號,低有效,Inter時序
5 LCD_CS#,LCD片選,低有效
6 LCD_REST#,LCD復位信號,低有效
7 VDD,LCD電源,+3.3V
8 LCD_D0,LCD數(shù)據(jù)總線
9 LCD_D1,LCD數(shù)據(jù)總線
10 LCD_D2,LCD數(shù)據(jù)總線
11 LCD_D3,LCD數(shù)據(jù)總線
12 LCD_D4,LCD數(shù)據(jù)總線
13 LCD_D5,LCD數(shù)據(jù)總線
14 LCD_D6,LCD數(shù)據(jù)總線
15 LCD_D7,LCD數(shù)據(jù)總線
16 LEDK,LCD背光負極
17 NC
18 LEDA,LCD背光正極

EM9280單色屏接口詳細說明請參考《EM9280工控主板數(shù)據(jù)手冊》。

2、EM9280單色LCD軟件接口

EM9280預裝了WinCE6.0嵌入式操作系統(tǒng),本身支持窗口編程,但對于160 X160點陣的單色屏來講,卻并不適合MFC框架的界面編程。針對單色點陣屏的顯示特點,我們封裝一組高效、簡單易用的畫點、畫線、寫塊、寫字符串等操作屏的API函數(shù)。介紹如下:

功能描述: 啟動對LCD屏的操作功能,并初始化LCD顯示屏,下面的所有函數(shù),應該在LCD_Init()返回成功后再調(diào)用。
輸入參數(shù): LCD的類型。
返回值 > 0: 啟動LCD成功,并返回LCD的類型。
= -1: 啟動LCD失敗。
INT LCD_Init( int LCDType );

功能描述: 設置顯示字體,本驅(qū)動支持12*12和16*16點陣字體,默認字體為16*16點陣
輸入?yún)?shù): FontWidth = 12:設置12*12點陣
FontWidth = 16: 設置16*16點陣(默認設置)
返回值 > 0: 設置字體成功。
= -1: 設置字體失敗。
INT LCD_SetFont( unsigned int FontWidth );

功能描述: LCD刷新模式。
輸入?yún)?shù):
nRefreshMode = REAL_REFRESH:實現(xiàn)刷新,方便調(diào)試
nRefreshMode = AUTO_REFRESH:自動刷新,刷新時間間隔為50mS.(默認設置)
nRefreshMode = MANUAL_REFRESH:手動刷新,設置成此模式后,只有調(diào)用了LCD_Refresh函數(shù),驅(qū)動才會將顯存中的數(shù)據(jù)顯示到LCD上。
返回值 = 0: 設置刷新模式成功。
= -1: 設置刷新模式失敗。
INT LCD_RefreshMode( unsigned int nRefreshMode );

功能描述: 將顯存中的數(shù)據(jù)更新到LCD
返回值 = 0: 刷新成功。
= -1: 刷新失敗。
INT LCD_Refresh(void);

功能描述: 釋放對LCD顯示屏的操作功能,釋放相關(guān)資源。
輸入?yún)?shù): 無。
返回值 > 0: 初始化LCD成功,并返回LCD的類型。
= -1: 初始化LCD失敗。
INT LCD_DeInit( );

功能描述: 對LCD顯示屏的清屏操作。
輸入?yún)?shù): 無。
返回值 = 0: LCD清屏成功。
<0 : LCD清屏失敗。
INT LCD_Clearup( );

功能描述: 獲取LCD顯示屏的X方向最大分辨率。
輸入?yún)?shù): 無。
返回值 : LCD顯示屏的X方向最大分辨率。
INT LCD_GetMaxX( );

功能描述: 獲取LCD顯示屏的Y方向最大分辨率。
輸入?yún)?shù): 無。
返回值 : LCD顯示屏的Y方向最大分辨率。
INT LCD_GetMaxY( );

功能描述: 設置LCD顯示屏的寫模式。(不支持)
輸入?yún)?shù): Mode = 0 : COPY 寫模式
Mode = 1 : XOR 寫模式
返回值 0: 成功
INT LCD_SetMode( int Mode );

功能描述: 對LCD顯示屏進行描點操作。
輸入?yún)?shù):
x0: 描點的列坐標(x坐標),范圍0~(MaxX-1),不可大于或等于MaxX
y0: 描點的行坐標(y坐標),范圍0~(MaxY-1),不可大于或等于MaxY
color: 描點的顏色:BK_COLOR,TEXT_COLOR或XOR_WRITE
返回值 0: 成功。
INT LCD_PutPixel( int x0, int y0, int color );

功能描述: 對LCD顯示屏進行寫字節(jié)操作。
輸入?yún)?shù):
x0: 寫字節(jié)的列坐標(x坐標),范圍0~(MaxX-1)
y0: 寫字節(jié)的行坐標(y坐標),范圍0~(MaxY-1)
byte: 寫的字節(jié)
返回值 0: 成功。
INT LCD_WriteByte( int x0, int y0, UCHAR byte );

功能描述: 對LCD顯示屏進行寫多個字節(jié)操作,兼容原有LCD庫。
輸入?yún)?shù):
x0: 寫字節(jié)的列坐標(x坐標),范圍0~(MaxX-1)
y0: 寫字節(jié)的行坐標(y坐標),范圍0~(MaxY-1)
pHfont: 需要寫的字節(jié)組
NumOfBytes: 需要寫的字節(jié)數(shù)
返回值 0: 成功。
INT LCD_WriteByteBlock( int x0, int y0, PBYTE pHfont, int nNumOfBytes );

功能描述: 對LCD顯示屏進行寫多個字節(jié)操作
輸入?yún)?shù):
x0: 寫字節(jié)的列坐標(x坐標),范圍0~(MaxX-1)
y0: 寫字節(jié)的行坐標(y坐標),范圍0~(MaxY-1)
x1: 寫字節(jié)的列坐標(x坐標),范圍0~(MaxX-1)
pHfont: 需要寫的字節(jié)組
NumOfBytes: 需要寫的字節(jié)數(shù)
返回值 0: 成功。
INT LCD_WriteBlock( int x0, int y0, int x1, PBYTE pHfont, int NumOfBytes );

功能描述: 對LCD顯示屏進行讀字節(jié)操作。
輸入?yún)?shù):
x: 寫字節(jié)的列坐標(x坐標),范圍0~(MaxX-1)
y: 寫字節(jié)的行坐標(y坐標),范圍0~(MaxY-1)
返回值 : 讀取的字節(jié)。
INT LCD_ReadByte( int x0, int y0 );

功能描述: 對LCD顯示屏畫直線操作。
輸入?yún)?shù):
x0: 直線開始列坐標(x坐標),范圍0~(MaxX-1),不可大于或等于MaxX
y0: 直線開始行坐標(y坐標),范圍0~(MaxY-1),不可大于或等于MaxY
x1: 直線結(jié)束列坐標(x坐標),范圍0~(MaxX-1),不可大于或等于MaxX
y1: 直線結(jié)束行坐標(y坐標),范圍0~(MaxY-1),不可大于或等于MaxY
color: 顏色設置:BK_COLOR,TEXT_COLOR或XOR_WRITE
INT LCD_DrawLine( int x0, int y0, int x1, int y1, int color );

功能描述: 對LCD顯示屏畫Bar條操作。
輸入?yún)?shù):
x0: 直線開始列坐標(x坐標),范圍0~(MaxX-1),不可大于或等于MaxX
y0: 直線開始行坐標(y坐標),范圍0~(MaxY-1),不可大于或等于MaxY
x1: 直線結(jié)束列坐標(x坐標),范圍0~(MaxX-1),不可大于或等于MaxX
y1: 直線結(jié)束行坐標(y坐標),范圍0~(MaxY-1),不可大于或等于MaxY
color: 顏色設置:BK_COLOR,TEXT_COLOR或XOR_WRITE
INT LCD_FillBar( int x0, int y0, int x1, int y1, int color );

功能描述: 對LCD顯示屏進行寫字符串的操作。
輸入?yún)?shù):
x0: 字符寫入的列坐標(x坐標),范圍0~(MaxX-1)
y0: 字符寫入的行坐標(y坐標),范圍0~(MaxY-1)
pStr:以'RM新时代网站-首页