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

上传人:仙人指路1688 文档编号:3980278 上传时间:2023-03-30 格式:DOC 页数:39 大小:786KB
返回 下载 相关 举报
毕业设计(论文)基于单片机控制的音乐播放器.doc_第1页
第1页 / 共39页
毕业设计(论文)基于单片机控制的音乐播放器.doc_第2页
第2页 / 共39页
毕业设计(论文)基于单片机控制的音乐播放器.doc_第3页
第3页 / 共39页
毕业设计(论文)基于单片机控制的音乐播放器.doc_第4页
第4页 / 共39页
毕业设计(论文)基于单片机控制的音乐播放器.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

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

1、单片机音乐播放器设计报告学生:XXX 指导教师:XXX内容摘要:单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。根据要求设计一款音乐播放器,能实现音乐播放的简单功能,同时为了美化,添加了韵律闪烁彩灯,设计时采用Keil软件编程,用protues软件仿真,核心器件采用灵活性高且价格低廉的AT89C51芯片。设计完成后系统可播放自编歌曲,同时发光二极管随着歌曲韵律闪烁。关键词:单片机 AT89C51 音乐播放英文标题Abstract: SCM has small, strong function, low cost, application, adva

2、ntages and intelligent control and automatic control of the core is the microcontroller. According to the requirements of a music player, design of music broadcast can realize simple function, and to beautify, added rhythm flashing lights, design is used when Keil C software programming, with protue

3、s software simulation, the core device adopts high flexibility and the price is cheap AT89C51 chip. The design is completed system can play Wrote songs, and leds with songs rhythm flicker. Keywords: SCM Temperature AT89C51 Music broadcast 前言:微机原理和接口技术是一门实践性强的学科,不但要求有较高的理论水平,而且还要求有实际的动手能力,其中很多的原量、规则、

4、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。本毕业设计的主要目的是提高实践能力,包括提高汇编等语言的编程能力及对接口等硬件的理解分析能力和设计接口电路的能力,在进行毕业设计的过程中,可以让学生体验分析问题、提出解决方案、通过编程等手段实现解决方案、不断调试最终达到设计要求的全过程,从而帮助学生系统地掌握微机原理的接口技术的相关知识,达到将知识融会贯通的目的。第1章 绪论一、单片机基础知识介绍(一)89c51单片机包括:一个8位的80c51微处理器,片内256字节数据存储器RAM/SFR,用以存放可以读写的数据,如运算的中间结果,最终结果以及欲显示的数据;片内4

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

6、中央处理器(CPU): CPU是单片机内部的核心部件,是一个8位二进制数的中央处理单元,主要由运算器、控制器和寄存器阵列构成。1运算器:运算器用来完成算术运算和逻辑运算功能,它是 89C51内部处理各种信息的主要部件。运算器主要由算术逻辑单元(ALU)、累加器(ACC)、暂存寄存器(TMP1、TMP2)和状态寄存器(PSW)组成。(1) 算术逻辑单元(ALU): 89C51中的ALU由加法器和一个布尔处理器组成。 (2) 累加器(ACC):用来存放参与算术运算和逻辑运算的一个操作数或运算的结果。(3) 暂存寄存器(TMP1、TMP2):用来存放参与算术运算和逻辑运算的另一个操作数,它对用户不开

7、放。(4) 状态寄存器(PSW):PSW是一个8位标志寄存器,用来存放ALU操作结果的有关状态。2控制器:控制器是单片机内部按一定时序协调工作的控制核心,是分析和执行指令的部件。控制器主要由程序计数器PC、指令寄存器IR、指令译码器ID和定时控制逻辑电路等构成。程序计数器PC是专门用于存放现行指令的16位地址的。CPU就是根据PC中的地址到ROM中去读取程序指令码和数据,并送给指令寄存器IR进行分析。指令寄存器IR用于存放CPU根据PC地址从ROM中读出的指令操作码。指令译码器ID是用于分析指令操作的部件,指令操作码经译码后产生相应于某一特定操作的信号。定时控制逻辑中定时部件用来产生脉冲序列和

8、多种节拍脉冲。 3寄存器阵列:寄存器阵列是单片机内部的临时存储单元或固定用途单元,包括通用寄存器组和专用寄存器组。通用寄存器组用来存放过渡性的数据和地址,提高CPU的运行速度。专用寄存器组主要用来指示当前要执行指令的内存地址,存放特定的操作数,指示指令运行的状态等。4存储器: 89C51单片机内部有256个字节的RAM数据存储器和4KB的闪存程序存储器(Flash),当不够使用时,可分别扩展为64 KB外部RAM存储器和64 KB外部程序存储器。它们的逻辑空间是分开的,并有各自的寻址机构和寻址方式。这种结构的单片机称为哈佛型结构单片机。程序存储器是可读不可写的,用于存放编好的程序和表格常数。数

