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

合集下载

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

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

简易电子琴设计用单片机控制扬声器,弹奏出一段音乐。

一、预备知识:乐曲由不同音符组成,各音符都有对应的频率,频率不同的方波加在扬声器上,就产生一个持续的音符。

利用不同的音符、音高、音长组合,就可产生想要的音乐。

对于单片机来说,利用其定时器产生不同频率的方波非常方便,以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口产生不同频率使扬声器发出不同的音调。

本文主要对单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴的硬件组成。

并且从原理图,主要芯片,各模块的原理和各个模块的程序调试来阐述。

利用单片机产生不同频率来获得我们要求的音阶,最终可以随意弹奏想要表达的音乐,还设计了一按键用来自动播放一首曲子。

c51单片机课程设计——电子琴

c51单片机课程设计——电子琴

课程设计报告姓名:曹班级:101班学号:课程设计名:简易电子琴一、概述:本系统设计制作一个可演奏的电子琴。

综合应用了两项设计:(1)能产生纯音,了解音调高低的控制方法,用键盘代替电子琴的键盘,控制演奏音乐。

(2)演奏一支乐曲(天空之城)。

那音阶要怎么使用C51单片机产生呢?C51在这项工作中运用它哪些资源呢?我们怎么实现一个按键对应一个音阶呢?二、系统描述:(1)我们从初中开始就知道,声音是由振动产生的,基本的这7个音阶的频率之间满足某种数学关系由低到高排列的自然音,所以我们可以通过改变单片机输出频率就可以得到不同的音阶;(2)为了得到精确的频率(周期的倒数),我们可以使用C51单片机定时中断模块。

(3)通过判断按键是否被按下,然后执行该按键按下时的函数(在程序中是改变T1的初值得到实现)。

需要注意的是,在该程序中让8051的内部定时器使其工作在计数器模式MODE1下,改变记数值TH0及TL0以产生不同频率的方法。

例如频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时956/1=956在每记数9次时将I/O口反相,就可得到中音D0(523HZ)。

记数脉冲值与频率的关系公式如下:N=Fi/2/Fr N:记数值Fi:内部计时一次为1微秒.故其频率为1MHZFr;要产生的频率起记数值的求法如下:T=65536-N=65536-Fi/2/Fr例如:设K=65536,F=1000000=Fi=1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的记数值。

