基于单片机的音乐播放器毕业论文

上传人:痛*** 文档编号:149125394 上传时间:2022-09-06 格式:DOC 页数:38 大小:569.02KB
收藏 版权申诉 举报 下载
基于单片机的音乐播放器毕业论文_第1页
第1页 / 共38页
基于单片机的音乐播放器毕业论文_第2页
第2页 / 共38页
基于单片机的音乐播放器毕业论文_第3页
第3页 / 共38页
资源描述:

《基于单片机的音乐播放器毕业论文》由会员分享,可在线阅读,更多相关《基于单片机的音乐播放器毕业论文(38页珍藏版)》请在装配图网上搜索。

1、西北工业大学明德学院毕业设计论文毕业 任务书论文题目基于单片机的音乐播放器学生姓名刘文学 号092163指导教师张国强题目来源(划)科研R生产实验室专题研究论文类型(划)设计论文R其 他 一、 选题的意义随着科技的发展市场上出现了许许多多的音乐播放器。人们对播放器的要求也越来越广泛,要求也越来越广泛,要求越来越高。通过控制定时器的定时时间来产生不同频率的方波,驱动喇叭发出不同音阶的声音,再利用延迟来控制发音时间的长短,即可控制音调中的节拍。把乐谱中的音符和相应的节拍变换为定常数和延迟数,作为数据表格存放在存储器中。由程序查表得到定时常数和延迟常数,分别用于控制定时产生器产生波的频率和发出该频率

2、方波的持续时间。当延迟时间到时。再查下一个音符的定时常数和延迟常数。依次下去,就可以自动演奏乐曲。二、基本内容及重点课题是“基于单片机的音乐播放器”,以单片机AT89C51作为硬件核心控制部分、结合三极管作为放大器、数码管构成典型的显示器的显示电路,按键作为输入部分以及其他外围设备组成的音乐播放系统,根据音乐演奏控制器所要实现的显示与选取及音乐产生功能原理,系统包括演奏扬声器、选取、播放盒显示几部分。三、预期达到的成果1 单片机乐曲播放控制器能够播放普通曲调2 设置按钮使所设计的程序能在五首歌曲之间进行选曲,其中AGAIN按键具有开启播放曲子和重复播放当前曲子的功能,FORM按键具有播放前一曲

3、的功能,NEXT按键具有播放后一曲的功能,RES键复位的功能。3 通过显示器使其显示歌曲序号。四、存在的问题及拟采取的解决措施刚拿到这个课题不知道从什么地方先手,通过查找资料慢慢的有了方向。在做的时候肯定还会遇到各种问题,我会通过查资料,问同学和导师来解决。五、进度安排1 收集资料、熟悉毕业设计(论文)课题 2 总体方案的选择和论证 3 硬件系统设计及电路制作4 软件编程5 系统调试6 编写毕业设计(论文)说明书7 进行总结、准备答辩六、参考文献和书目 1 曹巧媛,单片机原理及应用M,北京:电子工业出版社,1997.72 赵秀珍,单永磊,单片机微型计算机原理及其应用M,北京:中国水利水电出版社

4、,2001.8 3 张洪润,兰清华,单片机应用技术教程M,北京:清华大学出版社,1997.11 4 李华,MC51 系列单片机实用接口技术M,北京:北京航空航天大学出版社,1993.8: 5 马忠梅,单片机的C语言Windows 环境编程宝典M,北京:北京航空航天大学出版社,2003.6 6 李广弟,单片机基础M,北京:北京航空航天大学出版社,2007.6导师意见指导教师签字: 年 月 日 系意见 系主任签字: 年 月 日注:内容用小四,宋体目 录摘 要IABSTRACTII前 言III第一章 绪 论11.1 研究背景及其意义11.2研究内容21.3 本文结构安排2第二章 系统总体介绍42.1

