基于单片机的电子音乐盒
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1引言 (3)
2系统总体设计 (3)
2.1系统组成框图 (3)
2.2音乐盒的功能结构图及说明 (4)
2.3 电子琴的功能结构图及说明 (4)
2.4设计软件 (5)
2.4.1 proteus (5)
2.4.2 keil (5)
3 硬件设计 (6)
3.1 AT89C51简介 (6)
3.2 复位电路和时钟电路 (7)
3.2.1 复位电路 (8)
3.2.2 时钟电路 (8)
3.3 按键电路 (9)
3.4 4*4矩阵键盘电子琴 (9)
3.5 数码管 (10)
4软件设计 (10)
4.1软件各功能模块的流程图设计及思路说明 (11)
4.2 电子音乐的产生 (12)
4.2.1 音频脉冲的产生 (12)
4.2.2 音乐节拍 (14)
4.2.3 移调 (15)
4.2.4 音乐编码 (16)
4.2.5 歌曲播放设计 (17)
4.3 源程序代码 (19)
5 仿真 (19)
5.1 硬件电路的仿真 (19)
5.2 软件电路的仿真 (19)
5.3 联调 (20)
5.4仿真结果 (20)
6 课设心得 (21)
7 参考文献 (21)
附录1:源程序代码 (21)
附录2:PCB图 (20)
1引言
音乐盒又称八音盒。音乐盒的起源,可追溯至中世纪欧洲文艺复兴时期。当时为使教会的的钟塔报时,而将大小的钟表上机械装置,被称为“可发出声音的组钟”。1796年由瑞士钟表匠安托•法布尔发明,转动盒内的链环,可自动演奏音乐。这是最古老的音乐盒。1992年,中国第一台具有知识产权的八音琴在韵升诞生。
现代科技的发展为我们提供了更方便快捷的制作音乐盒的方式,不用经过繁琐的工艺,可以利用单片机自己制作一个简单的电子音乐盒,很有意义。
本文设计的电子音乐盒,就是基于单片机芯片设计制作的电子音乐盒。体积小巧,音质优美且能演奏和弦音乐。电子音乐盒以点为动力,制作工艺简单,且可批量生产,因此价格便宜。基于单片机芯片制作的电子式音乐盒,控制功能很强大,可根据需要选歌,使用方便。根据存储容量的大小,可以尽可能多的存储歌曲。另外,可以设计彩灯外观效果,使小小的音乐盒达到愉悦身心的目的。
2系统总体设计
2.1系统组成框图
音乐盒的系统结构以AT89C51单片机位控制核心,4*4矩阵键盘,加上2个按键、时钟复位电路、蜂鸣器、数码管6模块组成。单片机负责接收按键的输入,根据的输入按键所对应的音符蜂由鸣器发音。系统组成框图如图2.1所示。
图2.1 系统组成框图
2.2音乐盒的功能结构图及说明
本次设计主要设计了两个标志位,count1、count2,对应按键电路的key1、key2,key1用来暂停歌曲,并实现4*4矩阵键盘电子琴弹奏功能,key2用于切换本音乐盒内的四首歌曲。功能结构图如下图2.2所示。
图2.2 电子音乐盒功能框图
2.3电子琴的功能结构图及说明
电子琴的功能结构如图2.3所示。4*4键盘按下获取相应的键值和音符有DO到XI高低音共16个音。并在数码管上显示。
图2.3电子琴功能结构图
2.4设计软件
本设计主要使用两个软件,proteus、keil。用proteus进行硬件电路设计,用keil进行软件设计,使用proteus和keil进行联调,等程序功能都实现且调试好了之后,实现电子音乐盒的设计与制作。
2.4.1 proteus
Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。且在编译方面,它支持IAR、Keil和MPLAB等多种编译器。可以与他们进行联调,结合使用。
2.4.2 keil
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。使用C语言编程,Keil是很好的选择。
Keil公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。Keil公司由德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software Inc公司联合运营。Keil公司制造和销售种类广泛的开发工具,包括ANSI C编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心(real-time kernel)。Keil C51编译器自1988年引入市场以来成为事实上的行业标准,并支持超过500种8051变种。Keil公司在2005年被ARM公司收购。而后ARM Keil推出基于uVision界面,用于调试ARM7,ARM9,Cortex-M内核的MDK-ARM开发工具,用于为控制领域的开发。在使用单片机C语言开发时,
大多使用keil编程,与proteus进行联调,达到软硬件结合的目的。
3 硬件设计
本设计主要是以单片机AT89C51芯片为核心,由复位电路,时钟电路,按键电路,蜂鸣器,LED流水灯,LCD1602和数码管电路组成的,实现的功能如下,电路图如图3.1所示。
a)P3.2,P3.3控制按键
b)P1.0-P1.7控制4*4矩阵键盘
c)P3.7控制蜂鸣器
d)P2..0~P2.7数码管显示
e)电路为11.0592MHZ晶振频率工作,起振电路中C1、C2均为30PF
图3.1 电路图
3.1 AT89C51简介
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。