環(huán)境噪聲監(jiān)測報警系統(tǒng)

環(huán)境噪聲監(jiān)測報警系統(tǒng)

目錄

摘要 2
緒論 3
第一章:硬件設(shè)計部分 6
1.1噪聲監(jiān)測系統(tǒng)的硬件選擇 6
1.1.1 STC89C52RC單片機(jī) 6
1.1.2 ADC0832數(shù)模轉(zhuǎn)換芯片 11
1.1.3 蜂鳴報警器 12
1.1.4 聲音傳感器 13
1.2制版流程 14
1.2.1 制作電路原理圖 14
1.2.2 PCB圖制作 15
1.2.3 熱轉(zhuǎn)印 16
1.2.4 腐蝕 16
1.2.5 打孔 17
1.2.6 去漆 17
1.2.7 測試 18
1.3組裝流程 19
1.4焊接流程 19
第二章:軟件設(shè)計部分 20
2.1噪聲監(jiān)測系統(tǒng)的軟件選擇 20
2.1.1 Keil編程軟件 20
2.2.2 STC-ISP 21
2.2 程序設(shè)計流程 21
2.2.1 程序流程圖 21
2.2.2 關(guān)鍵部分程序 21
2.3程序下載及調(diào)試 21
第三章:總體方案說明 22
3.1 總體任務(wù)解析 22
3.2 硬件連接(配實物圖) 23
3.3操作過程 24
參考文獻(xiàn) 25
附:程序代碼 26

摘要
在人們的日常生活中,存在許許多多的噪聲。無論是工業(yè)噪聲,生活噪聲還是自然噪聲,它們不但影響人們的正常生活作息、學(xué)習(xí)與工作,而且嚴(yán)重的甚至?xí):θ梭w健康安全。因此,噪聲的監(jiān)測與防治成了一項迫在眉睫同時舉足輕重的環(huán)境保護(hù)任務(wù)。能夠有效的檢測噪聲,做到防范于未然,能夠有效提高人們的生活質(zhì)量、加強(qiáng)環(huán)境保護(hù)。
本次報告詳細(xì)介紹及應(yīng)用了環(huán)境噪聲監(jiān)測報警系統(tǒng)的原理及系統(tǒng)結(jié)構(gòu)。以STC89C52RC單片機(jī)為核心,涉及噪聲錄入、處理、顯示、報警等基本過程。外界噪聲信號通過傳聲器輸入,將聲信號轉(zhuǎn)換為電信號,然后對它放大,再交直流V/F轉(zhuǎn)換,進(jìn)一步數(shù)據(jù)采集,最后出入到單片機(jī)進(jìn)行處理,并轉(zhuǎn)換成相應(yīng)的噪聲分貝值通過LCD顯示,并設(shè)定目標(biāo)值,超出該值發(fā)出報警,從而使系統(tǒng)達(dá)到完全,實現(xiàn)噪聲的實時監(jiān)測。

緒論

1.噪聲的概念

噪聲是一種主觀評價標(biāo)準(zhǔn),即一切影響他人的聲音均為噪聲,無論是音樂或者機(jī)械聲等等。
從環(huán)境保護(hù)的角度看,凡是影響人們正常學(xué)習(xí),工作和休息的聲音凡是人們在某些場合“不需要的聲音”,都統(tǒng)稱為噪聲。如機(jī)器的轟鳴聲,各種交通工具的馬達(dá)聲、鳴笛聲,人的嘈雜聲及各種突發(fā)的聲響等,均稱為噪聲。從物理角度看,噪聲是發(fā)聲體做無規(guī)則振動時發(fā)出的聲音。噪聲污染屬于感覺公害,它與人們的主觀意愿有關(guān),與人們的生活狀態(tài)有關(guān),因而它具有與其他公害不同的特點。

2.噪聲的危害

干擾休息和睡眠、影響工作效率:
①干擾休息和睡眠。休息和睡眠是人們消除疲勞、恢復(fù)體力和維持健康的必要條件。但噪聲使人不得安寧,難以休息和入睡。當(dāng)人輾轉(zhuǎn)不能入睡時,便會心態(tài)緊張,呼吸急促,脈搏跳動加劇,大腦興奮不止,第二天就會感到疲倦,或四肢無力。
②使工作效率降低。研究發(fā)現(xiàn),噪聲超過85分貝,會使人感到心煩意亂,人們會感覺到吵鬧,因而無法專心地工作,結(jié)果會導(dǎo)致工作效率降低。
損傷聽覺、視覺器官
①損害心血管。噪聲是心血管疾病的危險因子,噪聲會加速心臟衰老,增加心肌梗塞發(fā)病率。
②強(qiáng)的噪聲可以引起耳部的不適,如耳鳴、耳痛、聽力損傷。
③噪聲對視力的損害。人們只知道噪聲影響聽力,其實噪聲還影響視力。