T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr低音D0的T=65536-500000/262=63627中音D0的T=65536-500000/523=64580低音D0的T=65536-500000/1047=65059详细的音阶频率与计数初值可参考附录一;三、电路设计1.单片机最小系统模块2.三极管信号放大模块扬声器发出对应音符模块如下:3.按键电路模块:四.程序设计:本系统的程序流程图如下:程序如下:#include <reg51.h>#define uchar unsigned char#define uint unsigned intsbit kongzhi=P1^1;sbit fm=P1^0; //蜂鸣器输出的IO口uchar timeh,timel,i=8,t; //timeh,timel为定时器高低4位,i为演奏音符个数uchar code yinyue[]={0x63,0x71,0x83,0x71,0x82,0xA2,0x76,0x32,0x32,0x63,0x51,0x62,0x82,0x54,0x32,0x32,0x42,0x32,0x42,0x11,0x32,0x81,0x81,0x81,0x73,0x41,0x41,0x71,0x74,0x63,0x71,0x83,0x71,0x82,0xA2,0x74,0x31,0x31,0x63,0x51,0x62,0x82,0x54,0x31,0x42,0x83,0x71,0x71,0x83,0x91,0x91,0xA1,0x82,0x83,0x71,0x61,0x61,0x72,0x51,0x66,0xff};//---------------------------简谱---------------------------------------//1-7代表中音do~si,8代表高音douchar code yinfu[]={0x11,0x21,0x31,0x41,0x51,0x61,0x71,0x81,0xff};//----------------------------简谱音调对应的定时器初值---------------------------uchar code cuzhi[]={ 0xff,0xff, //占位符0xFC,0x44,0xFC,0xAD,0xFD,0x0A,0xFD,0x34,0xFD,0x83,0xFD,0xC8,0xFE,0x06,//中音do~si的T计数初值0xFE,0x22,0xFE,0x57,0xFE,0x85,0xFE,0x9B,0xFE,0xC2,0xFE,0xE4,0xFF,0x03}; //高音do的T计数初值void delay1ms(unsigned int ms); //延时ms毫秒子程序void delay165ms(uint z); //延时165ms,即1/4拍子程序void keysong(); //演奏子程序int key();void song();main(){ kongzhi=1;EA=1; //开总中断ET0=1; //开定时器0TMOD=0x01; //定时器0工作在方式1TH0=0;TL0=0;TR0=1;P3=0xff;while(1){ if(kongzhi==0){song();}else{key();keysong();}}}void song(){uint temp;uchar jp; //jp是简谱1~8的变量t=0;while(1){ temp=yinyue[t];if(temp==0xff) break; //到曲终则跳出循环jp=temp/16; //取数的高4位作为音调if(jp!=0){timeh=cuzhi[jp*2]; //取T的高4位值timel=cuzhi[jp*2+1]; //取T的低4位值}else{TR0=0;fm=1; //关蜂鸣器}delay165ms(temp%16); //取数的低4位作为节拍TR0=0; //唱完一个音停10msfm=1;delay1ms(10);TR0=1;t++;}TR0=0;fm=1;}void timer0() interrupt 1 //定时器0溢出中断子程序用于产生各种音调{TH0=timeh;TL0=timel;fm=~fm; //产生方波}void keysong(){uint temp;uchar jp; //jp是简谱1~8的变量delay1ms(50);if(i!=8){ TR0=1;temp=yinfu[i];jp=temp/16; //取数的高4位作为音调if(jp!=0){timeh=cuzhi[jp*2]; //取T的高4位值timel=cuzhi[jp*2+1]; //取T的低4位值}else{TR0=0;fm=1; //关蜂鸣器}delay165ms(temp%16); //取数的低4位作为节拍TR0=0; //唱完一个音停10msfm=1;delay1ms(10);//TR0=1;//i++;}TR0=0;fm=1;}int key(){ switch(P2){case 0xfe: return 0;case 0xfd: return 1;case 0xfb: return 2;case 0xf7: return 3;case 0xef: return 4;case 0xdf: return 5;case 0xbf: return 6;case 0x7f: return 7;default: return 8;}}//函数名:delay165ms//函数功能:采用软件实现延时约z*165ms//形式参数:无void delay165ms(uint z) //延时165ms,即1/4拍{uint x;for(x=0;x<z;x++)delay1ms(165);}//函数名:delay1ms//函数功能:采用软件实现延时约ms*1ms//形式参数:无//返回值:无void delay1ms(unsigned int ms){ unsigned int i,j;for(j=0;j<ms;j++)for(i=0;i<0x100;i++);}五.制作与调试:最后制作出的成品:六.测试结果。

单片机课程设计电子琴

单片机课程设计电子琴

单片机课程设计电子琴一、课程目标知识目标:1. 学生能理解单片机的基本原理和电子琴的基础知识,掌握单片机控制电子琴的基本电路构成。

2. 学生能掌握单片机编程的基本方法,运用C语言或汇编语言实现电子琴的音调控制。

3. 学生了解电子琴音阶与频率的关系,能运用数学知识进行音调计算。

技能目标:1. 学生能够独立设计并搭建单片机控制电子琴的硬件电路。

2. 学生能够编写程序,实现电子琴的基本功能,如音阶播放、简单曲目的演奏等。

3. 学生能够运用调试工具对电子琴程序进行调试和优化。

情感态度价值观目标:1. 学生通过动手实践,培养对单片机及电子制作的兴趣,增强学习动力。

2. 学生在团队协作中,学会沟通与交流,培养合作精神和解决问题的能力。

