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

合集下载

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

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

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

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

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

对于单片机来说,利用其定时器产生不同频率的方波非常方便,以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. 回顾与拓展- 对所学知识进行总结回顾,巩固学习成果- 探讨简易电子琴单片机的拓展应用,如与其他智能硬件的结合- 教材章节:第七章 单片机拓展应用教学内容根据课程目标制定,保证科学性和系统性。

单片机电子琴课程设计

单片机电子琴课程设计

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

2. 帮助学生掌握单片机编程的基本技巧,学会使用相关软件进行程序设计。

3. 使学生了解音乐理论中音阶、音符的基本知识,并将其应用于电子琴演奏。

技能目标:1. 培养学生动手操作单片机的能力,学会连接电子琴硬件并进行调试。

2. 培养学生编写简单电子琴程序的能力,实现不同音符的播放和乐曲演奏。

3. 提高学生团队协作和沟通能力,能够共同分析和解决在电子琴制作过程中遇到的问题。

情感态度价值观目标:1. 培养学生对单片机及电子琴制作的兴趣,激发学生探究精神,养成自主学习的好习惯。

2. 培养学生具有创新意识,敢于尝试,勇于实践,面对失败保持积极的心态。

3. 增强学生的环保意识,培养节约资源、爱护设备的良好习惯。

课程性质:本课程为实践性较强的课程,结合理论知识,培养学生的动手操作能力和实际应用能力。

学生特点:学生具备一定的电子知识和编程基础,对新鲜事物充满好奇心,喜欢动手实践。

教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性,提高学生的实践能力和创新能力。

在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 理论知识:- 单片机原理:介绍单片机的基本结构、工作原理和功能。

- 音乐理论:讲解音阶、音符、音长等基本音乐知识。

- 编程基础:回顾C语言基本语法,学习单片机编程方法和技巧。

2. 实践操作:- 电子琴硬件连接:学习电子琴硬件的组成,进行电路连接和调试。

- 程序编写:编写程序实现电子琴基本功能,如按键识别、音符播放等。

- 歌曲演奏:设计程序,实现简单乐曲的演奏。

3. 教学大纲:- 第一周:单片机原理学习,音乐理论知识回顾。

- 第二周:编程基础复习,电子琴硬件连接与调试。

- 第三周:编写电子琴程序,实现基本功能。

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

我们都会抽空欣赏世界名曲,作为对精神的洗礼。

本论文设计一个基于单片机的简易电子琴。

电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。

它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

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

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

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

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

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

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

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

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

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

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

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

1.3简易电子琴功能概述单片机因体积小、功能强、价格低廉而得到广泛应用。

AT89C51单片机设计微型电子琴的方法,仅需AT89C51最小系统,扩展一组矩阵键盘,再接一组发光 二极管用来指示电子琴的工作状态。

本系统分为两个部分,一个是音乐,另一个就是电子琴。

1. 单片机并行连接4*4矩阵键盘和一位数码管2. 利用单片机内部定时器T0的定时功能产生音符所对应的音调3. 经功率放大器后输出至音箱4. 在弹奏音乐的同时将音符显示与数码管5. 具备存储在播放所弹奏的音乐的功能6. 具备示范音乐播放功能概要设计2.1硬件系统的组成嵌入式电路,按键电路,LED 显示电路和三个功能键组成,通过功能键可以 选择播放音乐。

(按键一:是否录音;按键二:是否播放;按键三:复位键)该系统通过电子琴按键随意键入所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。

通过这样可 以不断的弹奏音乐。

硬件系统总体框图晶振产生频率供电复位电路AT89C51 中心控制弹奏或播放音乐4*4矩阵键盘LED 灯的显示扬声器,放大音乐2.2软件设计流程图图2 软件设计流程图2.3工作原理打开电子琴电源开关后,电子琴默认为弹奏状态(录音LED丁亮表示按键弹奏录音,不亮则普通按键弹奏功能),弹奏/播放显示灯点亮。

此时可以进行弹奏音乐,按下矩阵键盘中的任意键,扬声器发相应的音调,数码管显示对应的数字。

按下播放按钮,电子琴处于自动播放状态,弹奏/播放显示灯不亮,就会播放刚才弹走过的音乐,并循环进行播放,如果按下录音按键,将录音灯灭掉,此时播放的音乐改变,播放电子琴内置的音乐,并显示相应音符,循环播放。

此时,如果按下复位键,数码管显示0,清楚录音,此时系统又处于弹奏状态。

本设计存储了二首音乐,可循环播放.(小星星和欢乐颂)此设计模块实现的功能有 :1. 把不同的频率也就是节拍的声音输入到放大器,播放弹奏的声音;2. 在弹奏音乐的同时将音符显示于数码管;3. 弹奏音乐的时候要将音符输入到数码管;4. 播放内置储存的音乐时要显示此时播放的音乐音符;5. 具备存储在播放所弹奏的音乐的功能;6. 复位功能,模式复位、录音清楚,数码管显示为 3.1.2 AT89C51 单片机相关介绍 1) AT89C51 简介AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器( FPERO —MFlash Programmable and Erasable Read Only Memory )的低电压,高性能 CMOS 8位 微处理器,俗称单片机。

