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

    基于单片机设计电子琴DIY小制作.doc

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

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

    基于单片机设计电子琴DIY小制作.doc

    电子设计任务书摘要:电子琴又称作电子键盘,属于电子乐器。我们根据电子琴发音的根本原理,用8个按键代表8个根本音符,从左到右分别代表“Do Re Mi Fa Sol La Si Do。为了更直观的让弹奏着感觉音调的变化,采用了假设干个发光二极管,将其与按键相连接,当我们弹奏时,发光二极管也会根据音符的不同而表现出不同二极管的闪亮。可谓是比一般常见的电子琴多了视觉的冲击,也因此,我们取名为屏幕式声光电子琴。关键词:电子琴,直观,按键,发光二极管一、 设计任务与要求1. 设计目的运用<<单片机原理及应用>>课程等相关知识,根据题目要求进行控制电路原理设计、电路板设计与制作、控制软件设计、系统调试,从而加深对本课程知识点的理解,使学生综合应用知识能力、设计能力、调试能力及报告撰写能力等得到显著提高。2. 设计要求利用51系列单片机、按键、扬声器等器件,设计一个电子琴。具体功能要求如下:设计键盘电路,使其具有数字键1、2、3、4、5、6、7、8、作为电子琴按键,用8个按键代表8个根本音符,从左到右分别代表“Do Re Mi Fa Sol La Si Do。再使用一个键控制发光二极管的闪亮。用单片机某一接口发出音频脉冲,驱动扬声器发音。二、 方案设计与论证要想实现电子琴的功能,大致分为最小系统、键盘电路、发声局部等几个单元电路;1最小系统电路图工作原理:采用的是STC89C52单片机,18、19脚分别为时钟电路引脚XTAL1和XTAL2;XTAL1:接外部晶体的一端,是片内振荡器反向放大器的输入端;XTAL2:接外部晶体的另一端,是片内振荡器反向放大器的输出端。振荡电路的频率是晶体振荡频率,我们采用的振荡频率为12MHz。单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。这次最小系统起振电容C2、C3采用的是30Pf。2键盘电路图工作原理:单片机的输入输出引脚P0、P1、P2和P3端口引脚我们这次实验采用了p3.0p3.7八个引脚来控制八个开关。3发声局部电路图工作原理:蜂鸣器是电子电路中最根本的发生装置。无缘蜂鸣器通过一定频率的震荡波产生不同的声音。本次试验,我们选用的是2W、0.5欧的蜂鸣器。三、 软件程序设计具体程序:sfr P4=0xe8;/定义P4组I0口#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit speaker=P14;/喇叭接30脚sbit key1=P10;/流水灯按键(暂时)sbit key2=P11;/播放音乐按键暂定uchar a,b,num1,s1num,n1,n2;char num;/定义num为可以负数uchar code yinfu=0xfb,0xe9, /Do 0xfc,0x5c, /Re 0xfc,0xc1, /Mi 0xfc,0xef, /Fa 0xfd,0x45, /So 0xfd,0x92, /La 0xfd,0xd0, /Si 0xfd,0xee, /Do# 0x00,0x00, /间隔;uchar code shengri_tone= 1,0,1,2,1,4,3,0, /生日快乐音调 1,0,1,2,1,5,4,0, 1,0,1,8,6,4,3,2,0, 7,0,7,6,4,5,4,0 /0代表不发声,即停顿;数字即为音调; uchar code shengri_beat= 24,1,24,48,48,48,72,5,/节拍 24,1,24,48,48,48,72,5, 24,1,24,48,48,48,48,72,5, 24,1,24,48,48,48,72,5 /节拍,即tone表各音调的延时;uchar code ledtable=0x7f,0xbf,0xdf,0xef, /取反0xf7,0xfb,0xfd,0xfe;/P0组口的发光二极管代码焊接过程可能会相反,具体更改uchar code ledtable2=0x7f,0xbf,0xdf,0xef, /取反0xf7,0xfb,0xfd,0xfe;/P2组口发光二极管代码,相反!void check_key();/改为P3组为按键void keyscan();void turn();/顺时针流动void back();void qianhou();void dangshuang();void delay(uint z);/延时函数声明void delay1(void);/声明第二个延时函数void play1(void);/播放生日快乐void main()s1num=0;/流水灯种类标志key1=1;key2=1;TMOD=0x01;TH0=a;TL0=b;ET0=1;/翻开定时器,但是未允许中断TR0=1;while(1)check_key();keyscan();void time0() interrupt 1TH0=a;TL0=b;speaker=speaker;void check_key()P3=0xff;/先赋给P2组口高电平switch(P3)/按下一个键相应4个灯亮case 0xfe:P0=0xee;P2=0x77;a=0xfb;b=0xe9;EA=1;break;/P0,P2组为发光二极管组case 0xfd:P0=0xdd;P2=0xbb;a=0xfc;b=0x5c;EA=1;break;/注意:EA不能改为TR0case 0xfb:P0=0xbb;P2=0xdd;a=0xfc;b=0xc1;EA=1;break;case 0xf7:P0=0x77;P2=0xee;a=0xfc;b=0xef;EA=1;break;case 0xef:P0=0xee;P2=0x77;a=0xfd;b=0x45;EA=1;break;case 0xdf:P0=0xdd;P2=0xbb;a=0xfd;b=0x92;EA=1;break;case 0xbf:P0=0xbb;P2=0xdd;a=0xfd;b=0xd0;EA=1;break;case 0x7f:P0=0x77;P2=0xee;a=0xfd;b=0xee;EA=1;break;default:EA=0;speaker=0;/P0=0xff;P2=0xff ; void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void keyscan() if(key1=0) delay(5);if(key1=0)s1num+;while(!key1);if(s1num=1)turn();if(s1num=2)back();if(s1num=3)qianhou();if(s1num=4)dangshuang();if(s1num=5)s1num=1; if(key2=0)delay(5);while(key2);play1(); void delay1(void)/第二个延时函数 uchar n=15; while(n-) uchar i; for(i=0;i<125;i+); void play1(void)/播放生日快乐 uchar m=0; uchar s; uchar c=1; P0=0xaa; P2=0x55; while(1) EA=0; c=shengri_tonem; /取音符 s=shengri_beatm; /取节拍 a=yinfu2*c-2; b=yinfu2*c-1; EA=1; while(s-) delay1(); P0=P0; P2=P2; m+; if(m>=33) return; /数值是shengri相关表中的元素数量 /*以下为N种流水灯流动花式*/void turn()/流水灯顺时针走动5次 for(num1=0;num1<8;num1+) for(num=0;num<8;num+) P0=ledtablenum; delay(30);/时间暂定 P0=0xff;/之后关闭P1组 for(num=7;num>-1;num-) P2=ledtable2num;delay(30); P2=0xff;/之后关闭P2组 void back()/逆时针流动for(num1=0;num1<8;num1+)for(num=0;num<8;num+)P2=ledtablenum;delay(30);P2=0xff;for(num=7;num>-1;num-)P0=ledtable2num;delay(30);P0=0xff;void qianhou()/前后来回for(num1=0;num1<10;num1+)for(num=0;num<8;num+)P0=ledtablenum;P2=ledtable2num;delay(30);P0=0xff;P2=0xff;for(num=7;num>-1;num-)P0=ledtablenum;P2=ledtable2num;delay(30);P0=0xff;P2=0xff;void dangshuang()/单数双数for(num1=0;num1<15;num1+) P0=0x55; P2=0xaa; delay(150); P0=0xaa; P2=0x55; delay(150); 四、软件系统调试 将编好的程序进行编译、调试,将正确的程序烧入单片机STC89C52中,板子接入电源后,运行无误,调试成功。附件2:元件清器件名称 型号 数量单片机 STC89C52RC 1个电阻 470欧 16个 1 K 1个发光二极管 假设干种颜色 16个按键 小型的 8个 大型的 2个三极管 8050系列 2个喇叭 2w、0.5欧 1个瓷片电容 30pf 2个电解电容 10uf 1个 晶振 12MHZ 1个板子 5*7cm 1个 9*16cm 1个仅供学习参考

    注意事项

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

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




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

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

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

    收起
    展开