1891基于单片机分贝采集和显示控制系统设计【毕设课设】

摘要
本文介绍了一种基于AT89C52单片机的分贝采集与显示控制系统设计。该系统能够实时采集声音分贝,通过LCD液晶进行显示,并具备声音分贝设定与超限提示功能。系统包含液晶显示电路、分贝传感器电路、单片机电路、红外模拟开关、报警电路、电源电路、按键电路、蜂鸣器电路以及LED指示电路等。本文将详细阐述系统的设计与实现过程。

关键词:AT89C52单片机;分贝采集;LCD显示;声音分贝设定;超限提示

一、引言

随着科技的不断发展,声音分贝的实时监测与控制变得愈发重要。在工业、医疗、环境等领域,都需要对声音分贝进行准确测量和有效控制。因此,设计一种基于单片机的分贝采集与显示控制系统具有重要意义。本文采用AT89C52单片机为核心控制器,结合相关电路模块,实现了声音分贝的实时采集、显示以及超限提示功能。

二、系统总体设计

本系统主要由AT89C52单片机、液晶显示电路、分贝传感器电路、红外模拟开关、报警电路、电源电路、按键电路、蜂鸣器电路以及LED指示电路等组成。系统通过单片机控制各个电路模块的工作,实现声音分贝的采集、处理、显示及超限提示等功能。

三、硬件电路设计

1. 单片机电路

AT89C52单片机作为系统的核心控制器,负责接收传感器信号、处理数据、控制液晶显示以及触发报警电路等。单片机的引脚连接了各个电路模块,实现数据的传输与控制。

2. 液晶显示电路

液晶显示电路用于实时显示采集到的声音分贝值。通过单片机向液晶模块发送指令和数据,实现分贝值的动态显示。

3. 分贝传感器电路

分贝传感器电路负责采集环境中的声音分贝值,并将信号转换为单片机可识别的电信号。传感器选用高灵敏度的声音传感器,确保测量结果的准确性。

4. 红外模拟开关

红外模拟开关用于实现远程控制功能。通过红外遥控器发送指令,单片机接收到指令后执行相应的操作,如设置分贝阈值、开启/关闭系统等。

5. 报警电路

当采集到的声音分贝值超过设定的阈值时,报警电路将被触发。报警电路包括蜂鸣器和LED指示灯,通过发出声音和闪烁灯光提醒用户。

6. 电源电路

电源电路为整个系统提供稳定的工作电压。通过电源转换模块将外部电源转换为系统所需的直流电压,确保各电路模块的正常工作。

7. 按键电路

按键电路用于实现手动设置分贝阈值、切换显示模式等功能。用户通过按下不同的按键,向单片机发送相应的指令,实现相应的操作。

四、软件设计

软件设计主要包括单片机程序的编写与调试。程序主要实现以下功能:初始化各电路模块、实时采集声音分贝值、处理数据、控制液晶显示、检测声音分贝是否超限以及触发报警电路等。

五、系统测试与结果分析

在系统搭建完成后,进行了系统测试与结果分析。通过实际测量不同环境下的声音分贝值,验证系统的准确性和可靠性。测试结果表明,本系统能够准确采集声音分贝值,并在超过设定阈值时及时发出报警提示。

六、结论

本文设计了一种基于AT89C52单片机的分贝采集与显示控制系统。通过合理的硬件电路设计和软件编程,实现了声音分贝的实时采集、显示以及超限提示功能。系统具有结构简单、功能完善、可靠性高等特点,可广泛应用于需要声音分贝监测与控制的场合。

#include <reg52.h> /* 包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 */
#include "intrins.h"

#define     u8		unsigned char
#define     u16		unsigned int
#define     uchar	unsigned char
#define     uint	unsigned int

uchar	yushe_wendu	= 50;           /* 温度预设值 */
uchar	yushe_yanwu	= 100;          /* 采样预设值 */
uint	wendu;                          /* 温度值全局变量 */
uchar	yanwu;                          /* 用于读取ADC数据 */

/* 运行模式 */
uchar Mode = 0;                         /* =1是设置温度阀值  =2是设置采样阀值	=0是正常监控模式 */
/* 管脚声明 */
sbit	Led_Reg		= P2 ^ 2;       /* 红灯 */
sbit	Led_Yellow	= P2 ^ 4;       /* 黄灯 */
sbit	Buzzer		= P2 ^ 0;       /* 蜂鸣器 */
sbit	Fan		= P3 ^ 3;       /*  */
sbit	Motor		= P2 ^ 5;


/********************************************************************
 * 名称 : delay_1ms()
 * 功能 : 延时1ms函数
 * 输入 : q
 * 输出 : 无
 ***********************************************************************/
void delay_ms( uint q )
{
	uint i, j;
	for ( i = 0; i < q; i++ )
		for ( j = 0; j < 110; j++ )
			;
}


/***********************************************************************************************************
*  LCD1602相关函数
***********************************************************************************************************/

/* LCD管脚声明 (RW引脚实物直接接地,因为本设计只用到液晶的写操作,RW引脚一直是低电平) */
sbit	LCDRS	= P2 ^ 7;
sbit	LCDEN	= P2 ^ 6;
sbit	D0	= P0 ^ 0;
sbit	D1	= P0 ^ 1;
sbit	D2	= P0 ^ 2;
sbit	D3	= P0 ^ 3;
sbit	D4	= P0 ^ 4;
sbit	D5	= P0 ^ 5;
sbit	D6	= P0 ^ 6;
sbit	D7	= P0 ^ 7;


/* LCD延时 */
void LCDdelay( uint z )    /* 该延时大约100us(不精确,液晶操作的延时不要求很精确) */
{
	uint x, y;
	for ( x = z; x > 0; x-- )
		for ( y = 10; y > 0; y-- )
			;
}

。。部分代码

资料下载地址:

https://docs.qq.com/doc/p/ffc421513a628b30450ae742547c0b850456d7c8

 

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值