3. 学生在学习过程中,认识到科技对生活的改变,培养创新意识和社会责任感。

课程性质:本课程为实践性较强的课程,旨在让学生通过动手操作,掌握单片机控制电子琴的基本知识和技能。

学生特点:学生具备一定的电子基础和编程能力,对单片机有一定了解,对电子琴感兴趣。

教学要求:注重理论与实践相结合,强调动手实践和团队合作,关注学生的个体差异,提高学生的综合能力。

通过分解课程目标为具体学习成果,使学生在完成课程后能够达到上述目标。

后续教学设计和评估将以此为基础,确保课程目标的实现。

二、教学内容1. 理论知识:- 单片机原理与结构:介绍单片机的基本构成、工作原理及性能特点。

- 电子琴基础知识:讲解电子琴的音阶、音色及演奏方法。

- 单片机编程语言:回顾C语言和汇编语言的基本语法,为编程打下基础。

2. 实践操作:- 硬件电路设计:学习并搭建单片机控制电子琴的硬件电路,包括按键输入、音频输出等。

- 程序编写:编写程序实现电子琴的基本功能,如音阶播放、单音演奏等。

- 程序调试与优化:学习使用调试工具,对程序进行调试和优化。

3. 教学大纲:- 第一阶段(1课时):回顾单片机原理、电子琴基础知识及编程语言。

- 第二阶段(2课时):设计并搭建单片机控制电子琴硬件电路。

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

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

单片机简易电子琴课程设计一、课程目标知识目标:1. 让学生理解单片机的基础知识,掌握其编程原理;2. 帮助学生掌握简易电子琴的设计原理,包括音阶、音色和节奏的控制;3. 引导学生掌握电子琴的硬件连接和软件编程,了解两者之间的联系。

技能目标:1. 培养学生动手操作能力,能够独立完成单片机与电子琴硬件的连接;2. 培养学生编程能力,能够编写简单的程序控制电子琴演奏;3. 提高学生的问题解决能力,能够针对电子琴演奏过程中出现的问题进行调试和优化。

情感态度价值观目标:1. 培养学生对单片机及电子琴制作的兴趣,激发学习热情;2. 培养学生团队协作精神,学会在合作中共同解决问题;3. 培养学生创新思维,鼓励学生敢于尝试,勇于突破。

课程性质分析:本课程为实践性较强的课程,结合单片机技术与音乐知识,旨在培养学生的动手实践能力和创新精神。

学生特点分析:初中年级学生已经具备一定的物理知识和逻辑思维能力,对新鲜事物充满好奇心,喜欢动手实践。

教学要求:1. 结合课本知识,注重理论与实践相结合,提高学生的综合运用能力;2. 教学过程中,关注学生个体差异,给予每个学生个性化的指导;3. 注重教学评价,及时了解学生学习进度,调整教学策略,确保课程目标的实现。

二、教学内容1. 单片机基础知识:讲解单片机的组成、工作原理,重点掌握I/O口控制、定时器、中断等基本功能。

相关教材章节:第一章 单片机概述、第二章 单片机硬件结构。

2. 电子琴原理:介绍电子琴的基本原理,包括音阶生成、音色合成、节奏控制等。

相关教材章节:第三章 电子乐器原理、第四章 音频信号处理。

3. 硬件连接:学习如何将单片机与电子琴硬件连接,包括键盘矩阵、音频放大器、扬声器等。

相关教材章节:第五章 单片机接口技术。

4. 软件编程:编写程序实现电子琴的基本功能,包括音阶演奏、音色切换、节奏控制等。

相关教材章节:第六章 单片机编程基础、第七章 程序设计实例。

5. 实践操作:分组进行电子琴制作,让学生动手实践,提高实际操作能力。

c51单片机课程设计——电子琴

c51单片机课程设计——电子琴

