环境温湿度实时测控装置设计说明.docx

上传人:b****7 文档编号:15496188 上传时间:2023-07-05 格式:DOCX 页数:27 大小:82.34KB
下载 相关 举报
环境温湿度实时测控装置设计说明.docx_第1页
第1页 / 共27页
环境温湿度实时测控装置设计说明.docx_第2页
第2页 / 共27页
环境温湿度实时测控装置设计说明.docx_第3页
第3页 / 共27页
环境温湿度实时测控装置设计说明.docx_第4页
第4页 / 共27页
环境温湿度实时测控装置设计说明.docx_第5页
第5页 / 共27页
环境温湿度实时测控装置设计说明.docx_第6页
第6页 / 共27页
环境温湿度实时测控装置设计说明.docx_第7页
第7页 / 共27页
环境温湿度实时测控装置设计说明.docx_第8页
第8页 / 共27页
环境温湿度实时测控装置设计说明.docx_第9页
第9页 / 共27页
环境温湿度实时测控装置设计说明.docx_第10页
第10页 / 共27页
环境温湿度实时测控装置设计说明.docx_第11页
第11页 / 共27页
环境温湿度实时测控装置设计说明.docx_第12页
第12页 / 共27页
环境温湿度实时测控装置设计说明.docx_第13页
第13页 / 共27页
环境温湿度实时测控装置设计说明.docx_第14页
第14页 / 共27页
环境温湿度实时测控装置设计说明.docx_第15页
第15页 / 共27页
环境温湿度实时测控装置设计说明.docx_第16页
第16页 / 共27页
环境温湿度实时测控装置设计说明.docx_第17页
第17页 / 共27页
环境温湿度实时测控装置设计说明.docx_第18页
第18页 / 共27页
环境温湿度实时测控装置设计说明.docx_第19页
第19页 / 共27页
环境温湿度实时测控装置设计说明.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

环境温湿度实时测控装置设计说明.docx

《环境温湿度实时测控装置设计说明.docx》由会员分享,可在线阅读,更多相关《环境温湿度实时测控装置设计说明.docx(27页珍藏版)》请在冰点文库上搜索。

环境温湿度实时测控装置设计说明.docx

环境温湿度实时测控装置设计说明

摘要

单片机成了无处不在的商品,同时带来了社会的发展,使我们的生活越来越美好,在自动控制和电子测量中,单片机是它们发展的核心,而单靠单片机的理论远远是不够的,它要硬件和相关的软件相结合,才能做出完美的产品。

温湿度指标是许多工作场合的重要参数,不论是仓库管理、图书保存还是工业测量与计量检定,都需要符合操作规定的温湿度环境条件。

而温湿度也是最不易保障的指标,针对这一情况,研制可靠且实用的温湿度控制器显得非常重要。

本文介绍的温湿度实时控制装置可在0~50℃和20%~98%rh(相对湿度)的围任意设定温湿度值,其附加的通信接口可方便地实现与计算机的实时通信,而且便于功能的扩展,可保证温度、湿度满足设计指标。

此外,该装置还可自动控制多个设备的多点时间控制电路,因而具有更广泛的应用前景。

【关键字】:

AT89c51、DS18B20、湿度传感器

摘要···········································1

第一章概况······································2

1.1设计的依据···········································2

1.2功能及应用···········································2

第二章硬件·······································3

2.151系列单片机的概述·····························3

2.280c51系列单片机·········································5

2.3DS18B20的用法········································6

2.4检测电路············································10

第三章软件······································11

3.1定时及控制电路·······································11

3.2主程序设计·····································12

3.3子程序设计·····································18

结束语·········································27

附录·········································28

单片机构成的环境温湿度实时测控装置设计

前言

1970年微处理器研制成功之后,随着就出现了单片机(即单片的微型计算机)。

1971年美国Intel公司生产的4位单片机4004和1972年生产的雏型8位单片机8008,特别是1976年9月Intel公司的MCS-48单片机问世以来,在短短的十几年间,经历了多次更新换代,其发展速度大约每二、三年要更新一代、集成度增加一倍、功能翻一番。

发展速度之快、应用围之广已达到了惊人的地步。

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个畴

1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。

采用单片机控制使得仪器仪表数字化、智能化、微型化且功能比采用电子或数字电路更加强大。