5、 AT89C51单片机基础知识42.1.1 AT 89C51单片机引脚及其功能42.1.2 中央处理器(CPU)62.1.3 定时器/计数器72.1.4中断系统72.1.5 内部总线72.2其他硬件模块72.2.1时钟与复位模块72.2.2按键选择模块82.2.3音频发生及放大器模块82.3设计软件介绍82.3.1 PROTEUS软件简介82.3.2 KEIL简介9第三章 硬件设计103.1 总体设计框图103.2各部分硬件设计及其原理103.2.1 AT89C51简介103.2.2 LED显示电路设计与原理113.2.3 时钟振荡电路113.3 系统硬件电路图及功能12第四章 软件设计144

6、.1音乐播放编码理论144.1.1 音调的确定144.1.2音节编码164.2 编程思路简述174.2.1编程描述174.2.2原理框图184.3总原理图及元器件清单19第五章 结论20致 谢21参考文献22毕业设计小结23附件: 程序清单24II 摘 要本设计是一个基于AT89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。使用两个按键控制音乐盒,一个用来切换歌曲,另一个用来切换8路LED的变化花样,本音乐盒共有两首歌曲,花样灯花样共计3种。播放歌曲时,蜂鸣器发出某个音调,

7、与之对应的LED亮起。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。关键词: AT89C51单片机; KEIL; PROTEUSIIABSTRACTThe design is a series based on AT89C51 microcontroller music box , according to principles of SCM technology , produced by the hardware circuits and software compiler , designed to produce

8、a versatile multifunction music box . The Music Box consists of key circuit , reset circuit, clock circuit and buzzer components. Using two buttons control music boxes, one for switch songs , and another 8-way LED for switching pattern changes , the music box from two songs, a total of three kinds o

9、f tricks lamp pattern . Playing a song, a buzzer tone corresponding LED lights up. This design uses KEIL programming software for music boxes and debug source code for programming , with PROTEUS simulation software simulation debugging the hardware , saving design time. Key words: AT89C51 microcontr

10、oller; KEIL; PROTEUS前 言作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括“Do“、“Re“、“Me“-等音阶在内的各种频率声音。在此设计中我们采用12MHz的晶振,产生的频率信号即音乐信号由P3.7口输出,信号经过放大后由蜂鸣器发出声音。乐曲中,每一音符对应着确定的频率,我们可以参照给出的各音符频率及其相应的时间常数来编写程序,根据表中所提供的常数,将其16进制代码送入芯片里,可以奏出音符。音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。其它节拍与时间

11、的对应关系也可以从两者关系表中得到。III第一章 绪 论1.1 研究背景及其意义21世纪,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件

12、的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。随着科学技术的进步和社会的发展,人类所接触的信息也在不断增加并且日益复杂。面对浩如烟海的信息,人们已经能够利用计算机等工具高效准确地对之进行处理,但要想将处理完的信息及时,清晰地传递给别人,还必须通过寻求更加卓越的显示技术来实现。单片机

13、技术与液晶显示技术的结合,使信息传输交流向着智能可视化方向迅速发展。随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。音乐播放器是一种用于播放各种音乐文件的多媒体播放软件。它涵盖了各种音乐格式的播放工具,比如:MP3播放器,WMA播放器,MP4播放器等,它们不仅界面美观,而且操作简单,成为人们追捧的新宠儿。1.2研究内容随着科技的发展市场上出现了许许多多的音乐播放器。人们对播放器的要求也越来越广泛,要求也越来越广泛,越来越高。本文设计的音乐播放器,是基于单片机AT89C51作为硬件核心控制部分、结合三极管作为放大器、数码管构成典型的显示器的显示电路设计制作的电子式音乐播放器。

14、通过控制定时器的定时时间来产生不同频率的方波,驱动喇叭发出不同音阶的声音,再利用延迟来控制发音时间的长短,即可控制音调中的节拍。把乐谱中的音符和相应的节拍变换为定常数和延迟数,作为数据表格存放在存储器中。由程序查表得到定时常数和延迟常数,分别用于控制定时产生器产生波的频率和发出该频率方波的持续时间。当延迟时间到时。再查下一个音符的定时常数和延迟常数。依次下去,就可以自动演奏乐曲。本毕业设计的主要目的是提高实践 能力,包括提高汇编等语言的编程能力及对接口等硬件的理解分析能力和设计接口电路 的能力,在进行毕业设计的过程中,可以让学生体验分析问题、提出解决方案、通过编 程等手段实现解决方案、不断调试

