欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c51单片机课程设计——电子琴.doc

    • 资源ID:60091178       资源大小:303KB        全文页数:11页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c51单片机课程设计——电子琴.doc

    课程设计报告姓名:曹 飞 龙班级:101班学号:课程设计名:简易电子琴指导老师:胡启龙一、概述:本系统设计制作一个可演奏的电子琴。综合应用了两项设计:(1)能产生纯音,了解音调高低的控制方法,用键盘代替电子琴的键盘,控制演奏音乐。(2)演奏一支乐曲(天空之城)。 那音阶要怎么使用C51单片机产生呢?C51在这项工作中运用它哪些资源呢?我们怎么实现一个按键对应一个音阶呢?二、系统描述:(1)我们从初中开始就知道,声音是由振动产生的,基本的这7个音阶的频率之间满足某种数学关系由低到高排列的自然音,所以我们可以通过改变单片机输出频率就可以得到不同的音阶;(2)为了得到精确的频率(周期的倒数),我们可以使用C51单片机定时中断模块。(3)通过判断按键是否被按下,然后执行该按键按下时的函数(在程序中是改变T1的初值得到实现)。需要注意的是,在该程序中让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;要产生的频率起记数值的求法如下:T65536N65536Fi2Fr例如:设K65536,FFi1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的记数值。T65536N65536Fi2Fr655362Fr65536Fr低音D0的T6553626263627中音D0的T6553652364580低音D0的T65536104765059详细的音阶频率与计数初值可参考附录一;三、电路设计1单片机最小系统模块2.三极管信号放大模块扬声器发出对应音符模块如下:3.按键电路模块:四程序设计:本系统的程序流程图如下:开始模块初始化音乐控制按键是否按下?播放音乐音符按键是否按下?播放音符按键所对应的音符终止程序如下:#include <reg51.h>#define uchar unsigned char#define uint unsigned intsbit kongzhi=P11;sbit fm=P10; /蜂鸣器输出的IO口uchar timeh,timel,i=8,t; /timeh,timel为定时器高低4位,i为演奏音符个数uchar code yinyue=0x63,0x71,0x83,0x71,0x82,0xA2,0x76,0x32,0x32,0x63,0x51,0x62,0x82,0x54,0x32,0x32,0x42,0x32,0x42,0x11,0x32,0x81,0x81,0x81,0x73,0x41,0x41,0x71,0x74,0x63,0x71,0x83,0x71,0x82,0xA2,0x74,0x31,0x31,0x63,0x51,0x62,0x82,0x54,0x31,0x42,0x83,0x71,0x71,0x83,0x91,0x91,0xA1,0x82,0x83,0x71,0x61,0x61,0x72,0x51,0x66,0xff;/-简谱-/1-7代表中音dosi,8代表高音douchar code yinfu=0x11,0x21,0x31,0x41,0x51,0x61,0x71,0x81,0xff;/-简谱音调对应的定时器初值-uchar code cuzhi= 0xff,0xff, /占位符0xFC,0x44,0xFC,0xAD,0xFD,0x0A,0xFD,0x34,0xFD,0x83,0xFD,0xC8,0xFE,0x06, /中音dosi的T计数初值0xFE,0x22,0xFE,0x57,0xFE,0x85,0xFE,0x9B,0xFE,0xC2,0xFE,0xE4,0xFF,0x03; /高音do的T计数初值void delay1ms(unsigned int ms); /延时ms毫秒子程序void delay165ms(uint z); /延时165ms,即1/4拍子程序void keysong(); /演奏子程序int key();void song();main()kongzhi=1;EA=1; /开总中断ET0=1; /开定时器0TMOD=0x01; /定时器0工作在方式1TH0=0;TL0=0;TR0=1;P3=0xff;while(1) if(kongzhi=0)song();elsekey(); keysong(); void song()uint temp;uchar jp; /jp是简谱18的变量t=0;while(1)temp=yinyuet; if(temp=0xff) break; /到曲终则跳出循环 jp=temp/16; /取数的高4位作为音调if(jp!=0)timeh=cuzhijp*2; /取T的高4位值timel=cuzhijp*2+1; /取T的低4位值elseTR0=0;fm=1; /关蜂鸣器delay165ms(temp%16); /取数的低4位作为节拍TR0=0; /唱完一个音停10msfm=1;delay1ms(10); TR0=1; t+;TR0=0;fm=1;void timer0() interrupt 1 /定时器0溢出中断子程序用于产生各种音调TH0=timeh;TL0=timel;fm=fm; /产生方波void keysong()uint temp;uchar jp; /jp是简谱18的变量i=key();delay1ms(50);if(i!=8)TR0=1;temp=yinfui; jp=temp/16; /取数的高4位作为音调if(jp!=0)timeh=cuzhijp*2; /取T的高4位值timel=cuzhijp*2+1; /取T的低4位值elseTR0=0;fm=1; /关蜂鸣器delay165ms(temp%16); /取数的低4位作为节拍TR0=0; /唱完一个音停10msfm=1;delay1ms(10); /TR0=1;/i+;TR0=0;fm=1;int key()switch(P2)case 0xfe: return 0;case 0xfd: return 1;case 0xfb: return 2;case 0xf7: return 3;case 0xef: return 4;case 0xdf: return 5;case 0xbf: return 6;case 0x7f: return 7;default: return 8;/函数名:delay165ms/函数功能:采用软件实现延时约z*165ms/形式参数:无 /返回值:无void delay165ms(uint z) /延时165ms,即1/4拍uint x;for(x=0;x<z;x+) delay1ms(165);/函数名:delay1ms/函数功能:采用软件实现延时约ms*1ms/形式参数:无 /返回值:无void delay1ms(unsigned int ms) unsigned int i,j; for(j=0;j<ms;j+) for(i=0;i<0x100;i+); 五制作与调试: 最后制作出的成品:六测试结果。该成品外观虽然不够美观,但是播放音乐功能,一个按键对应一个音阶的功能十分到位。总的来说,对于该成品老师和同学达成了同一共识:虽然丑了点,但很“温柔”(声音较小)。七结论。本次综合设计主要涉及硬件和软件两方面的内容,通过这次课程,我的硬件和软件开发能力都获得了提高。首先硬件方面,更加熟悉了51单片机的结构以及它的实用,基本了解了电子产品的开发流程和所要做的工作。 通过课程设计,我学到了很多,这些不仅仅局限于巩固复习了课本上知识点,还锻炼了自己分析问题以及动手实际操作的能力,将以前学过的零散的知识串到一起,学以致用。本系统基本上实现了按下键盘,扬声器播放对应的音符,同时单个程序也能播放歌曲,不足之处在于不能将按键和播放音乐的程序不能完美融合,只能在一定范围内满足按键或播放歌曲一种需要,且播放的声音太小,放大电路的选择方面的工作做得不是很好。附录一:音阶频率与计数初值对照表:音符频率计数处之音符频率计数初值音符频率计数初值低音12200xefa9中音14400xf7d8高音18800xfbef低音22470xf173中音24940xf8bd高音29880xfc62低音32770xf307中音35540xf987高音311090xfcc7低音42940xf3c8中音45870xf9e4高音411750xfcf6低音53300xf51e中音56590xfa90高音513180xfd4b低音63700xf64c中音67400xfb29高音614800xfd98低音74150xf75a中音78310xfbb1高音716610xfddc

    注意事项

    本文(c51单片机课程设计——电子琴.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开