基于C51的噪音检测器设计与制作_第1页
基于C51的噪音检测器设计与制作_第2页
基于C51的噪音检测器设计与制作_第3页
基于C51的噪音检测器设计与制作_第4页
基于C51的噪音检测器设计与制作_第5页
已阅读5页,还剩22页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南商务职业技术学院毕业设计

目录

1产品功能分析.....................................................1

2设计方案遴选.....................................................1

2.1单片机的选择...............................................1

2.2通讯方式的选择.............................................1

2.3系统框图设计...............................................2

3产品硬件设计.....................................................2

3.1STC89C52RC单片机核心电路设计...............................2

3.2按键电路设计...............................................3

3.3LCD1602液晶显示模块电路....................................3

3.4分贝检测器模块.............................................4

4产品软件设计.....................................................6

4.1主程序流程图...............................................6

4.2LCD1602液晶显示程序设计....................................7

4.3下位机程序设计.............................................8

5产品使用说明.....................................................8

5.1产品装配图.................................................8

5.2产品调试...................................................8

5.3产品使用说明...............................................9

6产品设计技术标准................................................10

参考资料..........................................................11

附录..............................................................12

附录1元器件清单..............................................12

附录2电路原理图..............................................13

附录3PCB设计图..............................................14

附录4产品实物图..............................................15

附录5主程序代码.............................................17

湖南商务职业技术学院毕业设计

基于C51的噪音检测器设计与制作

1产品功能分析

本设计的任务是要完成基于单片机的环境噪声监测仪的设计,它是以单片

机为核心、采用V/F转换技术的便携式环境噪声测量仪,实现环境噪声的实时

测量和LED数字显示,给出噪声水平的大致指示。

基于本次任务,该设计方案由硬件和软件两部分组成。噪声测量仪的硬件

电路系统,包括AD转换电路以及单片机系统的硬件电路、LED显示电路等。软

件部分主要是用单片机语言编程,实现对信号的采集、转换及显示。

2设计方案遴选

在完成硬件电路前,必须选择合适的元器件来完成,方便我们来实现所需

的功能。

一个完整的噪音检测系统是由很多个模块组成,有各式各样的模块可供我

们选择,从经济方面和产品兼容性方面来考虑适合的模块,由显示、报警和测

试分贝值功能组成。

2.1单片机的选择

我选择的是使用51单片机,相比于STM32单片机,操作上更容易上手。

它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,处理对象

不是字或字节而是位。不但能对片内某些特殊功能寄存器的某位进行处理,如

传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用

起来得心应手。并且在片内RAM区间还特别开辟了一个双重功能的地址区间,

使用极为灵活,这一功能无疑给使用者提供了极大的方便。

2.2通讯方式的选择

串口(Serialport)是一种非常通用的用于设备之间通信的接口,也广泛

用于设备以及仪器仪表之间的通信。所以在通讯方式上我选择的是串口通信,

那些没有串口的设备,在其开发时,常见方法也是通过串口连接到进行开发的

1

湖南商务职业技术学院毕业设计

电脑上的,因此串口是设备进行通信的最简单最容易的方法。另外串口的使用

成本较低。

2.3系统框图设计

噪声

LCD1602液晶

ADC0832单片机

声光报警

按键

图2-1系统框图

3产品硬件设计

3.1STC89C52RC单片机核心电路设计

STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具

有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是

做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥

有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制

应用系统提供高灵活、超有效的解决方案。

单片机最小系统由电源接口,开关,时钟电路,下载接口,复位电路和

STC89c52单片机组成。

2

湖南商务职业技术学院毕业设计

图3-1单片机最小系统原理图

3.2按键电路设计

当在89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机

内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状

态)复位电路通常采用上电自动复位和按钮复位两种方式,本设计采用按键复

位的方式。

在程序中利用按键电路实现了对噪音检测阈值的加减调整,并且长按按钮

可以实现大幅度的阈值调整,加快调整速度。

图3-2按键电路原理图

3.3LCD1602液晶显示模块电路

LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符

型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,

3

湖南商务职业技术学院毕业设计

以及少量电阻、电容元件和结构件等装配在PCB板上而组成。

该显示屏的优点是耗电量低、体积小、辐射低。LCD1602主要用来显示数