15、最终达到设计要求的全过程,从而帮助学生系统地掌 握微机原理的接口技术的相关知识,达到将知识融会贯通的目的。1.3 本文结构安排第一章 绪论介绍本文研究背景、意义及内容。第二章 系统总体设计介绍AT89C51单片机基本知识,音乐播放器系统的总体方案、功能结构图以及主要设计软件。第三章 硬件设计介绍音乐播放器系统硬件设计原理及电路设计。第四章 软件设计介绍系统的软件编程实现。第五章 结论总结本文所做工作并指出所存在的问题。9第二章 系统总体介绍2.1 AT89C51单片机基础知识AT89C51包括:一个8位的80C51微处理器,片内256字节数据存储器 RAM/SFR,用以存放可以读写的数据,如运

16、算的中间结果,最终结果以及欲显示的数据;片内 4kb 程序存储器 Flash ROM,用以存放程序,一些原始数据和表格;4个8位并行I/O口 P0P3,每个端口既可用作输入,也可用作输出;两个 16 位的定时器/计数器,每个定时器/计数器都可设置 成计数方式,用以对外部事件进行计数,也可设置成定时方式,并可以根据计数或者定 时的结果实现计算机控制;具有 5 个中断源,两个中断优先级的中断控制系统;一个全双工 UART(通用异步接受发送器)的串行 I/O 口,用于实现单片机之间或者单片机与 PC 机之间的串行通信;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接, 最高允许震荡频率24MH

17、z;AT89C51 与AT80C51 相比具有节电工作方式,即休闲方式及掉电方式。2.1.1 AT 89C51单片机引脚及其功能图2.1 AT89C51单片机示意图图2.1为AT89C51单片机的引脚示意图。(1) 电源引脚Vcc(40脚):典型值5V。Vss/GND(20脚):接低电平。(2) 外部晶振X1、X2分别与晶体两端相连接。当使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。(3) 输入输出口引脚P0口:I/O双向口。在CPU访问片外存贮器时,P0口为分时复用的低8位地址总线和数据总线。P1口:I/O双向口。带内部上拉电阻的8位准方向I/O端口,每位能驱动4个L

