数字音频信号发生器的设计毕业设计论文.docx
《数字音频信号发生器的设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《数字音频信号发生器的设计毕业设计论文.docx(68页珍藏版)》请在冰豆网上搜索。
数字音频信号发生器的设计毕业设计论文
毕业设计(论文)
课题名称:
数字音频信号发生器的设计
数字音频信号发生器的设计
摘要:
设计总结了其它音频信号发生器的制作经验,采用STC89C52单片机作为该系统的控制装置,选用继电器、灵敏可变电阻、5532运放等高性能元件,同时还为了系统安装保护装置(在出错的情况下能继续工作),完善的设计出一款新颖的数字音频信号发生器。
其控制器具有高速的运算能力以及内部操作的灵活性,使得产生的波形具有控制方便,输出相位连续,精度高,稳定性好等优点,具有很高的应用价值。
矚慫润厲钐瘗睞枥庑赖。
关键字:
STC89C52单片机、音频信号发生器、CPU、
总线、EEPROM
前言
信号发生器是在电子电路设计、自动控制系统和仪表测量校正调试中应用很多的一种信号发生装置和信号源。
而正弦信号是一种频率成分最为单一的常见信号源,任何复杂信号(例如声音信号)都可以通过傅里叶变换分解为许多频率不同、幅度不等的正弦信号的叠加,广泛地应用在电子技术试验、自动控制系统和通信、仪器仪表、控制等领域的信号处理系统中及其他机械、电声、水声及生物等科研领域。
聞創沟燴鐺險爱氇谴净。
目前,常用的音频信号发生器绝大部分由模拟电路或数字电路构成,体积和功耗都很大,价格也比较贵。
随着微电子技术和计算机技术的发展,以单片机微处理器及单片机软硬件开发系统及配套产品为内容已形成了庞大并极具前途的高新技术产业,而可编程逻辑器件、SOPC等新技术的应用迅速渗透到电子、信息、通信等领域。
这里分别借助STC89C52单片机芯片运算速度高,功耗低,实时分析的优势以及其灵活的可配置性、较高的可靠性、硬件升级容易等优点设计了音频信号发生器。
残骛楼諍锩瀨濟溆塹籟。
第一章概述
本设计使用STC89C52单片机、ADC0832、TDA2030等芯片,产生所需要的音频信号。
整个系统分为主控制面板与信号处理两部分组成。
主控制面板主要是由单片机构成,作为系统的总微处理器。
信号处理部分主要是有运放和功放组成,负责对输出波形的整形放大。
系统分具体功能如下。
凍鈹鋨劳臘锴痫婦胫籴。
输出情况显示:
该系统能够显示当时输出信号的频率,幅度,可以随时得知输出波形情况。
●输出频率设置:
本系统是通过键盘以1Hz的进度准确的设置输出频率。
●输出幅度设置:
本系统是通过电位器调节的方式,调节输出幅度,但该系统对输出的幅度进行了检测,可以随时观察输出情况。
恥諤銪灭萦欢煬鞏鹜錦。
●输出音乐选择:
本系统内还存储了多首音乐,可直接输出音乐信号。
●输出信号储存:
本系统还设有信号储存功能,可以储存一些常用的频率信号,不需要每次都来调节。
本系统除了具有音频信号发生器的一些功能外,为了方便大家更好的使用,还增加了一些新的功能,具体如下。
●时间显示:
可以随时查看但是使用的时间,方便用户记录使用。
●定时:
是实现定时提示功能。
●报警:
对设置出错和系统出错做出报警提示。
●软件升级:
对该系统进行日后更新使用。
第二章设计思路及流程
整个系统由两大子系统构成,负责完成不同的功能,并且子系统所处位置是分开的,子系统分别是数字控制面板处理部分和模拟信号处理部分。
鯊腎鑰诎褳鉀沩懼統庫。
2.1数字控制面板处理部分
数字控制面板处理部分的主要功能是对数字信号进行处理,可划分为采集模块、显示模块、电源模块、时钟模块、储存模块、报警提示模块、通信模块和单片机模块。
数字控制面板处理部分的模块方框图如图2.1.1所示。
硕癘鄴颃诌攆檸攜驤蔹。
单片机模块
显示模块
输入模块
通信模块
采集模块
输出模块
时钟模块
储存模块
报警提示模块
电源模块
图2.1.1数字控制面板处理模块方框图
●采集模块是对输出信号进行测量,采集信号的幅度和输出信号调剂进度的数据传给单片机进行处理。
●输出模块是对输入模块的设定,单片机进行任务处理通过输出模块输出信号。
●时钟模块是扩展功能的时间处理模块,得出准确的时间送个单片机处理。
●储存模块是对用户常用的操作进行储存使用,方便用户以后使用。
●显示模块是对用户操作时显示相关内容,对系统当时的工作状态和信息即使反馈给用户。
●通信模块是对系统日后维护升级使用,一般不适用。
●报警模块是对用户的错误操作、系统出故障或用户设计,以语音的方式提示用户。
●输入模块主要是用户操作设置使用,把用户所需要的操作通过输入模块进行设计输入。
●电源模块是为系统提供5V电源。
是用220V交流电通过降压、整流、滤波、稳压后产生的5V电源。
2.2模拟信号处理部分
模拟信号处理部分是对数字控制面板处理部分输出的信号进行处理,主要是整形和放大两个操作,所设计的模块有输入信号、信号整形、信号放大、信号输出组成,其方框图如图2.2.2所示。
阌擻輳嬪諫迁择楨秘騖。
输入信号
信号整形
信号放大
信号输出
图2.2.2模拟信号处理模块方框图
●输入信号是对输入的较弱信号进行放大处理,方便后面整形部分工作。
●信号整形是采用的是先采用微分,对信号变形再对信号整形出较为标准的正弦波信号送入放大模块。
●信号放大模块是对调整好的信号放大输出,提高带负载的能力。
该模块是直接才用功放进行放大。
●信号输出模块是对整形、放大的信号输出。
第三章硬件电路设计
通过对总个系统的功能分析,选择合适的芯片进行硬件电路设计。
3.1 主要器件
系统中主要芯片有STC89C52单片机、ADC0832模数转换、AT24C64储存器、PCF8563时钟芯片、TDA2030功放等。
氬嚕躑竄贸恳彈瀘颔澩。
3.1.1 STC89C52单片机
1、单片机STC89C52介绍
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用宏晶公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
釷鹆資贏車贖孙滅獅赘。
主要性能
图3.1.1.1.1STC89C52单片机引脚图
●与MCS-51单片机产品兼容
●8K字节在系统可编程Flash存储器
●1000次擦写周期
●全静态操作:
0Hz~40MHz
●三级加密程序存储器
●32个可编程I/O口线
●三个16位定时器/计数器
●八个中断源
●全双工UART串行通道
●低功耗空闲和掉电模式
●掉电后中断可唤醒
●看门狗定时器
●双数据指针
●掉电标识符
STC89C52方框图
图3.1.1.2STC89C52内部结构图
2、单片机管脚功能介绍
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
怂阐譜鯪迳導嘯畫長凉。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
谚辞調担鈧谄动禪泻類。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
表3.1.1.1P1口第二功能
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
嘰觐詿缧铴嗫偽純铪锩。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能如表2.1.2P3口第二功能)使用。
熒绐譏钲鏌觶鷹緇機库。
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
鶼渍螻偉阅劍鲰腎邏蘞。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(PROG7)也用作编程输入脉冲。
纣忧蔣氳頑莶驅藥悯骛。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
颖刍莖蛺饽亿顿裊赔泷。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
濫驂膽閉驟羥闈詔寢賻。
EA/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
在flash编程期间,EA也接收12伏VPP电压。
銚銻縵哜鳗鸿锓謎諏涼。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
引脚
第二功能
P3.0
RXD(串行输入)
P3.1
TXD(串行输出)
P3.2
INT0(外部中断0)
P3.3
INT0(外部中断0)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器写选通)
表3.1.1.2P3口第二功能
3.1.2串行A/D转换器芯片ADC0832
1、ADC0832芯片简介
ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
挤貼綬电麥结鈺贖哓类。
ADC0832是双通道输入,并且可以软件配置成单端或差分输入,串行输出可以方便地和标准的移位寄存器及微处理器接口。
其中,ADC0832主要技术特点如下:
赔荊紳谘侖驟辽輩袜錈。
●8位分辨率;
●双通道A/D转换;
●输入输出电平与TTL/CMOS相兼容;
●5V电源供电时输入电压在0~5V之间;
●工作频率为250KHZ,转换时间为32μS;
●一般功耗仅为15mW;
●8P、14P—DIP(双列直插)、PICC多种封装;
●商用级芯片温宽为0℃to+70℃,工业级芯片温宽为−40℃to+85℃
图3.1.2.1芯片顶视图
芯片接口说明:
●CS_片选使能,低电平芯片使能。
●CH0模拟输入通道0,或作为IN+/-使用。
●CH1模拟输入通道1,或作为IN+/-使用。
●GND芯片参考0电位(地)。
●DI数据信号输入,选择通道控制。
●DO数据信号输出,转换数据输出。
●CLK芯片时钟输入。
●Vcc/REF电源输入及参考电压输入(复用)
2、ADC0832的工作原理
ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。
其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。
芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。
通过DI数据输入端,可以轻易的实现通道功能的选择。
塤礙籟馐决穩賽釙冊庫。
ADC0832使用采样——数据——比较器的结构,用逐次逼近流程,转换差分模拟输入信号。
要转换的输入电压连接到一个输入端,相对于地(单端输入)或另一个输入端(差分输入)。
ADC0832的输入端可以分配为正极(+)或负极(-),当连到分配为正端的输入电压低于分配为负端的输入电压时,转换结果为全“0”。
裊樣祕廬廂颤谚鍘羋蔺。
ADC0832的工作时序如图3.1.2.2所示。
图3.1.2.2ADC0832工作时序图
置
为低,方能启动转换开始,使所有的逻辑电路使能。
在整个转换过程中必须置为低电平。
接着从单片机接收一个时钟,一个时钟的时间间隔被自动插入,以使多路转换器选定的通道稳定。
DO脱离高阻态,提供一个时钟的时间间隔的前导低电平,以使多路器稳定。
在转换过程中,转换数据同时从DO端输出,以高电位(MSD)开头。
经过8小时后,转换完成。
当
变高时,内部所有的寄存器清零。
此时,输出电路变为高阻态。
如果希望开始另一个转换,
必须做一个从高到低的跳变,后面紧接地址数据。
仓嫗盤紲嘱珑詁鍬齊驁。
ADC0832的输入配置在多路寻址时序中进行,其中ADC0832多路控制器逻辑如表3.1.2.1所示,多路器地址通过DI端移入转换器。
多路地址选择模拟输入通道,也决定输入是单端输入还是差分输入。
当输入是差分时,要分配输入通道的极性。
另外在选择差分输入模式时,极性也可以选择。
输入通道的两个输入端的任意一个都可以作为正极或负极。
绽萬璉轆娛閬蛏鬮绾瀧。
图3.1.2.1ADC0832多路控制器逻辑表
在每个时钟的上升跳变时,DI端的数据移入多路地址移位寄存器。
DI端的第一个逻辑高电平表示起始位,紧接着的两位是ADC0832的配置位。
在连续的每个时钟的上升跳变,启动位和配置位移入移位寄存器。
当启动位移入多路器寄存器的开始位置后,输入通道选通,转换开始。
ADC0832的DI端在转换过程中和多路器的移位寄存器是关断的。
骁顾燁鶚巯瀆蕪領鲡赙。
ADC0832在输入为高位(MSB)开头的数据流后,又以最低位(LSB)开头重输出一遍(前面的)数据流。
DI和DO端可以连在一起,通过一根线连到处理器的一个双向I/O口进行控制。
之所以能这样做是因为DI端只在多路器寻址时被检测,而此时DO端仍为高阻态。
瑣钋濺暧惲锟缟馭篩凉。
3.1.3AT24C64EEPROM储存芯片
1、AT24C64芯片简介
AT24C64是ATMEL公司的一款EEPROM产品。
其内部存储器的大小为8129×8位,是采用分页储存的,每页的容量为32字节。
AT24C64的对外接口采用了
总线的接口方式,每个储存单元可以进行100万次写操作,储存的数据可以保存100年。
鎦诗涇艳损楼紲鯗餳類。
AT24C64采用了3种封装形式,不同的封装对位的管脚定义如图3.1.3.1所示。
图3.1.3.1AT24C64不同封装的管脚定义
AT24C64的管脚功能定义如表3.1.3.1所示。
表3.1.3.1AT24C64管脚功能定义
管脚号
管脚名称
功能
备注
1~3
A0~A2
器件地址选择
当多个
设备共用SDA、SCL时,采用地址区分每个
设备
5
SDA
串行数据/地址
是芯片的串行数据双向管脚,可以与其他的集电极开路的设备进行“线与”连接
6
SCL
串行时钟
是芯片串行时钟,最大频率要小于4000KHz
7
WP
写保护
如果接高电平,则为写保护,任何对芯片写操作将被忽略,接低电平时去除写保护
8
Vcc
电源
工作电压为:
+1.8V~6.0V
4
Vss
地
2、
总线接口简介
总线是由Philips公司开发的一种总线系统。
下面对
总线进行简单的介绍。
栉缏歐锄棗鈕种鵑瑶锬。
1)
基本概念
(1)总线是一种串行总线系统。
CPU电路上的
总线有两根线组成,一根是串行时钟线(SCL),一根是串行数据线(SDA)。
CPU利用串行时钟线发出时钟信号,利用串行数据线发送或接受数据。
辔烨棟剛殓攬瑤丽阄应。
(2)总线属于双向总线系统。
CPU可以通过
总线向被控集成电路发送数据,被控集成电路也可通过
总线向CPU传送数据,但被控集成电路接收还是发送数据则由主控CPU控制。
由于
总线是双向总线系统,因此CPU可以对
总线上挂接的电路进行故障检查。
峴扬斕滾澗辐滠兴渙藺。
的标准操作介绍
的标准操作包括时钟和数据传输、起始信号、停止信号、总线时序、待机模式和存储器复位。
詩叁撻訥烬忧毀厉鋨骜。
3)起始信号
时钟线保持高电平期间数据线电平从高到低的跳变作为
总线的起始信号。
时序图如图3.1.3.2所示。
则鯤愜韋瘓賈晖园栋泷。
图3.1.3.2
起始停止时序图
4)停止信号
时钟线保持高电平期间数据线电平从低到高的跳变作为
总线的停止信号。
5)总线时序
总线时序如图3.1.3.3所示。
图3.1.3.3
总线时序图
6)写周期时序
总线的写周期时序图如图3.1.3.4所示。
图3.1.3.4
总线写周期时序图
7)器件寻址
主器件通过发送一个起始信号启动发送过程,然后发送它所要寻址的从器件的地址。
8位从器件地址的高4位固定为1010。
接下来的3位(A2、A1、A0)为器件的地址位,用来定义哪个器件以及器件的哪个部分被主器件访问,从器件8位地址的最低位,作为读写控制位,“1”表示对从器件进行读操作,“0”表示对从器件进行写操作。
在主器件发送起始信号和从器件地址字节后,AT24C系列的监视总线并当其地址与发送的从地址相符时响应一个应答信号(通过SDA线)。
AT24C系列器件再根据读写控制位(R/W)的状态进行读或写操作。
胀鏝彈奥秘孫戶孪钇賻。
8)应答信号
I2C总线数据传送时,每成功地传送一个字节数据后,接收器都必须产生一个应答信号。
应答的器件在第9个时钟周期时将SDA线拉低,表示其已收到一个8位数据。
时序图如图3.1.3.5所示。
鳃躋峽祷紉诵帮废掃減。
AT24C系列器件在接收到起始信号和从器件地址之后响应一个应答信号,如果器件已选择了写操作,则在每接收一个8位字节之后响应一个应答信号。
稟虛嬪赈维哜妝扩踴粜。
当AT24C系列器件工作于读模式时,在发送一个8位数据后释放SDA线并监视一个应答信号,一旦接收到应答信号,AT24C系列器件继续发送数据,如主器件没有发送应答信号,器件停止传送数据且等待一个停止信号。
陽簍埡鲑罷規呜旧岿錟。
图3.1.3.5
应答时序图
1.A0、A1和A2对应器件的管脚1、2和3。
2.P0、P1和P2对应存储阵列地址字地址。
9)字节写
在字节写模式下,主器件发送起始命令和从器件地址信息(R/W位置零)给从器件,在从器件产生应答信号后,主器件发送AT24C系列器件的字节地址,主器件在收到从器件的另一个应答信号后,再发送数据到被寻址的存储单元。
时序图如图3.1.3.6所示。
AT24C系列器件再次应答,并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中,AT24C系列器件不再应答主器件的任何请求。
沩氣嘮戇苌鑿鑿槠谔應。
图3.1.3.6
器件字节写时序图
10)页写
用页写AT24C01可一次写入8个字节数据AT24C系列器件可以一次写入16个字节的数据,如图3.1.3.7所示。
页写操作的启动和字节写一样,不同在于传送了一字节数据后并不产生停止信号。
主器件被允许发送P(AT24C01;P=7;AT24C02/04/08/16;P=15;AT24C64;P=31;等)个额外的字节。
每发送一个字节数据后AT24C系列器件产生一个应答位并将字节地址低位加1,高位保持不变。
钡嵐縣緱虜荣产涛團蔺。
如果在发送停止信号之前主器件发送超过P+1个字节,地址计数器将自动翻转,先前写入的数据被覆盖。
接收到P+1字节数据和主器件发送的停止信号后,AT24CXXX启动内部写周期将数据写到数据区。
所有接收的数据在一个写周期内写入AT24C系列器件。
懨俠劑鈍触乐鹇烬觶騮。
图3.1.3.7
总线页写时序图
11)应答查询
可以利用内部写周期时禁止数据输入这一特性。
一旦主器件发送停止位指示主器件操作结束时,AT24C系列器件启动内部写周期,应答查询立即启动,包括发送一个起始信号和进行写操作的从器件地址。
如果AT24C系列器件正在进行内部写操作,不会发送应答信号。
如果AT24C系列器件已经完成了内部自写周期,将发送一个应答信号,主器件可以继续进行下一次读写操作。
謾饱兗争詣繚鮐癞别瀘。
12)写保护
写保护操作特性可使用户避免由于不当操作而造成对存储区域内部数据的改写,当WP管脚接高时整个寄存器区全部被保护起来而变为只可读取。
AT24C系列器件可以接收从器件地址和字节地址,但是装置在接收到第一个数据字节后不发送应答信号从而避免寄存器区域被编程改写。
呙铉們欤谦鸪饺竞荡赚。
13)读操作
对AT24C系列器件读操作的初始化方式和写操作时一样,仅把R/W位置为1,有三种不同的读操作方式:
立即地址读、选择读和连续读。
莹谐龌蕲賞组靄绉嚴减。
14)立即地址读
AT24C系列器件的地址计数器内容为最后操作字节的地址加1,立即地址读时序图如图3.1.3.8所示。
也就是说如果上次读/写的操作地址为N,则立即读的地址从地址N+1开始。
如果N=E(这里对2