光電子設(shè)計報告_第1頁
光電子設(shè)計報告_第2頁
光電子設(shè)計報告_第3頁
光電子設(shè)計報告_第4頁
光電子設(shè)計報告_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要本文介紹一種基于單片機的聲光報警系統(tǒng)設(shè)計實例。分別說明了系統(tǒng)的硬件電路設(shè)計、軟件設(shè)計、系統(tǒng)的通訊方式及軟件的設(shè)計思想。該系統(tǒng)具有誤報率低、性能穩(wěn)定、傳輸距離遠、實用性強等特點。同國外相比,國內(nèi)在智能型火災(zāi)報警系統(tǒng)的研究上還是有一定的差距的。我國的智能型火災(zāi)報警系統(tǒng)還是存在諸如可靠性、穩(wěn)定性差:探測器信號處理方法單一,智能化程度低:未能很好解決探測器靈敏度和誤報率之間矛盾等問題?;诨馂?zāi)報警系統(tǒng)在國內(nèi)外的的發(fā)展狀況,這是一項迫切而有意義的設(shè)計。關(guān)鍵詞:STC89C52、DS18B20、HS0038B、數(shù)碼管、蜂鳴器、報警系統(tǒng)目 錄1、設(shè)計要求12、設(shè)計方案13、元器件簡介13.1、單片機S

2、TC89C52簡介13.2、溫度傳感器DS18B2023.3、紅外接收頭HS0038B34、設(shè)計電路及原理34.1、溫度接收模塊34.2、紅外發(fā)射模塊44.3、紅外接收模塊54.4、數(shù)碼管顯示模塊54.5、蜂鳴器報警模塊64.6、LED報警模塊75、 設(shè)計總結(jié)8參考文獻9附錄101、設(shè)計要求 1)包括電信號轉(zhuǎn)化成數(shù)字信號系統(tǒng),數(shù)字顯示系統(tǒng),報警系統(tǒng)2)測量系統(tǒng)的性能特點等3)利用光電傳感器進行信號的采集及控制。2、設(shè)計方案 本設(shè)計通過溫度傳感器DS18B20進行數(shù)據(jù)采集,采集到的信號經(jīng)過單片機(STC89C52)處理及進行信號調(diào)制后,經(jīng)紅外發(fā)射管將將信號發(fā)出,再由紅外接收頭HS0038B接收紅

3、外信號。當溫度超過某一特定溫度時,經(jīng)單片機處理最終來實現(xiàn)聲光報警系統(tǒng)的功能。紅外發(fā)送編碼參考了nec協(xié)議并稍作修改。定義了起始碼為9ms低電平和4ms的高電平。低電平0定義為1ms的低電平和1ms的高電平,高電平1定義為1ms的低電平和3ms的高電平。38k載波采用定時器0的8位自動重裝模式,初值0xf4。在設(shè)計過程中,使用示波器測量發(fā)送接收的波形,基本一樣,沒有誤差。收發(fā)有效距離為1米,超過1米數(shù)據(jù)顯示錯誤,本方案還有很大的提高空間。3、元器件簡介3.1、單片機STC89C52簡介 圖3-1 單片機STC89C52STC89C52是一種帶8K字節(jié)閃爍可編程可檫除只讀存儲器(FPEROM-Fl

4、ash Programable and Erasable Read Only Memory )的低電壓,高性能COMOS8的微處理器,俗稱單片機。該器件采用ATMEL搞密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。STC89C52具體介紹如下:  主電源引腳(2根) VCC(Pin40):電源輸入,接5V電源 GND(Pin20):接地線 外接晶振引腳(2根) XTAL1(Pin19):片內(nèi)振蕩電路的輸入端 XTAL2(Pi

5、n20):片內(nèi)振蕩電路的輸出端 控制引腳(4根) RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個機器周期的高電平將使單片機復(fù)位。 ALE/PROG(Pin30):地址鎖存允許信號 PSEN(Pin29):外部存儲器讀選通信號 EA/VPP(Pin31):程序存儲器的內(nèi)外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內(nèi)部程序存儲器讀指令。 可編程輸入/輸出引腳(32根) STC89C52單片機有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個口有8位(8根引腳),共32根。 PO口(Pi

6、n39Pin32):8位雙向I/O口線,名稱為P0.0P0.7 P1口(Pin1Pin8):8位準雙向I/O口線,名稱為P1.0P1.7  P2口(Pin21Pin28):8位準雙向I/O口線,名稱為P2.0P2.7  P3口(Pin10Pin17):8位準雙向I/O口線,名稱為P3.0P3.7 3.2、溫度傳感器DS18B20圖3-2 溫度傳感器DS18B20 DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應(yīng)用于多種場合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號多種多樣,有LTM8877,LTM8874等等。(1) DS1

