数据采集系统设计说明_第1页
数据采集系统设计说明_第2页
数据采集系统设计说明_第3页
数据采集系统设计说明_第4页
数据采集系统设计说明_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

.63-/NUMPAGES69.毕业论文论文题目:数据采集系统设计摘要数据采集技术是以模拟信号处理、数字化、数字信号处理和计算机等高科技为基础而形成的一门综合技术,是联系模拟世界和数字世界的桥梁。数据采集系统的核心部分主要是靠单片机来实现的,在任何单片机测控制系统中,都是从尽量快速、尽量准确、尽量为完整地获得数字形式的数据开始的,因此,数据采集系统作为沟通模拟域与数字域的必不可少的桥梁起着非常重要的作用。本系统是运用VB编制上位机数据处理与显示程序,上位机通过命令可以控制下位机进行连续数据采集和单次数据采集,并可以通过命令停止下位机的数据采集。本文是Atmega8515单片机的一种应用,其主要功能就是实现一路模拟量从一个终端到另一个终端的采集、传输,这种系统在工业控制,智能仪表中广泛应用。关键词:单片机数据采集系统模拟量AbstractDatacollectiontechnologyisanalogsignalprocessing,digital,digitalsignalprocessingandhigh-techcomputer-basedformofanintegratedtechnology,itisabridgewhichcontactssimulatedworldandthedigitalworld.DataAcquisitionSystemcoremicrocontrollerismainlyachievedinsingle-chipcomputertestcontrolsystem,itbeginsfromcompletingaccesstothedataindigitalformasrapidandasaccuratelyaspossible,dataacquisitionsystemasacommunicationwiththedigitaldomainsimulationdomainoftheessentialbridgeplaysaveryimportantrole.ThesystemiscompiledusingVBPCdataprocessinganddisplayprogram,PCcanbeorderedthroughthemachineunderthecontrolofcontinuousdataacquisitionandsingledatacollection,andcanbeorderedtostopunder-machinedataacquisition.Keywords:Single-chipcomputerDataacquisitionsystemAnalog目录TOC\o"1-2"\h\z\u第一章绪论-1-第二章系统总体设计方案-4-2.1系统设计要求-4-2.2系统总体方案-4-第三章系统硬件电路设计-5-3.1Atmega8515单片机最小系统-5-3.1.1Atmega8515简介-5-3.2显示器接口电路-9-3.3键盘接口电路-13-3.4A/D转换器接口电路-14-3.5D/A转换器接口电路-16-3.6串口通信接口电路-18-第四章系统软件设计-20-4.1下位机软件设计-20-4.2上位机软件设计-32-结论-37-参考文献-37-致-39-第一章绪论数据采集系统正如名字所暗示的,是一种用采集信息成文件或分析一些现象的产品或过程,在最简单的形式中,技术人员将烤箱的温度记录在一纸上就是数据采集。随着技术的发展,通过电子设备,这个过程已经得到简化和变得比较精确。数据采集系统在工业测控以与试验室研究方面的应用非常广泛,随着科学技术的发展,数据采集技术被普遍认为是现代科学研究和技术发展的一个重要方面。数据采集系统向高精度、高速度、稳定可靠和集成化的方向发展,在多个领域有着广泛的应用。它是工业、农业控制系统中至关重要的一环,在医药、化工、食品、等领域的生产过程中,往往需要随时检测各生产环节的温度、湿度、流量与压力等参数。同时,还要对某一检测点任意参数能够进行随机查寻,将其在某一时间段检测得到的数据经过转换提取出来,以便进行比较,做出决策,调整控制方案,提高产品的合格率,产生良好的经济效益。随着工农业的发展,多路数据采集势必将得到越来越多的应用,为适应这一趋势,作这方面的研究就显得十分重要。数据采集系统一般由数据采集、数据处理、处理结果的实现与保存三个部分构成。数据采集指被测信号经过放大、滤波、A/D转换,并将转换后的数据送入计算机。这里要考虑干扰抑制、带通选择、转换准确度、采样/保持与与计算机接口等问题。数据处理指由计算机系统根据不同的要求对采集的原始数据进行各种数学运算。处理结果的实现与保存指处理后的结果在X-Y绘图仪、电平记录器或CRT上浮现出来,或者将数据存入磁盘形成文件保存起来,或通过线路送到远地。数据采集技术是以模拟信号处理、数字化、数字信号处理和计算机等高科技为基础而形成的一门综合技术,是联系模拟世界和数字世界的桥梁。它在许多领域得到了广泛的应用。数字技术促进了上述这些领域的发展,而反过来又对数据采集系统提出了愈来愈高的要求。数据采集系统的核心部分主要是靠单片机来实现的,在任何单片机测控制系统中,都是从尽量快速、尽量准确、尽量完整地获得数字形式的数据开始的,因此,数据采集系统作为沟通模拟域与数字域的必不可少的桥梁起着非常重要的作用。由于计算机技术的飞速发展,单片机的发展也十分飞速,其在各个领域中的应用也日益广泛,随着测控系统技术的猛烈发展,以嵌入式计算机为核心的数据采集系统已经在测控领域中占到了统治地位。1、单片机与嵌入式系统