字、字母、图形以及少量自定义字符。可以显示2行16个字符,拥有16个

引脚,其中8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压

为5V,并且带有字符对比度调节V0和背光源AK。

图3-3LCD1602显示电路原理图

ADC0832是一款模拟信号转数字信号的数模转换器,它可以将音量检测模

块收集到的数据进行转换为数字信号并显示在液晶显示器上面。

图3-4ADC0832模数转换电路原理图

3.4分贝检测器模块

分贝检测器模块是一款输出模拟量的传感器,该模块对震动很敏感,测量

时要放在平稳的位置。使用这种传感器的一般先将ADC模块与某引脚相连,把

模拟信号转化为数字信号,再去接入所要测试的地方,ADC模块便可以经过换

算得到所要测试部位的电位。模拟量和电位是线性关系,单片机的ADC是12

位逐次逼近型的模拟数字转换器,按照比例即可通过不同噪声得到输出不同的

电压。

4

湖南商务职业技术学院毕业设计

图3-5分贝检测器模块实物图

图3-6分贝检测器模块电路原理图

5

湖南商务职业技术学院毕业设计

4产品软件设计

4.1主程序流程图

开始

初始化

读AD数据

液晶显示

按键处理

Y

超过阈值?声光报警

N

结束

图4-1主程序流程图

6

湖南商务职业技术学院毕业设计

4.2LCD1602液晶显示程序设计

图4-2LCD1602液晶显示程序设计

7

湖南商务职业技术学院毕业设计

4.3下位机程序设计

图4-3下位机程序编译界面

5产品使用说明

5.1产品装配图

音量检

测器蜂鸣器

液晶显示屏

按钮

电源开关

STC89C52RC

输入

图5-1产品装配图

5.2产品调试

第一步,检查单片机所有的部件都手工焊接到万能板之上,所以需要对每

一个焊点进行仔细检查,确保没有虚焊漏焊,以及是否有毛刺等。

8

湖南商务职业技术学院毕业设计

第二步,使用万能表进行测试板件,查看各焊点连接状况是否合格,再检

查各电源线与地线是否有短路的现象。

第三步,对产品进行上电检查。

第四步,将编写的程序烧录到单片机之中。

图5-2调试效果图

5.3产品使用说明

1、接上电源上电,再按下电源开关,音量检测器自动开始工作。

2、若是被测物体在50分贝之外,液晶显示器只显示被测物体的分贝值。

3、若是被测物体在50分贝之内,蜂鸣器开始报警,液晶显示器同样显示

被测物体的分贝值。

4、可以利用万能板上的按键模块对安全阈值距离进行设置,假如设置安

全阈值距离是50分贝,超声波测距测得被测物体在进入板件50分贝范围之内

9

湖南商务职业技术学院毕业设计

便开始报警。

6产品设计技术标准

[1]J-STD-001E电气与电子组件的焊接要求

[2]IPC-A-610D(中文版),IPC-A-610E电子组件的可接受性要求

[3]IPC-7711/21电子组件和电路板的返工&返修

[4]GB/T11457-2006信息技术软件工程术语

[5]GB/T8566-2007信息技术软件生存周期过程标准

[6]GB/T8567-2006计算机软件文档编制规范

10

湖南商务职业技术学院毕业设计

参考资料

[1]马大猷等.声学手册[M].北京:科学出版社,1983

[2]何立民.单片机应用文集(2)[M].北京:京航空航天大学出版社,1991

[3]杨振江.A/D、D/A转换器接口技术及实用线路[M].西安:西安电子科技大学出版社,1996

[4]刘传玺等.自动检测技术[M].北京:机械工业出版社,2008

[5]周杏鹏等.检测技术及系统设计[M].南京:东南大学出版社,1996

[6]张毅刚等.单片机原理及应用[M].哈尔滨:哈尔滨工业大学出版社,2004

[7]蔡美琴等.MCS—51系列单片机系列及其应用[M].北京:高等教育出版社,1992

[8]张毅刚,刘杰.MCS-51单片机原理及应用[M].哈尔滨:哈尔滨工业大学出版社,20

11

湖南商务职业技术学院毕业设计

附录

附录1元器件清单

附表1-1元器件清单

12

湖南商务职业技术学院毕业设计

附录2电路原理图

附图2-1产品原理图

13

湖南商务职业技术学院毕业设计

