收藏 分销(赏)

基于stc89c51单片机温控系统设计与制作.doc

上传人:天**** 文档编号:2478963 上传时间:2024-05-30 格式:DOC 页数:28 大小:923.54KB
下载 相关 举报
基于stc89c51单片机温控系统设计与制作.doc_第1页
第1页 / 共28页
基于stc89c51单片机温控系统设计与制作.doc_第2页
第2页 / 共28页
基于stc89c51单片机温控系统设计与制作.doc_第3页
第3页 / 共28页
基于stc89c51单片机温控系统设计与制作.doc_第4页
第4页 / 共28页
基于stc89c51单片机温控系统设计与制作.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、commonly used circuit, makes the whole design is more complete, more flexible. Keywords: DS18B20; STC89C51; MCU; control; simulation1.绪论1.1 温度控制系统设计的背景及意义 随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。特别是近年来,温度控制系统已应用到人们生活的各个方面,但温度控制一直是一个未开发的领域,却又是与人们息息相关的一个实际问题。针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景与实际意

2、义。温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油、柴油、煤油等产品。因此,各行各业对温度控制的要求都越来越高。可见,温度的测量和控制是非常重要的。单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。随着温度控制器应用范围的日益

3、广泛和多样,各种适用于不同场合的智能温度控制器应运而生。1.2 饮水机温度控制系统的目的饮水机的温度控制系统,能有效的利用水资源和电源。过低的温度或者过高的温度都会使水资源造成浪费,在全球水资源缺乏的今日,我们更应该掌握好水温的控制。本设计为一个单片机的饮水机的温度控制系统,此系统可以实时检测饮水的水温,并且可以通过液晶管显示饮水机的温度,可以通过键盘对饮水机的水进行加热,当低于设定的温度下限时进行加热,本设计是对温度进行实时监测与控制,设计的系统主要实现了以下功能:1.在液晶显示当前温度的大小,精度为四分之一度,并显示温度控制的上限值和下限值。2.单位转换,把显示温度的单位从摄氏温标与华氏温

4、标进行互换。3.温度控制,当温度超出上限值就关闭继电器,当温度低于下限值就启动继电器。4.温度控制的上限和下限的设置,通过矩阵键盘的输入修改上限值和下限值。5.蜂鸣器报警,当温度超出上限值蜂鸣器进行报警。 1.3 系统总体设计思想方案一:使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。方案二:使用温度传感器,结合单片机电路设计,采用一只DS18B20温度传感器,温度传感器中DS18B20因为体积小、抗干扰能力强和精度高等特点,更

5、适合要求,电路也不复杂,容易读取温度,进行转换。比较以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计容易实现,而且优越性更高,使用更方便。故实际设计中拟采用方案二。2.系统的硬件组成2.1系统的电路设计方框图本系统的电路总体设计框图如图2-1所示,它由三部分组成:控制部分主芯片采用单片机STC89C51;显示部分采用LCD1602实现温度显示;温度采集部分采用DS18B20温度传感器。继电器 单 片 机 DS18B20LCD显示蜂鸣器图2-1总体设计框图2.2控制部分一、主要功能特性单片机STC89C51,它是一个低功耗,高性能CMOS 8位单片机,片内2个16位定时器/计数器、8

6、KBROM/EPROM、256B RAM、6个中断源等,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的STC89C51可为许多嵌入式控制应用系统供给高性价比的解决方案。 二、STC89C51具有如下特点:(1)、兼容MCS51指令系统 (2)8k可反复擦写(大于1000次)Flash ROM; (3)32个双向I/O口; (4)256x8bit内部RAM; (5)2个16位可编程定时/计数器中断; (6)时钟频率0-24MHz; (7)2个串行中断,可编程

7、UART串行通道; (8)2个外部中断源,共8个中断源; (9)2个读写中断口线,3级加密位; (10)低功耗空闲和掉电模式,软件设置睡眠和唤醒功能; (11)有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求引脚功能及管脚电压。三、STC89C51为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL

8、2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,单片机电路用的是单片机最小系统,单片机的P3.7接DS18B20的2号引脚,P1口接矩阵键盘,P2.0控制加热器继电器,P2.7,P2.6,P2.5和P0接LCD显示。图2-2 STC89C51引脚图2.3 显示部分显示用1602液晶显示器,如图2-3所示。优点是显示质量高、数字式接口、体积小、重量轻、功耗低。液晶显示的原理是利

9、用液晶的物理特性,通过电压对其显示区域进行控制,使其根据输入信号显示相应的内容。图2-3 1602液晶显示器一、管脚说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,如图2-5所示,各引脚接口说明如表2-4所示。表2-4 引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极图2-5 1602管脚第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL

10、为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。二、指令说明及时序1602

11、液晶模块内部的控制器共有11条控制指令,如表2-6所示。表2-6 控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是

12、通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总

13、线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。2. 4 温度采集部分DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温。这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部

14、分组成。数字温度传感器DS18B20把采集到的温度通过数据引脚传到单片机的P1.0口,单片机接受温度并存储。一、DS18B20的性能特点如下:(1)适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数 据线供电 。(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯 。 (3) DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。 (4)DS18B20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内。 (5)温范围55125,在-10+85时精

15、度为0.5。 (6)可编程 的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。 (7)在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快 。 (8)测量结果直接输出数字温度信号,以一 线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。 (9)负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。二、DS18B20的内部结构DS18B20采用3脚PR-35封装,如图2-7所示。 DS18B20的内部结构,如图2-9所示。图2-7 DS18B2

16、0封装三、 DS18B20内部结构主要由四部分组成:(1) 64位光刻ROM的前8位是DS18B20的自身代码,接下来的48位为连续的数字代码,最后的8位是对前56位的CRC校验。64-位的光刻ROM又包括5个ROM的功能命令:读ROM,匹配ROM,跳跃ROM,查找ROM和报警查找。64位闪速ROM的结构如图2-8所示。8b检验CRC48b序列号8b工厂代码(10H)MSB LSB MSB LSB MSB LSB图2-8 ROM的结构 图2-9 DS18B20内部结构(2)温度报警触发器TH和TL,可通过软件写入用户报警上下限值。(3)高速暂存存储,可以设置DS18B20温度转换的精度。(4)

17、温度传感器。四、DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PRAM。高速暂存RAM的结构为8字节的存储器,结构如图2-9所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。它的内部存储器结构和字节定义如表2-10 ,表2-11所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式。表2-10 DS18B20内部存储器结构Byte0温度测量值L

18、SB(50H)Byte1温度测量值MSB(50H)E2PROMByte2TH高温寄存器-TH高温寄存器Byte3TL低温寄存器-TL 低温寄存器Byte4配位寄存器-配位寄存器Byte5预留(FFH)Byte6预留(0CH)Byte7预留(IOH)Byte8循环冗余码校验(CRC)DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,如图2-12所示。 表2-11 DS18B20字节定义TM R1R0 1 1 1 1 1由表2-12可见,分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7

19、、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位S0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2-13是一部分温度值对应的二进制温度数据。表2-12 DS18B20温度转换时间表R1R0

20、分辨率/位温度最大转向时间/ms00993.750110187.510113751112750表2-13 一部分温度对应值表温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 111

21、0FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H(4) CRC的产生 在64 b ROM的最高有效字节中存储有循环冗余校验码(CRC)。主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。3.DS18B20温度传感器的工作简介3.1

22、 温度传感器的历史及简介温度传感器,使用范围广,数量多,居各种传感器之首。温度传感器的发展大致经历了以下3个阶段:一、传统的分立式温度传感器(含敏感元件),主要是能够进行非电量和电量之间转换。传统的分立式温度传感器热电偶传感器。热电偶传感器是工业测量中应用最广泛的一种温度传感器,它与被测对象直接接触,不受中间介质的影响,具有较高的精度;测量范围广,可从-501600进行连续测量,特殊的热电偶如金铁镍铬,最低可测到-269,钨铼最高可达2800。二、模拟集成温度传感器/控制器。模拟集成温度传感器是采用硅半导体集成工艺制成的,因此又称硅传感器或单片集成温度传感器。模拟集成温度传感器是在20世纪80

23、年代问世的,它将温度传感器集成在一个芯片上、可完成温度测量及模拟信号输出等功能。模拟集成温度传感器的主要特点是功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温,不需要进行非线性校准,外围电路简单。三、智能温度传感器。目前,国际上新型温度传感器正从模拟式想数字式、集成化向智能化及网络化的方向发展。温度传感器按传感器与被测介质的接触方式可分为两大类:一类是接触式温度传感器,一类是非接触式温度传感器。接触式温度传感器的测温元件与被测对象要有良好的热接触,通过热传导及对流原理达到热平衡。这种测温方法精度比较高,并可测量物体内部的温度分布。但对于运动的

24、、热容量比较小的及对感温元件有腐蚀作用的对象,这种方法将会产生很大的误差。非接触测温的测温元件与被测对象互不接触。常用的是辐射热交换原理。此种测稳方法的主要特点是可测量运动状态的小目标及热容量小或变化迅速的对象,也可量温度场的温度分布,但受环境的影响比较大。3.2 DS18B20的工作原理3.2.1DS18B20工作时序根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤: 1. 每一次读写之前都必须要对DS18B20进行复位; 2. 复位成功后发送一条ROM指令; 3. 最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500

25、微秒,然后释放,DS18B20收到信号后等待1560微秒左右后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。其工作时序包括初始化时序、写时序和读时序,具体工作方法如图3-1,图3-2,图3-3所示。(1) 初始化时序图3-1 初始化时序 总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲。应答脉冲使主机知道,总线上有从机设备,且准备就绪。主机输出低电平,保持低电平时间至少480us,以产生复位脉冲。接着主机释放总线,4.7K上拉电阻将总线拉高,延时1560us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时480us。(2) 写时序图3-2 写时序写时序包括写

26、0时序和写1时序。所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时间,都是以总线拉低开始。写1时序,主机输出低电平,延时2us,然后释放总线,延时60us。写0时序,主机输出低电平,延时60us,然后释放总线,延时2us。(3) 读时序 图3-3 读时序总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。所有读时序至少需要60us,且在2次独立的读时序之间至少需要1us的恢复时间。每个读时序都由主机发起,至少拉低总线1us。主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总线状态。主机

27、输出低电平延时2us,然后主机转入输入模式延时12us,然后读取总线当前电平,然后延时50us。3.2.2ROM操作命令当主机收到DSl8B20 的响应信号后,便可以发出ROM 操作命令之一,这些命令如表3-4ROM操作命令。3.3DS18B20的测温原理每一片DSl8B20在其ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM 中。主机在进入操作程序前必须用读ROM(33H)命令将该DSl8B20的序列号读出。程序可以先跳过ROM,启动所有DSl8B20进行温度变换,之后通过匹配ROM,再逐一地读回每个DSl8B20的温度数据。DS18B20的测温原理如图3-6所示,图中低温度系数

28、晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器

29、1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3-1中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程直至温度寄存器值达到被测温度值. 表3-4 ROM操作命令指令约定代码功 能读ROM33H读DS18B20 ROM中的编码符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单线总线上与该编码相对应的DS18B20 使之作出响应,为下一步对该DS18B20的读写作准备搜索ROM0F0H用于确定挂接在同一总线上DS18B2

30、0的个数和识别64位ROM地址,为操作各器件作好准备跳过ROM0CCH忽略64位ROM地址,直接向DS18B20发温度变换命令,适 用于单片工作告警搜索命 令0ECH执行后,只有温度超过设定值上限或者下限的片子才做出响应温度变换44H启动DS18B20进行温度转换,转换时间最长为500MS,结果存入内部9字节RAM中读暂存器0BEH读内部RAM中9字节的内容写暂存器4EH发出向内部RAM的第3,4字节写上、下限温度数据命令,紧跟读命令之后,是传送两字节的数据复制暂存器48H将E2PRAM中第3,4字节内容复制到E2PRAM中重调E2PRAM0BBH将E2PRAM中内容恢复到RAM中的第3,4字

31、节读 供 电方 式0B4H读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1”另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。减法计数器斜坡累加器减到0减法计数器预 置低温度系数振 荡 器高温度系数振 荡 器计数比较器预 置温度寄存器减到0图3-5 测温原理内部装置3.4DS18B20的测温流程初始化DS18B20跳过ROM匹配温度变换延时1S跳过ROM匹配读暂存器转换成显

32、示码LCD显示图3-6 DS18B20测温流程.4.系统整体设计4.1 系统硬件电路设计4.1.1显示电路 1602采用标准的16脚接口,如图4-1所示,其中:第1脚:VSS为电源地。第2脚:VDD接5V电源正极。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第714脚:D0D7为8位双向数据端。第15脚:背光正极

33、。第16脚:背光负极。图4-1 显示电路图4.1.2单片机电路单片机电路用的是单片机最小系统,单片机的P3.7接DS18B20的2号引脚,P1口接矩阵键盘,P2.0控制加热器继电器,P2.7,P2.6,P2.5和P0接LCD显示。图4-2 单片机电路引脚图4.1.3 DS18B20温度传感器电路 DS18B20的DQ接一个电阻再接单片机的P3.7口。VCC和GND接电源和公共地。图4-3 温度传感器电路引脚图4.1.4继电器电路 图4-4中P1.1引脚控制加热器继电器。给P1.1低电平,三极管导通,电磁铁触头放下来开始工作。 图4-4 继电器电路图4.1.5矩阵键盘图4-5为矩阵键盘电路图,图

34、中KEY接P1口ON/OFF789K456S123无无 0无图4-5 矩阵键盘电路图表4-6为矩阵键盘按键含义表4-6矩阵键盘含义表4.2系统软件设计4.2.1系统软件设计思路一个应用系统要完成各项功能,首先必须有较完善的硬件作保证。同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单,如数字滤波,信号处理等。因此充分利用其内部丰富的硬件资源和软件资源,采用与C51系列单片机相对应的51汇编语言和结构化程序设计方法进行软件编程。本装置的软件包括主程序、读出温

35、度子程序、复位应答子程序、写入子程序、继电器控制子程序以及有关DS18B20的程序(初始化子程序、写程序和读程序)。4.2.2程序一、主程序主要功能是程序开始运行时先进行初始化,然后进行模式的选择,接着读取DS18B20的数据,把当前温度显示在液晶上,接用bijiao()进行继电器和蜂鸣器的控制,最后回到模式选择一直重复。如图4-7所示。图4-7主程序流程图二、读出温度子程序每一片DSl8B20在其ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM 中。主机在进入操作程序前必须用读ROM(33H)命令将该DSl8B20的序列号读出。程序可以先跳过ROM,启动所有DSl8B20进行温度

36、变换,之后通过匹配ROM,再逐一地读回每个DSl8B20的温度数据。DS18B20的测温原理如图4-9所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振

37、产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。表4-8 ROM操作命令指令约定代码功 能读ROM33H读DS18B20 ROM中的编码符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单线总线上与该编码相对应的DS18B2

38、0 使之作出响应,为下一步对该DS18B20的读写作准备搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备跳过ROM0CCH忽略64位ROM地址,直接向DS18B20发温度变换命令,适用于单片工作。告警索命令0ECH执行后,只有温度超过设定值上限或者下限的片子才做出响应温度变换44H启动DS18B20进行温度转换,转换时间最长为500MS,结果存入内部9字节RAM中读暂存器0BEH读内部RAM中9字节的内容写暂存器4EH发出向内部RAM的第3,4字节写上、下限温度数据命令,紧跟读命令之后,是传送两字节的数据复制暂存器48H将E2PRAM中

39、第3,4字节内容复制到E2PRAM中重调E2PRAM0BBH将E2PRAM中内容恢复到RAM中的第3,4字节读 供 电方 式0B4H读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1” 另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。减法计数器斜坡累加器减到0减法计数器预 置低温度系数振 荡 器高温度系数振 荡 器计数比较器预 置温度寄存器减到0图4-9测温原理内部装置 D

40、S18B20的测温流程初始化DS18B20跳过ROM匹配温度变换延时1S跳过ROM匹配读暂存器转换成显示码LCD显示图4-10 DS18B20测温流程三、 lcd1602显示模块子程序 1602LCD的读写操作时序分别如图4-11和图4-12所示,根据这两个图归纳出的基本图。4-13为操作时续表。4-11 1602LCD的读操作时序图4-12 1602LCD的写操作时序表4-13 操作时序表读状态输入RS=L,R/W=H,E=H输出(D0D7)=状态字写指令输入RS=L,R/W=L,(D0D7)=指令码,E=高脉冲输出无读数据输入RS=H,RW=H,E=H输出(D0D7)=数据写数据输入RS=

41、H,R/W=L,(D0D7)=指令码,E=高脉冲输出无 1.当我们要写指令字,设置LCD1602的工作方式时:需要把RS置为低电平,RW置为低电平,然后将数据送到数据口D0D7,最后E引脚一个高脉冲将数据写入。 2. 当我们要写入数据字,在1602上实现显示时:需要把RS置为高电平,RW置为低电平,然后将数据送到数据口D0D7,最后E引脚一个高脉冲将数据写入。四、键盘函数 本设计是用4X4的矩阵键盘,采用列扫描法,过程如下:(1)判断键盘中有无键按下 将全部列线P1.4-P1.7置低态。只要有一行的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根列线相交叉的4个按键之中。若所有

42、行线均为高电平,则键盘中无键按下。 (2)判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将列线置为低电平,即在置某根列线为低电平时,其它线为高电平。在确定某根列线位置为低电平后,再逐行检测各行线的电平状态。若某列为低,则该行线与置为低电平的列线交叉处的按键就是闭合的按键。五、温度控制子程序 子程序开始时先判断变量on,如果on为0时,直接结束子程序。on为1是才对温度进行比较和控制。这样设计可以自由的控制温度控制的启动和关闭。图4-8温度控制子程序5.使用说明该系统只需要提供一个USB接口作为电源则可使用,以下是矩阵键盘分布表。按键分布表:on789k45

43、6s1230On键:控制温度控制的开关,在液晶的右上角有ON(OFF)显示,表示担前温度控制有没有打开,ON表示有启动,继电器会对温度做出反应,OFF表示没有启动,继电器不对温度做出反应。按On键可以进行ON/OFF的转换。K键:单位的转换键。按k键可以对显示温度的单位进行从摄氏温标与华氏温标进行互换。S键:进入设置模式,在设置模式中可以对温度控制的上限值和下限值进行设置,设置成功推出设置模式。09键:在设置模式中使用,用于输入数值。6.总结本设计使用的温度控制器结构简单、测温准确,具有一定的实际应用价值。完成在液晶显示当前温度的大小,精度为四分之一度,并显示温度控制的上限值和下限值。单位转换,把显示温度的单位从摄氏温标与华氏温标进行互换。温度控制,当温度超出上限值就关闭继电器,当温度低于下限值就启动继电器。温度控制的上限和下限的设置,通过矩阵键盘的输入修改上限值和下限值。蜂鸣器报警,当温度超出上限值蜂鸣器进行报警。此外,还能广泛地应用于其他一些工业生产领域,如建筑,仓储等行业。本温度控制系统可以应用于多种场合,像的温度、育婴房的温度、水温的控制。用户可灵活选择本设计的用途,有很强的实用价值。本设计还有许多需要改进的地方,例如温度显示不能显示负数,温度控制的精度不够高等等。在设计过程中由于时间仓促有

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服