1、青岛理工大学 毕 业 设 计 题 目:基于单片机的电子琴系统设计 院 系名称: 机电工程系 专 业班级: 机械设计制造及其自动化 毕业设计任务书 专 业 机械设计制造及其自动化 班级 姓名 下发日期 2013-03-01 题 目 基于单片机的电子琴系统设计 专 题 单片机系统设计 主 要 内 容 及 要 求 内容: 使 用 51 系列单片机作为核心控制器完成简单电子琴的制作。合理分析需求,完成硬件及软 件设计,通过此次制作掌握单片机的使用和编程技能,掌握单片机系统的设计方法。 要 求: ( 1) 、用键盘做出电子琴按键,每键代表一个音符; ( 2) 、各音符按一定顺序排列,符合电子琴的按键排列
2、顺序; ( 3) 、可以弹奏出简单的乐曲; ( 4) 、附加功能如自动演奏简单节奏、乐曲。 主 要 技 术 参 数 技术要求: ( 1) 、使用 MSC51 系列单片机完成系统设计; ( 2) 、使用 Proteus 设计系统电路图; ( 3) 、使用矩阵键盘作为输入,每键代表一个音符。 进 度 及 完 成 日 期 2 0 1 3 年 4 月 0 8 日 2 0 1 3 年 4 月 2 5 日: 搜 索 论 文 资 料 及 查 阅 参 考 文 献, 合 理 分 析 需 求, 学 习 单 片 机 设 计 技 术。 2 0 1 3 年 4 月 2 6 日 2 0 1 3 年 5 月 1 1 日:
3、开 始 系 统 设 计, 逐 步 解 决 遇 到 的 问 题, 形 成 初 步 的 论 文 框 架, 学 习 设 计 软 件 的 使 用。 2 0 1 3 年 5 月 1 2 日 2 0 1 3 年 5 月 2 3 日: 做 出 系 统 设 计 方 案, 形 成 毕 业 设 计 论 文 的 初 稿, 毕 业 设 计 中 期 检 查。 2 0 1 3 年 5 月 2 1 日 2 0 1 3 年 6 月 1 5 日: 根 据 老 师 的 意 见 对 论 文 初 稿 进 行 整 改, 并 继 续 完 善 系 统 设 计。 2013 年 6 月 16 日2013 年 6 月 22 日:对论文进行细节修
4、改,最终定稿并打印,等待答辩。 系主任签 字 日期 教研室主任签字 日期 指导教师签字 日期 指 导 教 师 评 语 指导教师: 年 月 日 青岛理工大学毕业设计评阅意见表 设计题目 评 分评价 项目 评价标准( A 级) 满分 A B C D E 10 9 8 7 6文献资料 利用 能力 能独立地利用多种方式查阅中外文 献;能正确翻译外文资料;能正确 有效地利用各种规范、设计手册等。 10 1920 1718 1516 1314 12 综合 运用 能力 研究方案设计合理;设计方法科学; 技术线路先进可行;理论分析和计 算正确;动手能力强;能独立完成 设计;能综合运用所学知识发现和 解决实际问
5、题;研究结果客观真实。 20 37-40 32-36 28-31 25-27 24设计 质量 设计结构严谨;逻辑性强;语言文 字表准确流畅;格式、图、表规范; 有一定的学术水平或实际价值 40 15 13-14 11-12 10 9创新 能力 有较强的创新意识;所做工作有较 大突破;设计有独到见解 15 15 13-14 11-12 10 9工作 量 工作量饱满;圆满完成了任务书所 规定的各项任务。 15 总分 是否同意将该设计提交答辩:是( ) 否( ) 具体评阅及修改意见: 评阅人: 年 月 日 注:1.请按照 A 级标准,评出设计各项目的具体得分,并填写在相应项目的评分栏中; 2.计算出
6、总分。若总分60 分,“设计质量”24 分,建议不能提交论文评阅乃至答辩。 该 设计须限期修改合格后重新申请答辩。 3.评阅意见栏不够可另附页。 答 辩 委 员 会 评 语 周 记 说明书 (或论文) 图 纸 答 辩 总 评 (5%) (65%) (30%) 百分 制 等级制 答辩 委员 会主 席签 字 日 期评 定 成 绩 摘 要 随 着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢 音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文 设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如音色 选择、声音强弱控制、节拍器、自动放音功能等等也很好
7、奇 电 子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音 乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性, 它 已经溶入现代人们的生活中,成为不可替代的一部分。 本 文的主要内容是用 AT89C51 单片机为核心控制元件,设计一个电子琴。以单 片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块 上设有 16 个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功 能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。 关键词:AT89C51 单片机;音色;节拍器;自动放音 ABSTRACT W ith the develop
8、ment and progress of society, music has become an important part of life, it was said that people do not like the music to the evil. We will find time to enjoy the world music, as the baptism of the spirit. This thesis developed a simple microcontroller-based electronic key board E lectronic organ i
9、s a modern electronic music technology and the product is a new type of keyboard instruments. It played an important role in modern music. SCM has powerful control functions and flexible programming characteristics. It has converged with modem peoples lives, become an irreplaceable part. T he main c
10、ontent is AT89C51 control of the core components, design of a electronic organ. SCM as a host to the core, with the keyboard, speaker and other core modules. In the main control module has 16 keys and a speaker. The system is steady, its simple hardware circuits, software functions, reliability of c
11、ontrol system and high cost performance is its advantages. It also has certain practical and reference value. Key words: keyboard; speaker; electronic organ 目 录 第 1 章 绪 论 3 第 2 章 总体方案 3 2.1 系 统 设 计 要 求 3 2.2 电 子 琴 系 统 的 组 成 3 2.3 系 统 框 图 3 第 3 章 硬件简介 3 3.1 A T 8 9 C 5 1 3 3.1 . 1 A T 8 9 C 5 1 简 介 3
12、 3.1 . 2 主 要 的 功 能 特 性 3 3.1 . 3 管 脚 功 能 3 3.1 . 4 芯 片 擦 除 3 3.2 矩 阵 式 键 盘 的 识 别 和 显 示 3 3.2 . 1 矩 阵 式 键 盘 的 结 构 与 工 作 原 理 3 3.2 . 2 矩 阵 式 键 盘 的 按 键 识 别 方 法 3 3.2 . 3 键 盘 接 口 必 须 具 有 的 4 个 基 本 功 能 3 3.3 L E D 数 码 管 3 3.3 . 1 数 码 管 的 分 类 3 3.3 . 2 数 码 管 的 驱 动 方 式 3 3.4 硬 件 设 计 图 3 第 4 章 软件设计 3 4.1 整
13、体 程 序 处 理 流 程 图 3 4.2 I / O 并 行 口 直 接 驱 动 L E D 显 示 3 4.3 音 乐 播 放 设 计 3 4.4 放 歌 子 程 序 流 程 图 3 第 5 章 调试 3 5.1 P r o t e u s 简 介 3 5.2 k e i l 简 介 3 5.3 利 用 k e i l 与 P r o t e u s 进 行 的 调 试 3 第 6 章 结论 3 致 谢 3 参考资料 3 附录 3 附录 3 附录 3 第 1 章 绪 论 随 着大规模集成电路的出现和发展,芯片生产厂家把中央处理器 CPU,随机 存取 内存 RAM,只读存储器 ROM,定时器
14、/ 计数器以及 I/O 接 U 电路等主要计算机 部件,集成在一块集成电路芯片(硅片)上,形成芯片级计算机,称为单片微 型计算机,直译为单片机。 单 片机虽只是一个芯片,但从组成和功能上看,它已具有了微机系统的含义, 又 称微型处理部件 MCU (Micro Controller Unit),单片机商品名称为微控制器单元。 虽 然单片机出现的历史并不长,但发展十分迅猛,在集成度、功能、速度、 可靠 性、应用领域等全方位向更高水平发展。目前单片机已用于工业控制、机电 一 体化设备、仪器仪表、信号处理、现代兵器、交通能源、商用设备、医疗设备 及家用电器等各个领域,随着单片机性能的不断提高,它的应用
15、将会更加广泛。 单片机技术发展非常快,所以目前的产品都致力于在功能全面、技术先进、操 作 简便、安全可靠、价格合理等方面进行仔细研究,精心设计;及时掌握最新 的单 片机技术,在条件允许的情况下,尽可能地利用最新的单片机技术来研制 其应用 系统,再利用单片机体积小、价格低、功能强等特点,以保证所设计的 产品在未 来的一段时间内仍具生命力。在生活和生产的各个领域中,凡是有自 动控制要求 的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到 地下,凡是能 想象到的地方几乎都有使用单片机的需求。现在,尽管单片机的 应用已经很普遍 了,但仍有许多可以用单片机控制而尚未实现的项目,因此, 单片机的应
16、用大有 可以想象和拓展的空间。 单 片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效 率, 减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证 安 全等。 但 是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益 上,更 重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计 思想 和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在 已 能使用单片机通过软件(编程序)方法实现了。这种以软件取代硬件并能提高 系统性能的控制系统“软化”技术,称之为微控制技术。微控制技术是一种全 新 的概念,是对传统控制技术的一次革命。随单片机应用
17、的推广普及,微控制 技术 必将不断发展、日益完善和更加充实。 简 易电子琴系统就是以单片机为主要元器件设计的一个简易电子琴,这只 是单片 机应用的一个点,由点及面,希望可以更好的了解和应用单片机技术。 之 所以以单片机电子琴为选题,目的在于从日常生活能接触到的细微处着 手,通 过理论与实践的结合,更明确自己的所学所用,也在实践中发现理论的不 足, 对目前日益广泛应用的单片机有了更加理性化和感性化的认识,使理论和实践 相得益彰。 通 过单片机电子琴这个选题,更深层次的了解了单片机技术,以前只是有理 论, 实践的机会不是很多,在作单片机电子琴这个选题的过程中,更加熟练的掌 握 了一些单片机芯片的应
18、用,也解决了很多以前理论和实践脱节的问题,可谓对 单片机的认识有了一个小的飞跃。 第 2 章 总体方案 2.1 系统设计要求 本 系统分为两个部分,一个是音乐播放,另一个就是电子琴弹奏。 关 于声音的处理,使用单片机 C 语言,利用定时器来控制频率,而每个音符的符 号只是存在自定义的表中。具体要求如下: 1. 要求达到电子琴的基本功能,可以用弹奏出简单的乐曲。 2. 用键盘做出电子琴的按键,每键代表一个音符。 3. 各音符按一定的顺序排列,必须符合电子琴的按键排列顺序。 4. 固定音乐播放有按键控制:“播放” 、 “弹奏/停止” 。 5. 弹奏电子琴时能播放出准确的声音,不弹奏时可以播放内置音
19、乐。 2.2 电子琴系统的组成 单 片机因体积小、功能强、价格低廉而得到广泛应用。AT89C51 单片机设计微型 电子琴的方法,仅需 AT89C51 最小系统,扩展一组矩阵键盘,再接一组发光二 极管用来指示电子琴的工作状态。 本 系统分为两个部分,一个是音乐另一个就是电子琴。 音 乐播放部分:乐音实际上是有固定周期的信号。本文介绍用 AT89C51 的两个定 时器(如 T0,T1)控制,在 P3. 7 脚上输出方波周期信号,产生乐音,通过矩阵 键盘按键产生不同的音符,由此操作人员可以随心所欲的弹奏自己所喜爱的乐 曲,当不想弹奏时通过按放歌键可以演奏事先存放在单片机中的几首动听的曲 子供消遣。当
20、歌曲演奏完时,通过按复位键便可回到初始状态,这样就做出了 一台微型电子琴。 由 于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这 样我 们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于 单 片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器 T0 来产 生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确 即 可。乐曲中,每一音符对应着确定的频率,我们将每一音符的时间常数和其 相应 的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由 查表程 序依次取出,产生音符并控制节奏,就可以实现演奏效果。 电 子琴弹奏部分:实际上
21、就是把每个按键所对应的值经过处理后发给单片 机,再 在单片机内把数字当作指针指向所对应的音符。 2.3 系统框图 该 系统通过电子琴按键随意键入所要表达的音符,作为电平送给主体电路, 中央 处理器通过识别,解码输出音符,在扬声器中发出有效的声音。通过这样可 以 不断的弹奏音乐。嵌入式电路,按键电路,LED 显示电路和两个功能键组成, 通过功能键可以选择播放音乐。其主要模块由五个部分组成,具体关系如 图 2-1 所示: 图 2-1 带存储的电子琴框图 上 图即为此次设计中的电子琴的硬件结构图,我们运用单片机的最小系统,用 P0 口的高四位和 P0 口的低四位作 44 矩阵式按键的接口,用 P2
22、口作数码管的 接口,用 P3. 7 作信号输出口。 第 3 章 硬件简介 3.1 AT89C51 3.1.1A T89C51 简介 A T89C51 是一种带 4K 字节闪存可编程可擦除只读存储器(FPER0MF1ash Programmab1e and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微 处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪烁可编程可擦除只读存 储器的单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件釆用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和 输出管脚相兼容
23、。由于将多功能 8 位 CPU 和闪存存储器组合在单个芯片中, ATMEL 的 AT89C51 是一种高效微控控制器,AT89C2051 是它的一种精简版本。 AT89C 单片机为很多嵌入式控制系统提供一种灵活性高且价廉的方案。外形及 引脚排列如 图 3-1 所示。 图 3-1 AT89C51 的引脚排列 3.1.2主 要的功能特性 ( 1)与 MCS-51 兼容; ( 2)4K 字节可编程闪存存储器; ( 3)寿命:1000 写/擦循环; ( 4)数据保留时间:10 年; ( 5)全静态工作:0Hz-24MHz; ( 6)三级程序存储器锁定; ( 7)1288 位内部 RAM; ( 8)32
24、 可编程 I/O 线; ( 9)两个 16 位定时器/计数器; ( 10)5 个中断源; ( 11)可编程串行通道; ( 12)低功耗的闲置和掉电模式; ( 13)片内振荡器和时钟电路。 3.1.3管 脚功能 V CC:供电电压。 G ND:接地。 P 0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器, 它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口, 当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P 1 口:
25、 P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收 输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P 2 口: P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写 1 时,其管脚被内部上拉电阻拉高,且作为输 入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部 上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外
26、部数据存储器进行存 取时,P2 口输出地址的高八位。在给出地址“1” 时,它利用内部上拉优势, 当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P 3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门 电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输 入, 由于外部下拉为低电平,P3 口将输出电流( ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口如下所示: P 3 口管脚备选功能: P 3.0 RX
27、D (串行输入口) P 3. 1 TXD (串行输出口) P 3.2 /INTO (外部中断 0) P 3.3 /INT1 (外部中断 1) P 3.4 T0 (记时器 0 外部输入) P 3.5 T1 (记时器 1 外部输入) P 3.6 /WR (外部数据存储器写选通) P 3.7 /RD (外部数据存储器读选通) P 3 口同时为闪存编程和编程校验接收一些控制信号。 R ST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时 间。 A LE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地 位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲
28、。在平时,ALE 端以 不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对 外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。 此时,ALE 只有在执行 MOVX, M0VC 指令是 ALE 才起作用。另外,该引脚被 略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 / PSEN:外部程序存储器的选通信号。在由外部程序存储器取指令期间,每个机 器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信 号将不出现。 / EA/V
29、PP:当/EA 保持低电平时,则在此期间外部程序存储器 (OOOOH-FFFFH), 不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当 /EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也 用于施加 12V 编程电源(VPP)。 X TAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 X TAL2:来自反向振荡器的输出。 振 荡器特性: X TAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片 内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件, XTAL2 应不接。其余输入至内部时钟信
30、号要通过一个二分频触发器,因此对外 部时钟信号的脉宽无任何要求,必须保证脉冲的高低电平要求的宽度。 3.1.4芯 片擦除 整 个 PER0M 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电平 10ms 来完成。在芯片擦除操作中,代码阵列全被写“1” 且在任何非空存储字节被重复编程以前,该操作必须被执行。 此 外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种 软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM 定时器,计数 器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振 荡器,禁止所用其他芯片功能,
31、直到下一个硬件复位为止。 3.2 矩阵式键盘的识别和显示 3.2.1矩 阵式键盘的结构与工作原理 在 键盘中按键数量较多时,为了减少 I/O 口的占用,通常将按键排列成矩阵 形式。 在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按 键加以连接。这样,一个端口(如 P1 口)就可以构成 44=16 个按键,比之 直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加 一条线就可以构成 20 键的键盘,而直接用端口线则只能多出一键(9 键) 。由 此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。 矩 阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些
32、,列线通过电阻 接正电源,并将行线所接的单片机的 I/O 口作为输出端,而列线所接的 I/O 口 则作为输入。这样,到按键没有按下时,所有的输出端都是高电平,代表无键 按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过 读入输入线的状态就可得知是否有键按下了。具体的识别及编程方法如下所述。 3.2.2矩 阵式键盘的按键识别方法 确 定矩阵式键盘上何键被按下介绍一种“行扫描法” 。 行 扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,介绍 过程如下。 ( 1)判断键盘中有无键按下将全部行线置低电平,然后检测列线的状态。只要有 一列的电平为低,则表示键盘中有键被按
33、下,而且闭合的键位于低电平线与 4 根行线相交叉的 4 个按键之中。若所有列线均为高电平,则键盘中无键按下。 ( 2)判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。 其方法是依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电 平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若 某列 为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。 3.2.3键 盘接口必须具有的 4 个基本功能 ( 1) 去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时 间与键的质量相关,一般为 520mm。所谓抖动是指在识别被按键是必须避开 抖动状态
34、,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问 题可通过软件延时或硬件电路解决。 ( 2) 防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新 的按键按下时产生的问题。常用的方法有双键锁定和 N 键轮回两种方法。双键 锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并 产生相应的键码。N 键轮回,是当检测到有多个键被按下时,能根据发现它们 的顺序依次产生相应键的键码。 ( 3) 被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结 合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想 是,由程序对键盘逐行扫描,通过检测到
35、的列输出状态来确定闭合键,为此, 需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基 本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双 向输 入/输出端口。 ( 4) 键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存 区中建立一个键盘编码表,通过查表获得被按键的键码。 用 AT89C51 的并行口 P0 接 44 矩阵键盘,以 P0. 0P0. 3 作输入线,以 P0. 4 一 P0. 7 作输出线;在数码管上显示每个按键的“ 0F”序号。 3.3 LED 数码管 3.3.1数 码管的分类 数 码管按段数分为七段数码管和八段数码管,八段数码
36、管比七段数码管多 一个发 光二极管单元(多一个小数点显示);按能显示多少个“8”可分为 1 位、2 位、 4 位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极 数码 管。共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM) 的数码管。共阳极数码管在应用时应将公共极 COM 接到+5V,当某一字段发光 二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时, 相应字段就不亮。共阴极数码管是指将所有发光二极管的阴极接到一起形成公 共阴极(COM)的数码管。共阴极数码管在应用时应将公共极 COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相
37、应字段就点亮。当某一 字段的阳极为低电平时,相应字段就不亮。如 图 3-2 所示: 图 3-2 7 段数码管 3.3.2数 码管的驱动方式 数 码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们 要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 ( 1) 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个 段码都由一个单片机的 I/O 端口进行驱动,或者使用如 BCD 码二十进制译 码器译码进行驱动。 静 态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O 端口多,如驱动 5 个 数码管静态显示则需要 58 =40 根 I/O 端口来
38、驱动,要知道一个 89S51 单片机 可用的 I/O 端口才 32 个,实际应用时必须增加译码驱动器进行驱动,增加了硬 件电路的复杂性。 ( 2) 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显 示 方式之一,动态驱动是将所有数码管的 8 个显示笔划“a,b, c, d, e, f, g, dp“的同 名端连在一起,另外为每个数码管的公共极 COM 增加位选通控制电路,位选 通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相 同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打
39、开,该位就显 示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每 位数码管的点亮时间为 12ms,由于人的视觉暂留现象及发光二极管的余辉效 应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的 印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是 一样的,能够节省大量的 I/O 端口,而且功耗更低。 3.4 硬件设计图 图 3-3 利用 PROTEUS 仿真设计的硬件电路图 图 中的矩阵键盘,从上到下,从左到右,依次为键盘的 0-15,在数码管上显示时 顺序为 0-9 和
40、 A-F,在按功能键时,图上的两个指示灯会根据功能的不同实现 亮/灭状态的切换。在播放内置音乐时,指示灯在一定程度上能指示出曲目的音 符。 第 4 章 章软件设计 4.1 整体程序处理流程图 图 4-1 整体程序处理流程图 在 电子琴开始工作时,系统默认电子琴处于弹奏状态,歌曲选择功能键的目的是 赋予矩阵键盘第二功能,即对系统内置的歌曲进行选择,在放歌时能且只能 通 过弹奏/停止键来结束放歌,选歌时必须先按下歌曲选择功能键,在通过矩阵 键盘来选择和切换曲目。 4.2 I/O 并行口直接驱动 LED 显示 把 “AT89C51”区域中的 P2.0/A8P2. 7/A15 端口用 8 芯排线连接到
41、一位数码管 的 ah 端口上要求: P 2.0/A8 与 a 相连, P 2. 1/A9 与 b 相连, P 2. 2/A10 与 c 相连 P 2. 7/A15 与 h 相连。 表 4-1 字形码表及对应的音符 1 0x3f 低 5 SO 9 0x7f 中 6 LA 2 0x06 低 6 LA A 0x6f 中 7 SI 3 0x5b 低 7 SI b 0x77 高 1 DO 4 0x4f 中 1 DO C 0x7c 高 2 RE 5 0x66 中 2 RE D 0x39 高 3 M 6 0x6d 中 3 M E 0x5e 高 4 FA 7 0x7d 中 4 FA F 0x79 高 5 SO
42、 8 0x07 中 5 SO 0 0x71 高 6 LA 本 设计中,数码管的显示通过 P 2=DSY_CODEk 这 句语言来查表并输出,实现音符的显示。 4.3 音乐播放设计 一 首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就 可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机 来产生不同的频率非常方便,我们可以利用单片机的定时/计数器 T0 来 产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正 确即可。 若 要产生音频脉冲,只要算出某一音频的周期(1/频率) ,再将此周期除以 2,即 为半周期的时间。利用定时器计时半周期时间,每
43、当计时终止后就将 P3.7 反相, 然后重复计时再反相。就可在 P3. 7 引脚上得到此频率的脉冲。 利 用 AT89C51 的内部定时器使其工作计数器模式(M0DE1)下,改变计数值 TH0 及 TL0 以产生不同频率的方法产生不同音阶,例如,频率为 523Hz,其周期 T= 1/523= 1912s,因此只要令计数器计时 956s/ls=956,每计数 956 次时将 I/O 反相,就可得到中音 DO (523Hz)。 计 数脉冲值与频率的关系式是: N =fi2fr ( 4-1 ) 式 中,N 是计数值;fi 是机器频率(晶体振荡器为 12MHz 时,其频率为 1MHz) ; fr 是想
44、要产生的频率。 其 计数初值 T 的求法如下: T =65536N=65536fi2fr 例 如:设 K=65536,fi =1MHz,求低音 DO (261Hz)、中音 D0 (523Hz)、 高音 DO (1046Hz)的计数值。 T =65536N=65536fi2fr=6553610000002fr =65536500000/fr 低 音 DO 的 T=65536500000/262=63628 中 音 DO 的 T=65536500000/523=64580 高 音 DO 的 T=65536500000/1046=65058 单 片机 12MHz 晶振,高中低音符与计数 T0 相关的
45、计数值如 表 4-2 所示 表 4-2 音符频率表 音 符 频 率 ( HZ) 简 谱 码 ( T 值 ) 音 符 频 率 ( HZ) 简 谱 码 ( T 值 ) 休 止 0 0 中 4 FA 698 64820 低 1 D0 262 63628 中 5 SO 784 64898 低 2 RE 294 63835 中 6 LA 880 64968 低 3 M 330 64021 中 7 SI 988 65030 低 4 FA 349 64103 高 1 D0 1046 65058 低 5 S0 392 64260 高 2 RE 1175 65110 低 6 LA 440 64400 高 3 M
46、 1318 65157 低 7 SI 494 64524 高 4 FA 1397 65178 中 1 D0 523 64580 高 5 S0 1568 65217 中 2 RE 587 64684 高 6 LA 1760 65252 中 3 M 659 64777 高 7 SI 1967 65283 我 们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据 u int code tab = 0 ,63628,63835,64021,64103,64260,64400,64524, 6 4580,64684,64777,64820,64898,64968,65030, 6 5058,
47、65110,65157,65178,65217,65252,65283, 音 乐的音拍,一个节拍为单位(C 调)如 表 4-3 所示: 表 4-3 曲调值表 曲 调 值 DELAY 曲 调 值 DELAY 调 4/4 125ms 调 4/4 62ms 调 3/4 187ms 调 3/4 94ms 调 2/4 250ms 调 2/4 125ms 对 于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。在这个程序 中用到了两个定时/计数器来完成的。其中 T0 用来产生音符频率,T1 用来产生 音拍。 图 4-2 音频播放流程图 4.4 放歌子程序流程图 图 4-3 放歌子程序流程图 该 程
48、序实现的是单首曲目循环播放,无法在程序内部实现歌曲的切换。只能 通过 外部功能键来实现曲目及功能的切换,是该电子琴设计的一个缺憾。相信如 果 有更多的时间来进行调试和设计,这个设计会更加好。 第 5 章 调试 5.1 Proteus 简介 P roteus(海神)的 ISIS 是一款 Labcenter 出品的电路分析实物仿真系统,可仿真各 种电路和 IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单 片机软件仿真系统。 该 软件的特点: ( 1)全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显 的优势。 ( 2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路
49、组成的系统的仿真、 RS-232 动态仿真、C 调试器、SPI 调试器、键盘和 LCD 系统仿真的功能;有各 种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 ( 3)目前支持的单片机类型有:68000 系列、8051 系列、AVR 系列、PIC12 系 列、PIC16 系列、PIC18 系列、Z80 系列、HC11 系列以及各种外围芯片。 ( 4)支持大量的存储器和外围芯片。总之该软件是一款集单片机和 SPICE 分析 于一身的仿真软件,功能极其强大,可仿真 51、AVR 、PIC 。 5.2 keil 简介 单 片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序 要变 为 CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编, 目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机 器 码,用于 MCS-51 单片机的汇编软件有早期的 A51,随着单片机开发技术的 不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机