资源描述
目 录
摘 要 …………………………………………………………………………………………I
Abstract ……………………………………………………………………………………II
目 录 ……………………………………………………………………………………… 3
1 绪论 …………………………………………………………………………………………5
1.1 课题研究背景及意义 ……………………………………………………………………4
1.2 测温技术的发展及应用 …………………………………………………………………4
1.3 温控技术的发展现状 ………………………………………………………………………5
1.3.1 开关式温度控制 …………………………………………………………………………5
1.3 主要内容及难点 ……………………………………………………………………………7
2 系统总体方案与硬件设计 …………………………………………………………………9
2.1 系统的功能要求于性能指标 ……………………………………………………………9
2.2 系统的总体设计 …………………………………………………………………………9
2.3 温度检测电路的设计 ……………………………………………………………………10
2.3.1 温度传感器的选择………………………………………………………………………11
2.3.2 DS18B20简介 ……………………………………………………………………………12
2.4 单片机微处理器 …………………………………………………………………………17
2.4.1 单片机型号的选择 ……………………………………………………………………18
2.4.2单片机接口电路的设计 …………………………………………………………………19
2.5 显示电路的设计 …………………………………………………………………………19
2.6 继电器控制电路设计 ……………………………………………………………………20
3 系统软件的实现 ……………………………………………………………………………23
3.1 系统程序流程图 …………………………………………………………………………23
3.2 温度部分软件设计 ………………………………………………………………………23
3.3 继电器控制电路软件的设计 ……………………………………………………………30
3.4 程序的编译 ………………………………………………………………………………31
4 小结 …………………………………………………………………………………………32
5 致谢 …………………………………………………………………………………………33
6 参考文献 ……………………………………………………………………………………34
附录1 原理图 …………………………………………………………………………………35
附录2 PCB图 …………………………………………………………………………………36
1 绪 论
1.1 课题研究背景及意义
温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,物理,化学,生物等学科都离不开温度.在工业生产和实验研究中,在电力,化工,石油,冶金,机械制造,大型仓储室,实验室农场塑料大棚甚至人们的起居室里经常需要对环境温度进行检测,并根据实际的要求对环境温度进行控制.比如,发电厂锅炉的温度必须控制在一定范围之内;许多化学反应必须在一定的温度范围内才能进行;炼油过程中,原油必须在不同的温度和压力条件下进行分流才可以得到汽油,柴油,煤油等产品;没有合适的温度环境,许多电子设备不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障,汽车的底盘温度过高就会使设备出现问题,可见温度的测量和控制具有重要的理论意义和推广价值.
本文设计的简单实用的数字式温度测控系统,可用于各种温度控制领域,比如工控过程的温度控制,发电厂,热电厂,农业养殖,汽车工业等温度控制场合.系统能够随时测量环境温度并显示当前的温度值,温度测量范围在-55~+99℃之间,人们可以根据当前温度显示值对环境温度进行调整,达到智能控制的目的.因此,研究和开发经济,实用的温度测控系统具有显示意义,也有广泛的应用前景.
1.2 测温技术的发展与应用
温度是生活中最基本的的物理量,它表征的是物理的冷热程度.自然界任何物理,化学过程都紧密地与温度相联系,在很多生产过程中,温度的测量和控制都直接和安全生产,提高生产效率,保证产品质量,节约能源等重大技术指标相联系,因此,温度的测量在国民经济各和领域中都受到了相当的重视.
近年来,温度的测量在理论上已经发展成熟,但在实际测量中,如何保证快速实时采样,确保数据正确传输,并能对所测温度现场较精确的控制,根据具体应用场所选择合适的控制方法,仍然是目前测量中所需要解决的问题.
温度测量的方法分为两种,接触法和非接触法.在温度的测量中,以接触式温度发展最早,它是通过两物体接触,达到热平衡,使两个互为热平衡的物理温度相等.这种测量方法的优点是:简单,可靠,低廉,测量精度较高.一般能够测得真实温度.其缺点是:由于检测元件热惯性的影响,响应时间较长,对热容量较小的物体难以实现精确的测量,不适宜于对腐蚀性介质的测量,不能用于极高温的测量,难于测量运动物理的温度.目前,接触式温度仪正朝着小型化,标准化,传感-变送一体化方向发展.而非接触式测温通过辐射能量的检测实现温度测量.它的优点是:不破坏被测温场,可以测热容量小的物体,适宜于测运动物体的温度,还可以测量区域的温度分布,响应时间较快.缺点主要是:测量误差较大,仪表示值一般仅代表表观温度,结构复杂,价格昂贵.目前,非接触式测温正朝着微机化,传感和变送一体化等方向发展,并且测温范围由高温向低温发展.
1.3 温控技术的发展现状
温度控制分为两类:动态温度跟踪控制与恒值温度控制. 动态温度跟踪控制要求实现的控制目标是使被控对象的温度值按照预先定好的方式变化.在工厂生产中很多场合需要实现这一控制目标,如在发酵过程控制,化工生产中的化学反应温度控制,冶金工厂中燃烧炉中的温度控制等.恒值温度控制则相对来说控制目标较为简单,但控制精度要求较高,它的控制目标是要实现使被控对象的温度值恒定在某一点上,且要求其波动幅度即稳态误差不超过某一给定值.本课题就需要采用恒值温度控制,以下仅对恒值温度控制进行讨论.
目前,在国内外关于温度控制技术的研究成果较多,按控制理论的的不同大致可以分为以下几种:
1.3.1 开关式温度控制
开关式温度控制方法比较简单,具体方式就是通过硬件电路计算判别当前的温度值与设定的目标温度值之间的关系.若当前温度值比设定温度值高,则关断加热器,或者开动制冷装置;若当前温度值比设定温度值低,则开启加热器,或者关断制冷装置。这种比较控制方法比较简单,在没有计算机参与的情况下用很简单的模拟电路就能够实现. 但是开关式控温方法过于粗糙,不适合对控制精度要求较高的控温场合。
由青岛电机厂研制的自动恒温槽[8即为开关式控温的实例。其基本原理
为:利用晶体管E,C极之间的电阻REC具有负温度系数的特性,检测槽温的
变化,从而改变坛大小,控制放大管BG4的导通与截止,使其自动恒温,其
基本原理图如图1-1所示。
自动恒温槽工作原理
目前,国外在温度控制领域也取得了很多研究成果,但从整体来说,国内在
这一领域的发展水平与国外相差不大。在国外温度控制领域内采用的控制方法
也和国内在这一领域内采用的方法大同小异。因此,下面只对国外在该方面的情况予以简单介绍。
英国曼彻斯特大学舒斯特实验室研制的单片机巡回温度控制系统,可以为半导体激光器提供恒温服务,其温度控制稳定性据称能达到士2mK[19]。该系统采用集成电路式温度传感器及帕尔帖加热器/制冷器作为基本硬件设施,同时带有16位A/D转换器以保证温度测量精度。该系统能够使被控温度长期维持在某一设定值上。土耳其中东技术大学科学教育系研制的新型恒温器及温度控制器采用线性控制方法,控制范围从一173℃到100℃之间变化,其温度控制精度可达2.7'C.该系统采用Inte18052单片机作为温度控制器的控制中枢,具有良好的动态响应性能.
1.4 主要内容及难点
(1 )在广泛查阅温度检测控制理论和方法、测温技术和温度控制技术等资料的基础上,根据不同的控制要求及应用领域完成对各系统方案的总体设计,如水冷喷雾器采用以AT89S52为核心的单片机系统,来实现对温度的检测和控制;
(2 )研究比较各相关元器件的功能与特点,选择合适的元器件。
(3 )系统硬件设计。系统硬件设计主要包括:温度检测、单片机数据采
集处理、显示、继电器驱动等电路.
(4 )系统软件设计。本课题采用汇编语言进行编程及调试。主要研究各芯片与单片机的通信协议、时序及C51模块化通用程序等。
单片机系统开发的难点分为硬件和软件两个方面。其中硬件开发的难点在
于各种元器件的选择和使用,例如本系统中用到的芯片AT89S52单片机、
DSl8B20等,还有各种电阻、电容等的选择。其中软
件开发的难点是汇编语言与单片机的结合使用和各芯片通信协议的的使用、以及
串行通信。尤其是传感器的使用,在实际调试过程中,发现如果在向传感器写
指令的时候其写时序被打乱,则传感器会进入调试状态,将无法正常工作,而
这一点在传感器的使用资料中并没有说明。所以单片机系统的开发无论是硬件
还是软件,都要求做大量的实验工作。
2 系统总体方案与硬件设计
本章将以汽车水冷喷雾器为例,根据系统的功能、设计要求和性能指标,详细介绍系统的总体构成框图及各部分硬件电路的设计方案,并对主要芯片原理与应用加以介绍。控制核心芯片选用AT89S52单片机;测温电路选用了美DALLAS公司生产的单线总线数字式温度传感器DS18B20:数字显示电路采用9012驱动3位一体共阳极数码管实现;冷却器控制电路采用固态继电器实现开关控制;电源电路采用+5V的直流电压.
2.1系统的功能要求与性能指标
系统的功能,设计要求如下:
(1)实时显示所测温度功能。
(2)温控功能:通过继电器的吸合启动冷却装置,使温度保持一定的范围.
(3)另外系统还具有掉电保护功能,下次上电后可保持相关的设定参数。
(4)尽量采用标准化零件,一旦损坏,易于在市场上买到替代零部件。
主要技术指标如下:
温度范围:0-99℃.
控制精度 :0.5℃
数字显示:显示实测温度
电源: 直流5V
设计原则如下:
(1)在满足功能、性能和使用的前提下,尽量降低系统的成本和体积;
(2)研制时应充分利用当今的最新技术和研究成果,以确保系统在国内当今乃至今后一段时间的先进性和实用性;
(3)设计时应充分考虑系统的可靠性、可使用性、可维护性和可扩展性,为设备的方便使用、维护、延寿和功能扩展奠定基础;
(4)外形美观 、大方,元件摆放搭配搭配01合理。
2.2系统的总体设计
水冷喷雾系统以AT89S52单片机为核心,基于DS18B20对整个测试系统进行控制包括对温度的测量、数据的处理;将测量结果送LED显示输出和驱动相应的温度控制设备。实时温度由单线总线数字温度传感器DS18B20获取,经单片机处理后,一方面将温度通过显示驱动电路送入LED数码管显示出来,另一方面将温度值与被控值进行比较,其结果通过控制继电器来实现对冷却装置的开关控制。上电时,显示实时温度,系统一旦开始工作,单片机对实测温度和预定温度进行比较,当实测温度超过设定的温度值,冷却装置启动,当实测温度低于预定温度值,冷却装置停止,这期间单片机继续按以上条件进行判断,其恒温范围可以通过修改软件程序设定。电源部分采用220V交流电经变压、滤波、稳压后得到5V电压供系统使用。单片机由外接11.0592MHz标准晶振提供时钟电路。总体框图见图2-1所示。
冷却装置图
2.3 温度检测电路的设计
2.3.1温度传感器的选择
在众多的温度检测温敏元件中,温敏电阻虽然成本低,但后续电路复杂,且需要进行温度标定。电流型集成温度传感器AD590也因其输出为模拟信号,且输出信号较弱所以需要后续放大及A/D转换电路,如采用普通运放则精度难以保证,而测量放大器价格较高,这样会使系统成本升高。本课题选用美国DALLAS公司生产的单线总线DS18B20数字式温度传感器。DS18B20是DS1820的更新产品,它与传统的热敏电阻温度传感器不同,改变了传统温度测试方法,它能在现场采集温度数据,直接将温度物理量变换为数字信号并以总线方式传送到计算机进行数据处理,并且可根据实际要求通过简单的编程实现9-12位的数字式读数方式,因而使用DS 18B20可使系统结构更趋简单,可靠性更高,大大提高系统的抗干扰能力。DS 18B20体积小、经济、使用方便灵活,测试精度高,较高的性能价格比,有CRC校验,可靠性高,系统简明直观。适合于恶劣环境的现场温度测试,如:环境控制、设备或过程控制、测温类消费电子产品等。该部分的设计电路如图2-3所示:DS 18B20温度传感芯片能够直接读出被测温度,读出或写入数据以串行通信的方式通过P3.4传送给单片机进行数据处理处理
图2-3 温度检测电路
2.3.2 DS18B20简介
2.3.2.1功能特性
(1) 电压适用范围宽(3V-5V).
(2 ) 温度测量范围:-55- +125℃ ,其中一10℃-85℃内测量精度为
±0.5 ℃ .
(3)独特的单线接口方式,DS18B20在与微处理器连接时仅通过一条通信线即可实现微处理器与DS18B20的双向通讯.
(4)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,每一片DS18B20都有一个单一的64位序列号存储在片内ROM中,因此,可以使多个DS18B20共存于同一根数据传输线上,实现多点测温.CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线饿逻辑电路.
(5) DS18B20在使用中不需要任何外围元件.
(6) 用户还可以通过编程实现9~12位的温度读数,即具有可调的温度分辨率.
(7)用户可以自定义非易失性温度报警上下限值TH和TL.
由于DS18B20的分辨率可以通过编程进行选择,使得DS18B20比DS1820在分辨率提高的前提下,整体表现一致性好.
2.3.2.2 引脚功能说明
DS18B20的外形见下图,其采用TO-9封装形式,外表看起来像三极管.另外还有8脚SOIL封装形式,只用3,4和5脚,其余为空脚或不需要连接引脚.各引脚的功能描述如下:
GND:接地引脚.
DQ:数据输入/输出引脚(单总线接口,也可作寄生供电).
VDD:+5V电源引脚.
本系统中采用的是TO-9封装.
DB18B20的管脚排列
2.3.2.3 DS18B20的测温原理 见下图
DS18B20的温度测量原理框图
DS18B20通过对门开通期间内低温系数震荡器经历的时钟周期个数来测量温度,而门开通期由高温度系数震荡器决定.计数器1和温度寄存器均预置对应-55℃时的数值,作为基数. 低温系数震荡器的震荡频率不受温度变化的影响,产生固定频率的信号给计数器1,而高温度系数震荡器的震荡频率则受温度变化的影响,其脉冲信号输入计数器2.计数器1是个计数器,当它减至0时,温度寄存器加1,若计数器2没有计数至0,(即在门开通期内)则计数器1重新预置基数,又进行计数.温度寄存器不断累加,直至计数器2计数至0为止,这时温度寄存器的值即为测量的温度值.斜率累加器对震荡器温度特性的非线性进行补偿.
下图为BS18B20的内部结构示意图,DS18B20的64位ROM保存了设
备唯一的序列码,微控设备通过其识别和访问总线上的器件,这就允许多个温度传感器挂在同一根总线上,这样很容易用一个微处理器对很广范围内的多个温度传感器进行控制,大大减少了总线使用数量.高速闪存中分配2字节用于保存温度传感器的输出.该闪存还提供了对上限(TH)和下限(TL)超标报警寄存器,配置寄存器(各一字节)的访问.TH,TL和配置寄存器是非易失性的(EEPROM),系统掉电时它们会保存数据.
DS18B20与单片机的硬件连接有两种方法:一是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连;二是用寄生电源供电,此时UDD和GND接地,I/O接单片机I/O。无论是哪种供电方式,I/O口线都要接4.7kΩ左右的上拉电阻。图6给出了DS18B20与微处理器的典型连接。图(a)中,DS18B20采用寄生电源方式,其VDD和GNG端均接地,图(b)中,DS18B20采用外接电源方式,其VDD端用3~5.5V电源供电。本系统采用图( b)所示接线方式,即外接电源工作方式。
2.3.2.4 DS18B20的寄存器
DS18B20高速暂存器共9个存储单元,存储器组织如下表所示;
存储器组织图
字节0和字节1分别包含温度寄存器的LSB和MSB,这些字节是只读的。字节2和字节3分别是TH和TL的值.字节4存放配置寄存器数据.字节5,6和7保留作器件内部使用,不能被改写。当读时,这些字节返回全1值,字节8是只读的,含有字节0到7的CRC校验.
(1)配置寄存器:其组织结构如下表所示。测温分辨率可由用户通过配置寄存器的R0,R1从00,01,10,11分别表示9bit、10bit、11bit、12bit自由配置,对应的温度精度分别为0.5℃、0.25℃、0.125℃和0.0625℃,最大转换时间分别为93.75ms、187.5ms、375ms和750ms.这些位上电后默认值是RO=1和R1=2(12位分辨率)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
0
R1
R0
1
1
1
1
1
(2)温度寄存器:温度数据存储在温度存储器中,格式见下表,标志位表示温度的正负位,若为正温度则S=0,为负则S=1. 当选择12位分辨率时,温度寄存器的所有位都是有效的:
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
高8位
S
S
S
S
S
低8位
下表给出了分辨率为12位时的温度和数字之间的转换关系.
温度(℃)
数字输出(二进制)
数字输出(十六进制)
+85
0000 0101 0101 0000
0550H
+25.0625
0000 0001 1001 0001
0191H
+10.125
0000 0000 1010 0010
00A2H
+0.5
0000 0000 0000 1000
0008H
0
0000 0000 0000 0000
0000H
-0.5
1111 1111 1111 1000
FFF8H
-10.125
1111 1111 0101 1110
FF5EH
-55
1111 1100 1001 0000
FC90H
DS18B20 中的温度传感器可完成对温度的测量, 以12位转化为例:用16 位符号扩展的二进制补码读数形式提供, 以0.0625℃/LSB 形式表达, 其中S 为符号位。如果测得的温度大于0, 这5 位为0, 只要将测到的数值乘以0.0625 即可得到实际温度; 如果温度小于0, 这5 位为1, 测到的数值需要取反加1 再乘以0.0625 即可得到实际温度。例如+125℃的数字输出为07D0H, +25.0625℃的数字输出为0191H, - 25.0625℃的数字输出为FF6FH, - 55℃的数字输出为FC90H。
2.3.2.5 DS18B20温度传感器的读写
根据DS18B20 的通讯协议, 主机控制DS18B20 完成温度转换必须经过三个步骤: 每一次读写之前都要对DS18B20 进行复位, 复位成功后发送一条ROM指令, 最后发送RAM指令, 这样才能对DS18B20 进行预定的操作。复位要求主CPU将数据线下拉500 微秒, 然后释放, DS18B20 收到信号后等待16~60 微秒左右, 后发出60~240 微秒的存在低脉冲, 主CPU收到此信号表示复位成功。
DS18B21的复位时序图
DS18B20的读时序图
通过读写时序,控制器可以发出控制命令,对DS18B20进行读写操作.
2.3.2.6 DS18B20 温度传感器常用命令
(1)SKIP ROM[CCH] 控制器可以用这一命令访问总线上的所有设备而不需要送出ROM序列码信息.
(2)SEARCH ROM[F0H] 当系统开始上电时,控制器必须识别总线上所有从机的ROM序列码,以确定从机的数目和类型,控制器要执行SearchROM循环足够多次以识别所有的从属设备.如果只有一个从属设备在总线上,可以使用简单的ReadROM命令取代SearchROM.每一个SearchROM命令后必须返回到事物序列的步骤1(初始化)
(3)READ ROM[33H] 这一命令在总线上只有一个从属设备时才可以使用,它使得控制器可以不用SearchROM命令就可以读出从机的64位ROM序列码.当多于一个从属设备在总线上时,如果使用该命令,由于所有设备都企图响应该命令将产生数据冲突.
(4)CONVERT T[44H] 这一命令开始一次温度转换.变换结束后,数据保存在高速闪存的2字节温度寄存器中,DS18B20回到低功耗空闲状态.
(5)WRITE SCRATCHPAD[4EH] 这一命令使的控制器可以写3字节数据到DS18B20的闪存器中.第一字节写到闪存器的字节2,第二字节写到闪存器的字节3,第三字节写到闪存器的字节4。数据以最低有效位先发送.所有3字节必须在控制器发出复位或数据可能丢失之前写完.
(6)READ SCRATCHPAD[BEH] 这一命令使得控制器可以读闪存器的内容.数据传送开始于字节0的最低位,直到闪存器的第8位字节被读取.任何时候,如果只需部分闪存器数据,控制器可以使用复位结束读操作.
2.4 单片机微处理器
2.4.1 单片机型号的选择
随着计算机技术的发展,单片机因具有集成度高、体积小、速度快、价格
低等特点而在许多领域,如过程控制、数据采集、机电一体化、智能化仪表、家用电器以及网络技术等方面得到广泛应用,从而使这些领域的技术水平、自动化程度大大提高。正因为如此,国内外多家电子生产厂商把目光投向了单片机的生产当中,单片微机经历了4位、低档8位、高档8位、16位,现正在向32位和双CPU一方向目前国内市场上有不少类型的8位及16位单片机,由于各种原因,很多的单片机都未能在国内形成主流系列。而国内目前仍然是以Intel的MCS-48, MCS-51, MCS-96为主流系列。MCS-48 (8位机)系列的型号有8048, 8748, 8035, 8049, 8749等。MCS-51 (8位机)系列单片机的型号有8031, 8051, 8751, 8032, 8052, 80C31, 80C32, 80C521"-x61等。MCS-96系列单片机是16位机,有8094, 8095, 8096, 8097等的型号,其性能有T一定的提高。其中最为著名的当数INTEL公司生产的MCS-51系列单片机。
单片机型号的选择是根据控制系统的目标、功能、可靠性、性价比、精度和速度等来决定的。根据上述及本课题的实际情况,发酵温度系统是一个时滞性较大的系统,对控制时间精度要求不需要很高,所以单片机不需采用高速的输出、输入口,51系列单片机在时间精度方面可以满足要求。为了使用方便,系统要求可以进行在线改写,要求片内具有可擦除程序存储器,另外为了以后系统升级的需要,在设计中采用52系列单片机。
基于以上原因,本文在众多的单片机类型中选取ATmel公司的AT89系列单片机AT89S52和AT89C2051分别实现发面器、菜窖和保健垫温度控制。
89S52是ATmel公司的产品,与MCS-51兼容,芯片内部带有8K快速擦写程序存储器(可擦写次数可达1000次);运算速度快频率可达33兆赫兹;32位110口总线:三个16位的定时1计数器。
AT89S52单片机有如下标准特性[271:兼容MCS-51微控制器;8K字节FLASH存贮器支持在系统编程ISP 1000次擦写周期;256字节的数据存储器(RAM);工作电压4.0V到5.5V;全静态时钟0H z到33M Hz;三级程序加密;32个可编程UO 口;3个16位定时/计数器;8个中断源;全双工UART;完全的双工UART串行口;低功耗支持Idle和Power-down模式;
Power-down模式支持中断唤醒;看门狗定时器:双数据指针;上电复为标志。同时该芯片还具有PDIP, TQFP和PLCC等三种封装形式,以适应不同产品的需求。
芯片采用 51系列指令集并与51系列单片机引脚兼容且增加了不少功能,用户可以直接替换应用系统中的AT89C51/52,而软件硬件均不需作任何修改,这给用户更换元器件来许多方便。而且,从经济性的角度来看,AT89S52不但硬件结构简单,而且价格低、功能强、性价比高,符合我国工业设计制造的要求
2.4.2单片机接口电路的设计
单片机接口电路如图2-8所示。
温度信号由DS18B20检测由P2.7口输入到单片机中进行处理,显示部分通过单片机的P0口、P2.7、P2.5、P2.3口通过三极管9012驱动LED数码管完成,P1.0口用来驱动继电器控制冷却装置的启动和停止.
2.5 显示电路的设计
在单 片 机 系统设计中,LED显示方式由于亮度高、显示醒目、使用寿命
长、方便、价格低廉等优点在工业用仪器仪表中得到广泛应用[1301。而其驱动方式有多种形式,在采用并行显示方式时,显示电路的段码与位控码要占用单片
机的较多口线,尽管可采用8155等接口芯片进行扩展,但口线利用率仍较低,不能满足大型控制系统的要求采用串行显示方式则只需占用2至3根口线,节约单片机大量的1/O线,且使用效果很好。一般要求控制芯片使用简单、功能多样化、多级灰度调节、外围电路精简可靠、译码与功率驱动于一体。单片机通过LED驱动电路送显示值到数码管,通过译码选择某个数码管显示温度值的某一位,可以动态循环扫描、软件实现方式显示设定值,动态显示的扫描频率一般在50Hz以上,每个数码管能有lms的导通时间,则肉眼感觉不到闪烁.本课题采用三极管9012驱动三位一体的共阳数码管用作显示电路,具体电路如下
显示电路原理图
AT89S52对LED管的显示可分为静态和动态两种。本文采用动态显示,其优点为: (1)能降低显示器的功耗 (2)能大大减少显示器的外部接线,给安装调试带来方便。
2.6 控制负载电路的设计
实际应用上负载为继电器控制液压马达进行喷水冷却,处于设计需求方便,实际组装上采用继电器控制发光2极管模拟控制马达.电路路如下:
驱动电路原理图
2.6.1电磁继电器简介
电磁继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制系统中,它实际上是用较小的电流去控制较大电流的一种“自动开关”.通常,电磁式继电器一般由铁芯、线圈、衔铁、触电簧片等组成的.只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力的吸引作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触电与景触电(常开触电)吸合.当秒年千线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触电与原来的静触电(常闭触电)吸合。这样吸合、释放,从而达到了在电路中的导通、切断的目的.对于继电器的常开、常闭触电,可以这样来区分:继电器线圈未通电时处于断开状态的静触电,称为常开触电;处于接通状态的静触电称为常闭触电.
电磁式继电器又可分为直流与交流两种.凡是交流电磁继电器,其铁芯上有嵌有一个铜制的短路环,而直流继电器没有.
继电器技术参数
1、 额定工作电压
是指继电器正常工作时线圈所需要的电压,根据继电器的型号不同,可以是交流电压,也可以是直流电压.
2、 直流电阻
是指继电器中线圈的直流电阻,可以用万能表测量
3、 吸合电流
是指继电器能够产生吸合动作的最小电流.在正常使用时,给顶的电流必须略大于吸合电流,这样继电器才能稳定地工作.而对于线圈所加的工作电压,一般不要超过额定工作电压的1.5倍否则产生较大的电流而把线圈烧毁.
4、 释放电流
是室继电器产生释放动作的最大电流.当继电器吸合状态的电流减小到一定程度时,继电器就会恢复到未通电的释放状态.这时的电流远远小于吸合电流.
5、 触电切换电压和电流
是指继电器允许加载的电压和电流,它决定了继电器能控制电压和电流的大小,使用时不能超过此值,否则很容易损坏继电器的触电.
2.7 电源的选择
由于系统所选元器件都为低压元件,选择直流5V的电源供电.出于设计的经济性该电源用标准的5V手机充点器替代.
3 系统软件的实现
3.1 系统程序流程图
系统完成初始化工作之后,系统内部时钟、定时/计数器、中断系统开始
正常工作,调用显示子程序,显示系统的温度,同时与预定设置的温度进行比较,如果当前温度超过了预置温度,则启动冷却装置进行冷却,温度下降后,冷却装置停止,并等待下一次循环的到来.
3.2 温度部分软件设计
DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序。故主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。按照本文设计的电路图程序函数部分如下:数据脚P3.4,晶振12MHZ,
ORG 0000H;单片机内存分配申明!
TEMPER_L EQU 29H ;用于保存读出温度的低8位
TEMPER_H EQU 28H ;用于保存读出温度的高8位
FLAG1 EQU 38H ;是否检测到DS18B20标志位
TEMPHC EQU 32H ;温度转换寄存器低8位
TEMPLC EQU 33H ;温度转换寄存器高8位
A_BIT EQU 20H ;数码管个位数存放内存位置
B_BIT EQU 21H ;数码管十位数存放内存位置
C_BIT EQU 22H ;数码管小数位存放内存位置
T_ITTERGER EQU 26H ; FORMAT后的整数部分(integer)将两字节的温度整合1字节
T_DF EQU 27H ;FORMAT后的小数部分(decimal afraction),半字节的温度小数(存在低四位)
MAIN: LCALL GET_TEMPER ;调用读温度子程序
LCALL DISPLAY ;调用数码管显示子程序
LCALL RELEY-SPST
AJMP MAIN;这是DS18B20复位初始化子程序
INIT_1820: SETB P3.4
NOP
CLR P3.4;主机发出延时537微秒的复位低脉冲
MOV R1,#3
TSR1: MOV R0,#107
DJNZ R0,$
DJNZ R1,TSR1
SETB P3.4 ;然后拉高数据线
NOP
NOP
NOP
MOV R0,#25H
TSR2: JNB P3.4,TSR3 ;等待DS18B20回应
DJNZ R0,TSR2 ;延时
LJMP TSR4
TSR3: SETB FLAG1 ;置标志位,表示DS1820存在
LJMP TSR5
TSR4: CLR FLAG1 ;清标志位,表示DS1820不存在
LJMP TSR7
TSR5: MOV R0,#117
TSR6: DJNZ R0,TSR6 ;时序要求延时一段时间
TSR7: SETB P3.4
RET;读出转换后的温度值
GET_TEMPER: SETB P3.4
LCALL INIT_1820 ;先复位DS18B20
JB FLAG1,TSS2
RET ;判断DS1820是否存在?若DS18B20不存在则返回
TSS2: MOV A,#0CCH ;跳过ROM匹配
LCALL WRITE_1820
MOV A,#44H ;发出温度转换命令
LCALL WRITE_1820;这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒
LCALL DISPLAY
LCALL INIT_1820 ;准备读温度前先复位
MOV A,#0CCH ;跳过ROM匹配
LCALL WRITE_1820
MOV A,#0BEH ;发出读温度命令
LCALL WRITE_1820
LCALL READ_18200 ;将读出的温度数据保存到35H/36H
RET;写DS18B20的子程序(有具体的时序要求)
WRITE_1820: MOV R2,#8 ;一共8位数据
CLR C
WR1: CLR P3.4
MOV R3,#6
DJNZ R3,$
RRC A
MOV P3.4,C
MOV R3,#23
DJNZ R3,$
SETB P3.4
NOP
DJNZ R2,WR1
SETB P3.4
RET;读DS18B20的程序,从DS18B20中读出两个字节的温度数据
READ_18200: MOV R4,#2 ;将温度高位和低位从DS18B20中读出
MOV R1,#29H ;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)
RE00: MOV R2,#8 ;数据一共有8位
RE01: CLR C
SETB P3.4
NOP
NOP
CLR P3.4
NOP
NOP
NOP
SETB P3.4
MOV R3,#9
RE10: DJNZ R3,RE10
MOV C,P3.4
MOV R3,#23
RE20: DJNZ R3,RE20
RRC A
DJNZ R2,RE01
MOV @R1,A
DEC R1
DJNZ R4,RE00
RET;显示子程序
DISPLAY: MOV A,TEMPER_H ;
ANL A,#80H ;
JZ TEMPC1 ; 判断温度是否在零下?
MOV A,#0 ;若在零下,则显示为0
;
TEMPC1: MOV A,TEMPHC ; 计算小数位温度BCD值
展开阅读全文