简易电子琴—单片机原理及实际应用实训报告_第1页
简易电子琴—单片机原理及实际应用实训报告_第2页
简易电子琴—单片机原理及实际应用实训报告_第3页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、桂林电子科技大学信息科技学院单片机原理及应用实训报告学 号 1152100327姓名 张天瀛指导教师:易艺,马姝靓,于新业,梁晓梅2013 年 _9_ 月 _J3_ 日实训题目:简易电子琴1系统设计1.1设计要求设计任务基于AT89S52芯片制作简易电子琴,完成1-7弹奏与音乐播放任务。性能指标要求1、 设计简易电子琴硬件电路,电子琴能够弹奏17音符或其高低音,并能够通过数码 管显示对应的音符(如果使用高音或低音,则在数码管上方和下方分别放置一个发光二极管,以区分数码管所显示音符为高音还是低音);矚慫润厲钐瘗睞枥庑赖。2、编写电子琴程序,某音符的按键按下,数码管显示对应的音符,且蜂鸣器发出该音

2、符的声音,声音持续到按键释放(如果是高音,则数码管上方的发光二极管点亮,如果是低音,则数码管下方的发光二极管点亮,其他情况发光二极管都不亮);聞創沟燴鐺險爱氇谴净。3. 通过按键控制播放已存放的音乐;4. 选作:其他特殊功能(如开机播放音乐)。1.2设计思路及设计框图设计思路1、根据设计任务和性能指标要求选择总体方案,画出设计框图;2、参阅相关资料,根据设计框图和发放的元件进行单元电路的设计;3、绘制原理图,搭建电路板;4、 编写LED驱动程序,能够对应点亮相应的LED5、 编写数码管程序,对数码管进行测试,使之能循环显示0到9 ;6、 编写按键程序,能够将按键和LED及数码管对应起来;7、驱

3、动蜂鸣器程序,完成简易电子琴功能;8、编写播放音乐程序;9、 写实训报告(包括设计与调试的全过程,附上有关资料、电路图和心得体会)。总体设计框图2各个模块程序的设计程序设计流程图详细程序:主程序头文件与声明:#in elude <reg52.h>#in clude< intrin s.h>#defi ne uchar un sig ned char#defi ne uint un sig ned intsbit speak仁 P1A6;sbit s=P1A7;sbit led0=P1A0;sbit led 仁P1A1;sbit k1= PIA4;uchar n=0; /

4、节拍常数变量对应音调 1、2、3、4、5、6、7:残骛楼諍锩瀨uint code fre=64579,64685,64778,64820,64898,64968,65030; 濟溆塹籟。数码管显示:uchar code shumagua n=酽锕极額閉镇桧猪訣0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0x11,0xc1, 锥。0x63,0x85,0x61,0x71;uchar k;uchar j;uchar temp;uchar flag;uint scale;void delay_ms(uint x);void delay(unsig

5、ned char m);void main()while(1)while(k1=1)TMOD=0x21;/ 定时器 0工作于 16位定时方式 ,定时器 1 工作在 8 位自动重装EA=1;ET0=1;ET1=1;TH1=0x06;TL1=0x06;TR1=1;speak1=1;s=1;temp=0;flag=0;led0=1;led1=1;scale=0;按键扫描while(k1=1)temp=P0;if(temp|0x80)!=0xff)delay_ms(10);temp=P0;if(temp|0x80)!=0xff)switch(temp) case 0xfe:k=1;break; cas

6、e 0xfd:k=2;break; case 0xfb:k=3;break; case 0xf7:k=4;break; case 0xef:k=5;break; case 0xdf:k=6;break; case 0xbf:k=7;break;if(flag=0)TH0=frek-1/256;TL0=frek-1%256;TR0=1;flag=1;s=0;P2=shumaguank; led0=0;scale+; if(scale=10) scale=0;TR2=1; temp=P0;if(temp|0x80)=0xff) delay_ms(10); temp=P0;if(temp=0xff)

7、TR0=0; speak1=1; s=1;led0=1;if(k1=0)uchar p,m;uchar i=0;j=0;TMOD=0x21;TH0=0xd8;TL0=0xef;ET0=1;TH1=0x06;TL1=0x06;ET1=1;TR1=1;while(k1=0)led0=0;p=music_tabi;if(p=0x00)i=0;delay_ms(100);elseif(p=0xff)i=i+1;delay_ms(10);TR0=0;elsem=music_tabi+; n=music_tabi+;TR0=1;while(n!=0&&k1=0) / speak1=spea