對人體的生理影響
①損害心血管。噪聲是心血管疾病的危險因子,噪聲會加速心臟衰老,增加心肌梗塞發(fā)病率。
②對女性生理機(jī)能的損害。女性受噪聲的威脅,還可以有月經(jīng)失調(diào)、流產(chǎn)及早產(chǎn)等,如導(dǎo)致女性性機(jī)能紊亂,月經(jīng)失調(diào),流產(chǎn)率增加等。
③噪聲還可以引起如神經(jīng)系統(tǒng)功能紊亂、精神障礙、內(nèi)分泌紊亂甚至事故率升高。

3.防治噪聲污染的一些辦法

①控制噪聲源。降低聲源噪音,工業(yè)、交通運輸業(yè)可以選用低噪音的生產(chǎn)設(shè)備和改進(jìn)生產(chǎn)工藝,或者改變噪音源的運動方式(如用阻尼、隔振等措施降低固體發(fā)聲體的振動)
②阻斷噪聲傳播。在傳音途徑上降低噪音,控制噪音的傳播,改變聲源已經(jīng)發(fā)出的噪音傳播途徑,如采用吸音、隔音、音屏障、隔振等措施,以及合理規(guī)劃城市和建筑布局等。
③在人耳處減低噪聲。受音者或受音器官的噪音防護(hù),在聲源和傳播途徑上無法采取措施,或采取的聲學(xué)措施仍不能達(dá)到預(yù)期效果時,就需要對受音者或受音器官采取防護(hù)措施,如長期職業(yè)性噪音暴露的工人可以戴耳塞 、耳罩或頭盔等護(hù)耳器。

4.噪聲的利用
①利用噪聲除草。
②利用噪聲發(fā)電。
③利用噪聲來制冷。
④利用噪聲除塵。
⑤利用噪聲克敵。
⑥利用噪聲診病。
⑦利用噪聲有源消聲

5.應(yīng)用背景
無論是利用噪聲還是防止噪聲,都必須確定其量值。在長期的科學(xué)研究和工程實踐中已逐步形成了一門較完整的噪聲工程學(xué)科,可供進(jìn)行理論計算和分析。但這些還是理論上的假設(shè)并沒有經(jīng)過實驗的證明,所以需要收集大量的數(shù)據(jù)來支持這些理論。
隨著現(xiàn)代工業(yè)和科技的飛速發(fā)展,對各種儀器設(shè)備提出了低噪聲的要求,需要進(jìn)行噪聲的分析與設(shè)計,并通過實驗來驗證,改進(jìn)設(shè)計。我們小組所實現(xiàn)的課題,從實驗及硬件方向研究噪聲監(jiān)測及報警,對未來實際應(yīng)用發(fā)展與市場需求具有重大意義。

第一章:硬件設(shè)計部分

1.1噪聲監(jiān)測系統(tǒng)的硬件選擇

1.1.1 STC89C52RC單片機(jī)

概述

STC89C52RC單片機(jī)是宏晶科技推出的新一代高速/低功耗/超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時鐘/機(jī)器周期和6時鐘/機(jī)器周期可以任意選擇

主要特性

  • 增強(qiáng)型8051單片機(jī),6時鐘/機(jī)器周期和12時鐘/機(jī)器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051.
  • 工作電壓:5.5V~3.3V(5V單片機(jī))/3.8V~2.0V(3V單片機(jī))
  • 工作頻率范圍:0~40MHz,相當(dāng)于普通8051的0~80MHz,實際工作頻率可達(dá)48MHz
    -用戶應(yīng)用程序空間為8K字節(jié)
    -片上集成512字節(jié)RAM
    -通用I/O口(32個),復(fù)位后為:P1/P2/P3/P4是準(zhǔn)雙向口/弱上拉,P0口是漏極開路輸出,作為總線擴(kuò)展用時,不用加上拉電阻,作為I/O口用時,需加上拉電阻。
  • ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程序,數(shù)秒即可完成一片
  • 具有EEPROM功能
  • 具有看門狗功能
  • 共3個16位定時器/計數(shù)器。即定時器T0、T1、T2
  • 外部中斷4路,下降沿中斷或低電平觸發(fā)電路,Power Down模式可由外部中斷低電平觸發(fā)中斷方式喚醒
  • 通用異步串行口(UART),還可用定時器軟件實現(xiàn)多個UART
  • 工作溫度范圍:-40~+85℃(工業(yè)級)/0~75℃(商業(yè)級)
  • PDIP封裝

