电子琴的实验报告
电子琴的实验报告

电子琴的实验报告 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】单片机课程设计设计题目电子琴指导老师:苏参与实验者: moxiaoxiao专业:统本电信0801地点:3#楼北楼605电子琴一.设计目的:(1).培养综合运用知识的能力(2).朋友查阅资料,使用工程设计标准及编写设计文档的能力.(3).掌握单片机应用系统的设计方法.(4).提高计算机绘图能力二.设计任务:利用DP51PROC实验系统上的定时器/计数器,按键和蜂鸣器单元。
用单片机I/O口线控制蜂鸣器发出不同的音调,程序检测按键状态,7个按键中某一键按下时,蜂鸣器对应标称音阶.三.设计与调试环境KEIL uVision2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的 MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM ,汇编和 C 语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
1:按下面的步骤建立一个项目:图 1-4 选取芯片图 1-5 新建程序文件(1)点击图1-5 中的 3 保存新建的程序,也可以用菜单 File-Save 或快捷键 Ctrl+S 进行保存。
因是新文件所以保存时会弹出类似图1-3 的文件操作窗口,我们把第一个程序命名为,保存在项目所在的目录中,这时程序单词有了不同的颜色,说明 KEIL 的 C 语法检查生效了。
如图1-6 鼠标在屏幕左边的 Source Group1 文件夹图标上右击弹出菜单,在这里可以做项目中增加减少文件等操作。
我们选“Add File to Group‘SourceGroup 1’”弹出文件窗口,选择刚刚保存的文件,按 ADD 按钮,关闭文件窗,程序文件已加到项目中了。
这时在 Source Group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。
电子琴实训报告

电子琴实训报告
一、实训内容
本次实训内容为电子琴基础实践,包括基础音乐理论学习、琴键按键技巧训练、曲目弹奏等内容。
二、实训过程
1. 音乐理论学习
在实训开始前,老师首先给我们讲解了音乐基础知识,包括音符、节奏、调式等内容。
通过这些知识的学习,我们更好地理解了音乐作品。
2. 琴键按键技巧训练
接下来,老师让我们开始琴键按键技巧的训练。
我们从最基础的音阶开始,一步步地学习了琴键的按法和演奏技巧。
经过反复练习和指导,我们逐渐掌握了正确的按键技巧。
3. 曲目弹奏
在学习了基础的音乐理论和琴键技巧后,我们开始学习一些曲
目的弹奏。
老师为我们精心挑选了一些适合初学者的曲目,包括
流行歌曲、古典音乐等。
我们通过练习这些曲目,更好地掌握了
琴键技巧和演奏技巧。
三、实训成果
通过两周的实践学习,我们在电子琴方面取得了很多进步。
我
们可以更加熟练地掌握琴键按键技巧,能够演奏一些简单的曲目。
同时,我们对音乐理论有了更深入的了解,能够更好地欣赏音乐
作品。
四、实训收获
通过这次实训,我们不仅学到了电子琴方面的知识和技巧,更
重要的是培养了我们的音乐素养和音乐爱好。
我们在实训中感受
到了音乐的美妙,也更深切地体会到了学习音乐的重要性。
五、总结
此次电子琴实践是一次非常有意义的学习经历。
我们在实践中不断地探索、学习、进步,让自己更加熟练地掌握电子琴技巧、完善音乐素养。
我们相信,这次实践将为我们未来的音乐之路奠定坚实的基础。
简易电子琴实验报告

