在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

低成本的單色LCD構建菜單界面的方案介紹

英創信息技術 ? 作者:英創信息技術 ? 2019-09-28 02:49 ? 次閱讀

低成本的單色LCD在工業領域應用非常廣泛,英創公司提供的基于WinCE平臺的EM9X60系列板卡均支持外接單色LCD屏,目前應用得比較多的規格包括有LCD320X240、LCD240X128、LCD128X64等。在實際應用中有許多對于菜單界面操作的需求,由于EM9X60系列板沒有支持標準的Windows桌面顯示,因此應用程序無法直接利用WindowsCE的窗口界面、或者基于MFC的對話框作為應用程序的操作界面,而是需要客戶根據應用的具體要求自行構建菜單界面,本文將重點介紹這方面的內容。
基于菜單界面操作過程實質一個簡單的交互式操作,需要實時響應鍵盤消息、定時消息等。WinCE操作系統內部具備有完善的消息處理機制,來實現應用請求消息的實時響應。因此本案例是一個具有Windows風格的應用例程,通過窗口的消息傳遞來實現對于鍵盤、定時任務的實時響應,從而實現對于菜單界面的操作。
下面分兩個部分來介紹該例程:

1、應用程序框架
在Windows下進行窗口應用程序編程的優點,程序只對操作系統發給它的通知進行響應,比如收到鍵盤被按下、定時任務等,而不需要應用程序不斷地查詢窗口的請求輸入。在支持單色LCD的WinCE系統下也是如此,操作系統在有輸入發生時會通知應用程序,操作系統是通過發送消息到應用程序窗口的方式來完成這個通知,雖然該“應用程序窗口”無法正常顯示,但是可以通過它來完成消息的傳遞。本例程采用傳統的Windows窗口應用程序編程的框架,以方便實現對于外界請求輸入的響應,從而實現在單色LCD上菜單界面的操作顯示。
在該程序例程中WinMain(…)函數也是按照窗口應用程序的過程,首先進行初始化操作,包括對于LCD屏的初始化、菜單界面的初始化操作、加載矩陣鍵盤驅動等操作;然后是創建窗口;再進入消息循環。如下圖所示:

低成本的單色LCD構建菜單界面的方案介紹

// LCD初始化操作以及加載缺省的菜單界面
i1 = LCD_Init( LCD_12864 );
LCD_LoadSmallFnt( );
LCD_SetMode( 1 ); // set to XOR mode
status = MenuManager.LoadMenu( );
if( status < 0 ) return status;
MenuManager.Show( );
// 激活基于EM9x60板卡ISA的矩陣鍵盤驅動
hDevice = ActivateDevice( TEXT('Drivers\\isa_keypad'), 0);

// 初始化本程序實例,主要是創建窗口等工作
hwndMain = InitInstance( hInstance, lpCmdLine, nCmdShow );
if( hwndMain == 0 )
return 0x10;// init fail!
// 設置定時器的時間間隔為2秒
SetTimer( hwndMain, 1, 2000, NULL );

// 應用程序消息循環
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
KillTimer( hwndMain, 1 );
LCD_UnLoadSmallFnt( );
其中的消息循環為主線程,循環很簡單,調用GetMessage函數,從應用程序的消息隊列中取得一條來自系統的消息,如果沒有消息到來,這個函數就是處于等待狀態,相當于這個應用主線程就被阻塞直到消息到來。
菜單例程中響應的系統消息包括:鍵盤消息(WM_KEYUP)和定時消息(WM_TIMER),WinCE和Windows標準系統一樣使用了相同的鍵盤消息處理方式。當一個鍵按下時,通常是以WM_KEYDOWN消息起始,如果按下的鍵代表一個字符,比如一個字母或數字,在WM_KEYDOWN之后還會發送一個WM_CHAR消息,當鍵被釋放時,最終的WM_KEYUP消息被發送,在這些消息的參數wParam指示了按下鍵的虛擬鍵值。為了簡化程序,在此例程中對于按鍵的響應,是等到按鍵釋放的時候,也就是說應用程序只響應WM_KEYUP消息。定時消息則可以通過函數SetTimer( … )來實現,該函數同時也設置了定時事件、以及定時間隔。
消息的響應是通過定義MainMessage表格,將消息值和消息處理例程函數關聯起來。如:
const struct decodeUINT MainMessages[] =
{
{ WM_KEYUP, DoKeysMain },
{ WM_TIMER, DoTimerMain },
{ WM_DESTROY, DoDestroyMain }
};

