第84節(jié):實時同步把鍵盤輸入的BCD碼數(shù)組轉(zhuǎn)換成數(shù)值的液晶屏顯示程序
從業(yè)近十年!手把手教你單片機程序框架 第84講
開場白:
鍵盤直接輸入的是帶小數(shù)點的BCD碼數(shù)組,要把它們轉(zhuǎn)換成具體的數(shù)值才可以更好的在程序里運算或者處理。如何把BCD碼數(shù)組實時同步轉(zhuǎn)換成數(shù)值?這一節(jié)主要跟大家講這方面的算法程序。另外,有一個地方值得注意:上一節(jié)鍵盤輸入的小數(shù)點個數(shù)可以限制成最大2位,但是整數(shù)部分沒有限制。這節(jié)為了也能限制整數(shù)部分的最大個數(shù)為3位,我修改了上一節(jié)的void set_data(…)函數(shù)。所以這節(jié)的void set_data(…)函數(shù)跟上一節(jié)的void set_data(…)函數(shù)有點不一樣,需要特別注意。
具體內(nèi)容,請看源代碼講解。
(1) 硬件平臺:
基于朱兆祺51單片機學習板。數(shù)字1鍵對應(yīng)S1鍵,數(shù)字2鍵對應(yīng)S2鍵,數(shù)字3鍵對應(yīng)S3鍵…. 數(shù)字9鍵對應(yīng)S9鍵, 數(shù)字0鍵對應(yīng)S10鍵。小數(shù)鍵對應(yīng)S11,清零鍵對應(yīng)S16,其它按鍵不用。
(2) 實現(xiàn)功能:
用矩陣鍵盤輸入任意數(shù)字或小數(shù)點。小數(shù)點不能超過2位,一旦超過2位,再按其它按鍵則輸入無效。整數(shù)部分不能超過3位,一旦超過3位,再按其它按鍵則輸入無效。想重新輸入,必須按S16清零按鍵才能重新輸入。每次鍵盤輸入的第一行BCD碼數(shù)組會同步更新顯示在第二行的數(shù)值上。
(3)源代碼講解如下:
總結(jié)陳詞:
這節(jié)講了把BCD碼數(shù)組同步實時轉(zhuǎn)換成數(shù)值的算法程序,相反,把數(shù)值轉(zhuǎn)換成BCD碼數(shù)組的逆運算程序應(yīng)該怎么寫?欲知詳情,請聽下回分解----實時同步把加減按鍵輸入的數(shù)值轉(zhuǎn)換成BCD碼數(shù)組的液晶屏顯示程序。