基于单片机的电子音乐盒的设计与实现

合集下载

基于单片机的音乐盒设计

基于单片机的音乐盒设计

基于单片机的音乐盒设计音乐盒是一种小型的自动播放音乐的装置,它以其独特的装饰性和音乐的美妙而备受欢迎。

随着电子技术的发展,基于单片机的音乐盒也逐渐出现并成为主流。

本文将从硬件设计和软件设计两个方面介绍基于单片机的音乐盒设计。

一、硬件设计1.单片机选择单片机是音乐盒的核心控制器,其选择应根据功能需求和成本考虑。

常用的单片机有PIC、AVR和ARM等。

PIC系列单片机成本较低,易于上手,适合初学者使用。

AVR系列单片机性能较好,适合需要复杂功能的设计。

ARM系列单片机功能强大,适合需求较高的应用。

2.电源电路音乐盒的电源电路需要保证供电稳定,并根据电源需求选择适当的电池或适配器。

一般情况下,音乐盒可以采用锂电池供电,以方便携带和使用。

3.音乐模块音乐模块是音乐盒的关键组成部分,用于播放音乐。

音乐模块通常由音源芯片和音响组成。

音源芯片可以选择解码芯片或音频模块,用于解码和播放音乐文件。

音响部分可以选择扬声器或耳机输出,以提供清晰的音乐效果。

4.控制按钮和指示灯音乐盒需要设计控制按钮和指示灯,以便用户操作和状态显示。

控制按钮用于启动、暂停和切换音乐等操作,指示灯用于显示音乐播放状态和电源状态。

5.外部接口音乐盒可以设计外部接口,以便扩展功能。

常见的外部接口包括USB 接口、SD卡接口和蓝牙接口等。

二、软件设计1.系统框架音乐盒的软件设计可以采用简单的状态机或多任务系统。

简单的状态机可以实现音乐的播放、暂停和停止等基本功能。

多任务系统可以实现多个功能的并发运行,提高系统的灵活性。

2.音乐播放控制音乐盒的主要功能是播放音乐,因此需要设计音乐播放控制模块。

该模块可以提供音乐的选择、播放和暂停等功能。

可以通过中断或轮询方式检测按钮的状态,以实现用户的控制。

3.音量控制音乐盒通常需要设计音量控制功能,以满足用户的需求。

可以通过PWM方式控制音量大小,调节音量输出。

4.音乐存储和读取音乐盒需要设计音乐存储和读取模块,以方便用户选择和加载音乐。

基于单片机的音乐盒设计与实现

基于单片机的音乐盒设计与实现

基于单片机的音乐盒设计与实现【摘要】本文主要介绍了一款基于单片机的音乐盒的设计与实现过程。

在首先介绍了背景信息,说明了音乐盒在现代社会的重要性。

接着阐述了研究意义和研究目的,明确了本文的目标。

在详细介绍了硬件设计和软件设计的过程,包括音乐盒的整体架构和功能模块设计。

然后给出了实现步骤和系统测试的过程,确保音乐盒的正常运行。

最后对功能进行了优化,提升了用户体验。

在对设计过程进行了总结,展示了最终的成果,并展望了未来可能的改进方向。

通过本文的研究,可以为基于单片机的音乐盒设计提供一定的参考和借鉴价值。

【关键词】引言、背景介绍、研究意义、研究目的、硬件设计、软件设计、实现步骤、系统测试、功能优化、设计总结、成果展示、展望未来、音乐盒设计、单片机、制作、音乐播放、电路设计、程序编写、测试验证1. 引言1.1 背景介绍音乐盒是一种可以播放美妙乐曲的小型装置,通常由盒体、发声装置和旋钮组成。

随着科技的发展,传统的机械音乐盒逐渐被电子音乐盒所取代。

基于单片机的音乐盒设计与实现,正是将现代科技与传统音乐结合的产物。

基于单片机的音乐盒设计与实现,可以通过预先编程的方式实现多种音乐的存储和播放,同时可以实现音乐的自动循环和定时播放等功能。

这不仅增加了音乐盒的灵活性和功能性,也为人们提供了更加便利和多样化的音乐享受方式。

基于单片机的音乐盒设计与实现具有重要的研究意义和实际应用价值。

通过本篇文章的介绍,我们将深入探讨基于单片机的音乐盒设计与实现,为读者呈现一个全面的设计方案和实现步骤。

1.2 研究意义音乐盒是一种古老而具有浓厚艺术氛围的音乐播放器,它通过装置内置的音乐盘或者转动式音梭使得音乐发声。

在现代科技的不断发展下,基于单片机的音乐盒设计与实现成为了一个新的研究领域。

这种音乐盒不仅能够实现传统音乐盒的功能,更能够通过单片机的强大功能实现更多高级的音乐播放功能。

研究基于单片机的音乐盒设计与实现具有重要的意义。

基于单片机的音乐盒在硬件设计和软件设计上更加灵活多样,可以实现更多种类的音乐播放方式。

基于单片机的数字式音乐盒设计

基于单片机的数字式音乐盒设计

基于单片机的数字式音乐盒设计数字式音乐盒是一种音乐播放器,它通过数字技术存储和播放音乐。

基于单片机的数字式音乐盒可以使用单片机控制音乐的播放,实现音符和旋律的发声和控制。

本文将介绍如何设计一款基于单片机的数字式音乐盒。

一、音乐盒基本原理音乐盒是通过一个带有齿轮的转子,以弹簧的力量驱动,使得钢片受到磁力响应并发声,从而发出旋律。

数字式音乐盒是通过数字技术将音乐编码为数字信号,并存储在芯片中,通过解码器将数字信号还原为音符和旋律发声。

二、单片机控制电路设计1.芯片选择要设计一个数字式音乐盒,需要先选择一款合适的单片机,常用的有AT89C51、STC89C52等。

这里选择一款性能好且价格适中的STC89C52单片机。

2.存储器选型数字式音乐盒的数字信号需要存储在内存中,为了方便起见,使用一个4Mbit的Flash记忆芯片作为存储器。

3.音频输出电路数字信号需要通过解码器进行还原后才能通过音频输出电路输出。

可以使用一对耳机或者喇叭,同时需要用到音量电位器控制音量。

三、软件程序设计1.数字信号编解码算法的设计,可以使用目前较为流行的MIDI编码格式。

2.音乐信号输入模块设计,可以使用USB接口或SD卡接口。

3.数据接收模块设计,可以使用串行通信或者并行通信。

4.数字信号存储模块设计,使用Flash记忆芯片。

5.控制模块设计,实现单片机控制音乐盒的所有操作。

四、实现效果基于单片机的数字式音乐盒实现较为简单,但是需要注意以下几点:1.考虑使用定时器计算控制音乐的播放时间,保证旋律按照要求执行。

2.使用ADC(模拟-数字转换器)读取音量电位器值,对音量进行控制。

3.在使用USB接口时,需要有电路板,使得USB通信接口稳定,可靠。

基于单片机的数字式音乐盒是一种方便实用的音乐盒,通过数字技术的运用,实现了音乐的存储和播放,可广泛应用于各个领域中。

基于单片机实现的音乐盒设计

基于单片机实现的音乐盒设计

摘要本设计是采用单片机为核心设计的数字音乐盒。

具体硬件电路包括:AT89C2051单片机、音频发生器、音频放大器、按键电路、复位电路、时钟电路。

