基于單片機設計的電子計時(shí)牌
讀一字節子程序同寫(xiě)一字節子程序是一個(gè)道理,首先可設置循環(huán)計數值為8,以便為讀取一個(gè)8位字節數據做準備,然后在串行時(shí)鐘下降沿從P0.2端口讀取一位時(shí)鐘數據到C,以進(jìn)行帶進(jìn)位的累加器循環(huán)右移,這樣,循環(huán)8次后,即完成了一個(gè)字節時(shí)鐘數據的讀取。其結果存放到累加器ACC中。具體讀取一字節數據的程序如下:
3.3 安全生產(chǎn)天數的計算
本系統中的一項功能就是顯示當前的安全生產(chǎn)天數。要得出安全生產(chǎn)天數值,首先應在單片機的內存單元中設定好安全生產(chǎn)天數的起點(diǎn)日期,同時(shí)設定一個(gè)基準時(shí)間,這樣就可以計算出設置的安全生產(chǎn)天數起點(diǎn)日期到這個(gè)基準時(shí)間的天數,也就是起點(diǎn)的累計天數。然后,當每次讀取時(shí)鐘芯片日歷時(shí)鐘數據時(shí),系統就會(huì )計算出當前讀到的日期到基準時(shí)間的天數,也就是當前日期的累計天數,兩個(gè)累計天數之差即是要顯示的安全生產(chǎn)天數。
4 實(shí)時(shí)監控系統的設計
本系統的主程序用于完成數據的初始化以及T0定時(shí)器的設置等,其它任務(wù)均放到定時(shí)中斷程序中來(lái)執行。圖3所示為其中斷服務(wù)程序流程圖。中斷服務(wù)程序首先要判斷是否有按鍵按下,即是否進(jìn)人數據設置狀態(tài)?如果不是在設置狀態(tài),就要從時(shí)鐘芯片讀取要顯示的數據,以及把每一項顯示緩沖區的數據送數碼管顯示。如果是在設置狀態(tài)下,則設置每0.25 s刷新顯示一次數據。
若在設置狀態(tài)下,則意味著(zhù)有按鍵按下,那么就要讀取相應的按鍵。本設計中如果按鍵在設置狀態(tài)下,不進(jìn)行相應的數據調整操作,則保存設置的數據,并退出設置狀態(tài)。讀鍵時(shí),首先讀出其鍵碼并保存。然后判斷鍵碼穩定否,如果不穩定,說(shuō)明按鍵已經(jīng)響應,則不進(jìn)行數據調整。如果鍵碼穩定,則再判斷是否是調整鍵,如果是調整鍵,則調整修改指針,即每按一次調整鍵,修改指針加一,并進(jìn)行下一項數據的修改。修改指針一般從安全天數的千、百、十、個(gè)到年、
月、日、星期再到小時(shí)、分。如果一開(kāi)始按下的按鍵不是調整鍵,則不會(huì )進(jìn)入設置狀態(tài)。在調整鍵已經(jīng)響應的情況下,如果再讀到有鍵按下的信號,那么,當其不是調整鍵時(shí),進(jìn)入數據修改狀態(tài),以進(jìn)行相應數據的調整。注意:在設置狀態(tài)下,每次操作均清除時(shí)鐘,以便計時(shí)退出。調整好相應數據后,即可保存數據并進(jìn)行數據的顯示。
5 數據的顯示
本設計中采用16片8位串行輸入/并行輸出74HC164N和數碼管來(lái)進(jìn)行串行移位顯示。所用數碼管是共陽(yáng)極的8段數碼管。由于分成三組輸出來(lái)顯示數據,因此,設計時(shí)把安全生產(chǎn)天數和溫度顯示部分的74HC164N時(shí)鐘線(xiàn)連在一起接到單片機的P0.5,而把年月日星期顯示部分的74HC164N時(shí)鐘線(xiàn)連在一起接到單片機的P0.7,另外,把時(shí)鐘顯示部分的74HC164N時(shí)鐘線(xiàn)連在一起接到單片機的P1.0。
6 結束語(yǔ)
本設計在完成過(guò)程中進(jìn)行了多次的試驗,尤其是在對溫度的讀取方面,得到了很多老師的指導,在此一并感謝。
評論