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