1、单片机数据采集第一章 引言1.1本设计研究背景及其目的意义近年来,数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也有了迅速的开展,它可以广泛的应用于各种领域。数据采集系统起始于20世纪50年代,1956年美国首先研究了用在军事上的测试系统,目标是测试中不依靠相关的测试文件,由非成熟人员进行操作,并且测试任务是由测试设备高速自动控制完成的。由于该种数据采集测试系统具有高速性和一定的灵活性,可以满足众多传统方法不能完成的数据采集和测试任务,因而得到了初步的认可。大概在60年代后期,国内外就有成套的数据采集设备和系统多属于专用的系统。20世纪70年代后期,随着微型机的开展,诞生了采集器、仪
2、表同计算机溶为一体的数据采集系统。由于这种数据采集系统的性能优良,超过了传统的自动检测仪表和专用数据采集系统,因而获得了惊人的开展。从70年代起,数据采集系统开展过程中逐渐分为两类,一类是实验室数据采集系统,一类是工业现场数据采集系统。20世纪80年代随着计算机的普及应用,数据采集系统得到了很大的开展,开始出现了通用的数据采集与自动测试系统。该阶段的数据采集系统主要有两类,一类以仪表仪器和采集器、通用接口总线和计算机组成。这类系统主要应用于实验室,在工业生产现场也有一定的应用。第二类以数据采集卡、标准总线和计算机构成,这一类在工业现场应用较多。20世纪80年代后期,数据采集发生了很大的变化,工
3、业计算机、单片机和大规模集成电路的组合,用软件管理,是系统的本钱减低,体积变小,功能成倍增加,数据处理能力大大加强。1120世纪90年代至今,在国际上技术先进的国家,数据采集系统已成功的运用到军事、航空电子设备及宇航技术、工业等领域。由于集成电路制造技术的不断提高,出现了高性能、高可靠的单片机数据采集系统DAS。数据采集技术已经成为一种专门的技术,在工业领域得到了广泛的应用。该阶段的数据采集系统采用模块式结构,根据不同的应用要求,通过简单的增加和更改模块,并结合系统编程,就可扩展或修改系统,迅速组成一个新的系统。1.2本设计研究的目的意义尽管现在以微机为核心的可编程数据采集与处理采集技术的开展
4、方向得到了迅速的开展,而且组成一个数据采集系统只需要一块数据采集卡,把它插在微机的扩展槽内并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响。相较于数据采集板卡本钱和功能的限制,单片机具多功能、高效率、高性能、低电压、低功耗、低价格等优点,而双单片机又具有精度较高、转换速度快、能够对多点同时进行采集,因此能够开发出能满足实际应用要求的、电路结构简单的、可靠性高的数据采集系统。这就使得以单片机为核心的数据采集系统在许多领域得到了广泛的应用。1.3 本设计的主要任务本设计用单片机控制多路数据采集系统,本文着重介绍该系统的工作原理及硬件与软件设计,本设计的主要组
5、成如下:1多路数据输入单元。2采样保持电路的A/D转换单元。3硬件和单片机的连接电路。4单片机输出的数据锁存和D/A转换单元。多路数据采集系统的方案及总体设计,包括主体电路的设计和单片机控制电路的设计,因此要完成单片机应用的硬、软件设计并完成软件调试,以满足整个系统的要求。整个系统的设计包括硬件设计和软件设计两局部。硬件设计主要完成多路数据采集整个硬件电路及I/O接口的设计:包括模拟多路开关电路、运算放大电路、采样保持电路、模数转换电路、硬件和单片机的连接电路、数模转换电路、转换开关保护电路等组成;软件设计主要完成控制整个系统的应用程序与调试。包括主程序、A/D和D/A转换程序、多路开关控制以
6、及I/O接口控制等程序的设计。系统总框图如图1所示。 图1 系统总框图第二章 系统硬件设计21 单片机的概述单片机是一种集成的电路芯块采用了超大规模技术把具有运算能力如算术运算、逻辑运算、数据传送、中断处理的微处理器CPU,随机存取数据存储器RAM,只读程序存储器ROM,输入输出电路I/O口,可能还包括定时计数器,串行通信口SCI,显示驱动电路LCD或LED驱动电路,脉宽调制电路(PWM),模拟多路转换及A/D转换器等电路集成到一块单片机上,构成一个最小然而很完善的计算机系统。这些电路能在软件的控制下准确快速的完成程序设计者事先规定的任务。总的而言单片机的特点可以归纳为以下几个方面:集成度高、
7、存储容量大、外部扩展能力强、控制功能强、低电压、低功耗、性能价格比高、可靠性高这几个方面。8单片机按内部数据通道的宽度,可分为4位、8位、16位及32位单片机。它们被应用在不同领域里,8位单片机由于功能强大,被广泛的应用在工业控制、智能接口、仪表仪器等各个领域。8位单片机在中、小规模应用场合仍占主流地位,代表了单片机的开展方向,在单片机应用领域发挥越来越大的作用。随着移动通讯、网络技术、多媒体技术等高科技产品进入家庭,32位单片机应用得到了长足开展。纵观单片机的开展过程,可以预示单片机的开展趋势:微型单片化低功耗CMOS3、与多品种共存4、可靠性和应用水平越来越高单片机有着微处理器所不具备的功
8、能,它可以独立地完成现代工业控制所要求的智能化控制功能这就是单片机的最大特点。然而单片机又不同于单板机,芯片在没有开发前,它只是具备功能极强的超大规模集成电路,如果赋予它特定的程序,它便是一个最小的、完整的微机控制系统。它与单板机或个人电脑有着本质的区别,单片机属于芯片级应用,需要用户了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使芯片具备特定的智能。2.2 AT89C51简介AT89C51是一种带4K字节FLASH存储器FPEROMFlash Programmable and Erasable Read Only Mem
9、ory的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案AT89C51特性概述AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I
10、/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。AT89C51管脚说明:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
11、在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故
12、。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能存放器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流ILL这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD串行输入口 P3.1 TXD串
13、行输出口 P3.2 /INT0外部中断0 P3.3 /INT1外部中断1 P3.4 T0记时器0外部输入 P3.5 T1记时器1外部输入 P3.6 /WR外部数据存储器写选通 P3.7 /RD外部数据存储器读选通 P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要
14、注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,那么在此期间外部程序存储器0000H-FFFFH,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部
15、程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源VPP。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 2.1 硬件设计思想多路数据采集系统的正常运行依赖于整个系统硬件设备的科学设计。根据课题设计任务的要求,结合软件的设计,选择适宜的电路元件,设计合理的接口电路以便能够高效率、稳定合理、方便的实现多路数据采集。1多路数据输入局部在不要求高速采样的场合,一般采用共享的A/D转换通道,分时对各路模拟量进行模/数转换,目的是简化电路,降低本钱。用模拟多路开关来轮流切换模拟量与A/D转换器间的通道,使得在一个特定的时间内,只允许一路模拟
16、信号输入到A/D转换器,从而实现分时转换的目的。一般模拟多路开关有2N个模拟输入端,N个通道选择端,由N个选通信号控制选择其中一个开关闭合,使对应的模拟输入端与多路开关的输出端接通,让该路模拟信号通过。有规律地周期性改变N个选通信号,可以按固定的序列周期性闭合各个开关,构成一个周期性分组的分时复用输出信号,由后面的A/D转换器分时复用对各通道模拟信号进行周期性的转换。在数据采集时,来自传感器的模拟信号,一般都是比拟弱的电平信号,因此需要放大电路把输入的模拟信号进行适当的放大。放大器的作用是将这些微弱的输入信号进行放大,以便充分利用A/D转换器的满量程分辨率。为了充分利用A/D转换器的分辨率A/
17、D转换器输出的数字位数,就要把模拟输入信号放大到与A/D转换器满量程电压相应得电平值。2采样保持局部模拟信号进行A/D转换时,从启动转换到转换结束输出数字量,需要一定的转换时间。在这个转换时间内,模拟信号要根本保持不变。否那么转换精度没有保证,特别当输入信号频率较高时,会造成很大的转换误差。要防止这种误差的产生,必须在A/D转换开始时将输入信号的电平保持住,而在A/D转换结束后又要跟踪输入信号的变化。实现这种功能可以用采样/保持器来实现,因而,由于采样/保持器的参加,大大提高了数据采集系统的采集频率。3A/D转换局部因为单片机只能处理数字信号,所以需要把模拟信号转换成数字信号,实现这一转换功能
18、的器件是A/D转换器。A/D转换器是采样通道的核心,因此,A/D转换器是影响数据采集系统采样速率和精度的主要因素之一。4硬件和单片机的连接局部该局部用来将传感器输出的数字信号进行整形或电平调整,然后再传给单片机。单片机及外设负责对数据采集系统的工作进行管理和控制,并对采集到的数据作相应的处理。 2.2 硬件电路设计 本系统的硬件设计主要包括:多路转换开关及前置放大电路的设计,采样保持电路的设计,模数转换电路的设计,数模转换电路的设计。1. ADC 0808/0809ADC 0808和ADC 0809除精度略有差异外(前者精度为8位、后者精度为7位),其余各方面完全相同。它们都是CMOS器件,不
19、仅包括一个8位的逐次逼近型的ADC局部,而且还提供一个8通道的模拟多路开关和通道寻址逻辑,因而有理由把它作为简单的“数据采集系统。利用它可直接输入8个单端的模拟信号分时进行A/D转换,在多点巡回检测和过程控制、运动控制中应用十分广泛。1) 主要技术指标和特性1分辨率: 8位。2总的不可调误差: ADC0808为LSB,ADC 0809为1LSB。3转换时间: 取决于芯片时钟频率,如CLK=500kHz时,TCONV=128s。4单一电源: +5V。5模拟输入电压范围: 单极性05V;双极性5V,10V(需外加一定电路)。6具有可控三态输出缓存器。7启动转换控制为脉冲式(正脉冲),上升沿使所有内
20、部存放器清零,下降沿使A/D转换开始。8使用时不需进行零点和满刻度调节。2) 内部结构和外部引脚ADC0808/0809的内部结构和外部引脚分别如图11.19和图11.20所示。内部各局部的作用和工作原理在内部结构图中已一目了然,在此就不再赘述,下面仅对各引脚定义分述如下: 图11.19 ADC0808/0809内部结构框图1IN0IN78路模拟输入,通过3根地址译码线ADDA、ADDB、ADDC来选通一路。2D7D0A/D转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。8位排列顺序是D7为最高位,D0为最低位。3ADDA、ADDB、ADDC模拟通道选择地址信号,ADDA为低
21、位,ADDC为高位。地址信号与选中通道对应关系如表11.3所示。4VR(+)、VR(-)正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。在单极性输入时,VR(+)=5V,VR(-)=0V;双极性输入时,VR(+)、VR(-)分别接正、负极性的参考电压。图11.20 ADC0808/0809外部引脚图表11.3 地址信号与选中通道的关系地 址选中通道ADDCADDBADDA000011110011001101010101IN0IN1IN2IN3IN4IN5IN6IN75ALE地址锁存允许信号,高电平有效。当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。在使用时,该
22、信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。6STARTA/D转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使逐次逼近存放器清零,下降沿开始A/D转换。如正在进行转换时又接到新的启动脉冲,那么原来的转换进程被中止,重新从头开始转换。7EOC转换结束信号,高电平有效。该信号在A/D转换过程中为低电平,其余时间为高电平。该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反应接到START端,但在刚加电时需由外电路第一次启动。8OE输出允许信号,高电平有效。当微处理器送出该信号时,ADC08
23、08/0809的输出三态门被翻开,使转换结果通过数据总线被读走。在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。3) 工作时序与使用说明ADC 0808/0809的工作时序如图11.21所示。当通道选择地址有效时,ALE信号一出现,地址便马上被锁存,这时转换启动信号紧随ALE之后(或与ALE同时)出现。START的上升沿将逐次逼近存放器SAR复位,在该上升沿之后的2s加8个时钟周期内(不定),EOC信号将变低电平,以指示转换操作正在进行中,直到转换完成后EOC再变高电平。微处理器收到变为高电平的EOC信号后,便立即送出OE信号,翻开三态门,读取转换结果。图11.21 ADC 080
24、8/0809工作时序模拟输入通道的选择可以相对于转换开始操作独立地进行(当然,不能在转换过程中进行),然而通常是把通道选择和启动转换结合起来完成(因为ADC0808/0809的时间特性允许这样做)。这样可以用一条写指令既选择模拟通道又启动转换。在与微机接口时,输入通道的选择可有两种方法,一种是通过地址总线选择,一种是通过数据总线选择。如用EOC信号去产生中断请求,要特别注意EOC的变低相对于启动信号有2s+8个时钟周期的延迟,要设法使它不致产生虚假的中断请求。为此,最好利用EOC上升沿产生中断请求,而不是靠高电平产生中断请求。74ls138译码器内部电路逻辑图功能表简单应用74HC138:74
25、LS138 为3 线8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式,其74LS138工作原理如下: 当一个选通端G1为高电平,另两个选通端/(G2A)和/(G2B)为低电平时,可将地址端A、B、C的二进制编码在一个对应的输出端以低电平译出。 74LS138的作用:利用 G1、/(G2A)和/(G2B)可级联扩展成 24 线译码器;假设外接一个反相器还可级联扩展成 32 线译码器。 假设将选通端中的一个作为数据输入端时,74LS138还可作数据分配器用与非门组成的3线-8线译码器74LS1387段显示译码器7448是输出高电平有效的译码器,其真值表如表1。 74
26、48/SN7448 引脚功能图工作电压:5V7448除了有实现7段显示译码器根本功能的输入DCBA和输出YaYg端外,7448还引入了灯测试输入端LT和动态灭零输入端RBI,以及既有输入功能又有输出功能的消隐输入/动态灭零输出BI/RBO端。 由7448真值表可获知7448所具有的逻辑功能:17段译码功能LT=1,RBI=1在灯测试输入端LT和动态灭零输入端RBI都接无效电平时,输入DCBA经7448译码,输出高电平有效的7段字符显示器的驱动信号,显示相应字符。除DCBA = 0000外,RBI也可以接低电平,见表1中116行。2消隐功能BI=0此时BI/RBO端作为输入端,该端输入低电平信号
27、时,表1倒数第3行,无论LT 和RBI输入什么电平信号,不管输入DCBA为什么状态,输出全为“0”,7段显示器熄灭。该功能主要用于多显示器的动态显示。3灯测试功能LT = 0此时BI/RBO端作为输出端, 端输入低电平信号时,表1最后一行,与 及DCBA输入无关,输出全为“1”,显示器7个字段都点亮。该功能用于7段显示器测试,判别是否有损坏的字段。4动态灭零功能LT=1,RBI=1此时BI/RBO端也作为输出端,LT 端输入高电平信号,RBI 端输入低电平信号,假设此时DCBA = 0000,表1倒数第2行,输出全为“0”,显示器熄灭,不显示这个零。DCBA0,那么对显示无影响。该功能主要用于
28、多个7段显示器同时显示时熄灭高位的零。表1:真值表 图2 7段显示译码器7448a逻辑图b方框图c符号图 图2给出了7448的逻辑图,方框图和符号图。由符号图可以知道,4号管脚端具有输入和输出双重功能。作为输入BI低电平时,G21为0,所有字段输出置0,即实现消隐功能。作为输出RBO,相当于LT,及CT0的与坟系,即LT=1,RBI=0,DCBA=0000时输出低电平,可实现动态灭零功能。3号LT端有效低电平时,V20=1,所有字段置1,实现灯测试功能。2.1 硬件设计电路 LED 显示器中每个发光二极管要通过 5mA20mA 电流才能到达正常亮度,SPCE061A 的输入电流可到达 12mA
29、,输出可达 5mA,实际上不用驱动电路即可到达正常亮度,这里为了可靠性设计采用晶体管构成驱动电路。整个显示过程中采用动态显示,即六位显示器逐一轮流显示,每位持续 1ms,10ms或 20ms之内循环一遍,当然可以适当进行更改,但刷新速度不要小于每秒三十桢。这样,由于视觉暂留现象,我们看到的便是6只显示器同时在显示。2.2 硬件设计功能描述 完成 6 位 7 段数码管的显示,位选和段选均为高电平有效。可以控制任意一位或者多位的显示6 位以下。LED显示,说明变量R_DISPLAY为要显示的数字等。数码管LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,
30、c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。二、驱动方式1、静态显示驱动: 静态驱动也称直
31、流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O脚进行驱动,或者使用如BCD码二-十进位*器*进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O脚多,如驱动5个数码管静态显示那么需要5×8=40根I/O脚来驱动,故实际应用时必须增加*驱动器进行驱动,增加了硬体电路的复杂性。 2、动态显示驱动: 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制翻开,该位
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1