18、S型TTL负载。P2口:I/O双向口。带内部上拉电阻的8位准方向I/O端口,每位能驱动4个LS型TTL负载。在CPU访问片外存储器时,它输出高8位地址。P3口:I/O双向口。带内部上拉电阻的8位准方向I/O端口,每位能驱动4个LS型TTL负载。P3口除了作为一般I/O口外,每个引脚都有第二功能,如表2.1所示。表2.1 P3端口引脚与复用功能表口线第二功能P3.0RXD(串行口输入)P3.1TXD(串行口输出)P3.2 (外部中断0输入)P3.3 (外部中断1输入)P3.4T0定时器0的外部输入P3.5T1(定时器1的外部输入P3.6(写选通控制输入)P3.7 (读选通控制输入)(4) 控制引

19、脚RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。RST/Vpd(9脚):复位信号输入端(高电平有效)。第二功能:加+5V备用电源,可以实现掉电保护RAM信息不丢失。ALE/-PROG(30脚):地址锁存信号输出端。第二功能:编程脉冲输入。-PSEN(29脚):外部程序存储器读选通信号。-EA/Vpp(31脚):外部程序存储器使能端。第二功能:编程电压输入端(+21V)。2.1.2 中央处理器(CPU)CPU是单片机内部的核心部件, 是一个8位二进制数的中央处理单元, 主要由运算器、控制器和寄存器阵列构成。运算器用来完成算术运算和逻辑运算功能,它是A

20、T89C51内部处理各种信息的主要部件。运算器主要由算术逻辑单元(ALU)、累加器(ACC)、暂存寄存器(TMP1、TMP2)和状态寄存器(PSW)组成。控制器是单片机内部按一定时序协调工作的控制核心,是分析和执行指令的部件。 控制器主要由程序计数器PC、指令寄存器IR、指令译码器ID和定时控制逻辑电路等构成。程序计数器 PC是专门用于存放现行指令的16位地址的。CPU就是根据 PC中的地址 到ROM中去读取程序指令码和数据,并送给指令寄存器IR进行分析。指令寄存器 IR用于存放CPU根据PC地址从ROM 中读出的指令操作码。指令译码器 ID是用于分析指令操 作的部件,指令操作码经译码后产生相

21、应于某一特定操作的信号。定时控制逻辑中定时 部件用来产生脉冲序列和多种节拍脉冲。寄存器阵列是单片机内部的临时存储单元或固定用途单元,包括通用寄存器组和专用寄存器组。通用寄存器组用来存放过渡性的数据和地址,提高CPU的运行速度。专用寄存器组主要用来指示当前要执行指令的内存地址,存放特定的操作数,指示指令运行的状态等。2.1.3 定时器/计数器AT89C5内部有两个16位可编程定时器/计数器,简称为定时器 0(T0)和定时器 1(T1),T0和T1分别由两个8位寄存器构成,其中T0由TH0(高8位)和TL0(低8位)构成,T1由TH1(高8位)和TL1(低8位)构成。TH0、TL0、TH1、TL1

22、都是SFR中的特殊功能寄存器。T0和T1在TCON和TMOD的控制下可工作在定时器模式或计数器模式下,每种模式下又有不同的工作方式。当定时或计数溢出时还可申请中断。2.1.4中断系统单片机中的中断是指CPU暂停正在执行的原程序转而为中断源服务(执行中断服务 程序),在执行完中断服务程序后再回到原程序继续执行。中断系统是指能够处理上述中断过程所需要的部分电路。AT89C51的中断系统由中断源、中断允许控制器IE、中断优先级控制器IP、定时器控制器TCON(中断标志寄存器)等构成,IP、IE、 TCON均为SFR特殊功能寄存器(见表 2.2)。2.1.5 内部总线总线是用于传送信息的公共途径。总线

23、可分为数据总线、地址总线和控制总线。单 片机内的CPU、存储器、I/O接口等单元部件都是通过总线连接到一起的。采用总线结构可以减少信息传输线的根数,提高系统可靠性,增强系统灵活性。 89C51 单片机内部总线是单总线结构,即数据总线和地址总线是公用的。 2.2其他硬件模块2.2.1时钟与复位模块由电容,电位器,按键组成复位电路部分,该电路接于单片机的RESET端可以通过按键达到手动复位的效果,也可以通过电位器和电容组成上电复位电路。通过复位电路使单片机回到初始状态。图 2.2 复位电路图 2.3 晶振时钟电路2.2.2按键选择模块利用P1.0到P1.7与P3.1构成按键阵列,可以扫描十六个按键

24、,但本次设计只用到十个按键。2.2.3音频发生及放大器模块由非门(74LS04),三极管(9014),扬声器,电阻组成的外部驱动发音电路。该电路部分接于P3.0端引出,经过外部非门和三极管的驱动,通过扬声器发出音乐。2.3设计软件介绍本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试。2.3.1 PROTEUS软件简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及

25、外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持

26、IAR、Keil和MPLAB等多种编译器。 2.3.2 KEIL简介单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一

27、个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51生成的目标代码效率非常之高,多数语句生成

28、的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。西北工业大学明德学院毕业设计论文第三章 硬件设计3.1 总体设计框图图3.1总体设计框图3.2各部分硬件设计及其原理3.2.1 AT89C51简介AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造

29、,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3.2所示图3.2 AT89C51系列单片机3.2.2 LED显示电路设计与原理LED显示电路是由8个LED发光二极管组成,连接方式为共阳极,LED接到单片机的P1口,若为低电平,可使LED亮起。发光二极管的亮、灭由内部程序控制,8个LED发光二极管分别对应不同的音阶,所以LED会随着音阶的变化按规律亮、灭。3.2.3 时

30、钟振荡电路AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30PF10PF,而如果使用陶瓷振荡器建议选择40PF10PF。用户也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时

31、钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。振荡器电路图如下:图3.3 单片机内部、外部振荡电路3.3 系统硬件电路图及功能总体硬件电路实现功能如下,如图3.4所示1) 电路中用P3.2、P3.3控制按键。2) P1.0P1.7控制LED。3) P2.3控制蜂鸣器。4) 电路为12MHZ晶振频率工作,起振电路中C1、C2均为30PF。图3.4 硬件电路图31西北工业大学明德学院毕业设计论文第四章 软件设计硬件电路和软件程序是组成一个系统

