基于单片机的数字音乐盒

合集下载

基于单片机的音乐盒设计

基于单片机的音乐盒设计

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于单片机的数字音乐盒

基于单片机的数字音乐盒

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.山东建筑大学课程设计说明书题目:基于单片机的数字音乐盒课程:单片机原理及应用B课程设计院(部):信息与电气工程学院专业:电子信息工程班级:学生姓名:学号: 56指导教师:高焕兵张君捧完成日期:2013年6月目录摘要错误!未定义书签。

1 设计目的错误!未定义书签。

2 设计要求错误!未定义书签。

3 设计内容错误!未定义书签。

3.1设计原理错误!未定义书签。

3.2 方案设计错误!未定义书签。

3.3 电路各模块说明错误!未定义书签。

3.4 器件选择错误!未定义书签。

3.5.系统设计错误!未定义书签。

3.6软件设计错误!未定义书签。

3.7 仿真调试及操作说明错误!未定义书签。

总结与致谢错误!未定义书签。

参考文献错误!未定义书签。

附录错误!未定义书签。

附录一:基于单片机的数字音乐盒总电路图错误!未定义书签。

附录二:音乐程序错误!未定义书签。

摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,基于单片机制作的电子式音乐盒,控制功能强大,可根据需要选歌,使用方便。

所放歌曲的节奏可以根据需要进行设置,根据存储容量的大小,可以尽可能多的存储歌曲。

本设计由由单片机AT80C51芯片和LCD显示器为核心,辅以必要的电路,构成的一个单片机电子数字音乐盒。

本设计采用4*4键盘,用Protel99来画系统硬件图,采用C语言进行编程,编程后利用KEIL C51来进行编译,再生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能得以正常实现。

关键词:单片机;音乐盒;电路;播放1 设计目的《单片机原理及应用》是高校工程专业的一门专业基础课,该门课程具有很强的实践性。

通过课程的学习,使学生掌握基本概念、基本理论和基本技能。

通过本次设计使同学们掌握对单片机的控制,实现自己编程,完成专业要求。

2 设计要求1、利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少储存三首乐曲,每首不少于30秒)2、采用LCD显示信息3、开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)4、可通过功能键选择乐曲,暂停,播放5、显示乐曲播放时间或剩余时间3 设计内容3.1设计原理设计原理:通过按键给单片机的P2口输入低电平,进而利用程序来判断是否执行某一播放功能。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于单片机的可控数字音乐盒设计_毕业设计 精品

基于单片机的可控数字音乐盒设计_毕业设计 精品

毕业设计基于51单片机的可控数字音乐盒设计摘要本文是一篇基于AT89C51单片机的可控数字音乐盒的程序设计。

该音乐盒是一个依据单片机技术原理,通过PROTEUS仿真软件对硬件电路进行仿真制作以及利用KEIL软件对音乐盒源程序进行C语言编译,而设计制作出的一个多功能数字音乐盒。

该音乐盒通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同音调的音乐。

该程序通过把乐谱转化成相应的定时常数来驱动发音设备演奏出悦耳动听的音乐。

本音乐盒一共设计了五首歌曲,同时还设计了三种LED彩灯的变化花样。

在演奏歌曲时彩灯随音调闪烁。

在停止演奏歌曲时三种彩灯花样开始闪烁。

歌曲和花样均可随意切换。

与此同时,数码管也不断变化数字,以此显示歌曲和彩灯花样的序号。

关键词:数字音乐盒;AT89C51;KEIL;PROTEUS;数码管THE DESIGNATION OF CONTROLLABLE DIGITAL MUSICBOX BASED ON 51 SCMABSTRACTThis paper explains the program designation of controllable digital music box based on AT89C51. This music box is designed by the idea that a multi-functional digital music box can be made based on the technical principle of single chip microcomputer (SCM), together with using the PROTEUS to simulate the hardware circuit and using KEIL to programme the source of music box which is compiled with C language.This music box can produce square waves of different frequency in control of the timer inside SCM, and music of different tunes by driving speaker. The program is made use of to drive the sounding equipment to play pleasant music by the way of changing music score into the corresponding timing constant.This music box is totally designed with five songs, and also with three changeable patterns of LED colorful lights. While the songs are being performed, the colorful lights are flashing with tones. While the songs are stopped playing, the colorful lights start to flash with three changeable patterns. The songs and patterns can be free to switch. At the same time, the digital tube is also constantly changing figures to show the serial number of the songs and the patterns of the colorful lights.Key words:Digital music box; AT89C51; KEIL; PROTEUS; Digital tube目录1前言------------------------------------------------------------------------------------------------------1 2单片机和音乐盒硬件的功能------------------------------------------------------------------------2 2.1AT89C51芯片的功能----------------------------------------------------------------------------2 2.2音乐盒的硬件及其功能-------------------------------------------------------------------------4 3数字音乐盒的主体设计方案------------------------------------------------------------------------5 3.1音乐盒的主体结构-------------------------------------------------------------------------------5 3.2 主设计软件的介绍-------------------------------------------------------------------------------53.2.1编程软件KEIL的简介-----------------------------------------------------------------53.2.2 仿真软件PROTEUS的简介-----------------------------------------------------------64 音乐盒硬件设计---------------------------------------------------------------------------------------8 4.1总设计框图----------------------------------------------------------------------------------------8 4.2 各部分硬件的作用-------------------------------------------------------------------------------84.2.1时钟振荡电路------------------------------------------------------------------------------84.2.2 LED和数码管的设计--------------------------------------------------------------------95 音调和节拍的设计-----------------------------------------------------------------------------------11 5.1 音调和节拍的设计以及音乐基础知识------------------------------------------------------115.2 音调和节拍的编码------------------------------------------------------------------------------136 源程序设计--------------------------------------------------------------------------------------------14 6.1音乐程序------------------------------------------------------------------------------------------14 6.2 LED花样程序-------------------------------------------------------------------------------------15 6.3 数码管程序---------------------------------------------------------------------------------------16 7数字音乐盒总设计图--------------------------------------------------------------------------------17 7.1 仿真总设计图------------------------------------------------------------------------------------17 7.2 实物总设计图------------------------------------------------------------------------------------18 8结论-----------------------------------------------------------------------------------------------------19 参考文献--------------------------------------------------------------------------------------------------20 致谢--------------------------------------------------------------------------------------------------------21 附录A总程序源代码及注释-------------------------------------------------------------------------221 前言随着科技越来越发达,单片机技术也越来越纯熟,单片机的应用也越来越广泛,可以说几乎很难找到哪个领域没有单片机的踪迹。

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

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

