项目三 简易电子琴的制作

26
单单单单单单单单 单单单单单 () 单单单 单单单单单单单单 [ 单单单单单单 ] 单单单单 一、 1. 单单单单单单单单单单单单单 单单单单单单单单单单单单单单单 ,。 2. 单单单单单单单单单单单单单单 单单单单单单单单单单单 、。 3. 单单单单单单单单单单 单单单单单单单单单单 ,。 单单单单 1. 单单单单单单单单单单单单单单单单单单单单单单 单单单单单单单 单单单单单单单单。。

Upload: dexter-bonner

Post on 30-Dec-2015

59 views

Category:

Documents


3 download

DESCRIPTION

项目三 简易电子琴的制作. [ 项目学习目标 ]. 一、知识目标 1. 了解令蜂鸣器产生声音的方法,理解硬件设计的思路与工作原理。 2. 学习利用汇编语言编写简单发声、变频报警等程序的方法。 3. 了解电子琴程序设计中,决定延时参数的方法。 二、技能目标 1. 能独立完成利用单片机实验箱实现蜂鸣器简单发声、变频报警以及简 易电子琴制作调试。。. 任务一 利用软件延时的方法,使蜂鸣器发出 1KHz 的响声. 活动 1: 硬件设计. 1. 产生声音的方法. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

项目三 简易电子琴的制作 [ 项目学习目标 ]

一、知识目标

1. 了解令蜂鸣器产生声音的方法,理解硬件设计的思路与工作原理。2. 学习利用汇编语言编写简单发声、变频报警等程序的方法。3. 了解电子琴程序设计中,决定延时参数的方法。二、技能目标1. 能独立完成利用单片机实验箱实现蜂鸣器简单发声、变频报警以及简 易电子琴制作调试。。

Page 2: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务一 利用软件延时的方法,使蜂鸣器发出 1KHz 的响声

活动 1: 硬件设计

1. 产生声音的方法

让蜂鸣器( Speaker )产生声音的方法很简单,只要让蜂鸣器通过会产生大小变化的电流(脉动电流或交流),就能使蜂鸣器发出声音。因此若以程序不断地输出 1010…… 就可以使蜂鸣器发出声音。由于 MCS-51 系列单片机的输出端口(并口)的输出电流不够大,所以必须加上三极管的电流放大后,再驱动扬声器。

Page 3: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务一 利用软件延时的方法,使蜂鸣器发出 1KHz 的响声

活动 1: 硬件设计

2. 设计思路 可利用单片机并口 P3 的任意引脚(此处选用 P3.4 )通过限流电阻 R(可选 1KΩ )与三极管基极连接,三极管的集电极连接蜂鸣器,而三极管的发射极连接 +5V 电源。如图 3-1-1 简单发声电路所示。

Page 4: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务一 利用软件延时的方法,使蜂鸣器发出 1KHz 的响声

活动 1: 硬件设计

3. 工作原理 当单片机的 P3.4 引脚电平为低电平 0 时,三极管饱和导通(相当于开关闭合),蜂鸣器有电流流过。而当 P3.4 引脚为高电平 1 时,三极管截止(相当于开关断开)蜂鸣器就没有电流流过。此时,在蜂鸣器的两端就会产生高低变换波动的电流,如此波动的电流就会使蜂鸣器发声。因此本活动可采用软件延时的方法,先使单片机产生 1KHz 的方波,然后通过 P3.4 引脚来控制三极管的导通或截止,使接在三极管上的蜂鸣器发出 1KHz 的响声。

Page 5: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务一 利用软件延时的方法,使蜂鸣器发出 1KHz 的响声

活动 2: 程序设计

1. 流程图 汇编语言程序流程如图 3-1-2 所示

Page 6: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务一 利用软件延时的方法,使蜂鸣器发出 1KHz 的响声

活动 2: 程序设计

2. 汇编语言源程序 汇编语言编写的简单发声源程序如下

Page 7: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务一 利用软件延时的方法,使蜂鸣器发出 1KHz 的响声

活动 3: 用单片机实验箱进行仿真实验

1. 使用单片机最小应用系统。关闭该模块电源,用数据线连接单片机 P3.4 口与蜂鸣器模块相连。如图 3-1-3 所示。

Page 8: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务一 利用软件延时的方法,使蜂鸣器发出 1KHz 的响声

