ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:178.33KB ,
资源ID:9352451      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9352451.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智能仪表设计原理.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

智能仪表设计原理.docx

1、智能仪表设计原理多点温度测控仪系统的设计1多路温度测量系统概述在工农业生产和日常生活中,对温度的监测始终占据着极其重要的地位。当前使用广泛硬件电路直接采集温度的系统,虽然可以满足大部分的需求,但是随着科学技术的不断发展,对温度监测的要求不断提高,比如在精度、实时性、和功能扩展性等。此时,硬件电路系统的性能局限性问题就比较突出。基于以上原因,设计并实现了基于51系列单片机位控制核心的温度监测系统。在温度测量上,使用高精度的LM35CA温度传感器,具有精度高、系统扩展性强、可靠性高、实时性能好、体积小、功耗低等特点。2多路温度测量仪总体设计方案2.1 系统的硬件结构设计根据设备的控制需求,CPU控

2、制电路选用性能优良的8位单片机(ATMEL公司生产的,型号:AT89C52)为控制核心。2.1.1 微控制器AT89C52主要特性和功能框图AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3

3、个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。2.1.2主要功能特性 兼容MCS51指令系统 8k可反复擦写(1000次)Flash ROM 32个双向I/O口,256x8bit内部RAM 3个16位可编程定时/计数器中断,时钟频率0-24MHz 2个串行中断 ,可编程UART串行通道 2个外部中断源 共8个中断源 2个读写中断口线 ,3级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能图

4、1- 微控制器AT89C52接口电路2.1.3 温度传感器选型温度传感器采用LM35CA(可测温度范围为-40- +110),LM35 是由国半公司所生产的温度传感器,其输出电压与摄氏温标呈线性关系,转换公式如式,0 时输出为0V,每升高1,输出电压增加10mV。LM35 有多种不同封装型式,在常温下,LM35 不需要额外的校准处理即可达到 1/4的准确率。 其电源供应模式有单电源与正负双电源两种,正负双电源的供电模式可提供负温度的量测;两种接法的静止电流-温度关系,在静止温度中自热效应低(0.08),单电源模式在25下静止电流约50A,工作电压较宽,可在420V的供电电压范围内正常工作非常省

5、电。图2- LM35的接口电路2.1.4 温度采样电路设计本装置采用4个单8通道数字控制模拟电子开关(CD4051),做多可采集32路温度信号。检测电路原理图如下: 图3-检测电路原理图2.1.5 AD转换和DA转换电路设计本装置AD转换采用10位的AD芯片TCL1549,DA转换采用10位的TLC5615,确保了测量的精度。 具体电路如下: 图4- AD转换电路 图5- DA转换电路 2.1.6 人机界面电路设计本装置面板上采用1个四位LED数码显示,显示各路温度,同时面板上还有三个轻触按键,按键的功能分别是:上升键、下降键、确认键。通过按键和显示电路,可以单独设定每路温度的过/欠温值。具体

6、电路如下图:图6-人机界面电路图2.1.7通信电路设计本装置在背板上配有一个RS485通信端口,用户通过该通讯端口,可以在后台读取温度信息,并可以设定每路温度的过/欠温值。具体电路如下图:图7- RS485 通信电路2.2 系统的软件设计在软件系统设计方面,整个温度测控制的软件设计可分为以下几个内容:1、初始化(采集系统参数设置和参数的存储)2、AD转换的控制和数据读取3、显示采集数据4、后台通信软件的内容只有通过合理的分配,才能确保整个装置运行的稳定性。软件的主程序的流程图如下:图8- 温度监控系统的软件流程图2.2.1采集系统参数设置和参数的存储的程序设计 根据实际工况的需求可以单独设定每

7、路测量温度的过/欠温值,并将设置好的参数存到CPU内部自带的EEPROM内。#include #include sfr ISP_DATA = 0xc2; sfr ISP_ADDRH = 0xc3; sfr ISP_ADDRL = 0xc4; sfr ISP_CMD = 0xc5; sfr ISP_TRIG = 0xc6; sfr ISP_CONTR = 0xc7; extern void Delay (unsigned int y);#define READ_AP_and_Data_Memory_Command 0x01 /* 字节读应用程序区和数据存储区 */#define PROGRAM_

8、AP_and_Data_Memory_Command 0x02 /* 字节编程应用程序区和数据存储区 */#define SECTOR_ERASE_AP_and_Data_Memory_Command 0x03 /* 扇区擦除应用程序区和数据存储区 */* 定义Flash 操作等待时间 */#define WAIT_TIME 0x02 void ISP_IAP_enable(void) EA = 0; /* close intermit */ ISP_CONTR = ISP_CONTR & 0x18; /* 0001,1000 */ ISP_CONTR = ISP_CONTR | WAIT_T

