单片机的音乐盒设计(C程序)[推荐]

合集下载

单片机的音乐盒设计报告

单片机的音乐盒设计报告

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

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

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

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

具体需求如下: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、硬件焊接与组装按照设计原理图,将各个硬件模块焊接在电路板上,并进行组装和连接。

(完整版)STC89C51单片机的数字音乐盒设计(含代码)

(完整版)STC89C51单片机的数字音乐盒设计(含代码)

HEFEI UNIVERSITYFPGA综述报告系别电子信息与电气工程系任课教师汪济洲班级姓名成绩日期数字音乐盒设计摘要:本设计是一个基于STC89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能音乐盒。

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

使用两个按键控制音乐盒,一个用来切换歌曲,另一个用来切换8路LED的变化花样,本音乐盒共有两首歌曲,花样灯花样共计4种。

播放歌曲时,蜂鸣器发出某个音调,与之对应的LED亮起。

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

关键字:音乐盒STC89C51单片机KEIL PROTEUS 音调目录1概述 (3)1.1设计方案 (3)1.2研究内容 (3)1.3音乐盒的功能结构图 (3)2硬件设计 (4)2.1总体设计框图 (4)2.2各部分硬件设计及其原理 (4)2.2.1 STC89C51简介 (4)2.2.2 LED显示电路设计与原理 (5)2.2.3 时钟振荡电路 (5)2.3硬件电路图及功能 (6)3软件设计 (7)3.1音调、节拍以及编码的确定方法 (7)4.1.1 音调的确定 (7)4.1.2 节拍的确定 (8)4.1.3 编码 (9)4.2软件程序设计 (10)4.2.1 程序流程图及相应代码块 (10)4.2.2 程序源代码(见附录A) (14)5调试 (14)5.1检查硬件连接 (14)5.2检查软件系统 (14)5.3测试结果 (14)5.3.1.总体运行图 (14)5.3.2.花样灯4种花样图 (15)参考文献 (16)附录A 程序源代码及注释 (16)。

51单片机控制的16介音乐盒程序及图

