找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2088|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

一個(gè)占用內(nèi)存極少的菜單系統(tǒng)的實(shí)現(xiàn)(搬磚) 附代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:519108 發(fā)表于 2022-10-28 11:15 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
感謝作者梁炎昌分享這份代碼
1. MenuSampleCode目錄是代碼  這份代碼我在我的硬件上測(cè)試過(guò)。
2.說(shuō)明文檔是:一個(gè)占用內(nèi)存極少的菜單系統(tǒng)的實(shí)現(xiàn).pdf
3.menu.gif是一個(gè)演示 Simulation.exe是uCGUI上移植的演
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).
這是打開(kāi)動(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 可見(jiàn)占用內(nèi)存還是挺小的。
源文件說(shuō)明
CPU.H        CPU相關(guān)定義
Main.C       主函數(shù)
Ks0108.C     LCD驅(qū)動(dòng)
ASCII.c      8x8 8x16 英文字模
KeyScan.C    鍵盤(pán)掃描
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        中文字模

Simulation.exe是uCGUI上移植的演示。
可以通過(guò)你的鍵盤(pán)控制菜單:
你的PC鍵盤(pán)的四個(gè)方向鍵:
向上鍵  :確定  
向下鍵  :ESC
向左鍵  :向左
向右鍵  :向右
默認(rèn)語(yǔ)言是英文,你可以進(jìn)入設(shè)置成中文。
PS:不提供這個(gè)的代碼。請(qǐng)不要問(wèn)我要。其實(shí)Src的源代碼的效果也就是這個(gè)的運(yùn)行效果。
包括動(dòng)態(tài)條項(xiàng)生成功能。

一些界面的分析                                          
圖標(biāo)層代碼實(shí)現(xiàn)分析                                               
條項(xiàng)層代碼實(shí)現(xiàn)分析                                                
菜單框架的代碼實(shí)現(xiàn)                                             
模版代碼講解                                                     
動(dòng)態(tài)內(nèi)容層菜單                                                
動(dòng)態(tài)生成條項(xiàng)菜單內(nèi)容                                          
數(shù)字快捷方式的實(shí)現(xiàn)                                               
菜單函數(shù)調(diào)用圖                                                  
問(wèn)答FAQ                                                            
這個(gè)東西哪來(lái)的?                                                  
能在51這種低速CPU上跑不?                                       
我擔(dān)心我的CPU速度不夠快,能用這個(gè)菜單不?                        
這個(gè)菜單框架的內(nèi)存耗損大不不大?                                   
怎么移植?                                                        
關(guān)于移植的建議                                                   
雜項(xiàng)                          
開(kāi)機(jī)直接執(zhí)行某些功能
如何實(shí)現(xiàn)中斷中使用LCD?
數(shù)字建快捷方式
關(guān)于多國(guó)語(yǔ)言切換:
關(guān)于內(nèi)存耗損:
關(guān)于更多的改進(jìn):
關(guān)于快捷方式:
關(guān)于如何實(shí)現(xiàn)在線幫助提示
如何快速創(chuàng)建一個(gè)條項(xiàng)層菜單?
在FramBuffer型LCD上直接使用這份代碼                           
為什么公布這份代碼,使用的話需要授權(quán)什么的么?   

KeilUv2版本的代碼下載: 一個(gè)占用內(nèi)存極少的菜單系統(tǒng)的實(shí)現(xiàn).rar (1.61 MB, 下載次數(shù): 69)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:507641 發(fā)表于 2022-11-12 10:32 | 只看該作者
這個(gè)曾移植到TFT 還行,但想加個(gè)時(shí)鐘功能就不會(huì)了.有沒(méi)有弄過(guò)的朋友
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表