




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口技术微机原理与接口技术 题题 目目基于 DAC0832 的函数发生器设计与实现 学生姓名 管高翔 学 号 20071305044 院 系 电子与信息工程学院 专 业 电子信息工程 指导教师 周欣 二 二 九九年年十二十二月月二十二十日日 基于 DAC0832 的函数发生器设计与实现 管高翔 南京信息工程大学电子与信息工程学院 南京 210044 摘要 摘要 在了解 DAC0832 芯片的基础上 实现数字量到模拟量的转换 通过对 8255A 的内部控制字 方式字的设 置以及将开关置入的数字信号传输到 DAC0832 进行数模转换 最终达到输出正弦波 三角波 锯齿波 脉冲波 的目的 根据开关输入情况进行波形切换 实现用户操作的随意性 关键词 关键词 函数发生器 8086 DAC0832 8255A 0 0 引言引言 在电子工程 通信工程 自动控制 遥测控制 测量仪器 仪表和计算机等技术领域 经 常需要用到各种各样的函数发生器 随着集成电路的迅速发展 用集成电路可以方便地设计各 种函数发生器 用集成电路实现的信号波形发生器与其它信号波形发生器相比 其波形质量 幅度和频率稳定性等性能指标 都有了很大的提高 1 1 系统方案及思路系统方案及思路 需求分析 以 PC8086 微处理机为基础设计开发能输出多种波形的函数发生器 1 能输出正弦波 三角波 锯齿波 脉冲波 2 能根据开关的变化进行波形切换 1 11 1 硬件部分硬件部分 1 根据要求及分析 本设计中硬件部分数 模转换器选用National Semiconductor的 DAC0832 2 选择 8255A 作为 CPU 与 DAC0832 之间的并行接口芯片 其中 A 口作为开关量的输入端 3 另外还需要有 Intel8086CPU 中央处理器 芯片 1 颗 EL 8086 型单板机开发环境一套 PC 机 Personal Computer 个人计算机 一台 1 21 2 软件部分软件部分 1 程序采用循环依次显示四组波段的方式 2 首先对 8255A 进行初始化 方式 0 A 口输入 3 在显示过程中判断开关量是否有变化 4 若没有变化 则继续显示 若有改变 就重新判断要输出的波形 5 相应地 在程序中编制显示正弦波段 三角波段 锯齿波段和脉冲波段 由上述的判断结 果 根据条件进行跳转 2 2 硬件设计硬件设计 2 12 1 模数转换器模数转换器 DAC0832 DAC0832 的简要介绍的简要介绍 DAC 转换器是一种将数字量转换成模拟量的器件 其特点是接收 保持和转换的是数字信 息 不存在随温度和时间的漂移问题 因此电路的抗干扰性能较好 DAC0832 是 8 位分辨率的 D A 转换集成芯片 它具有价格低廉 接口简单及转换控制容易等特点 它由 8 位输入锁存器 8 位 DAC 寄存器 8 位 DIA 转换电路及转换控制电路组成 能和 CPU 数据总线直接相连 属中 速转换器 大约在 1us 内将一个数字量转换成模拟量输出 2 1 12 1 1 DAC0DAC0832832 的结构如下 的结构如下 图 1 DAC0832 的内部结构和引脚图 D0 D7 8 位数据输入线 TTL 电平 有效时间应大于 90ns 否则锁存器的数据会出错 ILE 数据锁存允许控制信号输入线 高电平有效 CS 片选信号输入线 选通数据锁存器 低电平有效 WR1 数据锁存器写选通输入线 负脉冲 脉宽应大于 500ns 有效 由 ILE CS WR1 的逻辑 组合产生 LE1 当 LE1 为高电平时 数据锁存器状态随输入数据线变换 LE1 的负跳变时将输 入数据锁存 XFER 数据传输控制信号输入线 低电平有效 负脉冲 脉宽应大于 500ns 有效 WR2 DAC 寄存器选通输入线 负脉冲 脉宽应大于 500ns 有效 由 WR1 XFER 的逻辑组合产 生 LE2 当 LE2 为高电平时 DAC 寄存器的输出随寄存器的输入而变化 LE2 的负跳变时将数据 锁存器的内容打入 DAC 寄存器并开始 D A 转换 IOUT1 电流输出端 1 其值随 DAC 寄存器的内容线性变化 IOUT2 电流输出端 2 其值与 IOUT1 值之和为一常数 Rfb 反馈信号输入线 改变 Rfb 端外接电阻值可调整转换满量程精度 Vcc 电源输入端 Vcc 的范围为 5V 15V VREF 基准电压输入线 VREF 的范围为 10V 10V AGND 模拟信号地 DGND 数字信号地 2 1 22 1 2 DAC0832DAC0832 的三种工作方式的三种工作方式 1 直通方式 直通方式就是使 DAC0832 内部的两个寄存器 输入寄存器和 DAC 寄存器 处于不锁存状态 数据一旦到达输入端 DI7 DI0 就直接送入 D A 转换器 被转 换成模拟量 当 ILE 为高电平 CS和WR1 WR2 和XFER端都接数字地 这时 锁存信号LE1 LE2 均为高 电平 输入寄存器和 DAC 寄存器均处于不锁存状态 即直通方式 2 单缓冲方式 单缓冲方式就是使两个寄存器中的一个处于缓冲方式 另一个处于锁存方式 数据只通过一级 缓冲器送入 D A 转换器 通常的做法是将和XFER均接地 使 DAC 寄存器处于直通方式 而把 ILE 接高电平 接端口地址译码信号 WR1 接 CPU 系统总线的IOW信号 使输入寄存器处于锁 存方式 单缓冲方式只需执行一次写操作即可完成 D A 转换 一般不需要多个模拟量同时输出 时 可采用单缓冲方式 3 双缓冲方式 双缓冲方式就是使两个寄存器均处于锁存方式 数据要经过两级锁存 即两级 缓冲 后再送入 D A 转换器 这就是说 要执行两次写操作才能完成一次 D A 转换 只要将 ILE 接高电平 WR1 和WR2 接 CPU 的IOW CS和XFER分别接两个不同的 I O 地址译码信号即可 图中的 Rfb 是内部电阻 是为外部运算放大器提供的反馈电阻 用以提供适当的输出电压 Vref 端是由外电路为芯片提供的参考电源 电压范围在 10V 10V 另外 DAC0832 为电流输出型 DAC 使用时需外接运算放大器 芯片的电源电压最好工作在 15V 2 1 32 1 3 DAC0832DAC0832 在本设计中的作用在本设计中的作用 在本设计中主要用来将开关打入的数字信号转换为相应的模拟信号 图2为DAC0832在本设 计中的应用模式 图2 DAC0832在本设计中的应用模式 2 22 2 其它芯片简要介绍其它芯片简要介绍 8086CPU8086CPU 1 8086CPU 在本设计中的作用 由于这个程序是基于 PC 微处理机的 故在单板机上必须要用到 8086CPU 它作为计算机的核心 芯片 在实验中起着关键的作用 2 8086 的功能分析 它被设计为两个独立的功能部件 总线接口部件 BIU 和执行部件 EU BIU 主要负责从内存储器的指定区域中取出指令 送到指令队列中排队 执行指令所需的操作 数也由它从内存或 I O 端口取出送至 EU EU 负责从 BIU 的指令队列中获得指令 然后执行该指令 完成指令所规定的操作 它负责全部 指令的执行 向 BIU 提供数据和所需访问的内存或 I O 端口地址 并对通用寄存器 标志寄存 器和指令操作数进行管理 8255A8255A 并行接口电路并行接口电路 1 8255A 在设计中的作用 它是把打入的数据锁存 8255A 有 3 个 8 位端口 PA PB PC 本设计只用到 PA 口中的一个 8 位数据输入锁存器 把通过开关装置打入的数据锁存 再由 8255A 通过数据总线传送到 8086 由 8086 送到 DAC0832 的 DI7 DI0 对其进行数模转换 最后在示波器上显示波形 2 8255A 的功能分析 它是一种通用的可编程并行 I O 接口芯片 又称 可编程外设接口芯片 8255A 由 4 部分组成 数据总线缓冲器 三个 8 位端口 PA PB PC A 组和 B 组的控制电路 读写控制逻辑 数据总线缓冲器 一个三态 8 位的双向缓冲器 用作 8255A 同系统数据总线相连是的缓冲部 件 CPU 通过执行输入 输出指令来实现对缓冲器发送或接受数据 8255A 的控制字或状态字也 是通过该缓冲器传送的 端口 A 中有一个 8 位数据输入锁存器和一个 8 位输出锁存 缓冲器 A B 组控制电路 A 组控制部件用来控制 PA 口和 PC 口的高 4 位 B 组控制部件用来控制 PB 口和 PC 口的低四位 读写控制逻辑 用来管理数据信息 控制字和状态字的传送 8255A 的工作方式有 3 种 方式 0 方式 1 方式 2 本设计只用到方式 0 即基本输入 输出 在方式 0 下 每个口都作为基本的输入 输出口 C 口的高四位和低四位以及 A 口 B 口都可以 独立地设计输入口或输出口 在方式 0 下 CPU 可以采用无条件读写方式与 8255A 交换数据 本设计只用到了 PA 口作为数据输入 3 8255A 的技术参数 与 TTL 完全兼容 采用 40 条引脚的双直插式封装 减少了系统器件数 提高了直流驱动能力 表 1 8255A 技术参数 运算放大器运算放大器 LF351LF351 1 LF351 在本设计中的作用 由于 DAC0832 本身不带有运算放大器 则在实际应用时应该外接运算放大器 本设计中采用的 同样是 National Semiconductor 生产的运算放大器 LF351 使由 DAC0832 产生的模拟信号效果 增强 2 LF351 的功能分析 LF351是一款低价位高速度 具有内部电压平衡功能的JFET 结晶型场效应晶体管 运算放大器 它只需要微量的电流 就可以产生并保持宽带高速的回转电流 另外 它可以很好的匹配输入 产生相当电压伏度 LF351 可以用在高速求积器 快速数 模转换 抽样保持电路及诸多要求低 输入偏移电压 低输入偏转电流 高回转速率和广带宽的场合 总的来说 LF351 是一个很好 的选择 LF351 系统连接方式如图 3 所示 图 3 LF351 系统连接方式 2 32 3 利用利用 DAC0832 DAC0832 产生正弦波产生正弦波 图 4 硬件框图 框图说明 1 DAC0832 的 IOUT 与示波器红头相连 2 DAC0832 的 GND 与示波器的黑头相连 即接地 3 DAC0832 的 CS 片选与 CS1 相连 4 数字信号来源于开关量 输出于 LF351 显示于示波器 5 8255 的 CS 片选与 CS0 相连 6 其余 DAC0832 8255 与 CPU 及其他数据线都固定于单板机开发环境中 故未在图中详细 画出 下面是 DAC0832 和 8255A 的接线图以及相关说明和初始化 图 5 DAC0832 的接线图 下面是通过 DAC0832 输出的典型程序 MOV DX 0200H 指向输入寄存器 MOV AL DATA DATA 为被转换的数据 OUT DX AL 数据打入输入寄存器 INC DX 指向 DAC 寄存器 OUT DX AL 选通 DAC 寄存器 启动 D A 转换 下面为 8255A 的初始化程序 START MOV DX IOCPT 初始化 8255 MOV AL 89H 写控制字 OUT DX AL KAISHI MOV DX IOCPT IN AL DX TEST AL 80H 跳三角波 JNZ SANJIAO TEST AL 40H 跳锯齿波 JNZ TOOTH TEST AL 20H 跳正弦波 JNZ ZHENGXIAN TEST AL 10H 跳方波 JNZ GO5 JMP KAISHI 3 3 控制程序设计控制程序设计 图 6 主控流程图 控制程序设计思路说明 1 程序分为五个段落 分别是主程序 正弦波 三角波 锯齿波 脉冲波 2 在每个 段落 中检查开关量是否有改变 有则切 换到相应波形 无则循环显示本波段 3 在开关中设置开关量 00h 锯齿波01h 三角波02h 正弦波03h 脉冲波 4 四个波段循环切换显示 4 4 调试过程及结果调试过程及结果 8255A 的 PA 口作为开关量的输入端 其与开关相连的时候 PA0 PA1 分别与 K0 K1 相连 那么 K0 是低位 K1 是高位 那么每个波形对应的开关量应使用开关正确输入 不能把高低位弄 反了 正弦波在示波器上的显示 成断续的点状 本想使之能显示连续的波形 但一直无法通 过多加入一些点 使波形变密 显示出来的总是不对称的 扭曲的 有的地方点很密 有的地 方点很疏 脉冲波的显示也不能做到很精确 因为高电平和低电平总是不平 怎么都有一点倾 斜的趋势 一直不清楚问题出在什么地方 怎么才能够解决 锯齿波和三角波的显示情况都较 准确 没有什么问题 在波形切换方面 能够实现用户任意时刻 变换输出四种波形中的任意 波形 5 5 结束语结束语 本设计的结果基本达到了要求 能输出正弦波 三角波 锯齿波 脉冲波 能根据开关输入 情况进行波形切换 实现用户操作的随意性 在本设计中的四个波形中 锯齿波 三角波输出 较准确 但脉冲波 正弦波的输出还有一点欠缺 都不能很正确的反映波形曲线 即 脉冲波 不能很好的反映电平的平稳 会有一定的斜度 可能是延迟子程序写得不太好 延迟时间没控 制好 而正弦波不能很好的表现波的连续性 表现成断续的点状 原因是正弦波表没有编写好 没有把握好点的分布情况 对称性的要求 设置的点不够多 参考文献参考文献 1 龚尚福 微机原理与接口技术 第 2 版 M 西安 西安电子科技大学出版社 2008 2 刘彦文 张向东 谭峰 微机原理与接口技术 M 北京 北京大学出版 2006 3 戴梅萼 微型计算机技术及应用 第 3 版 M 北京 清华大学出版 2003 4 童诗白 华成英 模拟电子技术基础 M 北京 高等教育出版社 2001 附件附件 源程序源程序 CODE SEGMENT ASSUME CS CODE X DB IOAPT EQU 0FF28H 8255A 端口 IOBPT EQU 0FF29H 8255B 端口 IOCPT EQU 0FF2AH 8255C 端口 DAPORT EQU 0020H ORG 10E0H START MOV DX IOCPT 初始化 8255 MOV AL 89H 写控制字 OUT DX AL KAISHI MOV DX IOCPT IN AL DX TEST AL 80H 跳三角波 JNZ SANJIAO TEST AL 40H 跳锯齿波 JNZ TOOTH TEST AL 20H 跳正弦波 JNZ ZHENGXIAN TEST AL 10H 跳方波 JNZ GO5 JMP KAISHI SANJIAO MOV DX IOCPT 三角波发生子程序 IN AL DX TEST AL 80H 检测三角波切换开关是否是 开 JZ KAISHI 不是 开 转到 KAISHI MOV AL 00H MOV BL 00H MOV DX DAPORT UP MOV AL BL 将 BL 值给 AL OUT DX AL INC AL MOV BL AL 暂时将 AL 的值存放到 BL MOV DX IOCPT IN AL DX TEST AL 80H 检测开关 JZ KAISHI 不是 开 转到 KAISHI CMP AL 80H AL 值是否等于 80H JE F3 等于转 F3 CALL FENPIN 不等调分频子程序 F3 MOV AL BL 将 AL 的值与最大值相比 小于最大值时 循环 UP 等于时转 DOWN CMP AL 0FFH JNZ UP DEC AL DOWN OUT DX AL 原理同 UP 程序 DEC AL MOV BL AL MOV DX IOCPT IN AL DX TEST AL 80H JZ KAISHI CMP AL 80H JE F4 CALL FENPIN F4 MOV AL BL CMP AL 19H JNZ DOWN JMP SANJIAO GO5 JMP FANGBO 中转代码 GO3 JMP KAISHI 中转代码 TOOTH MOV DX DAPORT 锯齿波发生子程序 MOV AL 00H MOV BL 00H DACON1 MOV AL BL OUT DX AL INC AL MOV BL AL MOV DX IOCPT IN AL DX TEST AL 40H 检测开关 JZ KAISHI CMP AL 40H JE F2 CALL FENPIN 调用分频程序 F2 JMP DACON1 ZHENGXIAN MOV DX IOCPT 正弦波发生子程序 IN AL DX TEST AL 20H JZ GO3 由于程序太长 跳不到目的程序 GO3 是中转代码 STARTA MOV BL 64 共预置了 64 组正弦波的数据 MOV SI 1205H 预置数的首地址 START1 MOV DX DAPORT MOV AL SI OUT DX AL MOV DX IOCPT IN AL DX TEST AL 20H 检测开关 JZ GO3 CMP AL 20H JE F7 CALL FENPIN 调用分频子程序 F7 MOV BH 0FFH START2 DEC BH JNZ START2 INC SI DEC BL JNZ START1 JMP ZHENGXIAN M0 JMP KAISHI 中转代码 FANGBO MOV DX IOCPT 方波发生子程序 IN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国弹力棉睡衣数据监测研究报告
- 经贸信息考试题及答案
- 禁烟考试题目及答案
- 课件文案制作
- 井矿盐卤水净化工岗前考核试卷及答案
- 煮茧操作工岗位操作技能考核试卷及答案
- 教学论 考试题及答案
- 机织无结网片工设备维护与保养考核试卷及答案
- 交接制度考试题及答案
- 烧碱盐水工三级安全教育(公司级)考核试卷及答案
- 国有企业普法培训课件
- 传统建筑对现代建筑的影响与启示
- 用户需求驱动产品设计
- 《铁路旅客运输组织》课件
- 文明礼仪从我做起主题班会课件
- 健康养老与医养结合
- 小学生主题班会 好习惯的养成 课件
- 浦东科普诗词大赛题库
- 水工混凝土结构设计规范sl191-2008
- 老干部工作业务知识要点课件-湖南大学离退休处
- 环境卫生学与消毒灭菌效果监测
评论
0/150
提交评论