智能仪器智能温度测试仪的设计_第1页
智能仪器智能温度测试仪的设计_第2页
智能仪器智能温度测试仪的设计_第3页
智能仪器智能温度测试仪的设计_第4页
智能仪器智能温度测试仪的设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、可编辑北华大学智能仪器综合设计实习报告 题目:智能温度测试仪的设计 专业:测控技术与仪器 班级: 姓名: 学号: 指导老师:目录一、 概述 1二、 方案设计 21设计任务 22总体方案 23具体方案 24PT100传感器特性 3 5测温原理 3三MK-4PC 智能仪器实验教学系统简介 3四硬件电路设计 51硬件功能分析 52.各部分硬件设计5五软件设计81. 编程环境介绍 82.软件功能需求分析103.各部分软件设计11a软件的流程图 11b.主程序11六调试21七实习总结21八参考文献22一、概述温度是自然界中和人类打交道最多的物理参数之一,无论是在生产实验场所,还是在居住休闲场所,温度的采

2、集或控制都十分频繁和重要,而且,网络化远程采集温度并报警是现代科技发展的一个必然趋势。 由于温度不管是从物理量本身还是在实际人们的生活中都有着密切的关系,所以温传感器就会相应产生。传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。温度传感器从使用的角度大致可分为接触式和非接触式两大类,前者是让温度传感器直接与待测物体接触,而后者是使温度传感器与待测物体离开一定的距离,检测从待测物体放射出的红外线,达到测温的目的。由于PT100热电阻的温度与阻值变化关系,人们便利用它的这一特性,发明并生产了PT100热电阻温度传感器。它是集温度湿度采集于一体的智能传感器。温度的采集范围可以在-200

3、+200,湿度采集范围是0%100%。pt100温度传感器是一种将温度变量转换为可传送的标准化输出信号的仪表。主要用于工业过程温度参数的测量和控制。带传感器的变送器通常由两部分组成:传感器和信号转换器。传感器主要是热电偶或热电阻;信号转换器主要由测量单元、信号处理和转换单元组成(由于工业用热电阻和热电偶分度表是标准化的,因此信号转换器作为独立产品时也称为变送器),有些变送器增加了显示单元,有些还具有现场总线功能。此次实习我们利用SST89V564RD单片机结合温度传感器技术而开发设计了这一温度测量系统。二、方案设计1设计任务测温的模拟电路是把当前PT100热电阻传感器的电阻值,转换为容易测量的

4、电压值,经过放大器放大信号后送给A/D转换器把模拟电压转为数字信号后传给单片机,单片机再根据公式换算把测量得的温度传感器的电阻值转换为温度值,并将数据送出到LCD显示器进行显示。2总体方案智能温度测量仪的设计,包括硬件和软件的设计。先对该测量仪进行概括性介绍,然后介绍该测量仪在硬件设计上的主要器件:“Pt100热电阻”、单片机和LCD显示器以及描述测量仪的总体结构原理。在本设计中,是以铂电阻PT100作为温度传感器,采用恒流测温的方法,通过单片机进行控制,用放大器、A/D转换器进行温度信号的采集。总体来说,该设计是切实可行的。本设计系统包括温度传感器,信号放大电路,A/D转换模块,数据处理与控

5、制模块,温度显示五个部分。3具体方案本设计系统主要包括温度信号采集单元,单片机数据处理单元,温度显示单元。其中温度信号的数据采集单元部分包括温度传感器、温度信号的获取电路(采样)、放大电路、A/D转换电路。 系统的总结构框图如图1-1所示。系统的总结构框图 本温度测量系统设计,是采用PT100温度传感器经过放大和A/D转换器送到单片机进行控制温度显示。另外本系统还可以通过外接电路扩展实现温度报警功能,从而更好的实现温度现场的实时控制。 经过多次的修改和调试测量,本设计基本符合设计要求,由于受人为因素和软硬件的限制,系统难免不了带来一些误差,但通过调节和精确计算可以减小误差。 4PT100传感器

6、特性 电阻式温度传感器(RTD, Resistance Temperature Detector)是指一种物 质材料作成的电阻,它会随温度的改变而改变电阻值。 PT100温度传感器是一种以铂(Pt)做成的电阻式温度传感器,属于正电阻系数, 由于它的电阻温度关系的线性度非常好,因此在测量较小范围内其电阻和温度变化的关系式如下:R=Ro(1+T) 其中=0.00392, Ro为100(在0的电阻值),T为华氏温度,因此铂做成的电阻式温度传感器,又称为PT100。 PT100温度传感器的测量范围广:-200+600,偏差小,响应时间短,还具有抗振动、稳定性好、准确度高、耐高压等优点,其得到了广泛的应