9、据存储器是既可读也可写的,用于存放运算的中间结果,进行数据暂存及数据缓冲等。89C51单片机对外部电路进行控制或交换信息都是通过I/O端口进行的。单片机的I/O端口分为并行I/O端口和串行I/O端口,它们的结构和作用并不相同。(1)并行I/O端口: 89C51有四个8位并行I/O端口,分别命名为P0口、P1口、P2口和P3口,它们都是8位准双向口,每次可以并行输入或输出8位二进制信息。 (2)串行I/O端口:89C51有一个全双工的可编程串行I/O端口,它利用了P3口的第二功能,即将P3.1引脚作为串行数据的发送线TXD,将P3.0引脚作为串行数据的接收线RXD。 (三)定时器/计数器:89C

10、51内部有两个16位可编程定时器/计数器,简称为定时器0(T0)和定时器1(T1),T0和T1分别由两个8位寄存器构成,其中T0由TH0(高8位)和TL0(低8位)构成,T1由TH1(高8位)和TL1(低8位)构成。TH0、TL0、TH1、TL1都是SFR中的特殊功能寄存器。T0和T1在TCON和TMOD的控制下可工作在定时器模式或计数器模式下,每种模式下又有不同的工作方式。当定时或计数溢出时还可申请中断。(四)中断系统:单片机中的中断是指CPU暂停正在执行的原程序转而为中断源服务(执行中断服务程序),在执行完中断服务程序后再回到原程序继续执行。中断系统是指能够处理上述中断过程所需要的部分电路

11、。89C51的中断系统由中断源、中断允许控制器IE、中断优先级控制器IP、定时器控制器TCON(中断标志寄存器)等构成,IE、IP、TCON均为SFR特殊功能寄存器(见表2.2)。(五)内部总线:总线是用于传送信息的公共途径。总线可分为数据总线、地址总线和控制总线。单片机内的CPU、存储器、I/O接口等单元部件都是通过总线连接到一起的。采用总线结构可以减少信息传输线的根数,提高系统可靠性,增强系统灵活性。89C51单片机内部总线是单总线结构,即数据总线和地址总线是公用的。(六)89C51单片机引脚及其功能:89C51有40条引脚,与其他51系列单片机引脚是兼容的。这40条引脚可分为I/O端口线

12、、电源线、控制线、外接晶体线四部分。其封装形式有两种:双列直插封装(DIP)形式和方形封装形式,如图所示。 (a) 双列直插式封装 (b) 方形封装图1 89C51封装和引脚分配图(七)89C51单片机工作方式:单片机在开机时或在工作中因干扰而使程序失控或工作中程序处于某种死循环状态等情况下都需要复位。复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。1复位原理:89C51单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效,在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位。复位后,PC程序计数器的内容为00

13、00H,其他特殊功能寄存器的复位状态如表2.5所示。片内RAM中内容不变。2常用复位电路: 一般有上电复位、手动开关复位和自动复位电路三种,如图所示。 (a)上电复位电路;(b) 手动复位电路;(c) 自动复位电路图2 单片机复位电路图389C51时钟电路: 单片机内各部件之间有条不紊的协调工作,其控制信号是在一种基本节拍的指挥下按一定时间顺序发出的,这些控制信号在时间上的相互关系就是CPU时序。而产生这种基本节拍的电路就是振荡器和时钟电路。 89C51单片机内部有一个用于构成振荡器的单级反相放大器,如图所示。 图3 89C51内部振荡器电路图引脚XTAL1为反相器输入端,XTAL2为反相器输

14、出端。当在放大器两个引脚上外接一个晶体(或陶瓷振荡器)和电容组成的并联谐振电路作为反馈元件时,便构成一个自激振荡器,如下图所示。图4 内部振荡器等效电路图二、单片机的应用领域(一)在智能仪器仪表的应用: 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。(二)在家用电器中的应用:可以这样说,现

15、在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。(三)在工业控制中的应用: 用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。(四)在计算机网络和通信领域中的应用:现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电

16、话,集群移动通信,无线电对讲机等。(五)单片机在医用设备领域中的应用: 单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 此外,单片机在工商、金融、科研、教育、国防航空等领域都有着十分广泛的用途。 三、单片机的发展趋势 单片机现在可以说是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供了广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:(一)微型单片化: 现在常规的单片机普

17、遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。 此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系

18、统正朝微型化方向发展。(二)低功耗CMOS化:MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各 个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。像80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于要求低功耗像电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。(三)主流与多品种共存: 现在虽然单片机的品种繁多,各

19、具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机。所以80C51占据了半壁江山。而Microchip公司的PIC精简指令集合(RISC)也有着强劲的发展势头,中国台湾的HOLTEX公司近年的单片机产量与日俱增,与其底价质优的优势,占据一定的市场份额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补、相辅相成、共同发展的道路。 九十年代以后,单片机在结构上采用双CPU或内部流水线,CPU位数有

