智能仪表设计原理Word文档下载推荐.docx
《智能仪表设计原理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《智能仪表设计原理Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
3个16位可编程定时/计数器中断,时钟频率0-24MHz
2个串行中断,可编程UART串行通道
2个外部中断源
共8个中断源
2个读写中断口线,3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
图1-微控制器AT89C52接口电路
2.1.3温度传感器选型
温度传感器采用LM35CA(可测温度范围为-40-+110℃),LM35是由国半公司所生产的温度传感器,其输出电压与摄氏温标呈线性关系,转换公式如式,0时输出为0V,每升高1℃,输出电压增加10mV。
LM35有多种不同封装型式,在常温下,LM35不需要额外的校准处理即可达到±
1/4℃的准确率。
其电源供应模式有单电源与正负双电源两种,正负双电源的供电模式可提供负温度的量测;
两种接法的静止电流-温度关系,在静止温度中自热效应低(0.08℃),单电源模式在25℃下静止电流约50μA,工作电压较宽,可在4—20V的供电电压范围内正常工作非常省电。
图2-LM35的接口电路
2.1.4温度采样电路设计
本装置采用4个单8通道数字控制模拟电子开关(CD4051),做多可采集32路温度信号。
检测电路原理图如下:
图3-检测电路原理图
2.1.5AD转换和DA转换电路设计
本装置AD转换采用10位的AD芯片TCL1549,DA转换采用10位的TLC5615,确保了测量的精度。
具体电路如下:
图4-AD转换电路
图5-DA转换电路
2.1.6人机界面电路设计
本装置面板上采用1个四位LED数码显示,显示各路温度,同时面板上还有三个轻触按键,按键的功能分别是:
上升键、下降键、确认键。
通过按键和显示电路,可以单独设定每路温度的过/欠温值。
具体电路如下图:
图6-人机界面电路图
2.1.7通信电路设计
本装置在背板上配有一个RS485通信端口,用户通过该通讯端口,可以在后台读取温度信息,并可以设定每路温度的过/欠温值。
图7-RS485通信电路
2.2系统的软件设计
在软件系统设计方面,整个温度测控制的软件设计可分为以下几个内容:
1、初始化(采集系统参数设置和参数的存储)
2、AD转换的控制和数据读取
3、显示采集数据
4、后台通信
软件的内容只有通过合理的分配,才能确保整个装置运行的稳定性。
软件的主程序的流程图如下:
图8-温度监控系统的软件流程图
2.2.1采集系统参数设置和参数的存储的程序设计
根据实际工况的需求可以单独设定每路测量温度的过/欠温值,并将设置好的参数存到CPU内部自带的EEPROM内。
#include<
reg52.h>
intrins.h>
sfrISP_DATA=0xc2;
sfrISP_ADDRH=0xc3;
sfrISP_ADDRL=0xc4;
sfrISP_CMD=0xc5;
sfrISP_TRIG=0xc6;
sfrISP_CONTR=0xc7;
externvoidDelay(unsignedinty);
#defineREAD_AP_and_Data_Memory_Command0x01/*字节读应用程序区和数据存储区*/
#definePROGRAM_AP_and_Data_Memory_Command0x02/*字节编程应用程序区和数据存储区*/
#defineSECTOR_ERASE_AP_and_Data_Memory_Command0x03/*扇区擦除应用程序区和数据存储区*/
/*定义Flash操作等待时间*/
#defineWAIT_TIME0x02voidISP_IAP_enable(void)
{
EA=0;
/*closeintermit*/
ISP_CONTR=ISP_CONTR&
0x18;
/*0001,1000*/
ISP_CONTR=ISP_CONTR|WAIT_TIME;
ISP_CONTR=ISP_CONTR|0x80;
/*1000,0000*/
}
voidISP_IAP_disable(void)
0x7f;
/*0111,1111*/
ISP_TRIG=0x00;
EA=1;
/*读字节*/
unsignedintbyte_read(unsignedintbyte_addr)
unsignedintm;
ISP_ADDRH=(unsignedchar)(byte_addr>
>
8);
ISP_ADDRL=(unsignedchar)(byte_addr&
0x00ff);
ISP_CMD=ISP_CMD&
0xf8;
/*1111,1000*/
ISP_CMD=ISP_CMD|READ_AP_and_Data_Memory_Command;
/*0000,0001read*/
ISP_IAP_enable();
ISP_TRIG=0x5a;
ISP_TRIG=0xa5;
_nop_();
_nop_();
ISP_IAP_disable();
m=ISP_DATA;
byte_addr++;
m=m<
<
8|ISP_DATA;
return(m);
/*写数据进数据Flash存储器,只在同一个扇区内写,不保留原有数据*/
/*begin_addr,被写数据Flash开始地址;
counter,连续写多少个字节;
array[],数据来源*/
voidsequential_write_flash_in_one_sector(unsignedintbegin_addr,unsignedcharcounter,unsignedintarray[])
unsignedchari=0;
unsignedintin_sector_begin_addr=0;
unsignedintsector_addr=0;
/*擦除要修改/写入的扇区*/
sector_addr=(begin_addr&
0xfe00);
/*1111,1110,0000,0000;
取扇区地址*/
ISP_ADDRH=(unsignedchar)(sector_addr>
ISP_ADDRL=0x00;
/*1111,1000*/
ISP_CMD=ISP_CMD|SECTOR_ERASE_AP_and_Data_Memory_Command;
/*0000,0011*/
/*触发ISP_IAP命令*/
for(i=0;
i<
counter;
i++)
{
/*写一个字节*/
ISP_ADDRH=(unsignedchar)(begin_addr>
ISP_ADDRL=(unsignedchar)(begin_addr&
ISP_DATA=(unsignedchar)(array[i]>
8);
ISP_CMD=ISP_CMD&
ISP_CMD=ISP_CMD|PROGRAM_AP_and_Data_Memory_Command;
/*0000,0010*/
ISP_TRIG=0x5a;
ISP_TRIG=0xa5;
_nop_();
begin_addr++;
/*写一个字节*/
ISP_DATA=(unsignedchar)(array[i]&
0x00ff);
}
2.2.2温度信号经AD转换的程序设计
A/D转换程序是将温度信号的模拟值转换成数字值送给CPU。
unsignedintAD_transition(void)
unsignedchari;
unsignedintadtemp;
AD_CS=1;
//屏蔽I/OCLOCK
Delay
(2);
AD_CS=0;
//使能I/OCLOCK,DATA
adtemp=0;
//变量清零
for(i=0;
i<
10;
i++)//循环采集10次
AD_CLOCK=0;
adtemp<
=1;
if(AD_DATA){adtemp++;
AD_CLOCK=1;
}
Delay(10);
Delay(100);
return(adtemp);
2.2.3后台通信
本装置可以通过RS485口,读取温度信息,并可以设定每路温度的过/欠温值。
oidtransmit_data(void)
unsignedinti,j,k;
unsignedchar*pointer,n,m;
if(r_full==1)//判读数据是否接收完成
r_full=0;
r_counter=0;
i=CRCcheck(buffer_r,6);
//CRC校验
j=CHARtoHEX(buffer_r+6);
if(i!
=j)return;
pointer=buffer_t;
if(add1_flag==1)
*pointer++=(0x6e+communicate_add1);
if(buffer_r[1]==3)
*pointer++=3;
k=CHARtoHEX(buffer_r+4);
//字节数是字符型数据,读取数据个数
*pointer++=(unsignedchar)k<
1;
n=CHARtoHEX(buffer_r+2);
if(n<
25)//发送24路温度数据
{
k;
i++)
{
m=n+i;
j=i<
HEXtoCHAR(sys_data1[m],buffer_t+(3+j));
}
if((n>
=108)&
&
(n<
111))
for(i=0;
m=n+i-108;
HEXtoCHAR(tvi_data1[m],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温度传感器,具有精度高、系统扩展性强、可靠性高、实时性能好、体积小、功耗低等特点,为中范围温度监测应用提供了一个良好的通用型解决方案,具有良好的前景和推广价值。