登錄 注冊(cè)
購(gòu)物車0
TOP
Imgs 行業(yè)資訊

0

12864液晶使用教程分享 基于MCU菜單框架設(shè)計(jì)方案

2021-02-24 17:44:05

不知道有多少人對(duì)LCD菜單有過困擾,但我覺得應(yīng)該有很多人做過。我還記得以前在大學(xué)電子設(shè)計(jì)大賽中獲獎(jiǎng)的作品,我用的是一個(gè)有菜單功能的12864。
以前可能會(huì)覺得菜單很高,但并沒有想象的那么復(fù)雜。這篇文章是為分享每個(gè)人制作的單色屏幕菜單框架
總結(jié)
github中托管的代碼:
這里說的菜單是128*64之類的小屏幕菜單,比如下面這個(gè),不是彩屏上的GUI菜單框設(shè)計(jì)
作為底層驅(qū)動(dòng)工程師,驅(qū)動(dòng)完成后,需要編寫硬件測(cè)試程序。這個(gè)測(cè)試程序一般是測(cè)試部門/硬件工程師用來(lái)測(cè)試硬件的,也會(huì)為工廠生產(chǎn)線測(cè)試準(zhǔn)成品。
剛開始的時(shí)候人比較懶,一秒鐘都不想直接走。所有的菜單都是這樣,一層一層的。菜單越來(lái)越多的時(shí)候就開始糾結(jié),寫維護(hù)不方便,不美觀,浪費(fèi)程序空間。
作為一個(gè)每天看《編程之美》的碼農(nóng),他決定改變變現(xiàn)的形狀。在參觀了百度, 酷狗,之后,我找到了兩個(gè)參考:《基于二叉樹的多層的液晶菜單界面設(shè)計(jì)》 《基于節(jié)點(diǎn)編號(hào)的通用樹狀菜單設(shè)計(jì)方法與實(shí)現(xiàn).pdf》。按照他們的設(shè)計(jì)方法,我粗制濫造出了一個(gè)版本,好用,挺好的,但是也糾結(jié)。因?yàn)樗麄兪褂脴涞臄?shù)據(jù)結(jié)構(gòu)。對(duì)于程序運(yùn)行來(lái)說,非常好,非常高效。但是對(duì)我來(lái)說,菜單代碼是一次性的,但是菜單內(nèi)容經(jīng)常是變化的。我要用腦子維護(hù)一棵包含幾十上百個(gè)菜單的樹并不容易。
想了想,這些菜單怎么了?為什么對(duì)我不起作用?得出以下結(jié)論:
如果菜單太寬,可以切換菜單,但是到了最底層,也就是實(shí)際的測(cè)試功能,就可以不管了。菜單切換類似,實(shí)際測(cè)試不同。例如,在菜單中,按鍵1進(jìn)入第一個(gè)菜單。但是在測(cè)試中,按鈕1的功能是不同的。如果菜單要顧及這一點(diǎn),同樣的動(dòng)作有太多的功能要統(tǒng)一抽象,那就很難了
模塊化
出發(fā)點(diǎn)和上面說的菜單不一樣。出發(fā)點(diǎn)是如何設(shè)計(jì)好菜單數(shù)據(jù)結(jié)構(gòu),讓程序快速高效運(yùn)行。我想要的是一個(gè)易于維護(hù)的菜單結(jié)構(gòu)。菜單代碼有多亂多糾結(jié)都無(wú)所謂。而且,就算幾十萬(wàn)菜單被輪詢,也只有幾百個(gè)我們。沒關(guān)系。
改進(jìn)菜單
根據(jù)需求,我重新設(shè)計(jì)了一個(gè)菜單結(jié)構(gòu)
是的,就這么簡(jiǎn)單。每個(gè)菜單都是這個(gè)結(jié)構(gòu)。用這個(gè)結(jié)構(gòu)填充列表。這是我們的菜單。這些都是套路
這個(gè)菜單列表有什么特點(diǎn)和要求?1需要一個(gè)根節(jié)點(diǎn)和一個(gè)端節(jié)點(diǎn)。2子節(jié)點(diǎn)必須跟隨父節(jié)點(diǎn),類似于下面的結(jié)構(gòu)
第二個(gè)一級(jí)菜單有三個(gè)子菜單,子菜單是二級(jí)菜單,其中第一個(gè)子菜單下面有兩個(gè)子菜單(三級(jí)菜單)。
維護(hù)菜單就是維護(hù)這個(gè)列表,添加、刪除、修改,非常簡(jiǎn)單。菜單程序呢?誰(shuí)在乎?定義菜單后,通過以下功能運(yùn)行菜單:
-第一個(gè)參數(shù)是在哪個(gè)液晶顯示器上顯示菜單,-第二個(gè)是菜單列表,-第三個(gè)是菜單長(zhǎng)度,-第四個(gè)是四種字體,-第五個(gè)是行距
注意:運(yùn)行這個(gè)菜單需要rtos,因?yàn)椴藛未a是while(1),不能卡。維護(hù)系統(tǒng)還需要其他任務(wù),如按鍵掃描。
菜單實(shí)現(xiàn)效果
相關(guān)文件:emenu.c,emenu.h,emenu_test.c
當(dāng)前代碼:
1實(shí)現(xiàn)雙排菜單,用數(shù)字鍵選擇進(jìn)入下一層。每頁(yè)最多顯示8個(gè)菜單(4*4鍵盤有1-8個(gè)鍵)
2.實(shí)現(xiàn)單列菜單。通過上下轉(zhuǎn)動(dòng)來(lái)檢查菜單,并用確定鍵進(jìn)入菜單。3天頂菜單沒有實(shí)現(xiàn),有興趣的可以添加。
基于液晶驅(qū)動(dòng)架構(gòu),這種簡(jiǎn)單的菜單適用于各種液晶顯示器。
效果如下。需要就拿去吧。不客氣
顯示效果
128*64
OLED最終描述
以上菜單框來(lái)自屋頂鳥工作室,適合初學(xué)者練習(xí)。我來(lái)看看這個(gè)菜單框架。其實(shí)還有很多改進(jìn)。

 

高都電子,為客戶創(chuàng)造價(jià)值!

雙面板免費(fèi)加費(fèi),四層板加急打樣,厚銅電路板打樣

Xcm