AT89C51它是一个低功耗高性能单片机,40个引脚,32 个外部双向输入 /输出( I/O )端口,同时内含 2 个外中断口, 2 个 1 6位可编程定时计数器,2个全双工串行通信口,AT89C5何以按照常规方法进行编程,也 可以在线编程。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价运行环境3.1 硬件环境3.1.1 总体设计软件模型连线:P 3八7 蜂鸣器P^O 连接LEDO (模式指示灯:弹奏--亮,播放--不亮)P2A1 连接LED1和独立开关(录音指示灯:弹奏保存--亮,弹奏不保存-- 不亮) P3A2 P3A3 独立按键,外部中断控制复位键独立按键,外部中断播放 / 弹奏切换按键 P1 连接数码管显示 PO连接矩阵键盘O 。

廉的方案。

外形及引脚排列如图 3.2所示。

F1 G —— P1 I —— P1 2—— P1 3—— FI 4 ---- PI 5 ---- P1 6—— n 7 -----KSTWPD ------RXDP3 0 ----- IXPPJ 1 -----P3 2 ---INTI ¥3 3—— W PS# -------IL 即—— 里誉 —— 蔚 PJ7 -------VFAU ------XTAL1I ----V 勢—图3 AT89C51引脚分布图主要引脚功能:1、RST(9):复位输入。

当振荡器复位时,要保持 RST 引脚2个机器周期的高电平时间;2、XTAL1( 19):反向振荡器放大器的输入及内部时钟工作电路的输入;3、XTAL2 (18):来自反向振荡器的输出;4、P1 口( 1— 8): P1 口是从内部提供上拉电阻器的 8位双向I/O 口,P1 口缓冲 器能接收和输出4个TTL 门电流;电平时,单片机只访问内部程序存储器。

2) 芯片擦除整个PEROMP 列和三个锁定位的电擦除可通过正确的控制信号组合,ALE 管脚处于低电平10ms 来完成。

在芯片擦操作中,代码阵列全被写“任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在零频率的条件下静态逻辑,支持两种 软件可选的掉电模式。

在闲置模式下,CPU 亭止工作。

但RAM 定时器、计数器、 串口和中断系统仍在工作。

在掉电模式下,保存RAM 的内容并且冻结振荡器,禁 止所用其他芯片功能,直到下一个硬件复位为止。

' --- *运 ---- P00 ——POI-- TO :' --- P03 ----- P OS ----- P 06 ---- P07 ----- , --- P2 J P22 P2 I P2 05、EA / V PP :当EA 保持低电平时,单片机只访问外部程序存储器。

EA 为高并保持1”且在3.1.3矩阵式键盘的结构与工作原理矩阵式结构的键盘显然比直接法要复杂一些, 识别也要复杂一些,本系统中的矩阵键盘中,列线通过电阻接正电源,并将行线所接的单片机的I/O 口作为输 出端,而列线所接的I/O 口则作为输入。

当按键没有按下时,所有的输出端都是高电平,代表无键按下。

行线输出是 低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就 可得知是否有键按下了。

RP1 --3.1.4按键显示模块 1)数码管的分类本设计用的是七段码。

可显示 0-F 。

按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

1.共阳数码管:是指将所有发光二极管的阳极接到一起形成公共阳极(COM 的数码管。

共阳数码管在应用时应将公共极 COM 接到+5V,当某一字段发光二极管的 阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就 不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极 (COM 的数码管。

2.共阴数码管:在应用时应将公共极CO 瞅到地线GNDt ,当某一字段发光二极 管的阳极为高电平时, 相应字段就点亮。

当某一字段的阳极为低电平时, 相应字 段就不亮。

• • 1 -- !• •fl —O ' O —'-4 fc- # -- —Q ---C=L*—O - 0—1--4 ----- 1- ♦- ―Q ~1 --- L- ♦-1 -----h •--Y -r -.i -----1--图4 矩阵式键盘2)数码管的驱动方式数码管的驱动方式分为:静态式和动态式两类。

1.静态显示驱动:静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCC码二-十进制译码器译码进行驱动。

优点是:编程简单,显示亮度高,缺点是占用I/O 端口多。

2. 动态显示驱动:动态驱动是将所有数码管的8 个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COMS电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的COM^,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1〜2ms由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O 端口,而且功耗更低。

显示模块如图所示。

3.1.5功能显示灯模块当按下弹奏/播放功能键时,LEDO 灯亮(P2八0)表示弹奏模式,再次按下LEDO 熄火表示播放模式;当独立开关控制 LED1亮时表示弹奏保存录音或者播放录音 歌曲,不亮时则表示弹奏不会保存录音或者播放内置音乐。

4,ISAyE=1 , LEDTI誉乐图6 功能显示灯模块3.1.6音乐播放装置本次设计很简陋,没有MP3那样优美的音乐,但此次设计分成“音调”和“节拍”两部分,听起来还是不错的。

音调:表示一个音符唱多高的频率 节拍:表示一个音符唱多长的时间。

由于本课程设计是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握, 不由程序控制。

相关文档
最新文档