例如精密的测量设备(功率计,示波器,各种分析仪)。

2.在工业控制中的应用

用单片机可以构成形式多样的控制系统,数据采集系统。

例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统与计算机联网构成二级控制系统。

3.在家用电器中的应用  可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。

4.在计算机网络和通信领域中的应用   现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动,集群移动通信,无线电对讲机等。

5.单片机在医用设备领域中的应用    单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。

此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。

第一章方案

1.1开发的依据

本课程开发的意义在于它的硬件成本低,他们之间的相互转换功能相当的简单,通信接口可方便地实现与计算机的实时通信,而且便于功能的扩展,可保证温度、湿度满足设计指标。

此外,该装置还可自动控制多个设备的多点时间控制电路,对于我们来说它值得我们去开发。

1.2功能及应用

本文介绍的温湿度实时控制装置可在0~50℃和20%~98%rh(相对湿度)的围任意设定温湿度值。

它的应用十分的广泛:

仓库管理、图书保存还是工业测量与计量检定,都需要符合操作规定的温湿度环境条件。

●可以实时监测环境温湿度的变化情况,并记录、存储相关数据;

●对环境温湿度的控制可满足设计指标;

●具有多点定时设备控制电路,便于功能扩展;

●设有语音提示功能,可方便地实现仪器操作和工作管理提示;

●配有通信接口,可方便地与计算机进行通信;

●温湿度控制的精度分别为:

温度(0~50℃)±0.5℃;湿度(20%~98%rh)±2%~3%rh。

第二章硬件

2.1单片机概述

自单片机出现至今,单片机技术已走过了近20年的发展路程。

纵观20年来单片机发展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域为前提,表现出较微处理器更具个性的发展趋势。

单片机长寿命,这里所说的长寿命,一方面指用单片机开发的产品可以稳定可靠地工作十年、二十年;另一方面是指与微处理器相比的长寿命。

随着半导体技术的飞速发展,MPU更新换代的速度越来越快,以386、486、586为代表的MPU,很短的时间就被淘汰出局,而传统的单片机如68HC05、8051等年龄已有15岁,产量仍是上升的。

这一方面是由于其对相应应用领域的适应性,另一方面是由于以该类CPU为核心,集成以更多I/O功能模块的新单片机系列层出不穷。

可以预见,一些成功上市的相对年轻的CPU核心,也会随着I/O功能模块的不断丰富,有着相当长的生存周期。

新的CPU类型的加盟,使单片机队伍不断壮大,给用户带来了更多的选择余地。

8位、16位、32位单片机共同发展。

这是当前单片机技术发展的另一动向。

长期以来,单片机技术的发展是以8位机为主的。

随着移动通讯、网络技术、多媒体技术等高科技产品进入家庭,32位单片机应用得到了长足发展。

以Motorola68K为CPU的32位单片机97年的销售量达8千万枚。

过去认为由于8位单片机功能越来越强,32位机越来越便宜,使16位单片机生存空间有限,而16位单片机的发展无论从品种和产量方面,近年来都有较大幅度的增长。

单片机速度越来越快MPU发展中表现出来的速度越来越快是以时钟频率越来越高为标志的。

而单片机则有所不同,为提高单片机抗干扰能力,降低噪声,降低时钟频率而不牺牲运算速度是单片机技术发展之追求。

一些8051(如图1)。

单片机兼容厂商改善了单片机的部时序,在不提高时钟频率的条件下,使运算速度提高了很多,Motorola单片机则使用了琐相环技术或部倍频技术使部总线速度大大高于时钟产生器的频率。

68HC08单片机使用4.9M外部振荡器而部时钟达32M,而M68K系列32位单片机使用32K的外部振荡器频率部时钟可达16MHz以上。

低电压与低功耗自80年代中期以来,NMOS工艺单片机逐渐被CMOS工艺代替,功耗得以大幅度下降,随着超大规模集成电路技术由3μm工艺发展到1.5、1.2、0.8、0.5、0.35近而实现0.2μm工艺,全静态设计使时钟频率从直流到数十兆任选,都使功耗不断下降。

Motorola最近推出任选的M.CORE可在1.8V电压下以50M/48MIPS全速工作,功率约为20mW。

几乎所有的单片机都有Wait、Stop等省电运行方式。

