亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于狀態(tài)機的LCD多級菜單設(shè)計*

        2012-06-25 02:45:56賈志成程敏宋濤王彥康志龍郭艷菊
        關(guān)鍵詞:個字符狀態(tài)機按鍵

        賈志成,程敏,宋濤,王彥,康志龍,郭艷菊

        (1.河北工業(yè)大學 信息工程學院,天津 300401;2.天津職業(yè)技術(shù)大學)

        程敏(碩士研究生),研究方向為電子遙測遙控、工業(yè)控制、嵌入式系統(tǒng)。

        1 概 述

        液晶顯示器(Liquid Crystal Display,LCD)由于其體積和功耗等因素,非常適合嵌入式環(huán)境的使用。近年來,隨著微處理器性能的提高,嵌入式系統(tǒng)實現(xiàn)的功能越來越強大,產(chǎn)生的數(shù)據(jù)量也越來越大。相對應地,需要顯示的數(shù)據(jù)量也隨之增大。嵌入式環(huán)境下使用LCD顯示器,由于條件限制,體積較小,且顯示的內(nèi)容有限。而且,傳統(tǒng)的LCD顯示模式總是不加選擇地顯示所有監(jiān)控的信息,在監(jiān)控的信息量非常龐大時會導致不能及時顯示用戶所需求的信息。多級菜單顯示則是將信息分類顯示的一種顯示方式,該方式根據(jù)用戶的選擇,對顯示信息加以篩選并分級顯示,這樣既保證用戶獲取其所需的信息,又能保障信息顯示的實時性。

        2 多級菜單的結(jié)構(gòu)

        設(shè)計多級菜單的目的在于將需要顯示的信息分門歸類,方便用戶篩選。所以在設(shè)計菜單時需要根據(jù)整個系統(tǒng)的功能和要求來設(shè)定菜單的級數(shù),以及各級子菜單的個數(shù)。整個多級菜單的拓撲結(jié)構(gòu)為樹型結(jié)構(gòu),主菜單為根節(jié)點,子菜單為枝節(jié)點,最后一級菜單為葉節(jié)點,如圖1所示。

        圖1 多級菜單的結(jié)構(gòu)圖

        3 多級菜單的程序設(shè)計

        3.1 循環(huán)方式

        循環(huán)方式的設(shè)計思路:預先定義一個包含6個結(jié)構(gòu)元素的結(jié)構(gòu)體、5個字符型和1個指針型。第1個字符變量存放當前界面的索引號;第2個字符變量存放按下“down(向下)”鍵時需要跳轉(zhuǎn)到的索引號;第3個字符變量存放按下“up(向上)”鍵時需要跳轉(zhuǎn)到的索引號;第4個字符變量存放按下“enter(進入)”鍵時需要跳轉(zhuǎn)的索引號;第5個字符變量存放按下“esc(退出)”鍵時需要跳轉(zhuǎn)的索引號;第6個變量為函數(shù)指針變量,存放當前索引號下需要執(zhí)行的函數(shù)的入口地址。

        將所有需要顯示的界面其所對應的執(zhí)行函數(shù)和按鍵索引號以結(jié)構(gòu)體的形式列表存儲。具體實現(xiàn)如下:

        假設(shè)菜單分3級,共10個界面,則有:

        當微處理器掃描鍵盤檢測到有按鍵按下時,根據(jù)按鍵按下的類型,返回在當前界面下其所對應的跳轉(zhuǎn)索引號,并執(zhí)行相應的函數(shù)。

        由于每個界面的繪制都是由一個獨立函數(shù)實現(xiàn)的,從循環(huán)方式的實現(xiàn)過程中發(fā)現(xiàn),每發(fā)生一次按鍵按下操作都需要重新繪制整個屏幕。如果核心處理器是低速主頻的處理器,在界面切換的時候會閃爍。而且,每一個界面都有固定不變的索引號,在增加或刪除界面的時候需要重新修改整個列表,降低了程序的可移植性。

        3.2 查詢方式

        查詢方式是通過結(jié)構(gòu)體對自身的遞歸調(diào)用實現(xiàn)菜單的多級嵌套。

        結(jié)構(gòu)體通過對自身的兩次調(diào)用構(gòu)建雙向列表。一個菜單界面即為一個節(jié)點,節(jié)點的前驅(qū)和后繼分別存放其父節(jié)點和子節(jié)點的入口地址。

        菜單參數(shù)的結(jié)構(gòu)體定義如下:

        每個界面對應一個節(jié)點,節(jié)點都定義成如下結(jié)構(gòu)體的變量:

        由圖1可知,多級菜單的拓撲結(jié)構(gòu)為樹型拓撲結(jié)構(gòu),即每一個節(jié)點只有一個父節(jié)點和若干個子節(jié)點。所以,對整個叉樹進行遍歷即可準確地查找到菜單界面所在的節(jié)點。

        結(jié)構(gòu)體實現(xiàn)的鏈表如圖2所示。

        圖2 結(jié)構(gòu)體鏈表

        查詢方式與循環(huán)方式相比,由于減少了查表次數(shù),因而改善了MPU的效率;但查詢方式占用MPU處理時間過長,不適應需要高速處理數(shù)據(jù)的應用。而且,在查詢方式中增加或刪除節(jié)點對程序改動較大,也不適合移植。

        3.3 狀態(tài)機方式

        狀態(tài)機是由事件驅(qū)動,在各個狀態(tài)之間跳轉(zhuǎn)。采用狀態(tài)機方式時,只需要提供驅(qū)動事件(在此設(shè)計中驅(qū)動事件為有效的按鍵按下),然后根據(jù)按鍵掃描返回的鍵值,決定所要跳轉(zhuǎn)的下一狀態(tài)。

        如圖3所示,系統(tǒng)啟動初始化是顯示Main_menu界面,當按鍵檢測有返回值(即有按鍵按下)時,根據(jù)按下的按鍵所代表的操作跳轉(zhuǎn)到指定的狀態(tài)。例如:按下Up或者是down鍵時,只是在Main_menu界面內(nèi)高亮顯示不同區(qū)域;按下Enter時,則要根據(jù)原來按下的Up和down鍵來選擇需要跳轉(zhuǎn)的方向,假設(shè)在按下Enter之前僅按下一次down鍵,則key_v的值為2(key_v的值默認為1,即默認選中子菜單的第一項),就跳轉(zhuǎn)為Sub_menu2界面;按下Esc鍵時,為從子菜單返回到上一級菜單,如果已經(jīng)是主菜單了則返回的還是主菜單。

        由于使用的是狀態(tài)機的方式,只有發(fā)生一次有效的按鍵,狀態(tài)才會發(fā)生一次跳轉(zhuǎn)。而且,僅當Enter和Esc鍵按下時,才會切換界面。所以即便是在高速MPU應用中,也不會出現(xiàn)屏幕閃爍的效果。

        從圖3中可以看出,當要發(fā)生狀態(tài)跳轉(zhuǎn)時,目的狀態(tài)只能是當前狀態(tài)幾個分支預測中的一個,從而不需要遍歷整個列表,能夠適應高速數(shù)據(jù)處理的場合。

        多級菜單的程序流程如圖4所示。系統(tǒng)上電初始化后顯示主菜單,鍵盤掃描可以通過主程序中循環(huán)查詢或者中斷掃描來實現(xiàn),最終根據(jù)鍵盤返回的鍵值選擇下一狀態(tài)。

        圖5為基于狀態(tài)機的多級菜單的實現(xiàn)。

        圖4 多級菜單的程序流程圖

        結(jié) 語

        以上三種多級菜單的實現(xiàn)方式均具有很強的實用性。循環(huán)方式和查詢方式下,程序結(jié)構(gòu)簡單易用,而狀態(tài)機方式下程序可移植性強。狀態(tài)機程序設(shè)計不僅可以用在人機接口設(shè)計中,還可用于嵌入式通信協(xié)議等其他場合中。

        圖5 多級菜單的實現(xiàn)

        [1]胡漢才.單片機原理及其接口技術(shù)[M].北京:清華大學出版社,1996:14-15.

        [2]陸錚,羅嘉.單片機C語言下LCD多級菜單的一種實現(xiàn)方法[J].工礦自動化,2006(1):50-51.

        [3]宋曉輝,葉樺,丁昊.基于單片機的多級菜單實現(xiàn)方法改進[J].東南大學學報:自然科學版,2007(37):66.

        [4]陳東,夏遂華.液晶顯示多層菜單結(jié)構(gòu)的軟件設(shè)計[J].電氣傳動,2001(4):36.

        猜你喜歡
        個字符狀態(tài)機按鍵
        基于有限狀態(tài)機的按鍵檢測程序設(shè)計
        電子制作(2021年3期)2021-06-16 03:14:26
        基于有限狀態(tài)機的交會對接飛行任務規(guī)劃方法
        一種多方向?qū)Ч獍存I結(jié)構(gòu)設(shè)計
        電子制作(2016年1期)2016-11-07 08:43:05
        不讓長文件名成為“絆腳石”
        電腦迷(2014年8期)2014-04-29 07:37:40
        按鍵的多種狀態(tài)檢測及消抖處理方法
        家電科技(2013年4期)2013-07-09 10:55:08
        解析某型號手機按鍵檢測程序的缺陷
        工資報表計算機軟件論述
        卷宗(2011年9期)2011-05-14 17:51:19
        FPGA設(shè)計中狀態(tài)機安全性研究
        黑龍江科學(2011年2期)2011-03-14 00:39:36
        基于反熔絲FPGA的有限狀態(tài)機加固設(shè)計
        基于VHDL的一個簡單Mealy狀態(tài)機
        y111111少妇影院无码| 少妇高潮流白浆在线观看| 日本一区二区三区精品不卡| 国产91大片在线观看| 亚洲天堂av黄色在线观看| 手机在线播放av网址| 亚洲色图视频在线免费看| 亚洲av福利院在线观看| 国产又大又硬又粗| 国产精品18久久久| 国产成人综合一区二区三区| 久久国产成人免费网站| 国产AV无码无遮挡毛片| 久久国产亚洲av高清色| 国产不卡在线播放一区二区三区| 日本超级老熟女影音播放| 制服丝袜中文字幕在线| 国产精品爽黄69天堂a| 毛片在线播放a| 伊人色综合视频一区二区三区| 久久亚洲精品成人综合| 日本刺激视频一区二区| 日韩日韩日韩日韩日韩日韩日韩| 67194熟妇人妻欧美日韩| 男人扒开女人下面狂躁小视频| 成年男女免费视频网站| 久久久久亚洲AV无码专区喷| 亚欧免费无码AⅤ在线观看| 麻豆av毛片在线观看| 国产成人综合精品一区二区| 无码国产69精品久久久久孕妇| 亚洲老妇色熟女老太| 中文字幕亚洲无线码在一区| 亚洲电影一区二区| 久久久人妻一区精品久久久| 美女脱了内裤洗澡视频| 中文字幕亚洲综合久久| 天堂国精产品2023年| 狠狠久久久久综合网| 亚洲成人激情在线影院| 视频区一区二在线观看|