毕业设计论文基于单片机的音乐播放器的设计与制作.doc

上传人:sccc 文档编号:4873209 上传时间:2023-05-20 格式:DOC 页数:24 大小:582.17KB
返回 下载 相关 举报
毕业设计论文基于单片机的音乐播放器的设计与制作.doc_第1页
第1页 / 共24页
毕业设计论文基于单片机的音乐播放器的设计与制作.doc_第2页
第2页 / 共24页
毕业设计论文基于单片机的音乐播放器的设计与制作.doc_第3页
第3页 / 共24页
毕业设计论文基于单片机的音乐播放器的设计与制作.doc_第4页
第4页 / 共24页
毕业设计论文基于单片机的音乐播放器的设计与制作.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《毕业设计论文基于单片机的音乐播放器的设计与制作.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于单片机的音乐播放器的设计与制作.doc(24页珍藏版)》请在三一办公上搜索。

1、毕业论文(设计)1 引言1.1绪论如今,电子技术获得了飞速的发展,现代电子产品几乎渗透了社会的各个领域。目前,单片机正朝着高性能个多品种方向发展趋势将是进一步想着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路装化等几个方面发展。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机内部也用和电脑功能类似的模块,比如CPU

2、,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可。单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表

3、的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。利用单片机实现音乐播放有很多要点,例如外部电路简单,控制方便等,因而备受广大单片机爱好者的喜爱。通过音乐发声器的设计方案,掌握C语言的编程方法。并熟练的运用89C51单片机定时器产生固定频率的方波信号,推动喇叭发出旋律,按下单键可以演奏预先设置的歌曲旋律,最

4、重要的是自己还可以通过程序设计输入自己喜欢的歌曲来演奏,本设计采用简易音阶编码直觉式输入法方便设计音乐旋律。通过音乐发声器的设计方案,掌握了汇编语言的编程方法。并熟练的运用89C51单片机定时器产生固定频率的方波信号,推动喇叭发出旋律,按下单键可以演奏预先设置的歌曲旋律,最重要的是自己还可以通过程序设计输入自己喜欢的歌曲来演奏,本设计采用简易音阶编码直觉式输入法方便设计音乐旋律,可以扩充功能,比如:可设计多个按键操作来选择演奏哪一首歌曲,以随机数方式自动演奏歌曲,设计程序可以以按键来实现前进和后退,修改程序可以演奏伴奏音或是如手机上播放的和谐铃声。1.2 单片机简介 单片机是一种集成在电路芯片

5、,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。2 音乐发生器设计流程及思路在进行设计前,首先要对音乐知识有基本的理解,其次要明白单片机产生音乐脉冲的原理,最后完成硬件原理图和相关程序的设计。2.1音乐基础音作为一种物理现象,是由于物体振动而产生的,振动产生的声波作用于人耳,听觉系统将神经冲动传达给大脑,进而产生听觉。人耳能听到的声音频率大约在1120000Hz,而音乐中使用的

6、音一般在274100Hz。乐音体系中各音级的名称叫做音名,被广泛采用的是C D E F G A B(do re mi fa so la si则多用于歌唱,称为唱名)。乐音体系中音高关系的最小尽量单位叫做半音,两个半音构成一个全音。乐音中有几十个高低不同的音,但是最基本的只有这七个音,其他高、低音的音名都是在这个基础上变化出来的。在乐谱表上用来表示正在进行的音的长短的符号,叫做音符。不同的音符代表不同的长度。音符有一下几种:全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符、六十四分音符。此外,还有一种附点音符,它就是指带附点的音符,所谓附点就是记载音符右边的小圆点,表示增加前面音符

7、时值的一半。音持续的长短即时值,一般用拍数表示,休止符表示暂停发音。音符与节拍数之间的对应关系如表2.1所示。表2.1 音符与节拍数之间的对应关系表音符节拍数音符节拍数x-(全音符)4拍x(附点八分音符)3/4拍x-(二分音符)2拍x(附点十六分音符)3/8拍X(四分音符)1拍000(三分休止符)休止3拍X(八分音符)1/2拍00(二分休止符)休止2拍X(十六分音符)1/4拍0(四分休止符)休止1拍x(附点四分音符)1.5拍 0(八分休止符)休止1/2拍 一首音乐及时由许多不同的音符组成的,而每一个音符对应着不同的频率,这样就可以利用不同的频率的组合,加以拍数对应的延时来构成不同的音乐。2.2

