999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于UCGUI的觸摸屏顯示設(shè)計(jì)

2014-02-05 05:36:39王學(xué)俊孔新偉周晨晨
液晶與顯示 2014年5期
關(guān)鍵詞:嵌入式用戶(hù)設(shè)計(jì)

劉 勇,王學(xué)俊,孔新偉,周晨晨

(大連工業(yè)大學(xué) 機(jī)械工程與自動(dòng)化學(xué)院,遼寧 大連 116034)

1 引 言

隨著工業(yè)控制技術(shù)的迅猛發(fā)展,在控制中人們?cè)絹?lái)越多的用到液晶觸摸屏,液晶觸摸屏作為新型人機(jī)交互裝置具有堅(jiān)固耐用、反應(yīng)速度快、節(jié)省空間、操作直觀等諸多優(yōu)點(diǎn)。利用這種技術(shù),用戶(hù)只要用手指碰觸屏上的圖符或文字就能實(shí)現(xiàn)對(duì)主機(jī)控制,從而實(shí)現(xiàn)人機(jī)交互功能,這種技術(shù)大大方便了那些不懂操作的用戶(hù)。 觸摸屏作為一種最新的輸入設(shè)備,它是目前最簡(jiǎn)單、方便、自然的一種人機(jī)交互方式[1]。

雖然觸摸屏的操作簡(jiǎn)單,但是觸摸屏的圖形界面的設(shè)計(jì)部分,對(duì)于不懂觸摸屏原理以及不精通編程的普通用戶(hù)來(lái)說(shuō),卻是一個(gè)晦澀難懂的難題。本文正是基于這一點(diǎn),結(jié)合UCGUI嵌入式圖形支持系統(tǒng)技術(shù),開(kāi)發(fā)研制一款操作設(shè)計(jì)簡(jiǎn)單的智能觸摸顯示屏,用戶(hù)只需要掌握很少的電腦操作知識(shí),在電腦上執(zhí)行幾步簡(jiǎn)單的操作,即可設(shè)計(jì)出自己想要的圖形界面,并且可以下載到下位機(jī)上運(yùn)行并顯示出來(lái)。

2 系統(tǒng)流程

圖1 系統(tǒng)總流程圖Fig.1 Overall system flow chart

本設(shè)計(jì)的主要流程是先在上位機(jī)上產(chǎn)生圖形界面數(shù)據(jù)庫(kù),然后通過(guò)RS232加載到下位機(jī)主控制器上,下位機(jī)主控制器將圖形界面數(shù)據(jù)經(jīng)過(guò)分析處理后再在液晶觸摸屏上顯示出來(lái),并同時(shí)在下位機(jī)主控制器上運(yùn)行監(jiān)控程序,當(dāng)液晶觸摸屏上發(fā)生觸碰事件時(shí),把信號(hào)反饋給下位機(jī)主控制器,下位機(jī)主控制器根據(jù)不同的信號(hào)做出相應(yīng)的反應(yīng)并在液晶屏上顯示出來(lái)。

其主流程圖如圖1所示。

3 系統(tǒng)組成

本設(shè)計(jì)分為硬件和軟件兩大部分。

3.1 硬件部分

3.1.1 液晶屏控制器

本設(shè)計(jì)采用RA8875芯片作為液晶屏控制器。RA8875是一個(gè)文字與繪圖模式的雙圖層液晶顯示 (TFT-LCD) 控制器,可結(jié)合文字或2D圖形應(yīng)用,最大可支持到800×480 點(diǎn)分辨率的中小尺寸數(shù)字面板。內(nèi)建 768 KB 顯示內(nèi)存,可為大多數(shù)使用者提供一個(gè)更具彈性的解決方案。此外,使用者可藉由選用外部串行式Flash 接口,支持BIG5/GB 編碼,最大可提供達(dá)32×32 pixel的字型輸入。在圖形的使用上,RA8875 支持2D 的BTE 引擎 (Block Transfer Engine),此功能兼容于一般通用的2D BitBLT 功能,可處理大量圖形數(shù)據(jù)轉(zhuǎn)換與傳送。同時(shí)RA8875 也內(nèi)建幾何圖形加速引擎 (Geometric Speed-up Engine),提供使用者透過(guò)簡(jiǎn)單的設(shè)定輕松畫(huà)出直線(xiàn)、矩形、圓形和橢圓的幾何圖形[2]。

