单片机课程设计---简易电子琴设计
简易电子琴设计(单片机课程设计)

简易电子琴设计用单片机控制扬声器,弹奏出一段音乐。
一、预备知识:乐曲由不同音符组成,各音符都有对应的频率,频率不同的方波加在扬声器上,就产生一个持续的音符。
利用不同的音符、音高、音长组合,就可产生想要的音乐。
对于单片机来说,利用其定时器产生不同频率的方波非常方便,以11.0592、22.1184MHz 晶振(实验箱)为例,列出高中低音符与单片机定时器初值如下表所示注意:1、一个音段常见由7个标准音组成(1do、2ri、3mi、4fa、5sol、61a、7si),但实际乐曲中还有一些介于2个标准音之间的音,即半度音,有 1.5、2.5、4.5、5.5、6.5共5个,所以完整的1个音段有12个音。
2、选择简谱时,尽量选用只含7个标准音的乐曲,而且要选C大调的(简谱左上角标着1=C X/4 ),否则各音符的频率要做相应的变化。
10二、设计目的了解扬声器的发声原理,进一步熟悉定时器、键盘扫描、LED 显示电路的工作原理及编程方法。
三、设计内容1 、设计键盘、LED 显示、扬声器驱动电路原理图;2、设计程序流程图;3 、编程调试,利用按键作为琴键,按下不同的键发出相应的音调,同时在LED 最右位显示对应键号值。
四、参考接线扬声器的SPK+ 端接VCC,SPK 负端连接到某一I/O 口。
五、设计步骤程序:KEYBUF EQU 30HSTH0 EQU 31HSTL0 EQU 32HTEMP EQU 33HORG 0000LJMP MAINORG 000BHLJMP INT_T0MAIN:MOV TMOD,#01HSETB ET0SETB EAWAIT:MOV P3,#0FFHCLR P3.4MOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY1LCALL DELAYMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY1MOV A,P3ANL A,#0FHCJNE A,#0EH,NK1MOV KEYBUF,#0LJMP DK1NK1:CJNE A,#0DH,NK2MOV KEYBUF,#1LJMP DK1NK2:CJNE A,#0BH,NK3MOV KEYBUF,#2LJMP DK1NK3:CJNE A,#07H,NK4MOV KEYBUF,#3LJMP DK1NK4:NOPDK1:MOV A,KEYBUFMOV B,#2MUL ABMOV TEMP ,AMOV DPTR,#TABMOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK1A:MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK1ACLR TR0NOKEY1:MOV P3,#0FFHCLR P3.5MOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY2LCALL DELAYMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY2MOV A,P3ANL A,#0FHCJNE A,#0EH,NK5MOV KEYBUF,#4LJMP DK2NK5:CJNE A,#0DH,NK6MOV KEYBUF,#5LJMP DK2NK6:CJNE A,#0BH,NK7MOV KEYBUF,#6LJMP DK2NK7:CJNE A,#07H,NK8MOV KEYBUF,#7LJMP DK2NK8:NOPDK2:MOV A,KEYBUFMOV B,#2MUL ABMOV TEMP ,AMOV DPTR,#TABMOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK2A:MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK1ACLR TR0 NOKEY2:MOV P3,#0FFHCLR P3.6MOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY3LCALL DELAYMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY3MOV A,P3ANL A,#0FHCJNE A,#0EH,NK9MOV KEYBUF,#8LJMP DK1NK9:CJNE A,#0DH,NK10MOV KEYBUF,#9LJMP DK1NK10:CJNE A,#0BH,NK11MOV KEYBUF,#10LJMP DK1NK11:CJNE A,#07H,NK12MOV KEYBUF,#11LJMP DK3NK12:NOPDK3:MOV A,KEYBUFMOV B,#2MUL ABMOV TEMP ,AMOV DPTR,#TABMOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK3A:MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK3ACLR TR0NOKEY3:MOV P3,#0FFHCLR P3.7MOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY4LCALL DELAYMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY4MOV A,P3ANL A,#0FHNK13:NK14: NK15:NK16: DK4: CJNE A,#0EH,NK13 MOV KEYBUF,#12 LJMP DK4CJNE A,#0DH,NK14 MOV KEYBUF,#13 LJMP DK4CJNE A,#0BH,NK15 MOV KEYBUF,#14 LJMP DK4CJNE A,#07H,NK16 MOV KEYBUF,#15 LJMP DK4NOPMOV A,KEYBUF MOV B,#2MUL ABMOV TEMP ,AMOV DPTR,#TABMOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK4A:MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK4ACLR TR0NOKEY4:MOV DPTR,#LED_TABMOV A,KEYBUFMOVC A,@A+DPTRMOV P1,ALJMP MAINDELAY:MOV R6,#10 D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETINT_T0:MOV TH0,STH0MOV TL0,STL0CPL P2.0RETITAB:DW 62018,62401,62743,62895DW 63185,63441,63670,63774DW 63966,64138,64216,64360DW 64489,64603,64655,64752 LED_TAB:DB ;低1,2,3,4;低5,6,7 ,中1;中2,3,4,5;中6,7 ,高1,2至9 共阴3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;0DB 77H, 7CH, 39H, 5EH, 79H, 71H;A 至F END原理图:EXFJldlVTAll■匚AIE:pc.ii*r 1 ■HM口1 店MinPE.MiAE.-iF匚ar屋理ix傅?1 ALVEffSviC rzarti*i"Pl.1吒灯血fl J叭孑n1)r i J raji'TITIf irf ri.hTC和止■Fl?mfio。
单片机应用课程设计--简易电子琴设计

