|
|
一個(gè)占用內(nèi)存極少的菜單系統(tǒng)的實(shí)現(xiàn)
在各類儀器儀表的設(shè)計(jì)中,常常需要透過液晶和鍵盤來實(shí)現(xiàn)人機(jī)交互,當(dāng)整個(gè)系統(tǒng)需要管理的內(nèi)容較多的時(shí)候,如何透過鍵盤和液晶實(shí)現(xiàn)有效管理便是個(gè)問題。通常軟件的設(shè)計(jì)者會(huì)設(shè)計(jì)一個(gè)菜單界面來達(dá)到這個(gè)目的。
本代碼便是透過對(duì)身邊常見的手機(jī)的界面做分析,總結(jié),然后通過 C 代碼實(shí)現(xiàn)類似的界面。
這套代碼實(shí)現(xiàn)的菜單的特點(diǎn):
1支持 3種菜單類型
支持多國(guó)語言,占用內(nèi)存極小
全C語言代碼,方便移植,支持?jǐn)?shù)字按鍵快捷方式
1. MenuSampleCode目錄是代碼 這份代碼我在我的硬件上測(cè)試過。
2.說明文檔是:一個(gè)占用內(nèi)存極少的菜單系統(tǒng)的實(shí)現(xiàn).pdf
3.menu.gif是一個(gè)演示
4.目錄說明
MenuSampleCode\SI Source Insight 3.5 的工程文件
MenuSampleCode\Menu.Uv2 Keil 的工程
MenuSampleCode\Src 源代碼
MenuSampleCode\Obj 目標(biāo)文件
MenuSampleCode\Lst 列表文件
可以看MenuSampleCode\Lst\menu.m51最后編譯的結(jié)果:
代碼狀況:
Program Size: data=9.0 xdata=110 code=15731
creating hex file from ".\Obj\menu"...
".\Obj\menu" - 0 Error(s), 0 Warning(s).
這是打開動(dòng)態(tài)條項(xiàng)生成功能時(shí)的結(jié)果。
Program Size: data=9.0 xdata=79 code=15155
creating hex file from ".\Obj\menu"...
".\Obj\menu" - 0 Error(s), 0 Warning(s).
這是關(guān)閉動(dòng)態(tài)條項(xiàng)生成功能時(shí)的結(jié)果。
菜單深度均為4層深度。
25+4*3 = 37Byte 可見占用內(nèi)存還是挺小的。
源文件說明
CPU.H CPU相關(guān)定義
Main.C 主函數(shù)
Ks0108.C LCD驅(qū)動(dòng)
ASCII.c 8x8 8x16 英文字模
KeyScan.C 鍵盤掃描
MenuPara.C 菜單函數(shù)使用模版
MenuTop.C 頂層菜單和菜單核心代碼
MenuFSM.C 菜單核心和FSM代碼
MenuFunc.C 功能菜單和動(dòng)態(tài)條項(xiàng)生成代碼
MenuLanguage.C 語言切換代碼
MenuMeasure.C 空例子
PIC.C 圖標(biāo)
MenuMain.C 菜單主循環(huán)
KeyScan.H
Ks0108.H
Menu.H
Menu.C main函數(shù)
Chinese.txt 用到的中文
Chinese.C 中文字模
|
評(píng)分
-
查看全部評(píng)分
|