7、用,本设计即采用PT100作为温度传感器。5测温原理通过运放U1A将基准电压4.096V转换为恒流源,电流流过Pt100时在其上产生压降,再通过运放U1B将该微弱压降信号放大(图中放大倍数为10),即输出期望的电压信号,该信号可直接连AD转换芯片。智能仪器实验开发平台集中了单双极性输入通道、程控放大、模拟滤波、16位A/D转换及CPLD技术和单片机技术,并具有超过128KB的大存储空间,集中体现了智能仪器课程所涉及到的各种软硬件技术,非常适合大学本科生的学习以及在此基础上的进一步开发。三MK-4PC 智能仪器实验教学系统简介智能仪器实验开发平台采用模块化设计,整个平台设有一个母板,该母板具有四

8、个相同规格的扩展部分,每个扩展部分设四个插口,每个插口对应的分别为单片机的P0、P1、P2、P3口,如图1所示。设计时将单片机作为控制部分的核心,因此单片机板独立占用其中一个扩展,显示部分采用液晶模块完成,该部分还设有四个按键作为组合按键使用。第三个部分为基于CPLD的16位数据采集部分,设有两个独立输入通道,每个通道可设置为单极性输入或双极性输入,具有程控放大、模拟滤波等功能,CPLD控制A/D转换器完成数据的采集工作,数据采集的采样频率可设置为10KHz、20KHz 500KHz,采样点数可以根据要求设置。平台的最后一个扩展部分为空,留给平台的使用者做扩展使用,根据要求自己独立设计该部分的

9、电路。图1俯视尺寸规格图(单位:毫米)除平台能够独立完成各项实验项目外,为实现对采集的数据进行图形化显示,该平台还可以通过标准的RS-232接口与PC机连接,通过PC机的显示器将数据波形显示出来,同时还可以利用该串行接口对单片机进行仿真或传输控制参数使其工作在设定模式下。整个功能框图如图2所示。图2 功能框图四硬件电路设计1硬件功能分析图4 硬件部分电路图 后面有CPLD及单片机,单片机控制液晶显示部分。图5 液晶显示器电路图2.各部分硬件设计对于热电阻的测量电路我们可以采用二线式的测量电路等。而对于我们此次实习则选择利用恒流源模拟此测量部分。 二线式图如下:图6 二线式图 信号取回后需要进行

10、信号的调理,信号调理电路图如下:图7 信号调理电路图 右下角OP07起偏置作用。调节电位器Rpot1可调节偏置。上图的差分放大电路的输出连接至程控放大电路的输入。电路图如下:图8 程控放大电路图 程控放大器的输出信号进入电平抬高电路。如下:图9 电平抬高电路图 两个二极管起钳位作用。这个电路是求差电路。 电平抬高电路的输出进入程控滤波电路。如下图:图10 程控滤波电路图 用到的程控滤波芯片为LTC1569-7,FCLK0是CPLD产生的方波信号,用来控制滤波器截止频率。若要控制滤波器截止频率为1kHz,CPLD要产生32k的方波信号给FCLK0。 程控滤波电路之后接入A/D转换器。图如下:图1

11、1 AD转换电路图 U20为AD780,它是基准电压芯片。A/D转换器是AD7655,它是一款16位的A/D,它的数据口D0-D7、控制端口BUSY、CNVST、IMPULSE、BYTESWAP连接至CPLD。单片机通过往CPLD写控制字来控制A/D的采样率。 单片机部分的电路图如下: 图12 单片机部分电路图五软件设计1. 编程环境介绍单片机软件开发采用目前比较通用的Keil51开发软件完成,该软件有很多详细的应用文档,在此不再赘述。如果不使用硬件仿真器,多数通用单片机都无法实现在线仿真功能,而本实验平台所用单片机SST89V564RD可以实现在线仿真以及程序下载功能,两者皆可以通过PC机的

12、标准RS-232串口与Keil51软件通信实现,其连接示意图如下图,本节主要介绍如何在现有Keil51软件基础上实现上述功能。针对在线仿真功能,SST公司为方便用户使用单片机调试程序而开发了调试工具SoftICE(Software In Circuit Emulator,在电路软件模拟),该调试工具可实现下述功能: 下载INTEL HEX文件 在线调试及设置断点,支持汇编语言和C51语言 反汇编代码区到8051助记符 读写代码/数据存储器、FSR特殊功能寄存器及PORT端口 IAP(In Application Programming,应用中再编程)功能 软件重启动图6 计算机与实验平台连接示