20、8位、16位、32位,时钟频率高达20MHZ,片内带有PWM输出、监视定时器WDT、可编程计数器阵列PCA、DMA传输、调制解调器等。芯片向高度集成化、低功耗方向的发展,使得单片机在大量数据的实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网等方面得到大量应用。这类单片机有NEC公司的MPD7800,MITSUBISHI公司的M337700,REVKWELL公司的R6500。四、课题概述基于单片机的音乐播放器可应用于mp3,MP4,扩音器等很多方面,并可作为很多系统的辅助功能,作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括Do、

21、Re、Me-等音阶在内的各种频率声音。将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。基于这个思想,我设计了一款特殊的音乐播放器,本播放器可实现播放、暂停、复位等功能。为了体现乐曲播放过程中的动态效果,增加了1只LED,作随机闪烁以指示旋律的节奏。由于时间及条件限制,本设计实现了一种简单的音乐播放器,其核心器件采用AT89C51单片机,本播放器具有电路简单,功能强大,易于拓展等特点。在此基础上,可以添加按键,LED显示屏等模块,实现切换歌曲,歌名显示,动感音乐屏等功能。第2章 系统硬件原理及设计一、核心器件AT89C51介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FP

22、EROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示

23、图1 AT89C51外形图及引脚序列(一)主要特性:.与MCS-51 兼容 .4K字节可编程闪烁存储器 .寿命:1000写/擦循环.数据保留时间:10年.全静态工作:0Hz-24MHz.三级程序存储器锁定.1288位内部RAM.32可编程I/O线.两个16位定时器/计数器.5个中断源 .可编程串行通道.低功耗的闲置和掉电模式.片内振荡器和时钟电路(二)管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,

24、P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存

25、储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /

26、INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)表1 P3口被选功能P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。

27、然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间

28、内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。(三)振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。(四)芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操

29、作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。二、硬件电路设计电路主要由AT89C51芯片,LED发光二极管,喇叭,晶振电路组成,由引脚输出定时器产生的各种固定频率的方波信号,然后由喇叭产生各种频率的声音。同理,方波信号通过发光二极管可以使二极管闪烁发光,产生韵律灯的效果。由于该方案中使用内部振荡

30、电路,XTAL1、XTAL2引脚外界石英晶体和微调电容构成的晶振电路。第三章 系统软件原理及设计总体原理:乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。 一、单片机产生不同频率脉冲信号的原理.要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。 .利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0

31、以产生不同频率的方法如下:例如,频率为523Hz,其周期天/523 S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。计数脉冲值与频率的关系公式如下:N=Fi/2/Fr(N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率 ).其计数值的求法如下:T=65536-N=65536-Fi/2/Fr计算举例:设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。T=65536-N=65536-Fi/2/Fr=6

32、5536-1000000/2/Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627中音DO的T=65536-500000/523=64580高音DO的T=65536-500000/1047=65059.C调个音符频率与计数值T的对照表如下表所示:音 符 频率(Hz) 简谱码(T值) 音 符 频率(Hz) 简谱码(T值)低1DO 262 63628 #4FA# 740 64860#1DO# 277 63731 中5SO 784 64898低2RE 294 63835 #5SO# 831 64923#2RE# 311 63928 中6LA 880 6496

33、8低3M 330 64103 #6 932 64994低4FA 349 64103 中7SI 988 65030#4FA# 370 64260 高1DO 1046 65058低5SO 392 64260 #1DO# 1109 65085#5SO# 415 64331 高2RE 1175 65110低6LA 440 64400 #2RE# 1245 65124#6 466 64463 高3M 1318 65157低7SI 494 64524 高4FA 1397 65178中1DO 523 64580 #4FA# 1480 65198表1 C调各音符频率与计数值T的对照表.每个音符使用1个字节,字

34、节的高4位代表音符的高低,低4位代表音符的节拍,下表为节拍码的对照。但如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如下表为1/4和1/8节拍的时间设定。 1/4节拍 1/8节拍节拍码 节拍数 节拍码 节拍数1 1/4拍 1 1/8拍2 2/4拍 2 1/4拍3 3/4拍 3 3/8拍4 1拍 4 1/2拍5 1又1/4拍 5 5/8拍6 1又1/2拍 6 3/4拍7 1又3/4拍 7 7/8拍8 2拍 8 1拍9 2又1/4拍 9 1又1