本音乐盒可以播放三首音乐,通过软件程序来控制单片机内部的定时器使其产生音乐频率,演奏出优美动听的音乐同时,用户通过选择按键电路来选择自己喜欢的音乐,同时具有播放\暂停功能。

与传统的机械式音乐盒相比,用单片机设计的音乐盒体积更小巧,且制作工艺简单,音质更优美能演奏出和弦音乐。

关键词:音乐盒AT89C2051播放\暂停AbstractThis design is used as the core design of single chip digital music box. Specific hardware circuit includes: AT89C2051 microcontroller, audio generator, audio amplifier, keypad circuit, reset circuit, clock circuit. The music box can play three songs, through the software program to control the microcontroller's internal timer frequency to produce music, playing the beautiful sounds of music at the same time, the user by selecting the button circuit to select your favorite music, both play \ pause function. With the traditional mechanical music box than a music box with a single chip design is more compact size and simple fabrication process, can play a sound more beautiful polyphonic music.Keywords: music box AT89C2051 Broadcast \ pause目录摘要 (i)Abstract (i)第一章绪论 (1)第一节选题目的及国内外发展情况 (1)一、选题目的 (1)二、国内外发展情况 (1)第二节设计所研究的内容及所做工作 (2)第二章方案论证 (3)第一节设计方案 (3)第二节设计方案的确定 (4)第三章音乐盒的硬件系统设计 (5)第一节音乐盒的硬件电路设计框图 (5)第二节控制系统的设计 (5)一、AT89C2051介绍 (5)二、时钟电路设计 (8)三、复位电路的设计 (10)第三节音频放大器的设计 (13)一、音频放大器的作用 (13)二、LM386的性能介绍 (13)第四节按键选择输入电路 (15)一、键盘接口设计 (15)二、按键识别方式 (16)三、键盘模块处理方式 (17)四、键盘设计实用技巧 (19)第四章音乐盒的软件系统设计 (20)第一节音符盒的发音原理 (20)一、音符频率 (20)二、音符节拍 (21)三、建立曲谱编码表 (23)第二节程序模块设计 (24)一、主程序模块设计 (24)二、音乐部分模块设计 (25)三、外部中断模块设计 (30)四、定时器模块设计 (31)第五章软硬件调试 (33)第一节硬件调试 (33)第二节软件调试 (34)第三节性能分析 (35)第六章抗干扰措施 (36)第一节干扰的来源及后果 (36)一、干扰的来源 (36)二、干扰产生的后果 (36)第二节硬件抗干扰设计 (37)第三节软件的抗干扰设计 (38)结束语 (39)参考文献 (40)附录一:音乐盒硬件电路原理图 (41)附录二:程序 (42)外文资料 (47)中文翻译 (53)致谢 (58)第一章绪论第一节选题目的及国内外发展情况一、选题目的通过设计电子音乐盒这个系统,有利于进一步巩固单片机的知识,将所学知识综合运用到实际当中来,并且提高自身的设计能力、动手操作能力以及解决问题的能力。

基于单片机的音乐盒设计毕业论文

基于单片机的音乐盒设计毕业论文

2014届本科毕业论文基于单片机的音乐盒设计姓名:张静伟系别:物理与电气信息学院专业:通信工程学号:100313037指导教师:吕广申2014年4月20日目录摘要与关键词 (II)0 引言.............................................................................................................................. 错误!未定义书签。

1 整体设计方案.............................................................................................................. 错误!未定义书签。

1.1 系统总体结构框图........................................................................................... 错误!未定义书签。

1.2 对音乐盒基本功能介绍................................................................................... 错误!未定义书签。

1.3 系统相关软件介绍........................................................................................... 错误!未定义书签。

2 系统整体硬件介绍...................................................................................................... 错误!未定义书签。

单片机的音乐盒设计报告

单片机的音乐盒设计报告

单片机的音乐盒设计报告一、引言音乐盒作为一种能够带来美妙旋律的装置,一直以来都深受人们的喜爱。

随着科技的不断发展,单片机技术的应用使得音乐盒的设计更加多样化和智能化。

本报告将详细介绍基于单片机的音乐盒的设计过程,包括硬件设计、软件编程以及最终的实现效果。

二、设计目标与需求本次设计的目标是制作一个基于单片机的音乐盒,能够播放多首预存的音乐曲目,并且可以通过按键进行曲目选择和控制播放暂停等功能。

具体需求如下:1、能够存储至少三首不同的音乐曲目。

2、具备简单直观的操作界面,通过按键实现曲目切换、播放暂停等功能。

3、具有良好的音质输出,能够清晰地播放音乐。

4、设计成本低,易于实现和维护。

三、硬件设计1、单片机选择选用 STC89C52 单片机作为核心控制器,其具有丰富的 I/O 端口和较高的性价比,能够满足本设计的需求。

2、存储模块使用 EEPROM 芯片(如 AT24C02)来存储音乐曲目数据,以便在掉电情况下仍能保存曲目信息。

3、音频输出模块采用无源蜂鸣器作为音频输出设备,通过单片机的 I/O 端口输出不同频率的方波信号来驱动蜂鸣器发声。

4、按键模块设置四个独立按键,分别用于曲目选择、播放、暂停和停止功能。

5、电源模块采用 5V 直流电源为整个系统供电。

四、软件设计1、编程语言选择使用 C 语言进行编程,具有较高的可读性和可移植性。

2、主程序流程系统初始化,包括单片机端口设置、EEPROM 读取等。

进入按键扫描循环,检测按键操作并执行相应的功能。

根据当前曲目播放状态,输出相应的音频信号。

3、音乐数据存储与读取将音乐曲目数据以特定的格式存储在 EEPROM 中,通过读取相应地址的数据来获取曲目信息。

4、音频信号产生根据不同的音符频率,计算出对应的方波周期,并通过定时器中断来产生相应频率的方波信号,驱动蜂鸣器发声。

五、系统实现与调试1、硬件焊接与组装按照设计原理图,将各个硬件模块焊接在电路板上,并进行组装和连接。

基于AT89C52单片机的音乐盒设计方案

基于AT89C52单片机的音乐盒设计方案

1/4和1/8节拍的时间设定
曲调值
DELAY 曲调值 DELAY
调4/4
125毫秒
调4/4 62毫秒
调3/4 调2/4
187毫秒 250毫秒
调3/4 94毫秒 调2/4 125毫秒
对于单片机来说,产生不同频率的脉冲是非
常方便的,利用单片机的定时/计数器来产生这样
的方波频率信号。因此,需要弄清楚音乐中的音
Page 3
传统音乐盒
Page 4
设计任务及要求
本设计是以AT89C52芯片的电路为基础,外
部加上放音设备,以此来实现音乐盒的硬件电
路,通过软件程序来控制单片机内部的定时器
■设 使其演奏出优美动听的音乐。用户可以按照自
■计 己的喜好选择音乐并将其转化成机器码存入单
■任 片机的存储器中。该系统具有很好的通用性,
21
基于AT89C52单片机的音乐盒设计
论文结构
1 2 3 4 5
■课题意义、任务及要求 ■应用软件简介 ■设计方案 ■设计结构 ■系统电路图
Page 2
设计意义
传统的音乐盒多是机械音乐盒,其工作原理是通过齿 轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击铁 片制成的琴键,从而发出声音但是,机械式的音乐盒体 积比较大,比较笨重,且发音单调。水、灰尘等外在因 素,容易使内部金属发音条变形,从而造成发音跑调。 另外,机械音乐盒放音时为了让音色稳定,必须放平不 ■设 能动摇,而且价格昂贵,不能实现大批量生产。 ■计 本文设计的音乐盒,是基于单片机设计制作的电子 ■意 式音乐盒。与传统的机械式音乐盒相比更小巧,能演奏 ■义 多个曲目且携带方便。电子式音乐盒动力来源是电池, 制作工艺简单,可进行批量生产,且价格便宜。基于单 片机制作的电子式音乐盒,控制功能强大,可根据需要 选歌,使用方便。根据存储容量的大小,可以尽可能多 的存储歌曲。另外,可以设计彩灯外观效果,使音乐盒 的功能更加丰富。