9、IME; ISP_CONTR = ISP_CONTR | 0x80; /* 1000,0000 */void ISP_IAP_disable(void) ISP_CONTR = ISP_CONTR & 0x7f; /* 0111,1111 */ ISP_TRIG = 0x00; EA = 1; /* 读字节 */unsigned int byte_read(unsigned int byte_addr) unsigned int m; ISP_ADDRH = (unsigned char)(byte_addr 8); ISP_ADDRL = (unsigned char)(byte_addr

10、& 0x00ff); ISP_CMD = ISP_CMD & 0xf8; /* 1111,1000 */ ISP_CMD = ISP_CMD | READ_AP_and_Data_Memory_Command; /* 0000,0001 read */ ISP_IAP_enable(); ISP_TRIG = 0x5a; ISP_TRIG = 0xa5; _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); ISP_IAP_disable(); m = ISP_DATA; byte_a

11、ddr+; ISP_ADDRH = (unsigned char)(byte_addr 8); ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff); ISP_CMD = ISP_CMD & 0xf8; /* 1111,1000 */ ISP_CMD = ISP_CMD | READ_AP_and_Data_Memory_Command; /* 0000,0001 read */ ISP_IAP_enable(); ISP_TRIG = 0x5a; ISP_TRIG = 0xa5; _nop_();_nop_();_nop_();_nop_();_no

12、p_(); _nop_();_nop_();_nop_();_nop_();_nop_(); ISP_IAP_disable(); m = m 8); ISP_ADDRL = 0x00; ISP_CMD = ISP_CMD & 0xf8; /* 1111,1000 */ ISP_CMD = ISP_CMD | SECTOR_ERASE_AP_and_Data_Memory_Command; /* 0000,0011 */ ISP_IAP_enable(); ISP_TRIG = 0x5a; /* 触发ISP_IAP命令 */ ISP_TRIG = 0xa5; /* 触发ISP_IAP命令 */

13、 _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); for(i = 0; i 8); ISP_ADDRL = (unsigned char)(begin_addr & 0x00ff); ISP_DATA = (unsigned char)(arrayi8); ISP_CMD = ISP_CMD & 0xf8; /* 1111,1000 */ ISP_CMD = ISP_CMD | PROGRAM_AP_and_Data_Memory_Command; /* 0000,0010 */

14、 ISP_TRIG = 0x5a; /* 触发ISP_IAP命令 */ ISP_TRIG = 0xa5; /* 触发ISP_IAP命令 */ _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); begin_addr +; /* 写一个字节 */ ISP_ADDRH = (unsigned char)(begin_addr 8); ISP_ADDRL = (unsigned char)(begin_addr & 0x00ff); ISP_DATA = (unsigned char)(a

15、rrayi&0x00ff); ISP_CMD = ISP_CMD & 0xf8; /* 1111,1000 */ ISP_CMD = ISP_CMD | PROGRAM_AP_and_Data_Memory_Command; /* 0000,0010 */ ISP_TRIG = 0x5a; /* 触发ISP_IAP命令 */ ISP_TRIG = 0xa5; /* 触发ISP_IAP命令 */ _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); begin_addr +; ISP_I

16、AP_disable();2.2.2 温度信号经AD转换的程序设计A/D转换程序是将温度信号的模拟值转换成数字值送给CPU。unsigned int AD_transition(void) unsigned char i; unsigned int adtemp; AD_CS = 1; /屏蔽I/O CLOCK Delay(2); AD_CS = 0; /使能I/O CLOCK,DATA Delay(2); adtemp = 0; /变量清零 for(i=0;i10;i+) /循环采集10次 AD_CLOCK = 0; Delay(2); adtemp = 1; if(AD_DATA) adt

17、emp +; Delay(2); AD_CLOCK = 1; Delay(2); Delay(10); AD_CS = 1; Delay(100); return(adtemp);2.2.3 后台通信 本装置可以通过RS485口,读取温度信息,并可以设定每路温度的过/欠温值。oid transmit_data(void) unsigned int i,j,k; unsigned char *pointer,n,m; if(r_full = 1) /判读数据是否接收完成 r_full = 0; r_counter = 0; i = CRCcheck(buffer_r,6); /CRC校验 j =

18、 CHARtoHEX(buffer_r+6); if( i != j) return; pointer = buffer_t; if(add1_flag = 1) *pointer+=(0x6e+communicate_add1); if(buffer_r1 = 3) *pointer+=3; k = CHARtoHEX(buffer_r+4); /字节数是字符型数据,读取数据个数 *pointer+=(unsigned char)k1; n = CHARtoHEX(buffer_r+2); if(n25) / 发送24路温度数据 for(i=0;ik;i+) m=n+i; j=i=108)&

19、(n111) ) for(i=0;ik;i+) m=n+i-108; j=i1; HEXtoCHAR(tvi_data1m,buffer_t+(3+j); k=1; j = CRCcheck(buffer_t,k+3); HEXtoCHAR(j,buffer_t+k+3); t_number = k+5; t_flag; t_counter = 0; Delaynms(2); TI = 1; 3.装置内部线路板布局方案装置内部电路主要由CPU控制电路、温度信号采集电路、按键和显示电路、通信电路组成,具体的分布情况如下图所示: 4.系统设计总结本系统设计一种基于基于51系列单片机位控制核心的温度监测系统。在温度测量上,使用了高精度的LM35CA温度传感器,具有精度高、系统扩展性强、可靠性高、实时性能好、体积小、功耗低等特点,为中范围温度监测应用提供了一个良好的通用型解决方案,具有良好的前景和推广价值。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1