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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于89S51單片機的數(shù)控直流穩(wěn)壓源的設計

          基于89S51單片機的數(shù)控直流穩(wěn)壓源的設計

          作者: 時間:2013-01-21 來源:網絡 收藏

          引言

          直流穩(wěn)壓電源是電子技術常用的設備之一,廣泛的應用于教學、科研等領域。傳統(tǒng)的多功能直流穩(wěn)壓電源功能簡單、難控制、可靠性低、干擾大、精度低且體積大、復雜度高。普通直流穩(wěn)壓電源品種很多.但均存在以下問題:輸出電壓是通過粗調(波段開關)及細調(電位器)來調節(jié)。這樣,當輸出電壓需要精確輸出,或需要在一個小范圍內改變時(如1.02~1.03V),困難就較大。另外,隨著使用時間的增加,波段開關及電位器難免接觸不良,對輸出會有影響。常常通過硬件對過載進行限流或截流型保護,電路構成復雜,穩(wěn)壓精度也不高。本文設計了一種以單片機為核心的智能化高精度簡易直流電源,克服了傳統(tǒng)直流電壓源的缺點,具有很高的應用價值。

          1 系統(tǒng)硬件設計

          1.1 系統(tǒng)總體結構

          本系統(tǒng)是以AT89S5l單片機為核心控制器,具有電壓可預置、可步進調整、輸出的電壓信號和預置的電壓信號可同時顯示的電源,其硬件原理方框圖如圖1所示。系統(tǒng)由AT8控制電路、鍵盤電路、電源電路、D/A電路、功放電路、短路保護及報警電路、穩(wěn)壓輸出電路、LED顯示電路八部分組成。系統(tǒng)通過“開關”、“+”、“一”三個按鍵來控制預置電壓的升降,并通過數(shù)碼管顯示。AT單片機送出相應的數(shù)字信號,在D/A轉換之后輸出電流,經集成運放LM358轉換、三極管放大、RC網絡濾波,最終穩(wěn)定。同時由LED數(shù)碼管顯示輸出電壓;由數(shù)字電壓表測量實測值。

          點擊圖片查看大圖

          點擊放大圖片
          圖1系統(tǒng)原理框圖

          1.2 數(shù)控部分

          主要由AT最小系統(tǒng)控制,它要完成鍵盤控制、預置電壓顯示控制、短路保護控制及報警控制等功能。AT89S51最小系統(tǒng)如圖2所示。

          點擊圖片查看大圖
          點擊圖片查看大圖
          點擊圖片查看大圖

          點擊放大圖片
          圖2 AT89S51最小系統(tǒng)圖
          點擊放大圖片
          圖3鍵盤接口電路
          點擊放大圖片
          圖4預置電壓顯示電路

          1.2.1 鍵盤接口電路

          鍵盤接口電路如圖3所示。鍵盤設計由三個按鍵控制即:“開關”鍵、“+”鍵、“一”鍵,并外接三個上拉電阻控制鍵盤去抖。此三鍵分別連接到單片機的P1.0、P1.1、P1.2接口進行控制。

          1.2.2 預置電壓顯示電路

          預置電壓顯示電路如圖4所示。本設計選用譯碼驅動器74F244,用來驅動LED數(shù)碼管顯示預置電壓,分別由單片機P2.0~P2.7接口控制。LED共陰極控制端由P1.4~P1.6接口控制,并用三極管8050來控制LED的顯示。


          上一頁 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); })();