基于C51单片机音乐盒设计.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于C51单片机音乐盒设计 前言: 长久以来,音乐都在我们身边,封建时期的编钟道现在我们的各种各样的音乐播放,而音乐盒在我们日常生活中经常拿来当礼物来赠送,音乐盒悠扬的的乐声,经常勾起人们对美好往事的回忆,甚至魂牵梦萦,坠入时光岁月的追忆中。为了好好利用学到的知识用于自己喜欢的事情中我选择了单片机音乐盒的设计,这让我有回忆起了儿时的美好时光。 技术指标: 利用软件设计编写3首以上的歌曲并通过功放与扬声器播放出来; 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 //超高音 1234567 2.节拍的产生 音乐中的节拍用延时时间产生。例如: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 reg51.h unsigned char timer0h, timer0l, time,zt=1; sbit speaker = P1^0; // 频率-半周期数据表 高八位 共保存了四个八度的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, //高音 2345

您可能关注的文档

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档