资源描述
存档日期: 存档编号: 本科生毕业设计(论文)论 文 题 目:基于单片机的数据采集系统的设计姓 名: 学 院: 专 业: 班 级 、 学 号: 指 导 教 师: 江摘 要本文介绍了基于单片机的数据采集的硬件设计和软件设计,数据采集系统是模拟域与数字域之间必不可少的纽带,它的存在具有着非常重要的作用。本文介绍的重点是数据采集系统,而该系统硬件部分的重心在于单片机。数据采集与通信控制采用了模块化的设计,数据采集与通信控制采用了单片机AT89C52来实现,硬件部分是以单片机为核心,还包括A/D模数转换模块,显示模块和串行接口部分。本系统下位机负责数据采集并应答主机的命令。8路被测电压通过模数转换器ADC0809进行模数转换,实现对采集到的数据进行模拟量到数字量的转换,并将转换后的数据通过串行口RS-485传输到上位机,由上位机负责数据的接受、处理和显示,并用LED数码显示器来显示所采集的结果。软件部分应用VC+编写控制软件,对数据采集系统、模数转换系统、数据显示、数据通信等程序进行了设计。关键词:数据采集 AT89C52 ADC0809 RS-485AbstractThis article describes the hardware design and software design of the data on which based on signal-chip microcomputer .The data collection system is the link between the digital domain and analog domain. It has an very important function. The introductive point of this text is a data to collect the system. The hardware of the system focuses on signal-chip microcomputer .Data collection and communication control use modular design. The data collected to control with correspondence to adopt a machine 8051 to carry out. The part of hardwares core is AT89C52, is also includes A/D conversion module, display module, and the serial interface. Slave machine is responsible for data acquisition and answering the host machine.8 roads were measured the electric voltage to pass the in general use mold-few conversion of ADC0809,the realization carries on the conversion that imitates to measure the numeral to measure towards the data that collect .Then send the data to the host machine through RS-485,the host machine is responsible for data and display, LED digital display is responsible display the data. The software is partly programmed with VC+. The software can realize the function of monitoring and controlling the whole system. It designs much program like data-acquisition treatment,data-display and data-communication ect.Keyword: data acquisition AT89C52 ADC0809 RS-485目 录摘 要IAbstractII1绪论11.1 研究背景及其目的意义11.2 国内外研究现状21.3 该课题研究的主要内容32数据采集总体设计42.1系统设计的基本要求42.2 数据采集系统结构功能及简介43 硬件部分63.1 单片机基本模块63.2 A/D转换模块93.3键盘模块123.4 LED数码管显示模块13.3.5通信模块174 软件部分204.1 简介KeilUvision2204.2 下位机部分程序设计245上位机简介296结论31致 谢32参考文献33附录1 总原理图35附录2 程序清单3641江苏师范大学本科生毕业设计 基于单片机的数据采集系统的设计1绪论1.1 研究背景及其目的意义近年来,数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也有了迅速的发展,它可以广泛的应用于各种领域。数据采集系统起始于20世纪50年代,1956年美国最先在军事上研究的数据采集测试系统,目标是测试过程中不依靠相关的测试文件,由非熟练人员进行操作,并且是由测试设备自动控制高速完成测试任务。由于该种数据采集测试系统具有高速和灵活等特性,可以满足许多传统方法不能完成的数据采集和测试任务,因而得到了人们的初步认可。大概在60年代后期,国外市场就有成套的数据采集设备出现1。20世纪70年代后期,随着微型机的发展,出现了采集器、仪表同计算机溶为一体的数据采集系统。由于这种数据采集系统优良的性能,超过了传统的专用数据采集系统和自动检测仪表,因而获得了高速的发展。从70年代起,数据采集系统在以后发展过程中逐渐演变成为两类,一类是工业现场的数据采集系统,另一类是实验室的数据采集系统2。20世纪80年代计算机的高速发展和在生活中的应用,使数据采集系统获得了较快的发展,逐步出现了自动测试系统与通用的数据采集。那时候的数据采集系统主要分为两类,一类由采集器和通用接口总线、仪表仪器和计算机组成。这类系统不仅在实验室获得了较多的应用,在工业生产中也有一定程度的应用。第二类以标准总线、数据采集卡和计算机构成,这一类主要应用于工业现场。20世纪80年代中后期,数据采集发生了惊人的变化,单片机、大规模集成电路和工业计算机的组合,用软件来完成管理任务,使系统的体积变小,成本降低,功能大大增强,数据处理能力倍增3。自20世纪90年代至今,一些技术先进的国家,数据采集系统已成功的运用到工业、航空电子设备及宇航技术、军事等诸多领域。随着集成电路制造技术的提高,出现了高性能、可靠性较高的单片机数据采集系统(DAS)。数据采集技术俨然已经成为一种专门的技术,在工业等领域得到了广泛应用4。该阶段的数据采集系统采用模块化结构,根据不同的应用需求,通过简单的增加和更改模块,并结合系统编程,就可以扩展和修改系统,迅速组成一个新的系统。尽管现在以微机为核心的可编程数据采集技术的发展方向得到了迅速的发展,而且组成一个数据采集系统只需要一块数据采集卡,把它插在微机的扩展槽内并辅以应用软件,就能实现数据采集的功能,但这并不会对基于单片机为核心的数据采集系统产生根本性的影响。相较于数据采集板卡功能和成本的限制,单片机具高效率、高性能、低电压、低功耗、低价格、多功能等优点,而双单片机又具有精度较高、转换速度快、能够对多点同时进行采集,因此能够开发出能满足实际应用要求的、电路结构简单的、可靠性高的数据采集系统。这就使得以单片机为核心的数据采集系统能在许多领域得到广泛的应用。1.2国内外研究现状数据采集系统是通过采集传感器输出的模拟信号并转换成数字信号,并进行分析、处理、传输、显示、存储和显示。它起始于20世纪中期,在过去的几十年里,随着信息领域各种技术的发展,在数据采集方面的技术也取得了长足的进步,采集数据的信息化是目前数据采集技术发展的主流方向。多数领域都用到了数据采集,在飞机飞行、石油勘探、科学实验、地震数据采集领域已经得到广泛的应用。我国的数字地震观测系统主要采用TDE-124C型TDE-224C型地震数据采集系统。近年来,又成功研制了动态范围更大、线性度更高、兼容性更强、低功耗可靠性的TDE-324C型地震数据采集系统。该数据采集对拾震计输出的电信号模拟放大后送至A/D数字化,A/D采用同时采样,采样数据经DSP数字滤波处理后,变成数字地震信号。该数据采集系统具备24位A/D转化位数,采样率有50HZ、100HZ、200HZ 5.美国PASCO公司生产的“科学工作室”是数据采集应用于物理实验的崭新系统,它主要由3部分组成:(1)传感器:利用先进的传感技术可实时采集物理实验中各种物理量;(2)计算机接口:将传感器采集到的数据信号输入计算机,采样速率最高为25万次/S;(3)软件:英文及中文的应用软件6。受需求牵引,新一代机载数据采集系统为满足飞行实验应用也在快速地发展。如爱尔兰ACRA公司2000年研发推出的新一代KAM500机载数据采集系统到了2006年。该系统采用16位(A/D)模拟数字变换,总采样率达500K/S,同步时间为+/-250ns,可以利用方式组成高达1000通道的大容量的分布式采集系统。1.3 该课题研究的主要内容数据采集技术是信息科学的重要分支之一, 它研究信息数据的采集、存储、处理以及控制等问题。它是对传感器信号的测量与处理, 以微型计算机等高技术为基础而形成的一门综合应用技术。数据采集也是从一个或多个信号获取对象信息的过程。随着微型计算机技术的快速发展和普及应用,数据采集监测技术已成为非常重要的检测技术,被广泛地应用于工农业等需要同时监控压力、温度和湿度等数据的场合。数据采集是工业控制等系统不可缺少的环节,大多采用一些功能相对独立的专用单片机系统来实现其控制功能。作为测控系统至关重要的部分,数据采集系统的性能直接影响到整个系统的运转。传统的基于单片机的数据采集系统就是因为没有上位机的支持,所以无论使用什么样的数据存储器,它都只有有限的存储容量,所以不得不覆盖刷新历史数据,这样一来不利于用户整体分析数据,因而也不能准确地把握生产过程的状况并做出适当的计划。本系统采用下位机负责模拟数据的采集,单片机负责采集八路数据,并应答主机发送的命令,上位机即主机是负责处理接受过来的数字量的处理及显示,主机和从机之间用RS-485进行通信。这样用户可以在上位机上编写各种程序对文件中的数据进行有效查询和分析,有利于工业过程的长期正常运行和检查。该系统采用的是AT89C52单片机,此芯片功能比较强大,能够满足设计要求。2数据采集总体设计2.1系统设计的基本要求(1)将采集的模拟信号转换成方便处理的数字量。(2)对完成转换后的数字量进行处理。(3)能够控制信号的采集、处理、显示等。(4)该系统要具有准确性、可靠性和稳定性。(5)给出具体的硬件和软件。在系统的扩展和配置设计中,应遵循以下原则 : (1)为了给硬件系统的标准化、模块化打下基础,尽可能多地选择典型电路。 (2)系统外围设备的配置要满足系统的功能要求,留有余地,以便进行改进。(3)应将硬件结构和软件相结合。(4)系统中相关器件要尽可能做到性能匹配。2.2 数据采集系统结构功能及简介数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。数据采集技术广泛应用在各个领域。70年代初,随着大规模集成电路及计算机技术的发展,特别是微处理器及高速A/D转换器的诞生,数据采集的系统结构发生了重大的改变。原来由硬件程序控制器组成的采集系统及小规模集成的数字逻辑电路变为被由微处理器控制的采集系统所代替。由微处理器完成程序控制,逻辑操作及大部分数据处理,使系统的可靠性和灵活性得到了较大的提高,系统的硬件成本和重建费用也得到了较大的降低7。在本系统中需要将模拟量转换为数字量,而 A/D是将模拟量转换为数字量的器件,它需要考虑的指标有:分辨率、转换时间、转换误差等等。而单片机是该系统的基本的微处理系统,它完成数据读取、处理及逻辑控制,数据传输等一系列的任务。在该系统中采用的是8051系列的单片机。双机通信的串行口可以采用RS485C标准接口,由芯片MAX485实现双机的通信。而数据的显示则采用的是LED数码管,该器件比较简单,在生活中接触也较多。本数据采集系统可以采集八路模拟信号。由于采集的信号多种多样,需要多种转换器把信号转换为电压模拟信号,本文就不不作介绍。系统把模拟电压信号转换成数字信号,由单片机串口经过TTL电平转换后,发送到PC机由PC机处理采集的信号。其中:AT89C52 ( 主控芯片) : CPU 作为该系统的核心控制芯片, 起采集、控制显示的作用。显示模块:采用四位一体共阴LED数码管用来显示采集到的数值。通信模块:采用RS-485标准实现单片机与PC机间的通信。模数转换模块:采用ADC0809进行模拟信号到数字信号的转换,以供给单片机采集数据。 系统框图如图2-1所示:图2-1 系统框图3 硬件部分信号采集过程中,被测量一般由传感器供给,常为微弱信号,需要对其进行适当的调整。由于此处输入信号多种多样,不能一一列举,所以本文并未详细讨论。但在实际工程设计中必不可少。3.1 单片机基本模块单片机是一种面向大规模的集成电路芯片,是微型计算机中的一个重要的分支。此系统是由CPU、输入输出电路(I/O口),还包括定时/计数器、串行通信口、显示驱动电路(LCD和LED驱动电路)、A/D转换器等电路集成到一个单块芯片上,构成了一个最小但完善的计算机任务。单片机要使用特定的组译和编译软件编译程序,再用keiluvision2把程序下载到单片机内。3.1.1 AT89C52单片机美国ATMEL公司生产的AT89C52是低电压,高性能CMOS 8位单片机,片内含256 bytes的随机数据存储器(RAM)和8K bytes的可反复擦写的只读程序存储器(EEPROM),器件不仅采用ATMEL公司的非易失性、高密度存储技术生产,而且兼容标准MCS-51指令系统及8052产品的引脚,片内置通用8位中央处理器(CPU)和Flash存储单元,AT89C52单片机的强大功能,能适合于许多比较复杂的控制应用场合。因此,在这里我选用AT89C52单片机来完成,它的优点很多,比如结构简单、编程方便、经济、易于连接等,特别是其内部的定时器/计数器、中断系统资源丰富,具有较高的应用价值8。3.1.2 AT89C52单片机主要特性AT89C52提供以下标准功能:8k字节FLASH闪速存储器,256字节片内RAM,32个I/O口线,一个5向量两级中断结构,2个16位定时/计数器,一个全双工串行通信口,时钟电路及片内振荡器。同时,AT89C52降至0Hz的静态逻辑操作,并支持两种可选的节电工作模式。空闲方式体制CPU的工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。AT89C52单片机的引脚如图3-1所示99。图3-1AT89C52单片机的引脚图3.1.3 AT89C52单片机时钟和复位电路的设计AT89C52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。单片机的时钟电路连接图如图3-3所示,18引脚和19引脚接时钟电路,在单片机内部有一个高增益反相放大器,XTAL1接外部晶振和微调电容的一端,在片内它是高增益反相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是高增益反相放大器的输出,所以这样就构成了自激振荡器。结合本设计的要求采用内部振荡方式,所选的晶振为6MHz。复位电路是完成单片机片内电路的初始化,使单片机从一种确定的状态下开始运行。第9引脚为复位输入端,接上电容,电阻构成上电复位电路。另外计算机系统在工作的时候,有时会不可避免地受到一些外界的干扰,如电源的波动、电磁场的干扰、现场环境的干扰等,这些都可能造成系统“死机”或程序跑飞,使系统不能正常工作。对于事务处理、办公自动化的应用场合,操作者在现场,一经发现就马上进行处理,如进行复位操作或关断电源重新启动。在单片机和嵌入式应用系统中,应用的对象对可靠性的要求更高,特别在无人值守、24小时连续工作的场合,如火灾报警系统、安全防盗报警系统等应用中,决不允许应用系统“死机”或程序跑飞。这样,就要求单片机或嵌入式应用系统能够自动检测到并能自动重新复位或启动系统,保障应用系统正常工作。为此,在单片机或嵌入式系统中引入自动监视技术,即俗称的看门狗技术(WatchDog)。看门狗技术的监控思路是:在系统中设置一个定时器(看门狗定时器),处理器正常运行时,软件程序中每隔一定时间间隔要发出一条(或几条)指令,将看门狗定时器清零,使看门狗定时器在系统正常工作时总是不能溢出。一旦处理器“死机”或程序跑飞,处理器就不能向看门狗定时器发出清除脉冲。看门狗定时器就会产生计数溢出信号,该信号和处理器的复位引脚相连,因此就会自动复位微处理器,应用系统重新启动和继续工作。这些操作是系统自动检测和进行的,不需要人为干预,可保证应用系统可靠地工作。在单片机数据采集系统中,89C52利用P1端口的四条线和看门狗芯片X5045的SPI接口相连。89C52的P1.5连接到X5045的SI端,P1.6连接到X5045的SCK,P1.7连接到X5045的SO端和CS/WDI端,X5045的RESET输出信号连接到89C52的复位输入端RST上,电路图如图 3-2 所示9。图3-2 X5045连接图综上,将时钟电路和复位电路与单片机相连单片机控制系统最基本的部分,如图3-3所示图3-3单片机时钟和复位电路3.2 A/D转换模块 在我们所采集的信号中大多是连续变化的物理量,而要对各种信号进行处理,则需要将其转换为计算机能处理的数字量,A/D转换器就是将连续变化的模拟量转换成计算机能接受的数字量。3.2.1 A/D模数转换的选择A/D转换器的种类很多,就位数来说,可以分为8位、10位、12位和16位等。位数越高其分辨率就越高,价格也就越贵。A/D转换器型号很多,而其转换时间和转换误差也各不相同。按模拟量转换成数字量的原理可以分为3种:双积分式、逐次逼近式及并行式A/D转换器。(1)逐渐逼近式A/D转换器:它是一种速度快、精度较高、成本较低的直接式转换器,其转换时间从几微秒到几百微秒。(2)双积分A/D转换器:它是一种间接式的A/D转换器,优点是抗干扰能力强,精度比较高,不足是数度很慢,适用于系统对转换度要求不高的场合。(3)并行式A/D转换器:它又被称为flash(快速)型,它的转换速度很高,但她采用较多的比较器,而n位的转换就需要2n-1个比较器,因此电路规模也极大,价格也很贵,只适用于视频A/D转换器等数度特别高的领域10。比较以上三种方案,在价格、转换速度等多种标准的考虑下,本设计选用逐渐逼近式A/D转换器ADC0809。下面就具体的介绍一下ADC0809的工作原理。1、 ADC0809的介绍ADC0809是八通道的八位逐次逼近式A/D转换器。由单一的5V电源供电,片内带有锁存功能的8选1的模拟开关。由C、B、A的编码来决定所选的模拟通道。转换时间为100s。转换误差为1/2LSB。它的引脚的排列见图3-4 图3-4 ADC0809的引脚图IN7IN0 :八个通道的模拟输入量。ADDA、ADDB、ADDC:模拟通道地址线。当CBA=000时,IN0输入,当CBA=111时,IN7输入。ALE:地址锁存信号。START:转换启动信号,高电平有效。D7D0:数据输出线。三态输出,D7是最高位,D0是最低位。OE:输出允许信号,高电平有效。CLK:时钟信号,最高频率为 640KHZ。EOC:转换结束状态信号。上升沿后高电平有效。Vcc:+5V电源。Vref:参考电压11。2、ADC0809时序图及其接口电路ADC0809的时序图如图3-5所示: 图3-5 ADC0809的时序图其工作过程是:ALE的上升沿将A、B、C端选择的通道地址锁存到8位A/D转换器的输入端,START的下降验启动8位A/D转换器进行转换。A/D转换开始使EOC端输出低电平;A/D转换结束,EOC输出高电平。该信号通常可作为中断申请信号。OE为读出数据允许信号,OE端为高电平时,可以读出转换的数字量。硬件电路设计时,需根据时序关系及软件进行设计。A/D转化模块对模拟量进行一次模数转换,要用到一个ADC0809,又因为它们之间的时钟频率不一样,所以需要用74LS74对其进行一个二分频的工作,这里只需要将74LS74的第3根引脚CLK1与单片机AT89C52的第30根ALE引脚相连,将74LS74 的第9根引脚Q2与ADC0809的时钟信号CLK引脚相连。 由于ADC0809具有输出3态锁存器,其八位数据输出引脚可直接与数据总线相连。地址译码引脚C、B、A分别与地址总线低三位P2.2、P2.1、P2.0相连,用来选通IN0IN7中的一个通道。在启动A/D转换时,由单片机的P3.4控制A/D转换器的启动和地址锁存,因为ALE和START连在一起,所以AD0809在锁存通道的时候,同时也启动了A/D转换器。在读取转换结果时,用低电平的读信号RD,产生的正脉冲作为OE信号,用以打开三态输出锁存器。将转换结果输出。而低电平的写信号WR则表示转换结束状态信号。因P0口还需要连接LED显示电路,所以AT89C52与ADC0809之间需要加芯片74LS573来缓冲数据的传输,芯片74LS573的介绍在3.4节有详细介绍。该部分的连接图如图3-6所示图3-6 ADC0809与单片机的连接图3.3键盘模块键盘是一种常见的输入设备,用户可以向计算机输入数据或命令。根据按键的识别方法分类,有编码键盘和非编码键盘两种。通过硬件识别的键盘称编码键盘;通过软件识别的键盘称为非编码键盘。非编码键盘有两种接口方法:一种是独立按键接口;另一种是矩阵式按键接口。1、独立按键接口在单片机中,如果所需的按键较少,可采用独立式键盘。每只按键接单片机的一条I/O线,通过对线的查询,即可识别各按键的状态。如图3-7所示。4只按键分别接单片机的P1.0P1.3I/O线上。无按键按下时,P1.0P1.3线上均输入高电平。当某按键按下时,与其相连的I/O线将得到低电平输入。图3-7 独立按键接口图2.矩阵式按键接口在单片机中需要的按键较多时,通常把键排成矩阵形式,这样可以节省硬件资源。如对于20只按键接口,如采用按键独立方式,需要20个I/O口。如采用矩阵式按键方式,则只需要9个I/O 口。如图3-8所示。单片机系统中的非编码式键盘程序主要由判别是否有键按下子程序、键的识别子程序、找到闭合键后,读入相应的键值,再转到相应的键处理程序几个部分组成。 图3-8 矩阵式按键接口图在本系统中所用到的按键有9个,所以采取矩阵式按键接口方式。3.4 LED数码管显示模块在小型控制装置和数字化仪器仪表中,往往只要几个简单的数字显示或字状态便可满足现场的需求,而显示数码管LED因其成本低廉、配置灵活、与计算机接口方便等特点,在小型微机控制系统中得到极为广泛的应用12。3.4.1 LED数码管显示器的结构原理发光二极管LED是利用PN结把电能转换光能的固体发光器件,根据制造材料的不同,可以发出红、黄、绿、白等不同色彩的可见光束。LED的伏安特性类似于普通二极管,正向压降为2V左右,工作电流一般在10mA20mA之间较为合适一个8段LED显示器的结构如图3-9-1所示。图3-9-1 8段数码管结构图 图3-9-2 共阴极结构图 图3-9-3 共阳极结构图它是由8个发光二极管构成,各段依次记为a、b、c、d、e、f、g、dp,其中dp表示小数点(不带小数点的称为7段LED)。8段LED有共阴极和共阳极两种结构,分别如图3-9-2、图3-9-3所示。共阴极LED的所有发光管的阴极并接成公共端COM,而共阳极LED的所有发光管的阳极并接成公共端COM。当共阴极LED的COM端接高电平,则某个发光管的阴极加上低电平时,则该管有电流流过因而点亮发光。LED各段不同点亮的组合可以显示09、AF等十六进制数13。表3-2 LED段选码字型共阴极字形代码字型共阴极字形代码字型共阴极字形代码03FH67DHC39H106H707Hd5EH25BH87FHE79H34FH96FHF71H466HA77H灭00H56DHb7CH3.4.2 显示驱动芯片74LS57374LS573 的八个锁存器都是透明的D型锁存器,当使能端为1时,Q输出端和数据端的输入相同。当使能为0时,输出将固定在已建立的数据电平上。输出控制影响不到锁存器的内部工作,就是以前的数据可以保持不变,甚至当输出被关闭时,新的数据也可以存入锁存器。这种电路可以驱动低阻抗负载或大电容,不需要额外的接口就可以直接与系统总线接口相连并驱动总线。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器14。其引脚图如图3-10所示:图3-10 74LS573引脚图真值表如下:表3-1 74LS573 真值表输出控制使能数据输出LHHHLHLLLLXQOHXXZ注释:H=高电平 L=低电平 =不定 Z=高阻态QO=建立稳态输入条件前Q的电平功能表引脚功能表如下: 表32 74LS573 引脚功能表管脚号功能0D7D数据输入LE锁存使能输入(高电平有效)OE3态输出使能输入(低电平有效)0Q7Q3态锁存输出当锁存器使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存器使能变低时,符合建立时间和保存时间的数据会被保存。具有如下特点:输出能直接接到CMOS,NMOS和TTL接口上输入电压范围:2.0V-6.0V低输入电流:1.0ACMOS器件的高噪声抵抗特性数码管与单片机的连接电路图如图3-11所示3-11数码管与单片机的连接电路图.3.5通信模块本文采用RS-485标准实现单片机与PC机间的通信。RS-232虽然是现在最常用的串行通讯接口。但由于RS-232接口标准出现较早,难免有不一些足之处,主要表现在以下几个方面:1.接口的信号电平值较高,易损坏接口电路的芯片,而且与TTL电平不兼容,故需经过电平转换后才能与TTL电路连接。2、传输速率比较低,在异步传输时,波特率仅为20Kbps。3、接口使用一根信号线和一根信号返回线构成共地的传输形式,这种共地传输方式容易产生共模干扰,所以抗干扰性弱。4、传输距离短,最大传输距离的标准值是50英尺,实际传输距离仅在50米以内16。 RS-485串行总线接口进行数据通信的方式为平衡发送和差分接收行,这种通信方式接口信号的电平比RS-232低,不易损坏接口处电路的芯片,且电平与TTL电平兼容,方便与TTL电路连接,该接口将平衡驱动器和差分接收器组合起来使用,抗共模抗干扰能力增强,最大传输速率可以达到10 Mbs。RS-485接口在总线允许的情况下最多可连接128个收发器,即一个处理器可处理l28个采集点的信号采集,达到实现数据高速远距离传送的目的,这是其他串口通信方式(如I2C总线和RS-232等)所做不到的19。相比之下RS-485具有良好的抗噪声干扰性,长距离传输和多站能等优点,因此本文使用RS-485实现串口通信。 MAX485接口芯片是Maxim公司的一种RS485接口芯片。 MAX485是用于RS-485通信的低功耗收发器,器件中都包含有一个驱动器和一个接收器。MAX485具有不受限制的驱动器摆率,可以实现最高2.5Mbps的传输速率的数据传输。MAX485芯片在单一电源+5 V下工作,额定电流为300A,采用半双工通讯方、模式。它可以实现将TTL电平转换为RS485电平的功能。MAX485芯片的结构和引脚都较简单,其内部含有一个驱动器和接收器。DI和RO端分别为驱动器的输入端和接收器的输出端,它们与单片机的连接仅需分别与单片机的TXD和RXD相连;RE和DE端分别为接收和发送的使能端,当RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。MAX485芯片的引脚图如图3-12所示21图3-12 MAX485引脚(管脚)图为了消除反射,吸收噪音,将A和B端之间加匹配电阻,一般可选100的电阻。通信模块电路连接图如图3-13所示图3-13 通信模块电路连接图4 软件部分4.1简介KeilUvision2Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(UVISION)将这些组合在一起。Keil有以下几个特点:1、 全功能的源代码编辑器;2、 器件库用来配置开发工具设置;3、 项目管理器用来创建和维护用户的项目;4、 集成的MAKE工具可以汇编、编译和连接用户嵌入式应用;5、 所有开发工具的设置都是对话框形式的;6、 真正的源代码级的对CPU和外围器件的调试器;7、 高级GDI(AGDI)接口用来在目标硬件上进行软件调试以及和Monitor-51进行通信其使用的过程为:首先打开KeilUvision2,在KEIL系统中,每做个独立的程序,都视为工程。首先从菜单中的工程中“新建工程”,建立我们将要做的工程项目:接下来Keil环境要求我们为12工程选择一个单片机型号;我们选择Ateml公司的89C52。“确定”后工程就算建立好了。立了工程项目以后现在就要为工程添加程序,点击“文件”中的新建,新建一个空白文档;这个空白文档就是我们编写单片机程序的场所。在这里可以进行编辑、修改等操作。根据题意,在文档中写入代码,写完后再检查一下,然后保存,然后再将保存好的文档添加到工程中,具体做法如下:程序文件添加完毕后,对其进行编译当前程序、编译修改过的文件并生成应用程序、重新编译所有文件并生成应用程序后,再点击TARGET,则其页面为:再点击图案上的Output键 接下来就是点击上图中的select folder for objects键,得到下图将其产生的HEX文件存储在E盘zh文件夹中。最后一步就是利用STC-ISP将HEX文件烧录到单片机里。4.2下位机部分程序设计该部分的程序包括一个主程序、五个子程序,五个子程序分别为下位机串口接收中断函数、向串口发送数据子程序、模数转换子程序、键盘扫描子程序、数据显示子程序。(1)主程序主程序对系统进行初始化,主要是进行定时/计数的初始化,然后调用键盘扫描程序Keys_Scan(),再根据按下的键来调用向串口发送数据子程序putc_to_serialport()将相应的数据发送给串行口。当没有键按下时,则送一个数F给LED显示器。其流程图见图4-1图4-1主程序流程图(2)下位机串口接收中断函数Serial_INT() interrupt 4因为发送完成和接收到新字节都会触发串口中断,因此串口中断程序里用if(RI)来表示接受中断,然后将RI清0。再判断接收到的数据第4位是否为1,如果为1,则按照主机发送过来的通道进行采集,如果为0,则调用循环采集程序。如图4-2所示4-2下位机串口接收中断函数流程图(3)模数转换子程序ADCON先要选通ADC0809,又因为ADC0809具有8个通道,利用For循环进行8次采集,接下来选择转换通道,F8HFFH用以选择输入模拟信号的通道IN0IN7的选择,首先从第一个通道开始,然后执行一条读取转换结果的指令,再将转换得到的结果送给串行口,再依次循环,将通道号自增1,直到8个通道全部转换完。其流程图如图4-3所示图4-3模数转换子程序流程图(4)键盘扫描子程序Keys_Scan() 该程序是先将行选好,然后再选定列就可以确定到具体的哪一个按键。其流程图如图4-4所示图4-4键盘扫描子程序流程图(5)LED显示程序Display_Result(int d)该子程序用的数码管动态显示方式。先将单片机的P2.7口选通进行位选,然后将位选的值发送给单片机P1口。接着将单片机的P2.6口选通进行段选,然后将要显示的数字的值发送给P0口。然后调用延时,接着将P2.7、P2.6口置0,下面是重复上面的过程,直到要显示的数字全部显示在数码上。其流程图如4-5所示。图4-5 LED显示程序流程图(6)向串口发送数据子程序putc_to_SerialPort(uchar c)程序首先将数据发送到串行口,当T1=0时,表明传送结束。如图4-6所示图4-6向串口发送数据子程序流程图5上位机简介 上位机是指人们可以直接发出操控命令的计算机,一般情况下是PC,并在屏幕上显示各种信号的变化(水位、温度、气压等)。下位机是直接控制设备获取设备状况的微型机,一般是指PLC/单片机之类的。上位机发出的命令首先传给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机负责读取设备状态数据(一般为模拟量),转换成数字量之后反馈给上位机。上位机和下位机都需要编程,它们都有专门的开发系统。 现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。 在工业控制系统中, 由下位机或探测站来负责各种数据的采集和执行机构的控制任务。由于单片机具有价格低廉、体积小、适应环境能力强等特点,分布式系统大多使用单片机作为下位机来完成数据采集和现场控制的任务。在这些实际应用中,单片机只是直接面向被控对象的底层,而要对采集到的数据进行进一步分析和处理就要由功能强大的主控PC机来完成的。因此,PC机和单片机之间就有着大量的数据交换。单片机将采集到的数据处理后,通过串行口发送到PC机,通过编写上位机界面将接收的数据显示出来。6结论本系统具有成本低廉、结构简单、实时性强、可靠性高及抗干扰能力较强等特点的数据采集系统,用户只需加入相应的温度、湿度及压力等传感器,即可实现相应的多路数据采集监测功能。经过这次毕业设计,我在用专业知识、专业技能分析和解决问题的能力得到全面系统的锻炼。而且在单片机应用系统开发过程、单片机的基本原理,以及常用编程设计思路技巧方面都向前迈了一大步,为以后成为合格的人才打下坚实的基础。同时,我也发现了很多不足之处,这需要在实践中进一步完善。在此次设计的整体过程中,我始终保持积极态度和韧性。其中在硬件电路设计的时候碰到了很大的阻力,通过耐心并且细致的深入的研究,找出了许多问题的出处,虽然最终没有完全尽善尽美,但是这样的一个过程,同样使我得到了很多的磨练,受益良多。 致 谢本文从选题到完成的整个过程,得到指导老师马秀飞老师的悉心指导。马秀飞老师渊博的学识,谦虚、严谨的治学态度、灵活的思维方式、认真的工作作风和对学生的关心都令我佩服不已,谆谆教诲使我受益匪浅,这必将在今后的学习和工作中给我鼓励和鞭策,为以后步入社会、适应工作奠定良好的基础。在此,本人由衷的表示的感谢!感谢江苏师范大学电气工程及自动化学院的老师们在这四年里不仅在专业的学习上给予我的帮助,更感谢他们在我的为人处事上给予的教诲。在论文的完成过程中,还得到其他学院多位老师和同学的热情帮助,在此表示感谢!感谢评审论文的各位老师为本文提出的宝贵的意见。最后,向所有曾给予我关心和帮助的师长、朋友及家人表示感谢!参考文献1 严洁.单片机原理及其接口技术.机械工业出版社M,2010,65-1052 范红刚.51单片机自学笔记.北京航空航天大学出版社M,20093 高云.基于MSP430的温室多路数据采集系统.农机化研究J,2009,No.84 常铁原,王欣,陈文军. 多路数据采集系统的设计.电子技术应用J,2008,No.115 叶红海,李丽敏.基于单片机的多路数据采集系统的设计与实现J.2008,No.46 彭伟.单片机C语言程序设计实训100例.电子工业出版社M,2009,46-48,104-1107 杨居义,杨晓琴,王益斌等.单片机课程设计指导.清华大学出版社M,2009,135-1418 刘刚,秦永左,朱杰斌.单片机原理及应用.北京大学出版社M,2006,76-98,134-1559 林祝亮,武林,杨金华.基于双单片机的多路数据采集系统设计.仪器仪表学报N,2006,No.610 元增民,张文希.单片机原理与应用基础.国防科技大学出版社M,2006,205-26611 王琳,商周,王学伟.数据采集的发展及应用.电测与仪表,2004,No.46412 V. Schmidt, Control, data acquisition, and remote participation for fusion research, Fusion Eng. Des. 81 (2006) 17021712.13 A.Neto,H.Fernandes,A.Duarte, Firesignal-Data acquisition and control system software.FusionEngineering and Design 82(2007)1359-1364.14高卫东、辛友顺,韩彦征.51单片机原理与实践.北京航空航天大学出版社M200815胡亚琦.单片机原理及应用系统设计.西安电子科技大学出版社M,201016钟海文.基于单片机的数据采集系统设计.山东大学硕士学位论文D,200917娄国焕.单片机原理及应用.机械工业出版社M,201118 Chen Y. Applications of time series analysis to water demand prediction. Compute applications in water supplyJ .Vol. 2. England:Research Studies Press, 1988. 85-1019 Coulbeck B, Tennant S. Development of a demand prediction program for use in optimal control of water supplyJ. Systems Science, 1985, 11(1):76-80. 20张晓乡.89C51单片机实用教程.电子工业出版社M,201021张鑫.单片机眼里鸡应用.电子工业出版社M,201022郭小拓.基于单片机的数据采集系统的设计.浙江工业大学硕士学位论文D,200823 Perry PF. Demand forecasting in water supply networks. Journal of Hydraulics,1107(9):37-52. 附录1 总原理图附录2 程序清单#include#define uchar unsigned char#define uint unsigned intsbit k1=P34;sbit smgd=P26;sbit smgk=P27; uchar Pre_KeyNo=16,KeyNo=16;uchar code LEDData=0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07, 0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79, 0X71/*延时子程序*/void Delay(uint x) uchar i; while(x-)for(i=0;i4; /该表达式将高3位移到低四位 swith(Tmp) /判断按键发生在哪列 case 1:KeyNo=0;break; case 2:KeyNo=1;break; case 3:KeyNo=2;break; default: KeyNo=9; /无键按下P3=0X0F; /高3位置0,放入3列Delay(1);Tmp=P30 xF0; / 按键后00001111将变成0000XXXX,X中有一个为0,3个仍为1,而异或操作会把3个1变成0,唯一的0变成1 switch(Tmp) /03行分别附加起始值0,3,6 case 1:KeyNo+=0;break; case 2:KeyNo+=3;break; case 4:KeyNo+=6;break; /*向串口发送数据子程序*/void putc_to_serialport(uchar C) SBUF=C; while(T1=0);TI=0;Display() smgK=1; P1=0X01; Smgd=1; P0=OXOF; /*主程序*/ void main() P0=0 x00; SCON=0 x50; /串口工作于方式1 TMOD=0 x20; /T1工作于模式2 PCON=0 x00; /波特率不加倍 TH1=0 xFD; /波特率为9600 TL1=0 xFD; TI=RI=0; TR1=1; /启动定时器1 IE=0 x90; /允许串口中断 while(1) Dela
展开阅读全文