新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于AT89C52單片機的日歷時鐘模塊設計

        基于AT89C52單片機的日歷時鐘模塊設計

        作者: 時間:2011-11-09 來源:網絡 收藏

        基于AT89C52單片機的日歷時鐘模塊設計



        3 系統軟件設計
        3.1 主程序

        主程序主要包括:系統初始化、獲取串口數據、設置芯片、獲取時鐘芯片的時間信息和時鐘校正、顯示等子程序。初始化子程序主要包括設置單片機的串口和定時器的初始化,芯片初始參數和驅動芯片的初始化等。主程序流程圖如圖3所示。

        基于AT89C52單片機的日歷時鐘模塊設計


        3.2 設置子程序
        在使用DS12887時,首先要初始化,主要是打開晶振、對控制寄存器A、B寫入控制字以及對日歷、時鐘各寄存器寫入初始值。除校時外,上電時不用再次初始化。第一次初始化時,應禁止操作DS12887內部更新周期,即先將寄存器B的SET位置“1”,然后初始化時標寄存器(00H~09H)和狀態寄存器A,再通過讀寄存器C清除中斷標志,讀寄存器D將VRT位置“1”,最后將寄存器B的SET位清零,DS12887開始計時。
        設置日歷時鐘,必須保證時鐘芯片DS12887處于設置狀態,即SET=1,然后向DS12887的專用寄存器寫入時間信息,寫入完畢后,DS12887恢復正常數據更新狀態,即SET=0。在讀取日歷時鐘芯片DS12887的時鐘信息時,必須保證UIP=0,然后讀取存儲其內部寄存器的時鐘信息。
        為了能夠方便地顯示時間和校正時鐘,可在單片機中的用戶寄存器中開辟特殊的時間地址單元作為顯示緩沖區,分別放置“年,月,日,時,分,秒”等值。此時只要將DS12887中的時間值讀入到用戶開辟的時間地址中,用戶就可以方便控制時間。
        DS12887的日歷時鐘通過中斷和查詢2種方法讀出。但在讀數據時,首先要判斷數據是否更新結束,只有在數據更新結束時數據讀出才有效。DS12887的時間讀取和時鐘校正子程序流程圖如圖4所示。

        基于AT89C52單片機的日歷時鐘模塊設計



        4 結束語
        以日歷時鐘芯片DS12887為例,介紹了一種該器件與單片機的簡單實用的硬件接口電路,該電路設計簡單可靠,性能穩定,適用于那些對計時精度要求較高的系統,例如在列車制動電子控制單元中,應用DS12887提供準確的時間來保存數據,并安裝在制動控制裝置內,對列車制動和防滑控制。記錄、捕捉故障出現時間及了解故障發生時間前后信號變化的情況,并通過列車總線將故障信息傳送給監控裝置,以便列車司機及時地采取相應措施,這些對保障列車安全可靠運行有著重要意義。


        上一頁 1 2 下一頁

        關鍵詞: AT89C52 日歷時鐘

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 西乌珠穆沁旗| 康乐县| 岗巴县| 莆田市| 太湖县| 卢湾区| 汕尾市| 芜湖市| 仁寿县| 敦化市| 武宣县| 大关县| 纳雍县| 岐山县| 乡城县| 翁牛特旗| 花垣县| 三亚市| 波密县| 赫章县| 扶沟县| 济南市| 长海县| 镇康县| 望城县| 偏关县| 鲁甸县| 平湖市| 平谷区| 上思县| 滁州市| 遵义市| 阜新市| 紫金县| 曲松县| 子洲县| 方山县| 许昌县| 呈贡县| 修文县| 潼关县|