允许使用的电源电压围也越来越宽。

一般单片机都能在3到6V围工作,对电池供电的单片机不再需要对电源采取稳压措施。

低电压供电的单片机电源下限已由2.7V降至2.2V、1.8V。

0.9V供电的单片机已经问世。

(1)

低噪声与高可靠性技术为提高单片机系统的抗电磁干扰能力,使产品能适应恶劣的工作环境,满足电磁兼容性方面更高标准的要求,单片机商家在单片机部电路中采取了一些新的技术措施。

如美国国家半导体NS的COP8单片机部增加了抗EMI电路,增强了“看门狗”的性能。

Motorola也推出了低噪声的LN系列单片机。

OTP与掩膜OTP是一次性写入的单片机。

过去认为一个单片机产品的成熟是以投产掩膜型单片机为标志的。

由于掩膜需要一定的生产周期,而OTP型单片机价格不断下降,使得近年来直接使用OTP完成最终产品制造更为流行。

它较之掩膜具有生产周期短、风险小的特点。

近年来,OTP型单片机需量大幅度上扬,为适应这种需求许多单片机都采用了在片编程技术(InSystemProgramming)。

未编程的OTP芯片可采用裸片Bonding技术或表面贴技术,先焊在印刷板上,然后通过单片机上引出的编程线、串行数据、时钟线等对单片机编程。

解决了批量写OTP芯片时容易出现的芯片与写入器接触不好的问题。

使OTP的裸片得以广泛使用,降低了产品的成本。

编程线与I/O线共用,不增加单片机的额外引脚。

而一些生产厂商推出的单片机不再有掩膜型,全部为有ISP功能的OTP。

MTP向OTP挑战MTP是可多次编程的意思。

一些单片机厂商以MTP的性能、OTP的价位推出他们的单片机,如ATMELAVR单片机,片采用FLASH,可多次编程。

华邦公司生产的与8051兼容的单片机也采用了MTP性能,OTP的价位。

这些单片机都使用了ISP技术,等安装。

2.251系列单片机

单片机分为:

51单片机, ARM单片机 ,PIC单片机 ,AVR单片机。

下面要讲的是51系列的单片机,MCS-51的原生产商是Intel公司。

最早推出80C51芯片的。

作为MCS-51的一部分,按原MCS-51芯片的规则命名。

例如80C31、80C51、87C51和89C51,这样我们就可以很容易地认出80C51的系列芯片了。

最小系统:

2.3DS18B20的用法

这是关于DS18B20的读写程序,数据脚P2.2,晶振11.0592mhz;温度传感器18B20汇编程序,采用器件默认的12位转化,最大转化时间750微秒;可以将检测到的温度直接显示到AT89C51的两个数码管上;显示温度00到99度,很准确无需校正!

ORG0000H;单片机存分配申明!

TEMPER_LEQU29H;用于保存读出温度的低8位

TEMPER_HEQU28H;用于保存读出温度的高8位

FLAG1EQU38H;是否检测到DS18B20标志位

a_bitequ20h;数码管个位数存放存位置

b_bitequ21h;数码管十位数存放存位置

MAIN:

LCALLGET_TEMPER;调用读温度子程序

;进行温度显示,这里我们考虑用提供的两位数码管来显示温度

;显示围00到99度,显示精度为1度

;因为12位转化时每一位的精度为0.0625度,我们不要求显示小数所以可以抛弃29H的低4位

;将28H中的低4位移入29H中的高4位,这样获得一个新字节,这个字节就是实际测量获得的温度

;这个转化温度的方法可是我想出来的哦~~非常简洁无需乘于0.0625系数

MOVA,29H

MOVC,40H;将28H中的最低位移入C

RRCA

MOVC,41H

RRCA

MOVC,42H

RRCA

MOVC,43H

RRCA

MOV29H,A

LCALLDISPLAY;调用数码管显示子程序

CPLP1.0

AJMPMAIN

;这是DS18B20复位初始化子程序

INIT_1820;

SETBP2.2

NOP

CLRP2.2

;主机发出延时537微秒的复位低脉冲

MOVR1,#3

TSR1:

MOVR0,#107

DJNZR0,$

DJNZR1,TSR1

SETBP2.2;然后拉高数据线

NOP