简易电子琴实验报告引言:本实验旨在设计和制作一台基于微控制器的简易电子琴,通过按下不同键盘上的按键产生不同音调,从而实现音乐的演奏。
电子琴采用的主要器件为微控制器、音频发声模块以及按键电路。
一、实验目的1.学习和理解数字音乐技术的基本原理;2.掌握微控制器的编程方法和音频发声的实现技术;3.熟悉电子琴的工作原理和设计过程。
二、实验器材1. 单片机:Arduino Uno;2.音频发声模块;3.面包板;4.按键;5.电阻、电容等元件;6.连线和连接器。
三、实验步骤1. 将Arduino Uno连接至音频发声模块,确保连接正确并稳定。
2.在面包板上连接按键电路,将按键与单片机的引脚相连。
3. 编写Arduino Uno的程序,实现按键按下时的音调发声。
4.上电,并测试按键是否能够产生正确的音调。
四、实验结果经过实验得到的结果如下:1.按下不同按键,电子琴会产生不同的音调。
2.通过改变程序中相应按键的频率值,可以调整音调的高低。
五、实验分析1.通过对单片机的编程,实现了按键按下时的音调发声,成功地实现了电子琴的基本功能。
2.实验中使用了音频发声模块,利用其内置的DAC(数字模拟转换器)实现了数字音频信号的模拟输出。
六、实验总结和心得体会通过本次实验,我对电子琴的工作原理和设计过程有了更深入的了解。
学习和掌握了单片机的编程方法和音频发声的实现技术,提高了我的实验能力和动手能力。
同时,也对数字音乐技术有了初步的认识。
在今后的学习和工作中,我将继续深入研究和应用这些知识,为电子音乐的发展做出自己的贡献。
电子琴实践报告

电子琴实践报告电子琴实践报告在日常生活和工作中,需要使用报告的情况越来越多,要注意报告在写作时具有一定的格式。
那么报告应该怎么写才合适呢?以下是小编精心整理的电子琴实践报告,欢迎大家分享。
大学第二个暑假的到来,意味着很快要步入社会了,为了使这个漫长的暑假过得充实,为了增长见识积累经验,为了以后能有更好的发展,在这个暑期我选择从事一份与自己专业相关的工作!我在焦作优美艺术培训中心担任一名初级的电子琴老师。
老师与学生一对一上课,跟我学习电子琴的都是初学者,他们之中年龄最小的有四岁,最大的五十岁,看着他们满腔热情的来学习,我是多么想把自己所学的,都慢慢的认真的教给他们。
教师,当然最主要的是讲课,如何传授知识给自己的学生,教学方法、教学态度是十分重要的。
现在回想起来,依然清晰地记得第一次上课时的场景,当真正面对学生时,竟然有些语无伦次,总是感觉有些话讲的不是那么全面与精确。
也许,正所谓万事开头难,没有经验难免在讲课时讲的不全面,为了能教好每一位学生,我尽全力弥补自己的不足,虚心向其他优秀老师学习,把握好每次上课的机会,锻炼和培养自己的授课能力,并且每次上完课都作总结,方便积累与改进,在后来的教课过程中,根据每个人的具体情况不断改进自己的讲课方法,使学生们学的更扎实。
虽然只有短短两个月的教课时间,我却从中学到了很多知识与经验,我认为作为一名教师,应该摆正心态,不要高高在上目中无人;要根据学生课上的反映,及时调整自己的讲课的状态,注意调动学生的情绪,牢牢吸引住学生,要叫学生对老师的讲课心悦诚服;要做到情绪饱满,讲课时抑扬顿挫,做到吐字清晰,声音洪亮;不要一开始就给学生立规矩,给学生来个下马威,过于严肃的老师会给学生的心理造成一定的压力,使学生产生恐惧心理,影响师生关系;面带微笑,语气温和,多与学生互动,使得课堂气氛活跃,不要死板。
通过教课我还有以下几点感悟:一、以人为本,因材施教,发挥每个人的个性特长。
认真了解每一位学生,最大限度地发掘他的个性。
电子琴实习报告

电子琴实习报告篇一:电子琴设计实习报告单片机原理与应用技术课程设计报告基于单片机的电子琴控制系统专业班级:* 姓名:*时间:~指导教师:*XX年 1月 10日基于单片机的电子琴控制系统课程设计任务书1.设计目的与要求设计出一个基于单片机的电子琴控制系统。
准确地理解有关要求,独立完成系统设计,要求所设计的电路具有以下功能:(1)实现基本的音符1-7的弹奏和数码显示。
(2)自动弹奏播放一首简单的歌曲。
(3)随机弹奏曲子时,可以实时记忆,并可复读(重复播放)。
(扩展功能,可选择设计)2.设计内容(1)画出电路原理图,正确使用逻辑关系;(2)确定元器件及元件参数;(3)进行电路模拟仿真;(4)SCH 文件生成与打印输出。
3.编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。
4.答辩在规定时间内,完成叙述并回答问题。
基于单片机的电子琴控制系统班级:* 姓名:*摘要:电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响。
用户可以自己弹奏乐曲,也可以自动伴奏。
单片机具有强大的控制功能和灵活的编程实现特性,便于设计各种以单片机为核心的控制系统。
本课程设计是用AT89S51单片机为核心控制元件,用其他外围电路配合单片机组成一个简单的电子琴控制系统,能实现音乐弹奏,自动播放音乐等功能。
本系统功能由单片机控制实现,具有运行稳定,电路简单,软件功能完善,控制系统可靠等特点。
关键词:电子琴,单片机,外围电路,系统分析,汇编程序,仿真,PCB,调试1 引言本次设计的电子琴控制系统由单片机最小系统加上按键电路,数码显示电路,声音播放电路组成,通过单片机内烧写的汇编程序来输出控制信号控制外围电路的工作。
电子琴设计不同于其他设计,需要输出1到7七个不同音阶的声音,因此信号的输出有其特殊性,可以利用单片机定时计数器产生不同频率的方波信号来形成七个不同的音阶,不同音阶的组合就能输出我们想要的音乐了。
实验一 多功能电子琴实验报告