13、意图对于我们本次实习的单片机SST89V564RD,我们用keil C51编程环境进行程序的编写。keil C51 软件是众多单片机应用开发的优秀软件之一。它集编辑、编译、仿真于一体,支持汇编、PLM 语言和 C 语言的程序设计。界面友好,易学易用。对于下载的软件我们可以直接用keil C51下载。同时我们也可以在SST软件的下载页面中下载。而且这两种下载方式都需要程序生成.HEX文件。如下图所示:图13而应用SoftICE调试工具进行程序在线仿真调试的过程是这样的: (1)利用SST Boot-Strap Loader软件将SoftICE直接下载到单片机中,重新上电复位后,单片机中的Soft

14、ICE便可以与Keil51软件通信以进行仿真调试,下载界面如下 (2)在Keil51软件上选择使用的单片机型号SST89V564RD; (3)在Keil51软件的Project下拉菜单中选择“Options for TargetMonitor51”; (4)在Options for TargetMonitor51窗口的Debug栏中选择“Use Keil Monitor-51 Driver”,由于每次RESET目标板时用户代码区会被擦除,如果用户程序需要在开始时下载到目标板,要勾上“Load Application at Startup”; (5)点击Settings项,弹出Target Se

15、tup窗口进行配置,可以选择PC机与目标板通信的串行接口及波特率,如果需要显示存储器的实时窗口,请不要选Cache Options,注意,如果选择了的中断向量3Serial Interrupt去Stop Program Exacution,SoftICE将修改在位置0023H个字节,要确保用户程序未占用这些地址; (6)开始调试,此时可以根据Keil51软件的Debug进行程序调试。通过View下拉菜单的部分选项可以观察及修改特殊功能寄存器及数据存储器等的内容。2.软件功能需求分析单片机软件开发采用目前比较通用的Keil51开发软件完成。如果不使用硬件仿真器,多数通用单片机都无法实现在线仿真功

16、能,两者皆可以通过PC机的标准RS-232串口与Keil51软件通信实现。针对在线仿真功能,SST公司为方便用户使用单片机调试程序而开发了调试工具SoftICE(Software In Circuit Emulator,在电路软件模拟)。该调试工具可实现下述功能:(1) 下载INTEL HEX文件;(2)在线调试及设置断点,支持汇编语言和C51语言;(3)反汇编代码区到8051助记符;(4)读写代码/数据存储器、FSR特殊功能寄存器及PORT端口;(5)IAP(In Application Programming,应用中再编程)功能;(6)软件重启动。利用该调试工具我们可以很方便的用计算机对M

17、K-4PC智能仪器实验开发平台进行各项试验及实习。3.各部分软件设计a软件的流程图 开始系统初始化PT100温度数据采集处理读到的数据送LCD显示结束 开始初始化函数A/D转换器进行A/D转换将转换后的电压转换为温度返回 图1 系统总流程图 图2 温度转换程序流程图 开始系统初始化调用温度子程序调用显示子程序调用扫描按键程序 开始将温度数据写入到LCD读取温度值显示温度值返回 图3 显示流程图 图4 主函数流程图b.主程序ADS7841驱动程序#include #include #include delay.h#include ads7841.h#include LCD1602.h/-ADS7

18、841控制字节-#define control_byte 0b10011000/bit val description/bit7 1 start,恒为1/bit6,5,4 001 选择CH0为+IN/bit4 1 选择为单端输入/bit2 X 外部MODE接GND,该位无作用,恒为12位/bit1,0 00 转换期间ADC为掉电模式void port_init(void) PORTA = 0xFF;/将所有端口初始化为输入,打开上拉 DDRA = 0x00; PORTB = 0xFF; DDRB = 0x00; PORTC = 0xFF; DDRC = 0x00; PORTD = 0xFF;

19、DDRD = 0x00; PORTE = 0xFF; DDRE = 0x00; PORTF = 0xFF; DDRF = 0x00; PORTG = 0xFF; DDRG = 0x00;void main() unsigned int result; unsigned char i,array4,table=0123456789; port_init(); /端口初始化 LCD1602_init(); /1602液晶初始化 ads7841_init(); /ADS7841初始化 LCD_write_string(0x80,result:); while(1) ads7841_start();

20、/启动ADS7841,即拉低CS delay_nus(10); result=ads7841_W_R(control_byte); /发送控制字,并得到转换数据 result&=0b0000111111111111; /屏蔽掉高四位 delay_nus(10); ads7841_finish(); /停止ADS7841,即拉高CS for(i=0;i4;i+) /以下均为显示部分 arrayi=result%10;/ esult/=10; for(i=0;i4;i+) LCD_write_onechar(0x87+i,tablearray3-i); delay_nms(300);#ifndef

21、 _ads7841_h#define _ads7841_hdefine DCLK PD0#define DCLK_ddr DDRD#define DCLK_port PORTD#define DCLK_pin PIND#define CS PD1#define CS_ddr DDRD#define CS_port PORTD#define CS_pin PIND#define DIN PD2#define DIN_ddr DDRD#define DIN_port PORTD#define DIN_pin PIND#define BUSY PD3#define BUSY_ddr DDRD#def

