基于单片机的水浴温度控制系统设计.docx

上传人:b****2 文档编号:2412120 上传时间:2023-05-03 格式:DOCX 页数:41 大小:473.73KB
下载 相关 举报
基于单片机的水浴温度控制系统设计.docx_第1页
第1页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第2页
第2页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第3页
第3页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第4页
第4页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第5页
第5页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第6页
第6页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第7页
第7页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第8页
第8页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第9页
第9页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第10页
第10页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第11页
第11页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第12页
第12页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第13页
第13页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第14页
第14页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第15页
第15页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第16页
第16页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第17页
第17页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第18页
第18页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第19页
第19页 / 共41页
基于单片机的水浴温度控制系统设计.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的水浴温度控制系统设计.docx

《基于单片机的水浴温度控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的水浴温度控制系统设计.docx(41页珍藏版)》请在冰点文库上搜索。

基于单片机的水浴温度控制系统设计.docx

基于单片机的水浴温度控制系统设计

攀枝花学院本科毕业设计(论文)

基于单片机的水浴温度控制系统设计

 

学生姓名:

兰小龙

学生学号:

************

院(系):

电气信息工程学院

年级专业:

2009级测控技术与仪器

指导教师:

谢兵讲师

 

二〇一三年六月

摘要

随着电子科技、测量和控制技术的迅速发展与广泛应用,在工业生产中温度是一项重要数据参数,而采用单片机来对这些温度参数进行测量及控制已成为当今的一个重要控制领域。

本设计以AT89C52单片机为核心设计了一套水浴温度控制系统,重点阐述了工作原理和设计方法。

温度信号采集选择的温度传感器是温度芯片DS18B20,并以数字信号的方式传送给单片机,通过单片机把温度信号显示在LED上。

该控制系统主要分为硬件设计和软件设计两大部分,其中,硬件设计包括温度检测电路、温度控制电路、PC机与单片机串口通讯电路和数码管显示电路;软件设计采用模块化结构,主要模块有:

主程序、数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、水阀控制程序、超温报警程序等。

单片机通过对信号进行相应处理,从而实现自动控制水温的效果。

关键词AT89C52,DS18B20,温度控制,显示电路,串口通讯

ABSTRACT

Withtherapiddevelopmentandwideapplicationofelectronictechnology,computermeasurementandcontroltechnology,inindustrialproductioninthetemperatureiscontrolledbysinglechipmicrocomputerindexcommonlyused,andtheparametersofcontrolhavebecomethemainstream.TheworkingprincipleanddesignmethodoftemperaturecontrolsystemofthisdesignusesAT89C52microcontrollerasthecoreofthe.ThetemperaturesensorofthetemperaturesignalacquisitionandselectedaDS18B20temperaturechip,anddigitalsignaltransmittedtotheSCM,SCMthroughthedigitaltemperaturesignalisdisplayedontheLED.Thispaperintroducesthehardwarepart,thepartofsoftwaredesign,thecontrolsystemincludes:

temperaturedetectioncircuit,temperaturecontrolcircuit,PCandMCUserialcommunicationcircuitanddigitaldisplaycircuit.Thesoftwareadoptsthemodulestructure,mainmodulesare:

program,keyboardscanningandkeyprocessingprocedure,temperaturesignalprocessingprocedure,thewatervalvecontrolprogram,over-temperaturealarmprogramofdigitaltubedisplay.Throughcarriesoncorrespondingprocessingtothesignal,MCUachievethepurposeoftemperaturecontrol.

KeywordsAT89C52,DS18B20,temperaturecontrol,displaycircuit,serialcommunication

 

1绪论

1.1水温控制系统设计的背景

测量和控制功能是从生产现场的各种参数,采用科学的计算方法,集成了多种先进技术,这样可以有效地控制每一个生产环节,不仅保证了标准化生产,提高产品质量,降低成本,但也能确保安全生产。

因此,测量和控制技术已广泛应用于炼油,化工,冶金,电力,电子,轻工和纺织工业。

