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

下载本文档

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

文档简介

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

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

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

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

5、 制,用放大器、 A/D 转换器进行温度信号的采集。总体来说,该设计是切 实可行的。本设计系统包括温度传感器,信号放大电路, A/D 转换模块,数据 处理与控制模块,温度显示五个部分。3具体方案本设计系统主要包括温度信号采集单元, 单片机数据处理单元,温度显示单元。其中温度信号的数据采集单元部分包括温度传感器、温度信号的获取电路(采样)、放大电路、A/D转换电路。系统的总结构框图如图1-1所示。信号放大 调理电踣PT100 M 底恃嚥器系统的总结构框图本温度测量系统设计,是采用 PT100温度传感器经过放大和 A/D转换器送 到单片机进行控制温度显示。另外本系统还可以通过外接电路扩展实现温度报

6、警 功能,从而更好的实现温度现场的实时控制。经过多次的修改和调试测量,本设计基本符合设计要求,由于受人为因素和软硬 件的限制,系统难免不了带来一些误差,但通过调节和精确计算可以减小误差。4. PT100传感器特性电阻式温度传感器(RTD, Resista nee Temperature Detect是指一种物质材料 作成的电阻,它会随温度的改变而改变电阻值。PT100温度传感器是一种以铂(Pt)故成的电阻式温度传感器,属于正电阻系数, 由于它的电阻一温度关系的线性度非常好, 因此在测量较小范围内其电阻和温度变化的关系式如下:R=Ro(1+ a)其中a=0.00392, Ro为100Q(在0C的

7、电阻值),T为华氏温度,因此铂做成的电阻式 温度传感器,又称为 PT100。PT100温度传感器的测量范围广:-200C+600r,偏差小,响应时间短,还具 有抗振动、稳定性好、准确度高、耐高压等优点,其得到了广泛的应用,本设计 即采用PT100作为温度传感器。5测温原理通过运放U1A将基准电压4.096V转换为恒流源,电流流过 Pt100时在其上 产生压降,再通过运放U1B将该微弱压降信号放大(图中放大倍数为10),即输 出期望的电压信号,该信号可直接连 AD 转换芯片。智能仪器实验开发平台集中了单双极性输入通道、程控放大、模拟滤波、 16 位A/D转换及CPLD技术和单片机技术,并具有超过

8、128KB的大存储空间,集 中体现了智能仪器课程所涉及到的各种软硬件技术, 非常适合大学本科生的学习 以及在此基础上的进一步开发。三 MK-4PC 智能仪器实验教学系统简介 智能仪器实验开发平台采用模块化设计, 整个平台设有一个母板, 该母板具 有四个相同规格的扩展部分, 每个扩展部分设四个插口, 每个插口对应的分别为 单片机的P0、P1、P2、P3 口,如图1所示。设计时将单片机作为控制部分的核 心,因此单片机板独立占用其中一个扩展, 显示部分采用液晶模块完成, 该部分 还设有四个按键作为组合按键使用。第三个部分为基于CPLD 的 16位数据采集部分,设有两个独立输入通道, 每个通道可设置为

9、单极性输入或双极性输入, 具 有程控放大、模拟滤波等功能, CPLD 控制 A/D 转换器完成数据的采集工作,数据采集的采样频率可设置为10KHz、20KHZ500KHz ,采样点数可以根据要 求设置。平台的最后一个扩展部分为空,留给平台的使用者做扩展使用,根据要 求自己独立设计该部分的电路。图1俯视尺寸规格图(单位:毫米)除平台能够独立完成各项实验项目外,为实现对采集的数据进行图形化显 示,该平台还可以通过标准的 RS-232接口与PC机连接,通过PC机的显示器将 数据波形显示出来,同时还可以利用该串行接口对单片机进行仿真或传输控制参 数使其工作在设定模式下。整个功能框图如图2所示。精品SR

10、AM信号输入信号调理AD7655CPLDCPLD信号输入单片机模块PC机PC机信号源显示按键数据采集模块人机接口模块图2功能框图四.硬件电路设计1 .硬件功能分析图4硬件部分电路图后面有CPLD及单片机,单片机控制液晶显示部分SNbammbNMJufwdwwwwwAlr士亠亠*壬KAI30KU川EclUqBjbSlBJMHCLKjj ihextStW“txgUFAIxFlE5OIts&:lllEUOkDLDH生的n.!-DOOnfNWJd驰MKUi,旳X.1in+(ILT*ii-小RuOiVLW图5液晶显示器电路图2.各部分硬件设计对于热电阻的测量电路我们可以采用二线式的测量电路等。而对于我们

11、此次 实习则选择利用恒流源模拟此测量部分。二线式图如下:信号取回后需要进行信号的调理,信号调理电路图如下:图7信号调理电路图右下角OP07起偏置作用。调节电位器 Rpotl可调节偏置。上图的差分放大电路的输出连接至程控放大电路的输入。电路图如下:程控放大器的输出信号进入电平抬高电路。如下:图9电平抬高电路图两个二极管起钳位作用。这个电路是求差电路电平抬高电路的输出进入程控滤波电路。如下图:U91K-0L7 -ThIN-V+ -3CXDRx -4讥-LTC1569-74-13图10程控滤波电路图0 1UFFCLKO3 INA用到的程控滤波芯片为LTC1569-7, FCLKO是CPLD产生的方波

12、信号,用来 控制滤波器截止频率。若要控制滤波器截止频率为1kHz, CPLD要产生32k的方 波信号给FCLKO。程控滤波电路之后接入A/D转换器。图如下:Ul*蜀4DI 5EX mi辽 C?VBTiiiii Hr-HRFHFFFF242?BVSYB R2950m7M-1!IMPULSEBVUSUAPB-FULSLTOBE$ETULJAR图11 AD转换电路图U20为AD780,它是基准电压芯片。 A/D 转换器是 AD7655,它是一款16 位的 A/D,它的数据口 D0-D7、控制端口 BUSY、CNVST、IMPULSE、BYTESWAP 连接至CPLD。单片机通过往CPLD写控制字来控

13、制A/D的采样率。单片机部分的电路图如下:RAh/t高她址做5734138 A138 B 38匚林AX34S5的方向控制0123456701234557 acicscsciaLL p p PIPQ. rooon 11111 1 p p P-1P卩1P1P1P卩卩 p0123456701 234 567-DP2.P2.P2-曲曲P2.MP2.悶 eggp3ggp3.vsgSST89V564RDP2.0-P2.7 CPLD高8忖地灯线P2.0-P2.3液胡捽制线P2.4P2.7 O/AftfS制瞬刖号CPLDg-诜图12单片机部分电路图五.软件设计1. 编程环境介绍单片机软件开发采用目前比较通用的

14、 Keil51开发软件完成,该软件有很多详 细的应用文档,在此不再赘述。如果不使用硬件仿真器,多数通用单片机都无法 实现在线仿真功能,而本实验平台所用单片机SST89V564RD可以实现在线仿真以及程序下载功能,两者皆可以通过PC机的标准RS-232串口与Keil51软件通信 实现,其连接示意图如下图,本节主要介绍如何在现有Keil51软件基础上实现上 述功能。针对在线仿真功能,SST公司为方便用户使用单片机调试程序而开发了 调试工具SoftICE ( Software In Circuit Emulator,在电路软件模拟),该调试工具 可实现下述功能:? 下载INTEL HEX文件? 在线

15、调试及设置断点,支持汇编语言和 C51语言? 反汇编代码区到8051助记符? 读写代码/数据存储器、FSR特殊功能寄存器及PORT端口? IAP ( In Application Programming,应用中再编程)功能?软件重启动图6计算机与实验平台连接示意图对于我们本次实习的单片机SST89V564RD我们用keil C51编程环境进行程 序的编写。keil C51软件是众多单片机应用开发的优秀软件之一。它集编辑、编 译、仿真于一体,支持汇编、PLM语言和C语言的程序设计。界面友好,易学 易用。对于下载的软件我们可以直接用 keil C51下载。同时我们也可以在SST软 件的下载页面中下

16、载。而且这两种下载方式都需要程序生成.HEX文件。如下图所示:图13而应用SoftICE调试工具进行程序在线仿真调试的过程是这样的:(1)利用SST Boot-Strap Loader软件将SoftICE直接下载到单片机中,重新上电复位后,单片机中的SoftICE便可以与Keil51软件通信以进行仿真调试,下 载界面如下( 2)在 Keil51 软件上选择使用的单片机型号 SST89V564RD;(3)在 Keil51 软件的 Project下拉菜单中选择 “Options for TargetMonitor51 ;(4)在 Options for Target Monitor51 窗口的 D

17、ebug栏中选择“ Use KeilMonitor-51 Driver”,由于每次RESET目标板时用户代码区会被擦除,如果用户 程序需要在开始时下载到目标板,要勾上“ Load Application at Startup”;(5) 点击Settings项,弹出Target Setup窗口进行配置,可以选择 PC机与目 标板通信的串行接口及波特率, 如果需要显示存储器的实时窗口, 请不要选 Cache Options,注意,如果选择了的中断向量 3Serial Interrupt去 Stop Program Exacution SoftICE将修改在位置0023H个字节,要确保用户程序未占用

18、这些地址;(6)开始调试,此时可以根据Keil51软件的Debug进行程序调试。通过View 下拉菜单的部分选项可以观察及修改特殊功能寄存器及数据存储器等的内容。2. 软件功能需求分析单片机软件开发采用目前比较通用的 Keil51 开发软件完成。如果不使用硬件 仿真器,多数通用单片机都无法实现在线仿真功能,两者皆可以通过PC机的标准RS-232串口与Keil51软件通信实现。针对在线仿真功能,SST公司为方便用 户使用单片机调试程序而开发了调试工具 SoftICE(Software In Circuit Emulator, 在电路软件模拟) 。该调试工具可实现下述功能:(1)下载 INTEL

19、HEX 文件;( 2)在线调试及设置断点,支持汇编语言和C51 语言;(3)反汇编代码区到 8051助记符;(4)读写代码/数据存储器、FSR特殊功能寄存器及PORT端口;(5)IAP ( In Application Programming 应用中再编程)功能;(6) 软件重启动。利用该调试工具我们可以很方便的用计算机对MK-4PC智能仪器实验开发平台进行各项试验及实习3. 各部分软件设计a.软件的流程图图2温度转换程序流程图1系统总流程图图图3显示流程图图4主函数流程图b.主程序ADS7841驱动程序#include #include #include delay.h#include ad

20、s7841.h#include LCD1602.h/ADS7841 控制字节 #define control_byte 0b10011000/bit val descriptionbit71start 恒为 1bit6,5,4001选择 CHO 为+IN/bit41选择为单端输入/bit2X外部 MODE 接GND, 该位无作用 ,恒为 12位/bit1,000 转换期间 ADC 为掉电模式void port_init(void)PORTA = 0xFF;/ 将所有端口初始化为输入 ,打开上拉DDRA = 0x00;PORTB = 0xFF;DDRB = 0x00;PORTC = 0xFF;D

21、DRC = 0x00;PORTD = 0xFF;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)ads78

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

23、ef _ads7841_h#define _ads7841_hdefine DCLKPD0#define DCLK_ddr DDRD#define DCLK_port PORTD#define DCLK_pinPIND#define CSPD1#define CS_ddrDDRD#define CS_portPORTD#define CS_pinPIND#define DINPD2#define DIN_ddrDDRD#define DIN_portPORTD#define DIN_pinPIND#define BUSYPD3#define BUSY_ddrDDRD#define BUSY_p

24、ort PORTD#define BUSY_pinPIND#define DOUTPD4#define DOUT_ddrDDRD#define DOUT_port PORTD#define DOUT_pinPINDdefine ads7841_start() CS_port&=(1CS) /启运 ADS7841 #define ads7841_finish() CS_port|=(1CS) / 停止 ADS7841 void ads7841_init(void);unsigned int ads7841_W_R(unsigned char byte);#endif#include #inclu

25、de #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);/

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

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

28、拉低时钟端delay_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;elseresult&=0xfe;/ 以下读出低四位 for(i=1;i=4;i+)temp=1;

29、 / 保存读入的数据位DCLK_port|=(1DCLK); / 时钟上升沿delay_nus(10);DCLK_port&=(1DCLK); / 拉低时钟端delay_nus(10);if(DOUT_pin&(1DOUT)temp|=0x01;elsetemp&=0xfe;for(i=1;iv=4;i+)/ 再给 ADS7841 四个时钟DCLK_port|=(1DCLK); / 时钟上升沿delay_nus(10);/ 调整时钟和脉冲宽度DCLK_port&=(1DCLK); / 拉低时钟端delay_nus(10);/ 调整时钟和脉冲宽度result=(result=32) / 再送 X

30、 地址 lcdwc(GXPOS/16+8)|0x80);elselcdwc(GXPOS/16)|0x80);lcdwc(0x30);void lcdon(void) lcdwc(0x30);lcdwc(0x0c);void lcdoff(void) lcdwc(0x30);lcdwc(0x08);void lcdgraphon(void) lcdwc(0x36);/ 恢复为基本指令集/LCD 显示开启子程序/ 设置为基本指令集/LCD 显示关闭子程序/ 设置为基本指令集/ 绘图区域显示开启子程序/ 恢复为基本指令集lcdwc(0x30);精品void lcdgraphoff(void) lcdwc(0x34);lcdwc(0x30);void lcdwd(unsigned char d)CSPIN=1;transbyte(0xfa);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=0transbyte(c&0xf0);/ 绘图区域显示关闭子程序/ 恢复为基本指令集/ 向液晶显示控制器写数据/ 片选使能/SYNCODE=0F8H,RW=0,RS=1,D0=0/ 送高四位数据

温馨提示

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

评论

0/150

提交评论