基于51单片机的音乐盒设计报告

基于51单片机的音乐盒设计报告

摘要本作品利用单片机的IO口对蜂鸣器输送不同频率的信号,让单片机发出不同音调的声音。

以“新年好”曲调为基础以C51为语法编出51音乐盒的程序。

根据电路图焊接了蜂鸣器模块与TX-1C51开发板用杜邦线进行连接。

除了蜂鸣器外接模块外还使用了1602液晶显示模块作为外设连接。

本人对单片机演奏音乐比较有兴趣。

在此,本人将就这方面的知识做一些简介,但愿能对单片机演奏音乐比较有兴趣而又不知其解的朋友能有所启迪。

一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。

因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。

音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。

一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。

因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。

音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。

关键词: 51单片机音乐盒液晶屏幕显示模块蜂鸣器模块 C51目录1 设计任务目的与要求 (1)1.1任务设计目的 (1)1.2任务要求 (1)2 模块及其原理介绍 (2)2.1蜂鸣器模块 (2)2.21602液晶显示模块 (2)3 设计方案 (3)3.1软件设计 (3)3.2硬件设计 (3)4 实验结果与数据分析 (4)4.1测试步骤 (4)4.2实验现象 (4)5 结论与问题讨论 (4)5.1完成设计的要求程度 (4)5.2遇到的问题以及解决办法 (4)5.3存在的不足及改进思路 (4)参考文献 (5)附录 (5)附录一:C51程序 (5)1 设计任务目的与要求1.1任务设计目的本人对单片机演奏音乐比较有兴趣,所以选择51音乐盒的题目。

本设计通过两个模块的制作并与开发板一并使用。

通过本次设计不止熟悉焊接和熟悉各个电子元器件,而且还提高了对外设模块使用单片机编程的技能。

基于51单片机的音乐盒的设计与实现

基于51单片机的音乐盒的设计与实现

沈阳航空航天大学课程设计报告课程设计名称:单片机系统综合课程设计课程设计题目:基于51单片机的音乐盒的设计与实现目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3实验环境 (2)第2章详细设计方案 (3)2.1硬件电路设计 (3)2.2主程序设计 (6)2.3功能模块的设计与实现 (7)第3章结果测试及分析 (10)3.1结果测试 (10)3.2结果分析 (10)参考文献 (11)附录1:元件清单 (12)附录2:总电路图 (13)附录3:程序代码 (14)第1章总体设计方案1.1设计原理电子音乐已广泛地应用于社会生活的各个领域。

其类型从音乐卡片到CD、MP3 等多种多样,制作原理也各不相同。

声音是通过振动产生的。

单片机对某一I/O 引脚以一定的频率循环置1和清0,这一引脚便产生一定频率的方波,该方波通过放大后作用于扬声器便产生一定频率的声音。

若改变输出方波的频率,产生的声音也就改变了。

通过控制输出方波的时间长短,声音的长短也就得到控制。

因此,根据乐谱,单片机就可产生电子音乐。

音乐中最关键的两个要素是音符和节拍。

单片机控制的音乐发生器系统由硬件电路和软件两部分构成。

利用单片机控制的电子音乐发生器软硬件上具有独特的优点,系统的开发周期短,成本低,电路制作容易。

更换歌曲时,硬件电路无需作任何修改,只需修改软件即可实现。

软件编程时,可用51系列单片机的汇编语言。

同时还可根据个人的习好通过软件改变节拍的延时时间,增加电子音乐的趣味性。

1.2 设计思路采用汇编语言程序设计的方法结合硬件电路设计方法,利用Lab6000实验箱上已有芯片来实现音乐盒的各项功能。

1)提出方案利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相就可在I/O脚上得到此频率的脉冲。

当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。

基于单片机的音乐盒设计与实现

基于单片机的音乐盒设计与实现

基于单片机的音乐盒设计与实现【摘要】本文介绍了基于单片机的音乐盒设计与实现。

在分别阐述了研究背景、研究意义以及研究目的。

在详细介绍了硬件设计、软件设计、系统测试、性能优化以及成果展示。

在总结了设计过程中的经验,展示了实现效果,并展望了未来的发展方向。

通过本文的介绍,读者可以了解如何利用单片机技术设计和实现一款音乐盒,并对其性能进行优化和展示。

这对于音乐爱好者和电子爱好者来说具有一定的参考意义,也为未来相关研究提供了一定的借鉴价值。

【关键词】单片机、音乐盒、设计、实现、硬件、软件、系统测试、性能优化、成果展示、设计总结、实现效果、展望未来、研究背景、研究意义、研究目的1. 引言1.1 研究背景音乐盒是一种可以播放音乐的机械装置,古老而优雅。

传统的音乐盒使用机械装置来播放音乐,但随着现代科技的发展,基于单片机的音乐盒逐渐成为了一种新的设计趋势。

单片机能够提供更多的功能和灵活性,使音乐盒的设计更加多样化和精致化。

本研究旨在通过基于单片机的音乐盒设计与实现,探索如何利用现代科技提升传统音乐盒的功能和性能,为人们带来更好的音乐享受体验。

通过对硬件设计、软件设计、系统测试、性能优化等方面的研究和实践,将为音乐盒的发展提供新的思路和方法。

1.2 研究意义基于单片机的音乐盒设计与实现,可以大大简化音乐盒的结构,提高音色的表现力,丰富音乐盒的功能。

通过程序控制,可以实现多种音色的切换、音乐曲目的调节和存储、音乐盒的智能化操作等功能,使其更加符合现代人的需求。

基于单片机的音乐盒设计与实现还可以促进传统音乐盒产业的转型升级,推动文化产业的发展。

通过将传统文化与现代科技相结合,可以为音乐盒行业注入新的活力,拓展音乐盒的市场空间,吸引更多年轻人关注和参与。

基于单片机的音乐盒设计与实现具有重要的研究意义,不仅可以提升音乐盒的艺术表现力和实用性,还可以推动音乐盒产业的发展,为传统文化的传承与创新做出贡献。

1.3 研究目的具体来说,本研究的目的主要包括以下几个方面:1. 设计一种能够支持多种音乐格式的音乐盒系统,以满足不同用户对音乐的需求。

基于51单片机的电子八音盒详细设计步骤

基于51单片机的电子八音盒详细设计步骤

一、设计目的利用8052单片机结合内部定时器设计一个八音盒,按下单键可以演奏预先设置的歌曲旋律。

二、设计要求其基本功能为:1,使用LED显示器来显示目前演奏的歌曲编号;2,具有8个按键操作来选择演奏哪一首歌曲;3,内建8首歌曲旋律,按下单键可以演奏歌曲。

三、设计器材T89C52单片机、晶振、八个按键、二位一体共阳极数码管、电阻电容若干、导线。

四、设计方案及分析设计思路:(1)选择8052单片机,通过T0定时中断,并配合P2.0引脚输出音频频率。