相對(duì)于其他的TFT控制器解決方案,RA8875是一個(gè)功能強(qiáng)大及低成本的彩色TFT 控制器,讓使用者順利解決軟硬件開(kāi)發(fā)上的困難,同時(shí)達(dá)成低成本、高效能的系統(tǒng)方案。

3.1.2 觸摸屏控制器

本設(shè)計(jì)采用TSC2046作為觸摸屏的控制器。觸摸屏一般分為電容、電阻、矢量壓力傳感、表面聲波以及紅外線(xiàn)掃描等類(lèi)型,使用最多的是四線(xiàn)和五線(xiàn)電阻式觸摸屏。四線(xiàn)電阻式觸摸屏由2個(gè)透明的電阻薄膜組成[3],當(dāng)水平和垂直方向電阻網(wǎng)有電壓時(shí),就可以通過(guò)A/D轉(zhuǎn)換面板在觸摸點(diǎn)測(cè)量出電壓從而求出對(duì)應(yīng)的坐標(biāo)值[3-4]。TSC2046是新一代四線(xiàn)觸摸屏控制器,是典型的逐次逼近寄存器型A/D 變換器。其結(jié)構(gòu)以電容再分布為基礎(chǔ),包含了取樣/保持功能,支持低電壓的I/O接口。

TS2046接口電路圖如圖2所示。

圖2 觸摸屏控制器接口電路Fig.2 Touch screen controller interface circuit

3.1.3 下位機(jī)主控制器

圖3 上位機(jī)與下位機(jī)信息交換電路Fig.3 Upper machine and lower machine information exchange circuit

本設(shè)計(jì)采用STM32103VET6芯片作為下位機(jī)主控制器。STM32系列32位閃存微控制器使用來(lái)自于ARM公司的具有突破性Cortex-M3內(nèi)核,該內(nèi)核是專(zhuān)門(mén)設(shè)計(jì)于滿(mǎn)足集高性能、低功耗、實(shí)時(shí)應(yīng)用、具有競(jìng)爭(zhēng)性?xún)r(jià)格于一體的嵌入式領(lǐng)域要求。STM32103VET6芯片CPU可達(dá)72 MHz,具有512 KB內(nèi)部存儲(chǔ)空間、64 KB RAM、100個(gè)引腳,可以充分滿(mǎn)足程序設(shè)計(jì)者的要求[5]。由于該芯片集成了更豐富的資源、方便使用的架構(gòu)以及低功耗等特性,加上有競(jìng)爭(zhēng)力的價(jià)格,使得從16位升級(jí)到32位變得容易,使該系列芯片正在逐步取代ARM7系列芯片。使用該芯片開(kāi)發(fā)產(chǎn)品更簡(jiǎn)便快捷。

上位機(jī)與下位機(jī)主控制器信息加載電路如圖3所示。其中PA9為STM32芯片的串口數(shù)據(jù)發(fā)送端USART1_TX,PA10為STM32芯片的串口數(shù)據(jù)接收端USART1_RX。

3.2 軟件部分

3.2.1 移植UCGUI到主控制器

UCGUI是一種嵌入式應(yīng)用中的圖形支持系統(tǒng)。能夠?yàn)槿魏问褂肔CD圖形顯示的應(yīng)用提供高效的獨(dú)立于處理器及LCD控制器的圖形用戶(hù)接口,它適用單任務(wù)以及多任務(wù)系統(tǒng)環(huán)境, 并適用于任意LCD控制器和CPU控制的真實(shí)顯示或虛擬顯示[6]。

3.2.2 建立用戶(hù)圖形界面數(shù)據(jù)庫(kù)

用戶(hù)想要在屏幕上顯示的窗口、文字、控件等的集合稱(chēng)為用戶(hù)圖形界面。用戶(hù)圖形界面數(shù)據(jù)庫(kù)就是這些窗口、文字、控件的屬性的集合。通過(guò)用戶(hù)圖形界面數(shù)據(jù)庫(kù),可以實(shí)現(xiàn)用戶(hù)想要設(shè)計(jì)的界面的顯示。

3.2.3 觸摸屏、圖形界面、監(jiān)控程序設(shè)計(jì)