活动 3: 用单片机实验箱进行仿真实验 2. 将仿真器的 USB 接口接入电脑,目的是给仿真器提供电源,此时仿真器上的 POWER 灯点亮。用串行数据通信线连接计算机与仿真器。3. 把仿真器插到模块锁紧插座中,注意仿真器的方向:缺口朝上。如图 3-1-5 所示。

Page 9: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务一 利用软件延时的方法,使蜂鸣器发出 1KHz 的响声

活动 3: 用单片机实验箱进行仿真实验

4. 打开 KeiluVision2 仿真软件,首先建立本项目的项目文件,接着添加简单发声的源程序,进行编译,直到编译无误。

5. 右击“ Target 1” 点击 Options for Target‘Target 1’ 进行软件设置,选择 Debug 选项。点击“ Use Keil Monitor-51 Driver 进行硬件仿真。点击 Settings 按扭,选择串行口,设置波特率为 38400 ,点击 OK 按扭。

6. 打开模块电源和总电源,点击开始调试按扭,点击 RUN 按钮运行程序,观察蜂鸣器模块的运行情况。

注意:做完本任务时记得养成一个好习惯,把实验箱上相应单元的短路帽和电源开关还原到原来的位置!

Page 10: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

经验总结 :

用单片机实现简单发声的原理很简单,只要使单片机 I/O 引脚不断地产生方波,三极管就会不断地导通和截止,使峰鸣器发出声音。本活动中,控制方波的频率就能控制蜂鸣器的发声频率。在本程序中,单片机 I/O 引脚产生方波的频率是由软件延时的时间决定的,读者也可改变一下延时时间再测试,注意体会延时时间与声音变化的关系。

Page 11: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

技能拓展 :

利用软件延时的方法,使 P3.4 端口输出 1KHz 与 2KHz 的变频信号,每隔1S 交替变换 1次,实现变频报警。

活动 1: 硬件设计(同上)

活动 2: 程序设计1. 流程图 汇编语言程序流程如下图所示

Page 12: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

活动 2: 程序设计

2. 汇编语言源程序 汇编语言编写的简单发声源程序如下

技能拓展 :

Page 13: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

活动 3: 用单片机实验箱进行仿真实验 (同上)

技能拓展 :

经验总结 :

该程序语句不多,但循环程序使用较多。编程时要弄清每次循环的意图,以便更好地理解该程序。用单片机实验箱进行仿真实验时,应注意声音频率的变化以及频率变化的时间。本程序开始时是先发生 1KHz 的声音,持续 1s ,然后接着发生 2KHz 的声音,也持续 1s ,不断循环后产生了变频报警声。读者可以改变程序中延时子程序 DELAY1 或 DELAY2 的延时时间,观察声音的变化。或改变程序中 R1 、 R3 的值,观察发声长度的变化,从而加深对变频报警声产生原理的理解。

Page 14: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务二 用按钮实现电子琴的制作

活动 1: 学习电子琴中各音阶频率所对应的延时参数的设定方法

电子琴中各音阶的频率如下表 3-2-1 所示,根据此频率表,读者可以计算出程序中所需的延时参数。

1.各音阶频率表

Page 15: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务二 用按钮实现电子琴的制作

活动 1: 学习电子琴中各音阶频率所对应的延时参数的设定方法

中音 DO 的频率经查表可知为 262HZ ,所以周期T= 1/f=1/262S=3816us ,半个周期若用 t表示的话, t=T/2=1908us 。

2. 中音 DO 的程序编写

Page 16: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务二 用按钮实现电子琴的制作

活动 1: 学习电子琴中各音阶频率所对应的延时参数的设定方法

特别注意 : 其它音调所需的 R6值,算法一样读者可自行练习计算。公式为 R6= (t-9us)/15 。可将该公式继续推导得到 R6=( 500000/f-9 )/15 。

在设计电子琴的实际情况下,程序必须不断地去判断是哪一个键被按下,所以程序中还有其他的指令在消耗时间。因此实际采用的 R6 的值理论上应比上述的计算值要少一点,这样电子琴所产生的音阶才会更准确。但是要把 R6 计算的很准确而使音阶非常准确,非常浪费时间,除此之外判断按键的状态本身所耗的时间与周期 T比起来实在微不足道,所以在电子琴的程序设计时,只采用上述公式计算出 R6值即可,而利用程序判断按键所耗费的时间,我们可以忽略不计。

