基于80C51单片机的音乐演奏器设计

合集下载

基于51单片机的简易音乐播放器

基于51单片机的简易音乐播放器

基于单片机的电子琴课程设计一:课程目的以及要求用51单片机作为主控电路设计一个电子琴,实现能通过切换不同的键盘按键来切换歌曲。

二:课程设计背景:电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。

它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

本文的主要容是用STC89C52单片机为核心控制元件,设计一个电子琴。

以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块。

本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。

利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。

并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。

三:系统硬件设计3.1系统框图3.2 51单片机产生音符原理MCS-5l单片机有两个定时器/计数器。

系统使用定时器/计数器0产生方波。

定时器/计数器l刖用于记录音符的时长,即按键持续的时问。

定时器/计数器0的工作方式是l,即为16位定时器/计数器。

16位定时器/计数器被赋予一个初值,并开始记数。

当记数溢出,产生中断后,中断服务程序将与蜂鸣器连接的引脚电平置反,并且对定时器/计数器再赋初值,重新开始记效。

之后产生中断,引脚电平再被置反,如此周而复始,在引脚上就能产生一个频率与定时初值有关的方波信号。

而定时初值与音符频率有关,相应频率的确定,可参照12平均律,相邻两个半音A和B的频率之间的关系为:A=B√12[1]。

定时器/计数器l的作用为记录音符的时长,工作方式为l,即16位定时器/计数器。

在12MHZ的晶体振荡器F,单片机的机器周期为l“S。

本系统中,定时器/计数器l以10ms的时长为l定时单位,记录音符持续了多少个定时单位,如此,使用一个unmgnedchar型变量既可以记录2.55s的时长,这在用于记录一般弹奏的音符时是足够的。

基于C51单片机音乐盒设计

基于C51单片机音乐盒设计

基于51单片机的音乐盒设计摘要:随着科技越来越发达,单片机技术也越来越纯熟,单片机的应用也越来越广泛,可以说几乎很难找到哪个领域没有单片机的踪迹。

如今,单片机在各个领域都起着至关重要的作用。

以单片机为核心元件的数字音乐盒。

单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点。

该数字音乐盒具有体积小,重量轻,能演奏各种各样的音乐,功能多,外观绚丽多彩,使用非常方便等诸多优点。

而且具有一定的开发价值。

基于AT89C51单片机的可控数字音乐盒的程序设计。

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

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

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

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

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

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

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

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

关键词: AT89C51;KEIL;PROTEUS;数字音乐盒;数码管1 设计任务要求设计一个基于51单片机的可控数字音乐盒,分析电路工作原理,设计电路图,编译有关音乐的程序,实现通过开关按钮控制播放五首不同的音乐的目的。

2电路设计2.1单片机和音乐盒硬件的功能随着当代单片机技术的突飞猛进,单片机的功能也越来越强大,主要包括有:(1)单片机可靠性高,处理功能强,速度快;(2)系统结构简单,使用方便,实现模块化;(3)单片机集成度高;(4)控制功能强大;(5)低电压,低功耗,便于生产便携式产品。

2.2 AT89C51芯片的功能AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。

俗称单片机。

引脚功能: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),不管是否有内部程序存储器。

基于51单片机音乐播放器的设计

基于51单片机音乐播放器的设计

本科毕业论文(设计)题目:基于51单片机音乐播放器的设计学院:班级:姓名:指导教师:王振义职称:副教授完成日期:2015年5月20日基于51单片机音乐播放器设计摘要:在当今这个繁杂的社会,随着生活节奏的加快,人们从事长期的工作和面对学习过大的压力导致我们处于紧绷的状态,因此音乐对于调节压力不言而喻的十分重要。

校园里的上下课的铃声,广场中爷爷奶奶伴随着音乐进行锻炼身体。

此设备为人们目前压力过大的生活带来了乐趣。

本文是利用51单片机原理设计音乐演奏的硬件电路,并运用C语言进行程序部分的设计。

经过51单片机来产生频率不同的波,这些波经过单片机输出和放大电路的放大驱使喇叭发出不一样的音调,延迟系统有可控制音符发音长短。

