欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于labview串口的现场实时多通道温度采集测量与实现-学位论文.doc

    • 资源ID:87912025       资源大小:3.35MB        全文页数:49页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于labview串口的现场实时多通道温度采集测量与实现-学位论文.doc

    摘 要温度是机械加工中最基本的参数之一,在生产过程中常需要对温度进行检测和监控。数控机床加工中,常需要对数控机床进行热误差计算并实现热误差补偿,通过热误差补偿技术来达到提高数控机床加工精度的目的。因此,研究一种基于串行通信的多路温度采集和实时监控系统,对提高工业控制性能、提高数控机床的加工精度以及提高生产效率有着重要的意义。本文设计了一种数控机床多点温度采集电路,可以同时对四路温度进行实时的采集和显示,通过设定温度的报警范围对其进行预警,并且利用串口实现单片机和计算机的通信,使用上位机完成数据处理和温度的显示等。温度的测量精度低于0.5。设计中使用STC89C52作为下位机的主控芯片,并使用LCD1602液晶屏进行温度的显示,采用温度传感器TC1047进行温度采集。将温度传感器输出的电压通过RC滤波电路以及运放OP07组成的放大电路,然后通过A/D转换,最后将A/D转换的数字量通过RS232串口发送到LABVIEW编写的上位机进行数据处理和显示。通过上位机设置温度的采集速率以及设定报警温度上限,将采集到的数据以TXT或XLS格式存储到电脑中。硬件电路采用低成本的设计思想,软件设计采用模块化的设计方法,最后进行实物的制作和调试,验证了设计的设计稳定性和可行性,实现了设计的预期结果。关键词:串口通信;LABVIEW;数控机床;热误差;多通道温度采集 Abstract Temperature is one of the most basic parameters in the machining and temperature detection and monitoring is commonly found in the production. In CNC machining, thermal error of CNC machine need to be calculated, and thermal error compensation is implemented. Through the thermal error compensation techniques to achieve the purpose of the improvement of precision CNC machining. So the study of a multi-channel temperature acquisition and real-time monitoring system based on serial communication has an important significance to improve the performance of industrial control and production efficiency. This article design a multi-channel temperature acquisition circuit of CNC machine. It can acquire four channel temperature data at the same time, also the display of these data is real-time. The method also can set temperature alarming range and if the data exceed the range the system will warn. And using the serial port to realize the single chip microcomputer and computer communication, using upper computer to complete data processing and display of temperature, etc. Temperature measuring precision less than 0.5 . STC89C52 is the main control chip of the design, and LCD1602 is used to display the temperature value, and temperature sensor TC1047 is used for temperature acquisition. Temperature sensor output voltage will by RC filter circuit and amplifier circuit which is composed of operational amplifier OP07, and then through the A/D conversion .finally, through the RS232 serial port sent the digital quantity to upper computer for data processing and display, and the upper computer is wrote by LABVIEW. Can set the temperature data acquisition rate, and can set temperature limit through upper computer, and the collected data can be stored your computer in TXT or XLS format.The design of hardware circuit is based on stable, viable, low-cost design ideas. And the design of software uses modular method. And finally by finishing and debugging of the circuit, we verify the feasibility of the design and also we achieve to the expected results of the design.Keywords: serial communication; LABVIEW; CNC machine; thermal error; multi-channel temperature acquisition目 录引言11 系统综述21.1 方案论证与选择21.2 系统整体框图32 硬件电路设计42.1 51单片机主控电路42.1.1 单片机主控电路设计42.1.2 C51程序语言52.2 TC1047温度采集电路52.3 RC低通滤波电路62.4 OP07放大电路72.5 A/D转换电路82.6 LCD1602显示电路92.7 串口通信电路102.8 电源稳压电路113 下位机软件设计123.1 主程序框架123.2 ADC0832驱动程序133.3 LCD1602显示驱动程序153.4 串口通信程序174 上位机软件设计184.1 上位机人机交互界面设计184.2 上位机程序框图设计194.2.1 主程序框图设计194.3.2 LABVIEW串口程序设计204.3.3 串口数据帧解码214.3.4 数据处理和显示224.3.5 数据的存储和读取234.3.6 采集速率和温度报警245 原理图电路仿真256 实物的组装调试及软件验证276.1 实物的制作流程276.2 硬件调试及软件验证286.2.1 电源电路测试286.2.2 LCD1602显示测试286.2.3 放大电路测试296.2.4 A/D转换测试296.2.5 下位机串口通信测试296.2.6 上位机串口通信测试296.2.7 下位机与上位机整体功能测试306.3 数据测量及误差分析306.3.1 温度传感器标定306.3.2 数据的测量346.3.3 误差计算及分析366.4 软硬件调试综述377 结论387.1 系统功能387.2 功能扩展387.3 前景展望39谢 辞40参考文献41附录一 电路设计原理图42附录二 电路设计PCB图43附录三 电路设计实物图43附录四 上位机实时数据采集界面图44附录五 上位机历史数据读取界面图45 桂林电子科技大学毕业设计(论文)报告用纸 第 45 页 共 45 页引言随着科学技术的不断发展,对现代设备精确度的要求不断增长,信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)为信息技术的前沿尖端技术,其应用非常广泛,已经渗透到社会的每一个领域1-3。数据采集是指将温度、压力、流量、位移等物理量转换成数字量后,再由计算机进行存储、处理、显示或者打印的过程。在生产过程中应用数据采集,可对生产现场的工艺参数进行采集、监视和记录,为提高产品质量、降低成本提供信息和手段。数控机床在加工过程中,热误差是因温度上升引起的加工误差。据统计,在精密加工和超精密加工中,由于热变形引起的加工误差占总加工误差的50%70%4-5。目前,有两类方法可以用来减小机床的热误差。一是通过改进机床结构设计方法,直接减小热误差,但是会大大提高成本。二是通过建立热误差模型进行补偿的方法15-16。LABVIEW软件是NI公司开发用于测控领域的图形化开发环境,它在数据采集、仪器控制、测量分析和数据显示方面有着明显的优势而得到广泛的应用14。它是一种方便的人机界面软件,其编程的方式相比于VC等比较复杂的上位机编程软件来说更加的简单和有针对性。利用NI的LABVIEW软件和数据采集卡可以实现数据的采集、存储、分析处理。或者通过其它接口可以很容易地将采集到的数据发送到LABVIE编写的上位机。设计的主要目的和任务是,在生产车间中对数控机床的主要部件进行实时多点温度采集,采集硬件电路主要包括:温度传感器,放大滤波,A/D转换,下位机控制,串口通信等功能;采集通道数>=4,采集温度精度:0.5度,温度范围:040度。上位机对采集的温度数据进行受热分析,并显示温度随时间的变化趋势,并对加工的热变形误差进行计算和补偿。1 系统综述1.1 方案论证与选择设计主要是实现数控机床机床4路温度的采集,正确选择温度传感器和设计放大电路对整个设计起到事半功倍的作用。下面简要分析设计硬件电路方案的选择和上位机编写软件的选择。(1)温度传感器选择 设计中温度传感器可以选择数字温度传感和模拟温度传感器。设计中要求采集的温度精度为0.5,数字温度传感器相对容易实现对温度的高精度测量,如数字温度传感器DS18B20,但进行多路温度采集时使用数字温度传感器成本高,在满足温度测量精度的条件下,选择模拟温度传感器。模拟温度传感器又分为电压输出型温度传感器和电流输出型温度传感器两种。其中电流输出型温度传感器,输出电流一般都很小,如AD590电流输出型温度传感器,需要将输出电流的变化转化电压的变化,才能进行电压放大和A/D转换等11。设计中选用电压输出型温度传感器TC1047温度传感,TC1047输出电压每变化10mV,表示温度变化1,正确设计放大电路和选择A/D转换芯片就可以满中温度测量精度为0.5的要求。(2)滤波电路设计设计中温度传感器选择的是电压输出型温度传感器,设计中要求将大于50Hz的信号给予滤除。设计中选择使用无源RC低通滤波电路即可以满足设计要求。(3)电压放大电路的设计设计中可以选择使用仪用放大器或运算放大器组建电路进行电压放大。选用仪用放大器可以大大减小电路设计的复杂度,如仪用放大器AD620和AD623只需要外接一个滑动变阻器就可以实现放大倍数的精确调节。而使用运算放大器电路设计复杂,精度也没有仪用放大器的高,但仪用放大器的价格相对运算放大器来说价格非常昂贵。设计中选择运算放大器OP07进行放大电路的设计,也可以满足设计的要求,并且设计成本大大降低。(4)A/D转换芯片选择设计中要合理选择A/D转换芯片的分辨率。设计放大电路的放大数5,只要A/D能分辨放大电路25mV输出电压的变化,就可以实现测量温度精度为0.5的要求。设计中选用8位分辨率的A/D转换芯片ADC0832,在参考电压为5V时可以分辨最小20mV的电压变化,满足设计要求。(5)上位机编程软件选择以上主要分析了硬件电路设计方案的选择,上位机的设计也是设计的难点。设计选择使用LABVIEW作为上位机的编写软件,LABVIEW是图形化编程语言,相对于其他文本编程语言来说,LABVIEW相对简单的多,可以很容易实现程序的编写和显示界面的美化设计10。1.2 系统整体框图 设计主要任务分为上位机的设计和下位机设计两个大模块。其中,下位机主要是硬件电路的设计和C语言程序的编写。用电压输出型温度传感器TC1047来实现四路温度的实时监测,用液晶LCD1602显示采集到的温度值。将温度传感器输出的电压,通过RC滤波电路,将50HZ以上的信号给予滤除,再经过运算放大器OP07组建的放大电路对滤波后的电压信号进行放大,使用两片ADC0832将四路放大的模拟信号转化为数字信号。主控芯片STC89C52将A/D转换的数字量经过基于MAX232芯片的串行通信方式,发送到用LABVIEW软件编写的上位机,同时将数字量经数据处理转化为温度值在液晶LCD1602上显示。上位机将接收到的数据进行处理和显示,显示温度随时间的变化曲线以及用颜色的浅深来表示温度的高低,上位机可以设定报警温度上限值和采集温度的速率。上位机分为两个面板,一个为实时数据显示面板,另一个为历史数据读取显示面板,可以实现实时数据采集,同时也可以读取和分析历史数据。设计的整体框图如图1-1所示。PC机STC89C52串口串口电路LABVIEW温度传感器放大电路转换温度传感器放大电路滤波电路滤波电路稳压电源 . . .LCD液晶显示图1-1 数控机床测温系统整体框图2 硬件电路设计2.1 51单片机主控电路设计所选用的单片机型号为STC89C52,其与市场大部分51系列单片机完全兼容,并且在性能方面和速度上更具有优势。STC89C52是一种低功耗、高性能CMOS8位微控制器,在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89系列单片机CPU主要功能是产生各种控制信号,控制输入/输出端口的数据传输、数据的算术运算、逻辑运算以及位操作处理等。STC89系列单片机几乎包含了所有数据采集和控制中所需的所有单元模块,可称得上是一个片上系统6-10。2.1.1 单片机主控电路设计图2-1 单片机主控电路设计单片机最小系统原理图如图2-1所示。主控模块由复位电路,晶振时钟电路和IO电路3部分组成。复位电路设计为按键复位和上电复位,通过在单片机的RST脚接10uf电容接电源,10K电阻接地的方式,完成上电复位,RST引脚再经过一个200欧的电阻和一个按键可以实现按键复位。测温电路设计要用到串口通信,为了得到较准确的波特率,降低通信的误码率,晶振电路使用的是11.0592MHZ的晶振,晶振两端分别接2个22pf电容接地,保证其时钟电路的稳定性。单片机引脚为访问外部存储器控制信号,将其接高电平,访问内部ROM。IO电路其引脚的功能具体如下:P0口为液晶LCD1602的并行数据总线,为了增加对LCD1602的驱动能力,外加了10K排阻;P1.0P1.2为LCD的控制口;P2.0P2.4为ADC0832的数据输入输出和控制口。P3.0和P3.1分别为串口通信的数据接收和数据发送口。2.1.2 C51程序语言C51是为51系列单片机设计的一种C语言,其特点:结构化语言,代码紧凑;接近真实语言,程序可读性强;库函数丰富,编程工作量小;机器级控制能力,功能很强;与汇编指令无关,易于掌握;对于有复杂计算的程序来说,更突显其优势,C51语言已成为51系列单片机程序开发的主流软件方法。C51与标准C语言对比,其语法规则、程序结构、编程方法大致相同,而数据类型、存储模式及中断处理存在着差异13。2.2 TC1047温度采集电路设计采用4个温度传感器TC1047A来采集4路温度,将温度的变化转化为电压的变化。TC1047和TC1047A是线性电压输出温度传感器,可以精确地测量从-40到+125之间的温度。10mV/的输出电压的斜率响应允许在温度范围内对预计的温度进行测量。TC1047传感器输出电压的大小会随温度的改变而改变,温度增大,输出电压会增大,温度减小,其输出电压也会减小12。TC1047温度传感器输出电压与温度变化成线性关系,关系表达式为:其中:为传感器输出电压,单位为;测量温度值,单位为。TC1047温度传感器输出电压随温度变化的关系曲线如图2-2所示。图2-2 TC1047输出电压随温度变化的关系曲线如图2-3所示为TC1047温度传感器接口电路的设计,其中3号管脚用于为该芯片供电,管脚1为电源地,管脚2为电压输出,只要给芯片供电就可以使温度传感器正常工作。图2-3 TC1047接口原理图2.3 RC低通滤波电路 设计采用一阶无源RC低通滤波电路滤除频率为50HZ以上的干扰信号,使温度传感器的输出电压较稳定。 常用的滤波电路有无源滤波和有源滤波两大类。若滤波电路元件仅由无源元件(电阻、电容、电感)组成,则称为无源滤波电路。无源滤波的主要形式有电容滤波、电感滤波和复式滤波(包括倒L型、LC滤波、LC型滤波和RC型滤波等)。若滤波电路不仅由无源元件,还由有源元件(双极型管、单极型管、集成运放)组成,则称为有源滤波电路。有源滤波的主要形式是有源RC滤波,也被称作电子滤波器。无源滤波电路的结构简单,易于设计,但它的通带放大倍数及其截止频率都随负载而变化,因而不适用于信号处理要求高的场合。有源滤波电路的负载不影响滤波特性,因此常用于信号处理要求高的场合。滤波电路还可以分为高通、低通、带通和带阻滤波器,是一种能使有用频率信号通过,同时抑制无用频率成分的电路。设计需要采集由温度传感器将温度转化为电压的信号,在实际中温度的变化频率不可能是太高的。为了使采集到的电压信号更加稳定可靠,设计需要将高于50HZ以上的信号滤除掉,才能进行电压信号的放大。在满足要求的前提下,为了使设计更加的简单,采用RC无源低通滤波电路。RC低通滤波器的截止频率计算公式为:其中:为电阻的阻值,单位为;为电容值,单位为。设计中选用的电容为,电阻,所以可以计算出低通滤波器的截止频率为:所以满足截止频率小于50HZ的要求,RC低通滤波电路原理图设计如图2-4所示。图2-4 RC低通滤波电路2.4 OP07放大电路 设计采用运算放大器OP07作为主芯片组建电压放大电路,放大经过RC低通滤波器电路后的电压信号。OP07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。由于OP07具有非常低的输入失调电压,所以OP07在很多应用场合都不需要额外的调零。OP07同时具有输入偏置电流低各和开环增益高的特点。这种低失调电压、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器输出的信号。温度传感器TC1047在0到40的电压输出范围为到,每变化一度,精度要求为0.5。而采用的是8位的A/D转换,最大能分辨20mV电压变化,放大器的放大倍数为5即可满中要求。设计要求能实时快速地采集温度的变化,对采集的速度有较高的要求,不能通过模拟开关来分时放大每一通道的电压信号,而是每个通道都有各自的放大电路,这样就可以大大提高温度采集的速度。单通道放大电路原理图如图2-5所示。 图2-5 单通道电压放大电路如上图2-5所示为三运放组成的差分放大电路,其中和都是组成电压跟随器,用于增大输入阻抗减小输出阻抗。的管脚3输入温度传感器的输出电压,用于将电压进行差分放大。需要根据要求计算各电阻的参数值。的输出电压为:(2-1)根据运算放大器虚短虚断的特性可得: (2-2)其中:,(2-3)由公式(2-1)、(2-2)和(2-3)可计算出如下表达式: (2-4)其中表达式(2-4)中为电阻阻值,单位为;分别为输入输出电压,单位为。设表达式(2-4)中的,即为电压放大倍数,为了方便计算,取,,将和所选择的电阻阻值代入(2-4)可得:解得:,电阻用一个的滑动变阻器代替,便于放大倍数的调节。2.5 A/D转换电路设计采用两片分辨率为8位的A/D转换芯片ADC0832将已放大的模拟电压信号转换为单片机可以处理的数字信号。ADC00832为8位分辨率的逐次逼近型双通道A/D转换芯片,其最高分辨可达256级,可以适应一般模拟量的转换要求。其内部电源输入与参考电压复用,使得芯片的模拟电压输入在05V之间。芯片的转换时间仅为32us,具有双数据输出可作为数据校验,以减小误差,转换速度快且性能稳定性强。独立的芯片使能输入,使多器件挂接和处理器控制变得更加方便。设计要求采集4通道的模拟量,而单片ADC0832只有双通道,所以选择使用2片ADC0832。之所以选择两片ADC0832作为A/D转换电路,而不是选择集成有多通道的A/D转换芯片,如ADC0834或ADC0838,而这两个芯片在操作时更复杂,编写软件时会降低模拟量采集的速度,若选用常用的转换芯片ADC0809,在频率为500KHZ时,转换速度才128us,速度也达不到。在设计时将两片芯片的引脚CLK、DI和DO分别对应并联在一起连接到单片片机的三个I/O口上,而两芯片的片选信号CS则连接到不同的I/O口上,可以通过片选端来选择要操作的A/D芯片。两片ADC0832组成的A/D转换电路原理图如图2-6所示。图2-6 A/D转换电路2.6 LCD1602显示电路设计LCD1602主要用于显示采集到的4路温度值。LCD1602是常用的液晶显示屏,它显示的内容为16×2,即可以显示两行,每行16个字符,目前绝大多数字符液晶基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。LCD1602工作电压为3.3V或5V,内含复位电路,提供各种控制命令如:清屏、字符闪烁、光标闪烁、显示移位等多种功能。有80字节显示数据存储器DDRAM,内建有192个5X7点阵的字型的字符发生器CGROM和8个可由用户自定义的5X7的字符发生器CGRAM。图2-7 LCD1602显示电路LCD1602主要由控制引脚和数据引脚2个部分组成。参考图2-7其中RS和RW两个引脚用于控制LCD1602的写操作类型,当RS和RW均为0时,即都为低电平时,则此次单片机发送的8位数为对LCD1602的控制命令,通过命令类型的判断执行相应的LCD的配置。而当RS为1即高电平时,则发送的8位数为需要显示的内容,LCD对其进行显示。每次的写命令,需要将LE控制引脚置为高电平,使能此次写,平时状态则置为低电平。引脚1和2分别为LCD的电源和接地端,引脚15和16分别为LCD背光调节的正极和负极,分别接上电源和地。LCD的3引脚用于调整字符显示的对比度,此部分通过外加一个10K电位器,接电源和地之间来实现手动的调整,一般当对比度不够高时,字符不会显示,而增加太多时会出现重影,因此合适的对比度对于显示效果比较重要。2.7 串口通信电路设计采用MAX232芯片进行单片与PC之间的电平转换,实现单片机与PC机之间的通信。MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5V单电源供电。由于电脑串口RS232电平是-10V,+10V,而一般的单片机应用系统的信号电压是TTL电平0 V和+5V,MAAX232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。图2-8 串口通信电路串口通信电路原理图设计如图2-8所示。此次设计的串口通信电路主要使用MAX232芯片来实现电平转换。其中T1IN和R1OUT分别接单片机的发送引脚TXD和接收引脚RXD,MAX232外接5个1uf电容为经典电路的接法,主要实现振荡式升压将单片机的电平变成符合计算机的电平类型。与计算机接口电路使用RS232 DB9接头,由于不需要奇偶校验等,因此只需接其中3根线,即发送、接收和地线。2.8 电源稳压电路 设计要求运算放大器OP07需要在正负电源下工作,并且A/D的参考电压值也需要较稳定。为了使电路正常并且稳定工作,选用L78××/ L79××稳压芯片设计稳压电源。L78××系列是三端正电源稳压芯片,它有一系列固定的固定的正电压输出,应用十分广泛。芯片内部有电流限制、过热保护以及安全工作区的保护,使它基本不会损坏。如果能够提供足够的散热片,就能够提供大于1.5A的输出电流。虽然芯片是按照固定输出电压来设计的,但是接入适当的外部器件后,就能获得各种不同的输出电压和输出电流。L79××系列是三端稳压芯片除了输出是负电压之外,其余特性与L78××系列是三端稳压芯片基本一致。图2-9 稳压电源电路电源电路原理图如图2-9所示。选用L7812和L7912稳压芯片分别得到稳定的正12V和负12V电压。而A/D转换芯片、温度传感器和单片机等都需要正5V的工作电压,选用L7805稳压芯片得到稳定的正5V电压输出。其中P5用于接220V交流转12V交流的变压器,对12V交流经过整流后输出直流正电压和直流负电压。将整流后的直流电压经过一个2200uF和一个0.33uF的电容后可以得到较稳定的直流电压。然后通过稳压芯片L7812和L7912就可以得到稳定的正负12V电压,把稳压管输出的正12V作为L7805的输入,L7805就可以输出稳定的正5V电压。3 下位机软件设计 下位机程序设计使用KEIL C的编译环境,并使用C语言进行程序的编写,然后经过编译后生成.hex文件。此次设计因为要用到串口通信,所以选择使用串口下载,将代码下载到相应STC89C52的单片机中去。3.1 主程序框架 下位机程序设计采用模块化的设计思想,主要包括下面几部分:(1)编写LCD1602驱动程序,实现对LCD1602的8字节写命令操作函数、写数据操作函数,调用写命令函数初始化液晶屏以及通过写命令和写数据这两个函数来编写在指定的位置显示单个字符、在指定的位置开始显示字符串等扩展函数,便于在主程序中调用。通过在主程序中调用相应的LCD显示函数,最终完成4路温度值的显示。(2)编写ADC0832驱动程序,实现对4通道模拟电压的采集。程序中包括相应通道的选择和对A/D转换结果1个字节的读取。为了能方便在主函数中选择转换通道和读取相应通道的A/D转换结果。将程序设计成有两个参数变量和带返回值的函数,其中一参数变量用来选择对那片芯片操作,另一个参数变量用来选择转换通道,最后的返回值则为A/D的转换结果。(3)编写串口通信程序,实现将A/D转换的8位数字量通过串口发送到上位机。串口通信程序包括串口的初始化配置函数,串口1个字节发送函数。其中串口的初始化配置要特别注意波特率的设置,应该和上位机的波特率设置成一样大小,保证串口通信更准确;而串口发送则采用查询法。在主程序中通过调用发送子函数即可以将数据发送到上位机。(4)编写主程序,实现在主程序中调用已编写好的子程序,即将整个下位机的的功能在主程序中实现。在主函数中,首先对LCD1602、ADC082和串口进行初始化,然后在一个大循环中不停地采集A/D转换的数据,并通过处理通过串口发送到上位,同时再经过适当的处理,在LCD上显示出温度值。为了使接收到的数据更准确,在取A/D转换结果时,连续读取10次,再求取平均值,而LCD温度显示函数则在定时器中断调用,设置成每隔一段时间对温度值进行刷新一次。下位机的主程序流程图如图3-1所示。YESYESYESNONONO开始结束LCD显示、串口、A/D转换、定时器中断等初始化对4路A/D转换每个通道各读取10次,并保存将各通道采集到的10组A/D转换结果分别求平均值,并保存串口发送数据到上位机是否定时器中断?是否定时器中断?是否定时器中断? 进入中断服务程序将各通道的数字量平均值转换为电压值将电压值转换为温度值LCD1602显示4通道温度值开始结束图3-1 下位机主程序流程图3.2 ADC0832驱动程序ADC0832未工作时其CS输入端应为高电平,此时芯片禁止读写,CLK、DO和DI的电平值可任意。当要进行A/D转换时,必须将CS使能端置低电平并且保持低电平直到转换完全结束。使能CS之后,单片机向芯片时钟输入端CLK输入时钟脉冲,数据输入端DI用于输入数据进行A/D转换通道的选择,数据输出端DO用于输出A/D转换的结果。在第一个时钟脉冲的下降沿之前DI必须保持高电平,表示启动信号,在第二和第三个下降沿之前DI输入的数据用于选择A的转换通道。ADC0832的操作时序如图3-2所示。图3-2 ADC0832的时序图在进行A/D转换时,要用到两片ADC0832,在进行A/D转换时,先选择其中一片芯片进行A/D转换,读取两个通道的值,之后再选择另外一个芯片进行A/D转换,再读取两个通道的值。再选择芯片时只能使能其中的一个芯片,而另外的一个芯片的使能端必须禁止。ADC0832驱动程序流程图如图3-3所示。开始选择一片ADC0832选择通道1选择通道2保存转换结果保存转换结果选择另一片ADC0832选择通道3选择通道4保存转换结果保存转换结果结束图3-3 A/D转换程序流程图ADC0832在读取转换结果时,是在时钟脉冲下串行输出的,并且是最高位先输出。读取A/D转换的部分代码如下:for(i=0;i<8;i+) /循环8次读取1个字节数据 val=val<<1; /val用于暂存转换结果,经过8次左移后即为转换结果CLK=1;CLK=0; /数据输出在下降沿后有效if(DO) val=val|0x01; /若输出为1则与0x01相或3.3 LCD1602显示驱动程序LCD显示驱动程序在进行数据的显示时,先要对LCD写入初始化控制命令字,初始化成功之后,写入数据地址控制命令,再写入数据才能把数据显示出来。程序主要包括写命令、写数据、数据地址指针设定、显示单个字符、显示字符串等。LCD1602的写操作时序如图3-4所示。图3-4 LCD1602写操作时序 根据LCD1602写操作时序图可知,当RS为低电平,RW为高电平时为写命令操作,控制命令主要是用设置LCD显示模式、光标的设置等,单片机将8位数据送到LCD并行数据总线上,单片机给E数据端一个正脉冲信号,就可以将控制命令字写入LCD。当RS为高电平,RW为高电平时为写数据操作,LCD就会将接收到的数据在液晶屏上显示出来。在进行数据显示前需要先设置数据地址指针,这样才能在想要的位置显示出数据。LCD1602显示驱动程序流程图如图3-5所示。NO YES开始LCD初始化根据想要显示的位置计算相应的地址发送地址发送数据数据是否发送完?结束图3-5 LCD1602显示驱动程序流程图 根据以上LCD写操作时序和LCD显示驱动程序流程图编写出相应的驱动函数,部分显示函数如下:void Display_LCD_1602_dan_zi(uchar X,uchar Y,uchar Value) /在指定位置 / 写入一个字符,X为行,Y为列,Value为写入的数据LocationXY( X, Y); /确定字符显示的位置函数Write_com_or_dat(Value,1); /写入数据函数void Display_LCD_1602_duo_zi(uchar X,uchar Y,uchar *P) /显示字符串函 /数,P指向字符串的首地址LocationXY( X, Y); /设定初始地址while(*P) Write_com_or_dat(*P,1);P+; 3.4 串口通信程序 串口通信程序主要包括串口的初始化、串口数据发送,其中串口的初始化主要是用于设置波特率。在通信中采用的串口通信波特率为9600,在程序设计中采用查询法发送数据,串口通信程序流程图如图3-6所示。NONOYESYES开始结束串口初始化将发送的数据写入SBUFTI是否为1?TI清0数据是否发送完?图3-6 串口通信程序流程图 在进行串口通信程序编写时,编写单字节发送函数和字符串发送函数,其中部分程序代码如下:void Sent_Byte(uchar dat) /发送单字节函数

    注意事项

    本文(基于labview串口的现场实时多通道温度采集测量与实现-学位论文.doc)为本站会员(教****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开