51单片机控制的16介音乐盒程序及图
TR0=1。
P1_7=~P1^7。
STH0=tab4[key_number]/256。
STL0=tab4[key_number]%256。
delayms(10>。
}。break。
case 8:{
TR0=1。
P1_7=~P1^7。
STH0=tab4[key_number]/256。
STL0=tab4[key_number]%256。
TR0=1。
P1_7=~P1^7。
STH0=tab4[key_number]/256。
STL0=tab4[key_number]%256。
delayms(10>。
}。break。
case 8:{
TR0=1。
P1_7=~P1^7。
STH0=tab4[key_number]/256。
STL0=tab4[key_number]%256。
STL0=tab4[key_number]%256。
delayms(10>。
}。break。
case 1:{
TR0=1。
P1_7=~P1^7。
STH0=tab4[key_number]/256。
STL0=tab4[key_number]%256。
delayms(10>。
}。break。
case 2:{
64820,64898,64968,65030, 65058,65110,65157,65178}。
void delayms(uchar no>。
void keydetect(>。
void display(>。
void timer0_interrupt(>。

STC89C51单片机的数字音乐盒设计(含代码)

STC89C51单片机的数字音乐盒设计(含代码)

HEFEI UNIVERSITYFPGA综述报告系别电子信息与电气工程系任课教师汪济洲班级姓名成绩日期数字音乐盒设计摘要:本设计是一个基于STC89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能音乐盒。

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

使用两个按键控制音乐盒,一个用来切换歌曲,另一个用来切换8路LED的变化花样,本音乐盒共有两首歌曲,花样灯花样共计4种。

播放歌曲时,蜂鸣器发出某个音调,与之对应的LED亮起。

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

关键字:音乐盒 STC89C51单片机 KEIL PROTEUS 音调目录1概述 (3)1.1设计方案 (3)1.2研究内容 (3)1.3音乐盒的功能结构图 (3)2硬件设计 (4)2.1总体设计框图 (4)2.2各部分硬件设计及其原理 (4)2.2.1 STC89C51简介 (4)2.2.2 LED显示电路设计与原理 (5)2.2.3 时钟振荡电路 (5)2.3硬件电路图及功能 (6)3软件设计 (7)3.1音调、节拍以及编码的确定方法 (7)4.1.1 音调的确定 (7)4.1.2 节拍的确定 (8)4.1.3 编码 (9)4.2软件程序设计 (10)4.2.1 程序流程图及相应代码块 (10)4.2.2 程序源代码(见附录A) (14)5调试 (14)5.1检查硬件连接 (14)5.2检查软件系统 (14)5.3测试结果 (14)5.3.1.总体运行图 (14)5.3.2.花样灯4种花样图 (15)参考文献 (16)附录A 程序源代码及注释 (16)1概述本设计是以STC89C51芯片的电路为基础,外部加上放音设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。

单片机课程设计(含程序)——基于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. 调试测试:
- 将单片机与电源连接并上电。

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

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

音乐盒设计单片机课程设计


初始化:设置系统参数,初始化硬件 设备
读取音乐文件:从存储设备中读取音 乐文件
解码音乐文件:将音乐文件解码为音 频信号
播放音频信号:将解码后的音频信号 输出到扬声器
控制音乐播放:根据用户操作控制音 乐的播放、暂停、快进、快退等功能
结束:关闭硬件设备,结束程序运行
音乐盒单片机软件功能模块设计
音乐播放模块:负责播放音乐,包括音乐文件的读取、解码和播放
实现
Part One
单击添加章节标题
Part Two
音乐盒设计概述
音乐盒的历史与文化背景
起源:音乐盒起源 于18世纪,最初 是作为贵族的奢侈 品
发展:19世纪, 音乐盒逐渐普及, 成为大众娱乐工具
音乐盒种类:包括 机械音乐盒、电子 音乐盒等
文化意义:音乐盒 不仅是一种娱乐工 具,也是一种文化 符号,代表着浪漫 、优雅和精致。
开发环境:Keil uVision 或IAR Embedded Workbench
编译工具:Keil uVision 或IAR Embedded Workbench
调试工具:J-Link或STLink
开发流程:编写代码、编 译、调试、下载到单片机
开发技巧:模块化编程、 代码优化、错误处理
音乐盒单片机软件控制流程设计
电源保护等
接口设计:包 括USB接口、 音频接口、电 源接口等,方 便用户操作和 连接外部设备
音乐盒单片机控制模块设计
单片机选择:根据音乐盒功能需求选择合适的单片机型号 控制模块设计:设计音乐盒的控制模块,包括按键、显示、音频输出等 程序编写:编写控制模块的程序,实现音乐盒的功能 调试与测试:对控制模块进行调试和测试,确保其正常运行
音乐盒单片机硬件 设计

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

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

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

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

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

C语言单片机(音乐盒)

单片机课程设计报告题目:电子琴姓名:同组人:班级学号:指导老师:日期:目录摘要第一部分:题目要求 (4)第二部分:方案论证与选择 (4)第三部分:电路硬件设计 (8)第四部分:软件设计 (9)第五部分:系统调试与仪器使用 (10)总结 (10)附录 (11)摘要本设计是一个基于AT89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。

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

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

关键字:音乐盒;AT89C51单片机; KEIL; PROTEUS;音调第一部分题目要求一、基本要求传统的音乐盒多是机械音乐盒,其工作原理是通过齿轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击铁片制成的琴键,从而发出声音。

但是,机械式的音乐盒体积比较大,比较笨重,且发音单调。

水、灰尘等外在因素,容易使内部金属发音条变形,从而造成发音跑调。

另外,机械音乐盒放音时为了让音色稳定,必须放平不能动摇,而且价格昂贵,不能实现大批量生产。

本文设计的音乐盒,是基于单片机设计制作的电子式音乐盒。

与传统的机械式音乐盒相比更小巧,音质更优美且能演奏和弦音乐。

电子式音乐盒动力来源是电池,制作工艺简单,可进行批量生产,所以价格便宜。

基于单片机制作的电子式音乐盒,控制功能强大,可根据需要选歌,使用方便。

根据存储容量的大小,可以尽可能多的存储歌曲。

第二部分方案论证与选择一、系统功能框图音乐盒的系统结构以A T89C51单片机位控制核心,加上2个按键、时钟复位电路、蜂鸣器、LED模块组成。

单片机负责接收按键的输入,根据输入控制音乐播放曲目和音乐花样灯的显示样式以及蜂鸣器发音。

系统组成框图如图2.1所示。

图2.1 系统组成框图音乐盒的功能结构介绍音乐盒的功能结构如下图所示。

51单片机音乐盒程序

51单⽚机⾳乐盒程序#include<reg52.h>#define uchar unsigned char#define uint unsigned int#define ulong unsigned longcode unsigned char gao[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,} ;code unsigned char di[]={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};uchar data gepu[55]; //必须要指明长度uchar data time[55];uchar a;//中间变量把ram数组的值赋给它,传递给定时器中断//第⼀⾸:⽣⽇歌uchar code gepu1[]={5,0,5,6,5,8,7, 5,0,5,6,5,9,8, 5,0,5,12,10,8,7,6, 11,0,11,10,8,9,8,8};//30uchar code time1[]={2,0,2,4,4,4,6, 2,0,2,4,4,4,6, 2,0,2,4,4,4,4,6, 2,0,2,4,4,4,4,4 };//第⼆⾸:两只⽼虎 //⼤于14是指低⾳uchar code gepu2[]={1,2,3,1, 1,2,3,1, 3,4,5,0, 3,4,5,0, 5,6,5,4,3,1, 5,6,5,4,3,1, 2,19,1,0, 2,19,1,0};//36uchar code time2[]={4,4,4,4, 4,4,4,4, 4,4,4,4, 4,4,4,4, 3,1,3,1,4,4, 3,1,3,1,4,4, 4,4,4,4, 4,4,4,4};////第三⾸:多年以前uchar code gepu3[]={1,0,1,2,3,0,3,4, 5,6,5,3, 5,4,3,2, 4,3,2,1,0, 1,0,1,2,3,0,3,4, 5,6,5,3, 5,4,3,2,3,2,1,0};//41uchar code time3[]={4,0,2,2,4,0,2,2, 4,2,2,8, 4,2,2,8, 4,2,2,8,0, 4,0,2,2,4,0,2,2, 4,2,2,8, 4,2,2,4,2,2,10,1};//第四⾸:⼩步舞曲uchar code gepu4[]={5,1,2,3,4,5,1,0,1, 6,4,5,6,7,8,1,0,1, 4,5,4,3,2,3, 4,3,2,1,2, 3,2,1,21,1};//34uchar code time4[]={4,2,2,2,2,4,4,0,4, 4,2,2,2,2,4,4,0,4, 4,2,2,2,2,4, 2,2,2,2,4, 2,2,2,2,10};//第五⾸:字母歌uchar code gepu5[]={1,0,1,5,0,5,6,0,6,5, 4,0,4,3,0,3,2,0,2,1, 5,0,5,4,3,0,3,2, 5,0,5,4,0,4,3,0,3,2, 1,3,5,6,8,5, 4,0,4,3,0,3,2,0,2,1,0};//55 uchar code time5[]={2,0,2,2,0,2,2,0,2,4, 2,0,2,2,0,2,2,0,2,4, 2,0,2,4,2,0,2,4, 2,0,2,2,0,2,2,0,2,4, 2,2,4,2,2,4, 2,0,2,2,0,2,2,0,2,4,1}; uchar i,s;sbit led1=P3^3;sbit led2=P3^4;sbit led3=P3^5;sbit led4=P3^6;sbit led5=P3^7;sbit buzzer=P1^0;sbit key1=P2^0;//开始停⽌sbit key2=P2^1;//上⼀⾸sbit key3=P2^2;//下⼀⾸void delay(uchar t);void delayms(uchar t);void main(){uchar flag=0;uchar k=5;uchar stop;TMOD=0X01;EA=1;ET0=1;while(1){while(key2==0 || key3==0 || flag==0) {flag=1;if(key3==0){k++;delay(5);if(k>5)k=k%5;}if(key2==0){k--;delay(5);if(k==0)k=5;}switch(k%5){case 0:{P3=0x7f;s=30;for(i=0;i<s;i++){gepu[i]=gepu1[i];time[i]=time1[i];}break;}case 1:{P3=0xbf;s=36;for(i=0;i<s;i++){gepu[i]=gepu2[i];time[i]=time2[i];}break;}case 2:{P3=0xdf;s=41;for(i=0;i<s;i++){gepu[i]=gepu3[i];time[i]=time3[i];}break;}case 3:{P3=0xef;s=34;for(i=0;i<s;i++){gepu[i]=gepu4[i];time[i]=time4[i];}break;}case 4:{s=55;for(i=0;i<s;i++){gepu[i]=gepu5[i];time[i]=time5[i];}break;}}}while(key2!=0 && key3!=0){for(i=0;i<s;i++){TR0=1;a=gepu[i];///////////////////////////P0=(~gepu[i]);////////////////////////////if(time[i]>0)delay(time[i]);elsedelayms(1);if(key1==0){delay(5);stop++;}if(stop%2==0)TR0=1;elseTR0=0;while(stop%2){if(key1==0){delay(5);stop++;}}if(key2==0 || key3==0){TR0=0;break;}}}}}void dingshi0() interrupt 1 using 0 {if(a<15){TH0=gao[a+6];TL0=di[a+6];}else{TH0=gao[a-14-1];TL0=di[a-14-1];}buzzer=0;elsebuzzer=~buzzer;}void delay(uchar t) {uint i;while(t--){for(i = 0; i < 10001; i++); }}void delayms(uchar t) {uchar t1; uint t2;for(t1=0;t1<t;t1++){for(t2=0;t2<800;t2++) {;}}}。

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

单片机音乐盒1概述本设计是以AT89C51芯片的电路为基础,外部加上放音设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。

用户可以按照自己的喜好选择音乐并将其转化成机器码存入单片机的存储器中。

对于不同型号的单片机只需要相应的改变一下地址即可。

该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大的单片机和音乐爱好者提供了很好的借鉴。

1.1 课题意义音乐盒的起源,可追溯至中世纪欧洲文艺复兴时期。

当时为使教会的钟塔报时,而将大小的钟表装上机械装置,被称为“可发出声音的组钟”。

音乐盒有着300多年的发展历史,是人类文明发展的历史见证。

传统的音乐盒多是机械音乐盒,其工作原理是通过齿轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击铁片制成的琴键,从而发出声音。

但是,机械式的音乐盒体积比较大,比较笨重,且发音单调。

水、灰尘等外在因素,容易使内部金属发音条变形,从而造成发音跑调。

另外,机械音乐盒放音时为了让音色稳定,必须放平不能动摇,而且价格昂贵,不能实现大批量生产。

本文设计的音乐盒,是基于单片机设计制作的电子式音乐盒。

与传统的机械式音乐盒相比更小巧,音质更优美且能演奏和弦音乐。

电子式音乐盒动力来源是电池,制作工艺简单,可进行批量生产,所以价格便宜。

基于单片机制作的电子式音乐盒,控制功能强大,可根据需要选歌,使用方便。

根据存储容量的大小,可以尽可能多的存储歌曲。

另外,可以设计彩灯外观效果,使音乐盒的功能更加丰富。

1.2设计方案设计一个基于AT89C51系列单片机的音乐盒,利用按键切换演奏出不同的乐曲。

蜂鸣器发出某个音调,与之相对应的LED亮起。

使用两个按键,一个用来切换歌曲,另一个切换八路LED的变化花样。

1.3研究内容1)电路有两种工作模式:演奏音乐模式和花样灯模式。

演奏音乐模式:演奏完整的一首的歌曲,八路LED随着音乐变化。

花样灯模式:八路LED变化出各种花样,蜂鸣器随着发出“嘀嘀”声2)按下按键1进入演奏音乐模式,再按切换歌曲,共两首歌曲。

3)按下按键2进入花样灯模式,再按切换LED花样,共三种花样。

此电路的程序只占用了1K左右,可编制更多的音乐和LED花样,使系统的功能更加强大。

2 系统总体方案介绍2.1 系统组成框图音乐盒的系统结构以A T89C51单片机位控制核心,加上2个按键、时钟复位电路、蜂鸣器、LED 模块组成。

单片机负责接收按键的输入,根据输入控制音乐播放曲目和音乐花样灯的显示样式以及蜂鸣器发音。

系统组成框图如图2.1所示。

图2.1 系统组成框图2.2 音乐盒的功能结构图音乐盒的功能结构如图2.2所示。

Key1负责切换播放歌曲,播放歌曲共2首,分别是挥着翅膀的女孩和寂寞沙洲冷。

Key2负责切换LED显示花样,显示花样共3种,第一种顺序显示,第二种由两边向中间移动然后向两边移动,第三种循环显示。

图2.2 音乐盒功能结构图3硬件设计3.1总体设计框图图3.1总体设计框图3.2各部分硬件设计及其原理3.3 硬件电路图及功能总体硬件电路实现功能如下,如图3.4所示1)电路中用P3.2、P3.3控制按键。

2)P1.0~P1.7控制LED。

3)P2.3控制蜂鸣器。

4)电路为12MHZ晶振频率工作,起振电路中C1、C2均为30PF。