单片机以其集成度高、运算速度快、体积小、运行可靠、价格低廉等优势,在过程控制、数据采集、机电一体化、智能化仪表、家用电器以及网络技术等方面得到了广泛的应用,特别是单片机技术的开发与应用,标志着计算机发展史上又一个新的里程碑。

作为计算机两大发展方向之一的单片机,以面向对象的实时控制为己任,嵌入到如家用电器、汽车、机器人、仪器仪表等设备中,使其智能化。

水温检测控制系统在工业生产、科学研究和人们的生活领域中,得到了广泛应用。

在工业生产过程中,很多时候都需要对水温进行严格的监控,以使得生产能够顺利的进行,产品的质量才能够得到充分的保证。

使用水温控制系统可以对生产环境的温度进行有效控制,保证生产的自动化、智能化能够顺利、安全进行,从而提高企业的生产效率。

水温控制系统应用十分广阔。

1.2水温控制系统设计的意义

随着社会的发展,在各个领域的科学与技术,应用和测量仪器的进展,智能化是现代温度控制系统的主流。

温度测量与控制系统,控制对象的温度。

广泛应用于日常生活和工业温度控制领域,如温室、发酵罐、电源和其他地方的温度控制。

和温度控制完成人工并没有足够的重视,在很多地方都需要的温度监测,以防止发生意外。

针对这一问题,该系统的设计,实现了连续的温度控制系统,温度控制精度高,它被广泛使用,功能强大,小巧美观,携带方便,是一种实用,价廉的控制系统。

特别是近年来,温度控制系统已经应用到人们的生活的每一个方面,温度控制的发展和人们的生活密切相关。

水是一种重要的资源,我们的生存,无论是在工业和农业生产,我们的日常生活中随处可见不能沸水。

为了控制水温,可以大大提高了生产效率,节约资源,提高我们的生活质量。

在当今水资源日益匮乏,具有简单和扩展温度控制系统,对我们社会的可持续发展,都具有十分重要的意义。

2方案设定与总体设计

2.1方案设定

2.1.1单片机及水温控制方案

建立单片机水温控制系统可以采用51系列单片机作为主控系统,51系列单片机产品也比较多,本人常用AT89C52单片机,因为该单片机编程空间大,可用编程实现各种算法和各种控制,而且很容易控制进行数据转换及对电磁阀门进行智能控制,从而对水的温度进行了恒定的控制以及对温度的显示。

而水温主要靠温度传感器对控制水浴进行检测,然后把检测得到的温度穿给单片机,从而达到控制目的。

2.1.2冷热水控制方案

控制冷热水阀现在通常用电机转动的正反转来控制水阀的开关,电机的转速控制流量的大小,流量监测使用流量传感器。

但是本设计采用的是单片机用两个端口直接控制冷热水阀,当温度高于设定恒温值的时候,通过单片机启动冷水阀门,当温度低于设定恒温值的时候启动热水阀门,这样就可以达到一直处于设定温度值的水温效果。

2.1.3电源设计方案

电源对于单片机尤为重要,因为单片机不能直接使用交流电源220V,只有通过电源模块电路使220V的交流电源转换为5—12V的直流电源才可以供单片机只用。

单片机内部电源我采用多电源供电,这样的好处是对数字电路、驱动电路分别提供电源,大大减少了对系统各个模块的干扰,以及保证了各个部分有充足的工作电流,提高了整个系统的安全性与可靠性。

2.1.4LED显示设计方案

LED数码管的段选a、b、c、d、e、f、g分别接在一起,每一个都拥有一个共阴的位选端,我采用的是十个数码管,因为温度传感器的位数是三位,虽然温度传感器能直接读出温度值,但实际读书操作有很多不便,所以用三位显示传感器检测出的温度,三位显示键盘设定的恒定温度值,两个温度相比较就可以直观的查看整个控制系统的稳定性,另外数码管的控制分别用两块芯片,由于断选需要有锁存功能,所以我选的是74HC573。

