




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于C51单片机音乐盒设计前言:长久以来,音乐都在我们身边,封建时期的编钟道现在我们的各种各样的音乐播放,而音乐盒在我们日常生活中经常拿来当礼物来赠送,音乐盒悠扬的的乐声,经常勾起人们对美好往事的回忆,甚至魂牵梦萦,坠入时光岁月的追忆中。为了好好利用学到的知识用于自己喜欢的事情中我选择了单片机音乐盒的设计,这让我有回忆起了儿时的美好时光。技术指标:1. 利用软件设计编写3首以上的歌曲并通过功放与扬声器播放出来;2. 3首歌曲的切换通过3个不同的按键来实现。3. 能够实现暂停、播放功能。 原理: 利用AT89C51的I/O口产生一定频率的方波脉冲,驱动蜂鸣器发出不同的音调,从而演凑乐曲利用PNP三极管进行简单的电路放大。音调的产生: 1音符频率的产生: 音符及定时器初始值: 例如:中音1(do)的音频=523hz,周期T=1/523s=1912us 定时器/计数器0的定时时间为:T/2=1912/2=956us 定时器956us的计数值=定时时间/机器周期(12mhz晶振)=956us/1us=956 装入T0计数器初始值为65536-956=64580(0xFC44) 将0xFC44装入T0寄存器中(TH0装高八位即TH0=0XFC;TL0装低八位即TL=44),启动T0工作后,每技术956次将产生溢出中断,进入中断服务,每次对P1.0引脚的输出取反,就可得到中音do(523hz)的音符频率。依此产生其他的不同音符 以下给出四个八度的28个频率数据 频率-半周期数据表 高八位 0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, /低音1234567 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,/1,2,3,4,5,6,7,i 0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, /高音 234567 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF; /超高音 1234567 频率-半周期数据表 低八位 0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6, /低音1234567 0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, /1,2,3,4,5,6,7,i 0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, /高音 234567 0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16 /超高音 12345672.节拍的产生 音乐中的节拍用延时时间产生。例如:1拍=0.4s,1/2=0.2s,以此类推。只要求出1/2拍的延时时间,其余节拍是他的倍数就行了。 得到音符并加上起对应的节拍就可得到音调。以此将音调连起来就可获得曲子。电路原理1.时钟控制部分:12MHZ晶振1个,30pf瓷片电容2个;2.复位电路:1k电阻1个,22uf电解电容1个;3.发音电路:PNP三极管1个,5v小喇叭1个;4.按键电路:4x4矩阵键盘实现点歌功能;P3.2实现暂停,P3.3实现继续播放;结论:由于时间关系本设计只能单曲播放,不能自动播放下一曲;希在以后能解决,并能实现在连播中进行指定点播和加上数码计时等人性化改进。 通过这次的课程设计不仅让我进一步巩固了所学的单片机只是也让我更进一步了解了单片机的利用,同时我也感受到了学习单片机的乐趣!致谢:感谢这学期来陈海怂老师的悉心教导,让我从一个单片机外汉变成了不再对单片机无从下手的菜鸟。附录C程序设计#include unsigned char timer0h, timer0l, time,zt=1;sbit speaker = P10;/ 频率-半周期数据表 高八位 共保存了四个八度的28个频率数据code unsigned char FREQH = 0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, /低音1234567 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,/1,2,3,4,5,6,7,i 0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, /高音 234567 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF; /超高音 1234567/ 频率-半周期数据表 低八位code unsigned char FREQL = 0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6, /低音1234567 0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, /1,2,3,4,5,6,7,i 0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, /高音 234567 0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16; /超高音 1234567/- / 要想演奏不同的乐曲, 只需要修改这个数据表code unsigned char music4500 = /乡间小路数据表3,1,2, 3,1,1, 3,1,1, 6,0,1, 6,0,1, 1,1,2, 6,0,1, 5,0,1, 6,0,4, 6,0,2, 6,0,1 ,6,0,1, 6,0,2, 6,0,1, 1,1,1, 2,1,2, 2,1,1, 3,1,1, 2,1,4, 3,1,1, 3,1,1, 3,1,1, 2,1,1, 4,1,2, 4,1,2, 3,1,2, 2,1,1, 1,1,1, 2,1,4, 7,0,1, 7,0,1, 7,0,1, 6,0,1, 5,0,1, 5,0,1, 6,0,1, 7,0,1, 7,0,1, 6,0,1, 5,0,1, 6,0,4, 6,1,2, 3,1,1, 6,1,1, 7,1,1, 6,1,1, 5,1,1, 5,1,2, 5,1,1, 2,1,1, 5,1,1, 6,1,1, 5,1,1, 4,1,1, 4,1,2, 4,1,1, 3,1,1, 2,1,2, 1,1,1, 2,1,1, 3,1,1, 2,1,1, 1,1,1, 2,1,1, 3,1,4, 6,1,2, 3,1,1, 6,1,1, 7,1,1, 6,1,1, 5,1,1, 5,1,2, 2,1,1, 5,1,1, 6,1,1, 5,1,1, 4,1,1, 4,1,2, 4,1,1, 5,1,1, 6,1,1, 4,1,1, 3,1,1, 2,1,2, 2,1,2, 5,1,4, 0,0,0,/ 送别数据表 5,1,2, 3,1,3, 5,1,1, 1,2,3, 6,1,2, 1,2,2, 5,1,4, 5,1,2, 1,1,1, 2,1,1, 3,1,2, 2,1,1, 1,1,1, 2,1,4, 5,1,2, 3,1,1, 5,1,1, 1,2,2, 7,1,1, 6,1,2, 1,2,2, 5,1,4, 5,1,2, 2,1,1, 3,1,1, 4,1,2, 7,0,1, 1,1,4, 6,1,2, 1,2,2, 1,2,4, 7,1,2, 6,1,1, 7,1,1, 1,2,4, 6,1,1, 7,1,1, 1,2,1, 6,1,1, 6,1,1, 5,1,1, 3,1,1, 1,1,1, 2,1,8, 5,1,2, 3,1,1, 5,1,1, 1,2,2, 7,1,1, 6,1,2, 1,2,2, 5,1,4, 5,1,2, 2,1,1, 3,1,1, 4,1,2, 7,0,2, 1,1,4, 0,0,0,/一辈子的孤单数据表 5,0,1, 5,0,1, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 3,1,1, 3,1,1, 2,1,1, 2,1,4, 5,0,1, 5,0,1, 3,1,1, 2,1,1, 2,1,1, 2,1,1, 1,1,1, 2,1,1, 3,1,1, 3,1,4, 5,0,1, 5,0,1, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 3,1,1, 3,1,1, 2,1,1, 2,1,4, 2,1,1, 1,1,1, 3,1,1, 2,1,1, 1,1,1, 2,1,1, 1,1,1, 1,1,8, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 1,1,1, 2,1,1, 2,1,6, 3,1,1, 2,1,2, 1,1,1, 1,1,1, 5,0,1, 6,0,1, 5,0,1, 5,0,6, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 1,1,1, 2,1,1, 2,1,6, 5,0,1, 3,1,1, 2,1,2, 1,1,1, 2,1,2, 3,1,1, 3,1,4, 5,0,1, 3,1,1, 5,1,2, 6,1,1, 3,1,1, 2,1,1, 2,1,6, 5,0,1, 3,1,1, 2,1,2, 1,1,1, 2,1,2, 3,1,1, 3,1,4, 5,0,1, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 3,1,1, 2,1,1, 2,1,4, 2,1,1, 1,1,1, 3,1,1, 2,1,1, 1,1,1, 2,1,1, 1,1,1, 1,1,1, 1,1,6, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 3,1,1, 2,1,1, 2,1,6, 5,0,1, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 2,1,1, 3,1,1, 3,1,6, 5,0,1, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 3,1,1, 2,1,1, 2,1,6, 5,0,1, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 2,1,1, 3,1,1, 3,1,6,0,0,0,/世上只有妈妈好数据表 6, 2, 3, 5, 2, 1, 3, 2, 2, 5, 2, 2, 1, 3, 2, 6, 2, 1, 5, 2, 1, 6, 2, 4, 3, 2, 2, 5, 2, 1, 6, 2, 1, 5, 2, 2, 3, 2, 2, 1, 2, 1,6, 1, 1, 5, 2, 1, 3, 2, 1, 2, 2, 4, 2, 2, 3, 3, 2, 1, 5, 2, 2,5, 2, 1, 6, 2, 1, 3, 2, 2, 2, 2, 2, 1, 2, 4, 5, 2, 3, 3, 2, 1,2, 2, 1, 1, 2, 1, 6, 1, 1, 1, 2, 1, 5, 1, 6, 0, 0, 0;/-void t0int() interrupt 1 /T0中断程序,控制发音的音调TR0 = 0; /先关闭T0speaker = !speaker; /输出方波, 发音 TH0 = timer0h; /下次的中断时间, 这个时间, 控制音调高低TL0 = timer0l;TR0 = 1; /启动T0/-void delay(unsigned char t) /延时子函数,控制发音的时间长度unsigned char t1;unsigned long t2;for(t1 = 0; t1 t; t1+) /嵌套循环, 共延时t个半拍 for(t2 = 0; t2 8000; t2+); /延时期间, 可进入T0中断去发音TR0 = 0; /关闭T0, 停止发音/-void song() /演奏一个音符TH0 = timer0h; /控制音调TL0 = timer0l;TR0 = 1; /启动T0, 由T0输出方波去发音delay(time); /控制时间长度/-void Song(unsigned char j) /j表示第n+1首曲 unsigned char k, i; i = 0; time = 1; while(time) k = musicji + 7 * musicji + 1 - 1; /第i个是音符, 第i+1个是第几个八度 timer0h = FREQHk; /从数据表中读出频率数值 timer0l = FREQLk; /实际上, 是定时的时间长度 time = musicji + 2; /读出时间长度数值 i += 3; song(); /发出一个音符 /-void int_0() interrupt 0 / 紧急情况中断即现实暂停 unsigned char i,k,I,K; /现场保护 I=i; K=k; while(zt); zt=1; /回复现场 i=I; k=K;/-void int_1() interrupt 2 / 优先中断即现实继续播放 zt=0;/-void main() /程序从这里开始while(1)unsigned char key_h,key_l,key;P1 =0x00;TMOD = 1; /置T0定时工作方式1ET0 = 1; /开T0中断EA = 1; /开CPU中断 EX0=1; /开外部中断0IT0=0;EX1=1; /开外部中断1IT1=1; PX1=1; /开优先中断P2=0xf0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水轮机基本知识培训课件
- 机电设备电气系统布线方案
- 水稻种植课件
- 陶瓷造型工艺42课件
- 输电线路节能减排技术方案
- 水电管布置基础知识培训课件
- 二零二五年离婚手续办理及权益保障协议
- 二零二五年度新能源技术研发过桥资借款担保执行合同
- 2025版花木种植基地生态旅游开发与投资合同
- 2025版房地产预售款监管销售合同范本
- 急诊患者安全管理
- 2025标准劳动合同范本专业版(合同样本)
- 危急值报告制度培训考核试题
- 《临床医学概论》-第二版课件
- 2025-2030全球无纸化病案管理系统行业调研及趋势分析报告
- 涉密项目保密风险评估及防控措施
- 第六单元碳和碳的氧化物
- 收益法资产评估评估程序表(适用于非整年)
- 男方因病丧失劳动能力自愿离婚协议书(2篇)
- 化工厂拆除施工方案
- 食品物流学:食品保管与储存
评论
0/150
提交评论