1、 单片机系统开发与应用工程实习报告 选题名称 :基于 AT89S52 单片机的多音阶电子琴设计 系(院) : 专 业 : 班 级 : 姓 名 : 学 号 : 指导教师 : 学年学期 : 2009 2010 学年 第 2 学期 2010 年 5 月 30 日 摘要: 随着科技的快速发展,单片机的应用日益普遍。 单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。 本单片机系统设计应用单片机控制技术, 用 AT89S52 单片机为核心控制元件 根据上学期所学的单片机知识结合设计了一套单片机控制的电子琴系统。 电子琴是现代电子科技与音乐结合的产物,是一种新
2、型的键盘乐器,它在现代音乐扮演着重要的角色。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有 16 个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实 用和参考价值。 关键词: AT89C52; LM386;矩阵键盘行扫描;电子琴 目 录 1 课题综述 . 1 1.1 课题来源 . 1 1.2 开发意义 . 1 1.3 设计目标 . 1 2 系统硬件设计及说明 . 1 2.1 系统组成及总体框图 . 1 2.2 系统板硬件连线 . 2 2.3 元件简介 . 3 2.4 音频功放电路 . 5 3 系统软件设计
3、及说明 . 5 3.1 行列式键盘识别 . 6 3.2 音乐发生 . 6 3.3 系统总体 功能流程图 . 8 4 系统调试 . 9 4.1 硬件调试 . 9 4.2 软件调试 .10 总 结 . 11 参考文献 . 12 单片机系统开发与应用工程实习 报告 1 1 课题综述 1.1 课题来源 单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速 度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它
4、在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。 单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化。 1.2 开发意义 ( 1) 可以随意弹奏想要表达的音乐; ( 2) 软件功能完善,控制系统可靠; ( 3) 制作简单,成本低; 1.3 设计目标 以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有 16 个按键和扬声器。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了。 2 系统硬件设计及说明 2
5、.1 系统组成及总体框图 硬件设计的任务是根据总体设计要求,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。主电路主要由 4*4 按键矩阵电路、功率放大电路、扬声器、复位电路、晶振电路、电源电路几部分组成。 该 设计要实现一种由单片机控制的电子琴,单片机工作于 12MHZ 时钟频率,使用其定时 /计数器 T0,工作模式为 1,改变计数值 TH0 和 TL0 可以产生不同频率的脉冲信号。该设计 4*4 键盘对应不同音阶,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。用单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有
6、足够的驱动能力,这就需要音频功率放大电路。该设计使用低压音频功率放大器 LM386 实现音频功放电路。 单片机系统开发与应用工程实习 报告 2 复 位 电 路晶 振 电 路A T 8 9 C 5 2单 片 机电 源 电 路音 频 放大 电 路4 X 4 按 键 矩 阵 电 路扬 声 器图 2-1 系统结构图 图 2-2 电路原理图 2.2 系统板硬件连线 系统板硬件连线如图 2-2 所示,发生模块,键盘模块连接如下: 1.把 “单片机系统 ”区域中的 P1.0 端口用导线连接到 “音频放大模块 ”区域中的 SPK IN端口上; 2.把 “单片机系统 “区域中的 P3.0 P3.7 端口用 8
7、芯排线连接到 “4X4行列式键盘 ”区域中的 C1 C4 R1 R4 端口上。 单片机系统开发与应用工程实习 报告 3 2.3 元件简介 2.3.1 AT89C52 简介 功能特性: AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统 可编程 Flash,使得 AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案
8、。 AT89S52 具有以下标准功能: 8k 字节 Flash, 256 字节 RAM, 32 位 I/O 口线,看门狗定时器, 2 个数据指针,三个 16 位 定时器 /计数器, 一个 6 向量 2 级中断结构,全双工串行口, 片内晶振及时钟电路。另外, AT89S52 可降至 0Hz 静态逻 辑操作,支持 2 种软件可选择节电模式。空闲模式下, CPU 停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。掉电保护方式下, RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 8 位微控制器 8K 字节在系统可编程 Flash AT89S52。 主要
9、性能:与 MCS-51 单片机产品兼容、 8K 字节在系统可编程 Flash 存储器、 1000次擦写周期、全静态操作: 0Hz 33Hz 、 三级加密程序存储器 、 32 个可编程 I/O 口线 、三个 16 位定时器 /计数器八个中断源、全双工 UART 串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。 图 2-3 管脚图 单片机系统开发与应用工程实习 报告 4 2.3.2 LM386 简介 LM386 是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。 图 2-4 LM
10、386 内部电路原理图 LM386 内部电路原理图如图 2-4 所示。与通用型集成 运放相类似,它是一个三级放大电路。第一级为差分放大电路, T1 和 T3、 T2 和 T4 分别构成复合管,作为差分放大电路的放大管; T5 和 T6 组成镜像电流源作为 T1 和 T2 的有源负载; T3 和 T4 信号从管的基极输入,从 T2 管的集电极输出,为双端输入单端输出差分电路。使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益。第二级为共射放大电路, T7 为放大管,恒流源作有源负载,以增大放大倍数。第三级中的 T8 和 T9 管复合成 PNP 型管,与 NP
11、N 型管 T10 构成准互补输出级。二极管 D1 和 D2 为输出级提 供合适的偏置电压,可以消除交越失真。引脚 2 为反相输入端,引脚 3 为同相输入端。电路由单电源供电,故为 OTL 电路。输出端(引脚 5)应外接输出电容后再接负载。电阻 R7 从输出端连接到 T2 的发射极,形成反馈通路,并与 R5和 R6 构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。 图 2-5 LM386 的外形和引脚的排列 LM386 的外形和引脚的排列如图 2-5 所示。引脚 2 为反相输入端, 3 为同相输入端;引脚 5 为输出端;引脚 6 和 4 分别为电源和地;引脚 1 和 8
12、 为电压增益设定端;使用时在引脚 7 和地之间 接旁路电容,通常取 10F。 单片机系统开发与应用工程实习 报告 5 查 LM386 的电源电压 4-12V 或 5-18V(LM386N-4);静态消耗电流为 4mA;电压增益为 20-200dB;在 1、 8 脚开路时,带宽为 300KHz;输入阻抗为 50K;音频功率 0.5W。 尽管 LM386 的应用非常简单,但稍不注意,特别是器件上电、断电瞬间,甚至工作稳定后,一些操作(如插拔音频插头、旋音量调节钮)都会带来的瞬态冲击,在输出喇叭上会产生非常讨厌的噪声。 2.4 音频功放电路 该设计使用国家半导体公司的低压音频功率放大器 LM386
13、来实现音频功放电路。其电 路以及各参数如下图 图 2-6 LM386 电路图及各参数 图 2-7 LM386 应用图 3 系统软件设计及说明 本软件设计关键是要实现一种由单片机控制的简单音乐发生器,它由 16 个音节组成的的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。 单片机系统开发与应用工程实习 报告 6 3.1 行列 式键盘识别 为了降低成本采用非编码键盘。非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。 键盘接口必须具有去抖动、防串键、按键识别和键码产生 4 个基本功能。 ( 1
14、) 去抖动 :每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为 520mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。 ( 2)防串键:防串键是为了解决多个键同 时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和 N 键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。N 键轮回,是当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。 ( 3)被按键识别:如何识别被按键是接口
15、解决的主要问题,一般可通过软硬结合 的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法 在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入 /输出端口。 ( 4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。 3.2 音乐发生 3.2.1 音乐相关知识 乐音听起来有的高,有的低,这就叫音高,音高是由发音物体振动频率的高低决定的,频率高声音就高,频率低声音
16、就低,不同音商的乐音是用 C、 D、 E、 F、 G、 A、B 表示的,这 7 个字母就是乐音的音名,它们一般依次唱成 DO、 RE、 MI、 FA、 SO、LA、 SI,这是唱曲时乐音的发音,所以叫唱名。 音持续时间的长短即时值,一般用拍数表示,休止符表示暂停发音。 一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同频率的组合,加以与拍数对应的延时,构成音乐。 单片机系统开发与应用工程实习 报告 7 3.2.2 如何用单片机实现音乐的频率 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,
17、当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时 /计数器 T0 来产生这样方波频率 信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。利用定时器计时半周期时间,每当计时终止后就将 P1.0 反相,然后重复计时再反相。就可在 P1.0 引脚上得到此频率的脉冲。 我们要为音符建立一个表格,单片机通过查表的方式来获得相应的数据。根据所建表我们可以给 4*4 键盘每个按键赋予音阶对应的频率 。单片机 12MHZ 晶振,高中低音符与计数 T0 相关的计数值如表 3-1 所示 表 3-1 频率表 音符 频率( HZ) 计数值( T 值) 音符 频率( HZ) 计数值( T 值)
18、 低 1DO 262 63628 #4FA# 740 64860 #1DO# 277 63737 中 5SO 784 64898 低 2RE 294 63835 #5SO# 831 94934 #2RE# 311 63928 中 6LA 880 64968 低 3MI 330 64021 #6LA# 932 64994 低 4FA 349 64103 中 7SI 968 65030 #4FA# 370 64185 低 1DO 1046 65058 低 SO 392 64260 #1DO# 1109 65085 #5SO# 415 64331 高 2RE 1175 65110 低 6LA 440
19、 64400 #2RE# 1245 65134 #6LA# 466 64463 高 3MI 1318 65157 低 7SI 494 64524 高 4FA 1397 65178 中 1DO 523 64580 #4FA# 1490 65198 #1DO# 554 64633 高 5SO 1568 65217 中 2RE 587 64633 #5SO# 1661 65235 #2RE# 622 64884 高 6LA 1760 65252 中 3MI 659 64732 #6LA# 1865 65268 中 4FA 698 64820 高 7SI 1967 65283 表 3-2 曲调 曲调值 DELAY 曲调值 DELAY 调 4/4 125ms 调 4/4 62ms 调 3/4 187ms 调 3/4 94ms 调 2/4 250ms 调 2/4 125ms 对于不同的曲调我们也可以用单片机的另外一个定时 /计数器来完成。在这个程序中用到了两个定时 /计数器来完成的。其中 T0 用来产生音符频率, T1 用来产生音拍。