delay(5);
if (key1 == 0)
{
key_in_flag = 0;
key_value = 4;
}
}
else
{
key_in_flag = 1;
}
key8 = 1;
key7 = 0;
if (key4 == 0)
{
delay(5);
if (key4 == 0)
{
key_in_flag = 0;
参考文献
[1] 赵鑫,蒋亮,齐兆群.数字电路设计[M].北京机械工业出版社,2005年6月第一版
[2] 苏家健,曹柏荣,汪志锋.单片机原理及应用技术[M].高等教育出版社
[3] 李朝青.单片机原理及接口技术[M].北京:北京航天航空大学出版色,2001
[4] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2004
{
key_in_flag = 0;
key_value = 2;
}
}
else
{
key_in_flag = 1;
}
if (key2 == 0)
{
delay(5);
if (key2 == 0)
{
key_in_flag = 0;
key_value = 3;
}
}
else
{
key_in_flag = 1;
}
if (key1 == 0)
方案二: 采用AT89C51单片机进行控制,由于AT89C51不具备ISP功能, 因此Atmel公司已经停产在市面上已经不常见,况且其ROM只有4K在系统将来升级方面没有潜力。
方案三:采用AT89S52单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。
单片机简易电子琴课程设计

单片机简易电子琴课程设计简易电子琴实验一、课程设计目的与要求1、掌握蜂鸣器的使用方法;2、掌握蜂鸣器的不同发音的方法;3、通过本次课程设计加深对单片机课程的认识和掌握,对单片机的应用做进一步了解。
二、课程设计设备STAR 序列试验仪一套、PC 机一台三、课程设计内容1、简易电子琴原理(1)蜂鸣器输入不同频率的方波,会发出不同的声音;(2)通过按键,由单片机控制产生不同频率的方波,从而发出不同的声音。
2、课程设计过程(1)通过单片机,是G6区的1-7号键由低到高发出1-7的音阶。
四、课程设计原理图1234567P1.0P1.1P1.2P1.3P1.4P1.5P1.6VccBuzzerLS12KR15.1KR28550Q60.01uFC40Ctrl100R11P1.7五、课程设计框图主程序:节拍1子程序(手动按键时用) 节拍2子程序(手动按键时用)0FFH->P1 开始 播放一段音乐 P1.0=0调用节拍1子程序 N Y 调用节拍2子程序 Y调用节拍3子程序Y 调用节拍4子程序 调用节拍5子程序 调用节拍6子程序 调用节拍7子程序P1.1=0P1.2=0N P1.3=0Y Y Y P1.4=0P1.5=0N P1.6=0Y N N N 0->P1.7 延时180us 1->P1.7 延时190us开始 返回0->P1.7 延时200us 1->P1.7 延时200us开始 返回节拍3子程序(手动按键时用)节拍4子程序(手动按键时用)开始0->P1.7延时180us1->P1.7延时170us返回开始0->P1.7延时160us1->P1.7延时160us返回节拍5子程序(手动按键时用)节拍6子程序(手动按键时用)开始0->P1.7延时150us1->P1.7延时150us返回开始0->P1.7延时140us1->P1.7延时140us返回节拍7子程序(手动按键时用)节拍1子程序(自动放音时用,时间约0.2s )节拍2子程序(自动放音时用,时间约0.2s ) 节拍3子程序(自动放音时用,时间约0.2s )0->P1.7 延时220us 计数器-1 1->P1.7 延时210us 1100->计数器 N计数器-1=0返回Y 0->P1.7 延时130us 1->P1.7 延时130us开始 返回开始节拍4子程序(自动放音时用,时间约0.2s ) 节拍5子程序(自动放音时用,时间约0.2s )节拍6子程序(自动放音时用,时间约0.2s ) 节拍7子程序(自动放音时用,时间约0.2s )NY 0->P1.7 延时170us 计数器-1 1->P1.7 延时170us开始 1300->计数器 计数器-1=0返回Y N0->P1.7 延时180us 计数器-1 1->P1.7 延时180us 开始 1250->计数器 计数器-1=0返回0->P1.7 延时185us 计数器-1 1->P1.7 延时180us开始 1200->计数器 Y N计数器-1=0返回NY 0->P1.7 延时190us 计数器-1 1->P1.7 延时190us 开始 1150->计数器 计数器-1=0返回六、课程设计步骤1、主机连线说明D1区:Ctrl — A3区:P1.7 G6区:JP74 —A3区:JP51(P1口)2、运行程序,按G6区的1-7号键,输出7种音阶。
单片机课程设计电子琴

单片机课程设计 电子琴一、课程目标知识目标:1. 让学生理解单片机的基本原理,掌握单片机在电子琴设计中的应用。
2. 使学生掌握电子琴的基本结构,能运用单片机编程实现电子琴的基本功能。
3. 帮助学生了解电子琴音调产生原理,掌握音调与频率的关系。
技能目标:1. 培养学生运用单片机进行电子琴设计与编程的能力,能独立完成一个简单的电子琴项目。
2. 培养学生动手实践能力,提高焊接、调试和故障排除等技能。
3. 培养学生团队协作和沟通能力,能在项目过程中进行有效分工与合作。
情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,提高学习积极性。
2. 培养学生勇于尝试、不断探索的精神,增强克服困难的信心。
3. 引导学生关注科技发展,认识到所学知识在现实生活中的应用,培养创新意识。
分析课程性质、学生特点和教学要求,本课程目标具体、可衡量,有助于学生和教师在教学过程中明确预期成果。
将目标分解为具体学习成果,为后续教学设计和评估提供依据。
在教学过程中,注重理论与实践相结合,充分调动学生的积极性,提高学生的实践能力。
二、教学内容1. 单片机基础知识:介绍单片机的组成、工作原理,重点讲解CPU、内存、I/O口等部分的功能与应用。
教材章节:第一章单片机基础2. 电子琴结构与原理:讲解电子琴的基本结构,音调产生原理,键盘与发音电路的连接方式。
教材章节:第三章电子乐器原理3. 单片机编程:以C语言为基础,讲解单片机编程方法,重点掌握延时、中断、I/O口控制等编程技巧。
教材章节:第二章单片机编程基础、第五章中断与定时器4. 电子琴设计与制作:结合单片机知识,指导学生进行电子琴设计,包括硬件电路设计、程序编写、调试与优化。
教材章节:第四章单片机应用实例、第六章电子琴设计与制作5. 实践操作:安排学生进行电子琴硬件焊接、程序烧写、调试与测试,培养动手实践能力。
教材章节:第七章实践操作教学内容安排与进度:第一周:单片机基础知识学习,完成CPU、内存、I/O口等功能的学习。
简易电子琴单片机课程设计

简易电子琴单片机课程设计一、课程目标知识目标:1. 让学生掌握简易电子琴单片机的基本原理和组成结构,理解其工作流程。
2. 使学生了解并掌握电子琴音阶与音符的关系,能够识别常见音符及其对应的单片机程序编写方法。
3. 帮助学生掌握基础编程知识,能够使用相关软件编写简易电子琴程序。
技能目标:1. 培养学生运用单片机进行音乐创作的能力,能够编写并演奏简单曲目。
2. 提高学生动手实践能力,能够独立完成简易电子琴单片机的组装和调试。
3. 培养学生团队协作和问题解决能力,能够在团队中共同完成课程项目。
情感态度价值观目标:1. 培养学生对电子琴音乐创作的兴趣和热情,激发学生探索音乐世界的欲望。
2. 培养学生勇于尝试、不断探索的精神,增强面对困难的勇气和信心。
3. 培养学生环保意识和创新精神,关注科技发展,认识到科技进步对音乐产业的影响。
本课程针对高年级学生,结合学科特点,以实用性为导向,将理论知识与实践操作相结合。
课程目标旨在让学生在学习过程中,既能掌握电子琴单片机的基本知识,又能提高动手实践和团队协作能力,同时培养对音乐的热爱和科技创新意识。
通过分解课程目标为具体学习成果,为后续教学设计和评估提供明确方向。
二、教学内容1. 简易电子琴单片机原理及结构- 了解单片机的基本概念及功能- 学习简易电子琴单片机的组成结构及工作原理- 教材章节:第三章 单片机原理及其应用2. 音阶与音符关系- 掌握音阶与音符的基本概念及对应关系- 学习简易电子琴音阶与单片机程序编写方法- 教材章节:第四章 音乐基础与编程3. 编程知识与软件应用- 学习基础编程知识,如C语言基本语法、数据类型等- 掌握相关编程软件的使用,如Keil、Proteus等- 教材章节:第五章 单片机编程与仿真4. 动手实践与项目制作- 完成简易电子琴单片机的组装、调试与演奏- 课程项目:团队协作完成一首简单曲目的电子琴演奏- 教材章节:第六章 单片机项目实践5. 回顾与拓展- 对所学知识进行总结回顾,巩固学习成果- 探讨简易电子琴单片机的拓展应用,如与其他智能硬件的结合- 教材章节:第七章 单片机拓展应用教学内容根据课程目标制定,保证科学性和系统性。
单片机课程设计--简易电子琴设计

单片机课程设计--简易电子琴设计郑州轻工业学院计算机与通信工程学院单片机与接口技术课程设计总结报告设计题目:简易电子琴设计学生姓名:毛二松系别:计算机与通信工程学院专业:电子信息科学与技术班级:09-01学号:540907020127指导教师:韩雪琴杨永双2011年12月26日简易电子琴设计电子琴概述这次设计的电子琴与市场上的电子琴相比虽然音色逊了一点,但是其物美价廉,功能强大,携带方便,深受大家喜欢。
此次课程设计的电子琴是有4*4矩阵键盘来实现发音,其中4个键是功能键,剩下的12键实现真正的发音。
此外在电子琴的功能上又加上了音乐播放功能、选择歌曲、暂停以及录音回放功能,使电子琴变得更强大。
让电子琴不再是简单的弹出音调简单的电子琴,而是一个功能齐全的电子琴。
本设计功能1.通过矩阵键盘能够弹出美妙的音乐。
2.通过功能切换,能够切换到音乐播放器功能3.能够把弹出的音乐录制下来,并且还能够回放出来。
本设计的仿真图引脚描述:矩阵键盘接的是P3口,显示部分的段控制口接的是P0口,位控制口接的是P2.0、P2.1、P2.2、P2.4、P2.5,蜂鸣器接的P2.3口。
各种功能键如图所示。
设计的流程图开始初始化功能选择进入电通过键盘弹音乐是否录音是否回放返回进入音乐播放是否选是否暂停返回我负责的模块主程序:也就是本程序的整体构造、功能构造。
主程序程序:void main(){init();//初始化while(1){keyscan();//调用键盘扫描display();//显示if(key_function==1)//如果选择音乐播放{switch(count){case 1:play(music1,music1_L);break;//播放第一首case 2:play(music2,music2_L);break;//播放第二首case 3:play(music3,music3_L);break;//播放第三首}}else //否则选择为电子琴{if(key_record==2)//判断是否回放replay(record,record_L);}}}录音功能。
单片机电子琴课程设计

单片机电子琴课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握电子琴的基本构造和演奏方法。
2. 帮助学生掌握单片机编程的基本技巧,学会使用相关软件进行程序设计。
3. 使学生了解音乐理论中音阶、音符的基本知识,并将其应用于电子琴演奏。
技能目标:1. 培养学生动手操作单片机的能力,学会连接电子琴硬件并进行调试。
2. 培养学生编写简单电子琴程序的能力,实现不同音符的播放和乐曲演奏。
3. 提高学生团队协作和沟通能力,能够共同分析和解决在电子琴制作过程中遇到的问题。
情感态度价值观目标:1. 培养学生对单片机及电子琴制作的兴趣,激发学生探究精神,养成自主学习的好习惯。
2. 培养学生具有创新意识,敢于尝试,勇于实践,面对失败保持积极的心态。
3. 增强学生的环保意识,培养节约资源、爱护设备的良好习惯。
课程性质:本课程为实践性较强的课程,结合理论知识,培养学生的动手操作能力和实际应用能力。
学生特点:学生具备一定的电子知识和编程基础,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性,提高学生的实践能力和创新能力。
在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 理论知识:- 单片机原理:介绍单片机的基本结构、工作原理和功能。
- 音乐理论:讲解音阶、音符、音长等基本音乐知识。
- 编程基础:回顾C语言基本语法,学习单片机编程方法和技巧。
2. 实践操作:- 电子琴硬件连接:学习电子琴硬件的组成,进行电路连接和调试。
- 程序编写:编写程序实现电子琴基本功能,如按键识别、音符播放等。
- 歌曲演奏:设计程序,实现简单乐曲的演奏。
3. 教学大纲:- 第一周:单片机原理学习,音乐理论知识回顾。
- 第二周:编程基础复习,电子琴硬件连接与调试。
- 第三周:编写电子琴程序,实现基本功能。
课程设计报告---基于单片机的电子琴设计

课程设计报告---基于单片机的电子琴设计河南理工大学《单片机应用与仿真训练》设计报告基于单片机的电子琴设计姓名:郭鹏超王芳学号:310808010609 310808010602专业班级:电气08-6班指导老师:王莉所在学院:电气工程与自动化学院2012年5月19 日摘要当代,爱好音乐的人越来越多,有不少人自己练习弹奏乐器作为业余爱好和一种放松的手段,鉴于一些乐器学习难度大需要太多的学习时间,且其价格又太过于高昂,使得一部分有这种想法的人不得不放弃这种想法。
而一些简易的电子乐器价格相对便宜,学习上手快,一般人容易负担的起,能够满足一般爱好者的需求,故简易电子琴的研制具有一定的社会意义。
本次课程设计主要研究基于AT89S52单片机的简易电子琴设计。
整个系统主要包括以下几个部分组成:(1)单片机的最小系统:最小应用系统设计是单片机应用系统的设计基础。
它包括单片机的选择、时钟系统设计、复位电路设计、简单的I/O口扩展、掉电保护等。
(2)矩阵键盘:当按键数目较多时,为了节省I/O口线,通常采用矩阵式键盘接口电路。
本设计采用5*8矩阵键盘(共40个按键,其中36个按键用来显示高中低音的1、1#、2、2#、3、4、4#、5、5#、6、6#、7的36个音调,其它4个按键可以随意的播放已存歌曲)。
(3)产生外部中断的系统:它由两个四输入与非门74LS20和一个两输入或非门74LS02组成,把矩阵的五行与与非门74LS20和或非门74LS02相接后接在了单片机的P3.2口,下降沿触发产生中断INT0。
(4)发音电路:此电子琴发音电路是由或非门来驱动扬声器发音的,控制单片机的P2.7口产生不同频率使扬声器发出不同的音调。
本文主要对单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴的硬件组成。
并且从原理图,主要芯片,各模块的原理和各个模块的程序调试来阐述。
利用单片机产生不同频率来获得我们要求的音阶,最终可以随意弹奏想要表达的音乐,还设计了一按键用来自动播放一首曲子。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计课程设计名称:专业班级:学生姓名:学号:指导教师:课程设计时间:一、需求分析1.1课题背景随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。
我们都会抽空欣赏世界名曲,作为对精神的洗礼。
本论文设计一个基于单片机的简易电子琴。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
电子科技也在不断的前进,电子技术正在以不同的方式改变着我们的生活,电子琴设计也是希望给人们带来一些生活的乐趣。
电子琴可以应用在很多方面,比如一些简易的玩具上或手机上。
单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化。
本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。
利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。
并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。
1.2 课题设计的任务与主要内容本文的主要内容是用AT89C51单片机为核心控制元件,设计一个简单的电子琴。
以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。
定时器按设置的定时参数产生中断,由于定时参数不同,就会发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调。
先根据要求设计硬件电路和编写相应的程序,然后进行仿真调试,最后细心焊接硬件电路图,将程序烤入芯片中,最终达到设计目的。
本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
1.3简易电子琴功能概述单片机因体积小、功能强、价格低廉而得到广泛应用。
AT89C51单片机设计微型电子琴的方法,仅需AT89C51最小系统,扩展一组矩阵键盘,再接一组发光二极管用来指示电子琴的工作状态。
本系统分为两个部分,一个是音乐,另一个就是电子琴。
1.单片机并行连接4*4矩阵键盘和一位数码管2.利用单片机内部定时器T0的定时功能产生音符所对应的音调3.经功率放大器后输出至音箱4.在弹奏音乐的同时将音符显示与数码管5.具备存储在播放所弹奏的音乐的功能6.具备示范音乐播放功能二、 概要设计2.1硬件系统的组成嵌入式电路,按键电路,LED 显示电路和三个功能键组成,通过功能键可以选择播放音乐。
(按键一:是否录音;按键二:是否播放;按键三:复位键)该系统通过电子琴按键随意键入所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。
通过这样可以不断的弹奏音乐。
图1 硬件系统总体框图2.2软件设计流程图P1图2 软件设计流程图2.3工作原理打开电子琴电源开关后,电子琴默认为弹奏状态(录音LED灯亮表示按键弹奏录音,不亮则普通按键弹奏功能),弹奏/播放显示灯点亮。
此时可以进行弹奏音乐,按下矩阵键盘中的任意键,扬声器发相应的音调,数码管显示对应的数字。
按下播放按钮,电子琴处于自动播放状态,弹奏/播放显示灯不亮,就会播放刚才弹走过的音乐,并循环进行播放,如果按下录音按键,将录音灯灭掉,此时播放的音乐改变,播放电子琴内置的音乐,并显示相应音符,循环播放。
此时,如果按下复位键,数码管显示0,清楚录音,此时系统又处于弹奏状态。
本设计存储了二首音乐,可循环播放.(小星星和欢乐颂)三、运行环境3.1硬件环境3.1.1总体设计软件模型连线:P3^7————蜂鸣器P2^0————连接LED0(模式指示灯:弹奏--亮,播放--不亮)P2^1————连接LED1和独立开关(录音指示灯:弹奏保存--亮,弹奏不保存--不亮)P3^2————独立按键,外部中断控制复位键P3^3————独立按键,外部中断播放/弹奏切换按键P1————连接数码管显示P0————连接矩阵键盘此设计模块实现的功能有:1.把不同的频率也就是节拍的声音输入到放大器,播放弹奏的声音;2.在弹奏音乐的同时将音符显示于数码管;3.弹奏音乐的时候要将音符输入到数码管;4.播放内置储存的音乐时要显示此时播放的音乐音符;5.具备存储在播放所弹奏的音乐的功能;6.复位功能,模式复位、录音清楚,数码管显示为0。
3.1.2 AT89C51单片机相关介绍1)AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。
AT89C51它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图3.2所示。
图3 AT89C51引脚分布图主要引脚功能:1、RST(9):复位输入。
当振荡器复位时,要保持RST引脚2个机器周期的高电平时间;2、XTAL1(19):反向振荡器放大器的输入及内部时钟工作电路的输入;3、XTAL2(18):来自反向振荡器的输出;4、P1口(1-8):P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL门电流;5、__EA/PP V:当__EA保持低电平时,单片机只访问外部程序存储器。
__EA为高电平时,单片机只访问内部程序存储器。
2)芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM、定时器、计数器、串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.1.3 矩阵式键盘的结构与工作原理矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,本系统中的矩阵键盘中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
当按键没有按下时,所有的输出端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
图4 矩阵式键盘3.1.4按键显示模块1)数码管的分类本设计用的是七段码。
可显示0-F。
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
1.共阳数码管:是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。
2.共阴数码管:在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。
当某一字段的阳极为低电平时,相应字段就不亮。
2)数码管的驱动方式数码管的驱动方式分为:静态式和动态式两类。
1.静态显示驱动:静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
优点是:编程简单,显示亮度高,缺点是占用I/O端口多。
2.动态显示驱动:动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
显示模块如图所示。
图5 显示模块3.1.5功能显示灯模块当按下弹奏/播放功能键时,LED0灯亮(P2^0)表示弹奏模式,再次按下LED0熄灭表示播放模式;当独立开关控制LED1亮时表示弹奏保存录音或者播放录音歌曲,不亮时则表示弹奏不会保存录音或者播放内置音乐。
图6 功能显示灯模块3.1.6音乐播放装置本次设计很简陋,没有MP3那样优美的音乐,但此次设计分成“音调”和“节拍”两部分,听起来还是不错的。
音调:表示一个音符唱多高的频率节拍:表示一个音符唱多长的时间。
由于本课程设计是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。
因此,我们只需弄清楚音乐中的音符和对应的频率,利用单片机的定时/计数器来产生方波频率信号即可。
要产生相应的音频脉冲,只需要计算出某音频的周期,再除以2。
利用计数器计时半周期,计满时使P2.0反向,然后重复计时再反向。
本例中,单片机工作在12MHz时钟,使用定时器/计数器T0,工作模式为1,改变计数初值TH0、TL0就可产生不同频率的脉冲信号。
例如低3MI音,频率为330Hz,其周期T=1/f=1/330=3030us,计数值N=3030/2=1515,所以每计数1515次P2.0反向。
计数初值T=65536-N=64021。
C 调的各音符频率与计数值T的对照表如下图所示。
表1 C调各音符频率与计数值T对照表3.1.7振荡电路在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部震荡方式。
由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
晶振通常选用6MHz、12MHz或者24MHz。
本设计中采用的是12MHz。
电容器C1、C2起稳定振荡频率、快速起振的作用,电容值一般5~30pF。
内部振荡方式所得的时钟信号比较稳定,电路中使用较多。
振荡方式如下图:图7 振荡电路3.1.8控制按钮电路控制按钮,控制是弹奏还是演唱(P3.3)以及复位功能(P3.2)图8 控制按钮电路3.1.9扬声器电路图9 扬声器电路3.2软件环境3.2.1I/O并行口直接驱动LED显示对应键值的显示:表2 字形码表及对应的音符0 0x3f 低 5 SO 8 0x7f 中 6 LA1 0x06 低 6 LA 9 0x6f 中 7 SI2 0x5b 低 7 SI A 0x77 高 1 DO3 0x4f 中 1 DO B 0x7c 高 2 RE4 0x66 中 2 RE C 0x39 高 3 M5 0x6d 中 3 M D 0x5e 高 4 FA6 0x7d 中 4 FA E 0x79 高 5 SO7 0x07 中 5 SO F 0x71 高 6 LA在本设计中,数码管的显示通过P1=DSY_CODE[x]这句语言来查表并输出,实现音符的显示。