本设计是基于单片机控制的数字音乐盒的设计,由单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机数字音乐盒。

若该设计使用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。

若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计中采用单片机利用AT89C51,它是低功耗、高性能的CMOS型8位单片机。

片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。

另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。

在该设计中利用单片机I/O口产生一定频率的方波,驱动蜂鸣器,发出各种不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒),并能够由LCD 显示信息。

键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。

本设计采用4*4键盘,16*2 LCD,七段显示数码管LED。

在开机按钮按下时有英文欢迎提示字符,播放时显示歌曲序号(或名称)。

在演奏过程中可通过功能键选择乐曲,暂停,播放。

目录1 概述 ............................................. 错误!未定义书签。

2 系统总体方案及硬件设计 ........................... 错误!未定义书签。

2.1 系统构成.................................... 错误!未定义书签。

2.1.1 AT89C51单片机简介.................... 错误!未定义书签。

2.1.2 LED显示器............................ 错误!未定义书签。

基于单片机的数字音乐盒

基于单片机的数字音乐盒
图3-4-1
3.4.2键盘
键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。
(1)键盘输入的特点
键盘实质上是一级按键开关的集合。通常,键盘开关利用了机械触点的合、断作用。
(2)按键的确认
键的闭合与否,反映在行线输出电压上就呈现高电平或低电平,如果高电平表示键断开,低电平则表示键闭合,通过对行线电平高低状态的检测,便可确认按键按下与否。为了确保CPU对一次按键动作只确认一次按键有效,必须消除抖动的影响。
2、采用LCD显示信息
3、开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)
4、可通过功能键选择乐曲,暂停,播放
5、显示乐曲播放时间或剩余时间
3.1
设计原理:通过按键给单片机的P2口输入低电平,进而利用程序来判断是否执行某一播放功能。而利用单片机的定时器0中断来控制播放乐曲。
3.2
本实验采用AT80S51单片机的I/O口产生一定频率的方波,配合键盘系统,时钟电路,复位电路以及液晶显示电路,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。共有4乐曲,每首乐曲都由相应的按键控制,并且有开关键、暂停键、上一曲以及下一曲控制键。
(3)如何消除按键的抖动
采用软件来消除按键抖动的基本思想是:在一次检测到有键按下时,该键所对应的行线为低电平,执行一段延时10MS的子程序后,确认该行线电平是不否仍为低电平,如果仍为低电平,则确认为该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时10MS的子程序后,检测该行线为高电平,说明按键确实已经松开。
3.4.3 LCD液晶显示
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

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

基于单片机的数字式音乐盒设计
6.将数字式音乐盒组装在一个外壳中。
使用数字式音乐盒
在数字式音乐盒被制造完成后,使用也非常容易。只需要按下相应的控制开关,就可以开始播放音频文件。用户可以通过电位器调节音量或者播放音乐列表中的其他曲目。
在使用过程中,要注意数字式音乐盒的电池寿命。如果数字式音乐盒使用的是充电电池,那么必须确保其有足够的充电时间。
设计数字式音乐盒的材料
为了实现数字式音乐盒,需要以下材料:
·单片机芯片(例如STM32F103C8T6)
·数字到模拟转换器(DAC)
·音频输出器件(例如扬声器或耳机)
·控制开关(例如电位器,按钮等)
·电池(为了提供电源)
·音频文件(MP3,WAV等)
将这些材料组合在一起,可以实现数字式音乐盒。其中,单片机芯片是数字式音乐盒的关键部件,可以存储和播放歌曲、音乐片段等。
基于单片机的数字式音乐盒设计
随着新技术的不断涌现,数字式音乐盒成为人们越来越喜欢的玩具。它的外观精美,功能强大,而且价格也比传统音乐盒便宜,极受欢迎。本文将讨论基于单片机的数字式音乐盒设计,以及它的工作原理、材料和使用。
数字式音乐盒的工作原理
数字式音乐盒是使用单片机芯片进行数字信号的处理,通过音频输出器件输出模拟电信号的技术。这些芯片可以储存大量的音频文件,并且可以轻松地播放这些文件,具有极高的音频质量。数字式音乐盒可以播放所有类型的音频文件,比如WAV,MP3,MIDI和WMA等。这些芯片通常由音乐芯片,播放器和控制系统组成。播放器可以读取音频文件,发送给芯片进行处理,控制系统负责控制播放过程,比如触发开关等功能。整个过程非常简单,非常可靠。
最后,数字式音乐盒具有很多优点,比如它可以储存大量的音频文件,具有非常出色的音频质量,价格实惠,易于制造和使用,因此它是一款非常好的数码产品。

单片机课程设计-基于单片机的数字音乐盒设计

单片机课程设计-基于单片机的数字音乐盒设计

