




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告( 20142015 年度第 二 学期)课 程:单片机及嵌入式系统A 题 目: 简易电子琴 院 系: 自动化系 班 级: 测控1201 学 号: 201202030105 201202030106 学生姓名: 范征宇 高鸣 指导教师: 程海燕 设计周数: 一周 成 绩: 日期:2015年 6 月 11 日一、课程设计内容与要求1针对所选择的设计题目进行硬件设计,合理选用所需元器件,绘制系统结构框图、硬件接线图,并在实验系统上完成电路的连接和调试。2根据所选题目的要求进行程序设计,绘制程序总体流程图并编写源程序上机调试。3写出课程设计报告,对整个设计过程进行归纳和综合,对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识和收获。二、课程设计正文1 正文为宋体,五号字 行间距为21 11 -12 -(主要内容包括:1)设计题目;2)设计思想阐述(总体设计方案、系统的主要功能、作用);3)系统工作原理介绍(电路设计、系统框图);4)系统程序设计(程序流程图、源程序及注释);5)系统调试结果。)三、课程设计总结1 正文为宋体,五号字 行间距为21 11 -12 -(主要内容包括:1)对整个设计工作过程进行归纳和综合; 2)对设计中所存在的问题和不足进行分析和总结; 3)提出解决问题的方法、建议和对这次设计实践的认识和收获。)四、参考文献(一定要列出全部参考文献,包括网上资料来源的网址,注意搜索资料时及时拷贝网址) 1 作者1, 作者2. 书名. 出版单位, 版本. 出版日期附录(设计流程图、程序、表格、数据等)一、课程设计内容与要求1针对所选择的设计题目进行硬件设计,合理选用所需元器件,绘制系统结构框图、硬件接线图,并在实验系统上完成电路的连接和调试。2根据所选题目的要求进行程序设计,绘制程序总体流程图并编写源程序上机调试。3写出课程设计报告,对整个设计过程进行归纳和综合,对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识和收获。二、课程设计正文设计题目主要内容是用AT89S51单片机作为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。设计思想使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。设计原理44矩阵键盘识别处理每个按键都有它的行值列值,行值列值的组合就是按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0” 和“1”, 开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查查出该键的功能。数码管扬声器截图各音节频谱码利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系式(如式4-1所示)是: Nfi2fr 4-1式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下: T65536N65536fi2fr例如:设K65536,fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。T65536N65536fi2fr6553610000002fr65536500000/fr 低音DO的T65536500000/26263627 中音DO的T65536500000/52364580 高音DO的T65536500000/104665059单片机12MHZ晶振,高中低音符与计数T0相关的计数值如表4-2所示 表4-2 音符频率表音乐发生流程图整体电路图程序流程图源程序#include #define uchar unsigned char#define uint unsigned intsbit beep=P16; /定义蜂鸣器sbit music=P13; /*music为低电平播放世上只有妈妈好(工作模式为音乐播放器),music1为低电平时播放祝你生日快乐,music、music1都为高电平时(工作模式为电子钢琴)*/sbit music1=P11;uchar timer0h,timer0l,time,key,flag; /flag=0时为电子钢琴模式,flag=1时为音乐播放器uchar code yuepu= 6,2,3,5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1,6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 ; /世上只有妈妈好乐谱uchar code yuepu1=5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2, 4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4; /祝你生日快乐乐谱uchar code TH_0=0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE, 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,/ 28个音阶高八位频率表 装进定时器高八位 ;uchar code TL_0=0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,/ 28个音阶低八位频率表 装进定时器 低八位;void delay(uchar t) uchar t1; unsigned long t2; for(t1=0;t1t;t1+) /延时半拍函数,控制音乐节奏 for(t2=0;t20;i-) for(j=110;j0;j-); void keyscan() /检测十六个发出音乐按键函数 uchar temp; P3=0xfe; temp=P3; temp=0xf0&temp; if(temp!=0x0f) delayms(10); /检测第一行 temp=P3 ; temp=temp&0xf0; if(temp!=0xf0) temp=P3; switch(temp) case 0xee: key=0;break; case 0xde: key=1;break; case 0xbe: key=2;break; case 0x7e: key=3;break; TH0=TH_0key;/将按下的键对应发出此频率声音的初值装入 TR0=1; /打开定时器 while(temp!=0xf0)/一直按下就一直发声 temp=P3; temp=temp&0xf0; TR0=0;/松手时关闭定时器0,不能发声 beep=1;/使蜂鸣器置高关闭,预防在进入中断取反时将它置低打开 P3=0xfd; temp=P3; temp=0xf0&temp; if(temp!=0x0f)/检测第二行按键 delayms(10); temp=P3 ; temp=temp&0xf0; if(temp!=0xf0) temp=P3; switch(temp) case 0xed: key=4;break; case 0xdd: key=5;break; case 0xbd: key=6;break; case 0x7d: key=7;break; TH0=TH_0key; /将按下的键对应发出此频率声音的初值装入 TL0=TL_0key; TR0=1; /打开定时器0 while(temp!=0xf0)/一直按下就发声 temp=P3; temp=temp&0xf0; TR0=0; /松手时关闭定时器,不能发声 beep=1;/使蜂鸣器置高关闭,预防在进入中断取反时将它置低打开 P3=0xfb; temp=P3; temp=0xf0&temp; if(temp!=0x0f) delayms(10); temp=P3 ; temp=temp&0xf0; if(temp!=0xf0) temp=P3; switch(temp) case 0xeb: key=8;break; case 0xdb: key=9;break; case 0xbb: key=10;break; case 0x7b: key=11;break; TH0=TH_0key; TL0=TL_0key;/将按下的键对应发出此频率声音的初值装入 TR0=1; /打开定时器 while(temp!=0xf0)/一直按下就发声 temp=P3; temp=temp&0xf0; TR0=0; /松手时关闭定时器0,不能发声 beep=1;/使蜂鸣器置高关闭,预防在进入中断取反时将它置低打开 P3=0xf7; temp=P3; temp=0xf0&temp; if(temp!=0x0f) delayms(10); temp=P3 ; temp=temp&0xf0; if(temp!=0xf0) temp=P3; switch(temp) case 0xe7: key=12;break; case 0xd7: key=13;break; case 0xb7: key=14;break; case 0x77: key=15;break; TH0=TH_0key; TL0=TL_0key;/将按下的键对应发出此频率声音的初值装入 TR0=1; while(temp!=0xf0) temp=P3; temp=temp&0xf0; TR0=0; beep=1; void main() uchar k,i; TMOD=1; EA=1; ET0=1; while(1) if(music&music1) /当为高电平时没有放音乐,扫描键盘 flag=0; keyscan(); if(!music) flag=1; i=0; while(i100) /音乐数组长度,唱完从头再来 if(music) beep=1; break; k=yuepui+7*yuepui+1-1; timer0h=TH_0k; timer0l=TL_0k; time=yuepui+2; i+=3; song(); if(!music1) flag=1; i=0; while(i75) if(music1) beep=1; break; k=yuepu1i+7*yuepu1i+1-1; timer0h=TH_0k; timer0l=TL_0k; /把对应的音乐频率放进定时器0 time=yuepu1i+2;/音乐节拍 i+=3; song(); void time0() interrupt 1 if(flag=0) beep=!beep; TH0=TH_0key; TL0=TL_0key; else beep=!beep; TH0=timer0h; TL0=timer0l; /电子琴模式时进入 /音乐播放器模式调试结果仿真效果良好,硬件调试结果可以接受,不过由于蜂鸣器的问题,效果不是很理想。具体效果看演示3、 课程设计总结1.本次单片机课程设计对简易电子琴进行了一系列的了解和查阅。 1.1首先,要理解电子琴的简单工作原理。简易电子琴通过矩阵键盘可以产生16个不同频率的音频,这些频率需要上网搜集资料获得。 1.2其次,电子琴需要注意以下几个方面。1.2.1按键的时候发声,按键松开的时候停止发声。1.2.2同时按2个或以上的键的时候不会出现错误,发出的声音是结合在一起的声音。 1.3最后,在电子琴的设计中加入了音乐盒的一个特征,按键K1.3会播放音乐,在程序 中写入了两个音乐的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届江西省赣州市会昌中学化学高三上期中统考模拟试题含解析
- 广东省东莞外国语学校2026届高一化学第一学期期中预测试题含解析
- 幼儿园立夏节气的活动策划方案范本
- 幼儿园制作中秋月饼策划方案
- 岁青春主题班会方案内容
- 新中式婚礼女方答谢宴策划方案
- 幼儿园中班新学期教学方案
- 恶意返乡面试题及答案
- 狗狗培训考试题及答案
- 家电公司出国管理规定
- 16J914-1 公用建筑卫生间
- 小学五年级下科学期末考试质量分析
- GB/T 7324-2010通用锂基润滑脂
- GB/T 20000.1-2014标准化工作指南第1部分:标准化和相关活动的通用术语
- GB/T 18341-2021地质矿产勘查测量规范
- oh卡牌理论-课件
- 皮肌炎与多肌炎的诊疗及进展课件
- 合同工期管理台账
- 食品安全自身检查记录表
- 临床常见危急值及处理培训课件
- 先心病介入治疗技术医疗质量控制指标(2021年版)可编辑版
评论
0/150
提交评论