32、不可缺少的两部分,二者的正确与否将直接影响整个程序的可实现性。在上一章中已经将整个系统的硬件部分作了介绍,在这一章中将就系统的软件部分加以分析说明。4.1音乐播放编码理论4.1.1 音调的确定不同音高的乐音是用C、D、E、F、G、A、B来表示,这7个字母就是音乐的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成简谱的1、2、3、4、5、6、7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐音的发音,所以叫“音调”,即Tone。把C、D、E、F、G、A、B这一组音的距离分成12个等份,每一个等份叫一个“半音”。两个音之间的距离有两个“半音”,就叫“全音”。在钢琴等键盘乐器

33、上,CD、DE、FG、GA、AB两音之间隔着一个黑键,他们之间的距离就是全音;EF、BC两音之间没有黑键相隔,它们之间的距离就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它们的左上角加上号或者b号的叫变化音。叫升记号,表示把音在原来的基础上升高半音,b叫降记音,表示在原来的基础上降低半音。例如高音DO的频率(1046Hz)刚好是中音DO的频率(523Hz)的一倍,中音DO的频率(523Hz)刚好是低音DO频率(266 Hz)的一倍;同样的,高音RE的频率(1175Hz)刚好是中音RE的频率(587Hz)的一倍,中音RE的频率(587Hz)刚好是低音RE频率(294 Hz)的一

34、倍。1)要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。2)利用AT89C51的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。此外结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。3)例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每

35、次技术956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系公式如下:N=Fi2FrN:计算值;Fi:内部计时一次为1us,故其频率为1MHz;4) 其计数值的求法如下:T=65536-N=65536-Fi2Fr例如:设K=65536,F=1000000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。高音的DO(1046Hz)的计算值T=65536-N=65536-Fi2Fr=65536-10000002Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627低音DO的T=65536-500000/523=645

36、80低音DO的T=65536-500000/1047=650595) C调各音符频率与计数值T的对照表如表4.1所示。表4.1 C调各音符频率与计数值T的对照表低音频率T参数中音频率T参数高音频率T参数Do2621908229Do523956115Do10465757Do2771805217Do554903108Do11095454Re2941701204Re587852102Re11755151Re3111608193Re62280497Re12454848Mi3301515182Mi65975991Mi13184545Fa3491433172Fa69871686Fa13974343Fa37

37、01351162Fa74067681Fa14804141So3921276153So78463877So15683838So4151205145So83160272So16613636La4401136136La88056868La17603434La4641078129La93253664La18653232Si4941012121Si98850661Si197630304.1.2音节编码do re mi fa so la si分别编码为17,重音do编为8,重音re编为9,停顿编为0。播放长度以十六分音符为单位(在本程序中为165ms),一拍即四分音符等于4个十六分音符,编为4,其它的播放

38、时间以此类推。音调作为编码的高4位,而播放时间作为低4位,如此音调和节拍就构成了一个编码。以0xff作为曲谱的结束标志。举例1:音调do,发音长度为两拍,即二分音符,将其编码为0x18。举例2:音调re,发音长度为半拍,即八分音符,将其编码为0x22歌曲播放的设计。先将歌曲的简谱进行编码,储存在一个数据类型为unsigned char 的数组中。程序从数组中取出一个数,然后分离出高4位得到音调,接着找出相应的值赋给定时器0,使之定时操作蜂鸣器,得出相应的音调;接着分离出该数的低4位,得到延时时间,接着调用软件延时。表4.4 简谱对应的简谱码、T值、节拍数简谱发音简谱码T值节拍码节拍数5低音SO