2.2控制系统的总体设计

温度传感器DS18B20从水浴环境的不同位置采集温度,单片机AT89C52获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前通过键盘设定的温度恒定值,通过加热和降温对当前温度进行调整。

当采集的温度经处理后超过设定温度的上限时,单片机通过控制冷热水阀门的开关来实现,当温度高于设定值1℃的时候就打开冷水阀门,注入冷水降低水温,当检测温度低于设定值1℃,控制体系启动热水阀门,注入热水使水温上升,达到水浴恒温的效果。

当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在正常时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。

系统中将通过串口通讯连接PC机存储温度变化时的历史数据,以便观察整个温度的控制过程及监控温度的变化全过程。

 

 

图2.1工作原理图

3硬件部分

3.1单片机发展背景

经过1970年的微型计算机研制成功,与SCM单片微机,美国的美国英特尔公司在1971年生产的原型4位单芯片4004和1972年生产的8位单芯片8008的出现,这是首次公开亮相单片机。

1976年,英特尔推出了首款名为MCS-48系列单片机。

小体积,功能齐全,价格低廉,赢得了广泛的应用,而SCM相关的一些公司推出了自己的微控制器。

1978年上半年,M6800系列单片机,Zilog的公司摩托罗拉公司推出的Z8系列单片机。

1980年,英特尔推出了MCS-51系列高性能MCS-48系列的基础上。

这种单片机的I/O串行口,定时器/计数器16,芯片上的内存容量(RAM,ROM)增加了优先级的中断处理功能、MCU的功能、扩大寻址范围,他们是主流产品单片机的应用。

1982年,莫什特克公司和英特尔公司还推出了一种高性能16位MCUMK68200与MCS-96系列,NS公司和NEC公司也基于原来的8位MCU推出16位单芯片微电脑HPC16040和μPD783系列。

在1987年,英特尔宣布CMOS80C1961988高性能比8096年两次EPROM87C196单片机。

由于16位MCU的介绍后,昂贵的设备有限公司,发展的原因有多种,尚未被广泛使用。

8位MCU已经能够满足大多数应用的需求,因此,在16位单芯片同时推出的,新的高性能8位MCU已经公布。

经过这短短的20年中,已经经历了4次更新,供应链管理是迈向一体化,多功能,多选择,高,速度快,功耗低,扩展存储容量和提高兼容I/O功能和结构的发展方向。

80C51系列单片机与新一代的除了外的结构特点,主要技术特点的外部接口电路的扩展,以实现微控制器(单片机)控制功能的使命。

该系列产品提供了外部总线结构完美,奠定了良好的基础,扩展和配置系统。

由于一系列的优良特性80C51系列单片机是单芯片的使用,已经是二十一世纪的新的科学技术的一个标志。

3.2单片机

3.2.1AT89C52单片机

AT89C52是一个低电压,高性能CMOS8位单芯片微型计算机,包含随机存取记忆体闪存只读内存8K字节可以被反复擦除和256字节(RAM),采用ATMEL公司的高密度的设备,非挥发性记忆体技术,兼容标准MCS-51指令系统,片内置一般8中央处理器和Flash存储单元中,AT89C52的芯片已被广泛用于电子工业。

AT89C52封装芯片如图3.1所示,仿真图片如图3.2所示。

图3.1AT89C52PDIP封装芯片

图3.2AT89C52PDIP仿真图片

3.2.2功能特性

①兼容MCS51所有指令系统;

②8kB可重复擦写(可擦次数1000以上)FlashROM;

③32个I/O双向口;

④256x8bit内部的RAM;

⑤16位可编程定时/计数器中断有三个;

⑥时钟频率0-24MHz;

⑦可编程UART的串行通道,二个串行中断;

⑧有8个中断源,其中有2个是外部中断源;

⑨2个写读中断口线,3级加密位;

⑩掉电模式与低功耗空闲,唤醒功能与软件设置睡眠;