把音乐转化成可以从发音设备中发出的悦耳动听的音乐。

关键字:单片机;音乐播放器;C语言Design based on 51 SCM music player Abstract:In today's complex society, with the accelerating rhythm of life, the people in the long-term work and face learning too much pressure lead to us is in a state of tension, so the music is very important for regulating pressure self-evident.The ringing of a campus of adding and dropping classes, grandma and grandpa accompanied by music in the square to exercise.This device at present stress for people brought joy of life.This paper is the use of 51 single chip microcomputer hardware circuit design of music playing, and part using C language program design.After 51 single chip microcomputer to produce different frequency of wave, the wave through single chip microcomputer output and amplifying circuit amplifier drives the horn a different tone, length of the delay system with control pronunciation notes.Can put the music into sweet music from pronunciation in the device.Keywords : Single-chip processor; Music player; C programming language目录1 引言 (1)2 51单片机的结构与原理 (2)2.1 51单片机的基本结构 (2)2.1.1 8051单片机的基本组成及主要性能 (2)2.1.2 8051单片机的外部引脚说明 (4)2.1.3并行输入/输出口电路结构 (5)2.1.4时钟电路 (6)2.2 51单片机的微处理器 (6)2.2.1 运算器 (6)2.2.2 控制器 (6)2.3 51单片机的存储器 (7)2.3.1 内部数据存储器 (7)2.3.2 内部程序存储器 (7)3 硬件电路设计 (8)3.1 总体设计框图 (8)3.2原理图 (8)3.3 焊接实物图 (9)3.4 时钟电路 (9)3.7 音频发生及放大电路 (9)4软件程序设计 (10)4.1单片机发声原理 (10)4.2 程序流程图 (11)4.3 程序代码 (12)5 调试与故障分析 (12)5.1 软件程序调试 (12)5.2 硬件电路调试 (13)6 总结与展望 (13)7参考文献 (14)8致谢 (15)1、引言单片机又被人家称为微控制器,是一种大规模构成的电路模块,其特点是功能实用、体积又小、性能优秀、价格优惠,适用大多数人群。

基于51单片机的音乐播放器的设计

基于51单片机的音乐播放器的设计

基于51单片机的音乐播放器的设计学院:电子与电气工程学院专业:测控技术与仪器***名:**学号: ***********湖南工业大学Hunan university of Technology基于51单片机的音乐播放器的设计[摘要]本课题完成了基于51单片机的音乐播放器的软件设计。

论文主要介绍了对U盘所存储的MP3、WMA或MIDI格式的文件识别、提取以及音频解码程序实现的方法,通过与硬件调试表明所设计的音乐播放器可以通过按键选择歌曲以及控制音量,同时还可以通过显示屏来显示所播放的歌曲名。

声音的播放可以通过扬声器或耳机进行,基本实现了音乐播放器的功能。

[关键词]单片机;音乐播放器;U盘文件读取;音频解码目录1 引言 (1)1.1 设计意义 (1)1.2 理论分析与方案论证 (1)1.2.1 理论分析 (1)2 系统硬件原理及概述 (2)2.1 STC12C5A60S2处理器介绍 (2)2.2 系统硬件电路综述 (2)2.2.1 硬件系统总体设计方案 (2)2.2.2 USB总线的通用接口芯片CH375电路 (3)2.2.3 LCD12864显示电路 (3)2.2.4 按键控制电路 (3)2.2.5 音频解码芯片VS1003电路 (4)3 系统软件设计 (4)3.1 软件开发平台 (4)3.2 系统的软件设计 (4)3.2.1 软件总体分析................................ 错误!未定义书签。

3.2.2 CH375软件系统设计 (7)3.2.3 CH375模块的U盘数据读取程序设计 (8)3.2.4 VS1003模块的MP3文件播放程序设计 (9)3.3 系统流程图 (11)参考文献 (11)1 引言1.1设计意义基于单片机的音乐播放器可应用于MP3,MP4,扩音器等很多方面,并可作为很多系统的辅助功能,传统的音乐播放器是利用定时器可以产生各种固定频率的方波信号,可以产生包括“Do”、“Re”、“Me”等音阶在内的各种频率声音。