引腳功能

STC89C52管腳圖如下圖所示。

STC89C52管腳圖

VCC:供電電壓。
GND:接地。

P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須接上拉電阻。

P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為低八位地址接收。

P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。

P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口,如下表所示:

P3口管腳 備選功能
P3.0 RXD(串行輸入口)
P3.1 TXD(串行輸出口)
P3.2 /INT0(外部中斷0)
P3.3 /INT1(外部中斷1)
P3.4 T0(計時器0外部輸入)
P3.5 T1(計時器1外部輸入)
P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)
P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)
P3口同時為閃爍編程和編程校驗接收一些控制信號。

RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周期的高電平時間。

ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,

MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。

/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。

/EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。

TAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出。

復(fù)位

單片機(jī)復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機(jī),按下重啟按鈕電腦內(nèi)部的程序從頭開始執(zhí)行。單片機(jī)也一樣,當(dāng)單片機(jī)系統(tǒng)在運行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時候,按下復(fù)位按鈕內(nèi)部的程序自動從頭開始執(zhí)行。單片機(jī)復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機(jī),按下重啟按鈕電腦內(nèi)部的程序從頭開始執(zhí)行。單片機(jī)也一樣,當(dāng)單片機(jī)系統(tǒng)在運行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時候,按下復(fù)位按鈕內(nèi)部的程序自動從頭開始執(zhí)行。

復(fù)位電路原理圖

晶振

結(jié)合單片機(jī)內(nèi)部的電路,產(chǎn)生單片機(jī)所必須的時鐘頻率,單片機(jī)的所有指令的執(zhí)行都是建立在晶振產(chǎn)生的頻率上,晶振的產(chǎn)生的頻率越高,單片機(jī)的運行速度就越快。
隨著晶體的電能和機(jī)械能之間的相互轉(zhuǎn)化,在共振條件下工作的結(jié)晶,提供穩(wěn)定,精確的單頻振蕩。


晶振

1.1.2 ADC0832數(shù)模轉(zhuǎn)換芯片

概述

ADC0832 為8位分辨率A/D轉(zhuǎn)換芯片,其最高分辨可達(dá)256級,可以適應(yīng)一般的模擬量轉(zhuǎn)換要求。其內(nèi)部電源輸入與參考電壓的復(fù)用,使得芯片的模擬電壓輸入在0~5V之間。芯片轉(zhuǎn)換時間僅為32μS,據(jù)有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗,以減少數(shù)據(jù)誤差,轉(zhuǎn)換速度快且穩(wěn)定性能強(qiáng)。獨立的芯片使能輸入,使多器件掛接和處理器控制變的更加方便。通過DI 數(shù)據(jù)輸入端,可以輕易的實現(xiàn)通道功能的選擇。

特點

· 輸入輸出電平與TTL/CMOS相兼容;
· 5V電源供電時輸入電壓在0~5V之間;
· 工作頻率為250KHZ,轉(zhuǎn)換時間為32μS;
· 一般功耗僅為15mW;
· 8P、14P-DIP(雙列直插)、PICC 多種封裝;
· 商用級芯片溫寬為0°C to +70°C,工業(yè)級芯片溫寬為?40°C to +85°C;

芯片接口說明:

· CS_片選使能,低電平芯片使能。
· CH0 模擬輸入通道0,或作為IN+/-使用。
· CH1 模擬輸入通道1,或作為IN+/-使用。
· GND 芯片參考0 電位(地)。
· DI 數(shù)據(jù)信號輸入,選擇通道控制。
· DO 數(shù)據(jù)信號輸出,轉(zhuǎn)換數(shù)據(jù)輸出。
· CLK 芯片時鐘輸入。
· Vcc/REF 電源輸入及參考電壓輸入(復(fù)用)。

管腳圖

管腳圖

1.1.3 蜂鳴報警器

概述

蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,他廣泛應(yīng)用于計機(jī)、打印機(jī)、復(fù)印機(jī)、報警器、電話機(jī)等電子產(chǎn)品中作發(fā)聲器件。 蜂鳴器按工作原理可以分為壓電式和電磁式兩種類型。電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場,振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。 壓電式蜂鳴器主要由阻抗匹配器及共鳴箱、多諧振蕩器、壓電蜂鳴片、外殼等組成。多諧振蕩器是由晶體管或著集成電路所構(gòu)成,當(dāng)接通1.5~15V直流電源后多諧振蕩器起振輸出1.5~2.5kHZ的音頻信號,蜂鳴器發(fā)出聲音。