目录1.设计题目 (3)2. 设计目的 (3)3. 主要内容 (3)4. 音符频率与计数初值对照表 (3)5.定时/计数器的工作原理 (4)5.1 方式寄存器 (4)5.2启/停控制寄存器TCON (6)6. 中断控制 (6)6.1 TCON用于中断请求 (6)6.2 中断允许寄存器IE (7)7.系统分析 (7)7.1 系统组成 (8)7.2 系统工作原理 (8)8.系统硬件设计 (8)8.1 系统硬件总体设计 (8)8.2 LED显示模块 (9)8.3 扬声器模块 (9)8.4 子系统(模块)电路图 (10)8.4.1 共阳极电路图 (10)8.4.2 上位开关 (10)9.系统软件设计 (10)9.1 系统软件总体设计 (10)9.2 本系统总体代码 (11)10.课程设计成果 (15)11.个人总结 (15)参考文献 (17)一、设计题目:简易电子琴二、设计目的:(1)熟悉单片机的内部结构;(2)掌握C51编程方法;(3)掌握定时器与发声的关系;(4)掌握交流蜂鸣器的发声原理和程序控制方法;(5)掌握串行控制键盘键的识别方法;(6)掌握声音频率的计算方法。

三、主要内容本系统设计制作一个可演奏的电子琴。

综合应用了两项设计。

(1)能产生纯音,了解音调高低的控制方法。

(2)用键盘代替电子琴的键盘,控制演奏音乐。

(a)掌握串行控制键盘键的识别方法;(b)根据键值控制发声。

(3)至少演奏一支乐曲。

四、音符频率与计数初值对照表:低音7 370 0xf64c 中音6 740 0xfb29高音6 1480 0xfd98低音7 415 0xf75a 中音7 831 0xfbb1高音7 1661 0xfddc五、定时/计数器原理MCS-51单片机内部有2个16位的可编程定时/计数器,定时/计数器0由计数器TH0和TL0组成,定时/计数器1由计数器TH1和TL1组成,THX和TLX(X=0,1)分别为两个8位计数器,连接起来可组成16位计数器。

单片机课程设计——简易电子琴

单片机课程设计——简易电子琴
单片机课程设计——简易电子 琴
汇报人:
单击输入目录标题 单片机基础知识 简易电子琴系统设计 单片机与简易电子琴的结合 简易电子琴的功能扩展 简易电子琴的优化与改进
添加章节标题
单片机基础知识
单片机简介
单片机是一种集成电路芯片,将微处理器、存储器、输入/输出接口等集成在一起 单片机具有体积小、功耗低、可靠性高、编程灵活等特点 单片机广泛应用于工业控制、家电、汽车电子等领域 单片机课程设计是学习单片机应用的重要环节,可以提高学生的实践能力和创新能力
音乐播放与控制
单片机控制:通过单片机控制电子琴的音色、音高和节奏 音乐播放:单片机通过控制电子琴的音色、音高和节奏,实现音乐的播放 控制方式:可以通过按键、触摸屏等方式控制音乐的播放 功能扩展:可以增加录音、播放、暂停、快进、快退等功能,提高用户体验
显示模块的应用
显示模块的作用:显示电子琴 的音色、音高、节奏等信息
单片机在简易电子琴中的应用
控制音量:通过单片机控制 音量的大小,实现电子琴的 音量调节功能。
控制音色:通过单片机控制 不同频率的音色,实现电子 琴的多种音色效果。
控制节奏:通过单片机控制 节奏的快慢,实现电子琴的
节奏调节功能。
控制和弦:通过单片机控制 和弦的演奏,实现电子琴的
和弦演奏功能。
单片机开发环境搭建
测试内容:音色、音调、 音量、节奏等性能指标
测试结果分析:对测试数 据进行分析,找出问题并 解决
测试报告:记录测试过程、 结果和分析,为后续改进 提供依据
单片机与简易电子琴的结合
单片机控制简易电子琴的原理
单片机作为核心控制单元,负责接收和处理来自键盘的输入信号
单片机根据接收到的输入信号,控制电子琴的音源产生相应的音调

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

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