NOP

NOP

MOVR0,#25H

TSR2:

JNBP2.2,TSR3;等待DS18B20回应

DJNZR0,TSR2

LJMPTSR4;延时

TSR3:

SETBFLAG1:

置标志位,表示DS1820存在

CLRP1.7;检查到DS18B20就点亮P1.7LED

LJMPTSR5

TSR4:

CLRFLAG1;清标志位,表示DS1820不存在

CLRP1.1

LJMPTSR7

TSR5:

MOVR0,#117

TSR6:

DJNZR0,TSR6;时序要求延时一段时间

TSR7:

SETBP2.2

RET

;读出转换后的温度值

GET_TEMPER:

SETBP2.2

LCALLINIT_1820;先复位DS18B20

FLAG1,TSS2

CLRP1.2

RET;判断DS1820是否存在;若DS18B20不存在则返回

TSS2:

CLRP1.3;DS18B20已经被检测到!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

MOVA,#0CCH;跳过ROM匹配

LCALLWRITE_1820

MOVA,#44H;发出温度转换命令

LCALLWRITE_1820

;这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒

LCALLDISPLAY

LCALLINIT_1820;准备读温度前先复位

MOVA,#0CCH;跳过ROM匹配

LCALLWRITE_1820

MOVA,#0BEH;发出读温度命令

LCALLWRITE_1820

LCALLREAD_18200;将读出的温度数据保存到35H/36H

CLRP1.4

RET

;写DS18B20的子程序(有具体的时序要求)

WRITE_1820:

MOVR2,#8;一共8位数据

CLRC

WR1:

CLRP2.2

MOVR3,#5

DJNZR3,$

RRCA

MOVP2.2,C

MOVR3,#21

DJNZR3,$

SETBP2.2

NOP

DJNZR2,WR1

SETBP2.2

RET

READ_18200:

;读DS18B20的程序,从DS18B20中读出两个字节的温度数据

MOVR4,#2;将温度高位和低位从DS18B20中读出

MOVR1,#29H;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)

RE00:

MOVR2,#8;数据一共有8位

RE01:

CLRC

SETBP2.2

NOP

NOP

CLRP2.2

NOPNOP

NOP

SETBP2.2

MOVR3,#8

RE10:

DJNZR3,RE10

MOVC,P2.2

MOVR3,#21

RE20:

DJNZR3,RE20

RRCA

DJNZR2,RE01

MOVR1,A

DECR1

DJNZR4,RE00

RET

;显示子程序

display:

mova,29H;将29H中的十六进制数转换成10进制

movb,#10;10进制/10=10进制

divab

movb_bit,a;十位在a

mova_bit,b;个位在b

movdptr,#numtab;指定查表启始地址

movr0,#4

dpl1:

movr1,#250;显示1000次

dplop:

mova,a_bit;取个位数

MOVCA,ADPTR;查个位数的7段代码

movp0,a;送出个位的7段代码

clrp2.7;开个位显示

acalld1ms;显示1ms

setbp2.7

mova,b_bit;取十位数

MOVCA,ADPTR;查十位数的7段代码

movp0,a;送出十位的7段代码

clrp2.6;开十位显示

acalld1ms;显示1ms

setbp2.6

djnzr1,dplop;100次没完循环

djnzr0,dpl1;4个100次没完循环

ret

;1MS延时

D1MS:

MOVR7,#80

DJNZR7,$

RET

;实验板上的7段数码管0~9数字的共阴显示代码

numtab:

DB0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH

END

2.4检测电路

(1)温度检测电路

温度检测电路选用dallas公司生产的一线式数字温度传感器ds18b20作为温度检测器件,该器件只有3个引脚(即电源vdd、地线gnd、数据线dq),且不需要外部元件,而是共用一条数据线进行通信,使用一根i/o线通信时,ds18b20的电源电压是以寄生方式供电的,因此,只需将其vdd和gnd端接地即可。

该电路的检测温度围为-55~+125℃;精度为0.5℃;用9bit数字量来表示温度;每次将温度转换成数字量需200ms。

笔者采用三块ds18b20来实现对实验室环境温度的检测,之所以用三块,是为了更好地保持温度的恒定。

使用时可分别将这三块ds18b20放置在房间的不同位置。