嵌入式系统源于计算机的应用,早期嵌入式系统为通用计算机经改装后嵌入到对象体系中的各种电子系统,如舰船的自动驾驶仪,轮机监测系统等。嵌入式系统首先是一个计算机系统,其次它被嵌入到对象体系中、在对象体系中实现对象要求的数据采集、处理、状态显示、输出控制等功能,由于嵌入在对象体系中,嵌入式系统的计算机没有计算机的独立形式与功能。单片机完全是按照嵌入式系统要求设计的,因此单片机是最典型的嵌入式系统。早期的单片机只是按嵌入式应用技术要求设计的计算机单芯片集成,故片机。随后,单片机为满足嵌入式应用要求不断增强其控制功能与外围接口功能,尤其是突出控制功能,因此国际上已将单片机正名为微控制器(MCU,MicrocontrollerUnit)。2、单片机构成的现代电子系统将成为主流电子系统单片机是器件级计算机系统,它可以嵌入到任何对象体系中去,实现智能化控制。小到微型机械,如手表、助听器。集成器件级的低价位,低到几元、十几元,足以使单片机普与到许多民用家电、电子玩具中去。单片机构成的现代电子系统已深入到各家各户,正改变我们的生活,如家庭中的音响、电视机、洗衣机、微波炉、、防盗系统、空调机等。单片机革新了原有电子系统,如微波炉采用单片机控制后,可方便地进行时钟设置、程序记忆、功率控制;空调机采用单片机后不但遥控参数设置方便,运行状态自动变换,还可实现变频控制。目前许多家用电器如VCD、DVD只有单片机出现后才可能实现其功能。3、嵌入式系统带动了整个电子产业