单片机课程设计课程设计名称:专业班级:学生姓名:学号:指导教师:课程设计时间:1 需求分析1.1 课题设计目的及其意义随着社会的发展进步,人们的生活水平也逐步提高,音乐已经成为了我们生活中很重要的一部分,在工作和学习之余,欣赏音乐不仅使身心得到放松,同时也提高人们的精神品质和个人素养。

当代,爱好音乐的年轻人越来越多,也有不少人自己练习弹奏乐器,作为业余爱好和一种放松的手段,鉴于一些乐器学习难度大需花费太多精力,且其价格太过于高昂,使得一部分有这种想法的人不得不放弃这种想法,而电子琴又是一种新型的键盘乐器,它是现代电子科技与音乐结合的产物,价格相对便宜,能够满足一般爱好者的需求,因此,在现代音乐中扮演着重要的角色。

故简易电子琴的研制具有一定的社会意义。

单片机(单片微型计算机)是大规模集成电路技术发展的产物,具有高性能、高速度、体积小、价格低廉、稳定可靠等特点。

单片机的应用相当广泛,从平常的家用电器到航空航天系统和国防军事、尖端武器都能找到它的身影。

因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。

1.2 课题设计的任务与主要内容以51系列单片机AT89C51为主控制器,附有矩阵键盘、LED显示管、扬声器组成。

系统完成显示输入信息、播放相应音符等基本功能。

基本要求:(1)键盘矩阵识别。

即矩阵扫描,显示当前按键。

(2)不同频率音符播放。

可以通过按键控制24种发音,完成低音、中音、高音功能切换。

(3)具备示范音乐播放功能,示范音乐数量2 - 3首;扩展要求:(根据情况自行选择,可提高课程设计验收分数)(1)通过LCD屏显示音乐名称。

(2)动态显示音乐音高(低音、中音、高音)及当前按键音的符号。

(3)具有记忆功能,能记忆上次停电后的音高。

要求:验收可用proteus软件模拟验证,或实物验证更佳设计思路:先根据要求设计硬件电路和编写相应的程序,然后进行软件仿真调试,最后具体实现的功能:按下音符键可以发出相应的音符。

51单片机简易电子琴设计

51单片机简易电子琴设计
七、参考文献 1、单片机应用技术(C语言).。 2、51单片机C语整体方案:
系统整体安排如下: • 按下S1键发出1的声音。 • 按下S2键发出2的声音。 • 按下S3键发出3的声音。 • 按下S4键发出4的声音。 • 8051单片机根据不同的键产生不同的乐曲音符。系统整体软件结构
框图如下:
三、原理说明
1、频率、声音的实现和产生
单片机的频率和声音输出的原理是,利用琴键控制定时器 的开中断和闭中断,即实现发音和闭音。在此期间通过对定 时器的定时时间进行控制来产生不同频率的方波,使蜂鸣器 发出不同音阶的声音。把相应琴键对应的音符变换为定常数, 作为数据表格存放在储存器中。由程序查表得到定时常数, 用以控制定时器产生方波的频率。但下一个键按下时,再查 一下此琴键所对应音符的定时常数。依次进行下去,就可以 了。
四、模块描述
1、键盘模块: 本系统采用独立式键盘S1、S2、S3、S4。结构框图如下:
S1
S1
S2
S2
S3
Hale Waihona Puke S3S4S4
2、蜂鸣器模块:
按下不同的键,蜂鸣器会发出不同的音乐。结构框图如下:
五、主程序流程图
六、操作说明 将编好的电子琴的程序导入到单片机AT89S51上,按下 S1键,此时蜂鸣器发出的声音为1的声音;再依次按下S2、 S3、S4键,蜂鸣器会依次发出2、3、4的声音。
用定时器T0方式1来产生琴键对应音符的频率的方波,由 P1.1输出蜂鸣器。
2、音符频率表如下:
3、键盘的方案选择
此系统琴键输入是通过独立式键盘来实现的。 由于8051单片机的八为I/O口足以能实现控制各音阶 的输出,并且独立式键盘的编程容易易懂,结构简单, 实现起来方便,而且每个按键独立占有一根I/O接口 线,每个I/O接口线工作状态互不影响,所以采用独 立式键盘。P3.0~P3.3口分别对应S1、S2、S3、S4。