湖南铁路科技职业技术学院单片机课程设计题目:基于单片机的数字音乐盒设计专业:机电一体化系部:机械工程系姓名:班级:309-2班湖南铁路科技职业技术学院单片机课程设计说明书基于单片机的数字音乐盒设计任务书一、任务设计一款基于AT89C51单片机的数字音乐盒。

二、设计要求(1)利用单片机的I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。

(2)共有10首音乐,每首乐曲都由相应的按键控制,并有开关键、暂停键、上一曲及下一曲控制键;(3)利用LCD液晶显示歌曲的序号、播放时间,开机时显示英文欢迎提示字符。

湖南铁路科技职业技术学院单片机课程设计说明书目录任务书 (1)目录 (2)1 概述 (5)1.1单片机数字音乐盒有关介绍 (5)1.2LED显示屏控制技术状况 (9)1.3本设计任务 (10)2总体方案论证与设计 (12)2.1单片机的选取 (12)2.2LED显示方式 (13)2.3LED驱动模块 (13)2.4系统总体结构框图 (14)3 系统硬件设计 (15)3.1AT89C51芯片功能和硬件连接 (15)3.2LED显示器 (18)3.3键盘 (19)3.4系统复位电路的设计 (20)3.5时钟电路模块 (20)3.6输出显示电路 (21)3.7音频输出部分 (21)3.8整体硬件电路 (23)4系统软件设计 (25)4.1主模块的设计 (25)4.2外部中断源系统设计 (26)4.3基本显示模块设计 (27)4.4系统初始化程序 (28)湖南铁路科技职业技术学院单片机课程设计说明书4.5音调、节拍以及编码的确定方法 (28)4.6程序流程图 (33)4.7文档顶端程序清单 (35)5 调试结果 (46)5.1系统总电路图 (46)5.2运行结果及分析 (46)总结 (48)参考文献 (49)湖南铁路科技职业技术学院单片机课程设计说明书1 概述传统的音乐盒多是机械音乐盒,其工作原理是通过齿轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击铁片制成的琴键,从而发出声音。

单片机数字音乐盒设计

单片机数字音乐盒设计

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

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

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

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

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

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

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

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

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

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

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

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

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

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

精心整理单片机实物设计题目:单片机音乐盒设计班级:K0312416-17通过个按1.1设计目标................................................................................................第二章软件设计与分析 .......................................................................................2.1软件设计的组成 ....................................................................................2.2各部分软件分析 ....................................................................................2.2.1延时165MS,即十六分音符子函数.............................................2.2.2延时1MS子函数.........................................................................2.2.3定时器0中断子函数.................................................................精心整理2.2.4播放音乐子函数 .........................................................................2.5定时器1中断子函数 .....................................................................2.6按键扫描子函数.............................................................................2.2.7主函数 ........................................................................................2.3总源程序 ................................................................................................ 第三章软件仿真 ...................................................................................................3.仿真图.......................................................................................................3.1总结第一章工作原理1.1设计目标具体要求是:以单片机为核心,设计一个数字音乐盒:利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从2.2各部分软件分析2.2.1延时165MS,即十六分音符子函数//延时165MS,即十六分音符子函数voiddelay1(uintz){uintx,y;for(x=z;x>0;x--)for(y=19000;y>0;y--); }2.2.2延时1MS子函数2.2.4播放音乐子函数//播放音乐子函数voidsong(){uinttemp;ucharaa;//aa是简谱c=0;while(1){if(count2==0){break;else{TR1=0;BEEP=1;//关蜂鸣器}delay1(temp%16);//取数的低4位TR1=0; //唱完一个音停10MSBEEP=1;delay2(10);TR1=1;c++;}TR1=0;BEEP=1;{num1++;if(num1==1){TR1=0;aa=count2;count2=0;}if(num1==2){num1=0;count2=aa;TR1=1;}write_date('l'); write_com(0x80+3); write_date('c'); write_com(0x80+4); write_date('o'); write_com(0x80+5); write_date('m');write_com(0x80+6);write_date('e');write_com(0x80+7);write_date('');write_com(0x80+8);write_date('t');write_com(0x80+9);IT1=1;//下降沿时触发中断EX0=1;//开外部中断0IT0=1;//下降沿时触发中断count2=0;//唱第一首歌LCD1602_init();while(1)//大循环{song();}}2.3总源程序//最后的0是结束标志ucharcodetable1[]={ //千年之恋0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0 x72,0x82,0x94,0xA8,0x08,//前奏0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,//竹林的灯火到过的沙漠0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22,//七色的国度不断飘逸风中0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,//有一种神秘灰色0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,//是你在尽头等我0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,//最美丽的感动会值得0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff//结束标?//睾?};ucharcodetable2[]={ //寂寞沙洲冷0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22,//自你走后心憔悴0x21,0x31,0x51,0x52,0x31,0x52,0x61,0x15,0x14,//白色油桐风中纷飞0x51,0x52,0x31,0x52,0x62,0x13,0x11,0x13,0x32,0x28,0x08,0x28,//落花不样夜是0x31,0x81,0x81,0x81,0x61,0x91,0x82,//有花儿伴着蝴蝶0x51,0x51,0x51,0x51,0x31,0x61,0x53,//孤雁可以双飞0x21,0x11,0x21,0x11,0x22,0x11,0x21,0x26,//夜深人静独徘徊0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0 x52,//当幸福恋人寄来红色分享喜悦0x31,0x31,0x81,0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56,//闭上双眼难过头也不敢回0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0 x10,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0 x10,0x2b,0x10,0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0 x20,0x26,0x20,0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0 x20,0x20,0x20,ucharcodetable4[]={0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10, 0x18,0x40,0x1C,0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0 x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0 x20,0x20,0x20,0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0 x2B,0x20,0x30,0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0 x1C,0x20,0x20,0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0 xff,};//简谱音调对应的定时器初值//适合12的晶振ucharcodecuzhi[]={0xff,0xff,//占位0xFC,0x8E,//中央C调1-70xFC,0xED,0xFD,0x43,{uintx,y;for(x=z;x>0;x--)for(y=19000;y>0;y--);}//延时1MS子函数voiddelay2(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}//LCD1602液晶写命令子函数voidwrite_com(ucharcom)delay2(5);//无延时不能正常工作E=0;}//LCD1602液晶初始化子函数voidLCD1602_init()//初始化{delay2(15);//主函数voidmain(){TMOD=0x11;//定时器0工作在方式1 TH1=0;TL1=0;ET1=1;voidt0()interrupt1{num2++;if(num2==5){num2=0;key();}}//定时器1中断子函数voidt1()interrupt3 //用于产生各种音调{TH1=a;TL1=b;write_date('');write_com(0x80+1);write_date('');write_com(0x80+2);write_date('');write_com(0x80+3);write_com(0xc0+8);write_date('');write_com(0xc0+9);write_date('f');write_com(0xc0+10);write_date('l');write_com(0xc0+11);write_date('o');}}voidwb1()interrupt2{TR1=0;if(k2==0){delay2(10);if(k2==0){count2--;c=0;//从头开始唱if(count2==1)}这次设计进一步端了我的学习态度,学会了实事求是,严谨的作风,对自己要严格要求,不能够一知半解,要力求明明白白。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机课程设计_基于89C51的数字音乐盒设计