基于51单片机音乐播放器课程设计报告

基于51单片机音乐播放器课程设计报告

基于51 单片机音乐播放器课程设计报告课程设计课程设计名称:单片机课程设计专业班级电科0901 学生姓名:学号:200948360118指导教师:课程设计时间:2012-9-20〜2012-9-28 电子信息科学与技术专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文) 首页一设计任务及要求利用单片机定时器完成控制音乐的频率,每个音调响的时长,来达到播放出音乐。

并且实时监测红外接收管是否触发中断,来判断是否遥控器按下了播放/ 暂停键、上一首、下一首,进而实时处理。

并把信息显示在1602 液晶上。

音高与频率的对应关系下表:二设计原理图单片机与1602 液晶、红外接收管SM0038 接线图单片机驱动蜂鸣器电路及红外遥控器键码本次实验所用按键及对应编码:( 1 )上一首07 (2) 下一首15 (3)播放/暂停09三程序设计框图Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256;装入的初值(10ms 的初装值)Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256; 装入的初值TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TMOD |= 0x11;ET0 = 1;ET1 = 0;PT0 = 0;TR0 = 0;TR1 = 0;EA = 1;void write_cmd(uchar cmd)//1602 lcd_rs=0; lcd_w=0;P0=cmd;delay(7);lcd_en=1;delay(6);lcd_en=0;void write_date(uchar date)//1602lcd_rs=1;lcd_w=0;P0=date;delay(7);lcd_en=1;delay(6);lcd_en=0;void init_1602()// 初始化1602lcd_en=0;write_cmd(1);write_cmd(0x84);write_cmd(0x38); write_cmd(0x0f); write_cmd(0x06);void inte1_init()// 红外中断 // 计算 TL1 应 // 计算 TH1 应 IT1 = 1;// 外部中断,下降沿中断EX1 = 1;// 开外部中断PX1 = 1;//EA = 1;// 开总中断IRIN=1; // 读引脚前,先置高void jiema() // 红外解码uchar i,j; for(j=0;j<4;j++)irma[j]=0;// 清除上次的码for(i=0;i<8;i++)irma[j]=irma[j]>>1;// 右移 1 位while(!IRIN);// 等待 0.56ms 低电平结束 time2_init();// 启动定时, 0.8ms while(!TF2);// 等到 0.8ms 时间到TR2=0;// 关定时器TF2=0;// 清标志位if(IRIN)// 发送是 1,其高电平时间长,大于 0.565ms irma[j]|=0x80;// 把最高位置 1 while(IRIN);// 等待高电平结束,以便于进入下一位的解码 } void Lcd_displays(uchar add,char *s)//1602 显示字符串uchar i;write_cmd(add);for(i=0;i<strlen(s);i++)write_date(s[i]);void Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int 写命令写数据Speed)// 播放歌曲函数unsigned int NewFreTab[12]; // 新的频率表unsigned char i,j;unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength; unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;for(i=0;i<12;i++) // 根据调号及升降八度来生成新的频率表j = i + Signature;if(j > 11)j = j-12;NewFreTab[i] = FreTab[j]*2;NewFreTab[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)SL=Tone%10; // 计算出音符SM=Tone/10%10; // 计算出高低音SH=Tone/100; // 计算出是否升半CurrentFre = NewFreTab[SignTab[SL-1]+SH]; // 查出对应音符的频率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 是对中断延时的补偿}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;LDiv1=LDiv*SOUND_SPACE;LDiv1=LDiv/2; // 算出顿音的演奏长度LDiv1=LDiv;if(SL==0) LDiv1=0;LDiv2=LDiv-LDiv1; // 算出不发音的长度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(LDiv2!=0) void BeepTimer0(void) interrupt 1 // 音符发生中断BeepIO = !BeepIO;TH0 = Sound_Temp_TH0;TL0 = Sound_Temp_TL0;void inte1inte() interrupt 2 // 红外中断,外部中断 1 uchar k=10;EX1 = 0;// 关外部中断while(k--)〃循环十次,一次0.8ms,十次8ms , time2_init();while(!TF2);TF2 = 0;TR2 = 0;if(IRIN)// 中间如果出现高电平,就说明不是9MS 的引导电平{EX1 = 1;// 则开外部中断,退出中断return;while(!IRIN);// 运行到此,说明是引导电平,等待9MS 引导结束k=3;// 循环 3 次,每次0.8ms ,总共 2.4ms,while(k--)time2_init();while(!TF2);TF2 = 0;TR2 = 0;if(!IRIN)//2.4ms 结束如果变低电平,说明是重码,EX1 = 1;return;// 开中断,退出中断while(IRIN);// 等待 4.5ms 高电平结束,到此说明是正常红外信号jiema();// 解码程序,包括用户码,和按键码// irfenli();if(irma[2]==0x09||irma[2]==0x15||irma[2]==0x07){// 判断按下是哪一个键if(irma[2]==0x09)if(com==0)com=1;com=0; if(com)Lcd_displays(0x80,"START");Lcd_displays(0x80,"PAUSE");else if(irma[2]==0x15) newmusic++;if(newmusic==4)newmusic=1;Lcd_displays(0x80,"NEST "); newmusic--;if(newmusic==0)newmusic=3;Lcd_displays(0x80,"LAST ");switch(newmusic){// 更新1602 显示case 1:Lcd_displays(0x88,"MUSIC1");break; case 2:Lcd_displays(0x88,"MUSIC2");break; case 3:Lcd_displays(0x88,"MUSIC3");break; }// Lcd_display();EX1 = 1;return;三首歌曲的代码:位于music.h 文件内// 挥着翅膀的女孩unsigned char code Music_Girl[]={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,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_Same[]={0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02, 0x15,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,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_Two[] ={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,课程设计课程设计名称:单片机课程设计专业班级电科0901 学生姓名:学号:200948360118指导教师:课程设计时间:2012-9-20〜2012-9-28电子信息科学与技术专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页一设计任务及要求利用单片机定时器完成控制音乐的频率,每个音调响的时长,来达到播放出音乐。