附录3PCB设计图

附图3-1产品PCB设计图

14

湖南商务职业技术学院毕业设计

附录4产品实物图

附图4-1产品实物图正面

15

湖南商务职业技术学院毕业设计

附图4-2产品实物图反面

16

湖南商务职业技术学院毕业设计

附录5主程序代码

Main.c文件

#include<REGX52.H>

#include"ADC0832.h"

#include"LCD1602.h"

#include"eeprom52.h"

uintNoise_h=0;

uintAD_dat=0;

uintmmm=0;

uintNoise=0;

ucharms=0;

sbitbeep=P2^0;

sbitled0=P1^6;

sbitled1=P1^4;

sbitkey1=P3^5;

sbitkey2=P3^6;

bitkey1_flag=0;

bitkey2_flag=0;

ucharsec=0;

ucharsec1=0;

bitbeep1=0;

bitmemory_flag=0;

voidmemroy()

{

if(memory_flag)

{memory_flag=0;

SectorErase(0x2000);

byte_write(0x2000,Noise_h/256);

byte_write(0x2001,Noise_h%256);

}

}

voidread_memory()

{

Noise_h=byte_read(0x2000)*256+byte_read(0x2001);

if(Noise_h>999)

{

17

湖南商务职业技术学院毕业设计

Noise_h=55;

}

}

voidkey_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)

{

18

湖南商务职业技术学院毕业设计

key2_flag=1;

memory_flag=1;

}

sec1=2;

}

}

voiddisplay()

{

LCD1602_write(0,0x80);

LCD1602_writebyte("Noise:");

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("Noise_h:");

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");

}

voidmain()

{

uchari;

TMOD=0x01;

TH0=0x3c;

TL0=0xb0;

ET0=1;

TR0=1;

EA=1;

LCD1602_cls();

read_memory();

while(1)

{

memroy();

display();

if(i<80)

{i++;

mmm=mmm+A_D(0)/0.51;

19

湖南商务职业技术学院毕业设计

}

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;

}

}

}

voidtime0()interrupt1

{

TH0=0x3c;

TL0=0xb0;

ms++;

key_dispose();

if(beep1)beep=~beep;

elsebeep=1;

if(ms>=20)

{

ms=0;

if(sec!=0)sec--;

if(sec1!=0)sec1--;

}

}

20

湖南商务职业技术学院毕业设计

ADC0832.h

/*****************************************************

功能:将模拟信号转换成数字信号

***************************************************/

sbitADC0832_CS=P1^2;

sbitADC0832_CLK=P1^0;

sbitADC0832_DIO=P1^1;

unsignedintA_D(unsignedcharDI)

{

unsignedchari,dat;

ADC0832_CS=1;//一个转换周期开始

ADC0832_CLK=0;//为第一个脉冲作准备

ADC0832_CS=0;//CS置0,片选有效

ADC0832_DIO=1;//DIO置1,规定的起始信号

ADC0832_CLK=1;//第一个脉冲

ADC0832_CLK=0;//第一个脉冲的下降沿,此前DIO必须是高电平

ADC0832_DIO=1;//DIO置1,通道选择信号

ADC0832_CLK=1;//第二个脉冲,第2、3个脉冲下沉之前,DI必须跟别

输入两位数据用于选择通道,这里选通道CH0

ADC0832_CLK=0;//第二个脉冲下降沿

ADC0832_DIO=DI;//DI置0,选择通道0

ADC0832_CLK=1;//第三个脉冲

ADC0832_CLK=0;//第三个脉冲下降沿

ADC0832_DIO=1;//第三个脉冲下沉之后,输入端DIO失去作用,应置1

ADC0832_CLK=1;//第四个脉冲

for(i=0;i<8;i++)//高位在前

{

ADC0832_CLK=1;//第四个脉冲

ADC0832_CLK=0;

dat<<=1;//将下面储存的低位数据向右移

dat|=(unsignedchar)ADC0832_DIO;//将输出数据DIO通过或运算储存

在dat最低位

}

ADC0832_CS=1;//片选无效

returndat;//将读书的数据返回

}

eeprom52.h

#ifndef_EEPROM52_H_

21

湖南商务职业技术学院毕业设计

#define_EEPROM52_H_

#include<intrins.h>

