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