单片机课程设计_基于89C51的数字音乐盒设计

单片机系统课程设计成绩评定表设计课题基于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)引言在电子信息技术飞速发展的今天,现代电子产品几乎渗透了社会的各个领域,它不仅推动了社会的进步,而且为我们的生活带来了诸多的便利。

由于人们生活质量的提高,人们对视觉、听觉方面的享受提出了越来越高的要求。

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

传统音乐盒多是机械型的,体积笨重,发音单调,可以选择的曲目较为单一。

本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,它体积小,重量轻,可以随心添加自己喜欢的音乐,外观效果多彩,使用方便,并且具有一定的商业价值。

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

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

单片机实物设计题目: 单片机音乐盒设计摘要本设计是一个基于STC89C51RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。

该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。

本音乐盒共有四首歌曲,用4个按键控制。

播放歌曲时,蜂鸣器发出某个音调。

本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS 仿真软件对硬件进行仿真调试,节约了设计时间。

【关键词】STC89C51RC 按键蜂鸣器LCD1602液晶前言.................................................................................................................................................... 第一章工作原理..............................................................................................................................1.1设计目标................................................................................................................................第二章软件设计与分析.................................................................................................................2.1 软件设计的组成..................................................................................................................2.2 各部分软件分析................................................................................................................2.2.1 延时165MS,即十六分音符子函数....................................................................2.2.2 延时1MS子函数 ..................................................................................................2.2.3 定时器0中断子函数...........................................................................................2.2.4 播放音乐子函数....................................................................................................2.5 定时器1中断子函数 ..............................................................................................2.6 按键扫描子函数 .......................................................................................................2.2.7 主函数 .....................................................................................................................2.3 总源程序............................................................................................................................. 第三章软件仿真..............................................................................................................................3.仿真图........................................................................................................................................3.1 元件清单............................................................................................................................... 总结........................................................................................................................................................ 参考文献 ...............................................................................................................................................第一章工作原理1.1设计目标1.1.1基本功能具体要:以单片机为核心,设计一个数字音乐盒:利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少3首乐曲,每首不少于30s)。

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

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

基于单片机的数字式音乐盒设计【摘要】基于单片机的数字式音乐盒设计旨在利用单片机技术实现音乐盒的数字化,提升传统音乐盒的功能和性能。

本文首先介绍了背景和研究意义,说明了数字式音乐盒在现代社会中的重要性和应用前景。

接着对音乐盒的原理进行了分析,详细讨论了单片机的选择及功能设计、音乐数据存储与播放控制、外围电路设计等关键技术。

在系统性能测试部分,对设计的音乐盒进行了全面测试和评估,验证了其稳定性和可靠性。

通过设计成果总结和存在问题及改进方向展开讨论,同时展望了未来数字式音乐盒的发展前景。

这项研究将为数字音乐盒的进一步发展提供一定的参考和指导。

【关键词】单片机、数字式音乐盒、音乐数据、播放控制、外围电路、系统性能测试、设计成果、存在问题、改进方向、未来展望1. 引言1.1 背景介绍数字式音乐盒不仅可以实现多种音乐的存储和播放,还可以根据用户的需求进行定制化的设计,比如添加特定的音效、调节音乐的节奏和音量等。

通过单片机的控制,数字式音乐盒可以实现更加智能化的操作和更加丰富的功能,使其成为一种更具有个性化和趣味性的音乐设备。

本文将从音乐盒原理分析、单片机选择及功能设计、音乐数据存储与播放控制、外围电路设计和系统性能测试等方面展开讨论,旨在为基于单片机的数字式音乐盒设计提供一种全面而有效的解决方案,同时也为数字化音乐盒的发展和应用提供更多的思路和可能性。

1.2 研究意义数字式音乐盒是一种集合了音乐和电子技术的创新产品,它能够播放各种不同的音乐,给人们带来美妙的听觉享受。

对于现代人们来说,音乐已经成为了生活中不可或缺的一部分,能够通过音乐来放松心情、增添生活情趣。

设计一款基于单片机的数字式音乐盒具有重要的研究意义。

数字式音乐盒的设计可以促进人们对音乐产品的需求和创新设计的关注,推动整个音乐产业的发展。

