单片机数据采集.docx
- 文档编号:9570580
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:26
- 大小:330.86KB
单片机数据采集.docx
《单片机数据采集.docx》由会员分享,可在线阅读,更多相关《单片机数据采集.docx(26页珍藏版)》请在冰豆网上搜索。
单片机数据采集
第一章引言
1.1本设计研究背景及其目的意义
近年来,数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也有了迅速的发展,它可以广泛的应用于各种领域。
数据采集系统起始于20世纪50年代,1956年美国首先研究了用在军事上的测试系统,目标是测试中不依靠相关的测试文件,由非成熟人员进行操作,并且测试任务是由测试设备高速自动控制完成的。
由于该种数据采集测试系统具有高速性和一定的灵活性,可以满足众多传统方法不能完成的数据采集和测试任务,因而得到了初步的认可。
大概在60年代后期,国内外就有成套的数据采集设备和系统多属于专用的系统。
20世纪70年代后期,随着微型机的发展,诞生了采集器、仪表同计算机溶为一体的数据采集系统。
由于这种数据采集系统的性能优良,超过了传统的自动检测仪表和专用数据采集系统,因而获得了惊人的发展。
从70年代起,数据采集系统发展过程中逐渐分为两类,一类是实验室数据采集系统,一类是工业现场数据采集系统。
20世纪80年代随着计算机的普及应用,数据采集系统得到了很大的发展,开始出现了通用的数据采集与自动测试系统。
该阶段的数据采集系统主要有两类,一类以仪表仪器和采集器、通用接口总线和计算机组成。
这类系统主要应用于实验室,在工业生产现场也有一定的应用。
第二类以数据采集卡、标准总线和计算机构成,这一类在工业现场应用较多。
20世纪80年代后期,数据采集发生了很大的变化,工业计算机、单片机和大规模集成电路的组合,用软件管理,是系统的成本减低,体积变小,功能成倍增加,数据处理能力大大加强。
[11]
20世纪90年代至今,在国际上技术先进的国家,数据采集系统己成功的运用到军事、航空电子设备及宇航技术、工业等领域。
由于集成电路制造技术的不断提高,出现了高性能、高可靠的单片机数据采集系统(DAS)。
数据采集技术已经成为一种专门的技术,在工业领域得到了广泛的应用。
该阶段的数据采集系统采用模块式结构,根据不同的应用要求,通过简单的增加和更改模块,并结合系统编程,就可扩展或修改系统,迅速组成一个新的系统。
1.2本设计研究的目的意义
尽管现在以微机为核心的可编程数据采集与处理采集技术的发展方向得到了迅速的发展,而且组成一个数据采集系统只需要一块数据采集卡,把它插在微机的扩展槽内并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响。
相较于数据采集板卡成本和功能的限制,单片机具多功能、高效率、高性能、低电压、低功耗、低价格等优点,而双单片机又具有精度较高、转换速度快、能够对多点同时进行采集,因此能够开发出能满足实际应用要求的、电路结构简单的、可靠性高的数据采集系统。
这就使得以单片机为核心的数据采集系统在许多领域得到了广泛的应用。
1.3本设计的主要任务
本设计用单片机控制多路数据采集系统,本文着重介绍该系统的工作原理及
硬件与软件设计,本设计的主要组成如下:
(1)多路数据输入单元。
(2)采样保持电路的A/D转换单元。
(3)硬件和单片机的连接电路。
(4)单片机输出的数据锁存和D/A转换单元
多路数据采集系统的方案及总体设计,包括主体电路的设计和单片机控制电路的设计,因此要完成单片机应用的硬、软件设计并完成软件调试,以满足整个系统的要求。
整个系统的设计包括硬件设计和软件设计两部分。
硬件设计主要完成多路数据采集整个硬件电路及I/O接口的设计:
包括模拟多路开关电路、运算放大电路、采样保持电路、模数转换电路、硬件和单片机的连接电路、数模转换电路、转换
开关保护电路等组成;软件设计主要完成控制整个系统的应用程序与调试。
包括
主程序、A/D和D/A转换程序、多路开关控制以及I/O接口控制等程序的设计
单
传感器
系统总框图如图1所示。
传感器
图1系统总框图
第二章系统硬件设计
2.1单片机的概述
单片机是一种集成的电路芯块采用了超大规模技术把具有运算能力(如算术
运算、逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输岀电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PW),模拟多路转换及A/D转换器等电路集成到一块单片机上,构成一个最小然而很完善的计算机系统。
这些电路能在软件的控制下准确快速的完成程序设计者事先规定的任务。
总的而言单片机的特点可以归纳为以下几个方面:
集成度高、存储容量大、外部扩展能力强、控制功能强、低电压、低功耗、性能价格比高、可靠性高这几个方面。
[8]
单片机按内部数据通道的宽度,可分为4位、8位、16位及32位单片机。
它们被应用在不同领域里,8位单片机由于功能强大,被广泛的应用在工业控制、智能接口、仪表仪器等各个领域。
8位单片机在中、小规模应用场合仍占主流地位,代表了单片机的发展方向,在单片机应用领域发挥越来越大的作用。
随着移
动通讯、网络技术、多媒体技术等高科技产品进入家庭,32位单片机应用得到
了长足发展。
纵观单片机的发展过程,可以预示单片机的发展趋势:
微型单片化低功耗CMOS
3、与多品种共存
4、可靠性和应用水平越来越高
单片机有着微处理器所不具备的功能,它可以独立地完成现代工业控制所要求的智能化控制功能这就是单片机的最大特点。
然而单片机又不同于单板机,芯片在没有开发前,它只是具备功能极强的超大规模集成电路,如果赋予它特定的程序,它便是一个最小的、完整的微机控制系统。
它与单板机或个人电脑有着本质的区别,单片机属于芯片级应用,需要用户了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使芯片具备特定的智能。
2.2AT89C51简介
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasable
ReadOnlyMemory)的低电压、高性能CMOS
8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案
AT89C51特性概述
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部
RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
AT89C51管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTLfl电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输岀原码,此时P0外部必须接上拉电阻。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输岀4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTLfl电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输岀电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给岀地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输岀口)
P3.2/INTO(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的
高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存
地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止
ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才
起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(OOOOH-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2.1硬件设计思想
多路数据采集系统的正常运行依赖于整个系统硬件设备的科学设计。
根据课题设计任务的要求,结合软件的设计,选择合适的电路元件,设计合理的接口电路以便能够高效率、稳定合理、方便的实现多路数据采集。
1)多路数据输入部分
在不要求高速采样的场合,一般采用共享的A/D转换通道,分时对各路模拟量进行模/数转换,目的是简化电路,降低成本。
用模拟多路开关来轮流切换模拟量与A/D转换器间的通道,使得在一个特定的时间内,只允许一路模拟信号输入到A/D转换器,从而实现分时转换的目的。
一般模拟多路开关有2N个模拟输入端,N个通道选择端,由N个选通信号控制选择其中一个开关闭合,使对应的模拟输入端与多路开关的输出端接通,让该路模拟信号通过。
有规律地周期性改变N个选通信号,可以按固定的序列周期性闭合各个开关,构成一个周期性分组的分时复用输出信号,由后面的A/D转换器分时复用对各通道模拟信号进行周期性的转换。
在数据采集时,来自传感器的模拟信号,一般都是比较弱的电平信号,因此需要放大电
路把输入的模拟信号进行适当的放大。
放大器的作用是将这些微弱的输入信号进行放大,以便充分利用A/D转换器的满量程分辨率。
为了充分利用A/D转换器的分辨率(A/D转换器输出的数字位数),就要把模拟输入信号放大到与A/D转换器满量程电压相应得电平值。
(2)采样保持部分
模拟信号进行A/D转换时,从启动转换到转换结束输出数字量,需要一定的转换时间。
在这个转换时间内,模拟信号要基本保持不变。
否则转换精度没有保证,特别当输入信号频率较高时,会造成很大的转换误差。
要防止这种误差的产生,必须在A/D转换开始时将输入信号的电平保持住,而在A/D转换结束后又要跟踪输入信号的变化。
实现这种功能可以用采样/保持器来实现,因而,由于采样/保持器的加入,大大提高了数据采集系统的采集频率。
3)A/D转换部分
因为单片机只能处理数字信号,所以需要把模拟信号转换成数字信号,实现这一转换功能的器件是A/D转换器。
A/D转换器是采样通道的核心,因此,A/D转换器是影响数据采集系统采样速率和精度的主要因素之一。
(4)硬件和单片机的连接部分
该部分用来将传感器输出的数字信号进行整形或电平调整,然后再传给单片机。
单片机及外设负责对数据采集系统的工作进行管理和控制,并对采集到的数据作相应的处理。
2.2硬件电路设计
本系统的硬件设计主要包括:
多路转换开关及前置放大电路的设计,采样
保持电路的设计,模数转换电路的设计,数模转换电路的设计。
1・ADC0808/0809
ADC0808和ADC0809除精度略有差别外(前者精度为8位、后者精度为7位),其余各方而完全相同。
它们都是CMOS器件,不仅包括一个8位的逐次逼近型的ADC部分,而且还提供一个8通道的模拟多路开关和通道寻址逻辑,因而有理由把它作为简单的“数据采集系统”。
利用它可直接输入8个单端的模拟信号分时进行A/D转换,在多点巡回检测和过程控制、运动控制中应用十分广泛。
1)主要技术指标和特性
(1)分辨率:
8位。
丄
(2)总的不可调误差:
ADC0808为土2LSB,ADC0809为±1LSB。
(3)转换时间:
取决于芯片时钟频率,如CLK=500kHz时,TCONV=128
(jSo
(4)单一电源:
+5V。
(5)模拟输入电压范围:
单极性0〜5V;双极性土5V,±10V(需外加一定电路)。
(6)具有可控三态输出缓存器。
(7)启动转换控制为脉冲式(正脉冲),上升沿使所有内部寄存器清零,下降沿使A/D转换开始。
(8)使用时不需进行零点和满刻度调节。
2)内部结构和外部引脚
ADC0808/0809的内部结构和外部引脚分别如图11.19和图11.20所示。
内部各部分的作用和工作原理在内部结构图中已一目了然,在此就不再赘述,下
面仅对各引脚定义分述如下:
1叫
L)
ADD,
A
AI上
D
A叫
ADD(
图11.19ADC0808/0809内部结构框图
(MSB)、
数
I字
'输
HI
(LSB))
(1)INO〜IN7——8路模拟输入,通过3根地址译码线ADDA、ADDB、
ADDC来选通一路。
(2)D7〜DO——A/D转换后的数据输出端,为三态可控输岀,故可直接和微处理器数据线连接。
8位排列顺序是D7为最高位,DO为最低位。
(3)ADDA、ADDB、ADDC——模拟通道选择地址信号,ADDA为低位,
ADDC为高位。
地址信号与选中通道对应关系如表11.3所示。
(4)VR(+)、
VR(-)——正、负参考电压输入端,用于提供片内DAC电阻
网络的基准电压。
在单极性输入时,VR(+)二5V,VR(-)=0V;双极性输入时,
叫一
1
28
<——IN2
【N—d
1
—I叫
叫一
3
26
—叫
IN—*
4
25
・ADD.A
叫一
5
24
v—ADD|{
START—*
6
23
p—ADDc
EOC
7
—ALE
巧一
8
21
—D7(msb)
OE—・
9
20
—D石
CLOCK—*.
10
19
一*1),
11
IS
_比一
VRW—
12
17
—no(LSB)
GND—
13
16
讣)
片一
14
15
2
VR(+)、VR(-)分别接正、负极性的参考电压。
图11.20ADC0808/0809外部引脚图
表11.3地址信号与选屮通道的关系
地址
ADDc
AIX
ADDb
1
ADDa
选中通道
0
()8080
0
8UQ
0
INo
0
0
1
INi
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
(5)ALE——地址锁存允许信号,高电平有效。
当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。
在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。
(6)START——A/D转换启动信号,正脉冲有效。
加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始A/D转换。
如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。
(7)EOC——转换结束信号,高电平有效。
该信号在A/D转换过程中为
低电平,其余时间为高电平。
该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。
在需要对某个模拟量不断采样、转换的情况下,EOC
也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。
(8)0E——输出允许信号,高电平有效。
当微处理器送出该信号时,ADC0808/0809的输出三态门被打开,使转换结果通过数据总线被读走。
在中断工作方式下,该信号往往是CPU发岀的中断请求响应信号。
3)工作时序与使用说明
ADC0808/0809的工作时序如图11.21所示。
当通道选择地址有效时,ALE信号一出现,地址便马上被锁存,这时转换启动信号紧随ALE之后(或与ALE同时)岀现。
START的上升沿将逐次逼近寄存器SAR复位,在该上升沿之后的2g
加8个时钟周期内(不定),EOC信号将变低电平,以指示转换操作正在进行中,
直到转换完成后EOC再变高电平。
微处理器收到变为高电平的EOC信号后,便立即送出0E信号,打开三态门,读取转换结果。
(CPU)WR
SffiSAR/启动转换
STARI/AUt
-W牟E+STT
图11.21ADC0808/0809工作时序
耳地址锁存
转换箱束
数据输出
八2001
IQ•
模拟输入通道的选择可以相对于转换开始操作独立地进行(当然,不能在转换过程中进行),然而通常是把通道选择和启动转换结合起来完成(因为ADC0808/0809的时间特性允许这样做)。
这样可以用一条写指令既选择模拟通道又启动转换。
在与微机接口时,输入通道的选择可有两种方法,一种是通过地址总线选择,一种是通过数据总线选择。
如用E0C信号去产生中断请求,要特别注意E0C的变低相对于启动信号有
2g+8个时钟周期的延迟,要设法使它不致产生虚假的中断请求。
为此,最好利用E0C±升沿产生中断请求,而不是靠高电平产生中断请求。
74IS138译码器内部电路逻辑图功能表简单应用
74HC138:
74LS138为3线一8线译码器,共有54/74S13854/74LS138两种线路结构
型式,其74LS138I作原理如下:
当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、
C)的二进制编码在一个对应的输出端以低电平译岀。
74LS138的作用:
利用G1、/(G2A)和/(G2B)可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32
线译码器。
若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器
咯岛£%£呼乂£
161514131211109
74LSL38
12345678
血州£$鸟尽gGND
用与非门组成的3线-8线译码器74LS138
lo
7段显示译码器7448是输出高电平有效的译码器,其真值表如表
GN
7448/SN7448引脚功能图工作电压:
5V
7448除了有实现7段显示译码器基本功能的输入(DCBA)和输出(Ya〜Yg)端外,7448还引入了灯测试输入端(LT)和动态灭零输入端(RBI),以及既有输入功能又有输出功能的
消隐输入/动态灭零输出(BI/RBO)端。
由7448真值表可获知7448所具有的逻辑功能:
(1)7段译码功能(LT二1,RBI=1)在灯测试输入端(LT)和动态灭零输入端(RBI)
都接无效电平时,输入DCBA经7448译码,输出高电平有效的7段字符显示器的驱动信号,显示相应字符。
除DCBA二0000夕卜,RBI也可以接低电平,见表1中1〜16行。
(2)消隐功能(BI=0)此时BI/RB0端作为输入端,该端输入低电平信号时,表1
倒数第3行,无论LT和RBI输入什么电平信号,不管输入DCBA为什么状态,输出全为“0”,
7段显示器熄灭。
该功能主要用于多显示器的动态
八显八示。
(3)灯测试功能(LT二0)此时BI/RB0端作为输岀端,端输入低电平信号时,表
1最后一行,与及DCBA输入无关,输岀全为“1”,显示器7个字段都点亮。
该功能用于7段显示器测试,判别是否有损坏的字段。
(4)动态灭零功能(LT=1,RBI二1)此时BI/RB0端也作为输岀端,LT端输入高电平信号,RBI端输入低电平信号,若此时DCBA=0000,表1倒数第2行,输出全为“0”,显示器熄灭,不显示这个零。
DCBAI0,则对显示无影响。
该功能主要用于多个7段显示器同时显示时熄灭高位的零。
表1:
真值表
辐入
BTf■
输出
i=:
■■
ETRBIDCBARB
O飞
Yc¥ayeY;Ye
宇符
1100001
11
11110
n
1
托
□aoi
1
3
1
〃T00
0
0
■
1
1
X
0010
1
1
1
01]
0
1
3
1
X
0011
1
1
1
110
0
1
3
1
y
otoo
1
u
L
I00
1
1
H
1
X
0101
1
•
1
0
110
I
1
1
X
0110
1
CIO
11]
1
1
4—
1
X
0订1
I
1
1
IDa
0
0
F
1
X
1000
1
1
1
111
1
1
£
1
X
1001
1
1
1
100
1
1
R
1
X
1010
1
a
0
011
0
1
匚
1
I
ton
1
0
0
]1□
0
1
1
I
1100
1
0
1
10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 数据 采集