39、16426011/4拍6低音LA26440022/4拍7低音TI36452433/4拍1中音DO46458041拍2中音RE56468451又1/4拍3中音MI66477761又1/2拍4中音FA76482082拍5中音SO864898A2又1/2拍6中音LA964968C3拍7中音TIA65030F3又3/4拍1高音DOB650582高音REC651103高音MID651574高音FAE651785高音SOF652174.2 编程思路简述4.2.1编程描述要产生音频信号,只要算出某一音频的周期(频率的倒数),将此周期除以2即为半周期的时间,利用定时器计时此半周期时间,计时到后取反输出,重复此

40、过程即得到此频率的声音信号。此信号从P3.0脚输出。定时器T0工作在定时方式1,改变TH0及TL0,产生不同的音频频率。必须考虑到中断响应时间的影响,尤其在高音部分,若忽略中断响应时间,会使音频频率比标准值低几十Hz,相当于1/4音程,很容易听出来,对低音部分影响不大。一般中断响应时间为36个机器周期,经过反复试验取5个机器周期作为校正最为恰当,表2.1中所给的定时初值就是考虑中断响应后的定时常数。另外,为避免T1中断可能引起杂音,应将定时器T0中断设为高优先级。这样编写出来的程序播放的音与标准音叉进行差频校音,非常准确和谐。本设计中单片机晶振频率为11.0592MHz。每个音符使用两个字节。

41、低位字节(偶地址)代表音级,00H表示不发音(休止符),01H30H依次表示的音级为c、c、d、d、e、f、a3、a3、b3 ,详见表2.1。高位字节(奇地址)代表音符的时值(拍数),00H0FH依次表示拍数为1/8拍(0.10s)8拍(6.40s),见表2.2。乐曲的结束标志是两个字节:0FFH,0FFH。设计延时程序125ms,来控制节拍,并在延时中判断是否有停止键按下,以便随时停止音乐。改变延时程序的延迟时间,即可实现歌曲的快慢演奏。主程序的任务是按顺序读取数据表中的字节,根据情况调用音级子程序和演唱子程序,启动定时器T0;通过延时控制节拍,并循环回音级子程序,等待演唱完毕。要编写的乐谱

42、按要求以音符字节数据表的形式存放在程序中,改变乐曲就是通过改变该数据表的内容来实现的。主程序的任务是按顺序读取数据表中的字节,根据情况调用音级子程序和音长子程序,启动定时器T0;根据定时器T1应中断的次数,启动定时器T1。数据表读完后,根据所设置的循环演奏次数决定是否结束程序。音级子程序的任务是取出字节中的音级部分,分析TH0和TL0中应送入何值,送给33H,34H。演唱子程序的任务是取出对应频率值,并乘以2,启动T0,实现发音。之后执行延时程序,体现节拍,依此循环,直到音乐结束。定时器T0的中断服务程序任务是取反P3.0输出产生方波,重新为TH0,TL0送初值。定时器T1的中断服务程序任务是

43、:判断计数完成否,给373的控制端高或低电平,从而实现数据输出或禁止,达到二极管亮灭闪烁的效果。当乐曲较长时(超过254个字节),数据表指针溢出,应及时修改基址寄存器DPTR内容,即数据表的表头指针。4.2.2原理框图开始初始化查表调音符数据用延时产生节拍调键盘程序开中断一首曲子播完? YN图4.1 程序原理框图4.3总原理图及元器件清单元器件清单为:AT89C52,晶振,电容,电阻,排阻,按键,数码管,二极管,蜂鸣器,三极管。图4.2 总原理图第五章 结论此音乐播放器能够播放四首曲子,且用按键选择曲目,基本实现了设计要求。用数据线连上电脑充当电源,将已下载程序的单片机插入插座,按下P3.3口

44、的键可重复播放当前曲子,按下P3.4口的键可播放上一曲,按下P3.5口的键可播放下一曲,按下REST键实现复位,从第一首曲子开始。一位数码管显示歌曲曲目。二极管为流水灯,表示程序正在进行。致 谢感谢我的导师,严谨细致、一丝不苟的作风一直是我的榜样;他们循循善诱的教导和不拘一格的思路给予我无尽的启迪;感谢我的爸爸妈妈,在我毕设期间给我最大的支持;感谢我的室友们,是你们和我共同维系着彼此之间难忘的感情,希望你们以后更好!在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!参考文献1 曹巧媛,单片机原理及应用M