3.2.3引脚

AT89C52是8位微处理器,使用行业标准的C51内核,内部功能和引脚排列8xc52,主要用于收敛调节功能控制。

其特点包括主IC的内部寄存器,RAM和外部接口的初始化数据融合,收敛调节控制,收敛测试图控制,红外遥控信号的接收和解码和红外主板和CPU通信的功能组件。

主要有:

XTAL1(引脚19)和XTAL2(引脚18)振荡器,外部12MHz振荡器的输入和输出端口。

RST/VPD(引脚9)输入端口复位、复位电路、外部电阻和电容。

VCC(引脚40)和VSS(引脚20)的电源供给口,分别。

+5V电源正和负端。

P0〜P3是一个可编程的通用I/O脚,它的功能是由软件定义的,在本设计中,P0口(32〜39)被定义为N1功能控制端口,相应的功能的N1分别与销被连接到13英尺,定义为IR输入,10脚和11脚定义为I2C总线控制端口(引脚18)的N1SDAS和SCLS(引脚19)端口,12英尺,27英尺和28分别连接脚被定义为端口,连接到主板的CPU的相应的功能,针对当前系统的检测和控制的收敛功能的调整项的握手信号的功能。

P0口:

P0口是一组8漏极开路双向I/O口,即复用的地址/数据总线端口。

作为一个输出端口,每个人都可以下沉8个TTL逻辑门电路,到端口P0写“1”,可作为高阻抗输入。

在访问外部数据存储器和程序存储器,这组线分时地址翻译(低8位)和数据总线复用,激活内部上拉电阻访问。

在Flash编程,P0接收指令字节,而在程序验证,输出代码字节,需要外部接上拉电阻。

P1:

P1是一个8位双向I/O和内部上拉电阻,P1输出缓冲器可驱动(吸收或输出电流)4个TTL逻辑门电路。

“1”被写入到端口,通过内部的上拉电阻端口到高电平,此时可以用作输入。

作为输入使用时,由于内部上拉电阻,信号引脚被外部拉低,将输出电流(IIL)。

P2:

P2是一个8位双向I/O内部上拉电阻,输出缓冲器P2可以驱动(吸收或输出电流)4个TTL逻辑门电路。

端口P2中写入“1”,通过一个内部的上拉电阻端口到高电平,此时可以作为输入,作为输入在使用时,由于内部上拉电阻,信号标签被外部拉低,将输出电流(IIL)。

在对外部数据访问到外部程序存储器或16bits的地址记忆体(用于的示例将执行的MOVX_AT_DPTR命令)的中,P2发送一个很高的8个的位的地址数据。

在接受采访时与8个外部的数据的内存地址(例如作为的实施的MOVX_AT_RI指令),P2口输出闩锁P2的含量。

P3口:

P3口是一组8位双向I/O上拉电阻口。

P3输出缓冲器可驱动(吸收或输出电流)4个TTL逻辑门电路。

写“P3”,他们被拉高内部上拉,可以用作输入端口。

在这个时候,一个上拉电阻被拉到低的外部P3端口将被使用的输出电流(IIL)。

P3口除了具有一般的I/O口线外,还具有它的第二功能,如表3.1所示:

表3.1P3口第二功能表

端口功能

第二功能

端口引脚

第二功能

RXD(P3.0)

串行输入口

T0(P3.4)

定时/计数器0外部输入

TXD(P3.1)

串行输出口

T1(P3.5)

定时/计数器1外部输入

INT0(P3.2)

外中断0

WR(P3.6)

外部数据存储器写选通

INT1(P3.3)

外中断1

RD(P3.7)

外部数据存储器读选通

P3还接收一些控制信号的flash编程和校验。

RST是复位输入,当振荡器高高在上的两个机器周期的水平,RST引脚使MCU复位。

ALE/PROG:

当访问外部存储器时,ALE(地址锁存使能)低8个字节的地址锁存输出脉冲。