原理圖

原理圖

1.1.4 聲音傳感器

概述

聲音傳感器的作用相當(dāng)于一個話筒(麥克風(fēng))。它用來接收聲波,顯示聲音的振動圖像,但不能對噪聲的強(qiáng)度進(jìn)行測量。
該傳感器內(nèi)置一個對聲音敏感的電容式駐極體話筒。聲波使話筒內(nèi)的駐極體薄膜振動,導(dǎo)致電容的變化,而產(chǎn)生與之對應(yīng)變化的微小電壓。這一電壓隨后被轉(zhuǎn)化成0-5V的電壓,經(jīng)過A/D轉(zhuǎn)換被數(shù)據(jù)采集器接受,并傳送給計算機(jī)。

功能原理

功能原理圖

模塊有2個輸出: 1、AO,模擬量輸出,實時輸出麥克風(fēng)的電壓信號 2、DO,當(dāng)聲音強(qiáng)度到達(dá)某個閥值時,輸出高低電平信號,【閥值-靈敏度可以通過電位器調(diào)節(jié)】 模塊特點: 1、尺寸小,36mm X 16mm 2、有3mm的安裝螺絲孔 3、可以使用3-5.5v直流電源供電 4、有模擬量輸出 5、有閥值翻轉(zhuǎn)電平輸出 6、極柱體麥克風(fēng),靈敏度高。 7、有電源指示燈 8、比較器輸出有指示燈

實物圖片

實物圖片

1.2制版流程

1.2.1 制作電路原理圖

用AD軟件繪制電路原理圖。(及所需元件封裝庫文件),成果如下圖。


電路原理圖

1.2.2 PCB圖制作

由原理圖生成PCB圖,并合理化布線,如下圖所示:


PCB圖

1.2.3 熱轉(zhuǎn)印

PCB圖設(shè)計分層完成后,在電腦上下載打印驅(qū)動程序用USB接口連接打印機(jī),將黃油紙放到打印機(jī)入口,然后開始打印。PCB電路連接線路自動打印到黃油紙上。注意保證大小適合覆銅板9*15的大小范圍,并且線路無斷口,油墨清晰。
然后用熱轉(zhuǎn)印法將黃油紙上的電路線路圖印到覆銅板上。首先將黃油紙線路與覆銅板完全符合相貼,將黃油紙多余的部分沿著覆銅板四邊對折,盡量完全貼合,成較為標(biāo)準(zhǔn)的長方形。包裹完畢后,用熱熨斗插上電源開到接近最大功率,然后開始對黃油紙反復(fù)熨燙。熨燙過程中,前后反復(fù)移動熨斗,并注意施力往下壓,時間持續(xù)5---7分鐘,保證黃油紙不被熨斗燙破。拆開黃油紙后,覆銅板上應(yīng)該清晰的看到線路連接完整,無掉漆掉色,油墨清晰厚實。若有部分微小油墨不清晰或線路斷開處,用馬克筆在斷處畫上筆跡連接。

熱轉(zhuǎn)印圖

1.2.4 腐蝕

用PCB銅板腐蝕劑與水按1:4的比例混合,并且加入一定熱水或者打開日光燈提高環(huán)境溫度使水溫達(dá)到50攝氏度左右。用鑷子夾住覆銅板緩緩放入溶液中,要保證板子完全侵入。大約浸泡腐蝕時間15——20分鐘左右。在腐蝕過程中,要不停的搖晃裝溶液的塑料盆,讓溶液不停的洗刷覆銅板表面,可以加快腐蝕速度,保證腐蝕將板上的其他銅料徹底清除。事后用清水稍稍沖洗板子,用干凈的衛(wèi)生紙擦拭完水漬,干燥光潔。


腐蝕

1.2.5 打孔

使用專業(yè)的機(jī)器,選擇大小合適的針頭,針頭安裝完畢后。開啟電源,查看是否能正常工作,并調(diào)整高度。打孔過程時,先關(guān)閉電源,調(diào)整高度,看鉆針是否剛好對準(zhǔn)轉(zhuǎn)孔,核實無誤后。抬高鉆針高度,打開電源,然后在一鼓作撥下握柄,直接鉆開板子。然后如法炮制,依次鉆開覆銅板上所有孔。注意如有大孔,在大孔處多鉆幾個小孔,合成一個大孔。保證器件的管腳可以順利穿過。


打孔

1.2.6 去漆

