基于单片机的数模转换器设计word档p内容摘要:

内部 ROM 的单片机或者程序较大,内部 ROM 不够用时,需要外接程序存储器芯片;数据量较大,内部 RAM 不够用还需扩展外部数据存储器 RAM芯片。 在 MCS51 单片 机应用系统中,程序存储器的扩展,对于片内无 ROM 的单片机是不可缺少的工作,程序存储器扩展的容量根据应用系统的需要可在64KB 范围内随意选择。 用一片 ROM2764 做 8KB 片外程序存储器, 27256 的片选端接地。 用一片 6264 片外数据存储器。 6264 的片选端接 74LS138,当 Y0 为低电平时选通。 再用一片 8255 芯片实现单片机与 PC 机及外部设备的连接 和外部设备的连接 等。 图 单片机的 内存 扩展电路 : 9 图 单片机的内存扩展电路图 图 为单片机的 I/O扩展电路连接图: 图 为单片机的 I/O扩展电路连接图: 模拟输入通道组成 10 模拟通道即将现场中的模拟信号进行采集和数字化处理, 主要包括传感器、多路开关、 AD转化器、放大器及采样保持器五个部分组成。 图 采集和转换原理图: Vi nG N DVr e f D1D4S i g nE N B模 拟 / 数 字 转 换 器传 感 器模 拟 多 路 开 关放 大 原 件 数 模 转 换 图 模拟信号采集和转换原理图 AD0809芯片介绍和使用 在单片机数据采集和处理的控制过程中,首先要对传感器传过来的信号进行处理,然而单片机只能接受数字信 号,而传感器中的信号为连续的电压或者电流信 号,在这个过程中需要模数转换器对其进行转化再 送到 单片机 中进行加工处理。 A/D转换器芯片的种类很多,在此我选择了较为常用的 A/D转换芯片 ADC0809。 ADC0809是逐位逼近型 8位单片 A/D转换芯片。 片内含 8路模拟开关,可允许 8个模拟两输入。 片内带有三态输出缓冲器,因此可直接与系统总线相连,是目前应用较为广泛的模数转换芯片之一。 图 : 11 图 数模转换器与单片机的连接图 控制电路设计 本论文使用单片机输出数字信号,经由 一片 CD4013输出数字信号, 经过软件预处理过程和放大实行对外部电路即继电器实行控制。 12 第三章 非线性数据处理 非线性 理论介绍 在生产实践和科学实验中 ,经常会遇到大量的不同类型的数据 (data).这些数据提供了有用的信息,可以帮助我们认识事物的内在规律等 .在一项工程实践中,通过观测,得到了一个离散的函数关系 (xi,yi) i=1,2,…,n。 由于工程的需要,我们希望揭示出反映这组离散数据的一个解析的函数关系。 再用几何术语来表达:根据平面上的观测点 ,要求确定一个函数曲线 y=f(x), 使曲线尽量接近这些点。 实现这个愿望的方法简称为曲线拟 合( fitting a curve). 曲线拟合是根据实验获得的数据,建立自变量与因变量之间的函数关系,为进一步的深入研究提供工具。 由于 不同的工业现场信号强度不同 , 同时对于不同的控制参数其信号曲线也不尽相同。 因此, 不同的控制参数和不同的控制场合都需要改变对应的驱动电压。 要使我们的驱动电路能工作于任何 一个控制现场或者适应不同的控制信号 , 所以 就必须在数据进入电路之前进行加工处理,将电路不可用的非线性信号转变为电路可用的线性电信号,软件预处理单元就是为此而设的。 它 采用软件拟合的方法将非线性光信号转换为线性电信号,在不占用硬件资源的情况下,较好的完成了信号的关系转换。 软件预处理 采用 MATLAB 软件编程,对不同的处理对象,进行不同的处理;对不同的系统要求,可以随时进行调整,因此, 可以 大大 增强了驱动电路的通用性 和信号的实用性。 数据 拟 合的方法 所谓数据拟合就是想办法找到某种光滑的曲线最佳的拟合数据。 这个过程中,并不要求经过每一个数据点,其思想是能够反应这些数据的变化趋势,也就是平时所用的最小二乘法原理思想。 数据拟合的途径多种 多样,本 论 文采用简单的 mat lab软件 拟合 数据的 方法进行说明, 以及一次 计数直接拟合和二次计数逐步拟合 方法的介绍。 mat lab 仿真拟合 13 在 matlab 仿真拟合时,主要有两种方法:一种是使用 matlab 软件中提供的函数命令对数据进行拟合,另外一种就是图形界面操作窗口进行拟合。 a) 函数形式的拟合方法 使用非线性拟合数据命令 lsqcurvefit,首先定义 main 函数文件,使用命令 c=lsqcurvefit(‘ fun’ ,x0,x,y),其中 x,y为实验数据, fun 为 main函数, x0 为初始值, c 为非线性拟合系数。 b) 窗口形式拟合 此 种方法在熟悉 matlab 软件的基础上,可以简单快速的实现非线性数据的拟合。 次计数 法 直接拟合预处理单元 a)首先根据 控制现场的 特征参数, 拟合出参数的曲线形式 b)计算系统所需的 n 个系数对应的驱动电压值 Vdrive, n 的 个数 由 被控参数决定; c)计数器的最大值为 2W1, W 为计数器的位数。 由驱动电压的摆幅范围和W,计算一个时钟周期 CLK 的驱动电压值 V= (Vdrive,max Vdrive,min)/(2W1),在本文中 Vdrive,min =0,所以 V= Vdrive,max /(2W1)。 从关系式 U= (I(CLK/2))/C 得出,积分电流 I 和积分电容 C 是成正比的,电流越大,稳定性越高,但是积分电容 C就越大,所占用的版图面积也就越大;时钟越快,它的最小积分电压值越小,电压精度越高,但是时钟的高频影响就越大。 综合考虑各方面因素,对 V 进行有效位数取舍得 V1,以 V1 为单位驱动电压,重构 Vdrive,n 得, Vdrive,n 便是驱动电路所求。 () 其中 的值取 正整数 c)计算 Vdrive,n 和 V‘ drive,n 之间的误差 () 将计数器的位数 W 从 1 开始递增改变,步长为 1。 重复步骤 (3), (4),直到error 满足系统要求的误差范围,保存此时的 M: M=[m1 m2 … mn]; 14 d)将 M 转化为二进制数值 Mbin= [m1,bin, m2,bin … mn,bin],并存储在 RAM 当中,以备电路工作使用。 15 第四章 系统软件设计 系统硬件电路 在第三章中已 经说明,本章主要进行单片机系统的初始化和外部设备连接控制的程序说明,及软件预处理的过程和程序流程图的说明。 单片机系统 单片机系统的软件编程主要是包括单片机的初始化,外部芯片 AD0809的初始化 ,8255的初始化过程;中断服务程序主要包括数据采集,输出,串口通信等功能模块的驱动部分。 在本论文中基于对单片机的认识,选择汇编语言对其进行编程。 图 为系统软件总的流程图: 初 始 化 系 统开 始数 据 处 理扫 描 按 键 处 理送 D A 转 换 输出 电 压读 取 存 储 数 据结 束按 键 图 系统软件总的流程图 a) AD转换程序 流程图 16 初 始 化 系 统开 始数 据 转 换读 取 数 据中 断 请 求结 束NY 图 AD转换程序流程图 b) 中断程序 ,在单片机系统中,利用中断服务程序,单片机分时复用,对各外部信号进行处理和读写。 软件预处理 由于 matlab中已经提供了足够的非线性数据拟合函数,在此不多做说明,仅介绍 主要涉及 第三章中的数据拟合方法中一次计数直接拟合法的流程图。 根据一次计数直接拟合的思想和数学算法,涉及软件预处理程序流程图,助于软件的编写。 图 : 模 拟 参 数 曲 线设 置 驱 动 电 压F o。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。