8、 音频脉冲和音乐节拍的实现音乐是由不同的音乐脉冲和音乐节拍配合产生的,因此设计之前,首先要对它们进行了解。2.2.1 音频脉冲的产生音乐的产生需要不同频率的音频脉冲,对于单片机而言,可以利用它的定时/计数器产生这样的方波频率信号。具体地说,只要知道某一音频的频率,求得它的周期,然后将次周期除以2,得到半周期的时间,利用定时/计数器计时这半个周期,计时到后就将输出脉冲的I/O反相。就可以在I/O端口上得到此脉冲。单片机工作在12MHz时钟频率下,其时钟周期为1us,因此可以利用89C51(设计因器件限制使用89S52代替)的内部定时/计数器T0,使其工作模式为1,工作在计数器状态下,改变计数初值

9、TH0和TL0以产生不同频率的脉冲信号。T的值决定了计数初值TH0和TL0的值,TH0=T/256,TL0=T%256。(1.1)计数值公式如下: 式中,:单片机内部时钟周期为1us,所以其频率为1MHz。 :产生音符所需的频率。通过上式计算,可以求得各个音符频率的计数值T。C调各音符频率与计数值T的对照如表2.2所示。表2.2 C调各音符频率与计数值T的对照值音符频率/Hz简谱码(T)音符频率/Hz简谱码(T)低1DO26263628#4FA#74064860#1DO#27763731中5SO74864898低2RE29463835#5SO#83164934#2RE#31163928中6LA

10、88064968低3M33064021#6LA#93264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#6LA#46664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE57864684#5SO#166165235#2RE#62264732

11、高6LA176065252中3M65964777#6LA#186565268中4FA69864820高7SI1967652832.2.2 音乐节拍的产生 节拍是指音乐持续的长短,是除音符之外音乐的另一关键组成部分,在单片机系统中可以通过延时来实现。如果1/4拍的延时设为0.2s,则1拍的时间为0.8s。以此类推,可以求出其余节拍的值,节拍的延时时间值与音乐的曲调值有相对应的关系,表2.3所示为不同曲调下的1/4和1/8节拍的时间设定。如果单片机要实现自己播放音乐,那么必须在程序设计中考虑到节拍的设置,在89C51中,可以用一个直接存储一个音符,其中低4位是节拍码。节拍数和节拍码的对照表如表2.

12、4所示。表2.3 各调节拍的时间设定曲调值(1/8节拍)DELAY曲调值(1/4节拍)DELAY调4/462ms调4/4125ms调3/494ms调3/4185ms调2/4125ms调2/4250ms 表2.4 节拍数与节拍码的对照节拍码节拍数节拍码节拍数11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍41/2拍51.25拍55/8拍61.5拍63/4拍82拍81拍A2.25拍A1.25拍C3拍C1.5拍F3.75拍2.3 音频功放音乐的播放最后是通过扬声器完成的,但是直接用单片机产生的音频脉冲不足以直接驱动扬声器来完成音乐的播放,因此这就要求在单片机端口与扬声器之间链接功率

13、放大电路,以实现最终的目的。评定功率放大电路有3个重要的指标,即输出功率、效率、非线性失真。输出功率P0:功率放大器应在输出不失真的情况下给出最大的交流输出功率P0以推动负载工作,维持,功放元件一般工作在大信号状态,这就使功放元件的安全工作成为功率放大器的重要问题。效率:功率放大器的效率定义为功率放大器的输出信号功率P0和直流电源供给功率放大器功率PE之比,用表示。功率放大器要求高效率地工作,一方面是为了提高输出功率,另一方面是为了降低管耗。直流电源供给的功率除了一部分变成有用的信号功率以外,剩余部分编程晶体管的管耗。管耗过大将使功率管发热损坏。所以,最与功率放大器,提高效率也是一个重要问题。

14、非线性失真:功率放大器为了获得足够大的输出功率,需要大信号激励,从而使信号动态范围往往超出晶体管的线性区域,导致输出信号失真。因此减小非线性失真,成为功率放大器的又一个重要问题。总的来说,要求功率放大器在保证系统安全运用的情况下,获得尽可能大的输出功率、尽可能高的效率和尽可能小的非线性失真。常用的音频功放电路有两种方法,一种是基于三极管的音频功放电路,另一种是基于LM386的音频功放电路(将在下一章节硬件电路设计中讲述)。3 硬件设计硬件电路主要由AT89S52单片机、LM386音频功放电路和扬声器3部分组成,电路结构比较简单。3.1 主要器件3.1.1 微处理器 AT89C51单片机是一款低