图3.4 硬件电路图4软件设计在本程序中设置了两个标志——count1和count2,分别初始化为1和0。

按键1使得count1在1和2之间切换,按键2使得count2在1~4之间切换。

程序检测count1的值,count1等于1时播放第一首歌曲,等于2时播放第二首。

另一方面根据count2的值来切换LED的花样。

count1和count2的值是互斥的,设置count1等于1、2时,count2同时设置为0;设置count2等于1~4时,count1也同时设置为0。

4.1 音调、节拍以及编码的确定方法一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能像电子琴那样能奏出多种音色的声音。

因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和节拍表示一个音符唱多长的时间。

4.1.1 音调的确定不同音高的乐音是用C、D、E、F、G、A、B来表示,这7个字母就是音乐的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成简谱的1、2、3、4、5、6、7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐音的发音,所以叫“音调”,即Tone。

把C、D、E、F、G、A、B这一组音的距离分成12个等份,每一个等份叫一个“半音”。

两个音之间的距离有两个“半音”,就叫“全音”。

在钢琴等键盘乐器上,C–D、D–E、F–G、G–A、A–B两音之间隔着一个黑键,他们之间的距离就是全音;E–F、B–C两音之间没有黑键相隔,它们之间的距离就是半音。

通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它们的左上角加上﹟号或者b号的叫变化音。