获得温度信息时,先由pic16c73的ra2脚发送一个1ms的复位脉冲,以使ds18b20复位后将向pic16c73发送一个回应脉冲,pic16c73接到回应脉冲后将发送读ds1820序列号的读rom命令,以分别读取三个ds18b20的序列号(每一块ds18b20有唯一的序列号);然后,pic16c73再发出定位命令以选择在线的ds18b20并进行温度转换。

此时pic16c73的ra1脚应输出一个保持2s以上的高电平信号来使sk214导通,从而提供ds18b20在总线供电下进行温度转换时所需的1ma电流。

当温度转换完成后,pic16c73的ra2脚会发送ds18b20的存储命令,从而完成温度信息数据的转换和读取。

(2)湿度信号的获取采用电容式湿敏传感器作为湿度检测器件。

环境湿度与传感器电容成线性关系,所以可方便地将湿度转换成pic16c73可以接受的电信号,本例中采用el7556来实现转换。

el7556由积分电路、基准电路、频率转换电路及频率—电压(f/v)转换电路等组成,积分电路及r1、r2、c1用于产生一定频率的脉冲信号并从5脚送至8脚。

调节r2可对该脉冲信号频率进行调整,从而使湿度传感器的线性和灵敏度处于较好状态;基准电路和频率转换电路可将湿度传感器的电容变化转换成频率变化,再经频率—电压转换电路后从9脚输出与频率成线性的电压,然后经c3等滤波后送入pic16c73的ra0端,再进行a/d转换以将其转换成数字信号。

本例中的湿敏传感器为mxs型电容式湿敏传感器,湿度为76%rh时的电容值为500pf,电容相对变化率为+1.7pf/%。

当湿度为0%~100%rh时,9脚输出的相应信号频率为0~1000hz,精度为2%,f/v电路输出的电压为0~5v。

调整时,可先设定湿度为5%rh,然后调节r2,使9脚输出100mv电压即可。

第三章软件

3.1定时及控制电路

定时主要用于提前预热仪器设备和定时语音提醒等,该功能的实现由单片机来完成。

时钟频率选用32.768khz,该频率可使单片机工作在最小功耗状态并可简化分频、定时程序的编写。

可选用看门狗电路来作为定时基准,看门狗每18ms复位一次可确保时钟的准确及语音电路的播放操作。

控制驱动电路用于保护仪器。

各个电磁阀的导通要有一定的时间间隔,本例中为2分钟。

推荐的工作方式为:

6:

00电磁阀1导通,接通稳压电源;6:

02以后每间隔2分钟接通一个相应设备(应先启动感性及大功率设备)。

这样,当8:

00上班后即可保证有些需要预热1~2小时的仪器设备进入最佳工作状态,从而提高工作效率,保证计量检定的质量。

电器驱动电路控制的设备主要包括空调机、吹风机、吸湿机、加湿机等,可分别采用过零型固态继电器来控制工作。

为了便于扩展该装置的功能,系统应留有足够的扩展空间。

因此,设计时可用pic16c73的ra3口作控制口,另外可外扩两片pcf8574以作备用。

该系统最多可控制16个设备以满足不同需要。

继电器采用交流固态继电器,其部采用光电隔离方式,可有效地避免电磁干扰。

当单片机检测到温湿度信号超过设定值时,将从ra3口发出控制信号,并通过光耦产生大于5ma的触发电流使固态继电器启动相应的电器工作,从而实现对相应设备的控制。

设计时应注意各个电器不要同时启动以免冲击电网,这部分工作可由软件延时完成。

固态继电器可选择国产的h220d15。

3.2主程序设计

主程序是控制和管理的核心,主要完成在系统上电后进行定时器和中断处理操作的初始化。

初始化主要完成对温湿度的设定和检查除定时器t0外的所有中断禁止,同时断开各电器的电源。

初始化完成后,系统将开始正常运行,并进行温湿度检测、键盘扫描及定时处理等操作。

下面是本文的主程序:

#include

//#include

#include

sbitRS=P3^0;

sbitRW=P3^1;

sbitE=P3^2;

sbitPSB=P3^5;          //串并口选择

sbitRES=P3^3;

bitRD1;

#defineFIRST_ADDR0      //定义字符/汉字显示起始位置

Unsignedcharcodelogo[]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2