单片机数字音乐盒设计
基于单片机的数字式音乐盒设计
基于单片机的数字式音乐盒设计数字式音乐盒是一种音乐播放器,它通过数字技术存储和播放音乐。
基于单片机的数字式音乐盒可以使用单片机控制音乐的播放,实现音符和旋律的发声和控制。
本文将介绍如何设计一款基于单片机的数字式音乐盒。
一、音乐盒基本原理音乐盒是通过一个带有齿轮的转子,以弹簧的力量驱动,使得钢片受到磁力响应并发声,从而发出旋律。
数字式音乐盒是通过数字技术将音乐编码为数字信号,并存储在芯片中,通过解码器将数字信号还原为音符和旋律发声。
二、单片机控制电路设计1.芯片选择要设计一个数字式音乐盒,需要先选择一款合适的单片机,常用的有AT89C51、STC89C52等。
这里选择一款性能好且价格适中的STC89C52单片机。
2.存储器选型数字式音乐盒的数字信号需要存储在内存中,为了方便起见,使用一个4Mbit的Flash记忆芯片作为存储器。
3.音频输出电路数字信号需要通过解码器进行还原后才能通过音频输出电路输出。
可以使用一对耳机或者喇叭,同时需要用到音量电位器控制音量。
三、软件程序设计1.数字信号编解码算法的设计,可以使用目前较为流行的MIDI编码格式。
2.音乐信号输入模块设计,可以使用USB接口或SD卡接口。
3.数据接收模块设计,可以使用串行通信或者并行通信。
4.数字信号存储模块设计,使用Flash记忆芯片。
5.控制模块设计,实现单片机控制音乐盒的所有操作。
四、实现效果基于单片机的数字式音乐盒实现较为简单,但是需要注意以下几点:1.考虑使用定时器计算控制音乐的播放时间,保证旋律按照要求执行。
2.使用ADC(模拟-数字转换器)读取音量电位器值,对音量进行控制。
3.在使用USB接口时,需要有电路板,使得USB通信接口稳定,可靠。
基于单片机的数字式音乐盒是一种方便实用的音乐盒,通过数字技术的运用,实现了音乐的存储和播放,可广泛应用于各个领域中。
单片机的音乐盒设计报告
单片机的音乐盒设计报告一、引言音乐盒作为一种能够带来美妙旋律的装置,一直以来都深受人们的喜爱。
随着科技的不断发展,单片机技术的应用使得音乐盒的设计更加多样化和智能化。
本报告将详细介绍基于单片机的音乐盒的设计过程,包括硬件设计、软件编程以及最终的实现效果。
二、设计目标与需求本次设计的目标是制作一个基于单片机的音乐盒,能够播放多首预存的音乐曲目,并且可以通过按键进行曲目选择和控制播放暂停等功能。
具体需求如下: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、硬件焊接与组装按照设计原理图,将各个硬件模块焊接在电路板上,并进行组装和连接。
单片机课程设计数字音乐盒设计
机电工程系课程设计报告题目: 单片机课程设计-数字音乐盒设计专业:应用电子技术班级: 10应用电子(4)班学号: 1006190120姓名:指导老师:答辩日期: 2012年 9月目录一、绪论 ............................................................................................................................................ - 4 -二、对本课程设计的分析................................................................................................................. - 4 -2.1工作原理................................................................................................................................ - 5 -2.节拍的确定........................................................................................................................... - 6 -3. 音符的编码........................................................................................................................... - 8 -歌曲播放的设计。
先将歌曲的简谱进行编码,储存在一个数据类型为unsigned char的数组中。
单片机数字音乐盒课程设计
数字音乐盒的设计摘要随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。
小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。
传统音乐盒,多是机械型的,体积笨重,发音单调,不能实现批量生产。
本设计是一个基于AT89C51系列单片机的音乐盒。
该音乐盒主要由按键电路、复位电路、时钟电路、显示电路以及蜂鸣器组成。
使用四个按键控制音乐盒,其中两个按键用来控制歌曲的播放、暂停,另两个用来控制液晶上歌曲次序的变化,本音乐盒共有三首歌曲。
播放歌曲时,相应歌曲对应相应数码管上歌曲次序及歌名的显示。
关键词:AT89C51,蜂鸣器,LCD液晶显示目录1绪论 (1)1.1课题描述 (1)1.2基本工作原理及框图 (1)2 相关芯片及硬件电路设计 (1)2.1AT89C51芯片 (1)2.1.1 AT89C51的功能特性 (2)2.1.2 AT89C51的主要性能参数 (2)2.2晶振电路 (3)2.3复位电路 (3)2.4驱动电路 (4)2.4.1 蜂鸣器 (5)2.4.2 续流二极管 (5)2.4.3 滤波电容 (5)2.4.4 三极管 (5)2.5显示电路 (6)2.5.1 线段的显示 (6)2.5.2 字符的显示 (6)2.6按键电路 (7)3 系统软件设计 (7)3.1软件设计程序流程图 (7)3.2节拍的确定 (8)3.3编码 (9)3.4仿真 (9)总结 (12)致谢 (13)参考文献 (14)附录 (15)1绪论1.1 课题描述随着科学技术的进步和社会的发展,人类所接触的信息也在不断增加并且日益复杂。
面对浩如烟海的信息,人们已经能够利用计算机等工具高效准确地对之进行处理,但要想将处理完的信息及时,清晰地传递给别人,还必须通过寻求更加卓越的显示技术来实现。
单片机技术与液晶显示技术的结合,使信息传输交流向着智能可视化方向迅速发展。
小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。
基于单片机控制的数字音乐盒的设计
本设计是基于单片机控制的数字音乐盒的设计,由单片机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显示器............................ 错误!未定义书签。
基于单片机的数字式音乐盒设计
使用数字式音乐盒
在数字式音乐盒被制造完成后,使用也非常容易。只需要按下相应的控制开关,就可以开始播放音频文件。用户可以通过电位器调节音量或者播放音乐列表中的其他曲目。
在使用过程中,要注意数字式音乐盒的电池寿命。如果数字式音乐盒使用的是充电电池,那么必须确保其有足够的充电时间。
设计数字式音乐盒的材料
为了实现数字式音乐盒,需要以下材料:
·单片机芯片(例如STM32F103C8T6)
·数字到模拟转换器(DAC)
·音频输出器件(例如扬声器或耳机)
·控制开关(例如电位器,按钮等)
·电池(为了提供电源)
·音频文件(MP3,WAV等)
将这些材料组合在一起,可以实现数字式音乐盒。其中,单片机芯片是数字式音乐盒的关键部件,可以存储和播放歌曲、音乐片段等。
基于单片机的数字式音乐盒设计
随着新技术的不断涌现,数字式音乐盒成为人们越来越喜欢的玩具。它的外观精美,功能强大,而且价格也比传统音乐盒便宜,极受欢迎。本文将讨论基于单片机的数字式音乐盒设计,以及它的工作原理、材料和使用。
数字式音乐盒的工作原理
数字式音乐盒是使用单片机芯片进行数字信号的处理,通过音频输出器件输出模拟电信号的技术。这些芯片可以储存大量的音频文件,并且可以轻松地播放这些文件,具有极高的音频质量。数字式音乐盒可以播放所有类型的音频文件,比如WAV,MP3,MIDI和WMA等。这些芯片通常由音乐芯片,播放器和控制系统组成。播放器可以读取音频文件,发送给芯片进行处理,控制系统负责控制播放过程,比如触发开关等功能。整个过程非常简单,非常可靠。
最后,数字式音乐盒具有很多优点,比如它可以储存大量的音频文件,具有非常出色的音频质量,价格实惠,易于制造和使用,因此它是一款非常好的数码产品。
单片机音乐盒课程设计
《单片机数字音乐盒》课程设计报告专业:通信工程班级:0802姓名:彭孟秋指导教师:何小年、刘甫2011 年 6 月18 日目录1、课程设计目的 (2)2、数字音乐盒的设计要求 (2)3、电路工作原理、操作方法 (2)4、电路图 (2)5、程序框图 (3)6、关键程序 (3)7、总结 (12)8、参考书目 (12)数字音乐盒设计课程设计目的单片机原理与应用课程设计是在理论教学与有关的实验完成之后进行的,其目的是培养学生程序设计和实际应用单片机技术的能力。
通过此实践环节,使学生能够校熟练设计常用的各类汇编语言程序,掌握设计调试单片机应用系统基本方法和步骤,能够利用所学的知识设计一个中等难度的单片机应用系统,为后续实践课程奠定基础。
数字音乐盒的设计要求1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒)。
2.采用数码管显示歌曲序号。
3.可通过功能键选择乐曲,暂停,播放。
电路工作原理、操作方法(1)硬件电路中用P1.0~P1.7控制按键,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列。
(2)用P0.0~P0.7,P2.0~P2.7控制LED,其中P0.0~P0.7控制七段码a、b、d、e、f、g,用P2.0~P2.7为数码管位选信号。
(3)用,P2.0~P2.2作为LCD的RS,R/W,E的控制信号。
用P0.0~P0.7作为LCD的D0~D7的控制信号。
(4)用P3.7口控制蜂鸣器。
(5)电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。
电路图程序框图关键程序Soundplay:#include <reg52.h>#include "Music.h"#include "SoundPlay.h"#include "lcd.h"#define SYSTEM_OSC 12000000 //定义晶振频率12000000HZ#define SOUND_SPACE 4/5 //定义普通音符演奏的长度分率,//每4分音符间隔sbit BeepIO = P2^0; //定义输出管脚unsigned char codeduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//duan code 0~9unsigned int code FreTab[12] ={ 262,277,294,311,330,349,369,392,415,440,466,494 }; //原始频率表unsigned char code SignTab[7] = { 0,2,4,5,7,9,11 };//1~7在频率表中的位置unsigned char code LengthTab[7]= { 1,2,4,8,16,32,64 };unsigned char Sound_Temp_TH0,Sound_Temp_TL0; //音符定时器初值暂存unsigned char Sound_Temp_TH1,Sound_Temp_TL1; //音长定时器初值暂存//******************************************************************* #define MaxNo 3 //定义歌曲数目unsigned char code *Sound;unsigned char code * codeMusic[MaxNo]={Music_4,Music_8,Music_7,Music_6,Music_5,Music_9,Music_3 ,Music_2,Music_1};signed char FlagNo=0;static unsigned char KeyScan(void);static void Beep(void);bit RunStop = 1;//1表示运行sbit KeyB =P3^2; // 上一首sbit KeyF =P3^3; //下一首sbit KeyT =P3^5; //暂停extern void Delay1ms(unsigned int);void InitialSound(void){BeepIO = 0;Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256; // 计算TL1应装入的初值(10ms的初装值)Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256; // 计算TH1应装入的初值TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TMOD |= 0x11; //两个定时器都工作在方式1ET0 = 1;ET1 = 0;TR0 = 0;TR1 = 0;EA = 1;FlagNo = 0;Sound = Music[FlagNo];P1 = duan[FlagNo+1];}void BeepTimer0(void) interrupt 1 //音符发生中断{BeepIO = !BeepIO;TH0 = Sound_Temp_TH0;TL0 = Sound_Temp_TL0;}//*******************************************************************void Play(unsigned char Signature,unsigned Octachord,unsigned int Speed) {unsigned int NewFreTab[12]; //新的频率表unsigned char i,j;unsigned intPoint,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength;unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;#ifdef USE_LCDlcd_init();lcd_write_string(0,"MusicPlayer");#endifAgain :Delay1ms(600);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){if(KeyScan())goto Again; /*more keyscan for speed*/SL=Tone%10; //计算出音符SM=Tone/10%10; //计算出高低音SH=Tone/100; //计算出是否升半CurrentFre = NewFreTab[SignTab[SL-1]+SH]; //查出对应音符的频率if(KeyScan())goto Again; /*more keyscan for speed*/ 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是对中断延时的补偿}if(KeyScan())goto Again; /*more keyscan for speed*/ 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(KeyScan())goto Again; /*more keyscan for speed*/ 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(KeyScan())goto Again; /*more keyscan for speed*/}}if(KeyScan())goto Again; /*more keyscan for speed*/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;if(KeyScan())goto Again; /*more keyscan for speed*/}}Point+=2;Tone=Sound[Point];Length=Sound[Point+1];if(KeyScan())goto Again; /*more keyscan for speed*/#ifdef USE_LCDlcd_write_char(12,FlagNo+49);#endif}BeepIO = 0;FlagNo ++;if (FlagNo == MaxNo)FlagNo =0;Sound = Music[FlagNo];P1 = duan[FlagNo+1];}/**************************************************************功能:键盘扫描函数入参: viod KeyF 下一首KeyB 上一首KeyT 暂停返回: unsigned char1 需跳转 0 不跳转***************************************************************/ static unsigned char KeyScan(void){unsigned char Cont;if (KeyF == 0){ //前进Delay1ms(5);if (KeyF == 0){while(KeyF == 0){EA = 0;FlagNo ++;if (FlagNo == MaxNo)FlagNo =0;P1 = duan[FlagNo+1];Beep();Delay1ms(600); //是长按EA = 1;}if (FlagNo == MaxNo)FlagNo =0;Sound = Music[FlagNo];P1= duan[FlagNo+1]; //刷显示while(KeyF == 0);return 1;}}if (KeyB == 0){ //后退Delay1ms(5);if (KeyB == 0){while(KeyB == 0){EA = 0;FlagNo --;if (FlagNo == -1)FlagNo =MaxNo-1;P1 = duan[FlagNo+1];//刷显示Beep();Delay1ms(600); //是长按EA = 1;}if (FlagNo == -1)FlagNo =MaxNo-1;Sound = Music[FlagNo];P1 = duan[FlagNo+1];while(KeyB == 0);return 1;}}if (KeyT == 0){ //暂停Delay1ms(20);Cont = 0;EA = 0;TR0 = 0;TR1 = 0;if (KeyT == 0){RunStop = ~RunStop;while(KeyT == 0); //等待第一次释放Beep();if (!RunStop){ //是暂停则关中断和定时器EA = 0;TR0 = 0;TR1 = 0;while(KeyT == 0); //检测第二次按键并等待它释放(若有的话) while (KeyT){ //第二次释放了等待第三次按下P1 = duan[Cont++%10]; //第三次未按下则暂停数秒0~9Delay1ms(100);} //此处暂停直到再次有按键低电平EA = 1; //重开定时器和中断TR0 = 1;TR1 = 1;Sound = Music[FlagNo];P1 = duan[FlagNo+1]; //恢复原来的显示}}EA = 1;TR0 = 1;TR1 = 1;return 0;}return 0;}void Beep(void){unsigned char i;for(i = 0;i < 200 ;i ++){BeepIO = ~BeepIO;Delay1ms(1);}}Playmusic:#include <REG52.H>#include "Music.h"#include "SoundPlay.h"void Delay1ms(unsigned int count){unsigned int i,j;for(i=0;i<count;i++)for(j=0;j<120;j++);}main(){InitialSound();while(1){Play(0,3,380);Delay1ms(500);}}Music:#include "Music.h"//*****************************Music******************************** //挥着翅膀的女孩unsigned char code Music_1[]={0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03,0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03,0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03,0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02,0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03,0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03,0x1B,0x03, 0x1F,0x03, 0x1F,0x03, 0x17,0x03, 0x18,0x03,0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03,0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03,0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02,0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03,0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03,0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03,0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03,0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,0x03,0x17,0x04, 0x18,0x0E, 0x18,0x03, 0x17,0x04, 0x18,0x0E,0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03,0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66,0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03,0x1F,0x66, 0x1F,0x04, 0x1B,0x0E, 0x1B,0x03, 0x19,0x03,0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04,0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03,0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03,0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02,0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02,0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00};//同一首歌unsigned char code Music_2[]={0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03,0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x020x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66, 0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00, 0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03, 0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03, 0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C, 0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03, 0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02, 0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70, 0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66, 0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02, 0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C, 0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66, 0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00, 0x00,0x00 };//两只蝴蝶unsigned char code Music_3[] ={0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01, 0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0D, 0x15,0x00, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x0D, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x17,0x0D, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x03, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x0F,0x02, 0x10,0x03, 0x15,0x00, 0x00,0x00 };总结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)}这次设计进一步端了我的学习态度,学会了实事求是,严谨的作风,对自己要严格要求,不能够一知半解,要力求明明白白。
单片机课程设计_基于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单片机数字音乐盒的设计
单片机实物设计题目: 单片机音乐盒设计摘要本设计是一个基于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解码芯片可以将预先录制好的音乐文件保存在存储器中,通过与单片机的串行通信接口,将音乐数据传输到单片机中进行解码和播放。
音乐播放控制模块实现了音乐的播放、暂停、停止等操作,并提供了多个音乐旋律的选择。
基于5单片机数字音乐盒的设计设计
单片机实物设计题目: 单片机音乐盒设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
单片机数字音乐盒设计教材
单片机数字音乐盒设计摘要:本设计是采用单片机为核心设计的数字音乐播放器。
它可以实现音乐的播放,可以通过功能键来选择乐曲,播放或暂停,上一曲或下一曲,并可以通过LCD屏幕显示正在播放的歌曲的序号,以及播放时间。
开机时有英文欢迎提示字符。
本音乐播放器可以播放十首歌曲。
主控芯片采用AT89C51,采用汇编语言进行编程,编程后利用KEIl C51进行编译,用Proteus软件来仿真。
关键词:数字音乐盒;单片机;智能化Digital Music Box DesignCHENYING Instructor:HUKEYONGAbstract:This design is using microcontroller as the core design of the digital music player . It can play music. It can function keys to select a song, play or pause on one or the next one. and the serial number of the song that is playing, as well as play time can be displayed through the LCD screen. English boot welcome prompt characters. The music player can play ten songs.The master chip is AT89C51, assembly language is programming, programming by KEIl C51 compile,then using Proteus software to simulate.Key words:Digital Music Box, SCM, Intelligent目录1 引言 (1)1.1单片机总体功能简介 (1)2 系统设计 (1)2.1总体设计方案 (1)2.2系统硬件设计 (2)2.3主要元器件介绍 (4)2.3.1 AT89C51单片机 (4)2.3.2 LM016L液晶显示器 (5)2.4 PROTEUS软件介绍 (6)3 软件设计及仿真 (7)3.1程序流程 (7)3.2系统初始化程序设计 (7)3.3音调的确定 (8)3.4项目仿真 (9)总结 (10)参考文献: (10)附录一 (11)附录二 (11)1 引言目前,各种传感器、变送器、控制仪表已经普遍采用单片机应用系统。
基于单片机的数字音乐盒的设计
基于单片机的数字音乐盒的设计摘要这次的数字音乐盒是建立在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世纪的科技是属于单片机的科技时代,现在单片机应用极其普遍,技术也愈来愈成熟,基本上现如今各行各业都能看到单片机的存在。
单片机课程设计数字音乐盒的设计
数字音乐盒的设计摘要本设计采用了扬声器发声来实现歌曲的播放,能保持基本音调不变,流畅播放出歌曲。
现选用AT89C51 单片机。
用PROTEUS 单片机仿真软件仿真。
利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。
通过单片机P1 口控制,实现功能键盘控制;功能键盘采用按键开关,通过单片机P2 口控制,实现歌曲播放顺序的调换和暂停播放功能;扬声器由单片机的P3 口控制,实现歌曲播放;主要工作过程是通过按下功能键实现上一首和下一首及暂停播放,同时有液晶屏显示当前播放歌曲的序号,扬声器播放出音乐。
小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。
传统的音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。
本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,功能多,使用方便,可以批量生产,具有一定的商业价值。
关键词:AT89C51 单片机,方波,音调目录1 绪论 (1)1.1设计简述 (1)1.2设计目的 (1)1.3主要问题 (1)1.4 技术指标 (1)2 设计方案简述 (2)2.1 设计功能要求 (2)2.2 总体设计原理 (2)2.3 总体设计框图 (2)3 硬件电路设计 (3)3.1 硬件电路 (3)3.2 时钟复位电路 (3)3.3 按键输入电路 (4)3.4 输出显示电路 (4)3.5 整体硬件电路 (5)3.6 原理说明 (6)3.7 键盘按键 (6)4 软件设计 (7)4.1 设计源程序代码(见附录) (7)4.2程序设计流程图 (7)5 仿真 (8)6 设计结果及分析 (10)总结 (11)致谢 (12)参考文献 (13)附录 (14)1 绪论1.1设计简述本文设计的音乐盒,是基于单片机设计制作的电子式音乐盒。
与传统的机械式音乐盒相比更小巧,音质更优美且能演奏和弦音乐。
电子式音乐盒动力来源是电池,制作工艺简单,可进行批量生产,所以价格便宜。
单片机的可控数字音乐盒设计
基于单片机的可控数字音乐盒设计单片机和音乐盒硬件的功能随着当代单片机技术的突飞猛进,单片机的功能也越来越强大,主要包括有:(1)单片机集成度高;(2)系统结构简单,使用方便,实现模块化;(3)单片机可靠性高,处理功能强,速度快;(4)低电压,低功耗,便于生产便携式产品;(5)控制功能强大。
而本文设计采用的是A T89C51单片机,这是一款性价比非常高的单片机。
2.1 AT89C51芯片的功能AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。
俗称单片机[2]。
如图:图 2-1 AT89C51单片机引脚图基于单片机的可控数字音乐盒设计图 2-2 AT89C51单片机实物图引脚功能[3]:P0.0-P0.7:为一个8位漏级开路双向I/O口;P1.0-P1.7:是一个内部提供上拉电阻的8位双向I/O口;P2.0-P2.7:为一个内部上拉电阻的8位双向I/O口;P3.0-P3.7:管脚是8个带内部上拉电阻的双向I/O口;P3.0:RXD(串行输入口);P3.1:TXD(串行输出口);P3.2:INT0(外部中断0);P3.3:INT1(外部中断1);P3.4:T0(记时器0外部输入);P3.6:WR(外部数据存储器写选通);P3.7:RD(外部数据存储器读选通);EA:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器;P3.5:T1(记时器1外部输入);ALE:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节;PSEN:外部程序存储器的选通信号;RST:复位输入;XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入;XTAL2:来自反向振荡器的输出。
基于单片机的可控数字音乐盒设计2.2 音乐盒的硬件及其功能本文设计的数字音乐盒,所需要的硬件有:AT89C51芯片:主控制器;LED彩灯:灯光闪烁,P1.0-P1.7控制八路LED彩灯;数码管:音乐序号显示,P0.0-P0.6控制数码管;晶振:给单片机正常工作提供稳定的时钟信号,电路为12MHZ晶振频率工作,起振电路中C1、C2均为30PF。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机数字音乐盒设计摘要:本设计是采用单片机为核心设计的数字音乐播放器。
它可以实现音乐的播放,可以通过功能键来选择乐曲,播放或暂停,上一曲或下一曲,并可以通过LCD屏幕显示正在播放的歌曲的序号,以及播放时间。
开机时有英文欢迎提示字符。
本音乐播放器可以播放十首歌曲。
主控芯片采用AT89C51,采用汇编语言进行编程,编程后利用KEIl C51进行编译,用Proteus软件来仿真。
关键词:数字音乐盒;单片机;智能化Digital Music Box DesignCHENYING Instructor:HUKEYONGAbstract:This design is using microcontroller as the core design of the digital music player .It can play music. It can function keys to select a song, play or pause on one or the next one. and the serial number of the song that is playing, as well as play time can be displayed through the LCD screen. English boot welcome prompt characters. The music player can play ten songs.The master chip is AT89C51, assembly language is programming, programming by KEIl C51 compile,then using Proteus software to simulate.Key words:Digital Music Box, SCM, Intelligent目录1 引言 (1)1.1单片机总体功能简介 (1)2 系统设计 (1)2.1总体设计方案 (1)2.2系统硬件设计 (2)2.3主要元器件介绍 (4)2.3.1 AT89C51单片机 (4)2.3.2 LM016L液晶显示器 (5)2.4 PROTEUS软件介绍 (6)3 软件设计及仿真 (7)3.1程序流程 (7)3.2系统初始化程序设计 (7)3.3音调的确定 (8)3.4项目仿真 (9)总结 (10)参考文献: (10)附录一 (11)附录二 (11)1 引言目前,各种传感器、变送器、控制仪表已经普遍采用单片机应用系统。
它测量、处理、控制功能于一单片机是单片微型机的简称,故又称为微控制器MCU。
通常由单块集成电路芯片组成,部含有计算机的基本功能部件:中央处理器CPU,存储器和I/O接口电路等。
因此,单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
1.1 单片机总体功能简介单片机是在工业测控需要背景下而产生的,在一个应用系统中。
按照测控系统的特点和要求,单片机的应用可分为单机应用和多机应用两大类。
我们这次要完成的单片机课程设计就是它的单机应用,下面介绍一下单片机应用领域的主要容。
(1)智能产品单片机与传统机械产品相结合,使传统机械产品结构简化,控制智能化,购成新一代机电一体化产品。
目前,利用单片机构成的智能产品已广泛应用于家用电器、办公设备、数控机床、纺织机械、工业设备等行业。
(2)智能仪表目前,各种传感器、变送器、控制仪表已经普遍采用单片机应用系统。
它测量、处理、控制功能于一体,具有各种智能化功能,如存储、数据处理、查找、判断、联网和语音等功能。
单片机构成的智能仪表,能使仪表具有数字化、智能化、多功能化、综合化等优点。
(3)测控技术用于单片机结构的各种工业控制系统中的数据采集系统具有工作稳定可靠、抗干扰能力强的优点。
(4)智能接口在计算机系统,特别是较大型的工业测控系统中,除通用外部设备外,还由许多外部通信、采集、多路分配管理、驱动控制等接口。
这些外部设备与接口如果完全由主机进行管理,势必会造成主机负担过重,运行速度降低,接口的管理水平也不可能提高。
如果用单片机进行接口的控制与管理,单片机与主机可并行加工处理,可以大量降低接口的通信密度,极大的提高了接口控制广利水平。
在一些通用计算机外部设备上,以实现了单片机的键盘管理、打印机控制、硬盘驱动控制等。
2 系统设计2.1 总体设计方案(1)利用AT89C51单片机的I/O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。
(2)LCD 液晶显示歌曲的序号、播放时间,开机时显示英文欢迎字符。
(3)用键盘控制10首歌曲的播放,并设置开机键、暂停键、上一曲、下一曲控制键。
2.2 系统硬件设计硬件功能模块划分:单片机最小系统模块、按键模块、蜂鸣器电路模块、LCD 液晶显示屏模块。
系统结构框图如图2.1所示图2.1 数字音乐盒系统结构框图(1)单片机最小系统模块最小系统模块包括单片机、复位电路、晶振电路以及电源电路。
如图2.2所示图2.2 单片机最小系统LCD 液晶显示AT89C51单片机复位电路 晶振电路 电源电路蜂鸣器电路4X4按键矩阵电路(2)按键模块选用4X4矩阵键盘,如图2.3所示,1~4端口扫描行,5~8端口扫描列图2.3 按键模块4x4键盘构成与键盘对应功能如图2.4所示图2.4 键盘对应功能图(3)蜂鸣器电路模块蜂鸣器电路模块由单片机接口外接两个1K电阻、一个100欧电阻和一个NPN型三极管来驱动扬声器。
其主要任务是输出大信号和大功率,对音频信号有效不失真的进行放大以推动扬声器发出声音。
如图2.5所示曲一曲二曲三曲四曲五曲六曲七曲八曲九曲十下曲上曲暂停开机2.5 蜂鸣器电路(4)LCD液晶显示屏模块LCD液晶显示屏如图2.6所示,D0~D7为传送数据信息引脚,E为使能信号引脚,而当RS 为1,R/W为0时,设定为将数据信息写入LCD的数据暂存区图2.6 LCD液晶显示屏模块2.3 主要元器件介绍2.3.1 AT89C51单片机本系统采用的是51系列的AT89C51单片机。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器, 为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图2.7为AT89C51单片机的管脚图。
图2.7 AT89C51单片机管脚图VCC:正电源端GND:单片机的接地端XTAL1/XTAL2:片振荡电路输入/输出端,两端跨接晶体或瓷谐振器,与单片机部反相器构成稳定的自激振荡器。
发出的脉冲直接送入片定的控制部件RESET:复位端EA/VPP:寻址外部ROM控制端/编程电源输入端。
ALE/PROG:地址锁存允许/编程脉冲输入端。
PSEN:寻址外部程序存储器,选通外部EPROM的端口(OE)。
P0.0~P0.7 P1.0~P1.7 P2.0~P2.7:准双向I/O口。
P3.0~P3.7:具有特定的第二功能(准双向I/O口)。
2.3.2 LM016L液晶显示器LM016L液晶模块采用HD44780控制器,HD44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM (CGRAM),地址计数器RAM(AC)。
IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于部模式,不响应外部操作指令和接受数据,DDTAM 用来存储显示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160种和5*10点阵字符32种。
图2.8为LM016L液晶显示屏的引脚图图2.8 LM016L 液晶显示屏引脚图VSS:一般接地VCC:接电源(+5V)V0:液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
RS:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
R/W:R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。
E:E(或EN)端为使能(enable)端,下降沿使能。
DB0~DB7:底4位三态、双向数据总线0~6位RS、R/W寄存器选择控制如表2.1所示:RS R/W 操作说明0 0 写入指令寄存器(清除屏等)0 1 读busy flag(DB7),以及读取位址计数器(DB0~DB6)值1 0 写入数据寄存器(显示各字型等)1 1 从数据寄存器读取数据2.4 proteus软件介绍Proteus 与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU 的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。
因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。
对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。
运行proteus 的ISIS 程序后,进入该仿真软件的主界面。
在工作前,要设置view 菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。
通过工具栏中的p(从库中选择元件命令)命令,在pick devices 窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source 菜单的Definecode generation tools 菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source 菜单的Add/removesource files 命令下,加入单片机硬件电路的对应程序;通过debug 菜单的相应命令仿真程序和电路的运行情况。
Proteus 软件所提供的元件资源Proteus 软件所提供了30 多个元件库,数千种元件。
元件涉及到数字和模拟、交流和直流等。
3 软件设计及仿真3.1程序流程先从主程序开始,接着初始化变量及LCD 接口,使LCD进入了开机状态,等待选择按键,包括播放键,暂停键,停止键。