毕业设计(论文)-高速数据采集系统原理分析和设计.docx_第1页
毕业设计(论文)-高速数据采集系统原理分析和设计.docx_第2页
毕业设计(论文)-高速数据采集系统原理分析和设计.docx_第3页
毕业设计(论文)-高速数据采集系统原理分析和设计.docx_第4页
毕业设计(论文)-高速数据采集系统原理分析和设计.docx_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学专业综合课程设计说明书目 录1.高速数据采集的相关基础知识11.1数据采集系统的基本组成11.2 a/d转换的过程11.3高速数据存储21.4 数据采集基本原理32 高速数据采集系统的方案62.1基于单片机 at89c51 的数据采集系统设计62.3 基于fpga高速数据采集系统92.3基于dsp的高速数据采集处理系统112.数模转换器(d/a)的选择133 高速数据采集系统的方案分析比较154高速数据采集系统的设计164.1 设计思想164.2 设计方案165.硬件设计185.1 at89c51单片机185.2模数转换器adc0809195.3 单片机与虚拟终端的通信215.4 led数码显示器的应用原理245.5 总设计图256.软件设计266.1 流程图266.2 源程序277.仿真结果及性能分析327.1仿真结果327.2性能分析338.心得体会349.参考文献35本科生课程设计成绩评定表36i1.高速数据采集的相关基础知识1.1数据采集系统的基本组成数据采集系统一般由数据采集、数据处理、处理结果的实现与保存三个部分构成。数据采集指被测信号经过放大、滤波、a/d转换,并将转换后的数据送入计算机。这里要考虑干扰抑制、带通选择、转换准确度、采样/保持及与计算机接口等问题。数据处理指由计算机系统根据不同的要求对采集的原始数据进行各种数学运算。处理结果的实现与保存指处理后的结果在x-y绘图仪、电平记录器或crt上浮现出来,或者将数据存入磁盘形成文件保存起来,或通过线路送到远地。图1 数据采集系统的组成1.2 a/d转换的过程模拟量转换为数字量,通常分成三个步骤进行。这就是采样保持、量化与编码。连续的模拟信号x(t)按一定时间间隔ts采样-保持后得到台阶信号xs(n),在经过量化变为量化信号xq(nts),最后编码转换为数字信号x(n)。在现代adc器件中,这三个步骤一般合起来在一个器件中完成。转换过程可以用图2表示:图2 模数转换过程1.3高速数据存储1.分时存储分时存储技术利用一个高速锁存器将采集的高速数据锁存,而后利用多个相对慢速的存储器对数据进行存储以保证数据存储的可靠性。由于多个静态存储器分时参与了数据存储的过程,使得多个慢速静态存储器分时存储操作过程进行了叠加,其效果等效于一个高速静态存储器的操作。2.数据降速存储所谓数据降速存储技术,就是对在数据存储之前将高速数据的速度降低到低速存储器可以及时存储的程度。该方法避免了多个存储器的使用,只需利用一个大容量的存储器就可以实现数据的存储,实现起来相对分时存储简单。设计中可以利用串并转换电路对数据进行降速处理以满足后续的存储器速度较低的要求。串并转换电路的基本原理为数据的串并转换,将数据依次存入串行移位寄存器中,然后并行输出,降低了传输数据的速度,以满足存储器工作速度的要求。1.4 数据采集基本原理1.数据采集过程取样就是利用取样脉冲序列,从连续信号中抽取一系列的离散样值。这种离散信号通常称为“取样信号”,以表示。在一般情况下,取样输出是取样脉冲序列与连续信号的乘积。 (1) 对于实际的高速a/d,采样过程并不是理想的,保持电路可能会存在孔径效应,而影响编码,最终影响数据的原始性,在选用高速a/d时,一般选模拟带宽较宽的a/d比较好。2.采样采样可以看作是一个脉冲调幅的过程。 其中:,当的脉冲宽度时,就接近理想采样,变为脉冲,接近函数 (2) (3) 将(3)式代入上式 (4) 当然实际情况可以将近似看作以便于分析模拟信号经采样后,频谱会发生周期延拓。 (5)其中,也就是采样角频率,由傅氏级数理论可得 (6) (7) 对于采样信号频谱 (8) 当信号采样后,要能恢复为原来所包含的信息,在保证频谱不发生混叠的情况下,我们可以将采样信号通过一个理想低通滤波器,这个理想低通滤波器只让基带频谱通过,因而滤波器的带宽应等于折叠频率。 (9) 从频域上看,由(8)式可知,能通过低通滤波恢复。下面从时域来看其恢复的过程。理想低通的冲激响应 (10)其输出 (11) (12)(12)式称为内插函数。将(12)式代入(11)式有: (13) 式(13)即为采样内插公式,在每个采样点nt上,具有该采样值不为0,所以其能保证各采样点上信号不变,对于在不为nt的这些时刻,即为各采样函数延伸叠加而成。这从时域上解释满足采样定理的信息恢复。 当然,实践中不可能通过计算内插公式恢复信息,这样各点计算量太大。实际工程中常通过一个da变换器加低通滤波器恢复原来信息。3.量化与量化误差(1)量化量化就是把采样信号的幅值与量化单位比较。量化单位定义为量化器满量程电压fsr(full scale range)与的比值,用q表示,因此有 (14)(2)量化方法“只舍不入”的量化 所谓只舍不入的量化,是指信号中幅度小于量化单位的部分一律舍去。当时,;当时,;当时,;等等。“有舍有入”的量化 “有舍有入”量化是将采样信号幅值与量化电平相比较,离幅值最近的量化电平作为信号在该时刻的量化值。 当时,;当时,;等等。量化误差 由量化引起的误差称为量化误差(也称为量化噪声),记为e。 (15) -信号采样-量化信号2 高速数据采集系统的方案2.1基于单片机 at89c51 的数据采集系统设计本系统的结构框图如图所示,系统由传感器、放大器、滤波器、采样/保持器 ad346、多路开关 cd4051、a/d 转换器 ad579、串口芯片 8251、可编程计数器定时器 8253 构成的时序电路、dmac8237构成的直接存取控制电路、存储芯62256 和27128 及 cpu intelat89c51 等部分组成。传感器、放大器、滤波器及存储芯片可根据需 要更改数目。 图3 系统结构框图工作原理:上电后,cpu 完成对系统中可编程器件的初 始化及通道数的预置,整个系统需要的时序由cpu 所控制的 8253 定时/计数器提供。传感器实现非电量到电量的转换,放大器则将传感器输出的微弱电信号放大后送人到滤波器进行抗混叠处理并滤除杂散信号,8个采样保持器 ad346 对转 换得到的电信号进行同时采样/保持,经过由可设定选择路数 的多路开关,轮流把各采样/保持器采集的信号送到高速 a/d 转换器 ad579 中,完成模拟量到数字量的转换,这个 过程采用的是同时采样、分时转换的方式。在 dmac8237 的控制下,将采集到的数据高速传送、存储在大容量数据存 储器中,然后通过串口电路传入 pc 机,利用 pc 机对采集得 到的数据进行分析、处理。1信号调理本系统中信号调理电路包括传感器、放大器、滤波器, 根据实际环境选择相应的加速度、温度、或湿度传感器,放 大器采用通用型集成运算放大器 ixa741,它对温度漂移和共 模信号抑制能力强,具有很强的放大能力,最高达几十万倍。 工业控制现场的噪声可能经过传感器进人数据采集通道,使 采集到的信号中包含多种频率成分的噪声,严重时噪声甚至 会淹没待提取的输入信号,所以采用滤波技术以提高信号采 集系统的信噪比很有必要。8 位精度时,ad579 的转换周期 是 1.5s,取 2s,8 路同时采样分时转换,亦即 ad346 的采 样电平至少要持续 16s,取 20s,即频率为 50khz。根据奈 奎斯特采样定理,要从抽样信号中无失真的恢复原信号,采样频率应等于或大于 2 倍信号最高频率,奈奎斯特采样频率频率应等于或大于 2 倍信号最高频率,奈奎斯特采样频率为信号频率的两倍。工程上的采样频率一般为被采样信号频率的 34 倍。由于本系统采用的采样/保持器和模/数转换器的限制,此滤波器的最高截止频率最多取为 12.5khz,选择适当的电阻值和电容值以达到此要求。 2采样/保持电路 采样/保持器 ad346 的工作电压范围是-i-10vdc,它在 2s 以内可达到-i-001的精度,可完成对模拟信号的高速采样及保持。 3多路选择开关 cd4051 是八选一型多路开关,它的作用是将待采集的8 路信号分时逐个切换到 a/d 转换通道。可根据被采集对象的个数及频率范围设置被采集信号的路数,亦可实现多选一,最高可八选一。 4模拟/数字信号转换 本系统采用的 a/d 转换器件是 ad579,它具有极短的转换周期:10bits 精度时为 18 s,8bits 精度时仅为 1.5s。其 eoc 转换结束标志位为信号转换结束后引发中断提供了时钟脉冲。转换得到的数据通过数据锁存器 74ls373 锁存,在 cpu 或者 dma 的控制下再送人外扩存储器或 pc 机内部存储器。 5串口电路 串口电路采用可编程串行通信接口芯片 8251,它具有八条双向数据线,与系统的数据总线相连,在接收控制/数据信号的控制下,传输 cpu 对 8251 的编程命令字和 8251 送往 cpu 的状态信息及数据。6直接存取电路所谓直接存取即在没有 cpu 的干预下,用硬件实现存储器和存储器之间、存储器和 i/o 口之间直接进行高速数据传输,存储器地址的修改和传送完成的报告均由硬件自动完成,这种方式 极 大 地 提 高 了 传 送 的 速 度 。dmac8237 的低地址位通过总线隔离器与 cpu 的低地址位相连,其数据线与高位地址线复用。作为高位地址线时通过锁存器,再通过总线隔离器与cpu 的高地址位相连;同时作为数据线,也直接与 at89c51 的数据线相连,也要与 ad579 的数据位相连。8237 的时钟脉冲由 at89c51 的时钟脉冲提供。cpu 通过数据选择器对8237 进行初始化控制信号发送。8237 的发送请求信号由 cpu 的外部中断提供。 7时序电路 本系统时序电路由可编程计数器/定时器 8253,辅以单稳态触发器 74121 整形得到。8253 内部含有 3 个独立的16 位计数器,每个计数器均可达 2mhz 的计数速率,8253输出的波形为方波,不满足 ad346 和 ad579 的时序需求,所以需要经过 74121 整形。74121 集成单稳态触发器有 3个触发输入端 a1,a2,b,在触发信号控制下电路可由稳态翻转到暂稳态。暂稳态的持续时间取决于 rc 电路的参数值,有 t 一 0.7rc,选择不同的电阻值和电容值对 8253 产生的方波整形得到需要的采样/保持和模/数转换控制信号。系统中采用的数据采集方式是 8 路信号同时采样、分时转换,ad579 对每路信号的转换时间是 1.5s(8bits 精度时),取2s。ad579 启动后经 200ns 后出现下降沿转换开始。因此应提供 ad579 周期 2s 的脉冲,其中高电平持续 200ns,低电平持续 1.8s。转换八路需要的时间是 l6s,ad346 的采样时间是 2s,而保持时间必须大于或等于 16s,提供周期为20s(高电平持续 2s,低电平持续 18s)的时钟脉冲给ad346。根据奈奎斯特抽样定理及工程实践,被采集的对象应是低于 12.5 khz 的模拟信号。2.3 基于fpga高速数据采集系统数据采集系统框图:图4 数据采集系统硬框图数据采集和传输系统只要由fpga(中心控制模块)、usb(串行总线)、a/d转换器以及其它的外围辅助电路组成。(1)a/d转换器的作用是将输入的模拟量转换成数字量,由fpga接受、缓冲、存储经usb2.0端口传到pc机上。(2)fpga是控制模块的核心部分,主要完成a/d转换器的时钟选取、数据的存储计算以及相应的控制逻辑、实现与pc机的通信等控制任务。(3)usb2.0提供了一个可以和计算机连接的数据传输口,其作用是用来接受主机信号并通过它的端口来控制a/d转换器进行数据的采集。(4)pc机通过usb接口将控制命令和参数给fpga,然后fpga再对a/d转换器进行时序控制以及对转换数据的接收。图5数据采集器原理图模拟输入信号事先经过ad调理电路,在经ads930的模数转化,将数字信号传递给epm1270t144c5n芯片,clpd与usb之间通过控制线以及i/o口实现控制信息和数字信息的双向传递,与此同时,cpld通过fifo总线建立与8051核的链接。而usb芯片与pc机是通过usb接口建立相应的联系。5v的电压通过电压转换芯片转换为3.3v,并将此转换的3.3v电压对usb芯片进行供电。e2prom由i2c接口实现与usb的信息交互。1.fpga的选择为节约成本,由fpga及其相应的配置电路可由cpld代替,这样将便于项目的进行,为此我们采用型号为epm1270t144c5n的cpld模块。2.usb芯片选择目前市面上有很多类型的usb的接口芯片,它们要在外部的微控制器的控制下进行操作,如果微控制器的工作频率比较低,势必影响数据传输的速率。cy7c68013芯片中的fifos不需要微控制器的控制就能直接与外围电路进行数据传输,解决了usb高速模式下的带宽问题。选择该芯片的另个重要原因cypress公司为ez_usb fx2系列产品的开发提供了大量的技术支持,如公司为开发者提供了主控平台,固件开发环境和事例及相应的技术文档。3.ad的选择将模拟信号转化为数字信号实际上是模拟信号时间离散化和幅度离散化的过程。通过时间离散化由采样保持(s/h)电路来实现,而幅度离散化则由a/d转化器来实现。随着高集成度的提高,有许多a/d芯片将采样保持电路也集成在内部。既减小了体积,又提高了可靠性。在选择a/d转化器时,主要考虑一下几个方面:(1)转换速率a/d的转换速率取决于模拟信号的频率范围(2)量化位数根据a/d转换的原理,a/d转换过程中总存在量化误差。量化误差取决于量化位数,位数越多量化误差就越少。如n位的a/d转化器,其量化误差为1/2n+1。(3)输入信号的电压范围a/d转化器对模拟输入信号的电压范围有严格的要求,模拟信号电压只有处在a/d转化器的额定电压范围内,才能得到与之成正比的数字量。由于在a/d转换器之前已经加了信号调理电路,通过调节放大倍数和直流偏移量,总能满足a/d转化器对输入电压的要求。(4)参考电压vref要求a/d转换的过程就是不断将被转换的模拟信号和参考电压vref相比较的过程。因此,参考电压的准确度和稳定性对转换精度至关重要。(5)控制信号及时序a/d转换器工作时必须由mcu或pld控制,因此,选择a/d转换器时,应考虑接口的方便性和高低电平的兼容。根据以上分析,我们选择burr-brown公司生产的8位、30mhz高速a/d转换器ads930。ads930采用35v电压电源,流水线结构,内部含有采样保持器和参考电压源。2.3基于dsp的高速数据采集处理系统本系统是以tms320lf2407为核心,对模拟信号进行高速采集,并转换成数字信号,然后暂存到ram中,并通过串口传输到系统微机中。本系统硬件连接相对简单,其数据采集与传输简单可行,数据的采集、处理、传输主要都由软件来实现。图6为系统设计结构框图。在通常的数据采集系统中,测量过程是通过a/d转换器的控制来实现的 ,但对于一个高速采集系统而言,这种办法是有局限性的,因为高精度a/d建立稳定的工作状态需要相当长时间,频繁的改变a/d工作状态会影响测量精度,严重时会造成信号失真,所以对a/d选择要求较高。图6数据采集与处理系统框图a/d转换的过程是:首先对输入的模拟信号进行a/d转换,并将转换后的数据锁存到缓冲寄存器中,以确保采集数据的稳定可靠,通过口地址译码器提供的片选信号和dsp的读写信号,将缓冲器中的数据送入总线。d/a转换的过程正好与a/d转换的过程相反,将数子信号进行d/a转换,将转换的模拟信号再送入执行部分。 1.模数转换(a/d) 选择模数转换器的选择主要从四个方面考虑: (1)分辨率与量化误差:分辨率是衡量a/d转换器分辨输入模拟量最小变化程度的技术指标。a/d转换器的分辨率取决与a/d转换器的位数。量化误差是由于a/d转换器有限字长数字量对输入模拟量进行的离散取样(量化)而引起的误差,其在理论上为一个单位的分辨率,即分辨率与量化误差是统一的。(2)转换精度:转换精度反映了一个实际a/d转换器与一个理想a/d转换器在量化上的差值,用绝对误差或相对误差来表示。转换精度指标有时以综合误差指标表达方式给出,有时以分项误差指标表达方式给出。(3)转换速率:转换速率是指a/d转换器在每秒钟内所完成的转换次数。它与转换时间(既a/d转换从启动到结束所需的时间)互为倒数关系。(4)满刻度范围:满刻度范围是指a/d转换器所允许的输入电压范围。满刻度范围是一个名义值,实际a/d转换器所允许的最大输入值要比满刻度值小。结合以上几个方面因素,本系统采用tlc5510作为模数转换器。图7 tlc5510的i/o时序2.数模转换器(d/a)的选择模数转换器的选择从以下四方面考虑:(1)分辨率:分辨率指当输入数字发生单位数码变化时所对应模拟量的输出的变化量。数值换算方式如a/d的分辨率一致。(2)转换时间:转换时间指当输入二进制代码,从最小值突跳到最大值时,其模拟量电压达到与其稳定值之差小于 1/2lsb 时所需的时间,因而转换时间又称稳定时间,其值通常比a/d转换时间要小得多。(3)转换精度:转换精度指整个工作区间实际的输出与理想的输出电压之间的偏差,可用绝对值或相对值来表示。转换精度包含了d/a转换器误差的所有因素。(4)尖峰误差:尖峰误差是指输入代码发生变化时刻而使输出模拟量产生的尖峰所造成的误差。产生尖峰误差的原因是由于诸开关在切换过程中响应时间不一致和寄生参数所造成的。尖峰持续的时间虽然很断,但可能幅值很大,在某些场合必须施加相应的措施予以避免。由于尖峰的出现是非周期的,因而不能采取简单的滤波方法来消除,常用单稳电路或s/h电路,利用单稳的延迟时间来躲过尖峰。鉴于以上四方面因素,选择ad7524作为数模转换器件。ad7524是cmos数模转器。图8 ad7524的时序图3.执行部分执行部分由电阻、三极管、续流二极管、继电器和被控部分构成。outda输出信号控制三极管的导通,三极管导通继电器工作,开关闭合,被控设备工作,续流二极管起保护作用,防止继电器线圈的反向电压击穿三极管。4.数据存储器ram接口设计系统选用is61c6416作为外扩ram,当tms320lf2407访问片内局部数据存储器时,数据空间选择信号和存取选通信号处于高阻状态。只有当tms320lf2407访问映射到外部存储器地址范围的存储单元时,外部总线才有效。有效表示外部总线正被数据存储器占用。每当外部总线有效(访问外部存储器或i/o)时,tms320lf2407将把信号置为低电平。3.7 串行接口电路的设计tms320lf2407串行通信接口(sci)模块是一个标准的8位通用异步接收/发送(uart)可编程串行通信接口。sci有两个串行引脚,scitxd(sci发送输出脚),scirxd(sci接受输入脚);baud rate可编程为64k种;奇偶校验/无奇偶校验功能;四种错误检测标志:parity, overrun, framing, and break detection;半双工或者全双工通讯模式;nrz通讯模式;发送和接受中断使能分开。因为dsp tms320lf2407用高性能静态cmos技术,使得输出电压降为3.3v,为与标准逻辑ttl电平相匹配,采用电阻网络将ttl电平降为+3.3v电平,通过max232芯片作为ttl电平到rs232电平转换电路。3 高速数据采集系统的方案分析比较 设计一个高速数据采集系统应满足以下两个基本性能要求:一是高速性,现在高速数据采集通常要求达到几十甚至几百 msps的采样速度,因此需要采用高速adc技术和高速缓存技术来保证采样和数据传输的高速性;二是大容量,高速数据采集必然带来巨大的数据流量,一个4通道20mh 采样率16位精度数据采集系统采样 0.1s 将产生 16m的数据量,所以需要采用海量缓存来解决采样数据的存储问题。 为此,针对上述提出的方案,在此做出简单的分析与比较如下:(1)单片机控制的高速数据采集系统是一种由at89c51单片机控制的高速数据采集系统。该系统的数据采集与存储完全靠硬件实现,其数据采样频率只取决于所选用的a/d转换器, 而不受at89c51单片机速度的影响,因而可实现高速数据采集。本数据采集系统与y一些传统的数据采集系统相比较,具有采集数据快,采集精度高,实时性好的特点,采用 16 位单片机,高速采样/保持器件 ad346,高速模/数转换器件的 ad579 及直接存取的方式,不仅实现了数据采集系统的最关键性功能,而且在性能上有了明显的提高。该数据采集系统是一个独立且通用的数据采集处理、分析系统,可广泛应用于实时监测。(2)基于fpga高速数据采集系统采用fpga和usb2.0芯片cy7c68013为核心的高速采集系统,设计了在fpga的控制下,usb接口模块、ad转换模块等协同工作下对输入信号的数据采集系统。该系统可以实现对信号的高速采集,并通过usb总线与上位机通信,实现在labview控制界面下进行显示以及数据的存储,这种基于fpga的同步采集、实时读取采集数据的设计充分发挥了fpga和usb的优点,提高系统采集和传输速度。(3)基于dsp的高速数据采集处理系统中该系统以tms320lf2407为核心,对模拟信号进行高速采集,并转换成数字信号,然后暂存到ram中,并通过串口传输到系统微机中。本系统硬件连接相对简单,其数据采集与传输简单可行,数据的采集、处理、传输主要都由软件来实现。本系统包含模数转换(a/d)、数模转换(d/a)、串行通信等模块,主要功能是实现模拟量从一个终端到另一个终端的高速采集。本系统在信号处理、自动控制、语音、通信中可以得到广泛的应用,但由于工作环境的需要,有时需要扩展两片(多片)a/d和两片(多片)dsp构成双通道同步采样数据采集与处理系统。4高速数据采集系统的设计4.1 设计思想高速数据采集系统中需要将模拟量转换为数据量,而 a/d是将模拟量转换为数字量的器件,他需要考虑的指标有:分辨率、转换时间、转换误差等等。而单片机是该系统的基本的微处理系统,它完成数据读取、处理及逻辑控制,数据传输等一系列的任务。在该系统中采用的是8051系列的单片机。采用rs232c标准接口,由芯片max232实现的通信。采用的是led数码管显示模拟量,虚拟终端显示数字量。a/d转换器单片机led显示模拟量虚拟终端显示数字量max232采集信号图9系统框图4.2 设计方案1.a/d模数转换的选择a/d转换器的种类很多,就位数来说,可以分为8位、10位、12位和16位等。位数越高其分辨率就越高,价格也就越贵。a/d转换器型号很多,而其转换时间和转换误差也各不相同。(1)逐渐逼近式a/d转换器:它是一种速度快、精度较高、成本较低的直接式转换器,其转换时间在几微秒到几百微秒之间。(2)双积分a/d转换器:它是一种间接式的a/d转换器,优点是抗干扰能力强,精度比较高,缺点是数度很慢,适用于对转换数度要求不高的系统。(3)并行式a/d转换器:它又被称为flash(快速)型,它的转换数度很高,但她采用了很多个比较器,而n位的转换就需要2n-1个比较器,因此电路规模也极大,价格也很贵,只适用于视频a/d转换器等数度特别高的领域。鉴于上面三种方案,在价格、转换速度等多种标准考量下,在本设计选用的是逐渐逼近式a/d转换器adc0809。2.单片机的选择单片机是一种面向大规模的集成电路芯片,是微型计算机中的一个重要的分支。此系统是由cpu、随即存取数据存储器、只读程序存储器、输入输出电路(i/o口),还有可能包括定时/计数器、串行通信口、显示驱动电路(lcd和led驱动电路)、脉宽调制电路、模拟多路转换器及a/d转换器等电路集成到一个单块芯片上,构成了一个最小但完善的计算机任务。单片机要使用特定的组译和编译软件编译程序,在用keiluvision4把程序下载到单片机内。而本设计选用的是at89c51。3.串行口的选择该串行口我选用了标准rs-232c接口,它是电平与ttl电平转换驱动电路。常用的芯片是max232,max232的优点是:(1)一片芯片可以完成发送转换和接收转换的双重功能。(2)单一电源+5v供电(3)它的电路设计与连接比较简单而且功能齐全。4.显示部分采用led数码管来显示输入的电压,而通过串口通行在虚拟终端来显示数字量。5.硬件设计5.1 at89c51单片机at89c51是一种低功耗、高性能cmos8位微控制器,具有8k 在系统可编程flash 存储器。使用atmel 公司高密度非易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。片上flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位cpu 和在系统可编程flash,使at89s51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。at89s51具有以下标准功能: 8k字节flash,256字节ram,32 位i/o 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,at89s51 可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。图10 at89c51的引脚图它一共有40个引脚,引脚又分为四类。其中有四个电源引脚,用来接入单片机的工作电源。工作电源又分主电源、备用电源和编程电源。还有两个时钟引脚xtal1、xtal2。还有由p0口、p1口、p2口、p3口的所有引脚构成的单片机的输入/输出(io)引脚。最后一种是控制引脚,控制引脚有四条,部分引脚具有复位功能。综上所述,单片机的引脚特点是:1.单片机多功能,少引脚,使得引脚复用现象较多。2.单片机具有四种总线形式:p0和p2组成的16位地址地址总线;p0分时复用为8位数据总线;ale、psen、rst、ea和p3口的int0、int1、t0、t1、wr、rd以及p1口的t2、t2ex组成控制总线;而p3口的rxd、txd组成串行通信总线。5.2模数转换器adc0809按模拟量转换成数字量的原理可以分为3种:双积分式、逐次逼近式及并行式a/d转换器。而该系统选用的是adc0809。1.c0809的介绍adc0809是八通道的八位逐次逼近式a/d转换器。由单一的5v电源供电,片内带有锁存功能的8选1的模拟开关。由c、b、a的编码来决定所选的模拟通道。转换时间为100us。转换误差为1/2lsb。图11 adc0809的引脚图in7in0 :八个通道的模拟输入量。adda、addb、addc:模拟通道地址线。当cba=000时,in0输入,当cba=111时,in7输入。ale:地址锁存信号。start:转换启动信号,高电平有效。d7d0:数据输出线。三态输出,d7是最高位,d0是最低位。oe:输出允许信号,高电平有效。clk:时钟信号,最高频率为 640khz。eoc:转换结束状态信号。上升沿后高电平有效。vcc:+5v电源。vref:参考电压。2.adc0809时序图及其接口电路adc0809的时序图如下图所示: 图12 adc0809的时序图其工作过程是:ale的上升沿将a、b、c端选择的通道地址锁存到8位a/d转换器的输入端。start的下降验启动8位a/d转换器进行转换。a/d转换开始使eoc端输出低电平。a/d转换结束,eoc输出高电平。该信号通常可作为中断申请信号。oe为读出数据允许信号。oe端为高电平时,可以读出转换的数字量。硬件电路设计时,需根据时序关系及软件进行设计。adc0809与at89c52单片机的接口方式,如下图所示:图13 adc0809与at89c52单片机的接口方式由于adc0809具有输出3态锁存器,其八位数据输出引脚可直接与数据总线相连。地址译码引脚a、b、c分别与地址总线低三位a0、a1、a2相连,以选通in0in7中的一个通道。在启动a/d转换时,由单片机的p3.4控制a/d转换器的地址锁存和转换启动,由于ale和start连在一起,因此ad0809在锁存通道的同时,也启动了a/d转换器。在读取转换结果时,用低电平的读信号rd,产生的正脉冲作为oe信号,用以打开三态输出锁存器。将转换结果输出。而低电平的写信号wr则表示转换结束状态信号。5.3 单片机与虚拟终端的通信1.串口通信rs-232c计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。 rs-232-c接口(又称 eia rs-232-c)是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(eia)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标 准。它的全名是“数据终端设备(dte)和数据通讯设备(dce)之间 串行二进制数据交换接口技术标准”该标准规定采用一个25个脚的 db25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。(1)接口的信号内容 实际上rs-232-c的25条引线中有许多是很少使用的,在计算机与终端通讯中一般只使用3-9条引线。rs-232-c最常用的9条引线的信号内容。见表3.2所示(2)接口的电气特性 在rs-232-c中任何一条信号线的电压均为负逻辑关系。即:逻辑“1”,-5 -15v;逻辑“0” +5 +15v 。噪声容量为2v。即要求接收器能识别低至+3v的信号作为逻辑“0”,高于3v的信号作为逻辑“1”。 表1 常用引线的信号内容引脚序号信号名称符号流向功能2发送数据txddte-dcedte发送串行数据3接收数据rxddtedcedte请求dce将线路切换到发送方式5允许发送ctsdte-dcedce告诉dte线路已接通可以发送数据6数据设备准备好dsrdte-dcedce准备好7信号地信号公共地8载波检测dcddtedcedte准备好22振铃指示ridte-dce表示dce与线路接通,出现振铃(3)接口的物理结构 rs-232c接口连接器一般使用型号为db-25的25芯插头座,通常插头在dce端,插座在dte端。一些设备与pc机连接的rs-232-c接口,因为不使用对方的传送控制信号,只需三条接口线,即“发送数据”、“接收数据”和“信号地”。所以采用db-9的9芯插头座,传输线采用屏蔽双绞线。(4)传输电缆长度 由rs-232c标准规定在码元畸变小于4%的情况下,传输电缆长度应为50英尺,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的用户是按码元畸变10-20%的范围工作的,所以实际使用中最大距离会远超过50英尺。 2.简介max232max232芯片是美信公司专门为电脑的rs-232标准串口设计的接口电路,使用+5v单电源供电,可以实现ttl电平与rs-232c电平相互转换的ic芯片。图14 max232的引脚结构图其中引脚1-6(c1+、v+、c1_、c2+、c2-、v-)用于电源电压转换,只要在外部接入相应电解电容即可;引脚7-10和引脚11-14构成两组ttl信号电平与rs-232c信号电平的转换电路,对应引脚可直接与单片机串行口的ttl电平引脚和pc的rs-232c电平引脚相连。单片机与虚拟终端之间的连接如下图所示:图15 单片机与虚拟终端的连接图5.4 led数码显示器的应用原理简单的讲,led数码显示器就是由发光二极管组成的,其内部结构如图16所示,led数码显示器有两种连接方式:(1)共阴极接法:把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二极管的阳极与输入端相连。如图17所示。(2)共阳极接法。把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5v,每个发光二极管的阴极通过电阻与输入端相连。如图18所示。 图16 led内部结构 图17 共阴极接法 图18 共阳极接法为了显示字符,要为led显示器提供显示段码(或称字形代码),组成一个“8”字的七段,再加上1个小数点位,共计八段。5.5 总设计图图19总设计图6.软件设计6.1 流程图图20 程序流程图6.2 源程序/*main.c*/#include led.c#define uchar unsigned char#define uint unsigned intvoid main() while(1) uint cnt=0; uchar i,j,n=100; while(cnt!=560) switch(cnt+) case 0: ad0to7();break; case 1: decodenum(vi0,0);break; case 70: decodenum(vi1,1);break; case 140: decodenum(vi2,2);break; case 210:decodenum(vi3,3);break; case 280:decodenum(vi4,4);break; case 350:decodenum(vi5,5);break; case 420:decodenum(vi6,6);break; case 490:decodenum(vi7,7);break; disp(); /*串行通信设置*/ tmod = 0x20;/波特率发生器t1工作在模式2上 scon = 0x40;/设串口工作方式1,发送状态 pcon = 0x00;/波特率不加倍 th1=0xfa;/设定波特率4800 tl1=th1; tr1=1;/开 for(j=0;j8;) sbuf = ad_action(j);/数据送入串口缓冲器 while(!ti); /等待串行中断 ti = 0; /清ti,必须软件清除 j+; while(-n); /延时 for(i=0;i50;i+); /*adc0809.c*/#include #include#include numcode.h#define uchar unsigned char#define uint unsigned intuchar chnn;/通道号chnn chn#define adin xbyte0x7ff8+chnnstatic float vi8;void delayus(uint us) while(us-);uchar ad_action(uchar chn)/读ad转换数据 uchar read_data; chnn=chn; adin=chn; delayus(15);/转换数据 read_data=adin; return read_data; void ad0to7() uchar i; for(i=0;i8;i+) vii=(ad_action(i)/255.0)*5.0+0.009; /0.009为校准ad的误差 /*led.c*/#include adc0809.c#define led_data p2 /通道号#define a 10#define u 11sbit led1=p10;sbit led2=p11;sbit led3=p12;sbit led4=p13;sbit dp=p14;#define led_slect p1static uchar dispdata4;void decodenum(float adv,uchar chn) uint temp; temp=(uint)(adv*100); dispdata0=temp/100; dispdata1=temp/10%10; dispdata2=temp%10; dispdata3=chn;/最后一位为通道号void select(uchar led) switch(led) case 0:led1=0;break; case 1:led2=0;break; case 2:led3=0;break; case 3:led4=0;break; default: led_slect=0xff; void dispone(uchar led,bit ifpoint,uchar number) /number 0-9 select(led); if(ifpoint) dp=1; else dp=0; led_data=numnumber|0x80; delayus(300); led_slect=0xff; void disp() uchar i; b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论