(2)P2.0引脚输出接蜂鸣器。

(3)通过P0口接LED。

(4)P1口接键盘,输入歌曲号。

音符产生方法:不同的音调有不同的频率。

频率不同,音调也就不同。

利用定时器,使其工作在模式1,定时中断,然后控制P2.0引脚的输出每次取反,就可以在P2.0的引脚输出相应的方波频率。

改变计数初值,就改变了频率。

定时器的定时时间等于半个周期,定时时间到就输出脉冲取反,重复此过程,就可在P2.0引脚得到一音频的脉冲。

如:中音1的频率=523HZ,周期T=1/523=1912us;定时器的定时时间为:T/2=1912/2us=956us;计算得TH0,TL0的计数初值THTL=64580下面是个音符计数初值节拍产生方法:音乐中的节拍用延时时间产生。

假设1/4拍执行一次延时程序,这1/2拍就执行两次延时程序,所以只要求出1/4延时时间,其余的节拍就是他的倍数。

为方便记谱,将节拍数也进行编码,如下:建立曲谱编码表:编谱用8位编码,高4位代表音符,低4位代表节拍。

如5 6中音5,中音6,都是1/2拍,则编码为:82H 92H程序清单:#include <reg52.h>#define uchar unsigned char#define uint unsigned int#define ulong unsigned longsbit SPEAK = P2^0;//接蜂鸣器管脚uchar th0_f;uchar tl0_f;uchar code SEG[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};uchar code jie8[8]={12,14,16,17,19,21,23,24};/**************************中断函数*******************************************/ timer0() interrupt 1{TL0=tl0_f;TH0=th0_f;SPEAK =~SPEAK; //取反音乐输出IO}/********************T0的值,及输出频率对照表***********************************/ uchar code freq[36*2]={0xA9,0xEF,//00220HZ ,1 //00x93,0xF0,//00233HZ ,1#0x73,0xF1,//00247HZ ,20x49,0xF2,//00262HZ ,2#0x07,0xF3,//00277HZ ,30xC8,0xF3,//00294HZ ,40x73,0xF4,//00311HZ ,4#0x1E,0xF5,//00330HZ ,50xB6,0xF5,//00349HZ ,5#0x4C,0xF6,//00370HZ ,60xD7,0xF6,//00392HZ ,6#0x5A,0xF7,//00415HZ ,70xD8,0xF7,//00440HZ 1 //120x4D,0xF8,//00466HZ 1# //130xBD,0xF8,//00494HZ 2 //140x24,0xF9,//00523HZ 2# //150x87,0xF9,//00554HZ 3 //160xE4,0xF9,//00587HZ 4 //170x3D,0xFA,//00622HZ 4# //180x90,0xFA,//00659HZ 5 //190xDE,0xFA,//00698HZ 5# //200x29,0xFB,//00740HZ 6 //210x6F,0xFB,//00784HZ 6# //220xB1,0xFB,//00831HZ 7 //230xEF,0xFB,//00880HZ `10x2A,0xFC,//00932HZ `1#0x62,0xFC,//00988HZ `20x95,0xFC,//01046HZ `2#0xC7,0xFC,//01109HZ `30xF6,0xFC,//01175HZ `40x22,0xFD,//01244HZ `4#0x4B,0xFD,//01318HZ `50x73,0xFD,//01397HZ `5#0x98,0xFD,//01480HZ `60xBB,0xFD,//01568HZ `6#0xDC,0xFD,//01661HZ `7 //35};/***************************音乐符号串解释函数****************************/ //入口:要解释的音乐符号串,输出的音调串,输出的时长串changedata(uchar *song,uchar *diao,uchar *jie){uchar i,i1,j;char gaodi; //高低+/-12音阶uchar banyin;//有没有半个升音阶uchar yinchang;//音长uchar code jie7[8]={0,12,14,16,17,19,21,23}; //C调的7个值*diao=*song;for(i=0,i1=0;;){gaodi=0; //高低=0banyin=0;//半音=0yinchang=4;//音长1拍if((*(song+i)=='|') || (*(song+i)==' ')) i++; //拍子间隔和一个空格过滤switch(*(song+i)){case ',': gaodi=-12;i++;//低音break;case '`': gaodi=12;i++; //高音break;}if(*(song+i)==0) //遇到0结束{*(diao+i1)=0; //加入结束标志0*(jie+i1)=0;return;}j=*(song+i)-0x30; i++; //取出基准音j=jie7[j]+gaodi; //加上高低音yinc: switch(*(song+i)){case '#': //有半音j加一个音阶i++;j++;goto yinc;case '-': //有一个音节加长yinchang+=4;i++;goto yinc;case '_': //有一个音节缩短yinchang/=2;i++;goto yinc;case '.': //有一个加半拍yinchang=yinchang+yinchang/2;i++;goto yinc;}*(diao+i1)=j; //记录音符*(jie+i1)=yinchang; //记录音长i1++;}}/******************************奏乐函数***************************************/ //入口:要演奏的音乐符号串void play(uchar *songdata){uchar i,c,j=0;uint n;uchar diaodata[48]; //音调缓冲uchar jiedata[48]; //音长缓冲changedata(songdata,diaodata,jiedata); //解释音乐符号串TR0=1;while(P1=0xff){for(i=0;diaodata[i]!=0;i++) //逐个符号演奏{tl0_f=freq[diaodata[i]*2]; //取出对应的定时值送给T0th0_f=freq[diaodata[i]*2+1];for(c=0;c<jiedata[i];c++) //按照音长延时{for(n=0;n<29500;n++); //29500if(P1!= 0xff)//((!K1)||(!K2)||(!K3)||(!K4))//发现按键,立即退出播放{TR0=0;return;}}TR0=0;for(n=0;n<460;n++); //音符间延时TR0=1;}}TR0=0;}//茉莉花uchar code molihua[]={"33_5_6_`1_`1_6_|55_6_5-|33_5_6_`1_`1_6_|55_6_5-|""5553_5_|665-|32_3_53_2_|11_2_1|"//"3_2_1_3_2.3_|56_`1_5-|23_5_2_3_1_,6_|,5-,61|"//"2.3_1_2-1_,6_|,5--"};//世上只有妈妈好uchar code mamahao[]={"6.5_35|`16_5_6-|35_6_53_2_|1_,6_5_3_2-|""2.3_55_6_|321-|5.3_2_1_,6_1_|,5--"};//小毛驴uchar code xiaomaolv[]={"1_1_1_3_|5_5_5_5_|6_6_6_`1|5-|""4_4_4_6_|3_3_3_3_|2_2_2_2_|5-"};//我是一只菠萝uchar code boluo[]={"1-|2_4_3_2_55|5_6_3_4_22|2_4_3_2_1_`1_7_6_|5_4_2_3_11|""2_4_3_2_55|5_6_3_4_22|2_4_3_2_1_5_2_3_|1---|"};//小星星uchar code xiaoxingxing[]={"1155|665-|4433|221-|""5544|332-|5544|332-|""1155|665-|4433|221-|"};//春天在哪里uchar code chuntian[]={"3_3_3_1_|,5,5_|3_3_3_1_|3-|5_5_3_1_|,5_,5_,5|,6_,7_1_3_|2-|" "3_3_3_1_|,5,5_|3_3_3_1_|3-|5_6_5_6_|5_4_3_1_|,5_3_|2_1_"};//两只老虎uchar code laohu[]={"1231|1231|345-|345-|""5_6_5_4_31|5_6_5_4_31|""151-|151-"};//就是爱你uchar code jiushiaini[]={"3_2_3_4_5,7_1_|1`1_7_7 5_6_|66_5_5_3_2_1_3_|4_,6_,7_1_32|" "3_2_3_4_5,7_1_|1`1_7_7_`3_|3-6_|5_4_.4_5_5-|4_,6_ ,7_1_32._1_|"};//黑白配uchar code heibai[]={"32345-|1,7123-|3,5,611-|"};//找朋友uchar code zhaopeng[]={"5_6_5_6_|5_6_5|5_`1_7_6_|5_6_5"};//数鸭子uchar code shuya[]={"313_3_1|3_3_5_6_5-|6_6_5_5_4_4_4|2_3_2_1_2"};//欢乐颂uchar code huanle[]={"3345|5432|1123|322-|3345|5432|1123|211-|"};//一分钱uchar code yifen[]={"5`1|6_`1_5|3_5_2_3_|5|3_5_6_`1_|5_6_5_3_|5_13_2"};//乐谱方式输入的音乐播放/*******************************主函数****************************************/ void main(void){P1=0xff;P0=SEG[0];TMOD = 0x01; //使用定时器0的16位工作模式TR0 = 0;ET0 = 1;EA = 1;while(1){switch(P1){case 0xfe:while(P1==0xfe){;}P0=SEG[1];play(molihua);SPEAK=0;break;//0 按下相应的键显示相对应的码值case 0xfd:while(P1==0xfd){;}P0=SEG[2];play(yifen);SPEAK=0;break;//1case 0xfb: while(P1==0xfb){;}P0=SEG[3];play(mamahao);SPEAK=0;break;//2case 0xf7: while(P1==0xf7){;}P0=SEG[4];play(xiaomaolv);SPEAK=0;break;//3case 0xef: while(P1==0xfe){;}P0=SEG[5];play(laohu);SPEAK=0;break;//4case 0xdf: while(P1==0xdf){;}P0=SEG[6];play(huanle);SPEAK=0;break;//5case 0xbf: while(P1==0xbf){;}P0=SEG[7];play(chuntian);SPEAK=0;break;//6case 0x7f: while(P1==0x7f){;}P0=SEG[8];play(zhaopeng);SPEAK=0;break;//7default: break;}TR0 = 0;}}五、问题分析与解决方法问题一:仿真问题仿真图画好之后,开始运行,数码管和发光二极管都没有反应。

