|
一個(gè)占用內(nèi)存極少的菜單系統(tǒng)的實(shí)現(xiàn)
在各類儀器儀表的設(shè)計(jì)中,常常需要透過(guò)液晶和鍵盤來(lái)實(shí)現(xiàn)人機(jī)交互,當(dāng)整個(gè)系統(tǒng)需要管理的內(nèi)容較多的時(shí)候,如何透過(guò)鍵盤和液晶實(shí)現(xiàn)有效管理便是個(gè)問(wèn)題。通常軟件的設(shè)計(jì)者會(huì)設(shè)計(jì)一個(gè)菜單界面來(lái)達(dá)到這個(gè)目的。
本代碼便是透過(guò)對(duì)身邊常見的手機(jī)的界面做分析,總結(jié),然后通過(guò) C 代碼實(shí)現(xiàn)類似的界面。
這套代碼實(shí)現(xiàn)的菜單的特點(diǎn):
1支持 3種菜單類型
支持多國(guó)語(yǔ)言,占用內(nèi)存極小
全C語(yǔ)言代碼,方便移植,支持?jǐn)?shù)字按鍵快捷方式
1. MenuSampleCode目錄是代碼 這份代碼我在我的硬件上測(cè)試過(guò)。
2.說(shuō)明文檔是:一個(gè)占用內(nèi)存極少的菜單系統(tǒng)的實(shí)現(xiàn).pdf
3.menu.gif是一個(gè)演示
4.目錄說(shuō)明
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)存還是挺小的。
源文件說(shuō)明
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 語(yǔ)言切換代碼
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)分
|