15、功耗,低电压,高性能CMOS8位单片机,功能强,灵活性高且价格合理的单片机,可方便的应用在各个控制领域。AT89C51是用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可用软件来选择的省电方式空闲方式(Idle Mode)和掉电方式(Power Down Mode)。在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内RAM中的内容,直到下一次硬件复位为止。本实验的替代芯片AT89S52也是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。使用

16、Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时

17、器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。图3.1 单片机引脚图各端口作用:P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。

18、对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(在系统编程用) P2口:P2口

19、是一个具有内部上拉电阻的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口,p3输出缓

20、冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能P3.0 RXD(串行输入口) P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLA

21、SH闪存编程和程序校验的控制信号。 RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。

22、此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源V

23、pp,当然这必须是该器件是使用12V编程电压Vpp。3.1.2 音频功率放大器芯片LM386LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。 LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地为参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。3.1.3 LM386芯片

24、说明LM386是8管脚芯片,引脚图参照图3.1。LM386的封装形式有塑封8引线双列直插式和贴片式,各引脚功能如表3.1.图3.1 LM386芯片引脚图表3.1 DS1302引脚功能说明引脚号名称功能1、8GAIN电压增益设定引脚2-IN反相输入脚。本设计中单片机只有一个端口输出信号,故该脚接地。3+IN正相输入脚。此脚接单片机输入信号4GND接地5Vout电压输出脚,此脚为音频功放电路输出6Vs接正电源7BYPASS旁路脚,使用时在引脚7和地之间接旁路电路,通常取10uF 其典型应用电路如图3.2-3.5 图3.2 增益放大=20(最少器件) 图3.3 增益放大=200 图3.4 增益放大=

25、50 图3.5 低频提升放大器3.2 音乐发生器硬件电路设计 音乐发生器设计电路包括89C51单片机系统图和LM386音频功放电路,前者主要包括89C51单片机及其晶振电路和复位电路,单片机时钟周期为12MHz,提供上电复位和手动复位两种复位方式,P0.0口为音频脉冲输出脚;后者主要器件是LM386和扬声器。单片机输出的音频脉冲信号比较微弱,一般只有几个微安,经过LM386音频功放电路后才能驱动扬声器发生,本设计中LM386的1脚和8脚悬空,电压增益为20V,电源脚接+5V供电。硬件电路原理图如图图3.6。图3.6 音乐发生器硬件系统原理图 在单片机的P0.0口设置一个按键,当按键按下时,P1

26、.0口置高电平,单片机输出音频脉冲,播放音乐;当按键悬空时,单片机不播放音乐。电路工作原理:当按下按键,P0.0口输出音乐脉冲,脉冲信号首先经过由电阻R3和R4组成的回路输入到LM386的+IN脚,输入信号经过LM386处理后,从Vout输出,然后进入由R5和C5构成的串联补偿网络,该网络与呈感性的负载(扬声器)相并,使负载的等效负载近似呈纯阻,以防止高频自激和过压现象。在这里,7脚旁路应外接C4去耦电容,用以提高纹波抑制能力,消除低频自激。经过此电路后,单片机发出的不同频率的音频信号就可以通过扬声器发出想要的歌曲。3.3 系统仿真在焊接实物之前首先在protues软件进行系统仿真。在此介绍下

27、protues系统仿真。3.3.1 Protues软件介绍Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计

28、平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。3.3.2 音乐发生器系统Protues仿真用Protues软件仿真,根据原理图,画出仿真电路图,得到仿真图:图3.7 音乐发生器的Protues仿真4 电子时钟软件设计 软件设计是产生音乐的重要部分,音乐各音符所对应的频率和音乐的节拍都是通过软件的设计来实现的,软件设计的好坏直接决定了产生的音乐是否正确。软件设计主要内容包括两个部分,一部分是根据音乐乐谱利用定时/计数器0产

