<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 基于單片機的多功能電子萬年歷設計(一)

          基于單片機的多功能電子萬年歷設計(一)

          作者: 時間:2012-11-15 來源:網(wǎng)絡 收藏

          引言

            隨著生活節(jié)奏的日益加快,人們的時間觀也越來越重,同時對電子鐘表、日歷的需求也隨之提高。因此,研究實用電子時鐘及其擴展應用,有著非?,F(xiàn)實的意義,具有很大的實用價值。

            本系統(tǒng)程序由主程序、中斷服務函數(shù)和多個子函數(shù)構(gòu)成。主函數(shù)主要完成各子函數(shù)和中斷函數(shù)的初始化。定時中斷函數(shù)主要完成時鐘芯片的定時掃描及鍵盤掃描。時鐘芯片的讀寫函數(shù)主要是將時間、日歷信息讀出來,并把要修改具體值寫入時鐘芯片內(nèi)部。

            系統(tǒng)的硬件設計與電路原理

            電路設計框圖

            系統(tǒng)硬件概述

            本電路是由AT89S52為控制核心,具有在線編程功能、低功耗、能在3V的超低壓工作。時鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器??僧a(chǎn)生年、月、日、周日、時、分、秒,具有使用壽命長、精度高和低功耗等特點,同時具有掉電自動保存功能。

            主控制模塊

            主控制模塊的設計

            AT89S52為40引腳雙列直插芯片,有四個I/O口P0,P1,P2,P3,MCS-51單片機共有4個8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨立地作輸出或輸入。

            時鐘電路模塊

            時鐘電路模塊的設計

            DS1302的引腳排列如圖3所示,其中Vcc1為后備電源,Vcc2為主電源。在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電;當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768KHz晶振。RST是復位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。

            基于單片機的多功能電子萬年歷設計(一)

            圖1 整體電路框圖

            基于單片機的多功能電子萬年歷設計(一)

            圖2 主控制系統(tǒng)


          上一頁 1 2 3 下一頁

          關鍵詞: 單片機 多功能 電子萬年歷

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();