随着科技的不断进步,数字音乐盒不仅能够实现音乐播放功能,还可以加入更多的智能化设计,提高用户体验。

设计基于单片机的数字式音乐盒可以促进对电子技术在音乐领域的应用研究,进一步推动电子技术的发展。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于单片机的数字音乐盒的设计摘要这次的数字音乐盒是建立在At89C51单片机程序上设计的,利用一系列单片机智能化设计的多功能实体。

用Proteus软件对所有系统进行仿真制作,而音乐盒源程序的C语言编译部分则是利用Keil软件来实现的。

本系统设计的音乐盒能产生不同的频率波形,主要是通过单片机控制定时器,使喇叭发出不同的音阶音律。

喇叭发出的音调定时常数被转化为乐谱,从而使音乐设备能够演唱出非常动听的音乐节律。

关键词:数字音乐盒;数码管;单片机;Proteus;KeilThe Designation Of Controllable Digital Music BoxBased On 51 ScmABSTRACT Digital music box that is built in At89C51 chip design procedure, using a series of single-chip design of intelligent multi function entity. For all the system simulation using Proteus software,and the music box source program of C language compiler is to use Keil software to implement. The music box design of the system can produce different frequency waveform, is mainly controlled by single chip microcomputer timer, the horn of different scale temperament. Timing constant pitch horn was transformed into the music, which makes music equipment can sing very pleasant music rhythm.Key words:Digital music box; Digital tube; AT89C51; PROTEUS; KEIL目录第1章前言 (1)1.1 课题背景 (1)1.2 课题研究的目的及意义 (1)1.3 论文的主要任务和所做的工作 (1)第2章单片机和音乐盒硬件的功能 (3)2.1 AT89C51芯片的功能 (3)2.2 音乐盒的硬件及其功能 (6)第3章数字音乐盒的主体设计方案 (8)3.1 音乐盒的主体结构 (8)3.2 主设计软件的介绍 (8)3.2.1 编程软件KEIL的简介 (8)3.2.2 仿真软件PROTEUS的简介 (9)第4章音乐盒硬件设计 (10)4.1 总设计框图 (10)4.2各部分硬件的作用 (10)4.2.1时钟振荡电路 (10)4.2.2 LED和数码管的设计 (11)第5章音调和节拍的设计 (13)5.1 音调和节拍的设计以及音乐基础知识 (13)5.2 音调和节拍的编码 (14)第6章 C源程序设计 (15)6.1 音乐程序 (15)6.2 LED花样程序 (15)6.3 数码管程序 (16)第7章数字音乐盒总设计图与总程序 (18)7.1 仿真总图设计图 (18)7.2 音乐播放切歌部分程序 (18)第8章结论 (19)参考文献 (20)附录A总程序源代码及注释 (21)第1章前言1.1 课题背景21世纪的科技是属于单片机的科技时代,现在单片机应用极其普遍,技术也愈来愈成熟,基本上现如今各行各业都能看到单片机的存在。

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

山东建筑大学课程设计说明书题目:基于单片机的数字音乐盒课程:单片机原理及应用B课程设计院(部):信息与电气工程学院专业:电子信息工程班级:学生姓名:学号:指导教师:高焕兵张君捧完成日期: 2013年6月目录摘要 (I)1 设计目的 (2)2 设计要求 (2)3 设计内容 (3)3.1 设计原理 (3)3.2 方案设计 (3)3.3 电路各模块说明 (4)3.4 器件选择 (6)3.5.系统设计 (8)3.6 软件设计 (8)3.7 仿真调试及操作说明 (9)总结与致谢 (10)参考文献 (11)附录 (12)附录一:基于单片机的数字音乐盒总电路图 (12)附录二:音乐程序 (12)山东建筑大学信息与电气工程学院学院课程设计说明书摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,基于单片机制作的电子式音乐盒,控制功能强大,可根据需要选歌,使用方便。

所放歌曲的节奏可以根据需要进行设置,根据存储容量的大小,可以尽可能多的存储歌曲。

本设计由由单片机AT80C51芯片和LCD显示器为核心,辅以必要的电路,构成的一个单片机电子数字音乐盒。

本设计采用4*4键盘,用Protel99来画系统硬件图,采用C语言进行编程,编程后利用KEIL C51来进行编译,再生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能得以正常实现。

关键词:单片机;音乐盒;电路;播放1 设计目的《单片机原理及应用》是高校工程专业的一门专业基础课,该门课程具有很强的实践性。

通过课程的学习,使学生掌握基本概念、基本理论和基本技能。

通过本次设计使同学们掌握对单片机的控制,实现自己编程,完成专业要求。

2 设计要求1、利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少储存三首乐曲,每首不少于30秒)2、采用LCD显示信息3、开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)4、可通过功能键选择乐曲,暂停,播放5、显示乐曲播放时间或剩余时间23 设计内容3.1设计原理设计原理:通过按键给单片机的P2口输入低电平,进而利用程序来判断是否执行某一播放功能。

而利用单片机的定时器0中断来控制播放乐曲。

3.2 方案设计本实验采用AT80S51单片机的I/O口产生一定频率的方波,配合键盘系统,时钟电路,复位电路以及液晶显示电路,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。

共有4乐曲,每首乐曲都由相应的按键控制,并且有开关键、暂停键、上一曲以及下一曲控制键。

系统总体结构框图33.3 电路各模块说明3.3.1时钟电路此系统的时钟电路设计是采用内部方式,即是利用芯片内部的振荡电路。

利用12MHZ的晶振做外部时钟;AT80C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

这个放大器与作为反馈元件的片外石英晶体(陶瓷)谐振器一起构成自然振荡器。