《电子设计》简易电子琴

《电子设计》简易电子琴

《电子设计》简易电子琴1、设计任务本次的设计任务是设计一款简易电子琴,其功能是能够通过使用者交互完成播放两个八度声音与音乐的目的。

2、设计方案2.1设计框图本次设计共有两种方案。

第一种方案使用STC89C52RC 单片机。

通过独立按键完成输入,通过扬声器完成声音的输出。

其设计框图如下:图1:方案一硬件框图第二种方案使用STC8G1K08单片机。

通过触摸按键结合单片机ADC 完成输入,通过TC8002功放电路完成声音的输出。

其设计框图如下:图2:方案二硬件框图2.2 各模块设计2.2.1 电源设计(例如)方案一使用的是STC89C52RC 单片机,其工作电压为5V ,通过引脚与5V 外部电源连接即可完成供电。

方案二使用的是STC8G1K08单片机,其工作电压也是5V ,通过TYPEC 接口完成供电。

原理图如下图所示:图3:方案二电源设计2.2.2 输入电路设计方案一与方案二使用两种不同的输入方式。

方案一使用共阴极接法的独立按键与单片机引脚连接,通过单片机检测按键是否被按下完成输入检测。

其原理图如下图所示:图4:方案一输入电路方案二使用触摸检测电路完成输入功能。

使用者接触触摸按键时会改变该电路的电容,使单片机ADC 引脚接收的数据发生改变,进而达到输入功能。

其原理图如下图所示:图5:方案二输入电路2.2.3 扬声器与功放电路两种方案播放声音的设备都是喇叭,但驱动电路不同。

方案一使用的三极管放大电路,其原理图如下图所示:图6:方案一扬声器驱动电路方案二使用功放芯片TC8002完成扬声器的驱动。

该芯片是一颗带关断模式,专为大功率高保真的应用场合所设计的音频功放IC。

它所需外围元件少且在2V~5V的输入电压下即可工作。

它的管脚图如下图所示:图7:TC8002管脚排列图经查看该芯片手册设计的功放电路图如下图所示:图8:功放模块电路图2.2.4 其余电路设计除以上两种模块,还有其余的模块电路如方案一的晶振电路,复位电路,方案二的供电提示电路等。

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

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

单片机课程设计课程设计名称:专业班级:学生姓名:学号:指导教师:课程设计时间:一、需求分析1、1课题背景随着社会得发展进步,音乐逐渐成为我们生活中很重要得一部分,有人曾说喜欢音乐得人不会向恶。

我们都会抽空欣赏世界名曲,作为对精神得洗礼.本论文设计一个基于单片机得简易电子琴。

电子琴就是现代电子科技与音乐结合得产物,就是一种新型得键盘乐器.它在现代音乐扮演着重要得角色,单片机具有强大得控制功能与灵活得编程实现特性,它已经溶入现代人们得生活中,成为不可替代得一部分。

电子科技也在不断得前进,电子技术正在以不同得方式改变着我们得生活,电子琴设计也就是希望给人们带来一些生活得乐趣。

电子琴可以应用在很多方面,比如一些简易得玩具上或手机上。

单片机技术使我们可以利用软硬件实现电子琴得功能,从而实现电子琴得微型化。

本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。

利用单片机产生不同频率来获得我们要求得音阶,最终可随意弹奏想要表达得音乐。

并且本文分别从原理图,主要芯片,各模块原理及各模块得程序得调试来详细阐述。

1、2课题设计得任务与主要内容本文得主要内容就是用AT89C51单片机为核心控制元件,设计一个简单得电子琴。

以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键与扬声器。