7、8B20的主要特性1、適應(yīng)電壓范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由數(shù) 據(jù)線供電2、獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊3、 DS18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫4、DS18B20在使用中不需要任何外圍元件,全部 傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)5、溫范圍55+125,在-10+85時精度為±0.56、可編程 的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現(xiàn)高精度測溫7、在9位分辨

8、率時最多在 93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快8、測量結(jié)果直接輸出數(shù)字溫度信號,以"一 線總線"串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力9、負壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀, 但不能正常工作。(2)DS18B20引腳定義:1、DQ為數(shù)字信號輸入/輸出端;2、GND為電源地;3、VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。3.3、紅外接收頭HS0038B圖3-3 紅外接收頭HS0038B 紅外接收電路一體化的紅外接收裝置將遙控信號的接收、放大、檢波、整形集于一身,并

9、且輸出可以讓單片機識別的TTL 信號,這樣大大簡化了接收電路的復(fù)雜程度和電路的設(shè)計工作。4、設(shè)計電路及原理4.1、溫度接收模塊圖4-1 溫度接收原理圖4.2、紅外發(fā)射模塊信號調(diào)制原理:基帶信號:從信號源發(fā)出沒有經(jīng)過調(diào)制的原始信號,特點是頻率較低,信號頻率從0開始,頻譜較寬。調(diào)制:就是用待傳送信號去控制某個高頻信號的幅度、相位、頻率等參量變化的過程,即用一個信號去裝載另一個信號。圖4-2 信號調(diào)制原理圖圖4-3 紅外發(fā)射原理圖4.3、紅外接收模塊圖4-4 紅外接收原理圖4.4、數(shù)碼管顯示模塊圖4-5 數(shù)碼管顯示原理圖4.5、蜂鳴器報警模塊圖4-6 蜂鳴器報警模塊原理圖4.6、LED報警模塊圖4-

10、7 LED報警模塊原理圖5、設(shè)計總結(jié)剛開始知道題目時自己沒什么思路和頭緒,就只是一味的查資料,在網(wǎng)上確實是找了一大把的相關(guān)資料,可問題也相繼而來,按照網(wǎng)上的電路做出的板子根本不能成功,感覺涉及范圍也越來越大了,后經(jīng)組員商討,才突然明白由于太過倉促,將原本定好的思路打亂了,做的事情完全沒按照所想好的提綱來。所以不管做什么事,首先要明確的是自己要做什么,該怎么做,而不是盲目想達到某種目的,急于求成往往達不到效果的。在這次光電子設(shè)計中,我學(xué)到了很多專業(yè)方面的知識,加強了動手能力并掌握了許多實際性的東西心與各部屬電路相結(jié)合組成一個電路原理圖。同時還學(xué)到了很多課內(nèi)學(xué)不到的東西,比如獨立思考解決問題,出現(xiàn)

11、差錯的隨機應(yīng)變,和與人合作共同提高,都受益非淺,今后的制作應(yīng)該更輕松,自己也都能扛的起并高質(zhì)量的完成項目。參考文獻1金發(fā)慶.傳感器技術(shù)與應(yīng)用.北京:機械工業(yè)出版社,20042 安毓英,劉繼芳,李慶輝,馮喆珺,等. 光電子技術(shù)(第3版). 北京:電子工業(yè)出版社,2011 3 陳益飛,沈兆軍,孫干超,等. 單片機原理及技術(shù)應(yīng)用. 北京:國防工業(yè)出版社,20114何利明.單片機高級教程. 北京:航空航天大學(xué)出版社,2000 5 閻石. 數(shù)字電子技術(shù)基礎(chǔ)(第五版). 北京:高等教育出版社,20066 康華光. 電子技術(shù)基礎(chǔ)模擬部分(第五版). 北京:高等教育出版社,20067 孫宏國,周云龍. 電子系

12、統(tǒng)設(shè)計與實踐. 北京:清華大學(xué)出版社,20128李朝青.單片機原理與接口技術(shù). 北京:航空航天大學(xué)出版社,1999附錄1、元件清單:單片機STC89C52 (2個)、溫度傳感器DS18B20 (1個)、紅外發(fā)射二極管 (1個)、紅外接收頭HS0038B (1個)、數(shù)碼管 (3個)、蜂鳴器 (1個)、發(fā)光二極管 (8個)。2、程序清單:1)紅外發(fā)送模塊程序:main.c:#include<reg52.h> sbit CarryWave = P17;sbit ir_send = P16; void TransData(unsigned char _data);void CarrierW

13、aveInit(void);void delay_ms(unsigned int t);void ConfigTimer0(unsigned int ms);void TransData2(unsigned char _data2);extern bit Start18B20();extern bit Get18B20Temp(int *temp);bit flag1s=0;bit res=0; int temp; /讀取到的當前溫度值unsigned char T0RH = 0; /T0重載值的高字節(jié)unsigned char T0RL = 0; /T0重載值的低字節(jié)unsigned cha

