logo资料库

微机接口——简易电子琴的设计.pdf

第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
资料共21页,剩余部分请下载后查看
目录
引言
摘要
简易电子琴设计的实现
1.微机接口课程设计概述
1.1设计题目及要求
1.2设计目的及意义
1.3开发设计环境
开发设计思路及所涉及的相关理论
2.1开发设计思路
2.2开发所涉及的相关理论
2.2.18253芯片的工作原理
2.2.28255A芯片的工作原理
2.2.3DVCC实验系统简介
3.简易电子琴开发设计方案的确定
简易电子琴开发设计线路连接
程序代码执行流程图
主要功能实现的说明
6.1数据段的定义
6.2发音部分功能的实现
6.3弹奏功能的实现
6.4延时功能的实现
程序代码执行结果与分析及个人感悟
7.1程序代码执行结果与分析
7.2个人感悟
参考文献
附录(程序代码):
简易电子琴设计的实现 姓名:王猛涛 学号:20101616310049 海南大学信息科学技术学院 2012-2013 第一学期 《微机原理与接口技术课程设计》 题 学 姓 专 目: 简易电子琴设计的实现 号: 20101616310049 名: 王 猛 涛 业: 信 息 安 全 指导老师: 李 红 蕾 成 绩:
简易电子琴设计的实现 姓名:王猛涛 学号:20101616310049 目 录 引 言..........................................................................................................................1 摘 要..........................................................................................................................2 简易电子琴设计的实现................................................................................................3 1. 微机接口课程设计概述.................................................................................3 1.1 设计题目及要求.................................................................................3 1.2 设计目的及意义.................................................................................3 1.3 开发设计环境.....................................................................................3 2. 开发设计思路及所涉及的相关理论.............................................................4 2.1 开发设计思路.....................................................................................4 2.2 开发所涉及的相关理论.....................................................................4 3. 简易电子琴开发设计方案的确定...............................................................10 4. 简易电子琴开发设计线路连接...................................................................11 5. 程序代码执行流程图...................................................................................12 6. 主要功能实现的说明...................................................................................13 6.1 数据段的定义...................................................................................13 6.2 发音部分功能的实现.......................................................................13 6.3 弹奏功能的实现...............................................................................14 6.4 延时功能的实现...............................................................................15 7. 程序代码执行结果与分析及个人感悟.......................................................15 7.1 程序代码执行结果与分析...............................................................15 7.2 个人感悟...........................................................................................15 参考文献............................................................................................................16 附录(程序代码):........................................................................................17
简易电子琴设计的实现 姓名:王猛涛 学号:20101616310049 引 言 电子科学技术是人类在生产斗争和科学实验中发展起来的。1883 年美国发 明家爱迪生发现了“热电子”效应,1904 年弗莱明利用这个效应制成了电子二 极管,并证实了电子管具有“阀门”作用,它首先被用于无线电检波。1906 年 美国的德福雷斯在弗莱明的二极管中放进了第三电极——栅极而发明了电子三 极管,从而建树了早期电子技术上最重要的里程碑。半个多世纪以来,电子管在 电子技术中立下了很大功劳;但是电子管毕竟成本高,制造繁,体积大,耗电多, 从 1948 年美国贝尔实验室的几位研究人员发明晶体管以来,在大多数领域中已 逐渐用晶体管来取代电子管。但是,我们不能否定电子管的独特优点,在有些装 置中,不论从稳定性、经济性或功率上考虑,还需要采用电子管。 随着科学技术的发展和人类的进步,电子技术已经成了各种工程技术的核 心,特别是进入信息时代以来,电子技术更是成了基本技术,其具体应用领域涵 盖了通信领域、控制系统、测试系统、计算机等等各行各业。 生活中常使用到许多的电子设备,它给我们生活上的便利与影响。而电子琴 就是一个很明显的例子,这些有时甚至含有内建音乐,有时又可以千变万化,真 让人想动手试试看,因此我对它产生了许多问题与想象。它是如何动作?不同的 音调产生原理又是什么?而若是改变它们的音调,不知道会不会很麻烦,其电路 要重新制作吗?系统会怎么修改? 乐器的发展与科学技术的发展密切相关,现代电子技术的兴起,使一些机械 的装置逐步电动化、电子化。科学技术上的这些变化及发展促进了乐器的发展, 由此出现了许多新的电子乐器,如电子琴、电钢琴等。 本文就是关于用 8253 定时器制作简易电子琴的过程及基本原理。 1
简易电子琴设计的实现 姓名:王猛涛 学号:20101616310049 摘 要 汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并 能直接控制硬件的语言。利用汇编语言能够直接访问与硬件相关的存储器或 I/O 端口,从而最大限度地发挥硬件的功能。 本文主要介绍了利用汇编语言设计一个运行于计算机的简易电子琴,主要包 括两个部分——输入部分与发音输出部分。其中,输入部分:通过 8255 并行接 口芯片和 8 个常用型开关来完成;发音输出部分:CUP 通过对定时器 8253 的 通道 0 进行编程,使其 I/O 寄存器接收一个控制声音频率的 16 位计数值,端口 61H 的最低位控制通道 0 门控的开断,以产生特殊的音响。 具体实现方法:用开关 K1~K8(与 8255A 的 PB0~PB7 连接)模拟琴键, 当开关拨为“1”(高电平)时,相当于有键按下,喇叭(喇叭引脚 SIN 与 8253 芯片的引脚 OUT0 连接,喇叭 J5 引脚与 DV88 实验箱相连)发出声音。拨动不 同的开关则对应不同的音符,每次只能拨一个开关(相当于按下一个键)。连续 拨动开关,喇叭发出音乐。 文章首先介绍了相关接口芯片 8255 和 8253 的内部结构和工作原理,接着讲 述了各部分功能的具体实现方法以及实验程序的调试结果,并对结果进行了分 析。 关键词: 汇编语言 8253 定时器 8255 电子琴设计 2
简易电子琴设计的实现 姓名:王猛涛 学号:20101616310049 简易电子琴设计的实现 1.1.1.1. 微机接口课程设计概述 1.11.11.11.1 设计题目及要求 简易电子琴的设计 设计要求:利用用实验箱上的扬声器与 8 个开关设计一个电子琴。用开关模 拟琴键,当开关拨为“1”时,相当于有键按下,喇叭发出声音。拨动不同的开 关则对应不同的音符,每次只能拨一个开关(相当于按下一个键)。连续拨动开 关,喇叭发出音乐。 可选用芯片:8253 定时/计数器,8255 并行接口,8259 中断控制器,DAC0832 D/A 转换器,ADC0809A/D 转换器。 报告要求:(1)写出设计思路; (2)画出实验线路连接图; (3)写出程序清单(或程序框图)及注释; (4)设计及调试心得。 1.21.21.21.2 设计目的及意义 (1)进一步熟练各种已学过接口芯片的编程方法; (2)掌握各芯片间的相互连接; (3)检验学生在原理与接口综合应用方面分析问题与解决问题的能力; (4)培养学生正确的设计思想,理论联系实际的工作作风,严肃认真、实 事求是的科学态度和勇于探索的创新精神; (5)通过课程设计,使学生在理论分析、结构设计、汇编语言的应用和标 准与规范的运用方面的能力得到训练和提高; (6)巩固、深化和扩展学生的理论知识与初步的专业技能。 1.31.31.31.3 开发设计环境 测试平台:Windows XP Professional Operating System 测试设备:DVCC 工具箱、DV88h 实验系统 开发语言:.ASM 汇编语言 3
简易电子琴设计的实现 姓名:王猛涛 学号:20101616310049 2.2.2.2. 开发设计思路及所涉及的相关理论 2.12.12.12.1 开发设计思路 电子琴的设计实际上就是要设计一个程序,能够通过该程序控制实验箱上扬 声器的发声规律,按下相应的按键(这里相当于拨动相应的开关至状态“1”) 后,喇叭能发出指定频率的声音。实验箱上的扬声器是通过并行接口芯片 8255 和定时芯片 8253 来控制发音的(具体的实验连接线路见下文)。 扬声器是由 8253 通道 0 产生的方波信号和 8255 的 PB1 相与后驱动发声的, 且通道 0 的门信号由 8255 的 PB0 提供,要想让扬声器发声,PB0 和 PB1 必须同 时为高电平,因此,可以通过对 8255 的 PB0 和 PB1 的设置来控制扬声器的开通 和中断,而其发音频率可以通过对 8253 通道 0 的计数初值的设置来控制。 因此,所设计程序的任务就是要通过对按键的判断来设置8255 的PB0 和PB1 输出电平的高低,以及 8253 通道 0 计数初值的设置。计数初值 N=时钟频率/音 阶频率。各音阶的频率如下表 2-1 所示。 表 2-1 各音符的频率表 音符 频率/HZ 计数值 1 250 4002 2 280 3567 3 315 3178 4 353 2834 5 396 2527 6 444 2250 7 499 2005 i 560 1786 2.22.22.22.2 开发所涉及的相关理论 2.2.12.2.12.2.1 8253 2.2.1 825382538253 芯片的工作原理 (1)8253A 内部结构 8253A 定时/计数器具有定时、计数双功能。它具有三个相同且相互独立的 16 位减法计数器,分别称为计数器 0、计数器 1、计数器 2。每个计数器计数频 率为 0~2MHZ;8253A 的内部数据总线缓冲器为双向三态,可直接接在系统数据 总路线上,通过 CPU 写入计数初值,也可由 CPU 读出计数当前值; 其工作方 式通过控制字确定。具体如下图 2-1 所示。 4
简易电子琴设计的实现 姓名:王猛涛 学号:20101616310049 图 2-1 8253 内部结构 (2)计数器内部结构 每个计数器由一个 16 位可预置的减 1 计数器组成,计数初值可保存在 16 位的锁存器中,该锁存器只写不能读。在计数器工作时,初值不受影响,以便进 行重复计数。每一个计数器有一个时钟输入端 CLK 作为计数脉冲源,计数方式 可以是二进制,计数范围 1~10000H,也可以是十进制,计数范围 1~65536。门 控端 GATE 用于控制计数开始和停止。输出 OUT 端当计数器计数值减到零时, 该端输出标志信号。 (3)8253A 端口地址选择 表 2-2 RD WR 1 1 1 1 0 0 0 0 × 1 0 0 0 0 1 1 1 1 × 1 CS 0 0 0 0 0 0 0 0 1 0 8253A 端口地址选择表 A1 0 0 1 1 0 0 1 1 × A2 寄存器选择与操作 0 1 0 1 0 1 0 1 × 写入计数器 0 写入计数器 1 写入计数器 2 写入控制寄存器 读计数器 0 读计数器 1 读计数器 2 无操作(三态) 禁止(三态) 无操作(三态) × × 5
简易电子琴设计的实现 姓名:王猛涛 学号:20101616310049 (4)8253A 功能 8253A 既可作定时器又可作计数器: 计数:计数器装入初值后,当 GATE 为高电平时,可用外部事件作为 CLK 脉冲对计数值进行减 1 计数,每来一个脉冲减 1,当计数值减至 0 时,由 OUT 端输出一个标志信号。 定时:计数器装入初值后,当 GATE 为高电平时,由 CLK 脉冲触发开始自 动计数,当计数到零时,发计数结束定时信号。 除上述典型应用外,8253A 还可作频率发生器、分频器、实时钟、单脉冲发 生器等。 (5)8253A 控制字 图 2-2 8253 方式控制字 (6)8253A 工作方式 I. 方式 0:计数结束产生中断方式 当写入控制字后,OUT 变为低电平,当写入初值后立即开始计数,当计数 结束时,变成高电平。 II. 方式 1:可编程单次脉冲方式 当初值装入后且 GATE 由低变高时,OUT 变为低电平,计数结束变为高电 平。 III. 方式 2:频率发生器方式 当初值装入时,OUT 变为高电平;计数结束,OUT 变为低电平。该方式下 如果计数未结束,但 GATE 为低电平时,立即停止计数,强迫 OUT 变为高电平, 当 GATE 再变为高时,便启动一次新的计数周期。 6
分享到:
收藏