单片机歌曲演奏的设计

单片机歌曲演奏的设计

摘要本文是应用STC89C52单片机来设计硬件电路,以此控制音乐的产生播放。

并利用C 语言进行程序设计。

通过控制单片机内部的定时器来产生不同频率的方波,驱动蜂鸣器发出不同音调,再利用延迟来控制发音时间的长短,以此来表示不同音阶的变化。

蜂鸣器借助这种变化来产生音乐。

本设计是8051芯片的电路为基础,外部加上功率放大器、放音设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出设定的音乐。

利用琴键控制定时器的开中断和闭中断,即实现发音和闭音。

在此期间再通过对定时器的定时时间进行控制来产生不同频率的方波,驱动蜂鸣器发出不同音阶的声音。

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

关键词:单片机;音乐;C语言;蜂鸣器AbstractThis paper is the application of STC89C52 microcontroller to design the hardware circuit to control the generation of music playing by using C language program design. Through the control of the single chip microcomputer timer to produce different inside the frequency of square wave, drive speaker tones, and then delay to control the pronunciation of the length of time, so as to indicate different scales of change. This change through the buzzer to generate program of musicThis design is 8051 chips based circuit, external plus power amplifier and let the sound equipment, so as to realize the music playing hardware circuit, through the software program to control of the single chip microcomputer timer internal play a set of music. Using the keys of the timer control open interrupt and closed interrupt, pronunciation and closed sound is implemented. In this period again through the timing of timer control time to produce different frequency of square wave, drive out the sound of different scales buzzer.The software and hardware system has a good generality and high practical value for the single-chip microcomputer and music lovers to provide a good reference.Keywords:AT89S51 SCM; music;C language program; buzzer目录摘要 (I)Abstract (II)绪论 (1)1概述 (1)1.1单片机的产生和发展 (2)1.1.1什么是单片机 (2)1.2单片机的发展史及发展趋势 (2)1.3单片机的特点及应用 (3)1.3.2单片机的特点 (3)1.3.3单片机的应用 (3)2 STC89C52单片机的结构与原理 (4)2.1 STC89C52内部组成结构 (4)2.2 STC89C52引脚组成 (5)2.3 STC89C52硬件组成 (5)2.3.1 引脚功能部件和特性 (5)2.3.2 芯片简介 (6)2.3.3 引脚功能 (6)2.3.4 单片机工作的最小化配置 (8)2.4 STC89C52中断系统 (10)2.4.1 中断的概念 (10)2.4.2 STC89C52中断系统 (11)2.4.3 中断响应过程 (16)3 系统设计总体方案 (16)3.1 设计应用系统时应考虑的问题 (17)3.2 设计使用芯片STC89C52介绍 (17)4 单片机音乐演奏控制器的软硬件设计 (19)4.1 单片机产生音调的基础知识 (19)4.2 硬件电路 (19)4.3 程序设计与调试 (20)4.3.1 程序设计框图 (20)4.3.2. 程序设计的程序清单 (20)5 论文总结 (27)参考文献 (28)附录1 (29)硬件电路 (28)附录2 (29)硬件电路原理图.......................................................................................................,, (29)致谢 (30)绪论近年来,科学技术得到了前所未有的提高,可以说,在过去的100年里的发明创造大于之前人类已经取得的发明总和。

