




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Micro computer to achieve flower procedures Abstract With computer technology and microelectronic technology the development of micro computers rather quickly particularly from IBM introduced the IBM PC personal computers micro computer quickly transition from eight to 16 Microcomputer machine China is no exception many units in the affairs management numerical calculation data acquisition and processing industrial automation and other aspects of the choice of 16 aircraft Therefore the majority of computer applications in the engineering and technical personnel 16 of the growing awareness of the need 16 micro computers more widely applied to our real life as a junior this year we also learned this course and in schools under the requirements of this 16 micro computer curriculum design The curriculum is designed around the knowledge acquired by a small independent design process I design are to achieve flower procedures Require the use of modules 8088 8255 8279 draw by the circuit design and realization of the functions of the procedure Flower achieve the main function is key in 8257 with the corresponding seven scale experimental me through the speaker sounds and through the input Qiduan digital scale This was also extended sound recording record by playing pieces release recordings any time playback latest record tracks in the process of a repertoire can be the default according to a key player to achieve the pieces in play pre recorded tracks or Set pieces press any button on the keyboard 8279 can be paused and then one from the Department to suspend the broadcast is running friendly user interface KEY WORDS Flower 8088 8255 8279 Digital control 微型计算机 实现电子琴的程序 摘 要 随着计算机技术与微电子技术的发展 微型计算机的发展相当迅速 特别是从 IBM 公司推出的 IBM PC 个人计算机以来 微型计算机很快的由八位微型机过渡到十六位机 在我国也不例外 很 多单位在事务管理 数值计算 数据采集与处理 工业自动化等方面都选用了十六位机 因此 对 于广大从事微机应用的工程技术人员来说 十六位机的认识愈来愈需要了 十六位微型计算机越来越广泛的应用到我们的现实生活中 作为大三的我们今年也学习了这门 课程 并且在学校的要求下进行了这次十六位微型计算机的课程设计 本次课程设计的内容是围绕 所学的知识自主设计一个小程序 我的设计内容是 实现电子琴的程序 要求利用所学的 8088 8255 8279 等模块画出所设计的电路图以及实现该功能的程序 实现电子琴的主要功能是用 8257 键盘输入对应的七个音阶 通过实验箱的喇叭发出声音 并通过七段数码管显示输入音阶 同时还对此进行了扩展 录音 记录所弹奏曲目 放录音 任意时刻重放最新记录曲目 在程序中 可预设一曲目 按一键实现播放该曲目 在播放录制曲目或预设曲目时 按 8279 键盘上任意键可以 暂停播放 再按一次从暂停处继续播放 程序运行时有友好的用户介面 关键词 电子琴 8255 8088 数码管 电子琴设计 1 目 录 1 电子琴的设计内容 2 2 元件与仪器介绍 3 2 1 8253 的介绍 3 2 1 1 8253 的工作原理 3 2 1 2 8253 初始化编程 5 2 2 对 8255 的认识 6 2 2 1 8255 引脚功能 6 2 3 8088 功能介绍 7 2 4 DAC0832 9 2 4 1 DA 转换 dac0832 的原理与应用 9 3 设计原理 思路及流程图 11 3 1 设计原理 11 3 2 电路连接图 11 3 3 设计思路 12 3 3 1 简单电子琴主程序 12 3 4 流程图 13 致 谢 16 参 考 文 献 17 附录 1 源程序代码 18 附录 2 系统原理图 26 1 电子琴的设计内容 随着计算机技术与微电子技术的发展 微型计算机的发展相当迅速 特别是从 IBM 公 司推出的 IBM PC 个人计算机以来 微型计算机很快的由八位微型机过渡到十六位机 在 我国也不例外 很多单位在事务管理 数值计算 数据采集与处理 工业自动化等方面都 选用了十六位机 因此 对于广大从事微机应用的工程技术人员来说 十六位机的认识愈 来愈需要了 编写一实现电子琴的程序 并实现若干扩展功能 基本功能 用 8257 键盘输入对应的 七个音阶 通过实验箱的喇叭发出声音 并通过七段数码管显示输入音阶 扩展功能 录音 记录所弹奏曲目 放录音 任意时刻重放最新记录曲目 在程序中 可预设一曲目 按一键实现播放该曲目 在播放录制曲目或预设曲目时 按 8279 键盘上任 意键可以暂停播放 再按一次从暂停处继续播放 程序运行时有友好的用户介面 电子琴设计 3 2 元件与仪器介绍 本设计所要用到的元器件有 计时器 8253 使用 8088 芯片的键盘控制器 并行控制器 8255A 实验台 2 1 8253 的介绍 8253是可编程的计数器 定时器 其内部有三个独立的16位计数器 定时器通道 每个计 数器通道均可按6种不同的方式工作 并且都可以按二进制或十进制计数 2 1 1 8253 的工作原理 8253是可编程的计数器 定时器 其CLK0 CLK2是计数器0 2的时钟脉冲输入端 GATE0 GATE2是门控脉冲输入端 OUT0 OUT2是输出端及内部结构见下图 当用8253做外部事件计数器时 在CLK端所加的计数脉冲由外部事件产生 这些脉冲的间 隔可以不相等 如果要用它做定时器 则CLK端应输入精确的时钟脉冲 这时 8253所能实 现的定时时间决定于计数脉冲的频率和计数器的初值 即定时时间 时钟脉冲周期tc 预置 的计数初值n8253的控制逻辑由5个控制信号WR CS A1和A0组成 对应的操作见表1 8253编程时 要对其控制字寄存器写入相应的控制字 控制字寄存器格式如表2所示 其中 SC1 SC0 通道选择位 为00 01 10分别表示选择0 1 2通道 RL1 RL0 读 写操作位 00 表示锁存数据 可随时读取计数器中的计数值 01 表示只读 写 低8位 高8位自动置为0 10表示只读 写高8位 低8位自动置为0 11表示读 写16位数据 先 低8位 后高8位 M2 M1 M0 工作方式选择位 8253 具有3 个独立的16 位减法计数器 6 种不同的工作方式 方式0 又称计数结束产生中断工作方式 当程序将工作方式控制字写入控制字寄存器 时 计数器的输出端OUT 立即变为低电平 在计数初值写入该计数器后 输出仍将保持为低 电平 当门控信号GATE 为高电平时 计数器对输入端CLK的输入脉冲开始作减一计数 当计 数器从初值减为0 时 输出端OUT由低电平变为高电平 该输出信号可作为向CPU 发出的中断 请求信号 方式1 又称可编程单稳态工作方式 功能是在GATE 信号的上升沿作用下 输出端OUT 产生一个负脉冲信号 负脉冲的宽度可由定时器的计数初值和时钟频率编程确定 方式2 又称频率发生器工作方式 当程序将工作方式控制字写入控制字寄存器时 计 数器的输出端OUT立即变为高电平 在写入计数初值后 计数器对输入时钟CLK计数 在计数 电子琴设计 5 过程中OUT 保持不变 直到计数器从初值减为1 时 输出OUT 将变低 再经过一个CLK周期 OUT 恢复为高电平 并按已设定的计数初值重新开始计数 在需要产生某个脉冲信号或将某 一个较高频率的脉冲信号分频为较低频率时 可使用8253 的方式2 方式3 又称方波发生器工作方式 方式3 的工作类似于方式2 不同之处是方式3 的 输出OUT 是方波 方式4 又称软件触发选通工作方式 其功能是在输出OUT 端隔一定时间产生一价目负 脉冲 与方式0 不同的是 输出脉冲的宽度是固定的 但产生负脉冲所相隔时间是可编程的 方式5 又称硬件触发选通工作方式 方式5的工作类似于方式4 不同之处是GATE 信 号的作用 不同 方式5 的计数过程由GATE 的上升沿触发 当计数结束时 OUT 将输出一个CLK周期的 低电平信号 其中方式0的工作过程如下 当程序送一控制字将所选的计数器置于所设定的方式后 该 计数器的输出为低 当计数器初值装入被选中的计数器后 在外部输入的门控高电平的控制 下 则可通过各自的计数脉冲进行递减计数 此时其输出仍为 低 当计数器从初始值减 到全 0 时 便产生一高电平输出 利用此输出信号向CPU发计数完中断 此中断请求一直保 持到程序再次向计数器装入初值为止 BCD 计数方式选择位 1 表示按十进制计数 0表示按二进制计数 2 1 2 8253 初始化编程 编程时 可选择计数器1工作在方式0 在8253的方式0工作方式中 从将计数初值写入计 数器到开始减1计数之间 有一个时钟脉冲的延迟 若计数初值为n 999 那么经过n 1个 即1000个脉冲时计数值减为0 并在OUT1端输出一正跳变 这可以作为中断请求 在中断服务 子程序中CPU可以做其他处理 如送下一个包装箱等 设计数初值为1999 要求一个包装箱 内装工件2000 按十进制计数 先送低8位 再送高8位 控制字为01110001B 初始化程序为 MOV AL 01110001B AL 01110001B MOV DX 0356H OUT DX AL 送方式控制字 MOV AL 99H MOV DX 0352H OUT DX AL 向通道1送计数初值低8位 MOV AL 19H OUT DX AL 向通道1送计数初值高8位 2 2 对 8255 的认识 单片机系统里常用的 8255 芯片是一个典型的可编程通用并行接口芯片 用来扩展单片 机的端口 它具有 3 个 8 位的并行口 有三种工作方式 可作为单片机与各种外部设备连接 的接口电路 下面介绍 8255 的引脚图及引脚功能 2 2 1 8255 引脚功能 123456 A B C D 654321 D C B A Title NumberRevisionSize B Date 16 Oct 2002Sheet of File E ddbDrawn By 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 PA3 PA2 PA1 PA0 RD CS GND A0 A1 PA7 PA6 PA5 PA4 PA0 PA1 PA2 PA3 PB0 PB1 PB2 PA5 PA6 PA7 PA0 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 Vcc PA7 PA6 PB5 PB4 PB3 8255 8255 引脚功能说明 RESET 复位输入线 当该输入端外于高电平时 所有内部寄存器 包括控制寄存器 均被 清除 所有 I O 口均被置成输入方式 PA0 PA7 端口 A 输入输出线 一个 8 位的数据输出锁存器 缓冲器 一个 8 位的数据输入 锁存器 PB0 PB7 端口 B 输入输出线 一个 8 位的 I O 锁存器 一个 8 位的输入输出缓冲器 PC0 PC7 端口 C 输入输出线 一个 8 位的数据输出锁存器 缓冲器 一个 8 位的数据输入 缓冲器 端口 C 可以通过工作方式设定而分成 2 个 4 位的端口 每个 4 位的端口包含一个 4 位的锁存器 分别与端口 A 和端口 B 配合使用 可作为控制信号输出或状态信号输入端 口 电子琴设计 7 CS 片选信号线 当这个输入引脚为低电平时 表示芯片被选中 允许 8255 与 CPU 进行通 讯 RD 读信号线 当这个输入引脚为低电平时 允许 8255 通过数据总线向 CPU 发送数据或状 态信息 即 CPU 从 8255 读取信息或数据 WR 写入信号 当这个输入引脚为低电平时 允许 CPU 将数据或控制字写 8255 D0 D7 三态双向数据总线 8255 与 CPU 数据传送的通道 当 CPU 执行输入输出指令时 通过它实现 8 位数据的读 写操作 控制字和状态信息也通过数据总线传送 2 3 8088 功能介绍 多数引脚采用复用 分时 因为 40 条引脚不够分配 只能使一部分引脚分时复用 一 条引脚当两条引脚使用 8086 管脚图见图 4 2 1 图 4 2 1 同时给出了 8088 的管脚图 图中第 24 31 号管脚具有两种定义 括弧中表示的是最大模式下的管脚定义 首先我们 介绍 8086 在最小模式下的管脚定义 有一部分引脚的功能和 CPU 的工作方式有关 在最 小方式和最大方式下 这些引脚可能有不同的功能 1 数据总线 D0 D15 16 位 8088 仅 8 位 双向传输 可分别使用其低 8 位或高 8 位 该总线与地址总 线 A0 A15共用 CPU 引脚形成复用总线 AD0 AD15 地址 数据分时传送 2 地址总线 A0 A19 20 位 单向 地址由 CPU 产生 用于寻址访问存储器单元或 IO 端口 A0 A15与 D0 D15复 用 A16 A19与状态信号 S3 S6复用 A16 S3 A19 S6 其中 AD15 AD0地址 数据复用信号 标号 2 16 39 双向 三态 在总线周期的 T1状态 地址周期 AD15 AD0上出现 的 是低 16 位的地址信号 A15 A0 在 T3状态 数据周期 AD15 AD0上出 现的是数据信号 D15 D0 作为分时复用管脚 因为既做地址信号 又做数据信号 因此是双向信号 在总线周 期的 T1状态 AD15 AD0输出 CPU 所要访问的存储器或者 I O 端口的地址 而在总线周期的 T3状态 AD15 AD0上出现的是 CPU 和存储器或 I O 端口交换的数据 T2状态对于读周期和 写周期来说 AD15 AD0上的状态是不同的 在是读周期 AD15 AD0要从 CPU 驱动 地址周 期 切换为存储器或 I O 端口驱动 数据周期 AD15 AD0管脚需要在一个状态周期内维 持高阻状态 以便不同总线驱动源的切换 如果是写周期 地址和数据信号都是由 CPU 驱 动 所以 CPU 从 T2开始便输出数据 T2 T3都是数据周期 A19 S6 A16 S3 Address Status 地址 状态复用信号 标号 35 38 输出 在 总线周期的 T1状态 地址周期 A19 S6 A16 S3上出现的是地址的高 4 位 在 T2 T4状态 A19 S6 A16 S3上输出状态信息 3 状态信号 S3 S6 S6 指示 8086 当前是否与总线相连 S6 0 表示 8086 连在总线上 S5 表示中断允许标志状态 S5 1 表示中断允许标志 IF 1 对可屏蔽中断请求起作 用 S5 0 表示 IF 0 禁止可屏蔽中断 S4和 S3用来指出当前使用的段寄存器 S4 S3代码组合对应的含义如表 4 2 1 所示 S4S3 当前正在使用的段寄存器 00ES 01SS 10 CS 或未使用任何段寄存器 11DS 表 4 2 1 地址和状态信号也都是由 CPU 驱动 所以 T1地址周期之后 紧接着的 T2 T4是状态 周期 4 控制信号 与 CPU 工作模式无关的信号有 BHE NMI INTR RD CLK RESET READY TEST MN MX GND 电子琴设计 9 2 4 DAC0832 DAC0832 是采样频率为八位的 D A 转换器件 下面介绍一下该器件的中文资料以及电路 原理方面的知识 DAC0832 内部结构资料 芯片内有两级输入寄存器 使 DAC0832 具备双缓冲 单缓冲和 直通三种输入方式 以便适于各种电路的需要 如要求多路 D A 异步输入 同步转换等 D A 转换结果采用电流形式输出 要是需要相应的模拟信号 可通过一个高输入阻抗的线 性运算放大器实现这个供功能 运放的反馈电阻可通过 RFB 端引用片内固有电阻 海可以 外接 该片逻辑输入满足 TTL 电压电平范围 可直接与 TTL 电路或微机电路相接 下面是芯 片电路原理图 2 4 1 DA 转换 dac0832 的原理与应用 DAC0832 是 8 位分辨率 D A 转换集成芯片 与处理器完全兼容 其价格低廉 接口简 单 转换控制容易等优点 在单片机应用系统中得到了广泛的应用 1 DAC0832 的引脚及功能 DI0 DI7 数据输入线 TLL 电平 ILE 数据锁存允许控制信号输入线 高电平有效 CS 片选信号输入线 低电平有效 WR1 为输入寄存器的写选通信号 XFER 数据传送控制信号输入线 低电平有效 WR2 为 DAC 寄存器写选通输入线 Iout1 电流输出线 当输入全为 1 时 Iout1 最大 Iout2 电流输出线 其值与 Iout1 之和为一常数 Rfb 反馈信号输入线 芯片内部有反馈电阻 Vcc 电源输入线 5v 15v Vref 基准电压输入线 10v 10v AGND 模拟地 摸拟信号和基准电源的参考地 DGND 数字地 两种地线在基准电源处共地比较好 电子琴设计 11 3 设计原理 思路及流程图 3 1 设计原理 1 对于一个特定的 转换接口电路 CPU 执行一条输出指令将数据送入 即 可在其输出端得到一定的电压输出 给 转换器输入按正弦规律变化的数据 在其输 出端即可产生正弦波 对于音乐 每个音阶都有确定的频率 各音阶标称频率值 2 产生一个正弦波的数据可取32个 小于亦可 不同频率的区别 可通过调节向 转换器输出数据的时间间隔 例如 发 频率为261 1HZ 周期为1 261 1 3 83ms 输出数据的时间间隔为3 83ms 32 0 12ms 定时时间可以由8253配合8255来实现 按下某 键后发音时间的长短可以由发出的正弦波的个数多少来控制 本程序中设置默认长度为60 个正弦波 3 2 电路连接图 电路连接图如下 1 8253 和 8255 连接如下 2 8279键盘在一个扩充板上 用一根20芯扁平电缆与实验台上扩展插头J7相连 3 3 设计思路 在本次课程设计中 根据复杂程序设计思想 模块化程序设计 分析和确定程序总 体设计目标 电子琴基本功能及部分扩展功能后 将总体目标划分为若干模块 程序设计的思路按以下顺序进行 a 分析与确定程序总体设计目标 b 将总体目标划分为若干模块 c 定义每个模块的具体任务 明确它与其他模块间的通信方式 d 编写源程序 进行调试 3 3 1 简单电子琴主程序 结合实验指导书的两程序 将其分为5个子程序 实现简单的播放和显示音阶的功能 1 录音子程序 实现记录弹奏曲目并播放的功能 首先由9触发 将输入的音阶存入缓存区song中 输 入的同时可以发声和显示 当再次按9时录制完成 2 放音子程序 本子程序实现放音功能 首先从8279键盘读出键码 判断 如果键码不是1 8即回到 程序开始 如果是 即求出相应的时间常数的序号 取60次32个正弦波数据 播放32个数 据 组成一个正弦波 播放60次后 从PORT1中取出值到AL 和1相与 判断是否有按键 如果有就进入死循环 直到下次按键为止 3 放歌子程序 调用放音子程序 4 暂停子程序 在乐曲播放过程中 每调用一次MUSIC 就从PORT1中取出AL 检测AL个数 即每次发 音后按键盘的次数 当检测到AL为1时 即按了一次任意就使程序进入一个死循环 不发音 到此实现了暂停 然后再次按动任意键时 AL就为2 不为1 所以程序跳出死循环 继续 从断开处调用乐曲 继续播放 5 源程序整体 程序开始 显示提示信息 对缓存区 8279初始化 接着调用发音子程序 键盘子程 序 在把AL送缓存区 实现发音和显示 接着对9键 0键 f键 r键进行逐个判断 当9按 下时 调用录音子程序 当按下0时 播放录制的曲目 当按下f键时 播放程序中预设的 曲目 当检测到r时 退出到DOS状态 当每一个都检测不到时 退回到调用发音子程序 电子琴设计 13 继续发音显示 从而实现有扩展功能的电子琴 3 4 流程图 以下用主程序与子程序配合流程图其进行说明 1 主程序流程图 开始 显示缓存区 初始 化 8279 初始化 调用发音子程序 调用键盘子程序 键盘码送缓存区 是否 9 键 是否 0 键 是否 S 键 是否 R 键 录音子程序 放录音子程序 放歌子程序 返回 DOS Y N N N Y Y Y N 陕西科技大学镐京学院毕业论文 设计说明书 14 2 发音子程序流程图 3 键盘显示子程序流程图 4 显示子程序流程图 电子琴设计 15 5 录音子程序流程图 6 放录音子程序流程图 入口 调用键盘子程序 键盘码存缓存区 调用发音子程序 调用显示子程序 把键盘码输入 song inc al 是否 9 键 返回 显示提示信息 NY 入口 显示提示信息 键盘码存缓存区 调用显示子程序 调用发音子程序 al 是否 9 返回 Y N 陕西科技大学镐京学院毕业论文 设计说明书 16 致 谢 本课题在选题及研究过程中得到刘红科老师的悉心指导 刘老师多次询问课程进程 并为我指点迷津 帮助我开拓研究思路 精心点拨 热忱鼓励 刘老师一丝不苟的作风 严谨求实的态度 踏踏实实的精神 不仅授我以文 而且教我做人 虽历时三载 却给 以终生受益无穷之道 对刘老师的感激之情是无法用言语表达的 同时要感谢小组成员之间的互相帮助 俗话说的好 众人拾柴火焰高 团队精神自 古以来都是我们取得成功必不可少的步骤 三年的社会实践 三年的论文报告 使我们 深深的体会到了团结就是力量 团结就有成果 我们的成功建立在互帮互助的基础之上 我们的报告在不知不觉中圆满完成了 为我们小组成员之间的成果骄傲 在课程设计即将完成之际 我的心情无法平静 从开始进入课题到报告的顺利完成 有多少可敬的师长 同学 朋友给了我无言的帮助 在这里请接受我诚挚的谢意 最后 我还要感谢培养我长大含辛茹苦的父母 谢谢你们 电子琴设计 17 参 考 文 献 1 钱晓捷 陈涛 微型计算机原理及接口技术 机械工业出版社 1999 1 2 杨素行 微型计算机系统原理及应用 清华大学出版社1995 10 3 钱晓捷 汇编语言程序设计 电子工业出版社 2000 9 4 周明德 微型计算机IBM PC XT系统原理及应用 清华大学出版社 1991 7 陕西科技大学镐京学院毕业论文 设计说明书 18 附录 源程序代码 DATA SEGMENT IOPORT EQU 0C400H 0280H PORT0 EQU IOPORT 2B0H 8279 DATA PORT PORT1 EQU IOPORT 2B1H 8279 CTRL PORT SEC1 DB 0 HOUR HIGHT SEC2 DB 0 HOUP LOW MIN1 DB 0 MIN HIGHT MIN2 DB 0 MIN LOW HOUR1 DB 0 SEC HIGHT HOUR2 DB 0 SEC LOW LED DB 3FH 06 5BH 4FH 66H 6DH 7DH 07 7FH 6FH 77H 7CH 39H 5EH 79H 71H 7段管 对应的显示码 DB 67H 37H 73H 31H 3EH 36H 66H IO8253A EQU IOPORT 280H IO8253B EQU IOPORT 283H IO8255A EQU IOPORT 288H IO8255B EQU IOPORT 28BH IO0832A EQU IOPORT 290H DATA1 DB 80H 96H 0AEH 0C5H 0D8H 0E9H 0F5H 0FDH DB 0FFH 0FDH 0F5H 0E9H 0D8H 0C5H 0AEH 96H DB 80H 66H 4EH 38H 25H 15H 09H 04H DB 00H 04H 09H 15H 25H 38H 4EH 66H 正弦波数据 TIME DB 120 106 94 89 79 70 63 59 发不同音时8253的计数器初值 MSG DB 0DH 0AH DB THIS IS OUR WORK PLEASE SUPPORT US THANK YOU 0DH 0AH DB 1 PRESS 1 8 TO PLAY 0DH 0AH 0DH 0AH DB 2 PRESS 9 TO RECORD 0DH 0AH 0DH 0AH DB 3 PRESS 0 TO PLAY THE RECORD 0DH 0AH 0DH 0AH DB 4 PRESS F TO PLAY THE SONG 0DH 0AH 0DH 0AH DB 5 PRESS ANYKEY TO PAUSE START WHEN PLAY THE RECORD 0DH 0AH 0DH 0AH DB 6 PRESS R TO EXIT 0DH 0AH 0DH 0AH DB COPYRIGHT MR LINUM为8253计数器初值的序号 SONG DB 50 DUP SONG1 DB 1 2 3 4 5 6 7 8 8 7 6 5 4 3 2 1 1 MSGPLAY DB 0DH 0AH 0DH 0AH RECORDING PLESS 9 TO END 0DH 0AH 0DH 0AH MSGEND DB RECORD FINISHED 0DH 0AH 0DH 0AH 0DH 0AH 0DH 0AH 电子琴设计 19 MSGPLAY1 DB 0DH 0AH 0DH 0AH PLAYING PRESS ANYKEY TO PAUSE 0DH 0AH 0DH 0AH MSGEND1 DB PLAYING FINISHED 0DH 0AH 0DH 0AH DATA ENDS STACK1 SEGMENT PARA STACK STACK DB 50 DUP 0 STACK1 ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX MOV DX OFFSET MSG MOV AH 9 INT 21H 显示提示信息 CLI MOV AX DATA MOV DS AX MOV SEC1 0 MOV SEC2 0 MOV MIN1 0 MOV MIN2 0 MOV HOUR1 0 MOV HOUR2 0 显示缓存区初始化 MOV AX DATA MOV DS AX MOV AX CS MOV DS AX MOV DX PORT1 MOV AL 0D3H 11010011 清除命令特征位 OUT DX AL 8279 CLEAR MOV AL 2AH 00101010 42分频 内部使用1MHZ 42的频率 OUT DX AL 8279 CLOCK MOV AL 40H OUT DX AL READ FIFO RAM COMMAND MOV AL 00H 8个字符显示 左入口 编码扫描键盘 双键锁定 OUT DX AL KEYBORD DISPLY MODE MOV AL 80H 写入的存储单元地址为0000 OUT DX AL WRITE RAM COMMAND KEY1 陕西科技大学镐京学院毕业论文 设计说明书 20 CALL MUSIC 发音 CALL KEYBORD CALL KEYBORD AND DISPLY NEXT2 MOV HOUR2 AL MOV HOUR1 AL MOV MIN2 AL MOV MIN1 AL MOV SEC2 AL MOV SEC1 AL 键盘码存入显示缓冲区 LP0 CMP AL 9H JZ RE CMP AL 0H JZ OUTPUT CMP AL 15 JZ FU CMP AL 13H R COMMAND JNZ LP1 MOV AX 4C00H QUIT TO DOS INT 21H LP1 JMP KEY1 RE CALL RE0 录音 JMP LP1 OUTPUT CALL OUTPUT0 放录音 JMP LP1 FU CALL OUTPUT1 JMP LP1 MAIN ENDP RE0 PROC NEAR 录音子程序 MOV DX OFFSET MSGPLAY MOV AH 9 INT 21H 显示录音提示信息 LEA SI SONG R CALL KEYBORD MOV HOUR2 AL MOV HOUR1 AL MOV MIN2 AL MOV MIN1 AL MOV SEC2 AL MOV SEC1 AL 键盘码存入显示缓冲区 CALL MUSIC CALL DISP 电子琴设计 21 MOV SI AH CMP AH 9 JZ QRE0 INC SI JMP R QRE0 MOV DX OFFSET MSGEND MOV AH 9 INT 21H 显示录音提示信息 RET RE0 ENDP OUTPUT0 PROC NEAR 放录音子程序 MOV DX OFFSET MSGPLAY1 MOV AH 9 INT 21H 显示PLAY提示信息 LEA SI SONG OU MOV AL SI CMP AL 9 JZ QRE1 MOV HOUR2 AL MOV HOUR1 AL MOV MIN2 AL MOV MIN1 AL MOV SEC2 AL MOV SEC1 AL 键盘码存入显示缓冲区 CALL DISP MOV AL AH CALL MUSIC NEXT INC SI JMP OU QRE1 MOV DX OFFSET MSGEND1 MOV AH 9 INT 21H 显示PLAYEND提示信息 RET OUTPUT0 ENDP OUTPUT1 PROC NEAR 放歌子程序 MOV DX OFFSET MSGPLAY1 MOV AH 9 陕西科技大学镐京学院毕业论文 设计说明书 22 INT 21H 显示PLAY提示信息 LEA SI SONG1 OU1 MOV AL SI CMP AL 1 JZ QRE2 MOV HOUR2 AL MOV HOUR1 AL MOV MIN2 AL MOV MIN1 AL MOV SEC2 AL MOV SEC1 AL 键盘码存入显示缓冲区 CALL DISP MOV AL AH CALL MUSIC NEXT1 INC SI JMP OU1 QRE2 MOV DX OFFSET MSGEND1 MOV AH 9 INT 21H 显示PLAYEND提示信息 RET OUTPUT1 ENDP KEYBORD PROC NEAR 键盘子程序 MOV DX PORT1 MOV AL 0D1H OUT DX AL CLEAR DISPLAY WREP CALL DISP MOV DX PORT1 IN AL DX 读状态 AND AL 07H 判断是否有按键 JZ WREP KEYN 下一次的按键 MOV DX PORT0 IN AL DX 读数据 MOV BL AL AND AL 07H AND BL 38H MOV CL 03 SHR BL CL CMP BL 00H 电子琴设计 23 JNZ LINE1 ADD AL 08H JMP QUIT1 LINE1 CMP BL 01H JNZ LINE2 JMP QUIT1 LINE2 ADD AL 10H QUIT1 RET KEYBORD ENDP DISP PROC NEAR 显示子程序 PUSH SI PUSH CX PUSH DX MOV AX DATA MOV DS AX MOV DX PORT1 MOV AL 90H OUT DX AL 写地址为0000的显示缓存区命令 每次写入后地址自动加1指向下一次写 入地址 MOV SI OFFSET SEC1 MOV CX 0001 MOV BX OFFSET LED DISP1 CLD LODSB MOV AH AL XLAT 键盘码转显示码 MOV DX PORT0 OUT DX AL 显示 LOOP DISP1 POP DX POP CX POP SI Q RET DISP ENDP MUSIC PROC NEAR 发音子程序 PUSH SI CMP AL 1 JL QUIT 陕西科技大学镐京学院毕业论文 设计说明书 24 CMP AL 8 JG QUIT 若不在 1 8 之间转QUIT 不发音 MOV NUM AL 求出相应的时间常数的序号 MOV CX 60 取60次32个正弦波数据 DDD MOV SI 0 LLL MOV AL DATA1 SI 取正弦波数据 MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 61326-2-6:2025 EN-FR Electrical equipment for measurement,control and laboratory use - EMC requirements - Part 2-6: Particular requirements - In vitro diagnostic (IVD)
- 【正版授权】 IEC 60079-18:2025 EN-FR Explosive atmospheres - Part 18: Equipment protection by encapsulation “m”
- 校车人员安全知识培训课件
- 校安头条安全知识培训课件
- 北戴河区法律知识培训课件
- 西部计划试题及答案
- 法警聘用制面试题及答案
- java语言赋值运算符面试题及答案
- 骨科医学面试题及答案
- 2025年黑龙江省龙东地区中考语文真题(含答案)
- DB51-T 3251-2025 煤矿井下应急广播系统使用管理规范
- 静压植桩机钢管桩施工技术
- 高值耗材点评制度
- 防台防汛培训课件教学
- 2024年施工员题库含完整答案(必刷)
- 道路施工流程讲解
- 有限合伙企业合伙协议
- 保险资管合规风险管理-深度研究
- 2022教师民族团结培训
- 《慢阻肺健康大课堂》课件
- 2024人教版英语七年级下册《Unit 3 Keep Fit How do we keep fit》大单元整体教学设计2022课标
评论
0/150
提交评论