基于單片機(jī)的聲光控延時燈_第1頁
基于單片機(jī)的聲光控延時燈_第2頁
基于單片機(jī)的聲光控延時燈_第3頁
基于單片機(jī)的聲光控延時燈_第4頁
基于單片機(jī)的聲光控延時燈_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于單片機(jī)的聲光控制燈摘要隨著社會和科技的不斷進(jìn)步,人們逐漸認(rèn)識和接受了低碳生活,并開始從多方面關(guān)注它,尤其是在環(huán)保方面下了不少功夫。利用聲光的強(qiáng)弱來控制開關(guān)的開合的電子產(chǎn)品,可以有效降低能耗,節(jié)約能源。不僅適用于住宅區(qū)的走廊,也適用于工廠、辦公室、教學(xué)樓等公共場所。因此,聲光控制開關(guān)將在我們的低碳生活中發(fā)揮重要作用。本設(shè)計主要由STC 89C51單片機(jī)、 15V和5V電壓源電路、聲音接收放大控制電路、光信號接收放大控制電路組成。遇到的問題和相應(yīng)的解決方法。測試結(jié)果證明該系統(tǒng)性能穩(wěn)定、操作方便、實(shí)用價值高。本文詳細(xì)討論了控制系統(tǒng)的組成、軟硬件設(shè)計及工作原理。方案比較與演示圖1 聲光控電路當(dāng)我們

2、開始設(shè)計自動照明控制器時,我們想到了幾個方案,但經(jīng)過比較,我們最終決定了這個方案。剛拿到題目的時候,我們想到了老師講的聲光控制示意圖,如下圖:圖1 聲光控電路不過這個電路圖有點(diǎn)復(fù)雜,不能完全滿足題主的要求。我們在稍作改進(jìn)的基礎(chǔ)上增加了單片機(jī)和時鐘芯片,以滿足定時開燈、關(guān)燈和延時開燈的要求。改進(jìn)后的電路圖如下:圖2 聲光控制電路理論分析與計算本設(shè)計的硬件設(shè)計重點(diǎn)是光信號和聲音信號的接收控制電路、單片機(jī)的最小電路和時鐘芯片的控制電路。光信號控制電路部分采用光敏電阻接收光,放大后輸出到單片機(jī);聲音信號控制電路采用駐極體麥克風(fēng)采集聲音,然后放大輸出至單片機(jī);單片機(jī)將處理后的信號送至三極管使用。驅(qū)動LE

3、D燈,時鐘芯片用于定時控制燈的開關(guān)。光控電路它由光敏電阻、滑動變阻器、PNP三極管和與非門組成,如下圖3所示:光控電路通過照明改變光敏電阻的阻值和聲控電路的組合,進(jìn)而控制PNP三極管致到微控制器以控制燈的開和關(guān)。 , 光敏電阻受光時阻值小,與非門一端低;當(dāng)光線較弱時,電阻增大,與非門的一端為高電平。光控電路和聲控電路的輸出信號經(jīng)過與非門后的三極管放大,將比較弱的電流信號放大到單片機(jī)能識別的電流,再放大信號由晶體管的發(fā)射組傳送到單片機(jī)的I/O口。 .電路圖中的滑動變阻器控制整個光控電路對光信號的靈敏度。語音控制電路聲控電路通過駐極體麥克風(fēng)將聲音轉(zhuǎn)換成電信號,電容耦合到三極管的基極,通過控制三極管

4、的飽和和截止來控制輸出電平,然后送到與非門和光控電路的組合。致到單片機(jī);拾音電路將聲音轉(zhuǎn)換成微弱的電壓信號。然后,微弱的電壓信號經(jīng)三極管放大,聲控電路信號和光控電路信號通過與非門傳送到單片機(jī)的I/O口。 R 4 和c1 有一定的延遲作用,可以去除干擾信號。圖4聲音控制電路圖單片機(jī)控制電路單片機(jī)根據(jù)聲控電路和燈控電路輸入的信號判斷輸出端的電平,從而控制燈的開、關(guān);單片機(jī)還控制燈亮的延遲時間。單片機(jī)的輸出電流比較小,不能驅(qū)動燈的開關(guān)。燈的驅(qū)動是由三極管補(bǔ)償單片機(jī)的輸出電流來驅(qū)動燈的開和關(guān)。P1。 0作為聲光控制信號的輸入端口; (高電平有效); P1。 1是驅(qū)動電路的輸出端口; (高電平有效);

5、P1。 6接數(shù)碼管顯示延時時間; P1。 7用于連接按鈕調(diào)節(jié)延遲時間。圖5 單片機(jī)控制電路單片機(jī)控制程序如下:#include#define uchar 無符號字符#define uint 無符號整數(shù)sbit sm=P10;位ds=P11;位 LE=P16;sbit keyt=P17;單位 tt,sec,min,aa;uchar 碼時序=0 x 3f,0 x06,0 x5b,0 x 4f,0 x66,0 x6d,0 x7d,0 x07,0 x 7f,0 x 6f,0 x77,0 x 7c,0 x39,0 x5e,0 x79,0 x71;無效鹽石();無效鍵();無效延遲(uint);無效 in

6、in()sm=1;ds=0;tt=0;秒=0;最小=0;TMOD=0 x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;空光()如果(sm=0)ds=1;如果(ds=1)TR0=1;無效的鹽石()如果(tt=20)tt=0;秒+;如果(秒=60)秒=0;分鐘+;如果(最小=aa)TR0=0;inin();無效鍵()如果(鍵=0)延遲(5);如果(鍵=0)aa+;P0=定時aa;如果(aa=5)aa=1;延遲(5);無效的主要()鍵=1;LE=0;aa=2;P0=定時aa;inin();而(1)鍵();光();燕石();無效延遲

