资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
单片机课程设计简易电子琴设计班级:学号:20092300246 姓名:XX一、 设计简介 用键盘上的数字17代替电子琴键,演奏音符,音调可在低音、中音和高音之间进行切换。二、 系统介绍该系统采用一片51系列单片机、一个扬声器和8个按键开关。基于对音乐的了解,一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,我们可以利用单片机的不同频率来模拟音乐,可以利用定时/计数器T1来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T= 216-5105/相应的频率 ,那么根据不同的频率计算出应该赋给定时器的计数值,可以列出不同音符与单片机计数T1相关的计数值。简易电子琴系统框图三、 硬件电路设计系统中8个键采用独立连接方式,有P1口接收键值,17号键用于控制音符。8号键用于音区切换,8号键未按下为低音,按一次为中音,按2次为高音,按第3次又回到低音。简易电子琴电路图四、 程序设计扬声器发声的频率可由定时/计数器0的计数值确定,在程序中可定义3个音区17对应的计数初值,然后根据按键情况查表后对定时/计数器0的中断服务程序中对扬声器的控制端变反即可控制扬声器发出不同频率的声音。本系统软件中还要是编辑电子琴播放状态的内容,在设计中采用c51语言编写了电子琴控制系统控制和播放内容的程序。简易电子琴程序流程图程序清单:#include #include#define uchar unsigned char#define uint unsigned intsfr16 T0=0x8A;sbit BEEP=P0.0;uint t0_f;code unint char freq21=0x220,0x247,0x277,0x294,0x330,0x370,0x415,0x440,0x494,0x554,0x587,0x659,0x740,0x831,0x880,0x988,0x1109,0x1175,0x1318,0x1480,0x1661,;timer0( )interrupt 1T0=t0_f;BEEP=BEEP;Void main(void)Uchar key,key8_count;TMOD=0x01;TR0=0;ET0=1;EA=1;While(1) flag=0;key=P1;for(i=0;i8;i+) if(_coro_(a,i)&0x01)=0) flag=1;break; if(flag=1) if(i=7) key8_count+; key8_count=key8_count%3; else switch(key8_count) case0:t0_f=freqi;break; case1:t0_f=freqi+7;break; case2:t0_f=freqi+14; TR0=1; for(n=0;n10000;n+); TR0=0; BEEP=1; 五、 总结完成了简易电子琴的设计。数字17键发挥了电子琴键的作用,能弹奏出音符。8号键也发挥作用,未按下时为低音,按一次为中音,按两次为高音,按三次又回到了低音。1.在单片机课程设计中,我在增长知识、提高能力的同时,产生了很深的感触。从初步定下方案到编出程序,从不断的运行排错到调试成功,在整个设计过程中,着实受益匪浅,不仅可以巩固以前所学过的知识,而且学到了很多在书本所没有学到过的东西。2.我懂得了理论与实际相结合是很重要的,眼高手低的现象常常难以避免。只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。3. 在设计的过程中难免会遇到各种各样的问题,但是在这重重困难之中我了解到自己的真实水平,并努力提高自己。同时我明白,对于想要成功的人来说更重要的不是知识或技能,而是克服困难的信心。实践证明看似“莫名其妙”的错误只要坚持尝试必定有办法解决,应灵活地从各方面找原因而不是一味归咎于实验仪器或软件平台。4.同时我意识到合作的精神是非常重要的。有目的的分工可以提高课程设计的质量和效率,互帮互助的学风可以使每个成员走最少的弯路而增长最多的知识
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号