题目: 多功能电子琴设计课程: 复杂电子线路综合设计专业: 电子信息科学与技术班级: 电子信息学号:姓名:指导老师:完成日期:目录1.引言************************************************************************12.设计要求*************************************************************1 2.1基本功能******************************************************12.2扩展功能******************************************************13.设计方案********************************** *************************13.1多功能电子琴的功能介绍*********************1 3.2 电子琴的主要硬件电路*************************13.2.1 矩阵键盘***********************************************13.2.2复位电路*************************************************23.2.3功放电路**************************************************23.2.3.1 386概述***************************************23.2.3.2 386特性*************************************** 23.3 软件系统设计**********************************************34.设计成本**************************************************************45.方案样品测试***************************************************45.1技术参数*********************************************************46.使用说明**************************************************************47.设计的最终结果***********************************************51.引言由于单片机有丰富的I/O口资源, 每个I/O口除了可以做普通的输出/输入功能外, 还具有第二功能。
电子琴报告

单片机原理及应用实验报告实验名称:电子琴设计组员:实验成绩:实验日期: 2013年6月17日实验地点: 3#北604实验报告一、实验目的以51单片机最小系统为核心,通过键盘获取按键信息,运用单片机定时器等部件实现蜂鸣器发声同时用数码管同步显示,同时该系统具有播放歌曲及选取按键输入高、中、低音的功能。
二、实验原理1、利用蜂鸣器作为发声部件。
2、两个数码管作为显示部件。
3、设置10个按键,实现高音、中音、低音的1、2、3、4、5、6、7的发音。
4、大部分功能通过软件实现。
软件的结构图如下单片机键盘电路显示电路蜂鸣器电路复位电路程序流程图如下:三、系统仿真图整体仿真图:开始初始化检测中断按键音乐播放程序按键扫描程序结束Y 发声程序是否有按键按下键值判断Y动态显示放声部分按键四、心得体会看似简单的题目,实际操作中,仍旧存在很多问题,尤其是在程序中的数码管显示的模块中,和键值的计算容易出问题。
五、源码附录//*******初始化数据*****//void init(void){speaker=0;//关蜂鸣器LED1=1;//LED2=0;EA=1;//开总中断TCON=0x01;//外部中断0设置为边沿触发EX0=1;//开外部中断0ET0=1;//开定时器0中断ET1=1;//开定时器1中断TMOD=0x11;//定时器0,1工作在定时状态,均为方式1 }#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit P1_0=P1^0;sbit P1_1=P1^1;sbit P1_2=P1^2;sbit P1_3=P1^3;sbit P1_4=P1^4;sbit P1_5=P1^5;sbit P1_6=P1^6;sbit P1_7=P1^7;sbit LED1=P2^6;sbit LED2=P2^7;sbit change=P3^2;sbit high=P3^5;sbit normal=P3^4;sbit low=P3^3;sbit P2_0=P2^0;sbit P2_1=P2^1;sbit speaker=P2^2;unsigned char i;unsigned char key,yin=0;uchar m,n;bit a=0;//a为change键的键值uchar seg[]={ 0x3F,/*0*/0x06,/*1*/0x5B,/*2*/0x4F,/*3*/0x66,/*4*/0x6D,/*5*/0x7D,/*6*/0x07,/*7*/0x7F,/*8*/0x6F,/*9*/0x37,/*N*///中音0x38,/*L*///低音0x76,/*H*///高音0x79 /*E*/};//共阴极数码管code unsigned char FH[]={ 0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,//中音0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,//低音的高8位0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,};// 音阶频率表低八位code unsigned char FL[]={ 0x8E,0xED,0x44,0x6B,0xB4,0xF4,0x2D,//中音0x21,0xDB,0x87,0xD7,0x68,0xE8,0x5B,//低音的低8位0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};code uchar star[]={1,2,3,1, 1,2,3,1, 3,4,5, 3,4,5, 5,6,5,4,3,1, 5,6,5,4,3,1, 1,12/*低音5*/,1, 1,12,1};code uchar shijian[]={4,4,4,4, 4,4,4, 4, 4,4,8, 4,4,8, 2,1,2,1,4,4, 2,1,2,1,4,4, 4,4,6, 4,4,6};void init(void);void music();void play();void seg1();void yinjie();/*********主程序*****////void main(){init();while(1){if(a==0)music();elseplay();}}//*******1ms延迟********//void delay(uint x){uint i,j;for(i=x;i>0;i--)for(j=340;j>0;j--);}//*******初始化数据*****//void init(void){speaker=0;LED1=1;LED2=0;EA=1;//开总中断TCON=0x01;//外部中断0设置为边沿触发EX0=1;//开外部中断0ET0=1;ET1=1;TMOD=0x11;//定时器0,1工作在定时状态,均为方式1}///******数码管动态显示*******/////void seg1(){P2_0=1;//关数码管1P2_1=0;//开数码管2P0=seg[n+1];//送数码管2的数据delay(15);//延时15msP2_1=1;//关数码管2P2_0=0;//开数码管1P0=seg[yin];//yin为high,normal,low的判断结果送数码管1的数据delay(15);//延时15ms}//********高低音的选择*******//////void yinjie(){if(normal==0){delay(5);if(normal==0){ yin=10;m=0;//返回10为seg[10]显示C}}if(low==0){delay(5);if(low==0){ yin=11;m=1;//返回11为seg[11]显示L}}if(high==0){delay(5);if(high==0){ yin=12;m=2;//返回12为seg[12]显示H}}if(yin==0){yin=13;}}//********外部中断0********//void inter0() interrupt 0{if(change==0){delay(5);while(change==0);a=~a;LED1=~LED1;LED2=~LED2;}}/////*******播放音乐程序*****//// void music(){TH0=FH[star[i]-1];TL0=FL[star[i]-1];while(a==0){if(i<32){TR0=1;delay(57*shijian[i]);i++;}if(i==32){i=0;}}}////*******演奏模式*****//////void play(){TR0=0;TR1=0;yinjie();P2_1=1;//关数码管2P2_0=0;//开数码管1P0=seg[yin];if(yin!=13&&a==1){if(P1_0==0){TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_0==0){ n=0;seg1();}}if(P1_1==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_1==0){ n=1;seg1();}}if(P1_2==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_2==0){ n=2;seg1();}}if(P1_3==0){TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_3==0){ n=3;seg1();}}if(P1_4==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_4==0){ n=4;seg1();}}if(P1_5==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_5==0){ n=5;seg1();}}if(P1_6==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_6==0){ n=6;seg1();}}}}//******定时器0中断******//////void timer0() interrupt 1{ TR0=0;TH0=FH[star[i]-1];TL0=FL[star[i]-1];speaker=~speaker;TR0=1;}//******定时器1中断******//////void timer1() interrupt 3{ TR1=0;TH1=FH[7*m+n];TL1=FL[7*m+n];speaker=~speaker;TR1=1;}。
最新简易电子琴实验报告

