基于单片机的数控音频功率放大器.docx

上传人:b****5 文档编号:7600161 上传时间:2023-01-25 格式:DOCX 页数:18 大小:337.03KB
下载 相关 举报
基于单片机的数控音频功率放大器.docx_第1页
第1页 / 共18页
基于单片机的数控音频功率放大器.docx_第2页
第2页 / 共18页
基于单片机的数控音频功率放大器.docx_第3页
第3页 / 共18页
基于单片机的数控音频功率放大器.docx_第4页
第4页 / 共18页
基于单片机的数控音频功率放大器.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

基于单片机的数控音频功率放大器.docx

《基于单片机的数控音频功率放大器.docx》由会员分享,可在线阅读,更多相关《基于单片机的数控音频功率放大器.docx(18页珍藏版)》请在冰豆网上搜索。

基于单片机的数控音频功率放大器.docx

基于单片机的数控音频功率放大器

福建师范大学应用科技学院

实训综合设计报告

设计课题:

基于单片机的数控音频功率放大器

专业:

电子信息工程

年级:

2009

组长:

组员:

硬件技术顾问:

指导老师:

 

摘要

音频功率放大器是一种常用的模拟电路,在各种音响设备中有着广泛应用。

传统模拟控制音频功率放大器增益采用电位器控制,具有故障率高,不易与计算机、遥控器等数字电路接口等缺点,相比较起来数字控制音频功率放大器具有明显的优势,在电视机、组合音响、mp3播放器等家电设备中应用非常广泛。

关键词:

单片机、可控增益放大器、液晶

Abstart

Audiopoweramplifierisacommonlyusedanalogcircuit,inallkindsofaudioequipmenthasbeenwidelyused.Traditionalsimulationcontrolaudioamplifiergainthepotentiometercontrol,hasthehighfailure,noteasywiththecomputer,digitalinterfacecircuitandremotecontrolshortcomings,suchas,bycomparisondigitalcontrolaudiopoweramplifierhasobviousadvantagesintelevision,combinedsound,mp3playershomeapplianceequipmentiswidelyused.

Keywords:

Single-chipmicrocomputer、Controllablegainamplifier、LCD

 

摘要------------------------------------------------------------------------------1

Abstart--------------------------------------------------------------------------2

前言------------------------------------------------------------------------------3

1、总体设计--------------------------------------------------------------------4

1.1、电路功能基本概述--------------------------------------------5

2、硬件设计--------------------------------------------------------------------6

2.1、LCD显示电路-------------------------------------------------6

2.2、单片机接口电路-----------------------------------------------7

2.3、功率放大电路--------------------------------------------------7

3、软件设计

3.1、模块设计--------------------------------------------------------8

3.2、主程序流程图--------------------------------------------------8

3.3、显示子程序流程图--------------------------------------------9

4、总结---------------------------------------------------------------------------10

5、任务分工---------------------------------------------------------------------11

6、附录---------------------------------------------------------------------------11

7、实物图------------------------------------------------------------------------23

 

前言

音频功率放大器在我们的生活中无处不在,传统的音频功率放大器是用电位器调节音量的大小以及音调的控制。

随着电子技术的不断发展,而如今的音频功率放大器已经向数字方向发展,从使用方面更能满足人们的需求。

无限控制音频的产品也越来越多,本次设计是基于DAC0832来控制放大器的增益,辅以STC89S52单片机进行控制,增益的调整和控制是通过给DAC0832数据口不同的值实现增益的控制,较好地实现了可控增益放大器。

利用DAC0832容易实现对放大器增益的控制,且具有电路简单、控制方便、成本低廉等优点。

可控增益放大器可应用于采集系统中的信号调理或要求放大器增益能程控的场合。

1、总体设计

1.1、电路基本功能概述

基于单片机的数控音频功率放大器,采用数模DAC0832进行增益的控制,用STC89C52单片机进行控制,通过数模转换器能较好地实现了增益放大。

其最大特色就在于实现了用数字的方法控制模拟电路,即音量和音调的控制。

电路基本结构如下:

Vi

利用数模转换器能较容易实现对放大器增益的控制,且具有电路简单、控制方便、成本低廉等优点。

通过采取措施也可实现对放大器增益较高精度的控制,增益的调整是通过给DAC0832不通的数据,然后DAC0832的Iout1和Iout2输出不同的电流,再经过一级运放把电流输出转化为电压输出,这样就达到了增益的控制。

基于STC89C52单片机的数控音频功率放大器的硬件设计,首先采用分块设计的方法。

将整个系统分为:

MCU主控电路、LCD显示电路模块、按键控制模块,其中单片机为主控制器,用来对按键进行定时扫描、利用LCD1602进行音量的动态显示,通过按键进行实时控制,实现音量的控制。

1)主控制电路如下图所示:

 

2)DAC0832与功放电路如下图所示:

2、硬件设计

2.1、LCD显示电路

LCD电路采用1602液晶显示,通过主控制器STC89C52实时检测按键,不断更新1602的屏幕,达到人机交互的友好界面。

如下是电路连接图:

2.2、单片机接口电路

DAC0832是数模转换器,与主控制器MCU的接口电路非常简单,只要DAC0832的数据口与主控器的I/O口相连即可。

通过改变数据口的数据,即输出不通的增益,从而达到控制音量的大小。

电路图如下所示:

2.3、功率放大电路

功率放大器我们采用TDA2030作为信号放大,它的输出功率大,采用双电源供电,且噪声低、保真度高。