用衛(wèi)生紙蘸上酒精,擦拭干凈銅板表面。然后用砂紙開始磨砂板上線路圖的黑漆。磨砂過程既要用力擦掉黑漆又要注意不能過分磨砂露出的黃銅部分。在擦掉所有黑漆后,確認(rèn)線路圖現(xiàn)在全是露出的黃銅部分,無斷開或短路部分。最后再用衛(wèi)生紙蘸上酒精擦輕輕拭板子,去掉碎渣。確保板子表面干燥光潔。


去漆

1.2.7 測試

以上流程完成后,用萬用表測試板子上的銅線是否有斷開或短路的地方。具體操作為打開萬用表后,正確插上紅黑表筆,將紅筆筆頭放在線路的一端孔處,將黑筆筆頭放在線路另一頭,若萬用表發(fā)出滴的一聲,則表示該線路沒有問題。
我們將所有線路的測試了一遍,未發(fā)現(xiàn)問題,確認(rèn)板子制作無誤。到此為止,便是制版的全部流程,沒有發(fā)現(xiàn)問題。


測試

1.3組裝流程

我們所有的元器件都到了以后。根據(jù)設(shè)計的電路原理圖和PCB圖開始組裝元器件。首先確認(rèn)所有元器件型號都符合我們的要求。然后在看是否所有器件的管腳能否穿過孔。以上都確認(rèn)無誤后,開始組裝,實物圖如下。


組裝

1.4焊接流程

準(zhǔn)備好焊錫槍和焊條,將溫度調(diào)到600攝氏度偏上的地方,然后開始焊接。焊接過程中注意焊料不能粘到旁邊的銅板線路造成短路。等全部焊接完畢后,便可以開始軟件下載調(diào)試,實物圖如下.

焊接

第二章:軟件設(shè)計部分

2.1噪聲監(jiān)測系統(tǒng)的軟件選擇

2.1.1 Keil編程軟件

概述

Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil 的優(yōu)勢。
C51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。 仿真器標(biāo)配11.0592MHz的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。 仿真器上的復(fù)位按鈕只復(fù)位仿真芯片,不復(fù)位目標(biāo)系統(tǒng)。

仿真芯片的31腳(/EA)已接至高電平,所以仿真時只能使用片內(nèi)ROM,不能使用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該仿真器仍可插入到擴(kuò)展有外部ROM(其CPU的/EA引腳接至低電平)的目標(biāo)系統(tǒng)中使用。

Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。

2.2.2 STC-ISP

STC-ISP 是一款單片機(jī)下載編程燒錄軟件,是針對STC系列單片機(jī)而設(shè)計的,可下載STC89系列、12C2052系列和12C5410等系列的STC單片機(jī),使用簡便,現(xiàn)已被廣泛使用。

2.2 程序設(shè)計流程

2.2.1 程序流程圖

程序流程圖

2.2.2 關(guān)鍵部分程序

AD芯片:將模擬信號轉(zhuǎn)換為數(shù)字信號,輸入至單片機(jī)
sbit ADC0832_CS=P2^0;
sbit ADC0832_CLK=P2^1;
sbit ADC0832_DIO=P2^2;