基于51单片机的音乐播放器[1]

基于51单片机的音乐播放器[1]

目录一、概述:_____________________________________________________________ 1二、实验目的:_________________________________________________________ 1三、实验设计:_________________________________________________________ 1四、调试与仿真:_______________________________________________________ 5五、板子外观:________________________________________________________ 15六、设计及调试中的体会:______________________________________________ 16一、概述:现当今,单片机的应用无处不在。

利用单片机控制的万年历也多不胜举。

时钟芯片也相当之多,而利用单片机存储音乐,控制播放最为广泛。

它有功能多﹑价格优﹑外围电路简单的特点,备受音乐爱好者及音乐芯片制造商的青昧。

本实验,用80C51单电机及少数外围实现音乐播放器功能,并伴有彩灯闪烁。

C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。

此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。

因此,使用C语言进行程序设计已成为软件开发的一个主流。

C 语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可靠性,便于改进和扩展,从而研制出规模更大、性能更完备的系统。

因此,用C语言进行8051单片机程序设计是单片机开发与应用的必然趋势。

设计时采用Keil C软件编程,用protues软件仿真,核心器件采用灵活性高且价格低廉的A T89C51芯片。

设计完成后系统可播放自编歌曲,同时发光二极管随着歌曲的不同而闪烁。

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

单片机课程设计报告





姓名:
学号:
专业:
基于80C51单片机的音乐演奏器设计
设计原因:
随着科技的进步,各种高科技玩具应运而生,各种智能玩具层出不穷。

如果给玩具添加更多功能,那么,此种玩具就具有更强的竞争力。

故此,给玩具添加音乐演奏功能不失为良策。

此外,音乐演奏器还可以应用于多种领域,比如可应用于门铃、闹铃等各种系统。

总之,音乐演奏器有广泛的用途,且具有很强的生命力。

用单片机来实现音乐演奏的功能,既简单轻便,又易于实现,并且成本比古典乐器低廉许多。

最重要的是,基于单片机控制的音乐演奏器能发出一般乐器难以实现的音效。

在网上搜各种曲谱均可以用单片机来实现其音效。

系统工作过程:
音乐演奏器的主体由单片机构成,通过控制定时器时间的不同可以产生不同频率的方波,用于驱动喇叭发出不同的音符,再利用延时来控制发音时间的长短,即可控制节拍,把乐谱中的音符和相应的节拍变换成时常数和延迟常数,做成数据表格存放在存储器中。

由程序查表得到定时常数和延迟常数,分别用以控制定时器产生方波的频率和发出该方波的持续时间。

当延迟时间到时,再查下一个音符的定时常数好延迟常数,依次进行下去。

利用定时器T1以方式1工作,产生各音符对应频率的方波,由P1.0输出驱动喇叭发音。

节拍控制通过改变调用延时子程序D200(延时200ms)的次数来实现,以每拍800ms为例,一拍需循环调用D200延时子程序4次,同理,半拍就需要调用两次,设晶振频率为6Mhz,乐曲中的音符、频率、定时常数的关系可以参照有关表格。