﹟叫升记号,表示把音在原来的基础上升高半音,b叫降记音,表示在原来的基础上降低半音。

例如高音DO的频率(1046Hz)刚好是中音DO的频率(523Hz)的一倍,中音DO的频率(523Hz)刚好是低音DO频率(266 Hz)的一倍;同样的,高音RE的频率(1175Hz)刚好是中音RE的频率(587Hz)的一倍,中音RE的频率(587Hz)刚好是低音RE频率(294 Hz)的一倍。

1)要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。

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

2)利用AT89C51的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。

此外结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。

3)例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每次技术956次时将I/O反相,就可得到中音DO(523Hz)。

计数脉冲值与频率的关系公式如下:N=Fi÷2÷FrN:计算值;Fi:内部计时一次为1us,故其频率为1MHz;4)其计数值的求法如下: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=65536-1000000÷2÷Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627低音DO的T=65536-500000/523=64580低音DO的T=65536-500000/1047=650595)C调各音符频率与计数值T的对照表如表4.1所示。

表4.1 C调各音符频率与计数值T的对照表低音频率T 参数中音频率T 参数高音频率T 参数Do 262 1908 229 Do 523 956 115 Do 1046 57 57Do﹟277 1805 217 Do﹟554 903 108 Do﹟1109 54 54Re 294 1701 204 Re 587 852 102 Re 1175 51 51Re﹟311 1608 193 Re﹟622 804 97 Re﹟1245 48 48Mi 330 1515 182 Mi 659 759 91 Mi 1318 45 45Fa 349 1433 172 Fa 698 716 86 Fa 1397 43 43Fa﹟370 1351 162 Fa﹟740 676 81 Fa﹟1480 41 41So 392 1276 153 So 784 638 77 So 1568 38 38So﹟415 1205 145 So﹟831 602 72 So﹟1661 36 36La 440 1136 136 La 880 568 68 La 1760 34 34La﹟464 1078 129 La﹟932 536 64 La﹟1865 32 32Si 494 1012 121 Si 988 506 61 Si 1976 30 304.1.2 节拍的确定若要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律(固定的律动),而且可以调节各个音的快慢度。

