單片機(jī)四鍵菜單設(shè)計思想
要求:能正確的顯示時間
難點(diǎn)分析:
1.能正確的顯示時間,在單片機(jī)或是計算中執(zhí)行每一條指令時都會對自己本身用去機(jī)器周期.所以在設(shè)置定時器不應(yīng)設(shè)置剛剛好1秒的時間,應(yīng)該比1些秒少,這一秒的時間內(nèi)包含定時器的時間,執(zhí)行其它指令的時間.
2.能正確的顯示日歷.在這里看一個比較簡單的要示,但是我們必需從簡單里考慮潤年,二月天數(shù),還有大小月的問題.這些都是不能忽視的.
注:出錯通常都是忽視看似簡單的問題.一個好的程序員不否定掌握有很用的技術(shù),但是好的技術(shù)員本身基礎(chǔ)是相當(dāng)過關(guān)的.這也是我今后要注意的問題之一.
3.本系統(tǒng)中只配置了四個鍵.也就是說我們所有的調(diào)時間,調(diào)日歷必需也只能通過這四個鍵來完成.這里有一個菜單的實現(xiàn)原理.
實現(xiàn)方法:
基于以上難點(diǎn)分析我設(shè)計了以下幾種應(yīng)對方法.
針對難1:在這正確的顯示時間里,我們只要簡單的設(shè)計程序,每60秒進(jìn)1分鐘,秒清0,也就是在59過后加1就清0,照推.分鐘,小時天按常理照推.
針對難點(diǎn)2:
能語言實現(xiàn)語句:if((year %4 ==0 && year %100 !=0)||( year % 400==0))
注:本語句據(jù)今天一朋友說,她看動畫片的時候看到本算法是不完善的.在2996年以后就不是正確的,我沒驗證過.準(zhǔn)備找時間驗證一下,如果有朋友看到這文章有興趣的話也驗證一下.到時別忘了通知我一聲.
針對難點(diǎn)3:
關(guān)于四鍵設(shè)計的方法:雖然我們看用過很多四鍵設(shè)計的實物,但是在實際中我們?nèi)绾卧O(shè)計程序呢?
我采用的方法是:
(1),從鍵碼掃描程序中讀得鍵值.如果為功能鍵,功能選擇計數(shù)器計數(shù)一次,如果是確定,也設(shè)計的叫退出鍵.則返回選擇計數(shù)器值.其他的兩個鍵值則忽略不計,如果在沒有按過功能鍵,按了退出鍵的,則返回正常執(zhí)行.
(2):返回了功能選擇.則此時有三個鍵起作用了,功能選擇鍵屏蔽.中間兩個,一個加一個減,每次按鍵對NUM加減計數(shù)器執(zhí)行加或減,當(dāng)執(zhí)行了確定鍵里,返回NUM計數(shù)器的值.
(3).些時就完了一次菜單的執(zhí)行.接下就是調(diào)整時間,或是日歷了.
接下來就是把數(shù)據(jù)(年,月日,小時,分鐘,秒)寫入顯示器(我采用的12864帶字庫的液晶顯示),
在這里注意的就是液晶地址的安排就好了.
評論