系统硬件组成:
1、89C51单片机一个
2、晶振6MHz立式一个。

3、起振电容30pF瓷片电容2个
4、复位电容22uF 16V电解电容1个
5、电阻100欧、1K欧、4.7K欧各一个
6、三极管9012一个
7、蜂鸣器8欧一个
8、DIP封装插座40脚集成插座一个
9、万能版150*90一个
流程图如下:
电路原理图:
主程序为:
ORG 0000H
LJMP START
ORG 001BH
MOV TH1,R1
MOV TL1,R0
CPL P1.0
RETI
ORG 0100H
START:MOV TMOD,#10H
MOV IE,88H
MOV DPTR,#TAB
LOOP:CLR A
MOVC A,@A+DPTR
MOV R1,A
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R0,A
ORL A,R1
JZ NEXT0
MOV A,R0
ANL A,R1
CJNE A,#0FFH,NEXT
SJMP START
NEXT:MOV TH1,R1
MOV TL1,R0
SETB TR1
SJMP NEXT1
NEXT0:CLR TR1
NEXT1:CLR A
INC DPTR
MOVC A,@A+DPTR
MOV R2,A
LOOP1:LCALL D200
DJNZ R2,LOOP1
INC DPTR
AJMP LOOP
D200:MOV R4,#81H
D200B:MOV A,#0FFH
D200A:DEC A
JNZ D200A
DEC R4
CJNE R4,#00H,D200B
RET
TAB:DB 0FEH,25H,02H,0FEH,25H,02H,0FEH,25H,04H DB 0FDH,80H,04H,0FEH,84H,02H,0FEH,84H,02H
DB 0FEH,84H,04H,0FEH,25H,04H,0FEH,25H,02H
DB 0FEH,84H,02H,0FEH,0C0H,04H,0FEH,0C0H,04H
DB 0FEH,98H,02H,0FEH,84H,02H,0FEH,57H,04H
DB 00H,00H,04H,0FFH,0FFH
END
●结果与结论:
●设计此程序需要掌握89C51单片机中断和定时器的综合应用;还要学习
中断和定时器的编程方法及单片机全系统调试的过程及方法。

✧是否达到预期目的:总的来说,音乐演奏器的设计基本成功;
✧各项指标基本良好;
✧实际运行时,程序调试完全成功,可能电路有些误差,喇叭不能正
常发音。

✧设计及调试中遇到的问题及你的尝试,及没有解决的问题:
起初参看了大量的资料,参看了一些资料书上的程序设计及应用,后来尝试了5个方案,最终选定这个课题;虽然这个设计不算完美,但我个人比较喜欢这个题目。

曾经成功设计了一个“一键多功能的显示
系统”,但那个不太实用,就否决了,改成了音乐演奏器的设计。

在音乐
演奏器的程序调试过程中出现了几处错误,后来经过反复审查改正了一
些错误,其中包括字母拼写错误,程序设计错误;最终在同学的协助下
改正了全部错误,成功生成hex文件;没解决的问题是:最终运行时虽
然看到了高低电平的变化,但喇叭不能正常发音,经过反复检查调试,
喇叭仍然不能正常播放预置的音乐,可能部分元器件选择有误。

但我尝
试了很多方案,仍不能使其完美,如果焊出电路板,效果应该会好一些。

参考书籍:<<单片机应用技术>>北京理工大学出版社倪志莲编写
✧经验教训总结及你对本计划的意见或建议;
经验教训:通过此次的课程设计,我对书上的知识有了更深刻的认识,发现只有理论联系实践才能对知识有更深刻的理解。

另外,通过查阅各种资料,我对单片机有了更深层次的理解。

单片机具有强大的功能,在日常生活中有广泛的应用,利用单片机可以开发出各种智能化的电子产品,单片机产业是一个朝阳产业,前途一片光明。

总之,通过这次课程设计,我发现自己的视野更宽广了,同时增加了应对各种问题的能力和与他人沟通交流的能力。

另外,我也深深认识到了自己的不足,知识体系还不够完备,对单片机设计还不够熟练,一些方面还有待加强与完善!
对本计划非常支持!
谢谢观赏。

相关文档
最新文档