軟件部分重點(diǎn)在于UCGUI的移植與配置,液晶屏的初始化以及下位機(jī)主控制器的監(jiān)控程序設(shè)計(jì)。

其中,UCGUI的移植與配置是根據(jù)選用的液晶屏參數(shù)對(duì)GUIConf.h、LCDConf.h、LCDDummy.c 3個(gè)文件進(jìn)行相關(guān)的配置[7]。

GUIConf.h文件主要是對(duì)ucgui進(jìn)行相關(guān)的配置,具體如下:

#ifndef GUICONF_H

#define GUICONF_H

#define GUI_OS (0)/*這里指的是對(duì)操作系統(tǒng)的支持,因?yàn)橹挥袉渭兊囊浦睻CGUI,所以要把這個(gè)設(shè)置為0*/

#define GUI_SUPPORT_TOUCH (1)

/* 是否支持觸摸 */

#define GUI_SUPPORT_UNICODE(1)

/*UNICODE編碼支持*/

#define GUI_ALLOC_SIZE 5000 /*

動(dòng)態(tài)內(nèi)存機(jī)制 */

#define GUI_WINSUPPORT 1

/*支持窗口*/

#define GUI_SUPPORT_MEMDEV 1

/* 內(nèi)存控制*/

#define GUI_SUPPORT_AA 1

/* 抗鋸齒*/

#endif

LCDConf.h文件是對(duì)液晶屏做相應(yīng)的配置,具體如下:

#defineLCD_XSIZE (800) /*定義液晶屏長(zhǎng)度為800*/

#defineLCD_YSIZE (480) /*定義液晶屏寬度為480*/

#defineLCD_CONTROLLER (8875) /*控制器編號(hào)*/

#defineLCD_BITSPERPIXEL (16) /*16位點(diǎn)顯示格式*/

#defineLCD_FIXEDPALETTE (565) /*對(duì)應(yīng)紅綠藍(lán)為565位*/

#defineLCD_INIT_CONTROLLER() /*定義控制器型號(hào)RA8875*/

配置層的相關(guān)配置都已完成,然后就是接口層,LCDDummy.c文件為接口層配置文件,具體如下:

將其中的LCD_L0_Init函數(shù)定義如下:

int LCD_L0_Init(void)

{

RA875_Init ();//液晶屏初始化函數(shù)

return0;

}

將其中的LCD_L0_SetPixelIndex函數(shù)定義如下:

void(intx,inty,intPixelIndex)

{

RA875_SetPoint(u16 x,u16 y,u16 point);//調(diào)用置點(diǎn)程序

}

將其中的LCD_L0_GetPixelIndex函數(shù)定義如下

unsignedintLCD_L0_GetPixelIndex(intx,inty)

{

return RA875_GetPoint(u16 x,u16 y);//調(diào)用取點(diǎn)程序

}

至此,UCGUI的移植完畢,移植的難點(diǎn)在于設(shè)備驅(qū)動(dòng)函數(shù)的編寫(xiě)以及接口層的設(shè)計(jì)。

液晶屏的初始化主要是在Init_RA875()中實(shí)現(xiàn)的,首先程序調(diào)用GPIO_Configuration()函數(shù)對(duì)液晶屏使用的GPIO管腳進(jìn)行初始化,具體代碼如下:

void GPIO_Configuration(void)

{

GPIO_InitTypeDef GPIO_InitStructure; //GPIOA到E口時(shí)鐘使能

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE,ENABLE);

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode =

GPIO_Mode_AF_PP;

GPIO_Init(GPIOE,&GPIO_InitStructure); // RS指令/數(shù)據(jù)選擇控制訊號(hào)端口

GPIO_InitStructure.GPIO_Pin =

GPIO_Pin_11 ;

GPIO_InitStructure.GPIO_Speed =

GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode =

GPIO_Mode_AF_PP;

GPIO_Init(GPIOD,&GPIO_InitStructure);

…………

GPIO_SetBits(GPIOD,GPIO_Pin_4);//MCU選用的是6800系列時(shí)置1

GPIO_SetBits(GPIOD,GPIO_Pin_5);

}

在對(duì)TFT LCD使用的GPIO管腳進(jìn)行初始化后就可以正常的訪問(wèn)液晶屏驅(qū)動(dòng)芯片了,程序根據(jù)驅(qū)動(dòng)芯片的ID進(jìn)行初始化[8],其初始化部分程序如下:

void Init_RA875(void)

{

WriteCommand(0x88);

WriteData(0x0c);//PLL(鎖相回路)控制寄存器參數(shù)設(shè)置,PLLDIVN[4:0] = 20 FIN = 16 MHz

DelayMs(1);

WriteCommand(0x89);

WriteData(0x02);//PLLDIVK[2:0] =2

DelayMs(10);

WriteCommand(0x10); //色彩深度設(shè)定

WriteData(0x0F);//256色0x0F/65K色0x0C

……………

TP_auto_mode(); //觸摸面板自動(dòng)模式設(shè)置

WriteCommand(0x70);//設(shè)置采樣時(shí)間和ADC時(shí)鐘

WriteData(0xB2);

Enable_TP();

RA8875_WAITSTATUS();

clear_TP_interrupt(); //清TP中斷

Active_Window(0,799,0,479);//設(shè)定面板分辨率為800 pixel×480 pixel

………………………

PWM1_enable();

PWM1_fnuction_sel();

PWM1_clock_ratio(0x03);//2MHz PWM1

PWM1_duty_cycle(0x00);//亮度設(shè)置

//設(shè)置數(shù)字光標(biāo)

Text_Cursor_Horizontal_Size(24);

Text_Cursor_Vertical_Size(4);

Text_Blink_Time(0x35);

Text_Cursor_Blink_Enable();

Text_Cursor_Enable();

MemoryWrite_Cursor_autoIncrease();//寫(xiě)光標(biāo)加1

}

至此完成了液晶屏的底層驅(qū)動(dòng)設(shè)計(jì),為以后用戶(hù)圖形界面的顯示做好了準(zhǔn)備。

用戶(hù)圖形界面監(jiān)控程序重點(diǎn)在于函數(shù)_cbCallback(WM_MESSAGE*pMsg)。

其主要內(nèi)容如下:

static void _cbCallback(WM_MESSAGE * pMsg)