单片机课程设计(含程序)——基于C51单片机的电子音乐盒

单片机课程设计(含程序)——基于C51单片机的电子音乐盒

单片机课程设计题目基于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仿真软件对硬件进行仿真调试,节约了设计时间。

单片机数字音乐盒设计

单片机数字音乐盒设计

单片机数字音乐盒设计
单片机数字音乐盒是一种基于单片机的音乐播放器,可以通过程序控制播放不同的音乐。

下面是一个简单的单片机数字音乐盒的设计思路:
1. 材料准备:
- 单片机:选择一种合适的单片机,如Arduino或者STM32等。

- 扬声器:选择一种合适的扬声器,可以是小型的音箱或者
蜂鸣器等。

- 按键:选择一组适量的按键,用于控制音乐的播放、暂停、切换等功能。

- 电源:准备一块适量的电源供电给单片机。

2. 程序设计:
- 编写单片机的控制程序,包括初始化单片机和音频模块、
判断按键输入、控制音乐的播放等功能。

- 将音乐转化为单片机可识别的数据,可以将音乐文件先转
化为.wav格式,再通过程序将.wav文件转化为单片机可以播
放的数据格式。

3. 连接电路:
- 将单片机与扬声器连接起来,通过合适的音频线连接扬声
器的输入端和单片机的输出端。

- 连接按键到单片机的输入口,使单片机可以接收到按键的
输入信号。

4. 调试测试:
- 将单片机与电源连接并上电。

- 通过按键测试音乐的播放、暂停和切换等功能。

- 如果出现问题,可以通过调试程序和检查电路连接等方式进行故障排除。

基于单片机的音乐盒设计与实现

基于单片机的音乐盒设计与实现

基于单片机的音乐盒设计与实现基于单片机的音乐盒设计与实现随着科技的发展,音乐盒这一传统的机械音乐装置逐渐被电子化取代。

基于单片机的音乐盒正是这样一种电子化的音乐装置,是将单片机技术应用到音乐盒中,使得音乐盒变得更加智能化、可编程化。

一、基本设计原理基于单片机的音乐盒的背后,是单片机自身拥有强大的控制和处理能力。

单片机芯片内部包含CPU、存储单元、外设接口等元件,在加上各种传感器,以及DAC和PWM模块等输出模块,可以实现音乐盒的很多功能。

其中,按键、红外遥控器等输入模块用于控制播放、停止、循环等音乐操作,DAC和PWM模块用于模拟音频输出,将数字信号转换成模拟信号,以输出最终的音乐。

二、硬件设计在具体实现基于单片机的音乐盒时,需要选用适当的硬件,并作出合理的硬件设计。

硬件设计可分为几个模块:1、输入模块:选择合适的按键、红外遥控器等。

按键通常采用矩阵式按键,这样可以减少I/O口的使用,而红外遥控器的选择需要根据传输距离和稳定性等因素进行考虑。

2、存储模块:存储模块通常选择闪存或SD卡,目的是保存音频文件。

SD卡常用于储存大量音乐文件,闪存则常用于储存音乐盒固件程序和一些小的音乐片段。

3、输出模块:输出模块一般选择DAC和PWM模块,DAC用于输出高质量的音频信号,PWM则用于输出普通音频信号。

4、控制模块:控制模块通常选择单片机芯片作为控制核心,以实现音乐盒的各种功能。

三、软件设计在软件设计方面,需要根据实际需求对程序进行编程。

编程语言通常使用C语言或汇编语言。

在编程时,需要先编写程序框架,再选用合适的算法进行实现。

1、程序框架设计:程序框架包括程序结构、函数定义及参数、全局变量定义等内容。

通常,程序框架的设计需要体现出程序的模块化思想,以便于程序的维护和升级。

2、算法选择:在实现音乐盒的功能时,需要选用合适的算法。

例如,音乐的循环播放可以采用计数器实现,按键功能可以通过中断实现等。

同时,需要根据实际需求对算法进行部分优化,提升程序效率,减少系统资源的消耗。

基于单片机的电子音乐盒的设计与实现

基于单片机的电子音乐盒的设计与实现

基于单片机的电子音乐盒的设计与实现引言:电子音乐盒是一种能够播放预先录制音乐的装置。

传统的音乐盒通常使用机械装置来驱动音乐的播放,而基于单片机的电子音乐盒则采用了电子技术来实现这一功能。

本文将介绍基于单片机的电子音乐盒的设计与实现。

设计方案:1.输入模块:输入模块主要负责接收用户的输入,包括选择音乐和设置播放模式。

可以使用按钮、旋钮或触摸屏等方式来作为输入设备。

当用户选择音乐或设置播放模式时,输入模块将会发送相应的信号给控制模块。

2.存储模块:存储模块用于存储音乐的数据,可以使用闪存、SD卡或EEPROM等存储设备。

音乐的数据可以通过计算机编程的方式进行录制和存储。

3.解码模块:解码模块是将存储模块中的音乐数据解码为可供音频输出的信号。

解码模块通常包括一个解码器芯片和一些辅助电路,用于将数字信号转换为模拟信号。

