




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字音乐盒课程设计报告 专 业: 班 级: 姓 名: 指导教师: 2011 年 6 月 24 日目 录第一章 设计任务和要求1第二章 总体设计2第三章 硬件设计33.1 硬件电路33.2 原理说明3第四章 软件设计4第五章 收获与体会5参考文献6附件A:元件清单7附件B: 总电路图8附件C:音乐程序9第一章 设计任务和要求1、利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲(内存两首乐曲)。2、采用七段数码管显示当前播放的歌曲序号。3、可通过功能键选择乐曲,暂停,播放,上一曲,下一曲。第二章 总体设计1、要产生音频脉冲,只要算出某一音频的周期(1/音频),然后将此周期除以
2、2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲2、利用8051的内部定时器使其工作在计数器模式MODE1下,改变记数值TH0及TL0以产生不同频率的方法。例如频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时956/1=956在每记数9次时将I/O口反相,就可得到中音D0(523HZ)。记数脉冲值与频率的关系公式如下:N=Fi/2/Fr N:记数值Fi:内部计时一次为1微秒故其频率为1MHZ Fr;要产生的频率3、起记数值的求法如下:T65536N655
3、36Fi2Fr例如:设K65536,FFi1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的记数值。T65536N65536Fi2Fr655362Fr65536Fr低音D0的T6553626263627中音D0的T6553652364580低音D0的T65536104765059第三章 硬件设计3.1 硬件电路本设计中用到89C51单片机,喇叭,七段显示数码管LED。(硬件电路原理图如图1所示)3.2 原理说明当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器T1,显示歌曲号。(1)硬件电路中用、分别接S1、S2作为上、下一曲的功
4、能键(2)用P1.0-P1.6控制七段码a,b,c,d,e,f。(3)用P2.0口控制喇叭。(4)电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。表3.1 电容与晶振明细电容330pf(2个),10uf(1个)晶振1CRYSTAL第四章 软件设计本程序可以实现课程设计的基本要求,并可以通过按键播放歌曲,程序流程图如下:开始初始化设置音节起始位置设置节拍间距读取音阶,音符显示当前播放歌曲序号节拍结束音乐结束图4.1 音乐盒设计程序流程图第五章 收获与体会1这学期学习单片机的时间不长,只有15周的时间,所以对单片机的硬件设计,软件设计掌握的深度不够,但在这次课程设计中,我静下心来认
5、真的看电路图,设计硬件的布局,在程序的设计,程序的调试方面都学到了很多东西,这是第一次编写单片机的大程序,很有成就感。2在一个好的氛围里才能踏下心来做东西,在这几天课设的时间里,实验的氛围对我们的影响很大,大家一起努力,这也是我们能完成课设的动力。另外在编程中出现问题时,一定要戒骄戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误,克服困难,我们也是这么做的,这在课设中十分重要。3总之,通过这次课程设计,自己亲自去做了一样东西,并且做成了,很有成就感,从中获益匪浅啊。参 考 文 献1 许珉.单片机原理及应用M. 北京:中国电力出版社,2007.082 三恒星科技.MCS-51单片机
6、原理与应用实例M. 北京:电子工业出版社,2008.013 王为青,程国钢.单片机Keil Cx51应用开发技术M. 北京:人民邮电出版社,2007.024 John Markus.电子电路大全M. 北京:计量出版社,19955 阎石.数字电子技术基础M. 北京:高等教育出版社,1998.12,第4版6 邓元庆.数字电路与逻辑设计M. 北京:电子工业出版社,2001附件A:元件清单元器件名规格/型号单组数量备注电阻510、1/4W210K、1/4W21K、1/4W2电阻排510*81瓷片电容22pF2独石电容0.1F2三极管90131晶体振荡器12MHz(矮封装)1集成块AT89S52(DIP
7、封装)1IC插座40PIN1数码管1位动态、红光、共阳极1接插件DC3-10P1与ISP下载线接口按键国产欧姆龙轻触按键,带透明帽4套万能电路板(面包板)17cm*22cm1块16导线0.3mm2单股导线4m16锡焊丝1.0mm2m16松香1盒16蜂鸣器无源1附件B:总电路图附件C:音乐程序#include #include Music.h#include SoundPlay.h #include lcd.h#define SYSTEM_OSC /定义晶振频率HZ#define SOUND_SPACE 4/5 /定义普通音符演奏的长度分率,/每4分音符间隔sbit BeepIO = P20;/
8、定义输出管脚unsigned char code duan=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/duan code 09unsigned int code FreTab12 = 262,277,294,311,330,349,369,392,415,440,466,494 ; /原始频率表unsigned char code SignTab7 = 0,2,4,5,7,9,11 ; /17在频率表中的位置unsigned char code LengthTab7= 1,2,4,8,16,32,64 ;unsigned char S
9、ound_Temp_TH0,Sound_Temp_TL0;/音符定时器初值暂存 unsigned char Sound_Temp_TH1,Sound_Temp_TL1;/音长定时器初值暂存/*unsigned char code *Sound;unsigned char code *Music3=Music_Girl,Music_Same,Music_Two;signed char FlagNo=0;static unsigned char KeyScan(void);#define MaxNo 3 /定义歌曲数目sbit KeyF =P33;sbit KeyB =P32;sbit KeyT
10、=P35;bit RunStop = 1; /1表示运行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;E
11、A = 1;FlagNo = 0;Sound = MusicFlagNo;P0 = duanFlagNo+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 NewFreTab12;/新的频率表unsigned char i,j;unsigned int Point,LD
12、iv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength;unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;#ifdef USE_LCD lcd_init(); lcd_write_string(0,MusicPlayer);#endifAgain :for(i=0;i 11)j = j-12;NewFreTabi = FreTabj*2;elseNewFreTabi = FreTabj;if(Octachord = 1)NewFreTabi=2;else if(Octachord = 3)New
13、FreTabi=2;SoundLength = 0;while(SoundSoundLength != 0x00)/计算歌曲长度SoundLength+=2;Point = 0;Tone = SoundPoint;Length = SoundPoint+1; / 读出第一个音符和它时时值LDiv0 = 12000/Speed;/ 算出1分音符的长度(几个10ms) LDiv4 = LDiv0/4; / 算出4分音符的长度 LDiv4 = LDiv4-LDiv4*SOUND_SPACE; / 普通音最长间隔标准 TR0 = 0;TR1 = 1;while(Point = 2; /低音 if (S
14、M=3) CurrentFre = 2; /高音Temp_T = 65536-(50000/CurrentFre)*10/(/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=LengthTabLength%10; /算出是几分音符XG=Length/10%
15、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 (SLen0;i-) /发规定长度的音 while(TF1=0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0; if(KeyScan()goto Again; /*more keyscan for speed*/if(LDiv2!=0)TR0=0; BeepIO=0;for(
16、i=LDiv2;i0;i-) /音符间的间隔while(TF1=0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;Point+=2; Tone=SoundPoint;Length=SoundPoint+1; if(KeyScan()goto Again; /*more keyscan for speed*/ #ifdef USE_LCD lcd_write_char(12,FlagNo+49); #endifBeepIO = 0; FlagNo +; if (FlagNo = MaxNo)FlagNo =0;Sound = MusicFlag
17、No;P0 = duanFlagNo+1;extern void Delay1ms(unsigned int count);static unsigned char KeyScan(void)unsigned char Cont; if (KeyF = 0)/前进 Delay1ms(5); if (KeyF = 0) FlagNo +; if (FlagNo = MaxNo)FlagNo =0; Sound = MusicFlagNo;P0 = duanFlagNo+1; while(KeyF = 0); return 1; if (KeyB = 0)/后退 Delay1ms(5); if (KeyB = 0) FlagNo -; if (FlagNo = -1)FlagNo =MaxNo-1; Sound = MusicFlagNo; P0 = duanFlagNo+1; while(KeyB = 0); return 1; if (KeyT = 0)/暂停 Delay1ms(5); Cont = 0; if (KeyT = 0) RunStop = RunStop; while(KeyT =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省武邑中学高三语文二轮专题复习测试题论述文新闻72
- 互联网医疗行业深度调研及盈利模式分析
- 大班健康塑料椅设计与应用
- 2025至2030中国蛋糕架行业产业运行态势及投资规划深度研究报告
- 2025至2030中国虚拟和远程实验室行业产业运行态势及投资规划深度研究报告
- 2025至2030中国蒸汽眼罩行业市场深度分析及发展趋势与投资报告
- 八年级道法教学课程标准解析计划
- 2025至2030中国药品包装硅胶干燥剂行业市场占有率及投资前景评估规划报告
- 医疗志愿者陪护队及担架服务计划
- 健康医疗产业的数据治理与数据迁移解决方案报告
- 缓和医疗与护理课件
- 《工程勘察设计收费标准》(2002年修订本)
- TCGMA0330012018压缩空气站能效分级指南
- 心理治疗师(初级)必刷必练题库(600题)
- 广东省广州市2024届高三上学期8月阶段训练数学试题
- 问道手游文曲星题目答案
- 复合趋向补语的本义课件
- 有房屋抵押贷款离婚协议书
- 集团公司企业各岗位廉洁风险点防控表格模板汇编(40篇)
- 平面连杆机构的基本类型与应用
- 天锐绿盾数据防泄密系统管理员使用手册
评论
0/150
提交评论