unsigned int A_D(unsigned char DI)
{
unsigned char i,dat;
ADC0832_CS=1; //一個轉(zhuǎn)換周期開始
ADC0832_CLK=0; //為第一個脈沖作準(zhǔn)備
ADC0832_CS=0; //CS置0,片選有效

ADC0832_DIO=1; //DIO置1,規(guī)定的起始信號
ADC0832_CLK=1; //第一個脈沖
ADC0832_CLK=0; //第一個脈沖的下降沿,此前DIO必須是高電平
ADC0832_DIO=1; //DIO置1, 通道選擇信號
ADC0832_CLK=1; //第二個脈沖,第2、3個脈沖下沉之前,DI必須跟別輸入兩位數(shù)據(jù)用于選擇通道,這里選通道CH0
ADC0832_CLK=0; //第二個脈沖下降沿
ADC0832_DIO=DI; //DI置0,選擇通道0
ADC0832_CLK=1; //第三個脈沖
ADC0832_CLK=0; //第三個脈沖下降沿
ADC0832_DIO=1; //第三個脈沖下沉之后,輸入端DIO失去作用,應(yīng)置1
ADC0832_CLK=1; //第四個脈沖
for(i=0;i<8;i++) //高位在前
{
ADC0832_CLK=1; //第四個脈沖
ADC0832_CLK=0;
dat<<=1; //將下面儲存的低位數(shù)據(jù)向右移
dat|=(unsigned char)ADC0832_DIO; //將輸出數(shù)據(jù)DIO通過或運算儲存在dat最低位
}
ADC0832_CS=1; //片選無效
return dat; //將讀書的數(shù)據(jù)返回

2.3程序下載及調(diào)試

在KEIL軟件上用C語言編寫程序代碼(全部代碼見附件),然后用STC_ISP程序燒寫軟件將代碼燒錄下載到單片機(jī)上,查看實驗現(xiàn)象是否符合要求并進(jìn)行調(diào)試。

程序調(diào)試

第三章:總體方案說明

3.1 總體任務(wù)解析

本次課題設(shè)計的主要任務(wù)是完成基于52單片機(jī)的環(huán)境噪聲監(jiān)測報警系統(tǒng)設(shè)計,它的主要設(shè)計是以單片機(jī)為核心,采用V/F數(shù)模轉(zhuǎn)換技術(shù)的便攜式環(huán)境噪聲測量報警儀,要求能夠?qū)崿F(xiàn)環(huán)境中噪聲的實時監(jiān)測并準(zhǔn)確無誤的顯示在LED1602液晶顯示屏上,給出噪聲的大致水平顯示,當(dāng)噪聲水平超出限定值由蜂鳴報警器發(fā)出報警聲。
本次課題任務(wù)設(shè)計方案由硬件設(shè)計和軟件設(shè)計兩部分組成。噪聲測量報警儀的硬件設(shè)計部分包括噪聲信號由聲信號到電信號的轉(zhuǎn)換、放大、AD數(shù)模轉(zhuǎn)換電路以及單片機(jī)的系統(tǒng)硬件電路、LED顯示電路、蜂鳴報警電路。軟件部分包括使用C語言編程,能夠?qū)崿F(xiàn)對信號的采集、轉(zhuǎn)換及顯示、報警。在遵循軟硬件相結(jié)合的原則下,先進(jìn)行硬件電路的設(shè)計,再進(jìn)行軟件編程,進(jìn)行模塊化設(shè)計,并對各模塊進(jìn)行調(diào)試,最后進(jìn)行軟硬件聯(lián)合調(diào)試和故障的排除,最終得到符合要求能夠正常工作的噪聲測量報警儀。

3.2 硬件連接(配實物圖)

根據(jù)所設(shè)計的電路原理圖圖PCB圖進(jìn)行硬件連接。
用3P排針一段插入孔進(jìn)行焊接,然后另一端連接母對母杜邦線,杜邦線另一端在連接聲音傳感器的針頭。
將16P排針插入16P排座,排針的一端焊接1602液晶顯示屏,將其固定好。而排座的另一端16的針頭插入板上的孔洞,進(jìn)行焊接。
STC89C52單片機(jī)芯片將引腳插入20P雙排插座,然后將雙排插座的引腳插入板上的孔中,進(jìn)行焊接。
其余所用到的自鎖開關(guān)、按鍵模塊、三極管、LCD二極管、ADC0832數(shù)模轉(zhuǎn)換芯片、1K 10K電阻,電阻電容、瓷片第電容、蜂鳴報警器、下載線接線4P排針,特殊3管腳可調(diào)電阻直接將其管腳插入覆銅板上所對應(yīng)的孔中,進(jìn)行焊接。
注意事項,在焊接過程中,在孔處的焊錫不可以連接到其他銅線上,避免造成短路斷路。

實物圖如下

實物正面

實物反面

3.3操作過程

如實物圖所示,左上角開關(guān)分別為增加和減少閾值鍵,用來設(shè)定報警閾值,lcd下方為復(fù)位鍵,用來復(fù)位系統(tǒng),坐下角為總體開關(guān)。接通電源,開啟開關(guān)后,如圖所示,lcd液晶屏上方顯示的是實時環(huán)境噪聲分貝值,下方顯示的是報警分貝閾值,當(dāng)實時環(huán)境噪聲分貝值超過閾值時,即會觸發(fā)聲光報警。

現(xiàn)象展示

總結(jié)