在一般情况下,ALE是在一个恒定的频率的1/6输出的脉冲信号发射,因此,它可以输出时钟用于定时目的。

应当指出的是:

每次访问外部数据存储器,将跳过一个ALE脉冲。

在Flash编程时,此引脚也是编程脉冲输入(PROG)。

如果有必要,可以的特殊功能寄存器(SFR)在D0位置8EH单位面积,可以禁止ALE操作,只有一个MOVX和MOVC指令,以激活的ALE。

此外,该引脚微弱拉高,单片机执行外部程序,应该设置ALE禁令是无效的。

PSEN:

程序存储使能(PSEN)输出是外部程序存储器读选通脉冲信号,当AT89C52的取指令从外部程序存储器(或数据),两个PSEN每个机器周期,即输出两个脉冲。

在此期间,当访问外部数据存储器时,它会跳过两个PSEN信号。

EA/VPP外部访问启用:

CPU只访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。

需要注意的是:

如果加密LB1被编程,将内部锁存复位EA的最终状态。

EA端为高电平(VCC端),CPU执行内部程序存储器指令。

Flash存储器编程,该引脚与+12V的编程允许电源Vpp的,当然,这必须是该设备是使用12VVpp的编程voltage。

XTAL1:

输入到振荡器反相放大器和内部时钟。

XTAL2:

从反相输出振荡放大器。

3.2.4特殊功能

AT89C52的内存,80H-FFH共128个单位的特殊功能寄存器(SFR),不是所有地址定义,从80H到FFH总共128字节的只是其中的一部分被定义,并且相当多的是没有定义。

没有定义的阅读和写作的单位将是无效的,读出的值的不确定性,写入的数据将会丢失。

不应该写数据到一个未定义的元素,因为这些单元可以在未来的产品赋予新的功能,在这种情况下,复位后的单元号总是“0”。

AT89C52此外,以AT89C51单片机的定时器/计数器0和定时器/计数器1,还增加了一个定时器/计数器2、定时/计数器2T2CON,T2MOD(RCAO2H,RCAP2L)的控制和状态位寄存器定时器2捕捉/16收购模式或16个自动加载模式自动重载寄存器。

3.2.5数据储存

AT89C5280H-FFH是256字节的内部RAM,128字节和特殊功能寄存器(SFR)地址重叠,是一个高128字节的RAM和特殊功能寄存器的地址是相同的,但他们是分开的物理。

当内部地址单元的指令访问超过7FH,用于在指令的寻址模式是不同的,即寻址模式决定访问128字节的RAM或特殊功能寄存器的访问。

如果指令直接寻址访问特殊功能寄存器。

例如,直接寻址指令访问0A0H特殊功能寄存器(即P2)地址单元。

MOV@0AH,#data

间接寻址指令访问上128字节的RAM,例如,下面的间接寻址指令,R00A0H,访问数据字节地址0A0H的内容,而不是P2(0A0H)。

MOV@R0,#data

堆栈操作间接寻址方式,因此高128位的数据,RAM可以用作堆栈区。

方法:

定时器0和定时器1:

AT89C52定时器0和定时器1和AT89C51。

3.2.6片上资源

定时器2:

基本特征:

定时器2是一个16位定时/计数器。

它可用于定时器时,还可以被用作外部事件计数器,工作方式由特殊功能寄存器T2CON(表3)的C/T2位选择。

定时器2有三种工作模式:

捕捉模式,自动加载(向上或向下计数)和波特率发生器模式,工作模式由T2CON控制位选择。

定时器2由两个寄存器中的8位TH2和TL2,在定时器的操作模式,每个机器周期TL2寄存器的值加1,因为一个机器周期中,包括的振荡器的时钟12,1/12的振荡频率的计数率。

在计数模式下,当外部输入信号的T2引脚已经下降了1到0的边缘时,寄存器的值加1,以这种方式,在每个机器周期5SP2,对外部输入采样。