4.音频输出模块:音频输出模块用于将解码模块输出的音频信号转换为可听的声音。

音频输出模块通常包括一个功放芯片和声音放大器等辅助电路。

5.控制模块:控制模块是整个音乐盒的核心,它接收输入模块的信号,并根据输入信号来控制存储模块、解码模块和音频输出模块的工作。

控制模块通常由一块单片机芯片和一些外围电路组成。

实现步骤:1.设计音乐数据格式:根据实际需求设计音乐数据的存储格式,包括音符音高、音符时长等信息。

可以使用标准的音乐符号来表示音乐数据。

2.编写控制程序:使用适当的编程语言编写控制程序,程序可以根据输入信号来选择和播放音乐。

控制程序需要与输入模块、存储模块、解码模块和音频输出模块进行交互。

3.实现输入模块:根据设计方案中的输入要求选择合适的输入设备,并编写对应的驱动程序。

驱动程序可以根据用户的输入来改变控制程序的运行状态。

4.实现存储模块:选择合适的存储设备,并编写读取和写入音乐数据的程序。

存储模块的程序可以根据控制程序的请求来读取特定的音乐数据。

5.实现解码模块:选择合适的解码器芯片,并编写相应的解码程序。

基于单片机的音乐盒设计与实现

基于单片机的音乐盒设计与实现

基于单片机的音乐盒设计与实现作者:魏林海来源:《电脑知识与技术》2016年第16期摘要:通过以STC89C52单片机为核心,设计一款数字音乐盒。

该音乐盒主要由以下几部分组成:STC89C52单片机的最小系统,蜂鸣器电路,12864LCD显示电路,4*4矩阵键盘电路,LED灯闪烁电路;功能上实现读取乐谱上的信息并转化为单片机可用数据,通过驱动蜂鸣器实现音乐的播放。

在矩阵键盘上使用按键来选择十首歌曲的播放及相关控制,同时在液晶屏上显示音乐的相关信息。

硬件电路图布局以Altium Designer为设计平台,进行PCB设计,完成数字音乐盒的整体设计、实现。

关键词:单片机;音乐盒;蜂鸣器;LCD;PCB中图分类号:TP338 文献标识码:A 文章编号:1009-3044(2016)16-0234-03音乐是由人们在长期发展中为了表达各种情感而特别挑选出来的,并组成一个固定的系统[1]。

音乐以其具有大众的魅力,吸引着来自不同地域的人们共同欣赏着优美的音乐,激发调动人们埋藏在内心那已久的悸动。

同时,在21世纪,电子技术进入了辉煌的发展时期,其产生的电子产品也遍布社会的各个领域,在各行各业中单片机都在发挥着核心作用,如何将电子技术与音乐相融合,亦是研究热点之一。

本文通过利用单片机及音乐相关知识,设计一个以52单片机为核心元件的电子音乐盒,以满足功能多样、低成本、方便使用、小巧灵活等需求。

1 音乐盒设计框图及流程该音乐盒是以STC89C52单片机为核心,加上外围电路如:矩阵键盘电路、蜂鸣器电路、LCD电路、USB供电电路以及LED灯闪烁电路所组成的[2]。

音乐盒设计框图和流程图如图1、图2所示:2 系统软件设计2.1 音乐程序设计已知不同的音调有着不一样的频率,每个音调都有着不同的时间周期常数[3]。

用定时器T0对单片机进行定时,通过输出不同周期的方波给蜂鸣器来控制、发出需要的音调[4]。

从低音到高音每一个音调都有定时器T0对应的一个初值,由此当晶振为12MHz,可以列出音调与定时器T0初值的表1:通过表1,可以读出音乐简谱上每个音符对应的音调,读出对应的定时器T0的初值,让定时器T0工作在定时模式1,当计数从初值到最大值65536时溢出,并触发单片机某个管脚信号取反,所产生的就是所需要的音调频率,再通过蜂鸣器发出对应音调的声音。

基于单片机的数字式音乐盒设计

基于单片机的数字式音乐盒设计

基于单片机的数字式音乐盒设计一、引言音乐盒是一种能播放旋律的小型装置,常见于饰品或礼物中。

传统的音乐盒通常采用机械结构来产生音乐,但随着技术的进步,数字式音乐盒开始逐渐普及。

本文将以单片机为核心,设计一款数字式音乐盒,实现多种旋律的自由切换、音量调节和节拍设置。

二、硬件设计1.单片机选择由于单片机需要处理音乐播放的计算和控制,因此需要选择性能较高的单片机作为核心处理器。

常用的单片机有8051系列、PIC系列以及Arduino等。

本设计选择Arduino UNO作为单片机,因其性能稳定、易用性高。

2.音频模块与扬声器音频模块是用于产生音乐信号的模块,常见的有MP3解码芯片、DAC芯片等。

本设计选择MP3解码芯片作为音频模块,它可以播放预先录制好的音乐文件,并输出为模拟音频信号。

模拟音频信号经过放大电路后,驱动扬声器播放出声音。

3.控制模块与输入按键控制模块是用来接收用户输入指令,并进行相应的处理和控制的模块。

本设计选用几个按键作为输入,通过Arduino的数字IO口来接收按键信号,从而实现音乐切换、音量调节和节拍设置等功能。

4.电源模块电源模块用于为整个系统提供电能,一般选择DC电源或者电池供电。

本设计选择直流电源供电,通过稳压电路将输入电压稳定为单片机和其他模块所需的工作电压。

同时,为了方便携带和使用,电源模块还可以设计为可充电模式,减少电池更换的频率。

三、软件设计1.主程序框架软件设计的主程序框架分为三个模块:音乐播放控制模块、输入按键检测模块和音量调节模块。

主程序通过循环结构,不断检测按键输入,并根据用户的指令进行相应的处理和控制。

2.音乐播放控制模块音乐播放控制模块是整个设计的核心模块,它通过与MP3解码芯片的通信,实现音乐的自由切换。

MP3解码芯片可以将预先录制好的音乐文件保存在存储器中,通过与单片机的串行通信接口,将音乐数据传输到单片机中进行解码和播放。

音乐播放控制模块实现了音乐的播放、暂停、停止等操作,并提供了多个音乐旋律的选择。

基于单片机控制的电子音乐盒课程设计

基于单片机控制的电子音乐盒课程设计

摘要为了实现单片机控制音乐播放,此次毕业设计做出了尝试,即电子音乐盒的设计。

本设计采用了蜂鸣器发声来实现歌曲的播放,能保持基本音调不变,流畅播放出歌曲。

现选用AT89S51单片机。

主要设计模块包括数码管显示部分,功能键盘部分,蜂鸣器发声部分,彩灯部分。

数码管采用共阳极数码管,通过单片机P1口控制,实现歌曲序号的显示;功能键盘采用按键开关,通过单片机P3口控制,实现歌曲播放顺序的调换和暂停播放功能;蜂鸣器由单片机的P2口控制,实现歌曲播放;彩灯是由普通发光二极管代替,能实现单色长亮和闪烁效果。

主要工作过程是通过按下功能键实现上一首和下一首及暂停播放,同时有数码管显示当前播放歌曲的序号,蜂鸣器播放出音乐,当播放最后一首夜曲时还伴有彩灯闪烁。

此次设计要利用单片机及KeilC51编程软件编程和PROTEUS单片机仿真软件和电子电工等方面知识,用KeilC51编程软件编程,用PROTEUS单片机仿真软件仿真。