短短3個星期的生產(chǎn)實習(xí)即將結(jié)束,非常感謝學(xué)校給了我們這次良好的學(xué)習(xí)知識和鍛煉動手能力的機(jī)會,為我們即將步入社會打下了良好的理論實踐基礎(chǔ)。經(jīng)過這次生產(chǎn)實習(xí),我們加深了對原來在書本上學(xué)習(xí)的知識理解,對數(shù)電、模電、嵌入式技術(shù)、測控技術(shù)等相關(guān)知識有了進(jìn)一步的理解和應(yīng)用。我們小組充分投入其中,不僅鍛煉了分工合作的能力,而且互幫互助,共同發(fā)現(xiàn)問題、理解問題、解決問題。通過查詢大量的文獻(xiàn)資料和網(wǎng)絡(luò)資源,鍛煉了我們的信息篩選查找和篩選能力,熟悉了資料的查詢,學(xué)習(xí)和掌握了更多的知識。通過從硬件到軟件全面學(xué)習(xí)操作,是我們完善了知識結(jié)構(gòu),拓寬了眼界,提高了綜合應(yīng)用能力。同時培養(yǎng)了我們的基本素質(zhì),鍛煉了耐心,合作,堅持,不怕困難,細(xì)心,謹(jǐn)慎,認(rèn)真的品性。此次生產(chǎn)實習(xí)為我們將來的畢業(yè)實習(xí)提供極大的參考價值和幫助,同時還要感謝各位指導(dǎo)教師對我們極大的幫助和耐心的指導(dǎo),為此獻(xiàn)上由衷的感謝和崇高的敬意。

