版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子琴设计报告实验目的更深刻的了解、学习8051单片机的发声原理,利用定时器可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。其次,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平,由于定时参数不同,所以发出不同频率的脉冲。进一步熟悉定时器的编程方法和定时初值的计算,进一步熟悉键盘扫描电路的工作原理和编程方法,了解单片机芯片的接口技术。实验要求1.能够通过键盘演奏音符。2.能够保存演奏的音乐,并实现回放。3.有音调调整功能(如:C调,G调)。4.自由发挥其他功能。5.要求有单片机硬件系统框图,电路原理图,软件流程图。三、实验基本原理简易电子琴有主控、蜂鸣器、键盘输入、电源四部分组成。主控部分以AT89S52为核心,用C语言编程,充分运用AT89S52的8k字节闪烁可编程可擦除只读存储器及其丰富的I/O口,实现了对键盘数据的采集,和对蜂鸣器声音的控制;键盘输入部分采用4×4的键盘键盘输入,可以实现多个音调;供电部分可对整个电路进行供电。经测试,整机基本实现预计功能,可以实现键盘演奏音符、调整音调、保存并回放的功能。四、实验设计分析根据实验所要求实现的功能设计实现该项实验设计的软件电路及硬件电路。五、实验要求实现A.电路设计1.整体设计计划利用AT89S52单片机的功能结合C语言编程,实现电子琴播放音符等的简单功能,然后结合AT89S52单片机的控制功能,利用蜂鸣器将输入表达出来,结合程序编制过程中,对各个I/O的利用设置了键盘的扫描读入,结合电子琴需要多键位的现实,加入了4×4键盘输入,达到了预期的效果。2.分块设计1.控制模块AT89S52单片机是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含有8kb的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。在单芯片上,拥有灵巧的8位CPU和在系统可编程的Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52是一个低功耗,高性能CMOS8位单片机,片内含8K可反复擦写的程序存储器和12B的随机存储数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89S52单片机课灵活应用于各种控制领域。 其主要工作特性如下:①片内程序存储器含8K的Flash程序存储器,可擦写寿命为1000次;②片内程序存储器256字节的RAM;③具有32根可编程I/O口线;④具有3个可编程定时器;⑤中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构;⑥串行口是具有一个全双工口的可编程串行通信口;⑦具有一个数据指针DPTR;⑧低功耗工作模式有空闲模式和掉电模式;⑨具有可编程的3级程序锁定位;⑩AT89S52工作电源电压为5(+—0.2)V,且典型值为5V;AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2.输出模块输出电路采用蜂鸣器。3.输入模块采用键盘输入实现电子琴功能键盘模块的设计,考虑到了电子琴的特殊之处,就是在进行音符播放的过程中,要有多个音调及其变调的多次输入过程,从操作简单和设计合理等方面考虑,需要对每个符号位进行单独定义键位,所以,在设计中,采用了4×4键盘,利用其丰富的键位资源,可以实现对计算中每一个数位和符号位的单独定义。B.程序设计B.1程序总体设计本程序共分主程序,键盘扫描程序,播放程序,回放程序四个程序。B.2程序主要模块主程序/**************************************************共有7种音符有三种音调可选择**************************************************/#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharuintcodetable1[]={ //低音0,63628,63835,64021,64103,64260,64400,64524};uintcodetable2[]={ //中音0,64580,64684,64777,64820,64898,64968,65030};uintcodetable3[]={ //高音0,65058,65110,65157,65178,65217,65252,65283};uinttable[12]={0};sbitbeep=P2^3;uintnum,CTH0,CTL0,i,j,m;uchartemp;voiddelay(uint);voidkeyscan();voidplay(uint);voidinit();voidreplay();voidmain(){ init(); while(1){ keyscan(); }}voiddelay(uintz){uinta; ucharb; for(a=z;a>0;a--) for(b=110;b>0;b--);}voidinit(){ TMOD=0x01; EA=1; //开总中断 ET0=1; //开定时器中断}voidkeyscan(){ P3=0xfe; //检测第一行 temp=P3; temp=temp&0xf0; while(temp!=0xf0) //初始列置高电平,行置底电平 { delay(300);//消抖 temp=P3; temp=temp&0xf0; while(temp!=0xf0) { //确认按键按下 temp=P3; switch(temp) { case0xee:num=7; break; case0xde:num=8; break; case0xbe:num=9; break; case0x7e: break; } play(num); //演奏音符 while(temp!=0xf0) { temp=P3; //检验是否释放 temp=temp&0xf0; } TR0=0; //按键关闭之后,停止定时器工作 beep=1; } } P3=0xfd; //检测第二行 temp=P3; temp=temp&0xf0; while(temp!=0xf0) { delay(300); temp=P3; temp=temp&0xf0; while(temp!=0xf0) { temp=P3; switch(temp) { case0xed:num=4; break; case0xdd:num=5; break; case0xbd:num=6; break; case0x7d: break; } play(num); while(temp!=0xf0) { temp=P3; temp=temp&0xf0; } TR0=0; beep=1; } } P3=0xfb; //检测第三行 temp=P3; temp=temp&0xf0; while(temp!=0xf0) { delay(300); temp=P3; temp=temp&0xf0; while(temp!=0xf0) { temp=P3; switch(temp) { case0xeb:num=1; break; case0xdb:num=2; break; case0xbb:num=3; break; case0x7b: break; } play(num); while(temp!=0xf0) { temp=P3; temp=temp&0xf0; } TR0=0; beep=1; } } P3=0xf7; //检测第四行 temp=P3; temp=temp&0xf0; while(temp!=0xf0) { delay(300); temp=P3; temp=temp&0xf0; while(temp!=0xf0) { temp=P3; switch(temp) { case0xe7: break; case0xd7:num=0; break; case0xb7:replay(); break; case0x77: break; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; } } }}voidplay(uintnum){CTH0=table3[num]/256; CTL0=table3[num]%256; TR0=1; table[i++]=num;}voidtimer0()interrupt1{TH0=CTH0; TL0=CTL0; beep=~beep;}voidreplay(){ for(j=0;j<=i;j++){ m=table[j+1]; play(m); delay(1000); TR0=0; beep=1; delay(1000); } beep=1; TR0=0;}六、实验感想及总结设计过程中遇到的问题有很多,但是,在努力下都得到了解决,例如:始时遇到的到导线交错,难于查看电路,容易产生短路、断路问题,经结合所学识与实践经验,对电路进行了重新布线,实行了贴板引线焊接,解决了这一问题;电源供电,再外加一个自做电源,个体大、质量成,影响美观,然后就结合系统所需,改用了电池组供电;软件设计中也是也到了很多问题,如:头文件调用合适函数、循环……但是,在最后的检测中,我们完成了计划中的全部功能,可以清晰的播放音符的同时,还可以实现音调的调整及音乐的存储和回放。七、参考文献:张迎新等编著《单片基础教程——单片机基础》(第二版)北京航空航天大学出版社2006.8刘坤,宋戈,赵洪波,张宪栋。《51单片机C语言应用开发技术大全》人民邮电出版社2008黄智伟编著《全国大学生电子设计竞赛——制作实训》北京航空航天大学出版社2007.2黄智伟编著《全国大学生电子设计竞赛——技能实训》北京航空航天大学出版社2007.2胡汉才著,《
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2026年)急诊科常见急救药物之氨甲环酸注射液课件
- 生物质掺煤混烧:氮析出规律与再燃脱硝特性的深度剖析
- 第六章 专题 水平面和竖直平面内的圆周运动 教学设计 高中物理人教版(2019)必修第二册
- 生物硫铁复合材料:重金属污染环境修复的创新策略与实践
- 2026年天健先进生物医学实验室招聘工作人员(博士)3名备考题库有答案详解
- (2026年)脐灸培训课件
- 生物源针铁矿介导产活性氧物种降解磺胺抗生素的机制与效能研究
- 生物法拆分制备L-薄荷醇:技术、挑战与展望
- 生物概念图教学对普通中学高二学生学业成绩影响的深度剖析
- 生物材料弹性蛋白类似物的原核表达与性质鉴定:方法、特性及应用前景
- 区块链助力医疗数据安全响应的实时性提升
- 搭建商铺协议书
- 2025年水利工程质量检测员考试题库及答案(云南省)
- 2026年河南工业贸易职业学院单招职业适应性测试题库参考答案详解
- 《长方形、正方形面积的计算》教案数学课件
- 2025国防素养大赛试题及答案
- 地理信息安全在线培训考试系统题库及答案
- 2025年上海通管局类安全员b证考试题库及答案
- 绘画班培训招生活动方案
- 2025年Walmart FCCA质量技术验厂标准要求及评分标准
- 软件测试回归测试方案
评论
0/150
提交评论