14、r intT,decT; void main() EA=1; PT1=1; ConfigTimer0(1); CarrierWaveInit(); Start18B20(); /啟動DS18B20 while(1) TransData(intT); TransData2(decT); if (flag1s) /每秒更新一次溫度 flag1s = 0; res = Get18B20Temp(&temp); /讀取當前溫度 if (res) /讀取成功時,刷新當前溫度顯示 intT = temp >> 4;/intT=intT/16+intT%16; /分離出溫度值整數(shù)部分 d

15、ecT = temp & 0xF; /分離出溫度值小數(shù)部分 decT = decT*10/16;/a=intT/10; /整數(shù)部分數(shù)據(jù)處理/b=intT%10; Start18B20(); /重新啟動下一次轉(zhuǎn)換 void TransData(unsigned char _data) unsigned char i; ir_send = 0; delay_ms(9); ir_send= 1; /輸出0 delay_ms(4); /4ms的啟動低電平 for(i=0;i<8;i+) ir_send= 0; /輸出1delay_ms(1); if(_data&(1<<

16、;i) ir_send=1;delay_ms(3); /1左移i位 ,先發(fā)低位 /如果發(fā)送1 則高低電平比為1:1 else ir_send=1; delay_ms(1); /如果發(fā)送0 則高低電平比為1:3 ir_send = 1;/delay_ms(300);void TransData2(unsigned char _data2) unsigned char j; for(j=0;j<8;j+) ir_send= 0; /輸出1 delay_ms(1); if(_data2&(1<<j) ir_send=1;delay_ms(3); /1左移i位 ,先發(fā)低位 /

17、如果發(fā)送1 則高低電平比為1:1 else ir_send=1; delay_ms(1); /如果發(fā)送0 則高低電平比為1:3 ir_send=1;/*定時器1初始化函數(shù)*函數(shù)名 :CarrierWaveInit()*參 數(shù) :無*功 能 :38K載波信號定時器初始化*返回值 :無*/void CarrierWaveInit(void) EA=1; TMOD &= 0x0f; /清零T0的控制位 TMOD |= 0x20; /八位自動重裝模式TH1 = 0XF4; /38k載波信號TL1 = 0XF4;ET1 = 1; /打開TR1 = 1;/*定時器1中斷函數(shù)載波發(fā)生*/*函數(shù)名 :

18、CarrierWave()*參 數(shù) :無*功 能 :定時器中斷產(chǎn)生38KHZ載波信號*返回值 :無*/void CarrierWave(void) interrupt 3 CarryWave = CarryWave; void delay_ms(unsigned int t) /誤差 -0.651041666667us unsigned char a,b;for(;t>0;t-) for(b=4;b>0;b-) for(a=43;a>0;a-);void ConfigTimer0(unsigned int ms) unsigned long tmp; /臨時變量 tmp =

19、11059200 / 12; /定時器計數(shù)頻率 tmp = (tmp * ms) / 1000; /計算所需的計數(shù)值 tmp = 65536 - tmp; /計算定時器重載值 tmp = tmp + 12; /補償中斷響應(yīng)延時造成的誤差 T0RH = (unsigned char)(tmp>>8); /定時器重載值拆分為高低字節(jié) T0RL = (unsigned char)tmp; TMOD &= 0xf0; /清零T0的控制位 TMOD |= 0x01; /配置T0為模式1 TH0 = T0RH; /加載T0重載值 TL0 = T0RL; ET0 = 1; /使能T0中斷

20、 TR0 = 1; /啟動T0/* T0中斷服務(wù)函數(shù),完成1秒定時 */void InterruptTimer0() interrupt 1 static unsigned int tmr1s = 0; TH0 = T0RH; /重新加載重載值 TL0 = T0RL; tmr1s+; if (tmr1s >=700) /定時1s tmr1s = 0; flag1s = 1; DS18B20.c:#include <reg52.h>#include <intrins.h>sbit IO_18B20 = P32; /DS18B20通信引腳/* 軟件延時函數(shù),延時時間(

21、t*10)us */void DelayX10us(unsigned char t) do _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); while (-t);bit Get18B20Ack()bit ack;EA = 0;IO_18B20 = 0;DelayX10us(50);IO_18B20 = 1;DelayX10us(6);ack = IO_18B20;while(!IO_18B20);EA = 1;return ack;void Write18B20(unsigned char dat)

22、unsigned char mask;EA = 0;for(mask=0x01; mask!= 0; mask<<=1)IO_18B20 = 0;_nop_();_nop_();if(mask&dat) = 0)IO_18B20 = 0;elseIO_18B20 = 1;DelayX10us(6);IO_18B20 = 1;EA = 1;unsigned char Read18B20()unsigned char dat;unsigned char mask;EA = 0;for(mask=0x01; mask!=0; mask<<=1)IO_18B20 = 0