如果在一个1值的第一个机器周期,在下一个机器周期中,该值是0,那么随后的寄存器1的下一个周期的S3P1期间。

由于识别1到0的跳变到2个机器周期(24个振荡周期),因此,1/24的振荡频率的最大计数率,以确保正确的采样,需要至少一个完整的周期时间保持在更改之前的电平输入,以确保输入信号被至少一次采样。

捕捉模式:

在捕捉模式下,通过T2CON控制EXEN2位选择两种方式。

如果EXEN2=0,定时器2是一个16位定时器或计数器,计数器溢出,TF2组的T2CON溢出标志,同时激活的中断。

如果EXEN2=1,定时器2执行相同的操作,当T2EX引脚的外部输入信号发生1到0的负跳变,也出现在TH2和TL2价值RCAP2H和RCAP2L被抓获。

此外,T2EX引脚信号跳变使T2CONEXF2集,类似TF2,EXF2激活中断。

自动加载(向上或向下计数器):

当定时器2到16个自动加载方法,编程计数或向下时,此功能通过特殊功能寄存器T2CON(见表5)选择DCEN(倒计时)。

复位,DCEN位置“0”,定时器2的默认设置计数。

当DCEN设置,定时器2可以向上计数或递减计数器,取决于T2EX引脚的值,当DCEN=0时,自动设置定时器2来算,这样一来,T2CON的EXEN2控制位有两种选择,如果EXEN2=0,定时器2计数到0FFFFH外溢,设置TF2中断激活,而16计数寄存器RCAP2H和RCAP2L装载RCAP2H和RCAP2L的值可以是由软件预先设定。

16EXEN2=1,定时器2重加载的溢出或外部输入T2EX从1点减至0沿触发。

脉冲使EXF2位置,如果中断使能,可以产生一个中断。

定时器2中断入口地址是:

002BH-0032H。

当DCEN=1,允许定时器2向上计数或向下。

通过这种方式,T2EX引脚控制计数方向。

的T2EX引脚为逻辑“1”,计数器开始计数,0FFFFH计数溢出时,设置TF2位,16位计数器寄存器RCAP2H和RCAP2L重新加载到TH2和TL2的T2EX引脚为逻辑“0”,定时器2的倒计数,当值TH2和TL2等于在RCAP2H和RCAP2L的值溢出,设置TF2位,0FFFFH数值的重载定时器寄存器。

当定时器/计数器2溢出或溅下来EXF2置位。

波特率发生器:

T2CON时TCLK和RCLK设置,定时器/计数器2作为波特率发生器。

如果定时器/计数器2被用作发送器或接收,发送和接收的波特率可以是不同的,定时器1被用于其它功能。

如果RCLK和TCLK位置,定时器2工作在波特率发生器模式。

波特率发生器模式和自动加载模式是相似的,在这种方式中,TH2翻转定时器寄存器2与16个值RCAP2H和RCAP2L的重装,通过软件设置的值。

在模式1和3,波特率由定时器溢出率2根据公式来确定:

1和3的波特率=定时器溢出率/16。

该定时器可以工作在定时模式,也可以工作在计数的方法,在大多数应用中,工作在定时模式(C/T2=0)。

定时器2用作波特率发生器,定时器操作是不同的,通常是作为一个定时器,在每个机器周期(1/12振荡频率)寄存器的值加1作为波特率发生器使用,在每一个国家的时间(1/2振荡频率)寄存器的值加1。

公式如下:

1和3的波特率,波特率为振荡频率/{32*[65536-(RCP2H,RCP2L)]}型(RCAP2H,RCAP2L)RCAP2H和RCAP2L的16位无符号数。

定时器2作为波特率发生器时,T2CONRCLK或TCLK=1模式是有效的,波特率。

在波特率发生器的操作模式,TH2翻转TF2可以不设置、不中断。

但是,如果EXEN2设置,T2EX端所产生的1到0的负跳变,将会使的EXF2位置,

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

当前位置:首页 > 医药卫生 > 基础医学

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

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