Page 17: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务二 用按钮实现电子琴的制作 活动 2: 制作一个电子琴,共有 11 个按键,可产生低音 SO LA SI 、中音 DO RE MI FA SO LA Si 以及高 音 DO这 11 个音阶。

电路如下图 3-2-2 所示。 1. 硬件设计

Page 18: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务二 用按钮实现电子琴的制作 活动 2: 制作一个电子琴,共有 11 个按键,可产生低音 SO LA SI 、中音 DO RE MI FA SO LA Si 以及高 音 DO这 11 个音阶。

如下图 3-2-3 所示。 2. 程序流程图

Page 19: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务二 用按钮实现电子琴的制作 活动 2: 制作一个电子琴,共有 11 个按键,可产生低音 SO LA SI 、中音 DO RE MI FA SO LA Si 以及高 音 DO这 11 个音阶。

如下图 3-2-4 所示。 3. 程序设计

Page 20: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务二 用按钮实现电子琴的制作 活动 2: 制作一个电子琴,共有 11 个按键,可产生低音 SO LA SI 、中音 DO RE MI FA SO LA Si 以及高 音 DO这 11 个音阶。

JNB 为条件转移指令,它是依某种特定条件转移的指令。条件满足才转移(相当于执行一条相对转移指令),条件不满足时则顺序执行下面的指令。

JNB指令的格式为: JNB bit , rel 。它的意思是如果直接寻址的位地址的值为 0,则执行转移;如果直接寻址的位地址的值为 1,则顺序执行下面的指令。

程序说明 :

Page 21: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务二 用按钮实现电子琴的制作

活动 3: 用单片机实验箱进行仿真实验( 1 )使用单片机的最小应用系统。关闭该模块电源,用数据线连接单片机蜂鸣器的模块,同时用扁平数据线连接单片机的并口 P1 与 P3 。如图 3-2-4 所示。

Page 22: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务二 用按钮实现电子琴的制作

活动 3: 用单片机实验箱进行仿真实验( 2 )将仿真器的 USB 接口接入电脑,目的是给仿真器提供电源,此时仿真器上的 POWER 灯点亮。用串行数据通信线连接计算机与仿真器。( 3 )把仿真器插到模块锁紧插座中,注意仿真器的方向:缺口朝上。如图 3-2-5 所示。

Page 23: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

任务二 用按钮实现电子琴的制作

活动 3: 用单片机实验箱进行仿真实验( 4 )打开 KeiluVision2 仿真软件,首先建立本项目的项目文件,接着添加电子琴控制源程序,进行编译,直到编译无误。( 5 )右击“ Target 1” 点击 Options for Target‘Target 1’ 进行软件设置,选择 Debug 选项。点击“ Use Keil Monitor-51 Driver 进行硬件仿真。点击 Settings 按扭,选择串行口,设置波特率为 38400 ,点击 OK 按扭。( 6 )打开模块电源和总电源,点击开始调试按扭,点击 RUN 按钮运行程序,并参考下面生日快乐歌的乐谱,如图 3-2-6 所示进行演奏。

Page 24: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

技能拓展 :

当需要较大音量的电子琴时,可将上述单片机硬件电路图稍作修改如下图3-2-7 所示。

Page 25: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

项目小结 本项目以简易电子琴的制作为例介绍了如何利用 AT89S51 单片机实现蜂鸣器发声的基本方法以及结合单片机实验箱实现电子琴中各音阶发音的技巧,读者应注意以下几个方面:

1 、蜂鸣器需通过变化的电流,才能使其发出声音,而单片机输出端口的输出电流不够大,必须加上三极管将电流放大后,再驱动扬声器。

2 、单片机输出引脚产生脉冲的频率是由程序中软件延时的时间决定的,可改变延时时间再测试,体会延时时间与声音变化的关系。

Page 26: 项目三  简易电子琴的制作

单片机技术与应用(耿淬主编)

思考与练习

1. 简述用单片机产生声音的方法。

2.画出单片机简单发声电路图,并分析其工作原理。

3. 写出各音阶所对应的高音、中音、低音的频率表。

4.画出具有 11 按键的电子琴单片机控制电路原理图。

5. 当电子琴需要较大音量时,该如何处理?