定时器按设置得定时参数产生中断,由于定时参数不同,就会发出不同频率得脉冲,不同频率得脉冲经喇叭驱动电路放大滤波后,就会发出不同音调。

先根据要求设计硬件电路与编写相应得程序,然后进行仿真调试,最后细心焊接硬件电路图,将程序烤入芯片中,最终达到设计目得。

本系统运行稳定,其优点就是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定得实用与参考价值。

1、3简易电子琴功能概述单片机因体积小、功能强、价格低廉而得到广泛应用.AT89C51单片机设计微型电子琴得方法,仅需AT89C51最小系统,扩展一组矩阵键盘,再接一组发光二极管用来指示电子琴得工作状态。

单片机电子琴课程设计

单片机电子琴课程设计

单片机电子琴课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解其内部结构和功能。

2. 使学生了解电子琴的基本工作原理,掌握单片机控制电子琴的方法。

3. 帮助学生掌握编程语言,如C语言,用于编写单片机控制程序。

技能目标:1. 培养学生动手搭建单片机电子琴硬件电路的能力。

2. 培养学生运用编程语言编写单片机程序,实现电子琴的基本功能。

3. 提高学生分析问题和解决问题的能力,使学生能够独立调试和优化单片机电子琴程序。

情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发学生创新意识和探索精神。

2. 培养学生团队协作意识,提高沟通与交流能力。

3. 引导学生关注单片机技术在现实生活中的应用,认识到科技对社会发展的推动作用。

分析课程性质、学生特点和教学要求:本课程为单片机电子琴课程设计,旨在让学生将所学理论知识与实际应用相结合,提高学生的动手实践能力。

针对初中年级学生,课程内容需符合学生的认知水平和兴趣。

在教学过程中,注重引导学生主动参与,培养其独立思考和解决问题的能力。

课程目标分解:1. 知识目标:通过讲解、示范和练习,使学生掌握单片机原理、电子琴工作原理及编程方法。

2. 技能目标:通过动手实践,培养学生搭建硬件电路、编写程序和调试设备的能力。

3. 情感态度价值观目标:通过课程学习,激发学生对电子技术的兴趣,培养其团队协作意识和创新能力。

二、教学内容1. 单片机原理及内部结构:讲解单片机的组成、工作原理、I/O口功能等基础知识,对应教材第3章内容。

2. 电子琴工作原理:介绍电子琴的基本构成、音阶产生原理、键盘扫描方法等,对应教材第5章内容。

3. C语言编程基础:讲解C语言的基本语法、数据类型、运算符、控制语句等,对应教材第2章内容。

4. 单片机编程与控制:结合实例,讲解如何使用C语言编写单片机程序,实现电子琴功能,对应教材第4章内容。

5. 硬件电路搭建:介绍电子琴硬件电路的组成、元件选型及连接方法,对应教材第6章内容。

单片机课程设计报告 简易电子琴

单片机课程设计报告 简易电子琴

目录1概述 (1)2方案设计 (2)2.1系统设计要求 (2)2.2电子琴系统的组成 (2)2.3电子琴系统的设计思想 (2)2.3.1 硬件设计思想 (2)2.3.2 软件设计思想 (3)3硬件电路设计 (4)3.1系统方案 (4)3.2系统功能框图 (5)3.3功能模块详细设计 (5)3.4主要芯片功能描述 (9)4 系统软件设计 (11)4.1主程序流程图 (11)4.2源程序 (12)4.3设计总结 (16)5 仿真与调试 (17)结束语 (19)参考文献 (20)1概述单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),单片机芯片常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。

概括的讲:一块芯片就成了一台计算机。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

同时,学习使用单片机是了解计算机原理与结构的最佳选择。

它最早是被用在工业控制领域。

由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。

最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。

INTEL的Z80是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。

其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列单片机系统。

因为简单可靠而性能不错获得了很大的好评。

尽管2000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到目前基于8031的单片机还在广泛的使用。

在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。

事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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]这句语言来查表并输出,实现音符的显示。

相关文档
最新文档