外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。

对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。

如果使用石英晶体,我们推荐电容使用30PF±10PF(而如果使用陶瓷振荡器建议选择40PF±10PF)。

其电路图如图3-3-1所示图3-3-1 3.3.2 复位电路451单片机的RST引脚是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡脉冲周期(即二个机器周期)以上。

一般有两种复位方式:上电复位和手动复位。

复位电路图如图3-3-2所示。

图3-3-23.3.2 控制电路键盘接口电路如图,本次设计中,按键有7个.键分别接于7根I/O线(P1口),各按键在实物连接上相互独立,彼此的工作状态互不影响,STC 单片机自带上拉电阻因此无需外接上拉电阻,用查询法完成按键功能。

其电路图如图3-3-2所示:图3-3-23.3.3蜂鸣器电路:利用PNP管放大驱动。

基极接10K欧姆的电阻,发射极接蜂鸣器,集电极接电源。

其电路图如图3-3-3所示:5图3-3-33.4 器件选择3.4.1 80C51单片机简介该系列单片机是采用高性能的静态80C51 设计由先进CMOS 工艺制造并带有非易失性Flash 程序存储器全部支持12 时钟和 6 时钟操作P89C51X2 和P89C52X2/54X2/58X2 分别包含128 字节和256 字节RAM 32 条I/O 口线 3 个16 位定时/计数器 6 输入4 优先级嵌套中断结构 1 个串行I/O 口可用于多机通信 I/O 扩展或全双工UART以及片内振荡器和时钟电路。

外形及引脚排列如图3-4-1所示.6图3-4-1 3.4.2 键盘键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。

(1)键盘输入的特点键盘实质上是一级按键开关的集合。

通常,键盘开关利用了机械触点的合、断作用。

(2)按键的确认键的闭合与否,反映在行线输出电压上就呈现高电平或低电平,如果高电平表示键断开,低电平则表示键闭合,通过对行线电平高低状态的检测,便可确认按键按下与否。

为了确保CPU对一次按键动作只确认一次按键有效,必须消除抖动的影响。

(3)如何消除按键的抖动7采用软件来消除按键抖动的基本思想是:在一次检测到有键按下时,该键所对应的行线为低电平,执行一段延时10MS的子程序后,确认该行线电平是不否仍为低电平,如果仍为低电平,则确认为该行确实有键按下。

当按键松开时,行线的低电平变为高电平,执行一段延时10MS的子程序后,检测该行线为高电平,说明按键确实已经松开。

3.4.3 LCD液晶显示1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。

它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。

1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

3.5.系统设计其系统原理图如附录一所示。

3.6软件设计程序设计流程图如图3-6所示.先从主程序开始,接着初始化变量及 LCD 接口,然后初始化方波发生器、晶振管,使 LCD 显示信息,就进入了开机状态,等待动作——选择按键,包括播放键,暂停键,停止键,当然也可以选择返回;加入选择的是播放键,LCD 上就会 -7-现实歌曲编号,与此同时演奏相应的乐曲,此时,你8可以按上一曲或下一曲键,使其演奏上一个或者先一个乐曲。

主程序流程图LCD显示流程图其程序代码如附录二所示。

3.7 仿真调试及操作说明按照上面设计的电路在protel软件内画图, 打开单片机软件开发系统Keil,选择80c51单片机,在其中编写程序,运行生成一个后缀名为hex的文件,然后将该文件下载到protel中的AT80c51单片机中进行仿真,观察实验现象。

仿真能实现播放音乐,按键选择曲目,暂停,播放功能。

仿真成功后,安装好实验板,然后将音乐程序下载到电路板内 ,观察结果。

能实现播放音乐,按键换曲等功能。

9总结与致谢一个星期的摸索与实验,虽然时间很短,但使我们不仅仅是对于单片机入门软件与硬件的常用设计与功能,还使我们对于一项设计研究的制作过程所需要的详细步骤和具体的实现方法的力度的掌握。

当然在这次宝贵的设计活动中,经验才是对于我们最大的收获,而且还增强了自身对未知问题以及对知识的深化认识的能力,用受益匪浅这个词语来概括这次难忘的活动我觉得再合适不过了。

但是,光是完成了作品还是不可以自我满足的,在从一开始的时候就怀着将作品制作得更加人性化,更加令人满意,更加地使功能完美又方便地被应用领域这个最终目的下,随着对单片机这门学科的认识加深,到达了拓展的程度,我想这个目的将在不远的时期内被实现。

总之,这次设计从软件编写、调试到软硬件联机调试,我们倾注了大量的时间和心血。

真是曾经为程序的编写而冥思苦想过,曾经为无法找出错误而郁闷苦恼过,也曾经为某一功能不能实现而犹豫彷徨过,但最终我们完成设计了。

至此完成课程设计,首先要感谢不畏辛辞的老师,通过老师的指导,使我增涨了单片机的知识。

其次,还要感谢我的同学,在这次课程设计中,遇到了许多的困难,是通过询问他们才解决的。

