




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子设计报告基于51单片机的多功能电子琴队别:地方生系一大队一队 组长:冯 硕 组员:易 森20075401004冯 硕20075401086程远文20075401046刘 爽20075401628一、作品简介:漂亮的外观,清澈洪亮的声音,闪闪发亮的彩灯,相信早已吸引住你的眼球!这是一款纯手工打造的电子琴,实为接近MM、生日礼物必备佳品。二、作品功能:可以演奏出基本的8种音调:Do、Re、Mi、Fa、SO、La、Si、高音Do;演奏的同时会以数字显示出当前的音调,利于培养乐感;可以自动演示这8个音调;可以演奏内置生日快乐歌。自动演奏时,LED进行节拍指示。使用方法:通过按下方的8个音调键演奏乐曲;按演示按钮可以自动演奏这8种音调;按奏乐按钮可以演奏生日快乐歌;在自动演示和奏乐的过程中按停止键则中断演奏;音量调节按钮可以选择音量大和小。三、基本原理:一定频率产生声音,频率高低决定音调。利用单片机输出脉冲信号经放大后送给喇叭,便可发出声音。本制作中巧妙地利用了单片机的定时器,让定时器中断一次就对改变喇叭的状态一次,即形成矩形方波,这也是数字电路产生声音的方法。本作品使用AT89S52型单片机,ISP在线下载使得修改芯片里面的内容相当简单,便于作品的升级与优化。由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T= 216-5105/相应的频率 ,那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数T0相关的计数值如下表所示:音符频率(HZ)简谱码(T值)中 1 DO52364580中 2 RE58764684中 3 M65964777中 4 FA69864820中 5 SO78464898中 6 LA88064968中 7 SI98865030采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:TABLE DW 64580,64684,64777,64820,64898,64968,65030四、实验目的:(1)能够对电子电路、电子元器件、印制电路板等方面的知识有进一步的认识,独立对其进行测试与检查。(2)熟悉8051单片机的内部结构和功能,合理使用其内部寄存器,能够完成相关软件编程设计工作。(3)为实现预期功能,能够对系统进行快速的调试,并能够对出现的功能故障进行分析,及时修改相关软硬件。(4)对软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。五、硬件电路:1.八颗独立按键加上两颗功能键,按键需接上拉电阻。S1S8为音调按钮,S9、S10为演奏按钮:2.喇叭驱动电路,speaker接单片机的P1.0口,喇叭安装在箱体中:3.LED电路,led接单片机的P1.1口。注意,这里的LED是那种通电自己会闪的,这样才能有视频中的效果:4.数码管电路,选用共阳数码管,ADP依次接单片机P0.0P0.7:六、软件设计/*多功能电子琴简要说明:P1.0口输出各音调的频率方波 本程序可方便地更改内置音乐的内容 编写:FengShuo,Esen 更新时间:10/03/39晚*/#include#define SPK P1_0 /定义方波输出口#define LED P1_1#define shumaguan P0 /定义数码管段码输出unsigned int tone1,tone2;unsigned char 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 /音符间隔,只要间隔时间小于65ms时,用作拍子之间的短暂停顿 ;/*生日快乐歌音调表*/unsigned char 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代表不发声,即停顿;数字即为音调;/*生日快乐歌节拍表*/unsigned char 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表各音调的延时;/*自动演示音调表*/unsigned char code yanshi_tone= 1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0, 8,0,7,0,6,0,5,0,4,0,3,0,2,0,1,0;/*自动演示节拍表*/unsigned char code yanshi_beat= 48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,2, 48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,2;/*15ms延时子程序,用于节拍*/void delay(void) unsigned char n=15; while(n-) unsigned char i; for(i=0;i=33) return; /数值是shengri相关表中的元素数量 /*演奏子程序2*/void play2(void) unsigned char m=0; unsigned char s; unsigned char a=1; while(1) EA=0; LED=0; a=yanshi_tonem; s=yanshi_beatm; tone1=yinfu2*a-2; tone2=yinfu2*a-1; EA=1; while(s-) delay(); LED=1; m+; if(m=32) return; /*按键检测*/void check_key(void) P2=0xff; P3=0xff; /设置为输入状态switch(P2) /检测按键,输出数码管、载入定时器初值、允许中断 case 0xfe:shumaguan=0xF9;tone1=0xfb;tone2=0xe9;EA=1;break;case 0xfd:shumaguan=0xA4;tone1=0xfc;tone2=0x5c;EA=1;break;case 0xfb:shumaguan=0xB0;tone1=0xfc;tone2=0xc1;EA=1;break;case 0xf7:shumaguan=0x99;tone1=0xfc;tone2=0xef;EA=1;break;case 0xef:shumaguan=0x92;tone1=0xfd;tone2=0x45;EA=1;break;case 0xdf:shumaguan=0x82;tone1=0xfd;tone2=0x92;EA=1;break;case 0xbf:shumaguan=0xF8;tone1=0xfd;tone2=0xd0;EA=1;break; case 0x7f:shumaguan=0x79;tone1=0xfd;tone2=0xee;EA=1;break; default: EA=0;SPK=0;shumaguan=0xff;/如果没有键按下则关闭中断和数码管 switch(P3) case 0xfb:play1();break; case 0xf7:play2();break; /*主程序*/void main(void) initTimer();shumaguan=0xff; TR0=1;ET0=1;SPK=0;while(1) check_key(); /*END*/ 八、调制日志2010年3月22日星期一我们领了实验装置,并对已安装好的键盘进行上电(+5v)测试,发现其为低电平触发。并对七段LED显示管进行引脚测试。晚上上网查了一下LM386的外部接口电路。2010年3月24日星期三按照LM386的接口电路图,在实验板上进行焊置安装,但是发现其供压为+16v而实验要求是5v,不知道能否工作。2010年3月27日星期六我们对LM386功放电路进行加压(+5v)测试发现,其能工作:即输出端可看到余弦波形,但是振幅比较小,而且不够稳定。这天时间充裕我们又把七段LED显示器进行焊接,加压测试,可以正常工作。2010年3月28日星期日我们完成了软件的设计。用仿真软件进行模拟没有错误。OK2010年3月29日星期一我们将程序考到了51单片机上,进行产品测试,但是没有成功。喇叭不响然后我们将单片机的输出端接示波器,当键位按下后可看波形改变,说明单片机没有问题。对电路检查没有发现错误,分析原因可能是电路的电压问题。经过讨论决定放弃该电路,重新焊接功放电路。2010年4月1日星期四我们重新焊接了电路,测试后成功。但是无法完成放音功能。调试程序2010年4月2日星期五进行最后调试,预期功能可以实现。设计成功!九、心得体会在理论课上,我们学习了一些关于51单片机的知识。这次实验课,把课本上的知识拿到实际中去应用,其中还是遇到了很多之前想象不到的问题。但是通过自学,我们完成了不少课堂上并没有掌握的内容。不论是程序上的,还是硬件电路连接上的。从自己亲自动手实践的过程中,我们团队成员都能尽自己的一份力,大家共同协作,共同发现问题,解决问题。这次实验中,从知识上,对51单片机的应用有了更深入的了解,对汇编编软件(keil,wave6000)以及烧录软件Superpro的应用有了基本的了解和实践;从个人,很大程度上锻炼了自己的动手能力,熟练焊接技术,布线技术以及对万用表,示波器,剥线钳等的使用;从团队,极大的锻炼了我们团队协作的能力,每个人的分工与协调,共同进步。通过这次实验课,我们不仅有拿到作品的成就感,又增加了团队意识。希望以后能有更多这样的机会,能充分的将知识转化为物质财富。是一种很美妙的享受。报警产生器-课程设计1 实验任务 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。 2 电路原理图 3 系统板上硬件连线 1把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上; 2在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的或者是16欧的喇叭; 3把“单片机系统”区域中的P1.7/RD端口用导线连接到“四路拨动开关”区域中的K1端口上; 4 程序设计内容 信号产生的方法:500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次; 5 程序框图 6 汇编源程序 FLAG BIT 00H ORG 00H START: JB P1.7,START JNB FLAG,NEXT MOV R2,#200 DV: CPL P1.0 LCALL DELY500 LCALL DELY500 DJNZ R2,DV CPL FLAG NEXT: MOV R2,#200 DV1: CPL P1.0 LCALL DELY500 DJNZ R2,DV1 CPL FLAG SJMP START DELY500: MOV R7,#250 LOOP: NOP DJNZ R7,LOOP RET END 7 C语言源程序 #include #include bit flag; unsigned char count; void dely500(void) unsigned char i; for(i=250;i0;i-) _nop_(); void main(void) while(1) if(P1_7=0) for(count=200;count0;count-) P1_0=P1_0; dely500(); for(count=200;count0;count-) P1_0=P1_0; dely500(); dely500(); 51单片机频率计数器课程设计1实验任务 利用AT89S51单片机的T0、T1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过8位动态数码管显示出来。要求能够对0250KHZ的信号频率进行准确计数,计数误差不超过1HZ。 2电路原理图 3系统板上硬件连线 (1)把“单片机系统”区域中的P0.0P0.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。 (2)把“单片机系统”区域中的P2.0P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。 (3)把“单片机系统”区域中的P3.4(T0)端子用导线连接到“频率产生器”区域中的WAVE端子上。 4程序设计内容 (1)定时/计数器T0和T1的工作方式设置,由图可知,T0是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的T0,最大计数值为fOSC/24,由于fOSC12MHz,因此:T0的最大计数频率为250KHz。对于频率的概念就是在一秒只数脉冲的个数,即为频率值。所以T1工作在定时状态下,每定时1秒中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理。送到数码管显示出来。 (2)T1工作在定时状态下,最大定时时间为65ms,达不到1秒的定时,所以采用定时50ms,共定时20次,即可完成1秒的定时功能。 5C语言源程序 #include unsignedcharcodedispbit=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; unsignedcharcodedispcode=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40; unsignedchardispbuf8=0,0,0,0,0,0,10,10; unsignedchartemp8; unsignedchardispco
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版智能通风排烟系统安装与智能化改造合同文本
- 2025版智能建筑项目施工班组承包服务合同范本
- 2025版全新员工试用期入职劳动合同及福利待遇协议
- 2025年度高性能河沙资源买卖合同
- 2025年度维修保养外包服务合同
- 2025诚意金协议范本:企业项目合作诚意保证金
- 2025版石材及辅料一体化建筑施工总承包合同
- 2025房地产战略合作地产项目工程监理合同
- 2025年度WTO与全球供应链金融服务合同
- 2025年度医院食堂配餐安全责任协议书范本
- 药品效期和近效期药品管理
- 全国灌溉水有效利用系数测算分析技术指导细则(2024修订版)知识培训
- 起搏器围手术期的护理
- 《诊断学意识障碍》课件
- 培训主管技能展示
- 《环境设计工程计量与计价》课件-1.什么是装饰工程预算
- 某露天矿山剥离工程施工组织设计方案
- 艺术家品牌影响力构建-洞察分析
- 孕产妇急救技能考核试卷
- 消防水池及泵房基坑土方开挖方案
- 北师大版(2024新版)七年级上册数学全册教案
评论
0/150
提交评论