45、,北京:电子工业出版社,1997.72 赵秀珍,单永磊,单片机微型计算机原理及其应用M,北京:中国水利水电出版社,2001.83 张洪润,兰清华,单片机应用技术教程M,北京:清华大学出版社,1997.114 李华,MC51 系列单片机实用接口技术M,北京:北京航空航天大学出版社,1993.8:5 马忠梅,单片机的C语言Windows 环境编程宝典M,北京:北京航空航天大学出版社,2003.66 李广弟,单片机基础M,北京:北京航空航天大学出版社,2007.6毕业设计小结我的题目是音乐播放器硬软件的设计,开始做准备工作,查阅资料,看到同学们的小作品以及方案讲解,我对我的课题也有了信心。这次课程设

46、计我学到很多很多的东西,学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。不仅巩固了以前所学过的知识,比如熟悉了单片机引脚,指令功能,定时器的应用等,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。的确过程是困难的,但是看到自己的成品真的很开心,以后要多进行实践操作,提高各方面能力。附件: 程序清单#include #include #include #de

47、fine uchar unsigned char#define uint unsigned int#define w_c_add XBYTE0x2070 /* 写命令字地址 */#define w_d_add XBYTE0x2071 /* 写数据地址 */#define r_s_add XBYTE0x2072 /* 读状态字地址 */ #define r_d_add XBYTE0x2073 /* 读数据地址 */uchar code *xdata music;uchar code *xdata music_name;uchar code tab=0xf8,0x94,0xf9,0x5c,0xfa

48、,0x1a,0xfa,0x6a,0xfb,0x00,0xfb,0x8c,0xfc,0x0e, 0xfc,0x4a,0xfc,0xae,0xfd,0x08,0xfd,0x30,0xfd,0x80,0xfd,0xc6,0xfe,0x02, 0xfe,0x2a,0xfe,0x5c,0xfe,0x84,0xfe,0x98,0xfe,0xc0,0xfe,0xe8,0xfe,0x06;uchar code music_name120=0xc7,0xfa,0xc4,0xbf,0xd2,0xbb,0xa1,0xc3,0xc1,0xbd,0xd6,0xbb,0xc0,0xcf,0xbb,0xa2,0xef,0x

49、ff;/两只老虎 uchar code music1= 0x44,0x54,0x64,0x44,0x44,0x54,0x64,0x44,0x64,0x74,0x88,0x64, 0x74,0x88,0x82,0x92,0x82,0x72,0x64,0x44,0x82,0x92,0x82,0x72, 0x64,0x44,0x54,0x14,0x48,0x54,0x14,0x48,0x00; uchar code music_name220=0xc7,0xfa,0xc4,0xbf,0xb6,0xfe,0xa1,0xc3,0xc9,0xfa,0xc8,0xd5,0xbf,0xec,0xc0,0xd6

50、,0xff;/生日快乐uchar code music2=0x82,0x01,0x81,0x94,0x84,0xB4,0x04,0x04,0x82,0x01,0x81,0x94, 0x84,0xC4,0xB4,0x04,0x82,0x01,0x81,0xF4,0xD4,0xB4,0xA4,0x94, 0x04,0xE2,0x01,0xE1,0xD4,0xB4,0xC4,0xB4,0x04,0xff;uchar code music_name320=0xc7,0xfa,0xc4,0xbf,0xc8,0xfd,0xa1,0xc3,0xc1,0xba,0xd7,0xa3,0xff;/梁祝uchar

51、code music3=0x0A,0x10,0x0C,0x08,0x0D,0x04,0x0F,0x08,0x10,0x04,0x0D,0x04,0x0F,0x04,0x0C, 0x04,0x0F,0x04,0x0C,0x08,0x0C,0x10,0x0A,0x08,0x0C,0x02,0x0A,0x08,0x0C,0x08,0x0D,0x02,0x0E,0x04,0x10,0x04,0x0D,0x18,0x0C,0x04,0x0D,0x04,0x0F,0x08,0x10,0x04,0x13,0x08,0x11,0x08,0x10,0x08,0x11,0x04,0x10,0x04,0x0F,0x