10参考文献[1] 徐峥颖编著.Protel99SE EDA 技术及应用[M].北京机械工业出版社2005.[2] 三恒星科技.MCS-51单片机原理与应用实例[M]. 北京:电子工业出版社,2008.01[3] 王为青,程国钢.单片机Keil Cx51应用开发技术[M]. 北京:人民邮电出版社,2007.02[4] 边春远编著.MCS-51单片机应用开发实用子程序[M].北京人民邮电出版社2005.[5] 黄智伟凌阳单片机课程设计指导[M],北京:北京航空航天大学出版社,2006.11.[6] 李广弟,朱月秀,王秀山.单片机基础[M],北京:北京航空航天大学出版社,2001.7.[7] 康华光模拟电子技术基础第四版)[M], 武汉:华中理工大学出版社,1999.11附录附录一:基于单片机的数字音乐盒总电路图附录二:音乐程序#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit BEEP = P1^4; //蜂鸣器sbit k0=P2^0;sbit k1=P2^1;sbit k2=P2^2;sbit k3=P2^3;sbit k4=P2^4;sbit k5=P2^5;sbit k6=P2^6;uint code Tone_Delay_Table[] = { 64021,64103,64260,64400,64524,64580,64684,64777, 64820,64898,64968,65030,65058,65110,65157,65178 };12uchar code Song1_Tone[]={1, 1, 5, 5, 6, 6, 5,4, 4, 3 ,3, 2, 2, 1,5, 5, 4, 4, 3, 3, 2, 5, 5, 4, 4, 3, 3, 2,1,1, 5, 5, 6, 6 ,5,4 ,4, 3, 3, 2, 2, 1,0xff};uchar code Song1_Time[]={2,2,2,2,2,3,4,2,2,2,2,2,2,4,2,2,2,2,2,2,4,2,2,2,2,2,2,5,2,2,2,2,2,2,5,2,2,2,2,2,2 ,5,0xff};uchar code Song2_Tone[]={1,2,3,1,1,2,3,1,3,4,5,3,4,5, 5,6,5,4,3,1, 5,6,5,4,3,1 ,1,5,1,0xff}; uchar code Song2_Time[]={2,2,3,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,0xff}; uchar code Song3_Tone [] ={ 1,3,3,3,3,5,4,2,5,3,7,6,5,5,7,4,4,3,6,7,2,1,0xFF};uchar code Song3_Time [] ={ 2,1,1,2,1,1,1,2,1,1,3,2,1,1,2,4,1,1,2,1,1,1,0xFF};uchar code Song4_Tone [] ={ 8,9,2,3,7,6,2,3,10,11,1,2,3,1,2,3,3,4,5,6,5,3,5,6,5,3,5,3,2,1,1,2,3,0xFF};uchar code Song4_Time [] ={ 3,6,7,2,4,5,8,1,2,2,5,5,1,9,1,1,1,1,6,1,1,2,4,1,1,2,1,1,1,1,1,2,2,1,0xFF};uchar Song_Index = 0, Tone_Index = 0; //音乐片段索引,音符索引uchar *Song_Tone_Pointer, *Song_Time_Pointer; //音符指针,延时指针uchar i = 0; uchar j=0,k=0,m=0; //从当前数组中取音符的位置void DelayMS(uint ms) //延时{uchar t;while(ms--) for (t = 0; t < 120; t++);}void play0() //按键产生的INT0{ ET0=1;TR0 = 0;k0=1;Song_Index = ( Song_Index + 1) % 4; //切换到下一音乐switch (Song_Index){case 0: Song_Tone_Pointer = Song1_Tone;Song_Time_Pointer = Song1_Time;break;case 1: Song_Tone_Pointer = Song2_Tone;Song_Time_Pointer = Song2_Time;break;case 2: Song_Tone_Pointer = Song3_Tone;13Song_Time_Pointer = Song3_Time;break;case 3: Song_Tone_Pointer = Song4_Tone;Song_Time_Pointer = Song4_Time;break;}//从下一段音乐的第0个音符开始i = 0;while (k0==1&&k1==1&&k2==1&&k3==1&&k4==1&&k5==1&&k6==1){Tone_Index = Song_Tone_Pointer[i];if ( Tone_Index == 0xFF ){i = 0;DelayMS(2000); //每段音乐播放结束后停顿一段时间continue; //继续播放}TR0 = 1;DelayMS( Song_Time_Pointer[ Tone_Index] * 240);TR0 = 0;i++;}return;}void play1(){ ET0=1;TR0 = 0;k1=1;Song_Index = ( Song_Index + 3) % 4; //切换到上一段音乐switch (Song_Index){case 0: Song_Tone_Pointer = Song1_Tone;Song_Time_Pointer = Song1_Time;break;case 1: Song_Tone_Pointer = Song2_Tone;Song_Time_Pointer = Song2_Time;14break;case 2: Song_Tone_Pointer = Song3_Tone;Song_Time_Pointer = Song3_Time;break;case 3: Song_Tone_Pointer = Song4_Tone;Song_Time_Pointer = Song4_Time;break;}i = 0; //从上一段音乐的第0个音符开始while (k0==1&&k1==1&&k2==1&&k3==1&&k4==1&&k5==1&&k6==1){Tone_Index = Song_Tone_Pointer[i];if ( Tone_Index == 0xFF ){i = 0;DelayMS(2000); //每段音乐播放结束后停顿一段时间continue; //继续播放}TR0 = 1;DelayMS( Song_Time_Pointer[ Tone_Index] * 240);TR0 = 0;i++;}return;}void play2(){m=!m;TR0 = 0;k2=1;if(m==0){ j=1;TR0=0;ET0=0;}15if(m==1){ ET0=1;k=1;if(j==1) //播放被暂停的音乐{switch (Song_Index){case 0: Song_Tone_Pointer = Song1_Tone;Song_Time_Pointer = Song1_Time;break;case 1: Song_Tone_Pointer = Song2_Tone;Song_Time_Pointer = Song2_Time;break;case 2: Song_Tone_Pointer = Song3_Tone;Song_Time_Pointer = Song3_Time;break;case 3: Song_Tone_Pointer = Song4_Tone;Song_Time_Pointer = Song4_Time;break;}//从本一段音乐的第i个音符开始while(k0==1&&k1==1&&k2==1&&k3==1&&k4==1&&k5==1&&k6==1){Tone_Index = Song_Tone_Pointer[i];if ( Tone_Index == 0xFF ){i = 0;DelayMS(2000); //每段音乐播放结束后停顿一段时间Song_Index = ( Song_Index + 1) % 4; //播放下一首音乐switch (Song_Index){case 0: Song_Tone_Pointer = Song1_Tone;Song_Time_Pointer = Song1_Time;break;case 1: Song_Tone_Pointer = Song2_Tone;16Song_Time_Pointer = Song2_Time;break;case 2: Song_Tone_Pointer = Song3_Tone;Song_Time_Pointer = Song3_Time;break;case 3: Song_Tone_Pointer = Song4_Tone;Song_Time_Pointer = Song4_Time;break;}continue;}TR0 = 1;DelayMS( Song_Time_Pointer[ Tone_Index] * 240);TR0 = 0;i++;}}if (j==0){ j=1;Song_Tone_Pointer = Song1_Tone; //开始播放音乐Song_Time_Pointer = Song1_Time;i = 0;while (k0==1&&k1==1&&k2==1&&k3==1&&k4==1&&k5==1&&k6==1) {Tone_Index = Song_Tone_Pointer[i];if ( Tone_Index == 0xFF ){i = 0;DelayMS(2000); //每段音乐播放结束后停顿一段时间Song_Index = ( Song_Index + 1) % 4; //播放下一段音乐switch (Song_Index){case 0: Song_Tone_Pointer = Song1_Tone;Song_Time_Pointer = Song1_Time;break;case 1: Song_Tone_Pointer = Song2_Tone;17Song_Time_Pointer = Song2_Time;break;case 2: Song_Tone_Pointer = Song3_Tone;Song_Time_Pointer = Song3_Time;break;case 3: Song_Tone_Pointer = Song4_Tone;Song_Time_Pointer = Song4_Time;break;}continue;}TR0 = 1;DelayMS( Song_Time_Pointer[ Tone_Index] * 240);TR0 = 0;i++;}}}return;}void play3(){ ET0=1;TR0 = 0;k3=1;//切换到第一段音乐Song_Tone_Pointer = Song1_Tone;Song_Time_Pointer = Song1_Time;Song_Index=0;//从第一段音乐的第0个音符开始i = 0;while (k0==1&&k1==1&&k2==1&&k3==1&&k4==1&&k5==1&&k6==1){Tone_Index = Song_Tone_Pointer[i];if ( Tone_Index == 0xFF ){18i = 0;DelayMS(2000); //每段音乐播放结束后停顿一段时间continue; //继续播放}TR0 = 1;DelayMS( Song_Time_Pointer[ Tone_Index] * 240);TR0 = 0;i++;}return;}void play4(){ET0=1;TR0 = 0;k4=1;Song_Tone_Pointer = Song2_Tone; //切换到第二段音乐Song_Time_Pointer = Song2_Time;Song_Index=1 ;i=0;//从第二段音乐的第0个音符开始while (k0==1&&k1==1&&k2==1&&k3==1&&k4==1&&k5==1&&k6==1){Tone_Index = Song_Tone_Pointer[i];if ( Tone_Index == 0xFF ){i = 0;DelayMS(2000); //每段音乐播放结束后停顿一段时间continue; //继续播放}TR0 = 1;DelayMS( Song_Time_Pointer[ Tone_Index] * 240);TR0 = 0;i++;}return;19}void play5(){ET0=1;TR0 = 0;k5=1;Song_Tone_Pointer = Song3_Tone; //切换到第三段音乐Song_Time_Pointer = Song3_Time;Song_Index=2;//从第三段音乐的第0个音符开始i = 0;while (k0==1&&k1==1&&k2==1&&k3==1&&k4==1&&k5==1&&k6==1){Tone_Index = Song_Tone_Pointer[i];if ( Tone_Index == 0xFF ){i = 0;DelayMS(2000); //每段音乐播放结束后停顿一段时间continue; //继续播放}TR0 = 1;DelayMS( Song_Time_Pointer[ Tone_Index] * 240);TR0 = 0;i++;}return;}void play6(){ET0=1;TR0 = 0;k6=1;Song_Tone_Pointer = Song4_Tone; //切换到第四段音乐Song_Time_Pointer = Song4_Time;Song_Index=3;20//从第四段音乐的第0个音符开始i = 0;while (k0==1&&k1==1&&k2==1&&k3==1&&k4==1&&k5==1&&k6==1){Tone_Index = Song_Tone_Pointer[i];if ( Tone_Index == 0xFF ){i = 0;DelayMS(2000); //每段音乐播放结束后停顿一段时间continue; //继续播放}TR0 = 1;DelayMS( Song_Time_Pointer[ Tone_Index] * 240);TR0 = 0;i++;}return;}void Timer0_Play_Music() interrupt 1 // T0 定时器控制播放{TH0 = Tone_Delay_Table[ Tone_Index ] / 256;TL0 = Tone_Delay_Table[ Tone_Index ] % 256;BEEP = ~BEEP;}void main() // 主程序{TMOD = 0x01;IE = 0x82; //许可INTO 和TO 中断TR0 = 0;while(1){if(k0==0&&k==1) { DelayMS(2000); play0();m=1;}if(k1==0&&k==1) { DelayMS(2000); play1();m=1;}if(k2==0) { DelayMS(2000); play2();}if(k3==0&&k==1) { DelayMS(2000); play3();m=1;}if(k4==0&&k==1) { DelayMS(2000); play4();m=1;}21if(k5==0&&k==1) { DelayMS(2000); play5();m=1;}if(k6==0&&k==1) { DelayMS(2000); play6();m=1;}}}22山东建筑大学信息与电气工程学院学院课程设计说明书。

相关文档
最新文档