<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于單片機的任意菜單結構設計

基于單片機的任意菜單結構設計

作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò ) 收藏
單片機系統的人機界面設計中,通常需要采用菜單的方式來(lái)與用戶(hù)交互信息,而對于某些應用系統它的菜單結構比較特殊,它每個(gè)菜單項的子項長(cháng)度不一致,級數不一致,而且有些子項的操作具備一定的特殊性;因此不能采用一種通用的菜單結構模板來(lái)進(jìn)行菜單的設計,結合作者多次菜單程序設計的工作經(jīng)驗,本文描述了一種任意菜單結構的設計方法,首先將菜單的結構目錄樹(shù)用圖形描述出來(lái),再給每個(gè)不同的級和同級不同的項設定一個(gè)唯一的標志,這樣我們就能通過(guò)級標志位與項標志位的邏輯組合來(lái)得到一個(gè)唯一的位置,那么在代碼的編寫(xiě)中只要對這些標志位按照圖形的流程進(jìn)行切換、讀和寫(xiě)便可。

具體方法如下:

本文引用地址:http://dyxdggzs.com/article/201612/325077.htm

首先我們將菜單結構的圖形描繪出來(lái),再根據菜單的級數來(lái)定義一個(gè)結構體,比如菜單最大有5級,則這樣定義

typedef struct

{

unsigned char f;//菜單所在級數

unsigned char s1;//菜單第1級下的子項號

unsigned char s2;//菜單第2級下的子項號

unsigned char s3;//菜單第3級下的子項號

unsigned char s4;//菜單第4級下的子項號

unsigned char s5;//菜單第5級下的子項號

}Menu_TypeDef;

Menu_TypeDefmenu;

再將這些變量的值標定在繪制的菜單圖形中,如下圖所示:

即menu.f=1并且menu.s1=0表示第一級第一項;

即menu.f=2并且menu.s1=3表示第二級第四項;

依此類(lèi)推;

于是,菜單的每一個(gè)位置都會(huì )有一個(gè)唯一的值與之對應,當菜單的選項由用戶(hù)切換時(shí),我們只需要根據菜單結構圖形的流程來(lái)修改這些變量,而當需要查詢(xún)當前菜單指針選中哪一項時(shí),則只要查詢(xún)這些變量的值即可。

由于各級菜單的變量都是獨立的,因此對菜單的結構沒(méi)有限制,適用于設計任意結構的菜單,如果當菜單級數較多,定義的菜單變量較多時(shí),也不要緊,因為我們的菜單設計是先繪制菜單結構圖形,再根據圖形來(lái)編寫(xiě)代碼,實(shí)際上就是根據圖形的描述往代碼里填值罷了。

經(jīng)實(shí)踐證明,采用以上方法能完全適用于所有任意結構菜單設計,而且該方法的優(yōu)點(diǎn)在于,有了圖形的描述,不僅減化了代碼編寫(xiě)的難度,而且還有利于代碼維護,提高代碼的可讀性。

符件里是一個(gè)不規則結構的菜單測試程序,基于A(yíng)VR單片機,通過(guò)按鍵來(lái)選擇,菜單的圖形界面在PC機的超級終端上顯示,歡迎廣大網(wǎng)友測試,并討論。



關(guān)鍵詞: 單片機任意菜單結構設

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>