基于单片机的数控音频功率放大器.docx
- 文档编号:29648021
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:21
- 大小:352.35KB
基于单片机的数控音频功率放大器.docx
《基于单片机的数控音频功率放大器.docx》由会员分享,可在线阅读,更多相关《基于单片机的数控音频功率放大器.docx(21页珍藏版)》请在冰豆网上搜索。
基于单片机的数控音频功率放大器
基于单片机的数控音频功率放大器
实训综合设计报告
设计课题:
基于单片机的数控音频功率放大器
专业:
电子信息工程
年级:
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初始化的流程图:
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(uchar8addr,uchar8*p);
/*****************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数控 音频 功率放大器