29、生定时中断输出不同频率的音频脉冲,第二部分是根据音乐节拍对各音频脉冲进行延时设定。本次设计选用“世上只有妈妈好”这首歌曲作为乐谱源码实现。可根据喜欢的歌曲曲谱来改变编码以更换歌曲。在进行程序编写时,首先要根据音符的频率求出各自的16位计数初值(TH0=T/256,TL0=T%256),再根据音乐的节拍数得到每次计数所需的延时时间。简谱代码和音符的计数值分别定义成一个数据列表,二者之间应建立一个对应的函数关系,以方便准确地找到每个音符的计数初值。图4.1 音乐发生器程序流程图图4.2 定时器服务子程序 应用单片机C51编辑软件Keil软件编译程序生成*.hex文件并导入Protues仿真电路中即

30、可完成对音乐发生器系统的全部仿真,达到想要的效果,并验证电路图的正确性。5 系统调试 调试工作分硬件调试和软件调试两部分。 首先,硬件调试主要是先搭建硬件平台,然后利用万用表等工具对电路检查,最后应用程序进行功能调试。硬件调试比较费时,需要细心和耐心,也需要熟练掌握电路原理。 然后,可以直接应用一些编辑或仿真软件进行软件调试,比如单片机C51编辑软件Keil。该软件提供了一个集成开发环境uVision,它包括C编辑器、宏编辑器、连接器、库管理和一个功能强大的仿真调试器。通过编译、运行,可以检查程序错误。但应用此方法,仍需要十分了解所使用元器件的工作方式和管脚连接方式。在软件调试过程中要仔细耐心

31、,即便是多写或少些一两个字符,都无法编译成功。而有时往往在Keil中编译、运行无错,但烧录到单片机中运行起来就会出错,很可能是编程时管脚或时序编辑得不对。 还有一种方式,即应用仿真软件搭建电路的软件平台,再导入程序进行仿真调试。如果电路出错,可以在计算机上方便的修改电路,程序出错可以重新编辑程序,这种方法节时、省力,经济、方便。应用仿真软件Proteus仿真。 总之,调试过程是一个软硬件相结合调试的过程,硬件电路是基础,软件是检测硬件电路和实现其功能的关键。 在调试过程中,首先必须明确调试顺序。例如:本设计是在单片机系统基础上建立起来的,所以必须先确定单片机基础电路能否正常工作。为了正确播放音

32、乐,接下来还要确定音频功放电路能否正常工作。硬件调试的过程,也是软件调试的过程。5.1 硬件调试5.1.1 单片机基础电路调试 单片机基础电路包括电源、单片机、外部时钟震荡电路、复位电路和外部接口电路。调试过程需要注意以下几点: 1. 检查电源是否完好。 2. 单片机电源要连接正确,并且保证AT89S52的31号引脚接高电平。AT89S52的31号引脚是外部程序存储器选择信号端,当该引脚为高电平时,单片机会一直从片内程序存储器内取指令。 3. 如果使用P0口做I/O口,要接上拉电阻。 4. 使用万用表排查电路中是否存在断路或者短路情况。笔者在制作外部接口电路时使用的是排针,焊接时容易出现管脚之

33、间短路,所以在上电以前必须先排查电路。 5. 编辑一个使一组发光二极管循环点亮的程序并烧录到单片机内,上电运行,检查单片机是否正常工作,复位电路是否正确。5.2 软件调试 在硬件调试完毕的基础上,需要进一步完善程序,也就是进入软件调试阶段。对于系统程序,在keil软件中利用C语言调试程序,改正语法与程序错误。以达到自己硬件设计时的效果和功能。结束语本系统采用了MSC-51系列单片机AT89S52为中心器件来设计音乐发声器,实现了播放音乐的功能,系统不足之处在于不能控制播放音乐的前进和后退,通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题的全面锻炼。使我在单片机的基本原理、单片

34、机应用系统开发过程中,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。在单片机音乐发声器的制作过程中,在设计中因为限压电路部分出现错误,导致电压过高将喇叭烧毁。最后用蜂鸣器替代喇叭做扬声器,效果不够理想。说明动手能里还有不足,仍然有待提高。致 谢 在论文完成之际,我要特别感谢我的指导老师的热情关怀和悉心指导。在我撰写论文的过程中,老师倾注了大量的心血和汗水,无论是在论文的选题、构思和资料的收集方面,还是在论文的研究方法以及成文定稿方面,我都得到了老师的悉心细致的教诲和无私的帮助,特别是她广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作