22、ine BUSY_port PORTD#define BUSY_pin PIND#define DOUT PD4#define DOUT_ddr DDRD#define DOUT_port PORTD#define DOUT_pin PINDdefine ads7841_start() CS_port&=(1CS) /启运ADS7841#define ads7841_finish() CS_port|=(1CS) /停止ADS7841void ads7841_init(void);unsigned int ads7841_W_R(unsigned char byte);#endif#inclu

23、de #include #include delay.h#include ads7841.h/* * 函数名称:ads7841_init()* * 函数功能:初始化ADS7841端口* * 备 注:无*/void ads7841_init(void)DCLK_port&=(1DCLK); /时钟端初始化为输出低电平DCLK_ddr|=(1DCLK);CS_port|=(1CS); /片选端初始化为输出高电平CS_ddr|=(1CS); /即不选中ADS7841DIN_port&=(1DIN); /数据输入端初始化为输出低电平DIN_ddr|=(1DIN);BUSY_port|=(1BUSY);

24、 /忙信号初始化为输入,打开上拉BUSY_ddr&=(1BUSY);DOUT_port|=(1DOUT); /数据输出初始化为输入,打开上拉DOUT_ddr&=(1DOUT);/* * 函数名称:ads7841_W_R* * 函数功能:向ADS7841写入控制字节,读出转换好的数* * 输入参数:unsigned char byte : 控制字节 unsigned int result: AD转换好的数* * 备 注:数据从高位到低位写入,从高位到低位读出*/unsigned int ads7841_W_R(unsigned char byte)unsigned char i,temp;uns

25、igned int result=0;for(i=0;i8;i+) /8位数据计数 DCLK_port&=(1DCLK); /拉低时钟端 if(byte&0x80) /当前位是否是1 DIN_port|=(1DIN); /当前位是1,拉高数据端 else DIN_port&=(1DIN); /当前位是0,拉低数据端 delay_nus(10); /调整时钟和脉冲宽度 DCLK_port|=(1DCLK); /时钟上升沿 delay_nus(10); byte=1; /数据左移1位,为送出新数据位做准备 delay_nus(10);DCLK_port&=(1DCLK); /拉低时钟端delay_

26、nus(10);i=BUSY_pin; /读BUSY的状态delay_nus(10);if(i&(1BUSY) /如果为高则说明转换完成,应将其读出/-以下先读出高八位- for(i=1;i=8;i+) result=1; /保存读入的数据位 DCLK_port|=(1DCLK); /时钟上升沿 delay_nus(10); DCLK_port&=(1DCLK); /拉低时钟端 elay_nus(10); if(DOUT_pin&(1DOUT) result|=0x01; else result&=0xfe; /-以下读出低四位- for(i=1;i=4;i+) temp=1; /保存读入的数

27、据位 DCLK_port|=(1DCLK); /时钟上升沿 delay_nus(10); DCLK_port&=(1DCLK); /拉低时钟端 delay_nus(10); if(DOUT_pin&(1DOUT) temp|=0x01; else temp&=0xfe; for(i=1;i=4;i+) /再给ADS7841四个时钟 DCLK_port|=(1DCLK); /时钟上升沿 delay_nus(10); /调整时钟和脉冲宽度 DCLK_port&=(1DCLK); /拉低时钟端 delay_nus(10); /调整时钟和脉冲宽度 result=(result=32) /再送X地址 l

28、cdwc(GXPOS/16+8)|0x80); else lcdwc(GXPOS/16)|0x80); lcdwc(0x30); /恢复为基本指令集void lcdon(void) /LCD显示开启子程序 lcdwc(0x30); /设置为基本指令集 lcdwc(0x0c);void lcdoff(void) /LCD显示关闭子程序 lcdwc(0x30); /设置为基本指令集 lcdwc(0x08);void lcdgraphon(void) /绘图区域显示开启子程序 lcdwc(0x36); lcdwc(0x30); /恢复为基本指令集void lcdgraphoff(void) /绘图区

29、域显示关闭子程序 lcdwc(0x34); lcdwc(0x30); /恢复为基本指令集void lcdwd(unsigned char d) /向液晶显示控制器写数据 CSPIN=1; /片选使能 transbyte(0xfa); /SYNCODE=0F8H,RW=0,RS=1,D0=0 transbyte(d&0xf0); /送高四位数据,低四位补零 transbyte(d&0x0f)4); /送低四位数据 CSPIN=0; /片选禁止void lcdwc(unsigned char c) /向液晶显示控制器送指令 CSPIN=1; /片选使能 transbyte(0xf8); /SYNCODE=0F8H,RW=0,RS=0,D0=0 transbyte(c&0

温馨提示

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

最新文档

评论

0/150

提交评论