35、/8拍A 2又1/2拍 A 1又1/4拍B 2又3/4拍 B 1又3/8拍C 3拍 C 1又1/2拍D 3又1/4拍 D 1又5/8拍E 3又1/2拍 E 1又3/4拍F 3又3/4拍 F 1又7/8拍表1 节拍码对照表1/4节拍1/8节拍曲调值DELAY曲调值DELAY调4/4125毫秒调4/462毫秒调3/4187毫秒调3/494毫秒调2/4250毫秒调2/4125毫秒表1 各调节拍的时间设定表1/4拍的延迟时间=187毫秒DELAY: MOV R7,#2D2: MOV R4,#187D3: MOV R3,#248DJNZ R3,$DJNZ R4,D3DJNZ R7,D2RET.移调一般的

36、歌曲,有3/8、2/4、3/4、4/4等节拍类型,但不管有几拍,基本上是在C调下演奏的。如果是C调,则音名C唱Do,音名D唱Re,音名E唱Mi,音名E唱Mi,音名F唱Fa,音名G唱So,音名A唱La,音名B唱Ti等。但是,并不是所有的歌曲都是在C调下演奏的,还有D调、E调、F调、G调等。D调是将C调各音符上升一个频率实现的,即C调下的音名D在D调下唱Do,C调下的音名E在D调下唱Re,C大调的音名F在D调下上升高半音符F#唱Mi,C调下的音名G在D调下唱Fa,C调下的音名C在D调下上升高伴音C#符唱Ti。这种唱法称为移调。 音名 调DoReMiFaSoLaTiC调CDEFGABD调DEF#GA

37、BCE调EF#G#ABCDF调FGABCDEG调GABCDEF#A调ABC#DEF#G#B调BCDEFGA表1 C调在各调中的音名二、音乐软件的设计(一)音乐代码库的建立方法:.先找出乐曲的最低音和最高音范围,然后确定音符表T的顺序。.把T值表建立在TABLE1,构成发音符的计数值放在“TABLE”。.简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。 .音符节拍码00H为音乐结束标记。(二)选曲:在一个程序中,需要演奏两首或两首以上的歌曲时,音乐代码库的建立有两种方法:.将每首歌曲建立相互独立的音符表T和发音符计数值TABLE。.在建立公用音符表T后,再写

38、每首歌的发音计数值TABLE中的代码不管采用那种方法,每首歌曲结束时,在TABLE中均需加上音乐结束符00H。(三)歌曲的设计:下面以歌曲送别和三个和尚的设计为例,讲述歌曲在单片机中的实现。曲谱如下图所示:图1 图2从两首歌中可看出,最低音为低7Si,最高音为高1Do。根据音乐软件的设计方法,简谱对应的简谱码、T值、节拍数如表所示。简谱发音简谱码T值节拍码节拍数低7低音Si16452411/41中音Do26458022/42中音Re36468433/43中音Mi464777414中音Fa56482051+1/45中音So66489861+1/26中音La764968827中音Ti865030A

39、2+1/2高1高音Do965058C3低6低音LaA64400F3+3/4低5低音SoB64260表1 简谱对应的简谱码、T值、节拍数程序源代码如下:ORG 0000H LJMP START ORG 001BH LJMP TIME1START:MOV TMOD,#10H ;T1工作在方式1 MOV IE,#88H ;中断使能MAIN: MOV 40H,#00H ;设简谱码指针初始值NEXT: MOV A,40H ;简谱码指针暂存累加器A MOV DPTR,#TABLE ;设简谱码 MOVC A,A+DPTR CJNE A,#00H,PLAY ;取到的简谱码不是结束码,传PLAY取节拍码 LJM

40、P STOP ;是结束码,退出PLAY: MOV R1,A ;R1暂存简谱码 ANL A,#0FH ;取节拍码 MOV R2,A 节拍码暂存R2 MOV A,R1 ANL A,#0F0H ;取音符码 CJNE A,#00H,MUSIC ;音符码不为0,调发音子程序 CLR TR1 ;音符码为0,不发音 LJMP DELMUSIC:SWAP A DEC A MOV 22H,A ADD A,22H MOV R3,A MOV DPTR,#TABLE1 ;取相应计数值 MOVC A,A+DPTR MOV TH1,A ;暂存高位字节 MOV 21H,A MOV A,R3 INC A MOVC A,A+D

41、PTR ;取相应计数值的低位字节 MOV TL1,A ;暂存低位字节 MOV 20H,A SETB TR1 ;启动定时器DEL: LCALL DELAY INC 40H ;指向下一个简谱码 LJMP NEXTSTOP: CLR TR1 ;停止计时器 LJMP MAINTIME1:PUSH ACC ;现场保护 PUSH PSW CPL P1.7 ;P1.7反相输出,演奏音乐 MOV TL1,20H ;重设计数值 MOV TH1,21H POP PSW POP ACC RETIDELAY:MOV R7,#02H ;4/4曲调,演示125ms子程序DELA1:MOV R6,#125DELA2:MOV R5,#248 DJNZ R5,$ DJNZ R6,DELA2 DJNZ R7,DELA1

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号