{

int NCode, Id;

WM_HWIN hWin = pMsg->hWin;

switch (pMsg->MsgId) //判斷發(fā)生什么觸發(fā)事件,根據(jù)觸發(fā)事件做出相應(yīng)變化。

{

case WM_PAINT:

PaintDialog(pMsg);

break;

case WM_INIT_DIALOG:

……………

(((WM_KEY_INFO*)(pMsg->Data.p))->Key) //判斷是否有按鍵按下

{

…………

WM_NOTIFICATION_VALUE_CHANGED:

…………

WM_DefaultProc(pMsg);

}

4 結(jié) 論

本設(shè)計(jì)采用STM32F103VET6作為主控芯片,RA8875作為液晶屏控制芯片,有效降低了開(kāi)發(fā)成本,并且縮短了圖形界面顯示與反應(yīng)的時(shí)間,保證了顯示界面的穩(wěn)定性。利用RS232通信技術(shù)實(shí)現(xiàn)用戶(hù)圖形數(shù)據(jù)庫(kù)的加載,使用戶(hù)圖形界面的設(shè)計(jì)簡(jiǎn)單易懂,易于操作,即便不懂編程的用戶(hù)也可以很快設(shè)計(jì)出自己想要的圖形界面。

[1] 杜詩(shī)超,宋永昌,王建.觸摸屏、組態(tài)軟件入門(mén)與典型應(yīng)用 [M].北京:中國(guó)電力出版社,2012.

Du S C, Song Y C, Wang J.IntroductiontoTouchScreen,ConfigurationSoftwareandTypicalApplications[M].Beijing: China Electric Power Press,2012. (in Chinese)

[2] 韓超.嵌入式GUI開(kāi)發(fā)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2009.

Han C.EmbeddedGUIDevelopmentandDesign[M]. Beijing: Electronic Industry Press,2009. (in Chinese)

[3] 胡冰.EP7212處理器的LCD控制及觸摸屏接口設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002(5):49-54.

Hu B. EP7212 processor of LCD and touch screen control interface design [J].Microcontrollers&EmbeddedSystems,2002(5):49-54.(in Chinese)

[4] 劉榮林,程曉東.SSP接口的觸摸屏軟硬件系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(11): 64-67.

Liu R L, Cheng X D. Hardware and software system design of touch of the SSP interface pitcher [J].Microcontrollers&EmbeddedSystems,2009(11): 64-67. (in Chinese)

[5] 黃福睿.基于ARM和WindowsEmbeddedCE6.0的嵌入式車(chē)載系統(tǒng)的設(shè)計(jì)及研究[D]. 沈陽(yáng):沈陽(yáng)理工大學(xué).2011.

Huang F R. Based on ARM and embedded on-board WindowsEmbeddedCE6.0 system design and research [D]. Shenyang:Shenyang Ligong University,2011. (in Chinese)

[6] 陳超.MATLAB應(yīng)用實(shí)例精講:圖像處理與GUI設(shè)計(jì)篇[M].北京:電子工業(yè)出版社,2011.

Chen C.MATLABApplicationExample:ImageProcessingandGUIDesign[M]. Beijing:China Electric Power Press,2011.(in Chinese)

[7] 劉軍.例說(shuō)STM32[M].北京:北京航空航天大學(xué)出版社,2011.

Liu J.CaseSaysSTM32 [M]. Beijing: Beijing University of Aeronautics and Astronautics Press,2011. (in Chinese)

[8] Urwin-Wright S, Sanders D A. Rugged LCD touch screens for embedded applications [J].MechanicalSystemsandSignalProcessing,2008(2):23-24

猜你喜歡
嵌入式用戶(hù)設(shè)計(jì)
瞞天過(guò)海——仿生設(shè)計(jì)萌到家
搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專(zhuān)
Coco薇(2017年5期)2017-06-05 08:53:16
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
關(guān)注用戶(hù)
關(guān)注用戶(hù)
關(guān)注用戶(hù)
如何獲取一億海外用戶(hù)
Altera加入嵌入式視覺(jué)聯(lián)盟
主站蜘蛛池模板: 9cao视频精品| 免费人成视网站在线不卡| 欧美日韩国产在线播放| 成人一区在线| 国产第二十一页| 真人高潮娇喘嗯啊在线观看| 九九热这里只有国产精品| 92精品国产自产在线观看| 日本一本在线视频| 91国内在线观看| 亚洲免费毛片| 久久国产V一级毛多内射| 亚洲欧美人成电影在线观看| 欧美激情二区三区| 激情综合五月网| 国产精品福利在线观看无码卡| 亚洲最大在线观看| 欧美一级夜夜爽www| 国产靠逼视频| 亚洲精品第1页| 在线观看国产小视频| 国产微拍一区二区三区四区| 91蜜芽尤物福利在线观看| 亚洲欧美在线综合一区二区三区 | 99er这里只有精品| 妇女自拍偷自拍亚洲精品| 欧美日韩中文字幕在线| 伦伦影院精品一区| 欧美精品v日韩精品v国产精品| 久久香蕉国产线看观看式| 五月婷婷综合色| 亚洲成年网站在线观看| 欧美亚洲另类在线观看| 国内精品视频| 日韩国产黄色网站| 亚洲人成色77777在线观看| 成年免费在线观看| 国产亚洲视频在线观看| 99热这里只有精品5| 日本高清成本人视频一区| 毛片在线播放网址| 波多野结衣一区二区三视频| 国产杨幂丝袜av在线播放| 91精品专区| 亚洲AV无码一二区三区在线播放| 国产精品分类视频分类一区| 广东一级毛片| www亚洲精品| 一区二区三区国产精品视频| 中美日韩在线网免费毛片视频| 亚洲动漫h| 国产精品午夜电影| 熟妇丰满人妻| 国产精品微拍| 看国产毛片| 国产成人精品男人的天堂| 最新日韩AV网址在线观看| 欧美日韩免费| 欧美无专区| a毛片在线| 国产人成在线观看| 欧美不卡二区| 国产另类视频| 青草视频网站在线观看| 99精品热视频这里只有精品7| 国产激情无码一区二区三区免费| 欧美www在线观看| 久久毛片网| 日韩毛片免费观看| 亚洲国产91人成在线| 97se亚洲综合| www.日韩三级| 茄子视频毛片免费观看| 国产流白浆视频| 中文字幕 欧美日韩| 国产视频一区二区在线观看| 国产亚洲高清视频| 国产欧美日韩18| 日韩色图区| 巨熟乳波霸若妻中文观看免费| 免费国产不卡午夜福在线观看| 999精品在线视频|