第78節(jié):在多個窗口里通過移動光標(biāo)來設(shè)置不同參數(shù)的液晶屏菜單程序
從業(yè)近十年!手把手教你單片機程序框架 第78講
開場白:
上一節(jié)講了1個窗口下如何設(shè)置參數(shù)的菜單程序,這一節(jié)多增加1個窗口變成2個窗口,看看它們兩個窗口之間是如何通過按鍵程序進行切換的。繼續(xù)鞏固上一節(jié)教給大家的兩個知識點:
第一個知識點:我在前面講數(shù)碼管顯示的時候就提出了一個 “一二級菜單顯示理論”:凡是人機界面顯示,不管是數(shù)碼管還是液晶屏,都可以把顯示的內(nèi)容分成不同的窗口來顯示,每個顯示的窗口中又可以分成不同的局部顯示。其中窗口就是一級菜單,用ucWd變量表示。局部就是二級菜單,用ucPart來表示。不同的窗口,會有不同的更新顯示變量ucWdXUpdate來對應(yīng),表示整屏全部更新顯示。不同的局部,也會有不同的更新顯示變量ucWdXPartYUpdate來對應(yīng),表示局部更新顯示。把每一個窗口的內(nèi)容分為兩種類型,一種類型是那些不用經(jīng)常刷新顯示的內(nèi)容,只有在切換窗口的時候才需要更新的,這種內(nèi)容放在整屏更新顯示的括號里,比如清屏操作等內(nèi)容。另外一種是那些經(jīng)常需要刷新顯示的內(nèi)容,這種內(nèi)容放在局部更新顯示的括號里。
第二個知識點:按鍵如何跟液晶屏顯示有機的結(jié)合起來?只要遵循鴻哥總結(jié)出來的一個規(guī)律“在不同的窗口下,根據(jù)不同的局部變量來操作不同的參數(shù)”,這樣再復(fù)雜的人機交互程序都會顯得很簡單清晰。
具體內(nèi)容,請看源代碼講解。
(1)硬件平臺:基于朱兆祺51單片機學(xué)習(xí)板。加按鍵對應(yīng)S1鍵,減按鍵對應(yīng)S5鍵,切換“光標(biāo)”移動按鍵對應(yīng)S9鍵,設(shè)置參數(shù)按鍵對應(yīng)S13鍵。
(2)實現(xiàn)功能:
通過按鍵設(shè)置8個不同的參數(shù)。
有2個窗口。每個窗口顯示4個參數(shù)。每個參數(shù)的范圍是從0到99。
有4個按鍵:
(a) 一個是設(shè)置參數(shù)S13按鍵,按下此按鍵,液晶屏的第1個窗口第一行會出現(xiàn)反顯的光標(biāo),表示進入設(shè)置參數(shù)模式,再次按下此按鍵,反顯光標(biāo)會消失,并且強行切換到第1個窗口,表示退出設(shè)置參數(shù)模式。
(b) 一個是移動光標(biāo)S9按鍵,在進入設(shè)置參數(shù)的模式下,依次按下此按鍵,液晶屏上的光標(biāo)會從上往下移動,表示選中不同的參數(shù)。當(dāng)移動到每個窗口最下邊那一行時,再按下此按鍵會進行切換窗口的操作。
(c) 一個是減數(shù)S5按鍵,在設(shè)置參數(shù)模式下,依次按下此按鍵,被選中的參數(shù)會逐漸減小。
(d) 一個是加數(shù)S1按鍵,在設(shè)置參數(shù)模式下,依次按下此按鍵,被選中的參數(shù)會逐漸加大。
(3)源代碼講解如下:
總結(jié)陳詞:
這一節(jié)講了在多個窗口里設(shè)置不同的參數(shù)。還有一種常見的項目,要求把第1窗口是用來作為主菜單,主菜單里面有3個子菜單,可以通過移動光標(biāo)進入不同的子菜單窗口進行參數(shù)設(shè)置,這類項目該如何編程?欲知詳情,請聽下回分解-----通過主菜單移動光標(biāo)來進入子菜單窗口的液晶屏程序。