目前电子元器件产业除了微处理器、嵌入式系统器件外,大多是围绕现代电子系统配套的元器件产业,例如满足人机交互用的按键,LED/LCD显示驱动、LED/LCD显示单元、语音集成器件等,满足数据采集通道要求的数字传感器、ADC、数据采集模块、信号调理模块等,满足伺服驱动控制的DAC、固体继电器、步进电机控制器、变频控制单元等,满足通信要求的各种总线驱动器、电平转换器等。世界电子元器件在嵌入式系统带动下,沿着充分满足嵌入式应用的现代电子系统要求发展。嵌入式的应用涉与金融、航天、电信、网络、信息家电、医疗、工业控制以与军事各个领域,以至一些学者断言嵌入式技术将成为后PC时代的主宰。本课题主要是通过A/D转换器TLC0832将模拟量采集到单片机部,通过处理之后将数据在LCD显示器上显示出来,运用MAX232将采集的数据传送到上位机,并通过专用的软件将数据显示出来;同时,通过键盘可以控制将A/D转换之后的数据再通过D/A转换器TLC5620还原出来,用以驱动外部器件。第二章系统总体设计方案2.1系统设计要求A/D转换器TLC0832与Atmega8515的接口电路;LCD显示器12232F与Atmega8515的接口电路;键盘接口电路;D/A转换器TLC5620与Atmega8515的接口电路;通过键盘可以控制模拟量数据的单次采集和连续数据采集,并将采集的数据在LCD显示器上显示出来,同时,通过键盘控制可以将采集到的数据发送到上位机;运用VB编制上位机数据处理与显示程序;上位机通过命令可以控制下位机进行连续数据采集和单次数据采集,并可以通过命令停止下位机的数据采集。2.2系统总体方案本方案是以Atmega8515单片机为核心,通过TLC0832对模拟信号进行模数转换,转换后的数字信号输入到单片机部,处理、送显并通过MAX232将数据传输到系统微机之中,系统微机之过专用的软件对数据进行处理并显示出来;同时通过键盘控制可以将采集的模拟数据运用D/A转换器TLC5620还原出来,系统的总体设计框图如图2.1所示:图2.1系统总体框图第三章系统硬件电路设计3.1Atmega8515单片机最小系统3.1.1Atmega8515简介在二十世纪九十年代初,ATMEL公司推出全新的精简指令集单片机,简称AVR其具有高性能、低功耗、非易失性存储器、数字集成电路、E2PROM电可擦除技术、闪速存储技术等优秀品质。与其相比,采用复杂指令集的单片机在效率、速率在指令格式上都比较简洁,更适和在嵌入式系统中使用。近几年来,随着AVR单片机不断改进并持续推出新的品种现以形成系列产品。其性价比更高,在国外都有广阔的前景。Atmega8515具有以下特点: ⑴8K字节FLASH,256/512字节E2PROM,256/512字节SRAM;⑵32个通用I/O口,32个通用工作寄存器;⑶具有比较模式的灵活的定时器/计数器;⑷外中断源可编程的UART;⑸可编程的看门狗定时器;⑹SPI口以与两种可通过软件选择的省电模式工作于空闲模式。工作于省电模式时,CPU将停止运行,而寄存器、定时器/计数器、看门狗和中断系统继续工作,掉电模式时振荡器停止工作,所有功能都被禁止,而寄存器容得到保留,只有外部中断或硬件复位才可以退出此状态[5]。器件是以ATMEL的高密度非易失性存技术生产的,片FLASH可以通过SPI接口或通用编程器多次编程。通过将增强的RISC8位CPU与FLASH集成在一个芯片,Atmega8515为许多嵌入式控制应用提供了灵活而低成本的方案,具有一整套的编程和系统开发工具宏汇编调试/仿真器在线仿真[4]。在AVR单片机中,用32个通用寄存器代替累加器,从而避免了传统的累加器和存储器之间的数据传送造成的瓶颈现象。在AVR单片机中,在前一条指令执行的时候就取出现行的指令,然后以一个周期执行指令。在其它的CISC以与类似的RISC结构中,外部振荡器的时钟被分频降低到传统的部执行周期,这种分频最大达12倍。AVR单片机使用一个时钟周期执行一条指令,在8位单片机中它是第一种真正的RISC单片机。AVR单片机具有良好的性能价格比。由于AVR单片机是采用Harvard结构的,故它们的地址总线和数据总线是分开的。3.1.2AVR单片机Atmega8515引脚与MCS-51系列单片机8X51/8X52的引脚兼容,仅复位电平不同,AVR低电平复位,MCS-51高电平复位,这给用AVR单片机替代MCS-51单片机硬件电路带来了方便[5],其引脚图如图3.1所示。图3.1Atmega8515引脚图⑴VCC:为供电引脚,连接到正电源。⑵GND:为接地引脚,连接到电源地。⑶A口(PA7~PA0):A口为一个8位双向I/O口,每一引脚部都有上拉电阻。A输出口的缓冲器可以吸收20mA的电流,因而能直接驱动LED显示器。当A口被用于输入且部上拉被触发时,如果外部被拉低,则会输出电流。⑷B口(PB7~PB0):B口为一个8位双向I/O口,每一个引脚都有上拉电阻。B口的输出缓冲器可以吸收20mA的电流。当B口被用于输入且部上拉被触发时,如果外部被拉低,则会输出电流。B口也提供后面列出的AT90系列单片机许多特殊功能。⑸C口(PC7~PC0):C口为一个8位双向I/O口,每一个引脚都有上拉电阻。C口的输出缓冲器可以吸收20mA的电流。当C口被用于输入且部上拉被触发时,如果外部被拉低。⑹D口(PD7~PD0):D口为带有部拉高的8位I/O口。D口的输出缓冲器可以吸收20Ma的电流。当D口被用于输入且部上拉被触发时,如果外部被拉低,则会输出电流。D口也提供后面列出的AT90系列单片机许多特殊功能。⑺RESET:RESET为复位输入。当晶振运行时,引脚上一个周期的低电平可对器件进行复位。⑻XTAL1:XTAL1为晶振反向放大器的输入端和部时钟操作电路的输入端。⑼XTAL2:XTAL2为晶振反向放大器的输出端。⑽ICP:ICP是定时器/计数器1的输入捕获功能的输入引脚。⑾OCIB:OCIB是定时器/计数器1的输出比较功能B的输出引脚。⑿ALE:ALE是使用外部存储器时的地址锁存触发端。ALE选通门被用于在第一个访问周期中将低位地址锁存到地址锁存器中,而PD0~PD7在第二个访问周期中被用作数据。3.1.3Atmeg8515最小系统Atmeg8515最小系统如图3.2所示,其中K1、K2、K3和K4为上拉电阻,ST为8MHz的晶振,J1为单片机I/O口引出连接器。在本系统设计中,Atmeg8515微控制器的引脚功能分配如下:⑴PC0~PC7和PA0--PA2为LCD控制端;⑵PA3~PA6为TLC5620控制端;⑶RXD、TXD为串行数据接收端和发送端;⑷PB0~PB7为键盘输入端;⑸PD4~PD7为TLC0832控制端。图3.2Atmega8515最小系统3.2显示器接口电路显示器有LCD和LED显示器,系统中选用LCD显示器12232F。其特点如下:12232F汉字图形点阵液晶显示模块,可显示汉字与图形,置8192个中文汉字(16×16点阵),128个字符(8×16点阵)与64×256点阵显示RAM。12232F有置电压,无需负压。它还配置LED背光,与MCU的接口是并行或串行,系统中选用并行接口。12232F具有以下特点:⑴文本显示RAM可以显示三种显示CGROM、HCGROM与CGRAM的字型,⑵ST7920A提供硬件游标与闪烁控制电路,由地址计数器(addresscounter)的值来指定DDRAM中的游标或闪烁位置。3.2.1模块引脚说明12232F液晶模块引脚说明如表3-1所示。表3-1RT128X64的引脚说明引脚号引脚名称方向功能说明1VSS-模块的电源地2VCC-模块的电源正端3V0-对比度调整4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715BL+VDD背光电源正16BL-VSS背光电源负3.2.2接口时序12232F液晶模块有并行和串行两种连接方法。8位并行连接,MPU写资料到模块时序图如图3.3所示。图3.3MPU写资料到模块时序图8位并行连接,MPU从模块读出资料时序图如图3.4所示。图3.4MPU从模块读出资料时序图串行连接时序图如图3.5所示。图3.5串行连接时序图串行数据传送共分三个字节完成:第一字节:串口控制—格式11111ABCA为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCDB为数据类型选择:H表示数据是显示数据,L表示数据是控制指令C固定为0第二字节:(并行)8位数据的高4位—格式DDDD0000第三字节:(并行)8位数据的低4位—格式0000DDDDLCD模块与MPU的通信接口设计可以采用直接或间接的访问方式。前者使用MPU的读写和地址信号综合生成时序控制信号;后者使用软件模拟LCD模块时序控制多根数字I/O端口输出的方法控制信号。12232FLCD模块直接通过I/O口与Atmega8515进行并行接口,Atmega8515工作频率在8MIPS时,用软件模拟其工作时序,系统设计的接口电路框图如图3.6所示。在3.6图中,12232FLCD模块的8位数据线直接与Atmega8515的8位I/O口连接,使能信号E和读写信号R/W由Atmega8515的I/O口直接控制。12232FLCD显示器分为两行,初始化时,第一行显示“采集数据:单次”,第二行显示“控制命令:等待”。当下位机进行单次数据采集时,第一行用于显示单次采集的数据;当下位机进行连续数据采集时,LCD显示器上显示采集的数据;第二行显示上位机发出的控制命令,当上位机没有发送控制命令时,显示“等待”,当上位机发送命令后,显示命令。图3.612232F与Atmega8515并行接口框图3.3键盘接口电路键盘有独立式键盘和矩阵式键盘,系统中选用独立式键盘。系统中独立式键盘直接与Atmeg8515的PB0~PB7口相连接,接口电路如图3.7所示。S0启动单次数据采集并将采集到的数据显示在LCD显示器上;S1启动单次数据采集并将采集到的数据显示在LCD显示器上,同时将采集到的数据通过串口发送给上位机;S2启动连续数据采集并通过MAX232将数据传输给上位机,同时将数据在LCD显示器上显示;S3启动连续数据采集并通过MAX232将数据传输给上位机,同时将数据在LCD显示器上显示并通过D/A转换器将采集到的数据还原成模拟信号;S4位停止数据采集,K5为上拉电阻排。图3.7键盘接口电路3.4A/D转换器接口电路系统采用