52、08,0x0D,0x04,0x0C,0x04,0x0A ;uchar code music_name420=0xc7,0xfa,0xc4,0xbf,0xcb,0xc4,0xa1,0xc3,0xcd,0xac,0xd2,0xbb,0xca,0xd7,0xb8,0xe8,0xff;/同一首歌uchar code music4=0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02, 0x15,0x00, 0x0F,0x01, 0x15,0

53、x02, 0x1A,0x03, 0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03, 0x19,0x02, 0x1A,0x02;uchar code music_name520=0xc7,0xfa,0xc4,0xbf,0xce,0xe5,0xa1,0xc3,0xc1,0xbd,0xd6,0xbb,0xba,0xfb,0xb5,0xfb,0xff;/两只蝴蝶uchar code music5=0x17,0x03, 0x16,0x03

54、, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0

55、x17,0x03, 0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01, 0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x04,0x00;uchar code music_name620=0xc7,0xfa,0xc4,0xbf,0xc1,0xf9,0xa1,0xc3,0xbc,0xc7,0xca,0xc2,0xb1,0xbe,0xff;/记事本uchar code music6=0xA2,0xB2,0xD2,0xB2,0xA4,0xB2,0xD2,0xB2,0xA2,0x8

56、2,0x72,0x88, 0x72,0x82,0xA2,0x82,0x72,0x62,0x42,0x62,0x38,0x38,0xA4,0x02, 0xB2,0xA4,0x84,0x72,0x82,0x72,0x62,0x72,0x84,0x72,0x64,0x62, 0x12,0x34,0x02,0x42,0x38,0x38,0x44,0x02,0x32,0x44,0x64,0x72, 0x82,0x72,0x62,0x72,0x84,0xA2,0x72,0x74,0x82,0xA2,0x02,0xB2, 0x72,0x82,0xA2,0x84,0x72,0x82,0x72,0x62,0x4

57、8,0xff;uchar code music_name720=0xc7,0xfa,0xc4,0xbf,0xc6,0xdf,0xa1,0xc3,0xb5,0xb4,0xc6,0xf0,0xcb,0xab,0xbd,0xb0,0xff;/让我们荡起双桨uchar code music7=0x06,0x08,0x08,0x08,0x09,0x08,0x0A,0x18,0x0C,0x08,0x0A,0x08,0x08,0x08,0x09,0x10,0x06,0x20,0x00,0x08,0x08,0x08,0x09,0x08,0x0A,0x08,0x0C,0x18,0x00,0x01,0x0C,0x

58、08,0x0A,0x10,0x00,0x01,0x09,0x20,0x0A,0x18,0x0C,0x08,0x06,0x08,0x08,0x08,0x09,0x10,0x00,0x10,0x08,0x08,0x09,0x08,0x0A,0x10,0x0C,0x0B,0x00,0x01,0x0C,0x04,0x0D,0x10,0x0F,0x10,0x0E,0x08,0x0D,0x08,0x0C,0x08,0x0A,0x08,0x0D,0x40 ,0x00,0x01; uchar code music_name820=0xc7,0xfa,0xc4,0xbf,0xb0,0xcb,0xa1,0xc3,

59、0xcd,0xaf,0xc4,0xea,0xff;/童年uchar code music8=0x0A,0x08,0x0C,0x08,0x0C,0x10,0x0C,0x08,0x0A,0x08,0x0D,0x08,0x0D,0x08,0x0E,0x08,0x0D,0x08,0x0D,0x08,0x0D,0x08,0x0D,0x08,0x0C,0x08,0x0F,0x10,0x0F,0x08,0x0F,0x08,0x0F,0x08,0x0D,0x08,0x0F,0x08,0x0D,0x08,0x0C,0x40,0x0A,0x08,0x0C,0x08,0x0C,0x10,0x0C,0x08,0x0A,0x08,0x0D,0x08,0x0D,0x08,0

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!