23、;_nop_();_nop_();IO_18B20 = 1;_nop_();_nop_();if(!IO_18B20)dat &= mask;elsedat |= mask;DelayX10us(6);EA = 1;return dat;bit Start18B20()bit ack;ack = Get18B20Ack();if(ack = 0)Write18B20(0xCC);Write18B20(0x44);return ack;bit Get18B20Temp(int *temp)bit ack;unsigned char LSB, MSB;ack = Get18B20Ack()

24、;if(ack = 0)Write18B20(0xCC);Write18B20(0xBE);LSB = Read18B20();MSB = Read18B20();*temp = (int)MSB<<8) + LSB;return ack;2) 紅外接收模塊程序:main.c:#include <reg52.h>sbit ADDR0 = P10;sbit ADDR1 = P11;sbit ADDR2 = P12;sbit ADDR3 = P13;sbit ENLED = P14;sbit LED0=P00;sbit LED1=P03;sbit LED2=P04;sbit

25、 LED3=P07;sbit BUZZ=P16;bit led0=1,led1=1,led2=1,led3=1;unsigned char code LedChar = /數(shù)碼管顯示字符轉(zhuǎn)換表 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E;unsigned char LedBuff6 = /數(shù)碼管顯示緩沖區(qū) 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF;unsigned char T0RH = 0; /T0重載值的高字節(jié)unsi

26、gned char T0RL = 0; /T0重載值的低字節(jié)unsigned char intT=0;extern bit irflag;extern unsigned char ircode4;extern void InitInfrared(void);void ConfigTimer0(unsigned int ms);void main() EA = 1; /開總中斷 ENLED = 0; ADDR3 = 1; InitInfrared(); /初始化紅外功能 ConfigTimer0(1); /配置T0定時1ms PT0 = 1; /配置T0中斷為高優(yōu)先級,啟用本行可消除接收時的閃爍

27、 while (1) if (irflag=1) /接收到紅外數(shù)據(jù)時刷新顯示 irflag = 0;intT=ircode0&0x0f+(ircode0>>4)*16 ; LedBuff2 = LedCharintT/10; /用戶碼顯示 LedBuff1 = LedCharintT%10 & 0x7f; ;/ LedBuff1 = LedChar5; /鍵碼顯示 LedBuff0 = LedCharircode1; /* 配置并啟動T0,ms-T0定時時間 */void ConfigTimer0(unsigned int ms) unsigned long tmp

28、; /臨時變量 tmp = 11059200 / 12; /定時器計數(shù)頻率 tmp = (tmp * ms) / 1000; /計算所需的計數(shù)值 tmp = 65536 - tmp; /計算定時器重載值 tmp = tmp + 10; /補償中斷響應(yīng)延時造成的誤差 T0RH = (unsigned char)(tmp>>8); /定時器重載值拆分為高低字節(jié) T0RL = (unsigned char)tmp; TMOD &= 0xF0; /清零T0的控制位 TMOD |= 0x01; /配置T0為模式1 TH0 = T0RH; /加載T0重載值 TL0 = T0RL; ET

29、0 = 1; /使能T0中斷 TR0 = 1; /啟動T0/* 數(shù)碼管動態(tài)掃描刷新函數(shù),需在定時中斷中調(diào)用 */void LedScan() static unsigned char i = 0; /動態(tài)掃描索引P0=0xff; switch(i)case 0: ADDR2=0; ADDR1=0; ADDR0=0; i+; P0=LedBuff0;break;case 1: ADDR2=0; ADDR1=0; ADDR0=1; i+; P0=LedBuff1;break;case 2: ADDR2=0; ADDR1=1; ADDR0=0; i+; P0=LedBuff2;break;case

30、3: ADDR2=1; ADDR1=1; ADDR0=0; i+; LED0=led0;break;case 4: ADDR2=1; ADDR1=1; ADDR0=0;i+; LED1=led1;break;case 5: ADDR2=1; ADDR1=1; ADDR0=0; i+; LED2=led2;break;case 6: ADDR2=1; ADDR1=1; ADDR0=0; i=0; LED3=led3;break;default:break;/* T0中斷服務(wù)函數(shù),執(zhí)行數(shù)碼管掃描顯示 */void InterruptTimer0() interrupt 1 static unsigned char i; TH0 = T0RH; /重新加載重載值 TL0 = T0RL; LedScan(); /數(shù)碼管掃描顯示 i+;if(i>=100) i=0; if(intT>=32) led0=led0; led1=led1; led2=led2; led3=led3; else led0=1; led1=1; led2=1; led3=1; if(intT>=32) BUZZ=BUZZ;ir_rec

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論