第29節(jié):數(shù)碼管通過切換窗口來設(shè)置參數(shù),并且不顯示為0的高位
從業(yè)將近十年!手把手教你單片機(jī)程序框架 第29講:
開場白:
上一節(jié)在第4,3,2,1位顯示設(shè)置的參數(shù)時,還有一點(diǎn)小瑕疵。比如設(shè)置參數(shù)等于56時,實(shí)際顯示的是“0056”,也就是高位為0的如果不顯示,效果才會更好。
這一節(jié)要教會大家兩個知識點(diǎn):
第一個:在上一節(jié)display_service()函數(shù)里略作修改,把高位為0的去掉不顯示。
第二個:加深熟悉鴻哥首次提出的“一二級菜單顯示理論”:凡是人機(jī)界面顯示,不管是數(shù)碼管還是液晶屏,都可以把顯示的內(nèi)容分成不同的窗口來顯示,每個顯示的窗口中又可以分成不同的局部顯示。其中窗口就是一級菜單,用ucWd變量表示。局部就是二級菜單,用ucPart來表示。不同的窗口,會有不同的更新顯示變量ucWdXUpdate來對應(yīng),表示整屏全部更新顯示。不同的局部,也會有不同的更新顯示變量ucWdXPartYUpdate來對應(yīng),表示局部更新顯示。
具體內(nèi)容,請看源代碼講解。
(1)硬件平臺:基于朱兆祺51單片機(jī)學(xué)習(xí)板。加按鍵對應(yīng)S1鍵,減按鍵對應(yīng)S5鍵,切換窗口按鍵對應(yīng)S9鍵
(2)實(shí)現(xiàn)功能:
通過按鍵設(shè)置4個不同的參數(shù)。
一共有4個窗口。每個窗口顯示一個參數(shù)。
第8,7,6,5位數(shù)碼管顯示當(dāng)前窗口,P-1代表第1個窗口,P-2代表第2個窗口,P-3代表第3個窗口,P-4代表第1個窗口。
第4,3,2,1位數(shù)碼管顯示當(dāng)前窗口被設(shè)置的參數(shù)。范圍是從0到9999。
有三個按鍵。一個是加按鍵,按下此按鍵會依次增加當(dāng)前窗口的參數(shù)。一個是減按鍵,按下此按鍵會依次減少當(dāng)前窗口的參數(shù)。一個是切換窗口按鍵,按下此按鍵會依次循環(huán)切換不同的窗口。
并且要求被設(shè)置的數(shù)據(jù)不顯示為0的高位。比如參數(shù)是12時,不能顯示“0012”,只能第4,3位不顯示,第2,1位顯示“12”。
(3)源代碼講解如下:
總結(jié)陳詞:
數(shù)碼管通過切換窗口來設(shè)置參數(shù),這里的窗口類似于一級菜單,在一級菜單下,還可以分解出二級菜單。一級菜單的特點(diǎn)是整屏數(shù)碼管的顯示內(nèi)容全部都改變,而二級菜單的特點(diǎn)是只改變其中一部分?jǐn)?shù)碼管的內(nèi)容。二級菜單的程序怎么編寫?欲知詳情,請聽下回分解-----數(shù)碼管通過閃爍來設(shè)置數(shù)據(jù)。