基于单片机的65536级音量控制器.docx
《基于单片机的65536级音量控制器.docx》由会员分享,可在线阅读,更多相关《基于单片机的65536级音量控制器.docx(19页珍藏版)》请在冰豆网上搜索。
基于单片机的65536级音量控制器
《单片机原理及应用》
课程设计报告书
课题名称
基于单片机的65536级音量控制器设计
姓名
学号
专业
电气工程及其自动化
指导教师
机电与控制工程学院
2014年6月20日
单片机课程设计任务书
题目
基于单片机的65536级音量控制器设计
主要设计内容
1、本实验采用STC89C52单片机作为控制器件
2、音量的控制采用数模转换电路
3、蜂鸣器的播放采用三极管放大原理来驱动
设计要求
1、用C语言进行编译,并能说明解决编译过程中的遇到的问题
2、能够实现蜂鸣器的音量控制
工作量
1、完成设计的相关要求
2、对相关硬件软件进行调试
3、工作要求附有附录包括源程序代码和电路图
参考文献
1、杨振江,单片机原理与实践指导[1],中国电力出版社,2008年8月
2、杨振江,流行集成电路程序设计与实例[2],西安电子科技大学出版社,2009年2月
3、张毅刚,新编MCS51单片机应用设计(第3版)[5],哈尔滨工业大学出版社,2008年4月
4、谭浩强,C程序设计(第3版),清华大学出版社,2005年2月
5、严天峰,单片机应用系统设计与仿真调试,北京航空航天大学出版社,2005年8月
6、姚年春,PROTEL99SE基础教程,人民邮电出版社,2009年4月
摘要
随着电子技术的飞速发展,现代电子产品几乎渗透了社会的各个领域,音频功放在日常生活中更是随处可见,除了传统的旋钮式音量调节外,数字调节音量也越来越常见。
同时在一些特殊的应用中,数字调节音量有着无可比拟的优势。
本文设计使用了数模转换芯片,辅以STC89C52单片机进行控制,增益的调整和控制是通过数模转换芯片中输出的不同的电压以及软件的进一步修正来达到的,较好的实现了数控音频信号,可应用于要求放大器增益可程序控制等场合。
关键词:
单片机数模转换芯片可控增益放大器
引言1
1方案设计2
1.1方案一2
1.2方案二2
2硬件部分3
2.1芯片介绍3
2.1.1STC89C51单片机3
2.1.2三极管芯片(S9012)5
2.1.3DAC0832芯片5
2.1.4UA741芯片6
2.1.5ICL7660芯片6
2.1.6LM324芯片7
2.2硬件电路设计8
2.2.1单片机系统模块电路的设计8
2.2.2数模转换模块的设计9
2.2.3三极管发大模块设计9
3软件部分10
3.3.1基本程序流程图......................................................10
3.3.2调试与测试.........................................................11
结论11
总电路图12
作品完整图12
参考文献13
附录A13
附录B14
引言
随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机具有集成度高,通用性好,功能强,特别是体积小、重量轻、耗能低、可靠性高、抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。
传统的电位器控制音量高低精度差,单片机的出现使得数据处理音量和控制精度问题能够得到很好的解决。
因此,现在结合学习过的知识制作了一个简易的基于单片机的音量控制器,其有以下的功能:
基本的功能:
a、使用单片机为核心设计和制作65536级音量控制器;
b、当用手按一下按键时,数模转换芯片输出的电压增加,单片机输出的音频通过放大器,音量变大;
c、当用手按一下另一个按键时,数模转换芯片输出的电压减少,单片机输出的音频通过放大器,音量变小;
1方案设计
本次课程设计,我得到题目之后,经过多方查找资料,包括从图书馆、网络与同学和老师交流等等,最终确定了两套较为可行的方案,分别是:
1.1方案一
在方案一中,我们将使用单片机为主控芯片并以数字电位器的电路模块设计,具体方案图如下所示:
图1.1方案一设计框图
1.2方案二
在选题要求中,我将使用单片机作为主控芯片并以数模转换芯片的电路模块设计,具体方案图如下所示:
图1.2方案二设计框图
筛选资料并经过对这两个方案的对比和论证,我觉得方案二是两者中最好的,因为在学校里我们接触得最多的是52单片机,相对于数字电位器电路而言,数模转换电路我比较熟悉,因此最终确定方案为方案二。
2硬件部分
为了完成上面的相应功能,硬件部分主要的涉及了三部分,分别是:
52单片机核心信号处理模块,数模转换模块和三极管发大模块。
2.1芯片介绍
2.1.1STC89C52单片机
STC89C52是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-52指令系统及80C52引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
STC89C52具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,STC89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
(1)主要特性:
•8031CPU与MCS-51兼容
•4K字节可编程FLASH存储器(寿命:
1000写/擦循环)
•全静态工作:
0Hz-33MHz
•三级程序存储器保密锁定
•128*8位内部RAM
•32条可编程I/O线
•两个16位定时器/计数器
•6个中断源
•可编程串行通道
•低功耗的闲置和掉电模式
•片内振荡器和时钟电路
(2)管脚说明:
STC89S52的管脚图如下:
STC89C52的管脚图
VCC:
供电电压
GND:
接地
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1:
P1口作为第八位地址接收。
P2:
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3:
P3口可用可用作普通的I/O口,同时也可使用其第二的功能。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
/PSEN:
外部程序存储器的选通信号。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2.1.2三极管芯片(S9012)
三极管,是半导体基本元器件之一,具有电流放大作用,是电子电路的核心元件。
三极管是在一块半导体基片上制作个相距很近的PN结,两个PN结把正块半导体分成三部,中间部分是基区,两侧部分是发射区和集电区,排列方式有PNP和NPN两种。
9012是非常常见的晶体三极管,在收音机以及各种放大电路中经常看到它,应用范围很广,它是PNP型小功率三极管。
主要用途是作为放大电路。
S9012的引脚图参数:
从左往右依次为发射极、基极、集电极
集电极-发射极电压-30V
集电极-基电压-40V
射极-基极电压-5V
集电极电流0.5A
耗散功率0.625W
结温150℃
特怔频率最小150MHZ
放大倍数:
D64-91E78-112F96-135G122-166H144-220I190-300
2.1.3DAC0832芯片:
DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
DAC0832的主要特性参数如下:
*分辨率为8位;
*电流稳定时间1us;
*可单缓冲、双缓冲或直接数字输入;
*只需在满量程下调整其线性度;
*单一电源供电(+5V~+15V);
*低功耗,20mW。
2.1.4UA741芯片
uA741M,uA741I,uA741C(单运放)是高增益运算放大器,用于军事,工业和商业应用.这类单片硅集成电路器件提供输出短路保护和闭锁自由运作。
这些类型还具有广泛的共同模式,差模信号范围和低失调电压调零能力与使用适当的电位。
4bQ838电子-技术资料-电子元件-电路图-技术应用网站-基本知识-原理-维修-作用-参数-电子元器件符号
uA741M,uA741I,uA741C芯片引脚和工作说明:
1和5为偏置(调零端),2为正向输入端,3为反向输入端,4接地,6为输出,7接电源8空脚
4bQ838电子-技术资料-电子元件-电路图-技术应用网站-基本知识-原理-维修-作用-参数-电子元器件符号
2.1.5 ICL7660
ICL7660是Maxim公司生产的小功率极性反转电源转换器。
该集成电路与TC7662ACPAMAX1044的内部电路及引脚功能完全一致,可以直接替换。
(1)特性
ICL7660的静态电流典型值为170μA,输入电压范围为1.5-10V,(Intersil公司ICL7660A输入电压范围为1.5-12)工作频率为10kHz只需外接10kHz的小体积电容,只需外接10μF的小体积电容效率高达98%合输出功率可达700mW(以DIP封装为例),符合输出100mA的要求。
(2)内部电路与引脚功能
ICL7660提供DIP、SO,μMAXTO-99等封装形式。
.
引脚号
引脚符号
引脚功能
1
N.C
空脚
2
CAP+
储能电容正极
3
GND
接地
4
CAP-
储能电容负极
5
VOUT
负电压输出端
6
LV
输入低压电压控制端,输入电压低于3.5V时,该脚接地,输入电压高于5V时,该脚必须悬空。
7
OSC
工作时钟输入端
8
V+
电源输入端
2.1.6LM324
LM324系列器件带有真差动输入的四运算放大器。
与单电源应用场合的标准运算放大器相比,它们有一些显著优点。
该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。
共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。
每一组运算放大器可用图1所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。
两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。
2.2硬件电路设计
单片机电路由几个小模块电路组成,分别是52单片机处理模块,数模转换模块和三极管发大模块。
2.2.1单片机系统模块电路的设计
单片机系统模块电路,主要的功能是用于处理接收过来的信息,并控制外围电路完成相应的功能,其组成由三部分:
STC89C52是核心部分,用于处理信息和控制外围电路;晶振电路,为单片机的提供外部时钟脉冲,保证单片机各个运行的统一节骤。
2.2.2数模转换模块的设计
此数模转换的电路相对来说难了很多,用了2个数模转换芯片DAC0832、2个运算放大芯片UA741、一个运算发大芯片LM324和一个极性反转电源转换器ICL7660构成,应用了一个数模转换的原理。
2.2.3三极管发大模块设计
三极管发大模块用了一个三极管和蜂鸣器。
因为单片机的I/O口输出的高电平无法驱动蜂鸣器,需要通过一个三极管放大电流,才能使蜂鸣器响。
3软件部分
3.3.1基本程序流程图
3.3.2调试
整个程序是一个主程序调用各个子程序实现功能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是把各个子程序模块进行分别调试,然后再进行跟踪调试和断点调试。
整个系统调试,软硬件结合在一起,看是否能工作正常,由于在模块调试过程中,我们把软硬件所出现的错误都调整过来了,使单片机获得中断信号、按键按下,数模转换模块输出的电压有变化,音频通过放大电路有声音的变大或变小,那么系统调试通过。
总结
利用基于单片机的数模转换芯片设计容易实现音量控制,且具有控制方便、成本低廉等优点。
本设计的主要部分是单片机对数模转换芯片的实时控制,控制方式是单片机通过SPI串行总线,根据按键值发送相应的控制命令。
此电路的最大优点是:
通过数字电路(主控电路),完成了对模拟电路(音量调节电路)的控制,控制灵活,具有较高的控制效率。
通过此次设计,使我对电子设计有全新的认识,在不断的学习和运用当中,使我对所学过的知识有所巩固和提高,并且让我对当今单片机、数模转换芯片、SPI的最新发展技术有所了解。
在整个过程中,我学会了从“整体到局部,再从局部到整体”的设计思想,逐步细化的程序设计方法。
与此同时,很好地提高了我的动手能力,为以后的进一步学习和工作奠定了坚实的基础。
在今后的日子里,我仍然要不断地充实自己,争取在所学领域有所作为。
总的电路图
作品完整图片
参考文献
[1]杨振江,单片机原理与实践指导[1],中国电力出版社,2008年8月
[2]杨振江,流行集成电路程序设计与实例[2],西安电子科技大学出版社,2009年2月
[3]张毅刚,新编MCS51单片机应用设计(第3版)[5],哈尔滨工业大学出版社,2008年4月
[4]谭浩强,C程序设计(第3版),清华大学出版社,2005年2月
[5]严天峰,单片机应用系统设计与仿真调试,北京航空航天大学出版社,2005年8月
[6]姚年春,PROTEL99SE基础教程,人民邮电出版社,2009年4月
附录A
型号名称数量
STC89C52单片机1
S9012三极管1
12MHZ晶振1
DA0832数模转换芯片2
UA741运放芯片2
LM324运放芯片1
ICL7660极性反转电源转换芯片1
5V蜂鸣器1
A102J阻排1
20pf10uf电容3
100k39k2k电阻5
导线若干
电源1
按键2
附录B
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitbeepIO=P1^0;
ucharm,n;
uintcount;
ucharcodeT[49][2]={{0,0},//新年好
{0xF8,0x8B},{0xF8,0xF2},{0xF9,0x5B},{0xF9,0xB7},{0xFA,0x14},{0xFA,0x66},{0xFA,0xB9},{0xFB,0x03},{0xFB,0x4A},{0xFB,0x8F},{0xFB,0xCF},{0xFC,0x0B},
{0xFC,0x43},{0xFC,0x78},{0xFC,0xAB},{0xFC,0xDB},{0xFD,0x08},{0xFD,0x33},{0xFD,0x5B},{0xFD,0x81},{0xFD,0xA5},{0xFD,0xC7},{0xFD,0xE7},{0xFE,0x05},
{0xFE,0x21},{0xFE,0x3C},{0xFE,0x55},{0xFE,0x6D},{0xFE,0x84},{0xFE,0x99},{0xFE,0xAD},{0xFE,0xC0},{0xFE,0x02},{0xFE,0xE3},{0xFE,0xF3},{0xFF,0x02},
{0xFF,0x10},{0xFF,0x1D},{0xFF,0x2A},{0xFF,0x36},{0xFF,0x42},{0xFF,0x4C},{0xFF,0x56},{0xFF,0x60},{0xFF,0x69},{0xFF,0x71},{0xFF,0x79},{0xFF,0x81}
};
ucharcodemusic[][2]={{0,4},
{19,4},{19,4},{19,8},{14,8},{23,4},{23,4},{23,8},{19,8},
{19,4},{23,4},{26,8},{26,8},{24,4},{23,4},{21,16},{21,4},{23,4},{24,8},{24,8},
{23,4},{21,4},{23,8},{19,8},{19,4},{23,4},{21,8},{14,8},{18,4},{21,4},{19,16},
{0xFF,0xFF}};
voiddelay(ucharp)//延时
{
uchari,j;
for(;p>0;p--)
for(i=181;i>0;i--)
for(j=181;j>0;j--);
}
voidpause()
{
uchari,j;
for(i=150;i>0;i--)
for(j=150;j>0;j--);
}
voidmain()//主程序
{
uchari=0;
P3=0XFF;//初始化
P2=0x01;
count=0;
P0=0Xf0;
TMOD=0x01;//开中断
TCON=0x25;
EA=1;
EX1=1;
EX0=1;
ET0=1;
PT0=0;
PX1=1;
PX0=1;
while
(1)//播放音频
{
m=music[i][0];n=music[i][1];
if(m==0x00)
{TR0=0;delay(n);i++;}
elseif(m==0xFF)
{TR0=0;delay(30);i=0;}
elseif(m==music[i+1][0])
{TR0=1;delay(n);TR0=0;pause();i++;}
else
{TR0=1;delay(n);i++;}
}
}
ADD()interrupt0//增加音量
{
count++;
if(P0==0xff)
P2++;
elseP0++;
}
DOWN()interrupt2//减少音量
{
count--;if(P2==0x00)P0--;elseP2--;
}
voidT0_int()interrupt1//音频的播放
{
beepIO=!
beepIO;
TH0=T[m][0];TL0=T[m][1];
}
指导教师
评语
课程设计
成绩
指导教师
签字
年月日