8、k1;scale+; if(scale=10)scale=0;delay(m); /TR0=0;s=0;P2=shumaguanj+;if(j=16)j=0; 中断子程序:音调节拍即音调的频率void time0() interrupt 1if(k1=1)TH0=frek-1/256;TL0=frek-1%256;speak1=speak1; flag=0;if(k1=0)TH0=0Xd8;TL0=0Xef;n-;void time1() interrupt 3uchar t;t+;if(t=10)t=0;led1=0;if(scale=t)led1=1;void delay(unsigned

9、 char m)uint i;i=3*m;while(-i);void delay_ms(uint x)/ms 级延时while(x-)uchar i;for(i=0;i<131;i+)_nop_();_nop_();_nop_();_nop_();_nop_();3 调试过程 通过调试, 发现数码管显示不正常, 播放音乐效果失灵, 调试后依然没能完整解决,验 收过程前再次询问老师以期结果。 彈贸摄尔霁毙攬砖卤庑。4 功能测试4.1 测试仪器与设备万用表,下载线,计算机。4.2 性能指标测试顺利实现 1-7 弹奏,数码管运行效果趋于不良,音乐播放功能受损。4.3 误差分析误差方面主要是音

10、准问题, 1-7 弹奏中可以明显发现音准错误,根据频率换算完成的中 断时间并不能完全保证音准,还需要更多调试。 謀荞抟箧飆鐸怼类蒋薔。5 实训心得体会 本次实训中学到了许多知识,增强了自身实际动手能力,非常感谢老师与同学们给予 的帮助与支持。对于本次实训完成的电子琴,即便完成了实训,不足之处依然不胜枚举,让人略感沮 丧,好在不足之处可以弥补,透过实训所学到的关于硬件与软件的知识然我感到受益匪浅。厦礴恳蹒骈時盡继價骚。首先就硬件而言,透过本次实训基本了解了电子产品的开发流程与外围电路的设计与搭建, 对52系单片机的工作原理以及各接口功能有了更加深刻的理解。在软件方面,本次实训中 我更加清楚的理解

11、了 52系单片机寄存器与内部编程规则以及如何控制外围电路。所有这一 切都来自于本次动手去完成实训,事实证明,实践出真知,动手远比理论获益更丰。茕桢广鳓鯡选块网羈泪。最后,再一次向本次实训中向我伸出援手的老师与同学表示感谢,谢谢。6参考文献谢自美.电子线路设计实验测试(第二版)。武汉:华中科技大学出版社,2000陈涛单片机应用及 C51程序设计(第二版)。北京:机械工业出版社,2010喻宗泉单片机原理与应用技术。西安:西安电子科技大学出版社,2006附录附录1 :原理图-fctfcfc实际原理图有所改动与参考原理图有出入,以上为老师给出参考原理图。附录2:程序清单#in elude <re

12、g52.h>#in clude< intrin s.h>#define uchar un sig ned char#define uint un sig ned intsbit speak仁 P1A6;sbit s=P1A7;sbit led0=P1A0;sbit led1=P1A1;sbit k1=P1A4;uchar n=0;鹅娅尽損鹌惨歷茏鴛賴。籟丛妈羥为贍偾蛏练淨uint code fre=64579,64685,64778,64820,64898,64968,65030;uchar code shumaguan=0x03,0x9f,0x25,0x0d,0x99,0x

13、49,0x41,0x1f,0x01,0x09,0x11,0xc1,0x63,0x85,0x61,0x71;uchar k;uchar j;uchar temp;uchar flag;uint scale;void delay_ms(uint x);void delay(unsigned char m);void main()while(1)while(k1=1)TMOD=0x21;EA=1;ET0=1;ET1=1;TH1=0x06;TL1=0x06;TR1=1;speak1=1;s=1;temp=0;flag=0;led0=1;led1=1;scale=0;while(k1=1)temp=P0

14、;if(temp|0x80)!=0xff)delay_ms(10);temp=P0; if(temp|0x80)!=0xff)switch(temp) case 0xfe:k=1;break;case 0xfd:k=2;break;case 0xfb:k=3;break;case 0xf7:k=4;break;case 0xef:k=5;break;case 0xdf:k=6;break;case 0xbf:k=7;break; if(flag=0)TH0=frek-1/256;TL0=frek-1%256;TR0=1;flag=1; s=0;P2=shumaguank; led0=0;sca

15、le+;if(scale=10)scale=0;TR2=1;temp=P0;if(temp|0x80)=0xff)delay_ms(10);temp=P0;if(temp=0xff)TR0=0;speak1=1;s=1;led0=1;if(k1=0)uchar p,m; uchar i=0; j=0;TMOD=0x21;TH0=0xd8;TL0=0xef;ET0=1;TH1=0x06;TL1=0x06;ET1=1;TR1=1;while(k1=0) led0=0; p=music_tabi; if(p=0x00)i=0;delay_ms(100);elseif(p=0xff)i=i+1; delay_ms(10);TR0=0;elsem=music_tabi+;n=music_tabi+;TR0=1;while(n!=0&&k1=0)speak1=speak1; scale+;if(scale=10)scale=0; delay(m);TR0=0;s=0;P2=shumaguanj+;if(j=16)j=0;void time0() interrupt 1if(k1=1)TH0=frek-1/256;TL0=frek-1%256; speak1=speak1; flag=0;if(k1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论