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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > P87LPC761單片機控制的時間控制器系統(tǒng)

          P87LPC761單片機控制的時間控制器系統(tǒng)

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

          1.系統(tǒng)簡介

            該是以單片機為核心,擴展一片74HCl64組成的小系統(tǒng),控制一路繼電器,可以設定一天中的時間,設定繼電器的開啟時間和關閉時間,一共可以設定6組定時,可以消除不需要的定時,能夠緊急啟動;所有的設定均通過鍵盤實現(xiàn),按鍵具有連擊功能,每個狀態(tài)都有指示燈。該采用外部100kHz晶振,同時采用交流電供電,配以充電電池,在交流電去掉以后,進入休閑模式,時鐘繼續(xù)運行。

            2 硬件電路設計與分析

            系統(tǒng)功能框圖如圖1所示。本系統(tǒng)設計的難點不在硬而在低頻晶振下的軟件設計。

          P87LPC761單片機控制的時間控制器系統(tǒng)

          整個硬件電路可分為3部分:電源、鍵盤顯示和CPU部分,分別分析如下。

            2.1 電源部分

            把交流電轉換成單片機所需的直流電。這是一個很常見的電源電路。為了確保去掉交流電之后,時鐘能繼續(xù)運行,配以充電電池,在電源部分加上了充電電路。在有交流電的時候,直接利用外部電源,同時給充電電池充電,去掉交流電以后,利用充電電池做電源,進入休閑模式。

            2.2 鍵盤和顯示電路

          點擊在新窗口中瀏覽產(chǎn)品

          為了節(jié)省元件,采用動態(tài)掃描的方式來顯示時鐘,在這部分擴展了一片74HCl64。單片機通過串行口向74HCl64發(fā)送數(shù)據(jù),在七段數(shù)碼管上顯示,每個數(shù)碼管公共端都加上了三極管,是作掃描信號的電流放大以驅動各數(shù)碼管。

            2.3 CPU部分

            CPU部分是時間繼電器的核心。這主要由來控制。作為Philips小型封裝系列中的一員,是20腳封裝的單片機,適合于許多要求高集成度、低成本的場合,可以滿足許多方面的性能要求。P87LPC761提供高速和低速的晶振以及RC振蕩方式,可編程選擇,具有較寬的操作電壓范圍,可編程I/O口線輸出模式選擇,可選擇施密特觸發(fā)輸入,LED驅動輸出,有內(nèi)部看門狗定時器。P87LPC761采用80C51加速處理器,結構指令執(zhí)行速度是標隘80C51 MCU的2倍。CPU部分電路原理圖如圖3所示。

          點擊在新窗口中瀏覽產(chǎn)品

          3 軟件設計
            
            P87LPC761單片機每個機器周期為6個時鐘周期,采用100kHz晶振,每個機器周期為60/Is。根據(jù)實驗,為了保證LED看起來不閃爍,點亮數(shù)碼管的時間間隔不能大于24ms,一共有4個數(shù)碼管,則每兩個數(shù)碼管點亮的時間間隔不能大于6ms。程序設計應注意這一點,在每兩次中斷之間一共有100個機器周期,很有限,據(jù)此在編程時應遵循以下原則:

            (1)程序盡量簡潔主程序盡量短。

            (2)中斷程序盡量短,把盡可能多的時間給其他程序。

            (3)分支程序盡量多盡量短不做無用功。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(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); })();