电子音乐盒的设计
- 格式:doc
- 大小:1.09 MB
- 文档页数:18
基于单片机的音乐盒设计音乐盒是一种小型的自动播放音乐的装置,它以其独特的装饰性和音乐的美妙而备受欢迎。
随着电子技术的发展,基于单片机的音乐盒也逐渐出现并成为主流。
本文将从硬件设计和软件设计两个方面介绍基于单片机的音乐盒设计。
一、硬件设计1.单片机选择单片机是音乐盒的核心控制器,其选择应根据功能需求和成本考虑。
常用的单片机有PIC、AVR和ARM等。
PIC系列单片机成本较低,易于上手,适合初学者使用。
AVR系列单片机性能较好,适合需要复杂功能的设计。
ARM系列单片机功能强大,适合需求较高的应用。
2.电源电路音乐盒的电源电路需要保证供电稳定,并根据电源需求选择适当的电池或适配器。
一般情况下,音乐盒可以采用锂电池供电,以方便携带和使用。
3.音乐模块音乐模块是音乐盒的关键组成部分,用于播放音乐。
音乐模块通常由音源芯片和音响组成。
音源芯片可以选择解码芯片或音频模块,用于解码和播放音乐文件。
音响部分可以选择扬声器或耳机输出,以提供清晰的音乐效果。
4.控制按钮和指示灯音乐盒需要设计控制按钮和指示灯,以便用户操作和状态显示。
控制按钮用于启动、暂停和切换音乐等操作,指示灯用于显示音乐播放状态和电源状态。
5.外部接口音乐盒可以设计外部接口,以便扩展功能。
常见的外部接口包括USB 接口、SD卡接口和蓝牙接口等。
二、软件设计1.系统框架音乐盒的软件设计可以采用简单的状态机或多任务系统。
简单的状态机可以实现音乐的播放、暂停和停止等基本功能。
多任务系统可以实现多个功能的并发运行,提高系统的灵活性。
2.音乐播放控制音乐盒的主要功能是播放音乐,因此需要设计音乐播放控制模块。
该模块可以提供音乐的选择、播放和暂停等功能。
可以通过中断或轮询方式检测按钮的状态,以实现用户的控制。
3.音量控制音乐盒通常需要设计音量控制功能,以满足用户的需求。
可以通过PWM方式控制音量大小,调节音量输出。
4.音乐存储和读取音乐盒需要设计音乐存储和读取模块,以方便用户选择和加载音乐。
《数字音乐盒》设计报告
设计目标:
本数字音乐盒旨在提供一种方便、易用的音乐播放体验,让用户可以随时随地享受自己喜欢的音乐。
具体设计要求如下:
1. 支持多种音频格式,如MP3、FLAC等。
2. 采用简洁、直观的用户界面,方便用户操作。
3. 支持多种播放模式,如顺序播放、随机播放等,并且能够记忆用户播放模式。
4. 提供多种音效调节和均衡器设置,使用户可以自由调整音乐效果。
5. 支持歌词显示功能,使用户可以更好地理解音乐。
6. 支持歌曲收藏功能,使用户可以方便地收藏自己的喜爱歌曲。
设计思路与方案:
本数字音乐盒采用嵌入式系统设计,主要硬件部件包括音频芯片、显示屏幕和按键模块,其中音频芯片为核心部件,支持多种音频格式的解码和播放。
用户界面设计上,采用五向导航及确认键来进行操作,主界面分为“音乐播放”和“歌曲收藏”两大模块。
在“音乐播放”模块中,
用户可以选择不同的播放模式,包括顺序播放、随机播放和循环播放。
在播放过程中,用户可以通过前进、后退、暂停等操作来控制音乐播放进程。
同时,也提供了多种音效调节和均衡器设置,用户可以自行选择调整音乐效果。
在播放过程中,歌词会自动显示在屏幕上,方便用户理解歌曲。
在“歌曲收藏”模块中,用户可以收藏自己喜爱的歌曲,方便日后收听。
总结:
本数字音乐盒设计主要针对音乐爱好者,通过简洁、易用的界面设计和多种音效、播放模式等功能的设计,为用户提供了更为便捷、自由的音乐播放体验。
同时,歌曲收藏功能也使用户可以随时查找和收听自己喜爱的歌曲,满足用户对音乐的品质需求。
数字音乐盒课程设计一、课程目标知识目标:1. 让学生掌握数字音乐的基础知识,包括音符、音阶、节奏等概念;2. 培养学生运用电子设备进行音乐创作的能力,了解数字音乐盒的基本原理;3. 让学生了解不同音乐风格的特点,拓展音乐视野。
技能目标:1. 培养学生运用音乐软件进行创作、编辑和播放数字音乐的能力;2. 提高学生团队协作能力,学会与他人共同完成音乐作品;3. 培养学生创新思维,能够独立设计并制作具有个人特色的数字音乐作品。
情感态度价值观目标:1. 培养学生对音乐的热爱和兴趣,激发他们积极参与音乐活动的热情;2. 培养学生尊重他人作品,树立正确的版权意识;3. 通过音乐创作,培养学生审美观念,提高审美情趣。
分析课程性质、学生特点和教学要求,本课程目标旨在让五年级学生在掌握音乐基础知识的基础上,运用现代科技手段创作音乐作品。
课程将帮助学生将所学知识应用于实际操作中,培养他们的创新精神和团队协作能力,同时提高音乐素养,为今后的音乐学习打下坚实基础。
二、教学内容1. 数字音乐基础知识:音符、音阶、节奏、拍子等基本概念的学习,使学生能够理解音乐的基本元素。
- 教材章节:第一章《音乐的基础知识》- 内容列举:音符的识别、音阶的构成、节奏的练习。
2. 数字音乐创作:运用音乐软件(如GarageBand)进行音乐创作,了解数字音乐盒的工作原理。
- 教材章节:第二章《数字音乐创作》- 内容列举:音乐软件的介绍与操作、音色的选择与搭配、简单旋律的创作。
3. 音乐风格学习:学习不同音乐风格的特点,分析经典作品,培养学生音乐鉴赏能力。
- 教材章节:第三章《音乐风格》- 内容列举:流行音乐、古典音乐、民族音乐等风格的学习与鉴赏。
4. 团队协作与创作实践:分组进行音乐创作,培养学生团队协作能力和创新思维。
- 教材章节:第四章《音乐创作实践》- 内容列举:团队协作流程、音乐创作方法、作品展示与评价。
5. 音乐作品展示与评价:展示学生创作的数字音乐作品,进行自评、互评和教师评价,提高学生的审美观念。
课程设计(论文)说明书题目:带花样灯的电子音乐盒院(系):信息和通信学院专业:电子信息工程学生姓名:学号:指导教师:职称:2012年12月12日摘要本设计是一个基于AT89C52系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒,最终达到设计电路的乐器演奏、点歌、存储及显示功能。
设计中使用中断系统和定时/计数原理控制演奏器发声,对音乐发生所必须确定的音符和节拍分别用程序语言实现,可以用它来弹奏和播放乐曲。
本设计的特点是设计思路简单、清晰,成本低。
该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。
该电路使用两个按键控制音乐盒,一个用来切换歌曲,另一个用来切换八路LED的变化花样,本音乐盒共有五首歌曲,花样灯花样共计五种。
播放歌曲时,蜂鸣器发出某个音调,和之对应的LED亮起。
本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。
关键字:音乐盒;AT89C52单片机;KEIL;PROTEUS;AbstractThe design is based on a series of AT89C52 SCM Music Box.The design of a multi-function music box through the production of hardware andsoftware compilation, On the basis of the principles of microcomputer technology.The design use interruption system and timing / counting principle to control performance sound production, which used for playing the songs. And the music must determine the notes and beats program language to realize the separation of.The characteristic of this design is simple, clear design, low cost.The music box is mainly composed of a key circuit, reset circuit, clock circuit and a buzzer.The circuit using two buttons to control music box, a used to switch the song, another used to switch the 8 road LED change pattern。
曲阜师范大学单片机原理与应用课程设计报告题目电子音乐盒的设计姓名院系物理工程学院专业通信工程(物联网)指导教师职称讲师2015年月日注:课程设计等级:优秀(90-100),良好(80-89),中等(70-79),及格(60-69),不及格(60分以下)。
目录摘要 . (1)关键词 (1)Abstract (1)Key words (1)1 设计目的和要求 (2)1.1 设计目的 (2)1.2设计要求 (2)2 硬件电路设计 (2)2.1总体方案设计 (2)2.2器件选择 (3)2.2.1单片机的选择 (3)2.2.2 LCD1602简介 (3)2.3 单元电路设计 (6)2.3.1晶振电路 (6)2.3.2复位电路 (6)2.3.3键盘部分 (6)2.3.4 LCD显示电路 (7)2.3.5蜂鸣器部分 (7)2.4整体电路 (8)3 软件设计 (9)3.1 主程序流程图 (9)3.2音乐播放程序流程图 (10)4 系统调试 (10)4.1 原理图的绘制 (10)4.2仿真结果 (11)5 实物图 (11)总结 (12)参考文献 (12)附录 (13)电子音乐盒的设计通信工程(物联网)专业学生学生姓名武迪许艳军薛玉梅指导教师张明强摘要本设计采用了蜂鸣器发声来实现歌曲的播放,能保持基本音调不变,流畅播放出歌曲。
现选用AT89S52单片机。
主要设计模块包括数码管显示部分,功能键盘部分,蜂鸣器发声部分,彩灯部分。
数码管采用共阳极数码管,通过单片机P1口控制,实现歌曲序号的显示;功能键盘采用按键开关,通过单片机P3口控制,实现歌曲播放顺序的调换和暂停播放功能;蜂鸣器由单片机的P2口控制,实现歌曲播放;主要工作过程是通过按下功能键实现上一首和下一首及暂停播放,同时有数码管显示当前播放歌曲的序号,蜂鸣器播放出音乐。
此次设计要利用单片机及KeilC51编程软件编程和PROTEUS单片机仿真软件和电子电工等方面知识,用KeilC51编程软件编程,用PROTEUS单片机仿真软件仿真。
单片机课程设计题目基于C51单片机的电子音乐盒学院机电与信息工程学院专业电子信息工程年级 XXXX级学号XXXXXXXXXXXXXXXXXXXXXXXXXXX姓名 XXXXXXXXXXXXXXX指导教师 XXXXX成绩目录摘要 (1)Abstract (1)第一章绪论 (2)1.1背景 (2)1.2单片机概述 (2)1.3目的与意义 (2)第二章总体设计 (3)2.1总体设计 (3)2.2总体方案论证与设计 (3)2.2.1单片机选择 (3)第三章硬件设施 (4)3.1单片机简介 (4)3.2最小系统 (4)3.3按键电路 (4)3.4 LCD1602液晶显示电路 (5)3.5 PCB图 (8)3.6发声模块(功率放大) (8)第四章软件设计 (9)4.1软件模块及发声原理 (10)4.1.1音调的产生 (10)4.1.2节拍的确定 (12)4.2 软件设计流程 (14)4.3 发声程序 (15)4.4 按键电路设计 (16)4.5 LCD1602液晶显示电路设计 (17)4.5.1 LCD显示模块 (17)4.5.2 LCD延时模块 (19)第五章调试 (19)5.1硬件调试 (19)5.2软件调试 (21)5.3联合调试 (22)第六章总结 (22)附录1 总原理图 (23)附录2 程序 (23)1.主函数模块 (23)2.LCD模块 (30)3. LCD参数设定头文件 (31)4.LCD延时函数 (32)摘要本设计是一个基于STC89C51RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。
该音乐盒主要由按键电路、复位电路、时钟电路、喇叭以及LCD1602液晶显示系统组成。
本音乐盒共有四首歌曲,用3个按键控制上一曲下一曲以及暂停和恢复。
播放歌曲时,喇叭发出某个音调。
本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。
单片机系统课程设计成绩评定表设计课题基于89C51的数字音乐盒设计设计学院名称:电气工程学院专业班级:学生姓名:学号:指导教师:设计地点:设计时间:单片机系统课程设计课程设计名称:基于89C51的数字音乐盒设计专业班级:学生姓名:学号:指导教师:课程设计地点:课程设计时间:单片机系统课程设计任务书目录引言 (5)1 概述 (5)2 系统总体方案设计 (5)2.1硬件组成 (5)2.2.方案论证。
(6)2.3音乐盒的功能图用框图表示 (7)3硬件电路设计 (7)3.1单片机电路 (7)3.2 晶振电路 (8)3.3复位电路 (8)3.4键盘 (9)3.5蜂鸣器电路 (9)3.6 LCD液晶电路 (10)3.7电源电路 (11)4 软件设计 (11)4.1 音调、节拍、及编码的设置 (11)4.1.1音调 (11)4.1.2节拍的确定 (13)4.2 (15)4.3播放音乐子程序流程图(包含了键盘扫描) (16)4.4定时器0中断服务子程序框图: (16)5,调试 (17)5.1 检查硬件连接 (17)5.2 检查软件系统 (17)5.2.1. (17)5.2.2. (18)5.3测试结果 (18)5.3.1整体运行图 (18)5.3.2LED灯运行图 (19)6 总结 (19)7参考文献 (20)附录A (20)附录B (21)引言在电子信息技术飞速发展的今天,现代电子产品几乎渗透了社会的各个领域,它不仅推动了社会的进步,而且为我们的生活带来了诸多的便利。
由于人们生活质量的提高,人们对视觉、听觉方面的享受提出了越来越高的要求。
小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。
传统音乐盒多是机械型的,体积笨重,发音单调,可以选择的曲目较为单一。
本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,它体积小,重量轻,可以随心添加自己喜欢的音乐,外观效果多彩,使用方便,并且具有一定的商业价值。
数字音乐盒设计摘要电子音乐已广泛的应用于社会生活的各个领域,其类型从音乐卡片到CD、MP3等多种多样。
利用单片机控制的电子音乐发生器软硬件上具有独特的优点,系统的开发周期短,成本低,电路制作容易。
更换歌曲时,硬件电路无需作任何修改,只需修改软件即可实现。
本文设计了单片机控制的音乐发生器系统,主要有硬件电路设计和软件设计两部分。
硬件方面选择内部存储资源丰富的AT89C51单片机,时钟采用12MHz晶体振荡电路,软件方面使用汇编语言,同时还可根据个人的习好通过软件改变节拍的延时时间,增加电子音乐的趣味性。
关键字:AT89C51芯片,LED数码管,LED显示器,蜂鸣器。
目录一、相关知识介绍 (1)(一)单片机音乐盒介绍 (1)(二)显示屏控制技术状况 (3)二、总体方案论证与设计 (4)(一)单片机的选取 (4)(二)LED显示方式 (4)(三)LED驱动模式 (5)(四)系统总体结构框图 (5)(一)AT89C51 芯片功能和硬件连接 (6)(二)LED显示器 (8)(三)键盘 (9)(四)系统复位电路的设计 (10)(五)时钟电路模块 (10)(六)输出显示电路 (11)(七)音频输出部分 (11)(八)整体硬件电路 (12)四、系统软件设计 (13)(一)主模块的设计 (13)(二)外部中断源系统设计 (13)(三)基本显示模块设计 (14)(四)系统初始化程序 (15)(五)音调、节拍以及编码的确定方法 (15)(六)程序流程 (19)(七)文档顶端程序清单 (19)五、调试结果 (26)(一)系统总电路图 (26)(二)运行结果及分析 (26)设计小结 (28)参考文献 (29)致谢.....................................................................................................错误!未定义书签。
电子音乐盒的设计—电线路实现训练一、设计任务 (1)二、方案与论证 (1)三、系统硬件设计 (1)(一)系统总框图 (1)(二)器件选择 (1)单片机的选择 (1)LCD1602简介 (2)(三)原理图设计 (2)晶振电路 (2)复位电路 (2)四、系统软件设计 (5)主程序流程图 (5)音乐播放程序流程图 (7)五、总结与展望 (9)六、参考文献 (10)附录一; 系统总电路 (10)附录二:源代码 (10)一、设计任务⏹查阅资料,了解单片机控制单音喇叭发声原理;⏹设计基于单片机的电子音乐盒;⏹通过按钮可选择不同的音乐;⏹其他功能(创新部分);⏹画出完整的电路原理图(包含电源部分)和PCB板图。
二、方案与论证(1) 利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲(内存四首乐曲);(2) 用LCD显示歌曲序号和歌曲名字;(3) 通过功能键进行选择歌曲和暂停的操作。
三、系统硬件设计(一)系统总框图图1 总体方案图(二)器件选择单片机的选择采用ATMEL公司生产的AT89C51单片机作为电子音乐盒的核心部件,AT89C51是美国A TMEL公司生产的低电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL 公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。
LCD1602简介LCD液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。
液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA 移动通信工具等众多领域。
(三)原理图设计晶振电路单片机需要一个时间基准来为各种操作提供秩序,此电路叫时钟电路,采用不同的接线方式可以获得不同时钟电路,有内部时钟电路和外部时钟电路,外部时钟电路会使电路复杂,故采用的是内部时钟电路。
时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器.本系统采用的为12MHz的晶振,一个机器周期为1us,C1,C2为30uF。
复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
复位电路分为上电自动复位和按键手动复位,如图2所示。
RST引脚是复位信号的输入端,复位信号是高电平有效.这次采用的是手动复位,复位通过电容C3,C4和电阻R1,R2来实现,按键手动复位是图中复位键来实现的。
图 2 晶振与复位电路键盘部分键盘是由一组按压式或触摸式开关构成的阵列,是一种常用的输入设备。
键盘可分为编码式键盘和非编码式键盘两种。
1.编码键盘通过硬件电路产生被按按键的键码,这种键盘所需程序简单,但硬件电路复杂、价格昂贵通常不被单片机系统采用。
2.非编码键盘常用一些按键排列成行列矩阵,其硬件逻辑与按键编码不存在严格的对应关系,而要由所用的程序来决定。
非编码键盘的硬件接口简单,但是要占用较多的CPU 时间,通常采用可编程键盘管理芯片来克服这个缺点。
本设计使用两种按键,一种是按键式非编码键盘和轻触式非编码开关。
图 3 键盘电路LCD显示电路LCD的8根数据线与P1口相连,RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
R/W为读写信号线,RS与P2.0相连,由P2.0控制LCD的写指令或写数据操作。
R/W与P2.1相连,由P2.1决定是读操作还是写操作。
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
E端与P2.2相连。
图4 LCD显示电路蜂鸣器部分一般所指的蜂鸣器是以压电陶瓷为主要元件的。
压电陶瓷是一类有将压力与电流相互转换能力的特殊陶瓷。
这种能力缘于其特殊的晶体结构。
当压电陶瓷在一定方向上受到一个压力使其晶体结构发生形变时,它就会在内部产生一个电流,并且电流的变化与压力的变化密切相关。
反之亦然。
所以利用这一特性,在压电陶瓷上通过一定频率的电流,就会引起压电陶瓷微小形变,这一形变带动空气发生振动,如果频率适当,就可以被人耳所听见,也就是产生了蜂鸣声。
由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。
图5 蜂鸣器电路四、系统软件设计主程序流程图图 6 主程序流程图主程序:void main(){ uint i;k=8;init();for(i=0;i<15;i++){WriteData(tab[i]); //LCD写数据函数写第一行mydelay(50);}mydelay(1000);WriteCMD(0x80+0x40+2); //将指针设到第二行空两字符for(i=0;i<6;i++){WriteData(tab1[i]);mydelay(50);}InitialSound(); //发音初始化程序while(1){ Getch(); //扫描键盘,获得键值if(k==0) //若键值为0{ uint i;init();for(i=0;i<10;i++){WriteData(tab2[i]); //写第一首歌序号mydelay(50);}mydelay(1000);WriteCMD(0x80+0x40); //转到第二行for(i=0;i<9;i++){ WriteData(tab3[i]); //写歌名mydelay(50);}Play(Music_Girl,0,3,360); //播放第一首歌Delay1ms(500);break;}else if (k==1) //若键值为1{ uint i;init();for(i=0;i<11;i++){ WriteData(tab4[i]); //写第二首歌序号mydelay(50);}mydelay(1000);WriteCMD(0x80+0x40); //转到第二行for(i=0;i<11;i++){WriteData(tab5[i]); //写歌名mydelay(50);}Play(Music_Jingle,0,3,360); //播放第二首歌Delay1ms(500);break;}else if (k==2) //若键值为2{ uint i;init();for(i=0;i<10;i++){ WriteData(tab6[i]); //写第三首歌序号mydelay(50);}mydelay(1000);//WriteCMD(0x01);WriteCMD(0x80+0x40); //转到第二行for(i=0;i<6;i++){WriteData(tab7[i]); //写歌名mydelay(50);}Play(Music_Two,0,3,360); //播放第三首歌Delay1ms(500);break;}else if (k==3) //若键值为3{ uint i;init();for(i=0;i<10;i++){ WriteData(tab8[i]); //写第四首歌序号mydelay(50);}mydelay(1000);WriteCMD(0x80+0x40); //转到第二行for(i=0;i<6;i++){ WriteData(tab9[i]); //写歌名mydelay(50);}Play(Music_Four,0,3,360); //播放第三首歌Delay1ms(500);break;}}}音乐播放程序流程图图7 音乐播放程序流程图音乐播放程序:void Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int Speed){unsigned int NewFreTab[12]; //新的频率表unsigned char i,j;unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength;unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;for(i=0;i<12;i++) // 根据调号及升降八度来生成新的频率表{j = i + Signature;if(j > 11){j = j-12;NewFreTab[i] = FreTab[j]*2;}elseNewFreTab[i] = FreTab[j];if(Octachord == 1)NewFreTab[i]>>=2;else if(Octachord == 3)NewFreTab[i]<<=2;}SoundLength = 0;while(Sound[SoundLength] != 0x00) //计算歌曲长度{SoundLength+=2;}Point = 0;Tone = Sound[Point];Length = Sound[Point+1]; // 读出第一个音符和它时时值LDiv0 = 12000/Speed; // 算出1分音符的长度(几个10ms)LDiv4 = LDiv0/4; // 算出4分音符的长度LDiv4 = LDiv4-LDiv4*SOUND_SPACE; // 普通音最长间隔标准TR0 = 0;TR1 = 1;while(Point < SoundLength&&K1==1) //歌曲代码未放完且暂停键未被按下{SL=Tone%10; //计算出音符SM=Tone/10%10; //计算出高低音SH=Tone/100; //计算出是否升半CurrentFre = NewFreTab[SignTab[SL-1]+SH]; //查出对应音符的频率if(SL!=0){if (SM==1) CurrentFre >>= 2; //低音if (SM==3) CurrentFre <<= 2; //高音Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);//计算计数器初值Sound_Temp_TH0 = Temp_T/256;Sound_Temp_TL0 = Temp_T%256;TH0 = Sound_Temp_TH0;TL0 = Sound_Temp_TL0 + 12; //加12是对中断延时的补偿}SLen=LengthTab[Length%10]; //算出是几分音符XG=Length/10%10; //算出音符类型(0普通1连音2顿音)FD=Length/100;LDiv=LDiv0/SLen; //算出连音音符演奏的长度(多少个10ms)if (FD==1)LDiv=LDiv+LDiv/2;if(XG!=1)if(XG==0) //算出普通音符的演奏长度if (SLen<=4)LDiv1=LDiv-LDiv4;elseLDiv1=LDiv*SOUND_SPACE;elseLDiv1=LDiv/2; //算出顿音的演奏长度elseLDiv1=LDiv;if(SL==0) LDiv1=0;LDiv2=LDiv-LDiv1; //算出不发音的长度if (SL!=0){TR0=1;for(i=LDiv1;i>0;i--) //发规定长度的音{while(TF1==0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;}}if(LDiv2!=0){TR0=0; BeepIO=0;for(i=LDiv2;i>0;i--) //音符间的间隔{while(TF1==0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;}}Point+=2;Tone=Sound[Point];Length=Sound[Point+1];}BeepIO = 0;五、总结与展望回想起此次课题设计的过程,从选题到编程,从理论到实践,在近两周的日子里,我们组花了很多的心血,当然这一切都在最后得到了回报,从中学到很多的东西,不但巩固了以前所学过的知识,而且对单片机原理课外知识也得到了拓展。