35、作风使我终生受益,在此表示真诚地感谢和深深的谢意。 在论文的写作过程中,也得到了许多同学的支持和帮助,给予了我很多宝贵的意见,在此一并致以诚挚的谢意。感谢所有关心、支持、帮助过我的良师益友。 最后,向在百忙中抽出时间对本文进行评审并提出宝贵意见的各位老师表示衷心地感谢!参考文献1 向继文.基于AT89C51的电子钟系统设计J.机电产片开发与创新.2007(2):60-65.2 刘皖. FPGA设计与应用M.北京.清华大学出版社.2006.80-110.3 冯育长.单片机系统设计与实例分析M.西安.西安电子科技大学出版社.2007:69-78.4 何力民.单片机应用技术选编5M.北京.北京航空航

36、天大学出版社.1997:84-99.5 潘永雄.新编单片机原理与应用M.西安.西安电子科技大学出版社.2003.103-111.6 李及.赵利民.MCS-51系列单片机原理与应用M.长春.吉林科学技术出版社.1995:33-50.7 彭小军.用单片机实现电子时钟J.新余学报.2004(2):31-38.8 刘坤.宋戈.51单片机C语言应用开发技术大全.北京.人民邮电出版社.2008.485-500.9 戴佳.戴卫恒.51单片机C语言应用程序设计实例精讲M.北京.电子工业出版社.2006.126-152.10 付家才.单片机控制工程实践技术M.北京.化学工业出版社.2004.15-23.11 刘

37、军.单片机原理与接口技术M.上海.华东理工大学出版社.2006.46-51.12 张迎新. 单片微型计算机原理、应用及接口技术(第二版)M.北京.国防工业出版社.2005.87-97.13李广弟.单片机基础.北京.北京航空航天出版社.2001:34-60.14 R.L.Geiger.P.E.Allen.N.R.Strader.VLSI.DLSI Design Techniques for Analog And Digital Ciruits.McGraw-Hill Inc.1990:55-6415 N.R.Mallik.Electronic Ciruits-Analysis Simulatio

38、n and Design.Prentice Hall.1995.84-1001.0 系统程序#include sbit p00=p00;sbit p10=p10;unsigned char BTH0,BTL0;unsigned char time;unsigned char keytmp;/*歌曲数据表,每三个数的第一个是乐谱码,第三个是节拍码*/code unsigned char table=6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2 4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,

39、1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0;/*音符计数表(高八位)*/Code unsigned char TH0=0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0

40、xFE,0xFE,0xFF,;/*音符计数表(底八位)*/code unsigned char TL0=0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F,0xEE,0x44,0x6B,0xB4,0xF4,0x2D,0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,;/*键扫描函数*/void scankey()unsigned int keydata;keytmp=p1&0x01;if(keytmp= =0)keydata=0;else if(keytmp= =1)keyda

41、ta=1;/*键延时函数*/void keydelay(void)uchar i;for(i=300;i=0;i-)/*延时函数*/void delay(unsigned char time)unsigned char t1;unsigned char t2;for(t1=0;t1t;t1+)for(t2=0;t28000;t2+)/对于12MHZ的时钟,延时为125ms(1/4节拍)/*定时器0中断服务子程序*/void time0_int() interrupt 1 using 0TR0=0;P00=P00;/反相,产生脉冲TH0=BTH0;/计数器赋值TL0=BTL0;TR0=1;/*赋

42、T0计数初值,开始计数*/void sing()TH0=BTH0;TLO=BTL0;TR0=1;delay(time);/*主程序*/void main(void)unsigned char k,i;i=0;TMOD=0x01;/置T0定时工作方式1EA=1;ET0=1;IE=0x82;/CPU开中断,T0开中断while(1)void scankey();if(keydata=0)else if(keydata= =1)keydelay();time=1;while(time)if(tablei= =0)/是否取到结束码“0”i=0;else if(tablei!=0)k=tablei+7*

43、tablei+1-1;BTH0=TH0K;/取计数值的高8位BTL0=TL0K;/取计数值的低8位time=tablei+2;/取节拍数i=i+3;/取下一个音符sing();2.0 音乐发生器元器件一览表窗体顶端类别序号型号数量(单位)用途电源178051个系统电源IC芯片2AT89S521片CPU3LM3861片实时时钟日历芯片电容430pF2个单片机时钟震荡电路510F1个复位电路60.1F1个7470F1个822F1个947F1个100.047F1个11100F1个晶振1212MHz1支电阻134.5K1支141K2支复位电路1510K1支限压保护164701支喇叭1774F3781个扬声器硬质板18焊接性1块基础电路二极管191N40011个电源部分20发光二极管1个检测电源23

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号