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