传感器与检测关键技术专业课程设计方案报告.doc
北 方 民 族 大 学课程设计报告院(部、中心) 电气信息工程学院 姓 名 马贵书 学 号 0260 专 业 测控技术与仪器 班 级 测控技术与仪器101同组人员 马贵书 马宝福 韦芳南 王思博 课程名称 传感器与检测技术 设计题目名称 噪音测量仪的设计 起止时间.12.27-.1.1成 绩 指引教师签名 盛 洪 江 北方民族大学教务处制教师评语:报告成绩(30%)平时成绩(50%)答辩成绩(20%)总评成绩 摘 要噪声对人体健康有着严重的危害,因此减少噪声危害已成为目前一项重要的任务。环境噪声监测,是人类提高生活质量,加强环保的一种重要环节。本文具体简介了噪声监测系统的测量原理和系统构成,涉及:噪声信号的转换、OP07C放大、TLC549转换、数据采集和显示系统的设计。外界噪声信号通过传声器转换成音频信号,电信号通过放大和TLC549变换输入到单片机进行解决,并转换成相应的噪声分贝值通过LED 显示,从而实现噪声的实时监测。该系统具有实现简朴,精确度高,可用于实际进行噪声的实时监测等特点。核心词:传声器;OP07C运算放大器;TLC549转换器;单片机;LCD1062引言噪声即噪音。是一类引起人烦躁、或音量过强而危害人体健康的声音。 噪声一般是指那些难听的,令人厌烦的声音。噪音的波形是杂乱无章的。从环保的角度看,但凡影响人们正常学习,工作和休息的声音但凡人们在某些场合“不需要的声音”,都统称为噪声。如机器的轰鸣声,多种交通工具的马达声、鸣笛声,人的嘈杂声及多种突发的声响等,均称为噪声。噪声污染属于感觉公害,它与人们的主观意愿有关,与人们的生活状态有关,因而它具有与其她公害不同的特点。噪音污染重要来源于交通运送、车辆鸣笛、工业噪音、建筑施工、社会噪音如音乐厅、高音喇叭、早市和人的大声说话等。 环境噪声监测,是人类提高生活质量,加强环保的一种重要环节,在各大都市的繁华街区和居民区,已有大型环境噪声显示屏竖立街头。但目前国内的便携式噪声测试仪,多为价格昂贵的进口专用设备,除卫生、计量等环保专业部门拥有外,无法作为民用品推广普及。本文简介一种以89S52单片机为核心,采用TLC549转换技术构成的低成本、便携式数字显示环境噪声测量仪。该仪器工作稳定、性能良好,经校验定标后能满足一般民用需要,可广泛应用于工矿公司、机关学校等需要对环境噪声进行测量和控制的场合。目录摘 要3引言3一、噪声有关资料51.1噪声简介51.2 声压级测量机理6二、仪器整体方案设计62.1噪声监测系统任务分析62.2整体设计方案6三、硬件电路具体设计73.1 传声器73.2 信号放大器83.3 A/D转换电路的设计83.4 单片机系统的设计93.5显示电路的设计10四、主程序10五、安装与调试17参照文献17结论18附录119一、噪声有关资料1.1噪声简介1噪声概念物理学定义:噪声是发生体做无规则时发出的声音。生理学定义:但凡阻碍人们正常休息、学习和工作的声音,以及对人们要听的声音产生干扰的声音。从这个意义上来说,噪声的来源诸多。街道上的汽车声、安静的图书馆里的说话声、建筑工地的机器声、以及邻居电视机过大的声音,都是噪声。2噪声对人的危害随着工业生产、交通运送、都市建筑的发展,以及人口密度的增长,家庭设施(音响、空调、电视机等)的增多,环境噪声日益严重,它已成为污染人类社会环境的一大公害。噪声具有局部性、临时性和多发性的特点。噪声不仅会影响听力,并且还对人的心血管系统、神经系统、内分泌系统产生不利影响,因此有人称噪声为“致人死命的慢性毒药”。噪声给人带来生理上和心理上的危害重要有如下几方面: 干扰休息和睡眠、影响工作效率:干扰休息和睡眠;使工作效率减少。 损伤听觉、视觉器官:强的噪声可以引起耳部的不适,如耳鸣、耳痛、听力损伤;噪声对视力的损害。 对人体的生理影响:损害心血管;对女性生理机能的损害;噪声还可以引起如神经系统功能紊乱、精神障碍、内分泌紊乱甚至事故率升高。3人对不同声强的感觉无法忍受:150dB130dB感到疼痛:130dB110dB很吵:110dB70dB较静:70dB50dB安静:50dB30dB极静:30dB10dB无声:0dB1.2 声压级测量机理人耳的听阈一般是20m Pa (微帕),痛阈一般是200Pa(帕),其间相差107倍,这样广阔的声压范畴很不易测量,并且人耳对声压的相对变化的辨别具有非线性特性。因此,声学中常用声压级LP来反映声压的变化,将声压P的声压级表达到 (1.13)其中,基准量P0为20m Pa。当P= P0时,LP=0dB,而当P=200 Pa时,LP=140dB。二、仪器整体方案设计2.1噪声监测系统任务分析本设计的任务是要完毕基于单片机的环境噪声监测仪的设计系统,它的重要是设计以单片机为核心、采用A/D转换技术的便携式环境噪声测量仪,实现环境噪声的实时测量和LED数字显示,给出噪声水平的大体批示。基于本次任务,该设计方案由硬件和软件两部分构成。噪声测量仪的硬件电路系统,涉及噪声信号的转换、放大以及单片机系统的硬件电路、LED显示电路等。软件部分重要是用单片机语言编程,实现对信号的采集、转换及显示。在遵循软硬件相结合的原则下,先进行硬件电路的计,再进行软件编程,进行模块化设计,并对各模块进行调试,最后进行软硬件联合调试和故障的排除。2.2整体设计方案按照系统设计功能的规定,初步拟定控制系统涉及硬件和软件系统两部分。其中硬件系统构造框图如图2-1所示。环境噪声经高敏捷度、无指向性驻极体传声器转换成电信号。放大电路由运放OP07C构成,精心调节有关外围元件参数,可使其输出幅频特性满足测量规定的电压信号。通过A/D转换器后,输出电压信号变为电平送给单片机的P1引脚,经软件解决后,噪声声压级显示值由P0口输出,由LCD动态显示。A/D转换电路LCD显示单片机传声器放大器噪声图2-1 噪声监测仪硬件构造框图传声器是将声波信号转换成电信号的传感器,是噪声测量系统中的一种重要环节。根据膜片感受声压的状况不同,传声器可分为三类:压强式传声器,其膜片的一面感受声压;差压式传声器,其膜片的两面均感受声压,引起膜片振动的力取决于膜片两面压差的大小;压强和压差组合式传声器。在噪声测量中常用的压强式传声器。功率放大器的作用相称于扬声器的音量调节器。音频功率放大电路的作用重要是将信号解决器发送过来的信号功率放大,使其信号的功率达到设计规定。此方案中的A/D转换电路重要是由TLC549构成的电压/频率转换电路。89C52单片机是本设计的核心部分。本设计用的是1602LCD显示屏来实现显示,这个电路的实现部分比较简朴。三、硬件电路具体设计3.1 传声器传声器(Microphone)又称话筒,俗称“麦克风”。传声器是将声波转换为相应电信号的传感器。传声器涉及声波接受器和力-电换能器两个部分。由声音导致的空气压力使传感器的振动膜振动,进而经变换器将此机械运动转换成电参量的变化,是噪声测量系统中的一种重要环节。根据膜片感受声压的状况不同,传声器可分为三类:声强式传声器,其膜片的一面感受声压;差压式传声器,其膜片的两面均感受声压,引起膜片振动的力取决于膜片两面差压的大小;压强和差压组合式传声器。在噪声测量中常用的是压强式传声器。通信设备常用到的传声器类型一般是晶体式传声器。晶体式传声器又称压电式传声器,它是运用晶体的压电效应制成的,化工材料酒石酸钾钠和钛酸钡晶体均有较强的压电效应。当晶体的两面受到压力时,在两面间浮现正负电荷,产生某一方向的电动势:当受到相反方向的应力时,晶体两面则产生与受压力相反的电荷和电动势。当晶体受到交变声波的作用时,便产生音频电动势。晶体式传声器按构造的不同可分为膜片式和声电池式两种。膜片式传声器价格低廉、输出电压高,使用以便,考虑元器件的性价比和应用功能选用的是膜片式晶体传声器。膜片式传声器实物外形如图3-1所示。图3-1 传声器实物外形图3.2 信号放大器通过讨论与分析后放大电路如图3-3所示3.3 A/D转换电路的设计TLC549是 TI公司生产的一种低价位、高性能的8位 A/D转换器,它以8位开关电容逐次逼近的措施实现 A/D转换,其转换速度不不小于 17us,最大转换速率为 40000HZ,4MHZ典型内部系统时钟,电源为 3V至 6V。它能以便地采用三线串行接口方式与多种微解决器连接,构成多种便宜的测控应用系统。 TLC549 引脚图及各引脚功能 REF+:正基准电压输入 2.5VREF+Vcc+0.1。 REF:负基准电压输入端,-0.1VREF-2.5V。且规定:(REF+)(REF-)1V。 VCC:系统电源3VVcc6V。 GND:接地端。 CS:芯片选择输入端,规定输入高电平 VIN2V,输入低电平 VIN0.8V。 DATA OUT:转换成果数据串行输出端,与 TTL 电平兼容,输出时高位在前,低位在后。 ANALOGIN:模拟信号输入端,0ANALOGINVcc,当 ANALOGINREF+电压时,转换成果为全“1”(0FFH),ANALOGINREF-电压时,转换成果为全“0”(00H)。 I/O CLOCK:外接输入/输出时钟输入端,同于同步芯片的输入输出操作,无需与芯片内部系统时钟同步。3.4 单片机系统的设计89C51单片机为EPROM型,在实际电路中可以直接互换8051单片机或8751单片机,不仅和8051单片机指令,管脚完全兼容,并且其片内的4K程序存储器是FLASH工艺的。STC89C52是由宏晶公司生产八位单片机。它是一种低功耗高性能的具有8K字节可电气烧录及可擦除的程序ROM的八位CMOS单片机。该器件是用高密度、非易丢失存储技术制造并且与国际工业原则80C51单片机指令系统和引脚完全兼容。综上所述,从使用以便与简化电路以及其性价比等角度来考虑,89C52比较合适的。本系统采用CPU为89C52的单片机,89C52自身带有8K的内存储器,可以在编程器上实现闪烁式的电擦写达几万次以上,比以往常用的8031CPU外加EPROM为核心的单片机系统在硬件上具有更加简朴、以便等长处,并且完全兼容MCS-51系列单片机的所有功能。89C52管脚图如图3-6所示。下面简介89C52的重要管脚功能如下:VCC(40):电源+5V;VSS(20):接地;P0口(32-39):双向I/O口,既可作低8位地址和8位数据总线使用,也可作一般I/O口;P3口(10-17):多用途端口,既可作一般I/O口,也可按每位定义的第二功能操作;P2口(21-28):既可作高8位地址总线,也可作一般I/O口;P1口(1-8): 准双向通用I/O口;RST(9):复位信号输入端;ALE/PROG:地址锁存信号输出端;PSEN:内外程序存储器选择线;XTAL1(19)和XTAL2(18):外接石英晶体振荡器。3.5显示电路的设计本设计中采用1602LCD(并行)显示屏显示。LCD显示屏是单片机应用系统常用的输出器件。LCD的数据由单片机的P0P7口输入,进入LCD后按一定的规律显示出来。LCD显示电路的具体电路如图3-8:四主程序#include"噪声测量.h"#include <intrins.h>#include <stdio.h>#include<math.h>sbit TLC549_CS= P10;/片选信号sbit TLC549_DATAOUT= P11;/数据输入口sbit TLC549_CLK = P12;/时钟信号static unsigned int g_aAdValue8;void delay_us(unsigned char n) /延时子程序while(n) _nop_(); n-; /*- 函数名:ad_conv_tlc549( ) 功 能:AD转换芯片TLC549的实现程序-*/unsigned char ad_conv_tlc549()unsigned char i;unsigned char tmp_data = 0;TLC549_CS = 1; /此时DATA OUT 接口处在高阻态,此时I/O CLK不起作用_nop_();TLC549_CLK = 0;_nop_();TLC549_CS = 0; /等待两个内部时钟上升沿和一种下降沿,单片机确认这一变化,然后自动将前一次转换成果_nop_(); /的最高位(D7)位输出到DATAOUT_nop_();for (i = 0;i < 8;i+)TLC549_CLK = 1;tmp_data = (tmp_data << 1) | TLC549_DATAOUT;TLC549_CLK = 0;TLC549_CS = 1;delay_us(17);return tmp_data;/*-主函数-*/float main_1() float v; while(1) v=ad_conv_tlc549()*1.0/256.0*5.0;v=30*log10(v+1)+0.4;delay_us(200);return v; /*= 1602液晶显示的实验例子 - | DB4-P0.4 | RW-P2.1 | DB5-P0.5 | RS-P2.2 | DB6-P0.6 | E-P2.0 | DB7-P0.7 | -=*/#include <BoeBot.h>#include"噪声测量.h"#define LCM_RW P2_1 /定义引脚#define LCM_RS P2_2#define LCM_E P2_0#define LCM_Data P0#define Busy 0x80 /用于检测LCM状态字中的Busy标记code uint8 a="Intolerance", /无法忍受b="Feel pain",/感到疼痛;c="Nosiy",/很吵;d="Quieter",/较静e="Quiet",/安静f="Very quiet",/极静g="Silent",/无声h="null and void"/无法检测/*- 子函数声明 -*/void Write_Data_LCM(unsigned char WDLCM);void Write_Command_LCM(unsigned char WCLCM,BuysC);void Read_Status_LCM(void);void LCM_Init(void);void Set_xy_LCM(unsigned char x, unsigned char y);void Display_List_Char(unsigned char x, unsigned char y, unsigned char *s);/*= 函数名:Read_Status_LCM() 功 能: 忙检测函数 =*/void Read_Status_LCM(void)unsigned char read=0;LCM_RW = 1;LCM_RS = 0;LCM_E = 1;LCM_Data = 0xff;do read = LCM_Data; while(read & Busy); LCM_E = 0;/*- 函数名:Write_Data_LCM ( ) 功 能: 对LCD 1602写数据 -*/void Write_Data_LCM(unsigned char WDLCM) Read_Status_LCM(); /检测忙 LCM_RS = 1; LCM_RW = 0; LCM_Data &= 0x0f; LCM_Data |= WDLCM&0xf0; LCM_E = 1; /若晶振速度太高可以在这后加小的延时 LCM_E = 1; /延时 LCM_E = 0; WDLCM = WDLCM<<4; LCM_Data &= 0x0f; LCM_Data |= WDLCM&0xf0; LCM_E = 1; LCM_E = 1; /延时 LCM_E = 0;/*- 函数名:Write_Command_ LCM ( ) 功 能: 对LCD 1602写指令 -*/void Write_Command_LCM(unsigned char WCLCM,BuysC) /BuysC为0时忽视忙检测 if (BuysC) Read_Status_LCM(); /根据需要检测忙 LCM_RS = 0; LCM_RW = 0; LCM_Data &= 0x0f; LCM_Data |= WCLCM&0xf0;/传播高四位 LCM_E = 1; LCM_E = 1; LCM_E = 0; WCLCM = WCLCM<<4; /传播低四位 LCM_Data &= 0x0f; LCM_Data |= WCLCM&0xf0; LCM_E = 1; LCM_E = 1; LCM_E = 0;/*- 函数名:LCM_Init() 功 能: 对LCD 1602初始化 -*/void LCM_Init(void) /LCM初始化 LCM_Data = 0; Write_Command_LCM(0x28,0); /三次显示模式设立,不检测忙信号 delay_nms(15); Write_Command_LCM(0x28,0); delay_nms(15);Write_Command_LCM(0x28,0); delay_nms(15);Write_Command_LCM(0x28,1); /显示模式设立,开始规定每次检测忙信号 Write_Command_LCM(0x08,1); /关闭显示 Write_Command_LCM(0x01,1); /显示清屏 Write_Command_LCM(0x06,1); /显示光标移动设立 Write_Command_LCM(0x0C,1); /显示开及光标设立/*- 函数名:Set_xy_LCM () 功 能:设定显示坐标位置-*/void Set_xy_LCM(unsigned char x, unsigned char y) unsigned char address; if( x = 0 ) address = 0x80+y; else address = 0xc0+y; Write_Command_LCM(address,1);/*- 函数名:Display_List_Char() 功 能:按指定位置显示一串字符 -*/void Display_List_Char(unsigned char x, unsigned char y, unsigned char *s) Set_xy_LCM(x,y); while(*s) LCM_Data = *s; Write_Data_LCM(*s); s+; /*- 函数名:dB() 功 能:显示dB程序 -*/void dB()Write_Command_LCM(0x06,1);Write_Command_LCM(0xCe,1);Write_Data_LCM('d');Write_Data_LCM('B');/*- 函数名:wrrite() 功 能:清空显示程序 -*/void wrrite()Write_Data_LCM(' ');/*- 函数名:show_1(float dB) 功 能:数据显示程序 -*/void show_1(float dB)static unsigned char i,j,l,m,n;unsigned char x=6;m=(unsigned char)dB;/取整数位i=m/100;/取百位j=m/10%10;/取十位l=m%10;/取个位n=(unsigned char)(dB-m)*100);/取小数位Write_Command_LCM(0x04,1);Write_Command_LCM(0xcC,1);if(n%10)Write_Data_LCM(n%10+'0');Write_Data_LCM(n/10+'0');Write_Data_LCM('.');x-=3;/从最底小数位显示if(n%10=0&&n/10)Write_Data_LCM(n/10+'0');Write_Data_LCM('.');x-=2;Write_Data_LCM(l+'0');x-;/显示个位if(j|i)Write_Data_LCM(j+'0');x-;/显示十位if(i)Write_Data_LCM(i+'0');x-;/显示百位while(x-)wrrite();/剩余的清空/*- 函数名:zaoying() 功 能:初始界面显示程序 -*/void zaoying()unsigned char a_1="noise-measuring",a_2="OPEN-55092H2"Display_List_Char(0, 0, a_1);/显示noise-measuringDisplay_List_Char(1, 0, a_2);/显示OPEN-55092H2/*- 函数名:show_2(float i) 功 能:显示数据范畴程序 -*/void show_2(float i)uint8 j=16;uint8 *p;if(i<=150)&&(i>130)p=a;/显示无法忍受if(i<=130)&&(i>110)p=b;/显示感到疼痛if(i<=110)&&(i>70)p=c;/显示很吵;if(i<=70)&&(i>50)p=d;/显示较静if(i<=50)&&(i>30)p=e;/显示安静if(i<=30)&&(i>10)p=f;/显示极静if(i<=10)&&(i>=0)p=g;/显示无声if(i>150)p=h;/显示无法检测Write_Command_LCM(0x06,1);Write_Command_LCM(0x80,1);while(*p!='0')Write_Data_LCM(*p);p+;while(j-)wrrite();/*- 函数名:main(void) 功 能:主函数 -*/void main(void) float i; uint8 j=16;LCM_Init(); /LCM初始化zaoying();/显示开始界面 delay_nms();/延时半晌(可不要)Write_Command_LCM(0x06,1);/写一种数地址右移Write_Command_LCM(0xc0,1);/选择第二行while(j-)wrrite();/清空界面dB();/显示dBshow_1(0);show_2(0);/开始显示0 while(1) i= main_1();/调用测量成果while(j-)i+= main_1();/取十七个值相加i/=17;/取平均值show_1(i);/显示数值show_2(i);/显示相应段的噪声限度delay_nms(100);/延时 五调试环节1、用直观法检查电路与否对的,插上芯片,接上电源,用电压法检查各芯片、各引脚电压与否正常。2、用数字万用表测量各引脚之间连接时否正常,把其打到二极管档位,用两只笔分别接触需要测量的引脚,如果万用表发出声音,则两引脚连接正常;反之则不正常。3、使用Keil uVison3编写程序,通过下载器将程序下载到STC89S52芯片上。4、连接好各硬件电路,观测各端口与否认义对的,LCD与否显示正常。观测程序与否对的运营工作,以及测量的成果和实际与否相符合。参照文献1、 童诗白 华成英主编 模拟电子技术基本 高等教育出版社2、 段晨东 主编 单片机原理及接口技术 清华大学出版社3、 雷伏容 张小林 主编 51单片机常用模块设计查询手册 清华大学出版社参照网站资料: www.百度.com结论系统采用51系列单片机为中心器件来设计噪音测量仪系统,实现了能实时监控测噪音的功能,系统设计简朴、实用性强、操作简朴。系统局限性之处就是存在某些数据差别,也许是噪音的采样电路的线性有些不良,引起数据浮现某些差别等。通过这次设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧的掌握都向前迈了一大步。由于使用的是单片机作为核心的控制元件,使得可靠性比较高,功能也比较强大,并且可以随时的更新系统,进行不同状态的组合。但是功能的全面性还不够强。附录1