“节拍”,即Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手或跺脚。

若1拍实0.5s,则1/4 拍为0.125s。

至于1拍多少s,并没有严格规定,就像人的心跳一样,大部分人的心跳是每分钟72下,有些人快一点,有些人慢一点,只要听的悦耳就好。

音持续时间的长短即时值,一般用拍数表示。

休止符表示暂停发音。

一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。

了解音乐的一些基础知识,我们可知产生不同频率的音频脉冲即能产生音乐。

对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生这样的方波频率信号。

因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。

表4.2节拍与节拍码对照节拍码节拍数节拍码节拍数1 1/4拍 1 1/8拍2 2/4拍 2 1/4拍3 3/4拍 3 3/8拍4 1拍 4 2/1拍5 1又1/4拍 5 5/8拍6 1又1/2拍 6 3/4拍8 2拍8 1拍A 2又1/2拍 A 1又1/4拍C 3拍 C 1又1/2拍F 3又3/4拍每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,图5.2为节拍码的对照。

如果1拍为0.4秒,1/4拍实0.1秒,只要设定延迟时间就可求得节拍的时间。

假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推。

所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如图5.3为1/4和1/8节拍的时间设定。

表4.3 1/4和1/8节拍的时间设定曲调值DELAY 曲调值DELAY调4/4 125毫秒调4/4 62毫秒调3/4 187毫秒调3/4 94毫秒调2/4 250毫秒调2/4 125毫秒4.1.3 编码do re mi fa so la si分别编码为1~7,重音do编为8,重音re编为9,停顿编为0。

播放长度以十六分音符为单位(在本程序中为165ms),一拍即四分音符等于4个十六分音符,编为4,其它的播放时间以此类推。

相关文档
最新文档