最新简易电子琴实验报告
实验目的:
本次实验旨在通过组装简易电子琴并进行基本测试,了解电子琴的工
作原理及其音乐合成过程。
通过实践操作,加深对电子音乐设备的认识,并提高动手实践能力。
实验材料:
- 简易电子琴套件
- 电源适配器
- 连接线
- 螺丝刀
- 电阻、电容等电子元件(根据套件清单)
- 焊接工具
实验步骤:
1. 组装电子琴:根据说明书,将电子琴的各个电子元件按照电路图进
行焊接和组装。
确保所有连接都牢固无误。
2. 连接电源:使用电源适配器为电子琴供电,并确保电源线连接正确,避免短路。
3. 测试音阶:开启电源后,逐个测试电子琴的音阶,确保每个按键都
能发出准确的音高。
4. 功能测试:检查电子琴的其他功能,如音量调节、音色选择等,确
保它们能正常工作。
5. 故障排查:如果在测试过程中发现问题,应根据电路图进行故障排查,并及时修复。
6. 性能评估:记录电子琴的音质、音量范围、操作便捷性等性能指标,评估其整体性能。
实验结果:
通过组装和测试,电子琴能够顺利发出预定音阶,并且各功能键均能正常工作。
音质清晰,音量调节范围满足基本需求。
在测试过程中,未发现明显的性能问题。
实验结论:
本次实验成功完成了简易电子琴的组装和功能测试。
实验结果表明,通过基础的电子元件和电路设计,可以制作出具有一定音乐表现力的电子琴。
此外,实验过程中对电子琴的工作原理有了更深入的理解,同时也锻炼了动手能力和问题解决能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计设计题目电子琴指导老师:苏参与实验者:moxiaoxiao专业:统本电信0801地点:3#楼北楼605电子琴一.设计目的:(1).培养综合运用知识的能力(2).朋友查阅资料,使用工程设计标准及编写设计文档的能力.(3).掌握单片机应用系统的设计方法.(4).提高计算机绘图能力二.设计任务:利用DP51PROC实验系统上的定时器/计数器,按键和蜂鸣器单元。
用单片机I/O 口线控制蜂鸣器发出不同的音调,程序检测按键状态,7个按键中某一键按下时,蜂鸣器对应标称音阶.三.设计与调试环境KEIL uVision2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM ,汇编和 C 语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
1:按下面的步骤建立一个项目:图1-4 选取芯片图1-5 新建程序文件(1)点击图1-5 中的 3 保存新建的程序,也可以用菜单File-Save 或快捷键Ctrl+S 进行保存。
因是新文件所以保存时会弹出类似图1-3 的文件操作窗口,我们把第一个程序命名为,保存在项目所在的目录中,这时程序单词有了不同的颜色,说明KEIL 的 C 语法检查生效了。
如图1-6 鼠标在屏幕左边的Source Group1 文件夹图标上右击弹出菜单,在这里可以做项目中增加减少文件等操作。
我们选“Add File t o Group ‘SourceGroup 1’”弹出文件窗口,选择刚刚保存的文件,按ADD 按钮,关闭文件窗,程序文件已加到项目中了。
这时在Source Group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。
图1-6 把文件加入到项目文件组中编译程序(2)进入调试模式,软件窗口样式大致如图1-8 所示。
图中1 为运行,当程序处于停止状态时才有效,2 为停止,程序处于运行状态时才有效。
3 是复位,模拟芯片的复位,程序回到最开头处执行。
按4 我们可以打开5 中的串行调试窗口,这个窗口我们可以看到从51 芯片的串行口输入输出的字符,这项目也正是在这里看运行结果。
2.输入输出引脚(1) P0 端口[ P0 是一个8 位漏极开路型双向I/O 端口,端口置1(对端口写1)时作高阻抗输入端。
作为输出口时能驱动8 个TTL。
对内部Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。
在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低8 位)/数据总线,访问期间内部的上拉电阻起作用。
(2) P1 端口[-] P1 是一个带有内部上拉电阻的8 位双向I/0 端口。
输出时可驱动4 个TTL。
端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash 程序存储器编程时,接收低8 位地址信息。
(3) P2 端口[-] P2 是一个带有内部上拉电阻的8 位双向I/0 端口。
输出时可驱动4 个TTL。
端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash 程序存储器编程时,接收高8 位地址和控制信息。
在访问外部程序和16 位外部数据存储器时,P2 口送出高8 位地址。
而在访问8 位地址的外部数据存储器时其引脚上的内容在此期间不会改变。
(4) P3 端口[-] P2 是一个带有内部上拉电阻的8 位双向I/0 端口。
输出时可驱动4 个TTL。
端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash 程序存储器编程时,接控制信息。
除此之外P3 端口还用于一些专门功能,具体请看表2-2.。
*P1-3 端口在做输入使用时,因内部有上接电阻,被外部拉低的引脚会输出一定的电流。
生成HEX 文件和最小化系统3:如何用KEIL uVision2 来编译生成用于烧写芯片的HEX文件。
HEX 文件格式是Intel 公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16 进制数字表示, 常用来保存单片机或其他处理器的目标程序代码。
它保存物理程序存储区中的目标代码映象。
一般的编程器都支持这种格式。
打开第一课做的项目,打开它的所在目录,找到的文件就可以打开先前的项目了。
然后右击图3-1中的 1 项目文件夹,弹出项目功能菜单,选Options for Target’Target1’,弹出项目选项设置窗口,同样先选中项目文件夹图标,这时在Project 菜单中也有一样的菜单可选。
打开项目选项窗口,转到Output 选项页图3-2所示,图中 1 是选择编译输出的路径,2 是设置编译输出生成的文件名,3 则是决定是否要创建HEX文件,选中它就可以输出HEX 文件到指定的路径中。
将它重新编译一次,很快在编译信息窗口中就显示HEX 文件创建到指定的路径中了,如图3-3。
这样就可用编程器所附带的软件去读取并烧到芯片了。
(技巧:一、在图3-1中的 1 里的项目文件树形目录中,先选中对象,再单击它就可对它进行重命名操作,双击文件图标便可打开文件。
二、在Project 下拉菜单的最下方有最近编辑过的项目路径保存,可以快速打开最近在编辑的项目。
)图3-1项目功能菜单图3-2 项目选项窗口四.工作原理:要求设计的电子琴共有七个按键对应着七个音阶,也就是按下不同的按键时,蜂鸣器会发出不同平率的声音。
而这些声音的频谱范围约在几十到几千赫兹,若能利用程序来控制某个口线不断的输出“高”“低”电平,则在该口线上就能产生一定频率的方波,将该方波接上喇叭就能发出一定频率的声音,若再利用程序控制“高”“低”电平的持续时间,就能改变输出波形的频率,从而改变音调。
我们用MC51单片机实现这一功能。
乐曲中,每一音符对应着确定的频率,表1给出C调时各音符频率。
如果单片机某个口线输出“高”“低”电平的频率和某个音符的频率一样,那么将此口线接上喇叭就可以发出此音符的声音。
本系统就是根据此原理设计,对于单片机来说要产生一定频率的方波大致是先将某口线输出高电平然后延时一段时间再输出低电平,如此循环的输出就会产生一定频率的方波,通过改变延时的时间就可以改变输出方波的频率本系统的具体电路如右图所示。
图中P1.1-P1.7分别接7个按键对应着乐曲中的1、2、3、4、5、6、7七个音符。
P3.6口通过功率放大与喇叭相连。
当P1.1~中有一个按键按下时单片机便执行相应的子程序对定时器赋一个计数初值同时使P3.6口输出高电平。
当定时器定时结束时将P3.6口的值取反并重新赋计数初值继续计数,再次计完时再将P3.6口的值取反再赋初值计数,如此循环便在P3.6口产生一定频率的方波,LM386将此方波经过功率放大后通过喇叭输出便产生对应音符的声音。
按不同的按键单片机便执行不同的子程序给定时器赋不同的初值得到不同频率的方波从而输出不同的声音,因此按一个按键输出一种音符。
在单片机的特殊功能寄存器中有6个寄存器(TH1、TH0、TL1、TL0、TMOD、TCON)是用来控制单片机的定时器的,通过编程对这些特殊功能寄存器的读写就可以控制单片机的两个定时器T0、T1。
当单片机复位时这6个寄存器默认值都是00H。
五.设计思想(1)系统的总框图(2)系统电路图(3)软件设计思路由于每个音阶对应着不同的频率,当然对单片机来说产生不同的频率非常方便,我们可以利用单片机的定时、计数器T0来产生这样的方波频率信号,因此我们只要把1-7的七个音阶对应的频率关系弄正确即可。
本次设计中单片机晶振为12MHz,那么定时器的计数周期为1MHz,假如选择工作方式为1,那T值便为T=216-5*105/相应的频率,那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数T0相关的计数值如下表所示:采用查表程序查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据。
工作方式1工作方式1是16位的定时/计数方式,将M1M0设为01。
对于定时器的工作模式可以根据定时器的寄存器TMOD来设置:①M1M0:定时/计数器共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。
②C/T:定时/计数器即可作定时用也可用计数用,如果C/T为O就是用作定时器(开关往上打),如果C/T为1就是用作计数器(开关往下打)。
一个定时/计数器同一时刻要么作定时用,要么作计数用,不能同时用的。
③GATE:当我们选择了定时或计数工作方式后,定时/计数脉冲却不一定能到达计数器端,中间还有一个开关,显然这个开关不合上,计数脉冲就没法过去,那么开关什么时候过去呢? 有两种情况GATE=0,分析一下逻辑,GATE非后是1,进入或门,或门总是输出1,和或门的另一个输入端INT1无关,在这种情况下,开关的打开、合上只取决于TR1,只要TR1是1,开关就合上,计数脉冲得以畅通无阻,而如果TR1等于0则开关打开,计数脉冲无法通过,因此定时/计数是否工作,只取决于TR1。
GATE=1,在此种情况下,计数脉冲通路上的开关不仅要由TR1来控制,而且还要受到INT1引脚的控制,只有TRl为1,且INT1引脚也是高电平,开关才合上,计数脉冲才得以通过。
这个特性可以用来测量一个信号的高电平的宽度。
Ⅰ程序流程图第一步是对定时器T0进行初始化,设定它的工作状态(对于本系统将T0设定为工作方式O);然后判断是否有键按下,如果没有按键按下,继续判断,如果有按键按下,则判断是哪个键按下;再根据按键的功能将计数初值装入定时器T0中中并启动T0,当T0定时完毕后,重新装入计数初值继续定时并将P3.6取反,再次定时完毕后再一次的装入计数初值继续定时并将P3.6取反,一直循环此操作直到按键释放为止,按键释放后停止T0工作并再次判断是否又有按键按下,并继续执行以前的过程。
Ⅱ程序BUZZ EQU ; 定义端口ORG 1000HLJMP MAINORG 000BHLJMP INT_T0ORG 1100HMAIN:MOV SP,#60H ; 初始化堆栈指针MOV P1,#0FFH ; 设置P1 口为输入模式MOV TMOD,#01H ; 设置定时器0 为工作模式1SETB ET0 ; 开定时器0 中断SETB EA ; 开总中断CLR TR0 ; 关闭定时器0 START:MOV R0,P1CJNE R0,#0FFH,KEY1; 键盘扫描CLR TR0SJMP STARTKEY1:CJNE R0,#0FEH,KEY2 ; K1 键按下MOV 30H,#0FBH ; 设置音阶1 MOV 31H,#0E9HLJMP SET_TIMERKEY2:CJNE R0,#0FDH,KEY3; K2 键按下MOV 30H,#0FCH ; 设置音阶2 MOV 31H,#5CHLJMP SET_TIMERKEY3:CJNE R0,#0FBH,KEY4; K3 键按下MOV 30H,#0FCH ; 设置音阶3 MOV 31H,#0C1HLJMP SET_TIMERKEY4:CJNE R0,#0F7H,KEY5 ; K4 键按下MOV 30H,#0FCH ; 设置音阶4 MOV 31H,#0EFHLJMP SET_TIMERKEY5:CJNE R0,#0EFH,KEY6 ; K5 键按下MOV 30H,#0FDH ; 设置音阶5 MOV 31H,#045HLJMP SET_TIMERKEY6:CJNE R0,#0DFH,KEY7; K6 键按下MOV 30H,#0FDH ; 设置音阶6 MOV 31H,#92HLJMP SET_TIMERKEY7:CJNE R0,#0BFH,NOKEY; K7 键按下MOV 30H,#0FDH ; 设置音阶7 MOV 31H,#0D6HSET_TIMER:SETB TR0 ; 发声SJMP STARTNOKEY:CLR TR0 ; 无键按下SJMP STARTINT_T0: ; T0 中断服务程序MOV TH0,30H ; 定时器赋初值MOV TL0,31HCPL BUZZ ; 输出方波RETI;END六. 总结通过两周的紧张工作,终于完成了简易电子琴的设计,这个课程设计是我受益匪浅,在老师的指导下,我们逐渐了解了硬件设计的整个流程,并且加深了我对单片机这门课程内容的理解,通过这个课程设计,不仅使我了解了组成原理的脊髓,而且使我对单片机从陌生到处不理解,扩充了我的知识面和理解应用能力。