开环增益均在80dB以上,闭环增益可在26~40dB范围内调整;同时输入阻抗高、以及工作频带宽、可靠性好;再加上体积小,外围元件少,设计灵活。

因此成为我们设计的最佳首选。

电路原理图如下:

 

3、软件设计

3.1、模块设计

数控音频功率放大器的软件设计,分三个模块,即按键控制程序、LCD显示程序和DAC0832控制程序。

其中按键控制程序中通过实时检测,来读取键盘。

而显示程序则根据按键进行音量动态显示。

3.2、主程序流程图

主控制流程中,进行相关变量的定义及其初始化,并进行相关内容的显示

 

 

3.3、显示子程序流程图

1)按键:

通过实时检测按键,不断更新页面显示,其中有两个按键,一个是增键,另外一个是减键,并进行按键消抖。

流程图如下:

i

NONO

YESYES

2)

3)

4)

 

2)LCD液晶显示:

LCD1602的功能是显示数字和字符,在使用之前必须初始化后才能使用,通过编写1602的读写程序即可使用。

以下是LCD初始化的流程图:

开始

延迟15ms

写入指令38H

写入指令01H

写入指令0CH

初始化结束

4、总结

通过此次设计,使我们对电子设计有全新的认识,在不断的学习和运用当中,我学会了从“整体到局部,再从局部到整体”的设计思想,逐步细化的程序设计方法。

与此同时,我们也感受到了我们所学知识的肤浅,让我们感触最深的是模拟电路是一门值得研究的学科,要想做出一个模拟电路来需要付出许多的汗水,由于模拟电路本身的特点,理论值与实际情况往往有很大的区别。

虽然还有许多不足的地方,但这次的实训极大地提高了我们各方面的能力,为以后的进一步学习和工作奠定了坚实的基础。

在此也要感谢这次实训所有帮助过我们的老师和同学!

是他们让我们的作品得以成功的实现。

 

5、任务分工:

系统方案设计、PCB原理图绘制及硬件调试,并协助软件调试;

作品报告的整理及元件采购;

软件仿真调试;

6、附录

一、

Main.C

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

**作品功能:

在LCD1602显示音量

**程序作者:

**编写时间:

2011/12/19

**修改时间:

**软件版本:

1.0.0

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

#include"../src/config.h"

#include

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

字符数组及变量的定义

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

uchar8codebegin[]="ToshareMusic!

";

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

函数功能:

主控程序

入口参数:

出口参数:

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

voidmain()

{

uchar8idatabuf[20];

uchar8temp;

lcd_init();

lcd_clr();

Voice=0x00;

P2=0x00;

display(0x80,begin);

while

(1)

{

temp=key();

sprintf(buf,"Thevoice:

%02ddB",(uint16)temp);

display(0xc0,buf);

}

}

二、

1602.C

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

名称:

液晶1602

内容:

显示声音分贝程序

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

#include"../src/config.h"

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

定义控制端口

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

sbitRS=P3^0;/*寄存器选择:

为1时选择数据寄存器,为0时选择指令寄存器*/

sbitRW=P3^1;/*为读信号线*/

sbitEN=P3^2;/*为使能端*/

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

函数功能:

1602写命令程序

入口参数:

cmd

出口参数:

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

voidwrite_cmd(uchar8cmd)

{

RS=0;

RW=0;

P0=cmd;

EN=1;

delay(10);

EN=0;

}

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

函数功能:

1602写数据程序

入口参数:

dat

出口参数:

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

voidwrite_data(uchar8dat)

{

RS=1;

RW=0;

P0=dat;

EN=1;

delay(20);

EN=0;

}

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

函数功能:

1602初始化程序

入口参数:

出口参数:

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

voidlcd_init(void)

{

write_cmd(0x38);

write_cmd(0x06);

write_cmd(0x0c);

delay(100);

}

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

函数功能:

1602清屏程序

入口参数:

出口参数:

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

voidlcd_clr(void)

{

write_cmd(0x01);

delay(100);

}

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

函数功能:

1602显示程序

入口参数:

addr,*p

出口参数:

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

voiddisplay(uchar8addr,uchar8*p)

{

write_cmd(addr);

while(*p!

='\0')

{

write_data(*(p++));

}

}

三、

Key.C

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

名称:

按键程序

内容:

控制显示界面

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

#include"../src/config.h"

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

定义按键端口

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

sbitkey1=P1^6;

sbitkey2=P1^7;

uchar8Voice;

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

函数功能:

按键程序

入口参数:

出口参数:

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

uchar8key()

{

if(key1==0)

{

delay(20000);

if(key1==0)

{

Voice+=10;

P2+=1;

if(Voice>=80)

{

Voice=80;

P2=0x0f;

}

}

}

if(key2==0)

{

delay(20000);

if(key2==0)

{

Voice-=10;

P2-=1;

if(Voice==246)

{

Voice=0;

P2=0X01;

}

}

}

returnVoice;

}

四、

Config.h

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

名称:

声明函数

内容:

对函数进行声明,为全局服务

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

#include

#include

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

类型宏定义的声明

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

#defineuchar8unsignedchar

#defineuint16unsignedint

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

延时函数的声明

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

voiddelay(uint16t);

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

1602函数的声明

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

voidlcd_clr(void);

voidlcd_init(void);

voidwrite_cmd(uchar8cmd);

voidwrite_data(uchar8dat);

voiddisplay

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1