基于單片機的日歷時(shí)鐘模塊設計
3 系統軟件設計
3.1 主程序
主程序主要包括:系統初始化、獲取串口數據、設置日歷時(shí)鐘芯片、獲取時(shí)鐘芯片的時(shí)間信息和時(shí)鐘校正、顯示等子程序。初始化子程序主要包括設置單片機的串口和定時(shí)器的初始化,日歷時(shí)鐘芯片初始參數和驅動(dòng)芯片的初始化等。主程序流程圖如圖3所示。
3.2 設置日歷時(shí)鐘子程序
在使用DS12887時(shí),首先要初始化,主要是打開(kāi)晶振、對控制寄存器A、B寫(xiě)入控制字以及對日歷、時(shí)鐘各寄存器寫(xiě)入初始值。除校時(shí)外,上電時(shí)不用再次初始化。第一次初始化時(shí),應禁止操作DS12887內部更新周期,即先將寄存器B的SET位置“1”,然后初始化時(shí)標寄存器(00H~09H)和狀態(tài)寄存器A,再通過(guò)讀寄存器C清除中斷標志,讀寄存器D將VRT位置“1”,最后將寄存器B的SET位清零,DS12887開(kāi)始計時(shí)。
設置日歷時(shí)鐘,必須保證時(shí)鐘芯片DS12887處于設置狀態(tài),即SET=1,然后向DS12887的專(zhuān)用寄存器寫(xiě)入時(shí)間信息,寫(xiě)入完畢后,DS12887恢復正常數據更新?tīng)顟B(tài),即SET=0。在讀取日歷時(shí)鐘芯片DS12887的時(shí)鐘信息時(shí),必須保證UIP=0,然后讀取存儲其內部寄存器的時(shí)鐘信息。
為了能夠方便地顯示時(shí)間和校正時(shí)鐘,可在單片機中的用戶(hù)寄存器中開(kāi)辟特殊的時(shí)間地址單元作為顯示緩沖區,分別放置“年,月,日,時(shí),分,秒”等值。此時(shí)只要將DS12887中的時(shí)間值讀入到用戶(hù)開(kāi)辟的時(shí)間地址中,用戶(hù)就可以方便控制時(shí)間。
DS12887的日歷時(shí)鐘通過(guò)中斷和查詢(xún)2種方法讀出。但在讀數據時(shí),首先要判斷數據是否更新結束,只有在數據更新結束時(shí)數據讀出才有效。DS12887的時(shí)間讀取和時(shí)鐘校正子程序流程圖如圖4所示。
4 結束語(yǔ)
以日歷時(shí)鐘芯片DS12887為例,介紹了一種該器件與單片機AT89C52的簡(jiǎn)單實(shí)用的硬件接口電路,該電路設計簡(jiǎn)單可靠,性能穩定,適用于那些對計時(shí)精度要求較高的系統,例如在列車(chē)制動(dòng)電子控制單元中,應用DS12887提供準確的時(shí)間來(lái)保存數據,并安裝在制動(dòng)控制裝置內,對列車(chē)制動(dòng)和防滑控制。記錄、捕捉故障出現時(shí)間及了解故障發(fā)生時(shí)間前后信號變化的情況,并通過(guò)列車(chē)總線(xiàn)將故障信息傳送給監控裝置,以便列車(chē)司機及時(shí)地采取相應措施,這些對保障列車(chē)安全可靠運行有著(zhù)重要意義。
51單片機相關(guān)文章:51單片機教程
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
分頻器相關(guān)文章:分頻器原理
評論