// 鍵盤消息WM_KEYUP ..處理函數
LRESULT DoKeysMain( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam )
{
switch( wParam )
{
case 0x33:// 移動鍵
MenuManager.Key_SHIFT( );
break;
case 0x36:// 確認鍵
MenuManager.Key_ENTER( );
break;
}
return 0;
}
// 定時消息WM_TIMER處理函數
LRESULT DoTimerMain( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam )
{
MenuManager.Update( );
return 0;
}
2、菜單界面設計
在本例程中主要是針對一個基于LCD128X64顯示終端所設計的二級菜單顯示界面,功能鍵有兩個:移動鍵(Key_Shift)和確認鍵(Key_Enter),通過移動鍵選擇菜單項,確認鍵來進入下一級,或者返回上一級菜單。
菜單的顯示和管理是通過C++方式來實現,Class Item定義菜單中各個菜單項的顯示特性以及操作特性;Class Menu定義了菜單的特性,其中包含又對于菜單中各個菜單項管理的功能;Class MenuManager是一個菜單管理類,這個類實現了對于各個菜單的管理和操作特性,相當于一個人機交互界面的功能。它們定義分別在 Item.h Menu.h文件中。
為了增加菜單設計的靈活性,對于各個菜單界面的顯示內容采用了讀取配置文件的方式,即在配置文件中定義各個菜單的顯示名稱和顯示位置,如:
// item的類型 顯示名稱 X位置 Y位置 下一級菜單名稱
item=301 終端參數 0 0 MENU1
item=301 實時數據 0 16 MENU2
item=301 終端狀態 0 32 MENU3
item=301 顯示配置 0 48 MENU4
item=301 擴展菜單 64 0 MENU5
item=301 擴展菜單 64 16 MENU6
item=301 擴展菜單 64 32 MENU7
item=301 擴展菜單 64 48 MENU8
根據該配置文件所形成的菜單如下:

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • WINDOWS
    +關注

    關注

    4

    文章

    3608

    瀏覽量

    91023
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6097

    瀏覽量

    36169
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    一款低成本高性能的LCD移動電源設計方案

    據統計,市面上80%以上的產品采用的粗略的電量計量方式,同質化嚴重。為了讓消費者有更好的用戶體驗,攜帶多重優秀品質的高性價比LCD移動電源應運而生。本文介紹一款低成本高性能的LCD移動
    發表于 10-20 11:08 ?2514次閱讀

    具有觸摸感應接口的觸摸界面的應用

    遷移到觸摸傳感接口的應用設計人員(圖1)正在尋找易于集成的相當堅固,低成本和低功耗的解決方案。分段式LCD歷來是一種流行的選擇,并且在各種醫療和工業應用中繼續發展。然而,近年來,使用TFT,OLED
    的頭像 發表于 01-23 08:39 ?6889次閱讀

    EM335x支持低成本單色LCD顯示方案

    LCD控制器包括有兩種獨立的控制器:一種是行掃(raster)模式,一種是LCD接口驅動(LIDD)模式,raster 模式用于處理同步LCD,用于支持彩色液晶顯示屏,而LIDD模式可以用來支持
    發表于 07-11 11:00

    低成本LCD偏置電源分立式解決方案

    描述此參考設計使用升壓轉換器 IC TPS61085 提供低成本 LCD 偏置電源電路。此解決方案提供薄膜晶體管 (TFT) LCD 顯示屏所需的所有四個電壓。TPS61085 升壓轉
    發表于 11-19 14:54

    圖形LCD模塊的菜單方式人機交互界面

    在以單片機為核心的嵌入式應用中,友好的人機交互界面起著十分重要的作用。筆者在設計中使用WGM-12864B 圖形LCD 模塊實現一種中文窗口菜單界面,設計中使用的方法具有普遍性意
    發表于 04-16 13:57 ?43次下載

    低成本LCD驅動控制的ASIC實現方案

    低成本LCD驅動控制的ASIC實現方案深圳集成電路設計產業化基地管理中心劉 奇LCD驅動控制是顯示驅動信號,進而驅動LCD顯示器的核心部件。
    發表于 12-20 09:32 ?56次下載

    圖形點陣LCD液晶模塊顯示界面的可視化編程方案與實踐

    圖形點陣LCD液晶模塊顯示界面的可視化編程方案與實踐 隨著圖形點陣LCD液晶顯示模塊在各行各業的逐步使用,使得人機界面變得越來越直觀,尤其
    發表于 11-05 09:16 ?1278次閱讀
    圖形點陣<b class='flag-5'>LCD</b>液晶模塊顯示<b class='flag-5'>界面的</b>可視化編程<b class='flag-5'>方案</b>與實踐

    基于MAX17014的低成本LCD TV電源解決方案

    基于MAX17014的低成本LCD TV電源解決方案 Maxim 公司的MAX17014是低成本多輸出的LCD TV電源控制器,能
    發表于 03-24 17:53 ?1066次閱讀
    基于MAX17014的<b class='flag-5'>低成本</b><b class='flag-5'>LCD</b> TV電源解決<b class='flag-5'>方案</b>

    WinCE下單色LCD菜單界面設計方案

    低成本單色 LCD 在工業領域應用非常廣泛,英創公司提供的基于WinCE平臺的EM9X60系列板卡均支持外接單色LCD屏,目前應用得比較多
    發表于 06-09 15:49 ?49次下載
    WinCE下<b class='flag-5'>單色</b><b class='flag-5'>LCD</b>屏<b class='flag-5'>菜單</b><b class='flag-5'>界面設計方案</b>

    適用于單片機LCD12864的界面菜單設計思路資料免費下載

    本文檔的主要內容詳細介紹的是適用于單片機LCD12864的界面菜單設計思路資料免費下載。
    發表于 07-02 16:06 ?45次下載
    適用于單片機<b class='flag-5'>LCD</b>12864的<b class='flag-5'>界面</b><b class='flag-5'>菜單</b>設計思路資料免費下載

    英創信息技術ARM9 Linux智能終端菜單界面設計介紹

    240x128、LCD128x64、LCD160x160等。在實際應用中有許多對于菜單界面操作的需求,需要客戶根據應用的具體要求自行構建
    的頭像 發表于 11-18 10:04 ?1488次閱讀
    英創信息技術ARM9 Linux智能終端<b class='flag-5'>菜單</b><b class='flag-5'>界面</b>設計<b class='flag-5'>介紹</b>

    英創信息技術EM335x支持低成本單色LCD顯示介紹

    LCD控制器包括有兩種獨立的控制器:一種是行掃(raster)模式,一種是LCD接口驅動(LIDD)模式,raster 模式用于處理同步LCD,用于支持彩色液晶顯示屏,而LIDD模式可以用來支持
    的頭像 發表于 02-03 10:04 ?2555次閱讀

    英創信息技術ESM335x主板支持單色LCD屏顯示簡介

    英創公司曾經在EM335x主板上推出了一套支持低成本單色LCD屏的方案,詳細的介紹請參考文章《EM335x支持
    的頭像 發表于 02-07 11:05 ?1773次閱讀
    英創信息技術ESM335x主板支持<b class='flag-5'>單色</b><b class='flag-5'>LCD</b>屏顯示簡介

    低成本的醫療檢測與監測方案

    介紹最新的低成本的醫療檢測與監測方案
    發表于 03-16 15:38 ?8次下載
    <b class='flag-5'>低成本</b>的醫療檢測與監測<b class='flag-5'>方案</b>

    基于AVR單片機的樹狀菜單界面的設計

    電子發燒友網站提供《基于AVR單片機的樹狀菜單界面的設計.pdf》資料免費下載
    發表于 10-30 11:10 ?0次下載
    基于AVR單片機的樹狀<b class='flag-5'>菜單</b><b class='flag-5'>界面的</b>設計
    主站蜘蛛池模板: 黄色顶级视频 | 四虎国产精品永久地址51 | 性色免费视频 | 国产免费一区二区三区香蕉精 | 天天色影 | 成人国产精品一级毛片视频 | 欧美日本色 | 又长又大又粗又硬3p免费视频 | 日本一区二区三区视频在线 | 亚洲三级色 | 欧洲人体超大胆露私视频 | 国产小视频在线高清播放 | jzzjlzz亚洲乱熟在线播放 | 国产精品久久久久影院色老大 | 日本三级香港三级人妇网站 | 青草国内精品视频在线观看 | 天天射狠狠干 | 色噜噜狠狠狠色综合久 | 五月婷婷六月丁香激情 | 久久青青草原精品老司机 | 久久国产精品免费看 | 亚洲不卡网 | 四虎影院官网 | 亚洲国产成人久久 | 激情五月综合网 | 羞羞视频靠逼视频大全 | 狠狠操操 | 激情性爽三级成人 | 欧美专区在线播放 | 97久久天天综合色天天综合色 | 久久婷婷一区二区三区 | 一级特黄特黄的大片免费 | sss在线play| 57pao强力打造免费高清高速 | av基地| 亚洲永久网站 | 7799国产精品久久久久99 | 最新福利网站 | 欧美日韩国产在线一区 | 日本吻胸抓胸激烈视频网站 | 射菊吧|