韩勇基于DS18B20的多点温湿度控制系统.docx
- 文档编号:6340596
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:77
- 大小:1,002.45KB
韩勇基于DS18B20的多点温湿度控制系统.docx
《韩勇基于DS18B20的多点温湿度控制系统.docx》由会员分享,可在线阅读,更多相关《韩勇基于DS18B20的多点温湿度控制系统.docx(77页珍藏版)》请在冰豆网上搜索。
韩勇基于DS18B20的多点温湿度控制系统
前言
随着我国工业的迅猛发展,各种大规模的生产线越来越多,各种功能的设备也应运而生,同时也使得生产现场的环境越来越复杂,而各种设备往往需要很苛刻的环境条件才能保证生产安全进行,特别是温度和湿度往往需要控制在一定范围内。
如果温度或是湿度超出了设备所能允许的规定范围,就会使设备不能正常工作,造成生产出的产品不合格,从而造成大量的人力和资源的浪费,国家带来巨大的经济损失,损害全国人民的共同利益。
同时,对于很大部分的生产设备,如果长期工作与不适宜的环境中时,会导致机器设备的加速老化和磨损,大大减少了机器设备的使用寿命,使得机器设备提早报废,提高了生产成本,给企业和工厂带来巨大的经济压力,同时也给国家带来了巨大负担。
更严重的是,有些生产设备一旦生产环境的温度或湿度超标,会导致严重的晃动,震动,着火甚至是爆炸,对现场的工作人员造成人身伤害,还有可能是对人生命的威胁,造成无法挽回的永久的伤痛。
所以,我们要采取多种方法来对生产现场的温度和湿度进行检测,及时反馈采集到的信息,并对环境温度和湿度进行干预控制。
然而,目前采取的检测装置多数只能进行检测却不能自动控制,而是需要人工来根据情况将来进行控制,既耗时又费力,不符合胡锦涛总书记在十六大中提出的建设节约型社会的发展需要。
此外,检测的结果的出现往往需要时间延迟,所以由于突然发生的温度的升高和降低等情况不能及时反馈给管理人员。
这样就不能起到控制作用,对生产设备和生产工人的安全也就无从保证。
基于目前的状况,我决定设计一套系统,它能够对温度和湿度进行自动测量和控制,另外增加显示和报警功能。
有效地避免在生产过程中出现的环境温度和湿度的超标,消除生产过程中对设备和人身的安全威胁,还可以节省大量的人力和财力,一切过程全都有系统自动完成,所以具有很高的实用价值,是一项意义深远的研究项目。
1系统设计概述
1.1单片机发展概况
单片机及其应用已经成为高新科学技术的重要内容和标志之一,它在经济的各个领域中正发挥者引人注目的作用。
单片机与单纯的微处理器不同。
单片机是将CPU、ROM、RAM、I/O、定时器系统、串行口、震荡电路等集成于一个芯片之中,使其具备计算机的基本功能。
由于单片机原来是为实时控制应用而设计制造的,因此又称之为微控制器。
单片机依ROM、RAM容量大小、I/O功能适用于不同的应用场合。
目前,单片机已形成多系列、多品种的局面。
从1976年Intel公司推出MCS-48单片机以来,单片机就受到了广大用户的欢迎。
由于其应用范围广泛,因此各有关公司都争相推出各自的单片机,Intel公司于1980年又推出了优于MCS-48的MCS-51系列,1992年,推出了性能更高的16位单片机MCS-96系列。
8098就是MCS-96系列中的一种,它具有性能高、功能全、售价低廉、使用方便等优点,同时片内还具有4路10位A/D转换器,省去了外接A/D的过程,可使系统简单,这也是本设计选用8098单片机的主要原因。
用户对系统的要求
本设计要求测量温度范围为-40℃~+100℃精度误差要求在1℃以内,相对湿度测量范围为5%~95%,精度误差在3%以内。
选择方案
针对用户的要求,本系统所要实现的是对多点温度和湿度的检测和控制,所以方案必须要考虑到两个重要环节,一个是“多点”,另一个就是“控制”。
“多点”,即说明本系统与一般的温、湿度检测控制系统不同,它不只对一个点或是少数点进行检测,而是很多点进行检测和控制,这里是300个点。
显然,如用通常的热点偶和热电阻作为测温元件,它们所需的较多的外部硬件支持会使系统格外的复杂和庞大,会增加制造成本。
因此,我选择了美国DALLAS半导体公司开发的单总线数字式温度传感器DS18B20作为检测元件。
DS18B20具有结构简单,操作灵活,无须外接A/D转换电路等优点。
它的测温范围-55~+125°C,以0.5°C递增,温度数字量转换时间2000ms,符合用户的需要。
而8098单片机内部具有A/D转换电路,这又可使湿度检测电路无需外加A/D,又可使得系统简化。
“控制”,即说明单单对温、湿度进行检测是不够的,检测到结果后还要求系统根据数据对现场进行控制,必要时还要进行报警,因此,我选择用单片机控制风机的办法对温、湿度实行控制。
同时加入报警电路。
硬件系统组成
本系统是基于DS18B20的多点温、湿度控制系统。
它主要由以下几部分组成:
8098单片机、8255并行接口电路、温、湿度传感器和变送器、驱动电路、报警和显示电路构成。
其接口部分包括单片机片外扩展的程序存储器一片27C64和地址锁存器74LS373,以及数据存储器一片6264,系统的组成如图1-1所示。
图1-1系统组成结构图
Figure1-1systemcompositionstructuredrawing
系统工作原理
在应用程序的作用下,首先对8255进行初始化,设定工作方式0。
PA口PB口PC口均为输出口,PA口PB口为显示输出,PC口为报警和相关设备驱动口。
测量过程是先温度后湿度的顺序。
首先对温度进行采样,每个温度点采样5次,计算平均值作为采样值送入存储的相应单元进行存储,并对传感器的编号和温度进行显示,然后判断温度是否超过设定温度,如果温度超标则报警并根据传感器的位置判断启动通风设备还是加热设备,如果不超标就继续检测下一个点的温度,直到300点温度全部测量完成,然后计算和显示平均温度。
然后对8个点的湿度进行测量并且显示,也是按照每个点测量5次然后取平均值的方法计算,来减少干扰因素带来的误差,8个点的湿度测量完成后计算并显示平均湿度。
同样与设定的湿度值比较如果超标就报警,并且起动风机进行通风处理。
然后系统返回再进行温度和湿度的巡回测量和显示。
28098单片机介绍
8098机是美国Intel公司于1988年初推出的准16位(内部数据总线为16位,外部数据总线为8位)单片机微型计算机。
它擅长高速控制,既有16位单片机强有力的运算功能,又有8位单片机接口简单的优点。
8098单片机是MCS-96系列家族中的新成员,与MCS-96系列中的其它芯片相比,具有性能高、功能强、价格低(一片8098仅几十元)等优点。
与MCS-51系列单片机相比,8098单片机片内带有4路10位A/D转换器,功能比MCS-51强得多。
继MCS-51系列单片机之后,在我国单片机应用领域掀起了运用8098的热潮。
2.18098单片机的硬件结构
下面将对8098的芯片组成、主要性能特点和引脚功能进行介绍。
2.1.18098的芯片组成[1]
8098单片机组成框图如图2-1所示,他主要由一个高性能的16位CPU寄存器算术逻辑单元(RALU)、232字节寄存器陈列,以及一些外围子系统构成。
在RALU控制下的外设子系统可分为以下一些部分:
1)高速输入/输出口(HSI/HSO)
2)带有采样/保持(S/H)电路的4通道10位A/D转换器
3)中断控制器和等待状态产生逻辑
4)一个同步/异步串行口
5)两个16位定时器和一个监视定时器
6)一个可供D/A转换器使用的脉冲宽度调制(PWM)输出
2.1.28098单片机的主要性能、特点[2]
8098的主要性能特点如下:
1)16位中央处理器(CPU)
该CPU在结构上的最大特点:
抛弃了常规的累加器结构,改用寄存器-寄存器机构,即CPU直接在由寄存器陈列和SFR特殊功能寄存器所构成的256字节寄存器空间内进行操作。
这些寄存器具有累加器的特殊功能,它们可使CPU对运算前后的数据进行快速交换,同时又提供了高速数据处理能力和高速输入输出能力。
这种结构省去了数据向累加器移进移出的过程,因而消除了一般累加器结构中存在的“瓶颈”现象。
16位CPU支持位、字节和字(16位)操作,在部分指令中还支持32位双字操作,如22位除16位。
2)高效的指令系统
8098单片机具有丰富的指令系统,不但运算速度快,而且编程效率高。
指令系统比MCS-51丰富、功能强,运算速度比MCS-51快,编程所需指令少、效率高。
与MCS-51单片机相比,完成同样一个计算任务,8098单片机的速度要高出5~6倍,而指令字节数还不到MCS-51的一半。
它可以对不带符号和带符号数进行操作,有16位乘法指令,32位除16位除法指令,符号扩展指令,数据规格化指令(有利于浮点计算)等等。
许多指令既可用双操作数,也可用三操作数,使用灵活。
晶振为12MHZ时,实现16位加法运算需16位×16位乘法运算或32位÷16位除法运算需要6.5μs。
3)10位A/D转换器
四通道带有采样保持器的10位A/D转换器,晶振为12MHZ时,完成一次A/D转换所需时间只要22μs(其中采样时间为1μs)。
4)PWM脉宽调制输出
8098单片机提供一路PWM(脉宽调制)信号,可用于直接驱动某些电机。
PWM输出信号经过积分可以获得直流输出,即PWM可作为一个D/A转换器来使用,该D/A转换器的分辨率为8位,PWM的脉冲周期为64μs(12MHZ时)。
5)高速输入/输出
8098单片机具有MCS-51单片机所没有的高速输入/输出(HSI/HSO)功能。
HSI可以同时记录8个事件,并能检测出四条输入引脚上的状态变化和状态变化的时刻,通过四条输入引脚还能检测多种状态变化。
HSO主要用于实现触发一个或多个事件(如对定时器复位,启动A/D转换,触发4个软件定时器中断和输出HSO.0~HSO.5中的任一触发信号)。
“高速”意味着这些功能是“自动地”(相对与定时器)实现的,无需CPU的干预。
6)全双工串行口
8098单片机提供一个与MCS-51系列单片机兼容的全双工串行口。
串行口有三种异步工作方式,一种同步工作方式。
与MCS-51系列单片机不同的是,它设有一个专供串行口使用的波特率发生器并且还可以利用HSI/HSO构成异步全双工软件串行口。
7)具有多用途的接口
P0口引脚既可作为A/D转换器的模拟输入口,也可用作数字输入口。
P2口除可作I/O口外,还可用作其它复用功能,如:
串行口的发送、接受、PWM输出、外中断请求输入。
8)8种中断源
8种中断源对应8个中断向量,而有的中断向量又对应着多个中断事件,共对应20种中断事件。
8098的中断是向量中断,这一点与MCS-51不同。
与MCS-51相比,8098还增加了软件优先级设置。
9)16位监视定时器
监视定时器能够有效地监视系统软件运行是否正常。
当干扰或其它原因导致系统软件运行紊乱时,它能使系统自动复位,从复位入口重新执行程序。
10)两个16位定时器
定时器T1在系统中作实时时钟用,系统运行时,不停地循环记数。
定时器T2对外部事件记数。
11)四个软件定时器
四个软件定时器受高速输出部件控制,一旦到达预定时间,设置相应的软件定时器标志,并可激活软件定时器中断。
12)256字节的寄存器阵列和特殊功能寄存器
其中232字节为内部寄存器阵列,它兼有一般微处理机中累加器、通用寄存器和高速RAM的功能。
其余24字节为特殊功能寄存器。
13)接口简单
8098为准16位单片机其外部数据总线为8位,因此对于熟悉MCS-51的拥护来说许多MCS-51的外围接口芯片和接口电路无需做任何改动,便可适应用于8098系统。
2.1.3引脚功能[2]
8098采用48引脚的双列直插式封装,如图2-2所示。
引脚功能见表2-1。
图2-28098引脚定义
Fig.2-1Feetdefinitionof8098
表2-18098引脚功能表
Tablet.2-1Thefeet’sfunctionof8098
符号
名称及功能
VCC
主电源(+5V)
VSS
数字地。
共有两个VSS引脚,它们都必须接地
VPD
RAM备用电源(+5V)。
在正常操作期间应加上此电源。
在掉点情况下,若在VCC下降到低于规定值之前(VPD应保持在规定范围内)使
有效,则8098片内寄存器阵列顶部的16字节内容将保持不变。
在掉电期间,
应一直保持低电平,直至VCC到规定范围内且震荡器达到稳定时为止
VREF
片内A/D转换器的参考电压(+5V)。
他也是A/D转换器模拟部分的电源电压,以及读P0口操作所需的逻辑电压
ANGND
A/D转换器的参考地。
通常应与VSS同电位
VPP
EPROM型芯片的编程电压
XTAL1
片内震荡器中反相器的输入,也是片内时钟发生器的输入。
通常接外部晶体
XTAL2
片内震荡器反相器的输出。
通常接外部晶体
复位信号输入端
存储器选择输入端。
=1,CPU寻址存储器2000H~3FFFH单元时,访问的是片内ROM(8398);
=0,则访问的是片外寄存器。
此引脚内部有下拉作用,若外部无驱动,它总保持低电平
ALE/
地址锁存允许(ALE)或地址有效输出(
)。
它们有CCR寄存器选择。
两者都提供了一个锁存信号,以便把地址从地址/数据总线中分离出来。
当选择
功能时,在总线周期结束时,此引脚变高。
可作为外部存储器的片选信号。
ALE/
仅在外部存储器访问期间才有效
对外部存储器的读信号(输出)
对外部存储器的写信号(输入)
READY
准备就绪信号(输入)。
用来延长对外部存储器的访问周期,以便使芯片能够与慢速或动态存储器借口。
它也可用于总线共享,总线周期最多可延长至1μs。
当不使用外部存储器时,此信号无效。
通过CCR寄存器控制插入到总线周期中的等待状态数。
REDAY引脚内部有微弱的上拉作用,当无外部驱动时,此引脚为高电平
HSI
高速输入部件的信号输入端。
共有4个HIS输入引脚:
HSI.0、HSI.1、HSI.2、HSI.3,其中两个引脚(HSI.2、HSI.3)与HSO不见共用
HSO
高速输出部件的信号输出端。
共有6个HSO输出引脚:
HSO.0、HSO.1、HSO.2、HSO.3、HSO.4、HSO.5,其中两个引脚(HSO.4、HSO.5)与HSI部件共用
P0口
4位高输入阻抗口。
这些引脚既可作为数字输入口,还可用作A/D转换器的模拟输入口(ACH4~ACH7)
P2口
4位多功能口。
在8098中,它们除了可以用作标准的I/O口外,还可用作其它特殊功能
P3口和
P4口
具有漏极开路输出的8位双向口。
这些引脚用作多路复用地址/数据总线和地址总线,它们的引脚内部具有很强的上拉作用
2.28098的CPU操作
8098CPU中的主要元件有:
高速寄存器阵列、特殊功能寄存器(SFR)、寄存器控制器和寄存器算术逻辑单元(RALU)。
它与外部通讯是通过特殊功能寄存器SFR或存储器控制器进行的。
8098CPU的主要特色是其RALU未采用其它形式CPU中常规的累加器结构,而是直接在由寄存器阵列和SFR所构成的256字节寄存器空间内进行操作。
这些寄存器都具有累加器的特殊功能,它们可使CPU对运算前后的数据进行迅速操作,同时有提供了高速的数据处理能力和频繁的输入/输出访问能力,因此不存在使用通常的累加器结构时所出现的“瓶颈现象”。
此外,通过SFR还可以直接控制I/O、A/D、PWM、串行口等部件的有效运行。
2.2.1CPU总线
CPU内部的一个控制单元和两条总线将寄存器阵列和RALU连接起来,图2-1中给出了CPU与两条总线的连接情况。
这两条总线是:
8位地址总线(A-BUS)和16位数据总线(D-BUS)。
数据总线仅在EALU与寄存器阵列或SFR之间传送数据,地址总线用作上述数据传送的地址总线或用作寄存器控制器连接的多路复用地址/数据总线。
CPU无论是对片内ROM还是对片外存储器的访问都是通过存储器进行的。
2.2.2寄存器阵列
寄存器阵列共有232字节ROM单元,这些单元可按字节、字或双字存取。
由于上述寄存器单元中的任何一个都可以为RALU所用,就好像CPU有232个累加器一样,使用非常灵活方便。
需要指出的是,在寄存器阵列中的第一个字是专门留作堆栈指针使用的,因此,当需涉及到堆栈操作时,它不能用来存放数据。
访问寄存器阵列和SFR的地址由CPU硬件控制,他们暂存在两个8位地址存储器内。
2.2.3寄存器运算逻辑单元RALU
8098的大多数运算都是由RALU完成,RALU的结构如图2-3所示。
RALU包括一个17位的运算逻辑单元(ALU)、程序状态字(PSW)、程序计数器(PC)、循环计数器(LOOPCOUNTER)以及三个暂存器。
上述所有寄存器都是16位或7位(16位加符号扩展位)。
此外,有的寄存器还能脱离ALU而单独进行一些简单的操作。
然而,程序的转移必须有ALU控制。
两个暂存器本身设有移位逻辑,可用于需要进行逻辑移位的一些操作中。
低字寄存器(LOWERWORDREGISTER)仅在双字型数据移位时才使用,而高字寄存器(UPPERWORDREGISTER)则每逢执行移位或作为指令暂存器时就要使用。
当执行循环移位操作时,由5位循环计数器完成循环记数。
图2-3RALU的结构图
Fig.2-3ThestructureofRALU
2.2.4内部时钟
8098工作时所需的时钟可通过其XTAL1输入引脚由外部输入,也可以采用芯片内部的震荡器。
8098的工作频率为6~12MHZ。
8098片内的震荡电路是一个单级非门电路,他与石英晶体配合使用,可组成一个稳定的晶体震荡器,如图2-4所示。
图中的外接电容起C1、C2通常取为30pF左右。
图2-48098晶体震荡器框图
Fig.2-1Theblockdiagramof8098’scrystaloscillator
来自晶体震荡器或外部震荡电路的信号经过三分频电路,便产生了三个不同相位的内部时钟,如图2-5所示。
三个震荡周期构成一个状态周期T(当fosc=12MHZ时,Tosc=83ns,T=250ns)。
图中A、B、C相的占空比均为33%,8098的内部操作都与上述三者之一同步。
图2-58098内部定时器波形图
Fig.2-5Thewave’stypeof8098’sinsidetimer
2.38098的存储器空间
8098可寻址的外部存储器空间为64K字节,它采用程序存储器与数据存储器和二为一的普林斯顿结构,不像用哈佛结构的MCS-48和MCS-51系列那样有程序存储器空间和数据存储器空间之分。
在64字节的存储器空间中,地址0000H~00FFH和1FFFH~2080H的存储器单元具有特殊用途,而其它的存储器空间既可用于存放程序或数据,也可用作I/O
外设映射空间。
8098的存储器空间分布如图2-6所示。
掉电保护RAM
内部寄存器阵列(RAM)
255
240
239
26
0FFH
FFFFH
4000H
3FFH
2080H
2030~H207FH
2020H~202FH
201CH~201FH
201AH~201BH
2019H
2018H
2012H~2017H
2011H
2000H
1FFFH
1FFEH
1FFDH
0100H
00FFH
0000H
0F0H
0EFH
1AH
片外存储器I/O
片内ROM/EPROM
或片外存储器
保留
密码
保留
自身跳转(27FEH)
保留
芯片配置字节
保留
中断向量
PORT4
PORT3
片外存储器I/O
片内RAM寄存器阵列
堆栈指针
特殊功能寄存器
堆栈指针
IOS1
IOS0
保留
SP-STAT
IOPORT1
保留
IOPORT0
TIMER2(HI)
TIMER2(LO)
TIMER1(HI)
TIMER1(LO)
INT
-PENDING
INT-MASK
SBUF(rx)
HSI-STATUS
HSI-TIME(HI)
HSI-TIME
(LO)
AD-RESULT
(HI)
AD-RESULT
(LO)
R0(HI)
R0(LO)
栈指针
2PWM-CONIROL
IOC1
IOC0
保留
SP-CON
IOPORT2
保留
BAUD-RATE
保留
WATCHDOG
INT-PENDING
INT-MASK
SBUF(tx)
HSO-COMMAND
HSO-TIME(HI)
HSO-TIME
(LO)
HSI-MODE
AD-COMMAND
R0(HI)
R0(LO)
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
19H
18H
17H
16H
15H
14H
13H
12H
11H
10H
0FH
0EH
0DH
0CH
0BH
0AH
09H
08H
07H
06H
05H
04H
03H
02H
01H
00H
(读操作时)(写操作时)
图2-68098存储空间
Fig.2-6Thestoragespaceof8098
2.3.1寄存器阵列
00H~0FFH存储器单元包括寄存器阵列和特殊功能寄存器(SFR),在这部分内部RAM空间中,不能执行指令码。
如果试图执行00H~0FFH存储器单元的程序,只有将指令码存放在上述地址空间所覆盖的外部存储器中。
通常外存的这一区域是为Intel开发系统所保留的。
RALU能对256个内部寄存器单元中的任何一个进行操作,其中00H~17H这24个单元用作特殊功能寄存器(SFR),18H和19H这两个单元则作为堆栈地址指针。
如果不涉及到堆栈操作,则这两个单元也可作标准的RAM使用。
堆栈指针可由用户程序在初始化时设置,他可指向64K存储器空间中的任何单元。
除了上述26个单元以外,剩下的230个单元作为用户的通用寄存器使用。
2.3.2特殊功能寄存器SFR
8098内部的各个功能部件均通用特殊功能寄存器(SFR)进行控制。
大多数SFR具有两种功能:
读操作时为一种用途,写操作时为另一种用途。
表2-2给出了所有SFR的名称和作用,对图中标有“保留”字样的寄存器用于未来器件的扩充和测试,用户不可对其进行读出和写入操作。
对特殊功能寄存器(SFR)的操作应注意以下几点:
aTIMER1、TIMER2和HSI-TIME寄存器只能按字读出,对它们不能按字节读或写。
bHSO-TIME寄存器只能按字写入,对它不能按字节写或读。
c所有其它特殊功能寄存器(SFR)只能按字节访问。
d乘法和除法指令中的源操作数读不能是可写的SFR。
e对于变址或间接寻址指令,所有特殊功能寄存器(SFR)都不能作变址或间接寻址寄存器使用。
fR0是按字或字节读写的寄存器,但写R0并不会改变它的值。
1)掉电
8098片内ROM空间顶部的16字节RAM(0F0H~0FFH)有VPD引脚供电。
如果用户希望在掉电后保存上述16个单元的内容,那么掉电后VPD引脚必须接备份电源,并且电压必须保持在规定的范围以内。
8098进入掉电状态时,
引脚电平降低2个状态周期后,芯片进入复位状态,以防止掉电时出现写RAM的操作。
此时电源由VCC供给改为由VPD供给,只要VPD引脚上接有规定值的电源,上述16字节RAM中的内容就可以保持。
表2-2所有SFR的名称和作用
Tablet.2-2ThenamesandfunctionsofallSFR
名称
作用
R0
零寄存器,它的读出值总
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DS18B20 多点 温湿度 控制系统
![提示](https://static.bdocx.com/images/bang_tan.gif)