參考文獻(xiàn)

  1. 楊振江.A/D、D/A轉(zhuǎn)換器接口技術(shù)及實用線路[M].西安:西安電子科技大學(xué)出版社,1996
  2. 周杏鵬等.檢測技術(shù)及系統(tǒng)設(shè)計[M].南京:東南大學(xué)出版社,1996
  3. 張毅剛等.單片機(jī)原理及應(yīng)用[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2004
  4. 蔡美琴等.MCS—51系列單片機(jī)系列及其應(yīng)用[M].北京:高等教育出版社,1992
  5. 張毅剛,劉杰.MCS-51單片機(jī)原理及應(yīng)用[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社
  6. 大量網(wǎng)絡(luò)相關(guān)資料。

附:程序代碼

主程序:

include <reg52.H>

include "ADC0832.h"

include "LCD1602.h"

include "eeprom52.h"

uint Noise_h=0;

uint AD_dat=0;
uint mmm=0;

uint Noise=0;
/*
bit read_dht11=1;
uchar U8T_data_H=0;
uchar U8RH_data_H=0;
bit tmp=1;
unsigned char DHT[5];
*/
uchar ms=0;

sbit beep=P2^5;
sbit led0=P2^4;//綠色的燈
sbit led1=P2^3;//紅色的燈

sbit key1=P3^5;
sbit key2=P3^6;

bit key1_flag=0;
bit key2_flag=0;

uchar sec=0;
uchar sec1=0;

bit beep1=0;

bit memory_flag=0;

void memroy()
{
if(memory_flag)
{ memory_flag=0;
SectorErase(0x2000);
byte_write(0x2000,Noise_h/256);
byte_write(0x2001,Noise_h%256);
}
}

void read_memory()
{
Noise_h=byte_read(0x2000)*256+byte_read(0x2001);
if(Noise_h>999)
{
Noise_h=70;
}
}

void key_dispose()
{
if(!key1)
{
if(key1_flag)
{
key1_flag=0;
if(Noise_h<999) Noise_h++;
}
if(sec==0)
{
if(Noise_h<999) Noise_h++;
}
}
else
{
if(key1_flag==0)
{
key1_flag=1;
memory_flag=1;
}
sec=2;
}

if(!key2)
{
if(key2_flag)
{
key2_flag=0;
if(Noise_h>0) Noise_h--;
}
if(sec1==0)
{
if(Noise_h>0) Noise_h--;
}
}
else
{
if(key2_flag==0)
{
key2_flag=1;
memory_flag=1;
}
sec1=2;
}

}

void display()
{
LCD1602_write(0,0x80);
LCD1602_writebyte("Fenbei:");
LCD1602_write(1,0x30+Noise/10000%10);
LCD1602_write(1,0x30+Noise/1000%10);
LCD1602_write(1,0x30+Noise/100%10);
LCD1602_writebyte(".");
LCD1602_write(1,0x30+Noise/10%10);
LCD1602_write(1,0x30+Noise%10);
LCD1602_writebyte("dB ");

   LCD1602_write(0,0xC0);
   LCD1602_writebyte("Fazhi:");
   LCD1602_write(1,0x30+Noise_h/100%10);
   LCD1602_write(1,0x30+Noise_h/10%10);
   LCD1602_write(1,0x30+Noise_h%10);
   LCD1602_writebyte("dB        ");
}

void main()
{

uchar i;
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
ET0=1;
TR0=1;
EA=1;
LCD1602_cls();
read_memory();
while(1)
{
memroy();
display();
if(i<80) //轉(zhuǎn)換10次計算平均值
{ i++;
mmm=mmm+A_D(0)/0.51;

    }
    else 
     {
       mmm=mmm/80;                           
       AD_dat=mmm;
       mmm=0;
       i=0;
       Noise=(AD_dat*36);
       if(Noise<3000) Noise=Noise*2+3000;           
     }

       if(Noise>Noise_h*100)
        {
          beep1=1;
          led0=0;
          led1=1;

        }
       else 
        {
          beep1=0;
          led1=0;
          led0=1;
        }

}

}
void time0() interrupt 1
{
TH0=0x3c;//配置定時時間。50ms
TL0=0xb0;
ms++;
key_dispose();
if(beep1) beep=~beep;
else beep=1;
if(ms>=20)
{
ms=0;
if(sec!=0) sec--;
if(sec1!=0) sec1--;

 }

}

子程序:
ADC0832:
sbit ADC0832_CS=P2^0;
sbit ADC0832_CLK=P2^1;
sbit ADC0832_DIO=P2^2;

unsigned int A_D(unsigned char DI)
{
unsigned char i,dat;
ADC0832_CS=1; //一個轉(zhuǎn)換周期開始
ADC0832_CLK=0;
ADC0832_CS=0;

ADC0832_DIO=1;
ADC0832_CLK=1;
ADC0832_CLK=0;
ADC0832_DIO=1;
ADC0832_CLK=1;
ADC0832_CLK=0;
ADC0832_DIO=DI;
ADC0832_CLK=1;
ADC0832_CLK=0;
ADC0832_DIO=1;
ADC0832_CLK=1;
for(i=0;i<8;i++)
{
ADC0832_CLK=1;
ADC0832_CLK=0;
dat<<=1;
dat|=(unsigned char)ADC0832_DIO;
}
ADC0832_CS=1;
return dat;

LCD:

ifndef LCD1602_H

define LCD1602_H

define uchar unsigned char

define uint unsigned int

define LCD1602_dat P0

sbit LCD1602_rs=P1^0;
sbit LCD1602_rw=P1^1;
sbit LCD1602_e=P1^2;

void LCD1602_delay(uint T) //延時函數(shù)
{
while(T--);
}

void LCD1602_write(uchar order,dat) //1602 一個字節(jié) 處理
{
LCD1602_e=0;
LCD1602_rs=order;
LCD1602_dat=dat;
LCD1602_rw=0;
LCD1602_e=1;
LCD1602_delay(1);
LCD1602_e=0;
}
void LCD1602_writebyte(uchar prointer) //1602 字符串 處理
{
while(
prointer!='\0')
{
LCD1602_write(1,*prointer);
prointer++;
}
}
void LCD1602_cls() //1602 初始化
{
LCD1602_write(0,0x01); //1602 清屏 指令
LCD1602_delay(1500);
LCD1602_write(0,0x38);
LCD1602_delay(1500);
LCD1602_write(0,0x0c);
LCD1602_write(0,0x06);
LCD1602_write(0,0xd0);
LCD1602_delay(1500);
}

endif

ISP:

define EEPROM52_H

include <intrins.h>

define RdCommand 0x01

define PrgCommand 0x02

define EraseCommand 0x03

define Error 1

define Ok 0

define WaitTime 0x01

sfr ISP_DATA=0xe2;
sfr ISP_ADDRH=0xe3;
sfr ISP_ADDRL=0xe4;
sfr ISP_CMD=0xe5;
sfr ISP_TRIG=0xe6;
sfr ISP_CONTR=0xe7;
void ISP_IAP_enable(void)
{
EA = 0; ISP_CONTR = ISP_CONTR & 0x18; /* 0001,1000 /
ISP_CONTR = ISP_CONTR | WaitTime;
ISP_CONTR = ISP_CONTR | 0x80; }
void ISP_IAP_disable(void)
{
ISP_CONTR = ISP_CONTR & 0x7f; /
ISPEN = 0 */
ISP_TRIG = 0x00;
EA = 1;
}

void ISPgoon(void)
{
ISP_IAP_enable();
ISP_TRIG = 0x46;
ISP_TRIG = 0xb9; nop();
}

unsigned char byte_read(unsigned int byte_addr)
{
EA = 0;
ISP_ADDRH = (unsigned char)(byte_addr >> 8);
ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff);
ISP_CMD = ISP_CMD & 0xf8;
ISP_CMD = ISP_CMD | RdCommand;
ISPgoon();
ISP_IAP_disable();
EA = 1;
return (ISP_DATA); }
void SectorErase(unsigned int sector_addr)
{
unsigned int iSectorAddr;
iSectorAddr = (sector_addr & 0xfe00);
ISP_ADDRH = (uns

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容