仪器公司(TI)推出的TLC0832,它是广泛应用的8位A/D转换器。TLC0832是双通道输入,并且可以软件配置成单端或差分输入。串行输出可以方便的和标准的移位寄存器与微处理器接口相连[10]。

其特点如下:(1)8位转换结果(2)简单的微处理器接口(3)单通道或多通道可配置单端与差分输入(4)转换时间在Flock=250KHz时为32us(5)5V供电时输入围:0~5V(6)输入输出完全兼容TTL和CMOS电路(7)全部非校准误差:±1LSB(8)单+5V供电(9)工作温度围:0℃~70℃TLC0832的引脚图如图3.8所示。图3.8TLC0832引脚图TLC0832的引脚功能如下:(1)为片选端;(2)CH0为通道0;(3)CH1为通道1;(4)GND为电源地;(5)DI为串行数据输入端;(6)DO为A/D转换结果的三态串行输出端;(7)CLK为工作时钟;(8)VCC/REF为电源和参考电压。TLC0832与Atmega8515的接口电路如图3.9所示,其中PD4~PD7为单片机的I/O口,通过单片机I/O口模拟TLC0832的控制时序;IN0、IN1为模拟量输入端。图3.9TLC0832与Atmega8515的接口电路3.5D/A转换器接口电路TLC5620是美国仪器公司生产、单电源供电的串联型8位D/A转换器(DAC),其特点如下:⑴它有四路各自独立的电压输出D/A转换器,具备各自独立的基准源;⑵其输出还可编程为2倍或1倍;⑶+5V单电源供电;⑷高阻抗基准输入;⑸部上电复位;⑹低功耗;⑺部缓冲输出;⑻串行接口;⑼在控制TLC5620时,只要对该芯片的DATA、CLK、LDAC、LOAD端口进行操作即可。TLC5620的引脚图如图3.10所示。图3.10TLC5620的引脚图TLC5620的引脚功能如表3.2所示:表3.2TLC5620引脚功能引脚名称引脚功能CLK7串行接口时钟,数据在负沿送入DACA12DACA模拟输出DACB11DACB模拟输出DACC10DACC模拟输出DACD9DACD模拟输出DATA6串行接口数字数据输入GND1电源地LDAC13DAC更新锁存控制LOAD8串行接口装载控制REFA2DACA基准电压输入REFB3DACB基准电压输入REFC4DACC基准电压输入REFD5DACD基准电压输入VDD14电源TLC5620命令字为11位,其中8位是数字量,另2位是DAC通道选择,1位是增益选择。其部寄存器具有双缓冲器,在更新各通道的数据量后,其输出通过LDAC控制,可同时将其命令格式更新成第一位、第二位为A1、A0,第三位为RNG即可编程序放大输出倍率,第四位到第11位分别为8位数据,最高位在前,最低位在后。转换器的通道取决于A1、A0的值,如表3-3所示:表3.3通道译码A1A0所更新的DAC00DACA01DACB10DACC11DACDTLC5620与Atmega8515的接口电路如图3.11所示,其中PA3~PA5为单片机的I/O口,通过单片机I/O口模拟TLC5620的控制时序;其中PA3~PA6为单片机的I/O口,DACA、DACB、DACC和DACD为D/A转换器TLC5620的模拟两输出端。图3.11TLC5620与Atmega8515的接口电路3.6串口通信接口电路Atmega8515具有一个全双工的8位片异步串行口,可以完成主CPU与Atmega8515之间或两个Atmega8515器件之间的串行数据通信,该串行口的一帧发送/接收数据由10或11位组成,其中最低位为起始位,中间8位有效,后随1或2个停止位,发送或接收数据都采用双缓冲方式。本系统采用MAX232作为通信中的电平转换电路,其特性如下:(1)MAX232的工作温度围为0℃至70℃。(2)单5V电源供电。(3)LinBiCMOS工艺技术。(4)两个驱动器与两个接收器。(5)±30V输入电平。(6)低电源电流:典型值是8mA。(7)符合甚至优于AMSI标准E1A/T1A-232-E与1TU推荐标准V.28。(8)可与Maxin公司的MAX232互换。(9)保护大于MIL-STD-883(方法3015)标准的2000V。MAX232的引脚如图3.12所示:图3.12MAX232引脚图MAX232与Atmega8515的接口电路如图3.13所示,其中TXD、RXD分别与Atmega8515的PD0和PD1引脚相接,TX和RX与PC机相连接。图3.13MAX232和Atmega8515的接口电路图第四章系统软件设计4.1下位机软件设计4.1.1显示程序设计系统上电之后,首先初始化液晶,然后在液晶上按照一定的格式显示信息,程序根据按键的不同修改相应的显示缓存区,以此来修改显示信息。Atmega8515对12232F的写命令/数据程序流程图如图4.1所示。Atmega8515首先对系统进行初始化,设置I/O口的输入/输出状态,之后初始化液晶,对液晶的显示功能进行设置,通过写命令字控制写入数据地址[14]。图4.112232F的控制程序流程图图4.2动态修改显示代码程序流程图根据时序图,12232F液晶的写指令子程序如下:voidwcommand(intcommand){delay(30);cbi(PORTA,RS);sbi(PORTA,RW);cbi(PORTA,E);delay(30);cbi(PORTA,RW);PORTC=command;sbi(PORTA,E);delay(30);cbi(PORTA,E);}根据时序图,12232F液晶的写数据子程序如下:voidwdata(intdata){delay(30);sbi(PORTA,RS);cbi(PORTA,E);sbi(PORTA,RW);delay(30);cbi(PORTA,RW);outp(data,PORTC);sbi(PORTA,E);cbi(PORTA,RW);delay(30);cbi(PORTA,E);}系统要求,通过键盘控制可动态的修改液晶上显示的字符或汉字,这只需要改变显示缓存区的显示字符或汉字代码即可,动态修改显示代码程序流程图如图4.2所示。其程序如下所示:voidshow(intadr,intdata){wcommand(adr);delay(30);wdata(0xa3);delay(30);wdata(data);delay(30);}4.1.2键盘程序设计键盘实质上是一组按键开关的集合,它是最简单的输入设备,可以通过按键控制来实现简单的人机对话。键盘有矩阵式键盘和独立式键盘,系统中采用独立式键盘,键盘处理程序流程图如图4.3所示。//键盘扫描intscan(void){intscancode;scancode=PINB;scancode=~scancode;if(scancode!=0) return1;elsereturn0;}图4.3键盘程序流程图4.1.3串行口波特率发生器设置通用同步和异步串行接收器和转发器(USART)是一个高度灵活的串行通讯设备[12]。主要特点为:⑴全双工操作(独立的串行接收和发送寄存器);⑵异步或同步操作;⑶高精度的波特率发生器;⑷支持5,6,7,8,或9个数据位和1个或2个停止位;⑸硬件支持的奇偶校验操作;⑹数据过速检测;⑺帧错误检测;⑻三个独立的中断:发送结束中断,发送数据寄存器空中断,以与接收结束中断;⑼多处理器通讯模式;⑽倍速异步通讯模式。时钟产生逻辑为发送器和接收器产生基本时钟。USART支持4种模式的时钟:正常的异步模式,倍速的异步模式,主机同步模式,以与从机同步模式。USART控制位UMSEL和状态寄存器C(UCSRC)用于选择异步模式和同步模式。倍速模式(只适用于异步模式)受控于UCSRA寄存器的U2X。使用同步模式(UMSEL=1)时,XCK的数据方向寄存器(DDR_XCK)决定时钟源是由部产生(主机模式)还是由外部生产(从机模式)。仅在同步模式下XCK有效。⑴倍速工作模式(U2X):通过设定UCSRA寄存器的U2X可以使传输速率加倍。该位只对异步工作模式有效。当工作在同步模式时,设置该位为"0”。设置该位把波特率分频器的分频值从16降到8,使异步通信的传输速率加倍。此时接收器只使用一半的采样数对数据进行采样与时钟恢复,因此在该模式下需要更精确的系统时钟与更精确的波特率设置。发送器则没有这个要求。⑵外部时钟:同步从机操作模式由外部时钟驱动出通过一个边沿检测器,然后应用于发送器与接收器。这一过程引入了两个CPU时钟周期的延时,因此外部XCK的最大时钟频率由以下公式限制:⑶同步时钟操作:使用同步模式时(UMSEL=1)XCK引脚被用于时钟输入(从机模式)或时钟输出(主机模式)。时钟的边沿、数据的采样与数据的变化之间的关系的基本规律是:在改变数据输出端TxD的XCK时钟的相反边沿对数据输入端RxD进行采样。波特率发生器:部时钟用于异步模式与同步主机模式USART的波特率寄存器UBRR和降序计数器相连接,一起构成可编程的预分频器或波特率发生器。降序计数器对系统时钟计数,当其计数到零或UBRRL寄存器被写时,会自动装入UBRR寄存器的值。当计数到零时产生一个时钟,该时钟作为波特率发生器的输出时钟,输出时钟的频率为。发生器对波特率发生器的输出时钟进行2、8或16的分频,具体情况取决于工作模式。波特率发生器的输出被直接用于接收器与数据恢复单元。数据恢复单元使用了一个有2、8或16个状态的状态机,具体状态数由UMSEL、U2X与DDR_XCK位设定的工作模式决定。系统选用异步正常模式(U2X=0),波特率为9600bps,1位起始位,1位停止位,8位数据位,无奇偶校验位,接收完数据产生中断,发送完数据产生中断,波特率计算公式如下:即:串口初始化程序如下:voiduart_init(void){ //{{WIZARD_MAP(UART) //InterialRCclock:4MHZ //BaudRate:9600 //CharacterSize:8-bit //Mode:Asynchronous //Parity:Disabled //StopBit:1-bit UBRRL=0x19; UBRRH=0x00; UCSRA=0x00; UCSRC=0x86; UCSRB=0xd8; //}}WIZARD_MAP(UART)}4.1.4A系统中选用的A/D转换器为TLC0832,系统中采用单片机的I/O口模拟TLC0832的时序,程序如下:intadconvert(void){ //CS7,CLK4,DO5,DI6inti,bittest,addata; addata=0; sbi(PORTD,CS); delay(2); cbi(PORTD,CS);cbi(PORTD,CLK);sbi(PORTD,DI);//DI=1,起始位,在CLK上升沿移入delay(2);sbi(PORTD,CLK);delay(2);cbi(PORTD,CLK);sbi(PORTD,DI);//DI=10,选择0通道,此时DI=1delay(2);sbi(PORTD,CLK);delay(2);cbi(PORTD,CLK);delay(2);cbi(PORTD,DI);//此时DI=0delay(2);sbi(PORTD,CLK);delay(2);cbi(PORTD,CLK);//CLK的第三个时钟上升沿结束delay(2);sbi(PORTD,CLK);delay(10);for(i=0;i<8;i++){sbi(PORTD,CLK);delay(2);cbi(PORTD,CLK);delay(10);bittest=PIND&0X20;if(bittest==0X20)addata=(addata<<1)|0x1;elseaddata=(addata<<1)|0x0;delay(2);}returnaddata;}4.1.5D/A转换器程序设计系统中选用的D/A转换器为TLC5620,系统中采用单片机的I/O口模拟TLC5620的时序,程序如下:voidtlc5620(intdata){ inti,temporary;sbi(PORTA,SPILOAC);//LOAD,LOAC初始化为高sbi(PORTA,SPILOAD);for(i=0;i<3;i++){cbi(PORTA,SPIDATA);//选择通道0sbi(PORTA,SPICLK);cbi(PORTA,SPICLK);}for(i=0;i<8;i++)//DA转换{temporary=(data<<i)&0x80;if(temporary==0x80) sbi(PORTA,SPIDATA);else cbi(PORTA,SPIDATA);sbi(PORTA,SPICLK);cbi(PORTA,SPICLK);}cbi(PORTA,SPILOAD);cbi(PORTA,SPILOAC);}4.1.6下位机总体程序设计系统初始化之后,在主程序之中,反复的调用键盘程序,同时等待串口发送中断或接收中断,串口数据发送和接收采用中断方式设计。根据按键的不同执行相应得功能,同时检测是否有接收中断产生,如果有接收中断,根据接收命令执行相应的功能,系统总程序流程图如图4.4所示。图4.4主程序流程图4.2上位机软件设计VB全称VisualBasic,是微软公司推出的基于Basic语言的可视化编程环境,以其简单易学功能强大而倍受广大电脑爱好者的青睐。随着Windows在国的普与,特别是Windows95的推出,越来越多的微机用户转向了Windows操作系统。要开发一个功能强、界面美观的应用软件,其编程和调试的工作量是非常大的,许多并非搞软件出身的工程技术人员对Windows编程望而生畏。然而使用微软的VisualBasic来开发这些方面的Windows应用软件就十分方便,一般工程技术人员易于掌握,设计软件界面非常方便。编程工作量相对较小,只需进行主要应用功能的编程和少量界面控制的编程。VisualBasic更加简化了Windows程序接口的设计工作,只需要极少量的代码,就能实现标准Windows应用程序的接口。基于以上优点,PC机采用VB编程设计界面。4.2.1串口初始化上位机串口初始化程序如下:.InputLen=10'设置Input一次从接收缓冲读取字节数为10MScomm1.InputMode=1'设置接收数据的类型是二进制类型数据