最后制作实物,将程序下载到单片机中,利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。

关键词:AT89S51单片机方波音调目录摘要 (I)目录 (II)第 1 章绪论 (1)第2章音乐盒总体设计 (2)2.1设计功能要求 (2)2.2总体设计原理 (2)2.3总体设计框图 (2)第3章芯片的选择和介绍 (4)3.1MCS-51系列单片机简介 (4)3.2单片机的选择 (4)3.2.1 AT89S51芯片介绍 (5)第4章系统硬件设计 (8)4.1电源电路 (8)4.2单片机最小系统 (9)4.3数码管显示部分 (10)4.4键盘部分 (11)4.4.1 按键开关 (11)4.4.2 轻触开关 (12)4.5蜂鸣器部分 (12)第5章系统软件设计 (13)5.1软件系统介绍 (13)5.2编程语言的选择..................................... 错误!未定义书签。

基于单片机的音乐盒研究与设计

基于单片机的音乐盒研究与设计

摘要随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。

小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。

传统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。

本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,功能多,外观效果多彩,使用方便,并具有一定的商业价值。

关键词:音乐盒;单片机;稳压电源ABSTRACTAlong with the development of human society, people of vision, hearing things put forward higher request. Small music box can bring good memories and improve people's spiritual culture. Traditional music box is heavy mechanical type, size, pronunciation and drab, cannot achieve batch production. This music box is the design of components single chip electronic music box, small volume, light weight, can play music, the function and the effect of exterior, colorful, easy to use, and has certain commercial value.KEY WORDS:M usic Box; Single Chip Micro-computer; Voltage Regulator Power Supply目录1 绪论 (1)1.1课题意义 (1)1.2主要研究工作 (2)2 音乐盒发音原理及程序设计 (3)2.1播放音乐的原理 (3)2.2音符频率的产生 (3)2.3节拍频率的产生 (5)2.4 歌曲的编码改写实例 (6)2.5 程序调试 (10)3 音频驱动电路的设计 (13)3.1 LM386的介绍 (13)3.2 音频驱动电路 (14)4 选歌按键的设计 (17)4.1按键概述 (17)4.2矩阵键盘的设计 (18)4.3键盘的抖动问题 (19)5 音乐盒显示部分 (20)5.1七段LED数码管结构 (20)5.2播放音乐序号的显示 (21)5.3播放音乐时间的显示 (21)5.3.1动态显示原理 (21)5.3.2动态显示驱动 (22)5.3.3 LED显示 (22)6 直流稳压电源 (23)6.1直流稳压电源的设计思路 (23)6.1.1桥式整流电路 (23)6.1.2滤波电路 (23)6.1.3集成稳压器 (24)6.1.4直流稳压电路图 (24)总结 (26)参考文献 (27)致谢 (28)基于单片机的音乐盒研究与设计1 绪论1.1课题意义音乐盒的起源,可追溯至中世纪欧洲文艺复兴时期。

基于单片机的电子音乐盒的设计与实现

基于单片机的电子音乐盒的设计与实现

课程设计报告设计名称基于单片机的电子音乐盒的设计与实现学校陕西电子科技职业学院学院电子工程学院学生姓名滕一帆班级1507学号 2013062040311指导教师聂弘颖时间2017年09月22日基于单片机的电子音乐盒的设计与实现一、设计目的为证明单片机可以通过软件程序控制硬件电路实现简单音乐播放器的功能,以此证明单片机的功能强大。

二、设计概述本课题是一个基于51单片机的电子音乐盒,依据单片机控制技术原理,设计出一个可以播放多首音乐的数字音乐盒,通过数码管显示当前是第几首音乐,系统设计了三个按键,具体功能:S1:暂停/播放;S2:加一首(下一首);S3:减一首(上一首)。

通过硬件电路制作以及以及软件编程,设计制作出一个多功能的电子音乐盒。

三、设计方案在这个系统的设计中,单片机采用51兼容系列的STC89C52RC 。

有以下几部分构成:电源电路、单片机最小系统、发声系统、键盘控制电路、显示电路。

经过论证后我确定的系统框图,如下图所示:四、设计原理1、原理本系统由单片机系统,独立按键、数码管组成。

利用I/O 口产生一定频率的方波,驱动扬声器,发生不同的音调,从而实现乐曲的演奏。

系统能通过功能键完成选择乐曲、播放、暂停、和复位的基本功能。

在播放乐曲的同时LCD 上显示所播放的歌曲序号,可以通过复位键使音乐盒从第一首歌曲重新播放,本系统成本低廉,功能强大实用。

51 单 片 机数字显示电路 键盘控制电路 发声控制电路电源电路单片机最小系统2、音乐基础简介<1>音乐频率表<2>音调表建立由于单片机输出为方波输入信号,波形图如下:高低电平各占1/2,根据单片机定时器工作原理。

定时时间=(满值-初值)X机器周期初值=满值-定时时间/机器周期=216-(1/f)X(1/2)X106以低音11为例,初值为=216-(1/262)X(1/2)X106=63627.6=63628同理得其他音调值,具体如下:Unsigned int code table[]={0,63628,63835,64021,64103,64260,64399,64523, 64579,64684,64777,64819,64898,64968,65030,65058,65110,65157,65178,65217,65252, 65282};<3>音乐表的建立我们以两只老虎音乐为例子,然后我们就会得到该音乐表Uchar code music1[]={8,4,9,4,10,4,8,4,9,4,10,4,8,4,10,4,11,4,12,8,10,4,11,4,12,8,12,3, 13,1,12,3,11,1,10,4,8,4,12,3,13,1,12,3,11,1,10,4,8,4,9,4,5,4,8,8,9,4,5,4,8,8,0,0xff};3、硬件电路设计1) 单片机最小系统在基于单片机的应用系统中,其核心是单片机的最小系统,而单片机又是最小系统的核心,为了方便起见,采用的型号是:STC89C52RC ,内部资源有:8kbflash ,512b sram ,4个8位I/O 口,2个TC ,1个UART ,带ISP 和IAP 功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告设计名称基于单片机的电子音乐盒的设计与实现学校陕西电子科技职业学院学院电子工程学院学生姓名滕一帆班级1507学号 *************指导教师聂弘颖时间2017年09月22日基于单片机的电子音乐盒的设计与实现一、设计目的为证明单片机可以通过软件程序控制硬件电路实现简单音乐播放器的功能,以此证明单片机的功能强大。

二、设计概述本课题是一个基于51单片机的电子音乐盒,依据单片机控制技术原理,设计出一个可以播放多首音乐的数字音乐盒,通过数码管显示当前是第几首音乐,系统设计了三个按键,具体功能:S1:暂停/播放;S2:加一首(下一首);S3:减一首(上一首)。

通过硬件电路制作以及以及软件编程,设计制作出一个多功能的电子音乐盒。

三、设计方案在这个系统的设计中,单片机采用51兼容系列的STC89C52RC 。

有以下几部分构成:电源电路、单片机最小系统、发声系统、键盘控制电路、显示电路。

经过论证后我确定的系统框图,如下图所示:四、设计原理1、原理本系统由单片机系统,独立按键、数码管组成。

利用I/O 口产生一定频率的方波,驱动扬声器,发生不同的音调,从而实现乐曲的演奏。

系统能通过功能键完成选择乐曲、播放、暂停、和复位的基本功能。

在播放乐曲的同时LCD 上显示所播放的歌曲序号,可以通过复位键使音乐盒从第一首歌曲重新播放,本系统成本低廉,功能强大实用。