/********STC89C51扇区分布*******

第一扇区:1000H--11FF

第二扇区:1200H--13FF

第三扇区:1400H--15FF

第四扇区:1600H--17FF

第五扇区:1800H--19FF

第六扇区:1A00H--1BFF

第七扇区:1C00H--1DFF

第八扇区:1E00H--1FFF

*****************/

/********STC89C52扇区分布*******

第一扇区:2000H--21FF

第二扇区:2200H--23FF

第三扇区:2400H--25FF

第四扇区:2600H--27FF

第五扇区:2800H--29FF

第六扇区:2A00H--2BFF

第七扇区:2C00H--2DFF

第八扇区:2E00H--2FFF

*****************/

/********STC89C54扇区分布*******

第一扇区:08000H

*****************/

#defineRdCommand0x01//定义ISP的操作命令

#definePrgCommand0x02

#defineEraseCommand0x03

#defineError1

#defineOk0

#defineWaitTime0x01//定义CPU的等待时间

sfrISP_DATA=0xe2;//寄存器申明

sfrISP_ADDRH=0xe3;

sfrISP_ADDRL=0xe4;

sfrISP_CMD=0xe5;

sfrISP_TRIG=0xe6;

sfrISP_CONTR=0xe7;

22

湖南商务职业技术学院毕业设计

/*================打开ISP,IAP功能=================*/

voidISP_IAP_enable(void)

{

EA=0;/*关中断*/

ISP_CONTR=ISP_CONTR&0x18;/*0001,1000*/

ISP_CONTR=ISP_CONTR|WaitTime;/*写入硬件延时*/

ISP_CONTR=ISP_CONTR|0x80;/*ISPEN=1*/

}

/*===============关闭ISP,IAP功能==================*/

voidISP_IAP_disable(void)

{

ISP_CONTR=ISP_CONTR&0x7f;/*ISPEN=0*/

ISP_TRIG=0x00;

EA=1;/*开中断*/

}

/*================公用的触发代码====================*/

voidISPgoon(void)

{

ISP_IAP_enable();/*打开ISP,IAP功能*/

ISP_TRIG=0x46;/*触发ISP_IAP命令字节1*/

ISP_TRIG=0xb9;/*触发ISP_IAP命令字节2*/

_nop_();

}

/*====================字节读========================*/

unsignedcharbyte_read(unsignedintbyte_addr)

{

EA=0;

ISP_ADDRH=(unsignedchar)(byte_addr>>8);/*地址赋值*/

ISP_ADDRL=(unsignedchar)(byte_addr&0x00ff);

ISP_CMD=ISP_CMD&0xf8;/*清除低3位*/

ISP_CMD=ISP_CMD|RdCommand;/*写入读命令*/

ISPgoon();/*触发执行*/

ISP_IAP_disable();/*关闭ISP,IAP功能*/

EA=1;

return(ISP_DATA);/*返回读到的数据*/

}

/*==================扇区擦除========================*/

voidSectorErase(unsignedintsector_addr)

{

unsignedintiSectorAddr;

iSectorAddr=(sector_addr&0xfe00);/*取扇区地址*/

ISP_ADDRH=(unsignedchar)(iSectorAddr>>8);

23

湖南商务职业技术学院毕业设计

ISP_ADDRL=0x00;

ISP_CMD=ISP_CMD&0xf8;/*清空低3位*/

ISP_CMD=ISP_CMD|EraseCommand;/*擦除命令3*/

ISPgoon();/*触发执行*/

ISP_IAP_disable();/*关闭ISP,IAP功能*/

}

/*====================字节写========================*/

voidbyte_write(unsignedintbyte_addr,unsignedcharoriginal_data)

{

EA=0;

//SectorErase(byte_addr);

ISP_ADDRH=(unsignedchar)(byte_addr>>8);/*取地址*/

ISP_ADDRL=(unsignedchar)(byte_addr&0x00ff);

ISP_CMD=ISP_CMD&0xf8;/*清低3位*/

ISP_CMD=ISP_CMD|PrgCommand;/*写命令2*/

ISP_DATA=original_data;/*写入数据准备*/

ISPgoon();/*触发执行*/

ISP_IAP_disable();/*关闭IAP功能*/

EA=1;

}

#endif

LCD1602.h

#ifndef_LCD1602_H_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论