7、(單位 z)uint i,j;對于(i=1000;i0;i-)for(j=z;j0;j-);無效 timer0() 中斷 1TH0=(65535-50000)/256;TL0=(65535-50000)%256;tt+;時鐘芯片控制電路圖 6 時序電路RST接單片機(jī)的P3.5管腳, DS1302的I/O管腳接單片機(jī)的P3.4管腳,串行時鐘SCLK接單片機(jī)的P3.6管腳微控制器。將程序輸入DS1302,在數(shù)碼管上顯示定時時間,通過單片機(jī)控制在特定時間點(diǎn)燈和燈。計時程序如下:#include#include#define uchar 無符號字符#define uint 無符號整數(shù)位 SCK=P36

8、; /鐘位 SDA=P34; /數(shù)據(jù)位 RST=P35; /CE端口控制復(fù)位?uint k,num;位 readrtc_flag; /定義標(biāo)志uchar tempdata7=0,0,12,13,7,2,12;uchar 臨時顯示8;uchar碼表=0 x 3f,0 x06,0 x5b,0 x 4f,0 x66,0 x6d,0 x7d,0 x07,0 x 7f,0 x 6f,0 x40;uchar 代碼 WAN=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x 7f;/ uchar read_ds1302(uchar temp);/* 定時器 0 初始化

9、 */無效 inin()TMOD=0 x01;TH0=(65536-4000)/256;TL0=(65536-4000)%256;EA=1;ET0=1;TR0=1;數(shù)=0;k=0;/* 寫一個字節(jié)八次 */無效 write_ds1302_byte(uchar temp)uchar我;對于(i=0;i=1;/*寫入ds1302*/void write_ds1302(uchar 地址,uchar dat)RST=0; /數(shù)據(jù)和地址傳輸中止_nop_(); SCK=0;_nop_(); /一個機(jī)器周期 RST=1; /邏輯控制有效 _nop_() ;write_ds1302_byte(地址);wri

10、te_ds1302_byte(dat);RST=0;/*寫入時鐘的初始值*/無效 set_rtc()uchar 我,溫度;對于(i=0;i7;i+)臨時=臨時數(shù)據(jù)i/10;臨時數(shù)據(jù)i=臨時數(shù)據(jù)i%10;臨時數(shù)據(jù)i=臨時數(shù)據(jù)i+臨時*16;write_ds1302(0 x8e,0 x00); /停止寫保護(hù)write_ds1302(0 x80,tempdata0);write_ds1302(0 x82,tempdata1);write_ds1302(0 x84,tempdata2);write_ds1302(0 x86,tempdata3);write_ds1302(0 x88,tempdata4

11、);write_ds1302(0 x 8a,臨時數(shù)據(jù)5);write_ds1302(0 x 8c,臨時數(shù)據(jù)6);write_ds1302(0 x8e,0 x80); /寫保護(hù)/* tempdisplay7=tempdata2/16;tempdisplay6=tempdata2&0 x 0f;臨時顯示5=10;臨時顯示4=臨時數(shù)據(jù)1/16;tempdisplay3=tempdata1&0 x 0f;臨時顯示2=10;臨時顯示1=臨時數(shù)據(jù)0/16;臨時顯示0=臨時數(shù)據(jù)0&0 x 0f; */*dchshjindotempdatazhng*/uchar read_ds1302(uchar 地址)飛行

12、我;飛行時間=0 x00;RST=0;_nop_();SCK=0;_nop_();RST=1;_nop_();write_ds1302_byte(地址);對于(i=0;i=1;SCK=1;如果(SDA)tmp|=0 x80;SCK=0;_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();返回(tmp);/*讀時鐘*/無效 read_rct()uchar 我,溫度;臨時數(shù)據(jù)0=read_ds1302(0 x81);臨時數(shù)據(jù)1=read_ds1302(0 x83); 臨時數(shù)據(jù)2=read_ds1302(0 x85);臨時數(shù)據(jù)3=read

13、_ds1302(0 x87);臨時數(shù)據(jù)4=read_ds1302(0 x89);臨時數(shù)據(jù)5=read_ds1302(0 x8b);臨時數(shù)據(jù)6=read_ds1302(0 x8d);對于(i=0;i7;i+)臨時=臨時數(shù)據(jù)i/16;臨時數(shù)據(jù)i=臨時數(shù)據(jù)i%16;臨時數(shù)據(jù)i=臨時數(shù)據(jù)i+溫度*10; /*主程序*/無效的主要()inin(); /初始化定時器0set_rtc(); /寫入時鐘的初始值而(1)如果(讀取rtc_flag)讀取rtc_flag=0;/ read_rct();臨時顯示7=臨時數(shù)據(jù)2/10;臨時顯示6=臨時數(shù)據(jù)2%10;臨時顯示5=10;臨時顯示4=臨時數(shù)據(jù)1/10;臨時顯示3=臨時數(shù)據(jù)1%10;臨時顯示2=10;臨時顯示1=臨時數(shù)據(jù)0/10;臨時顯示0=臨時數(shù)據(jù)0%10;無效 timer0() 中斷 1TH0=(65536-4000)/256;TL0=(65536-4000)%256;P2=廣域網(wǎng)k;P0=表溫度顯示k;k+;如果(k=8)k=0;數(shù)+;如果(數(shù)=2)readrtc_flag=1;數(shù)=0;綜上所述本設(shè)計基于單片機(jī)的聲光控制,實(shí)用性強(qiáng),適用范圍廣,適用于家庭、辦公室、樓宇、商店等場所。本設(shè)計是利用單片機(jī)實(shí)現(xiàn)開關(guān)的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論