51 单 片 机数字显示电路 键盘控制电路 发声控制电路电源电路单片机最小系统2、音乐基础简介<1>音乐频率表<2>音调表建立由于单片机输出为方波输入信号,波形图如下:高低电平各占1/2,根据单片机定时器工作原理。

定时时间=(满值-初值)X机器周期初值=满值-定时时间/机器周期=216-(1/f)X(1/2)X106以低音11为例,初值为=216-(1/262)X(1/2)X106=63627.6=63628同理得其他音调值,具体如下:Unsigned int code table[]={0,63628,63835,64021,64103,64260,64399,64523, 64579,64684,64777,64819,64898,64968,65030,65058,65110,65157,65178,65217,65252, 65282};<3>音乐表的建立我们以两只老虎音乐为例子,然后我们就会得到该音乐表Uchar code music1[]={8,4,9,4,10,4,8,4,9,4,10,4,8,4,10,4,11,4,12,8,10,4,11,4,12,8,12,3, 13,1,12,3,11,1,10,4,8,4,12,3,13,1,12,3,11,1,10,4,8,4,9,4,5,4,8,8,9,4,5,4,8,8,0,0xff};3、硬件电路设计1) 单片机最小系统在基于单片机的应用系统中,其核心是单片机的最小系统,而单片机又是最小系统的核心,为了方便起见,采用的型号是:STC89C52RC ,内部资源有:8kbflash ,512b sram ,4个8位I/O 口,2个TC ,1个UART ,带ISP 和IAP 功能。

是近年来流行的低端51单片机。

时钟电路采用12MHz 晶体,复位电路采用简单的RC 复位电路。

R 4=1K Ω,R 3=10K Ω,C 5=10Uf 。

2) 发声控制电路 音乐的发生器采用小喇叭,使用PNP 型三极管。

3)键盘控制电路通过安按键来控制乐曲的暂停/播放、加+、减-。

S1、S2、S3的功能设定如下。

S1暂停/播放;S2乐曲/+;S3乐曲/-。

4)音乐数目显示电路显示当前的乐曲序列。

为了直观的观察室哪一首曲子的效果,设置一位数码管显示,数码管需要接一个200-100Ω的电阻起分压作用。

4、程序流程图处理按键开始初始化检查按键有键按下?显示乐曲号播放乐曲该曲是否播放完?显示乐曲号+1所有曲子是否放完?五、仿真结果所仿真出来的结果,去掉N2905,声音变小了,加上之后声音变大了,额,第一首是两只老虎,第二首,我换成通天大道,不过没找到乐谱规律,错了,第三首是小兔子快开门,第四首新年好,第五首歌曲接连被放出来。

效果不错。

六、总结通过本次仿真作图,以及程序编写,仿真原图,和自己再画图,和程序再组合效果,依然不错,原图只是作为参考,其次,通过本次作业,明白,每一门课代表以后的每项工作,而这门课开设的原因估计是要我们认为,在一台机器,里面通过芯片,芯片的程序带动硬件,一件成品就出来了。

所以,软件和硬件属于相辅相成,在未来的世界中,是属于硬件和软件共存的时代,没有软件,硬件别想动;同理硬件也是一样的。

认可了工程师的伟大,以及程序员的厉害之处。

七、附录1、元件清单元件清单:2N2905、2W10G、7SEG-MPX2-CA A700127M004ATE018、AT89C52、BUTTON、BUZZER、CAP CRYSTAL、DIODE-LED、RES、SW-SPDT2、电路图3、程序代码#include"reg52.h"#define uchar unsigned char#define uint unsigned intsbit buzzer=P2^7;void delay(uint z);void scan();sbit S1=P3^1;sbit S2=P3^2;sbit S3=P3^3;bit flag=1;uchar buf,high,low,n;char i;uint sound;uchar code num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uint code table[]={0,63628,63835,64021,64103,64260,64399,64523,64579,64684,64777,64819,64898, 64968,65030,65058,65110,65157,65178,65217,65252,65282};uchar code music1[]={8,4,9,4,10,4,8,4,9,4,10,4,8,4,10,4,11,4,12,8,10,4,11,4,12,8,12,3,13,1,12,3,11,1,10, 4,8,4,12,3,13,1,12,3,11,1,10,4,8,4,9,4,5,4,8,8,9,4,5,4,8,8,0xff};uchar code music2[]={10,10,10,9,8,9,10,12,10,10,9,8,9,10,20,19,20,17,19,19,19,15,20,19,17,19,19,19, 15,16,17,16,19,17,16,15,16,19,8,20,19,19,8,20,19,17,19,20,8,8,20,19,10,10,12,9,8,8,0xff};uchar code music3[]={12,4,15,2,13,2,12,4,12,4,10,2,12,2,13,2,15,4,12,4,12,4,13,4,12,2,10,2,9,4,9,4,10, 4,12,2,10,2,9,2,10,2,8,4,13,4,12,4,13,4,12,4,13,4,12,4,10,4,13,4,12,4,12,2,12,2,10,2,9,2,8,2,8,8,2,8,2,9,2, 10,2,8,8,0xff};uchar code music4[]={8,3,8,3,8,3,5,3,10,3,10,3,10,3,8,4,8,3,10,3,12,3,12,4,10,3,11,3,10,3,9,6,9,3,10,3,11,3,11,4,10,3,9,3,10,3,8,4,8,3,10,3,9,3,5,4,7,3,9,3,8,6,0xff};uchar code music5[]={0,2,8,2,10,2,11,2,12,2,12,2,11,2,12,4,13,2,14,2,15,2,10,2,10,2,11,2,12,8,13,4,12, 2,11,2,12,2,15,2,15,4,13,4,13,2,14,2,15,4,14,4,12,4,10,2,11,2,10,2,11,2,12,4,13,2,14,2,15,4,14,2,13,2,12, 8,12,2,13,24,9,8,16,0xff};uchar code *menu[]={0,music1,music2,music3,music4,music5};uchar *p;char j;void int0() interrupt 0{if(S2==0){delay(1);if(S2==0){j++;if(j==6){j=1;}P0=num[j];TR0=0;TR1=0;n=0;i=3;p=menu[j];}delay(1);while(! S2);}}void int1() interrupt 2{if(S3==0){ delay(1);if(S3==0){ j--;if(j==0){j=5;}P0=num[j];TR0=0;TR1=0;n=0;i=3;p=menu[j];}delay(1);while(! S3);}}void t1() interrupt 3{TH1=(65536-50000)/256;TL1=(65536-50000)%256;n--;scan();}void t0() interrupt 1{TH0=high;TL0=low;buzzer=!buzzer;}void init(){TMOD=0x11;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;EX0=1;EX1=1;IT0=1;IT1=1;}void main(){init();while(1){for(j=1;j<6;j++){P0=num[i];i=0;p=menu[j];delay(200);while(p[i]!=0){buf=p[i];if(buf!=0){sound=table[buf];high=sound/256;low=sound%256;TH0=high;TL0=low;if(flag){TR0=1;}else{while(!flag);}}else{TR0=0;}i++;n=p[i]*2;TR1=1;while(n!=0);i++;}}}}void scan(){if(S1==0){delay(10);if(S1==0){flag=!flag;TR0=~TR0;}while(!S1){delay(10);}while(!S1);}}void delay(uint z){uint x,y;for(x=0;x<100;x++)for(y=0;y<z;y++);}。

相关文档
最新文档