MScomm1..InputLen=8'一次性从接收缓冲区中读取所有数据(8个字节为一组)

MScomm1.InBufferCount=0'清空接收缓冲区

MScomm1.OutBufferCount=0'清空发送缓冲区

MScomm1.SThreshold=0'不触发OnComm()事件

MScomm1.RThreshold=1'接收1个字节数据触发OnComm()事件

MScomm1.Settings="9600,N,8,1"

MScomm1mPort=1

MScomm1.PortOpen=True4.2.2通讯协议由于系统可以通过PC来控制下位机进行数据采集,这就会涉与到双机通讯的问题,为解决控制得的准确性以与数据传输的正确性,需要采取一系列的通讯协议。1.双机通讯协议控制字AA:进行单次数据采集并将采集的数据在LCD上显示,同时传输给上位机;AB:进行连续数据采集并将采集的数据在LCD上显示,同时传输给上位机;AC:进行连续数据采集并将采集的数据在LCD上显示,同时启动DA转换将采集的数据还原病将采集的数据传输给上位机;AD:停止数据采集。4.2.3上位机控制程序流程图上位机控制程程序流程图如图4.5所示。4.5上位机控制程程序流程图4.2.4系统界面以与数据处理设计用户操作界面的主要目的是为了方便用户操作,良好的用户界面对提高应用系统的运作效率、减少误操作和保证操作人员的使用轻松、方便等方面起着十分重要的作用,系统界面如图4.6所示:图4.6系统界面由于采集到的数据用Text文本显示不能留住历史记录,用列表框(ListBox)显示虽然可以查找历史数据,但效果很差。本设计选择MSFlexGrid控件进行列表显示采集到的数据,MSFlexGrid控件的一个主要特性是它能显示层次结构记录集,以层次结构方式显示关系表,另外,它可以显示网格数据,也可以对其进行操作。它提供了高度灵活的网格排序、合并和格式设置功能,网格中可以包含字符串和图片。与MSFlexGrid控件有关的程序说明如下:数据表格属性设置:DimVbiAsIntegerDialog2.MSFlexGrid1.Cols=5Dialog2.MSFlexGrid1.Rows=513Dialog2.MSFlexGrid1.ColWidth(0)=1000ForVbi=1To512Dialog2.MSFlexGrid1.Col=0Dialog2.MSFlexGrid1.Row=VbiDialog2.MSFlexGrid1.Text=VbiNextVbiDialog2.MSFlexGrid1.ColWidth(1)=1400Dialog2.MSFlexGrid1.Col=1Dialog2.MSFlexGrid1.Row=0Dialog2.MSFle

温馨提示

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

评论

0/150

提交评论