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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)和光照檢測的開關(guān)控制b置設(shè)計(jì)

          基于單片機(jī)和光照檢測的開關(guān)控制b置設(shè)計(jì)

          作者: 時(shí)間:2016-10-15 來源:網(wǎng)絡(luò) 收藏

          摘要:針對自動(dòng)技術(shù)的需求,提出一種基于裝置設(shè)計(jì)。該裝置的主要特點(diǎn)為具有光照度檢測功能,可以采集環(huán)境的光照度并根據(jù)設(shè)定的光照度自動(dòng)實(shí)現(xiàn)開關(guān)的開或關(guān)等操作。詳細(xì)介紹了該裝置的硬件和程序的設(shè)計(jì)方法,并對設(shè)計(jì)的裝置進(jìn)行了功能測試。測試結(jié)果表明,設(shè)計(jì)的裝置能實(shí)現(xiàn)、光照度上下限值設(shè)定、開關(guān)自動(dòng)控制和數(shù)據(jù)顯示等各種功能,運(yùn)行效果良好。

          本文引用地址:http://www.ex-cimer.com/article/201610/307496.htm

          0 引言

          自動(dòng)能根據(jù)需要的情況自動(dòng)打開或切斷開關(guān),有利于節(jié)省人力和提高控制效率,為人們的生產(chǎn)生活帶來便利和節(jié)省能源。

          隨著電子技術(shù)和微機(jī)技術(shù)的發(fā)展,自動(dòng)開關(guān)控制技術(shù)發(fā)展迅速,提出了各種類型的自動(dòng)開關(guān)控制裝置,如基于MCS-51的多路開關(guān)控制裝置、單片機(jī)控制的熱釋電紅外節(jié)能照明開關(guān)、基于AT89S52單片機(jī)的聲光控制開關(guān)、基于SPCE061A的語音手動(dòng)雙控制開關(guān)和智能計(jì)量與開關(guān)控制插座等。

          針對自動(dòng)開關(guān)控制技術(shù)的需求和發(fā)展趨勢,本文提出一種基于單片機(jī)和的開關(guān)控制裝置設(shè)計(jì)。此裝置具有光照度檢測功能,可以采集環(huán)境的光照度并根據(jù)設(shè)定的光照度自動(dòng)實(shí)現(xiàn)開關(guān)的開或關(guān)等操作。

          1 裝置工作原理和功能

          基于單片機(jī)和光照檢測的開關(guān)控制裝置的工作原理示意圖如圖1所示,其工作原理為:單片機(jī)檢測環(huán)境光照度,若在一定的時(shí)間間隔內(nèi)兩次檢測的光照度都小于設(shè)定的光照度下限值且開關(guān)狀態(tài)為關(guān),則打開開關(guān);若在一定的時(shí)間間隔內(nèi)兩次檢測的光照度都大于設(shè)定的光照度上限值且開關(guān)狀態(tài)為開,則關(guān)閉開關(guān)。

          基于單片機(jī)和光照檢測的開關(guān)控制b置設(shè)計(jì)

          基于單片機(jī)和光照檢測的開關(guān)控制裝置需要實(shí)現(xiàn)的功能為:1)光照檢測;2)光照度下限值和上限值設(shè)定;3)開關(guān)自動(dòng)控制;4)數(shù)據(jù)顯示:顯示采集的光照度和設(shè)定的光照度下限值和上限值。

          2 硬件設(shè)計(jì)

          2.1 硬件結(jié)構(gòu)

          根據(jù)需要實(shí)現(xiàn)的功能,基于單片機(jī)和光照檢測的開關(guān)控制裝置的硬件結(jié)構(gòu)如圖2所示。裝置以AT89C51單片機(jī)為核心,外圍電路包括時(shí)鐘電路、復(fù)位電路、光照檢測電路、LM016L液晶顯示電路、開關(guān)控制電路和鍵盤電路。

          基于單片機(jī)和光照檢測的開關(guān)控制b置設(shè)計(jì)

          2.2 光照檢測電路

          光照檢測電路的詳細(xì)設(shè)計(jì)如圖3所示,其工作原理為:1)利用硅光電池將光照度信號轉(zhuǎn)換為電流信號,具有產(chǎn)生的短路電流與光照度成正比的特性;2)通過以運(yùn)算放大器LM358為核心構(gòu)成的放大電路將產(chǎn)生的短路電流信號轉(zhuǎn)換為電壓信號并放大;3)AT89C51單片機(jī)控制ADC器件ADC0809采集放大電路輸出的電壓信號并計(jì)算實(shí)際的光照度值。

          基于單片機(jī)和光照檢測的開關(guān)控制b置設(shè)計(jì)

          2.3 開關(guān)控制電路

          開關(guān)控制電路的詳細(xì)設(shè)計(jì)如圖4所示,其工作原理為:1)光電耦合器TIL 117起光電隔離作用,實(shí)現(xiàn)將單片機(jī)AT89C51與開關(guān)控制部分隔離,從而減小開關(guān)控制部分對AT89C51的干擾,提高系統(tǒng)的可靠性,其中驅(qū)動(dòng)芯片7407的作用是為TIL 117提供輸入電流;2)G2R-14-DC5實(shí)現(xiàn)直接的開關(guān)控制,其中晶體管9013的作用是為G2R-14-DC5提供驅(qū)動(dòng)電流,二極管1N4001的作用是防止G2R-14-DC5的感應(yīng)電壓損壞901 3;3)當(dāng)AT89C51的P2.1引腳輸出低電平時(shí),TIL 117產(chǎn)生光電流,使三極管9013導(dǎo)通,從而G2R-14-DC5的線圈得電,常開開關(guān)K1閉合,反之則K1斷開。

          基于單片機(jī)和光照檢測的開關(guān)控制b置設(shè)計(jì)

          3 單片機(jī)程序設(shè)計(jì)

          3.1 總體設(shè)計(jì)

          結(jié)合硬件設(shè)計(jì)和需要實(shí)現(xiàn)的功能,裝置的單片機(jī)程序主要包括如下程序模塊:1)光照檢測:根據(jù)ADC0809的控制邏輯采集光照度轉(zhuǎn)換而來的電壓信號,并根據(jù)對應(yīng)公式計(jì)算實(shí)際的光照度值;2)光照度上下限值設(shè)定:通過鍵盤電路和LM016L液晶顯示電路,并采取外部中斷的方式,實(shí)現(xiàn)光照度上下限值設(shè)定;3)開關(guān)自動(dòng)控制:根據(jù)檢測的光照度和設(shè)定的光照度上下限值控制開關(guān)控制電路,實(shí)現(xiàn)開關(guān)自動(dòng)控制;4)數(shù)據(jù)顯示:控制液晶器件LM016L顯示采集的光照度和設(shè)定的光照度上下限值。

          3.2 光照檢測

          光照檢測程序模塊主要包含如下兩個(gè)步驟:1)根據(jù)ADC0809的控制方法進(jìn)行電壓信號采集,ADC0809的關(guān)鍵控制引腳為S7ART、EOC、OE和CLK,分別為啟動(dòng)信號輸入端、轉(zhuǎn)換結(jié)束信號端、輸出允許端和時(shí)鐘信號輸入端;2)根據(jù)電壓和光照度轉(zhuǎn)換公式計(jì)算實(shí)際的光照度值。實(shí)現(xiàn)光照檢測的方法如算法1所示。

          算法1:光照檢測算法。

          sbit START=P2^2;//ADC0809啟動(dòng)信號輸入端

          sbit EOC=P3^5;//ADC0809轉(zhuǎn)換結(jié)束信號端

          sbit OE=P2^3;//ADC0809輸出允許端

          sbit CLK=P3^6;//ADC0809時(shí)鐘信號輸入端

          START=0;//ADC0809開始轉(zhuǎn)換

          OE=0;//ADC0809不允許輸出

          if(EOC=1)//如果ADC0809轉(zhuǎn)換結(jié)束

          {

          START=1;//ADC0809停止轉(zhuǎn)換

          OE=1;//ADC0809允許輸出

          ADdata=P0;//讀取采集的電壓信號

          OE=0;//ADC0809不允許輸出

          illu=ADdata*1.96*4.16667;//將采集的電壓信號轉(zhuǎn)換為實(shí)際的光照度值

          }

          3.3 開關(guān)自動(dòng)控制

          開關(guān)自動(dòng)控制程序模塊的實(shí)現(xiàn)流程為:1)若開關(guān)狀態(tài)為關(guān),則關(guān)計(jì)數(shù)變量offCounter置0;2)若檢測的光照度小于光照度下限值且開關(guān)狀態(tài)為關(guān),則開計(jì)數(shù)變量onCounter累加1;3)若檢測的光照度大于光照度下限值且開關(guān)狀態(tài)為關(guān),則開計(jì)數(shù)變量onCounter置0:4)若開關(guān)狀態(tài)為開,則開計(jì)數(shù)變量onCounter置0:5)若檢測的光照度大于光照度上限值且開關(guān)狀態(tài)為開,則關(guān)計(jì)數(shù)變量offCounter累加1;6)若檢測的光照度小于光照度上限值且開關(guān)狀態(tài)為開,則關(guān)計(jì)數(shù)變量offCounter置0;7)若onCounter>=2500,則控制開關(guān)閉合;8)若offCounter>=2500,則控制開關(guān)斷開。實(shí)現(xiàn)開關(guān)自動(dòng)控制的方法如算法2所示。

          算法2:開關(guān)自動(dòng)控制算法。

          if(state==1)//若開關(guān)狀態(tài)為關(guān)

          {offCounter=O//關(guān)計(jì)數(shù)變量offCounter置0

          if(illu=lowLimit)onCounter=onCounter+1;

          if(illu>lowLimit)onCounter=0;}

          if(state==0)//若開關(guān)狀態(tài)為開

          {onCounter=0//開計(jì)數(shù)變量onCounter置0

          if(illu>=upLimit)offCounter=offCounter+1;

          if(illu

          if(onCounter>=2500)state=0;//控制開關(guān)閉合

          if(offCounter>=2500)state=1;//控制開關(guān)斷開

          4 裝置測試與分析

          為了測試基于單片機(jī)和光照檢測的開關(guān)控制裝置的性能,對裝置進(jìn)行了20次各個(gè)功能的測試,測試結(jié)果如表1所示。測試結(jié)果表明,裝置能實(shí)現(xiàn)設(shè)計(jì)的自動(dòng)開關(guān)控制、設(shè)定光照度上下限值和數(shù)據(jù)顯示等各種功能,運(yùn)行效果良好。

          基于單片機(jī)和光照檢測的開關(guān)控制b置設(shè)計(jì)

          5 結(jié)語

          本文提出一種基于單片機(jī)和光照檢測的開關(guān)控制裝置的設(shè)計(jì),此裝置具有光照檢測、光照度上下限值設(shè)定、開關(guān)自動(dòng)控制和數(shù)據(jù)顯示等功能。本文詳細(xì)介紹了此裝置的硬件和單片機(jī)程序的設(shè)計(jì)方法,并對設(shè)計(jì)的裝置進(jìn)行了功能測試,測試結(jié)果表明,設(shè)計(jì)的裝置能實(shí)現(xiàn)設(shè)計(jì)的等各種功能,運(yùn)行效果良好。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();