基于单片机的智能水温控制系统设计与研究_第1页
基于单片机的智能水温控制系统设计与研究_第2页
基于单片机的智能水温控制系统设计与研究_第3页
基于单片机的智能水温控制系统设计与研究_第4页
基于单片机的智能水温控制系统设计与研究_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要本设计以 89c52 单片机为核心,采用了温度传感器 ds18b20,可控硅bt138-600e 及 pid 算法对温度进行控制。该水温控制系统是一个典型的检测、控制型应用系统,它要求系统完成从水温检测、信号处理、输入、运算到输出控制电炉加热功率以实现水温控制的全过程。本设计实现了水温的智能化控制以及提供完善的人机交互界面及多机通讯接口,系统由前向通道模块(即温度采样模块) 、后向控制模块、系统主模块及键盘显示摸块等四大模块组成。本系统的特点在于采用 pc 机及普通键盘实现了多机通信。该水温控制系统是一个典型的检测、控制型应用系统,它要求系统完成从水温检测、信号处理、输入、运算到输出控制

2、电炉加热功率以实现水温控制的全过程,并且,控制分为手动和声控两种途径。因此,应以单片微型计算机为核心组成一个专用计算机应用系统,以满足检测、控制应用类型的功能要求。另外,单片机的使用也为实现水温的智能化控制以及提供完善的人机交互界面及多机通讯接口提供了可能,而这些功能在常规数字逻辑道路中往往是难以实现或无法实现的。所以,本例采用以单片机为核心的直接数字控制系统。关键词:单片机;温度传感器;可控硅;pid 算法。 abstractthis design in which 89c52 single chip computer as the core, the temperature sensor

3、ds18b20 sampling chip, silicon controlled bt138-600eand pid algorithm for temperature control. the water temperature control system is a typical inspection, control type application system, it requires system completion from water temperature detection and signal processing, input, computing to outp

4、ut control of electric heating power in order to realize the whole process of temperature control. this design realize the intellectualized control temperature and providing perfect man-machine interface and multi-motor communication interface system to channel module by former (i.e. temperature sam

5、pling module), to control module, system after the main module and keyboard display touch block and so on four modules. this system features of pc and normal keyboard realized the multicomputer communication.the water temperature control system is a typical inspection, control type application syste

6、m, it requires system completion from water temperature detection and signal processing, input, computing to output control of electric heating power in order to realize the whole process of temperature control, and control divided into manual and sonic two kind of way. therefore, should be with sin

7、gle chip microcomputer as the core component a special computer application system, to satisfy the inspection, control application type of function requirement. in addition, for the realization of single chip water use of intelligent control and provide perfect man-machine interface and multi-motor

8、communication interface, which offers the potential function in conventional digital logic path is often difficult to implement or unable to realize. so, in this case using based on singlechip direct numerical control system.keywords: scm; temperature sensors; scr; pid algorithm in very body microph

9、one 目 录第一章 绪 论.11.1 系统概述 .11.2 本章小结 .2第二章 系统方案设计.32.1 总体方案论证.32.2 模块方案论证.32.2.1 控制方法论证.42.2.2 系统组成论证.52.2.3 单片机系统选择.52.2.4 温度控制方案论证.52.2.5 lcd1602 显示电路论证 .62.3 本章小结 .6第三章 总体设计.73.1 总体设计系统图.73.2 pid 控制的原理和特点 .73.3 ds18b20 温度传感器 .83.4 lcm1602 液晶 .133.5 at89c52 单片机 .173.6 本章小结 .20第四章 硬件电路设计与计算.214.1 主机

10、控制部分.214.2 系统电源电路.214.3 温度采样电路.214.4 温度控制电路.224.5 遥控与数字显示部分.224.6 系统原理图 .234.7 系统 pcb 图 .244.8 实物图 .244.9 本章小结 .25第五章 软件设计.265.1 键盘显示程序流程:.265.2 主程序流程图:.275.3 本章小结 .28第六章 测试方法与测试结果.296.1 系统测试仪器:.296.2 测试方法:.296.3 测试结果.296.4 本章小结 .30第七章 设计总结.31参考文献.32致 谢.33第一章 绪 论1.1 系统概述单片微型计算机是随着超大规模集成电路技术的发展而诞生的,由

11、于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。本文主要介绍单片机在温度控制中的应用。 在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用 mcs-51 单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,

12、从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。 在人类的生活环境中,温度扮演着极其重要的角色。温度是工业生产中常见的工艺参数之一,任何物理变化和化学反应过程都与温度密切相关,因此温度控制是生产自动化的重要任务。对于不同生产情况和工艺要求下的温度控制,所采用的加热方式,燃料,控制方案也有所不同。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自 18 世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎 80%的工业部门都不得不考虑着温度的因素。该水温控制系统是一个典型的检

13、测、控制型应用系统,它要求系统完成从水温检测、信号处理、输入、运算到输出控制电炉加热功率以实现水温控制的全过程,并且,控制分为手动和声控两种途径。因此,应以单片微型计算机为核心组成一个专用计算机应用系统,以满足检测、控制应用类型的功能要求。另外,单片机的使用也为实现水温的智能化控制以及提供完善的人机交互界面及多机通讯接口提供了可能,而这些功能在常规数字逻辑道路中往往是难以实现或无法实现的。所以,本例采用以单片机为核心的直接数字控制系统。本设计的任务与要求为一升水由 1kw 的电炉加热,要求水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。主要性能指标a

14、.控制精度:温度控制的静态误差3。b. 用十进制数码显示实际水温。c.温度设定范围:00-90,最小区分度为 1。d. 能打印实测水温值。扩展功能a. 具有通信能力,可接受其他数据设备发来的命令,或将结果传送到其他数据设备。b. 采用适当的控制方法实现当设定温度与环境温度突变时,减小系统的调节时间和超调量。c. 温度控制的静态误差1。1.2 本章小结本章主要介绍了系统的工作模块,工作方式,基本的性能要求和需要的一些主要器件,通过本章的介绍,大概可以对系统有个初步模型。第二章 系统方案设计2.1 总体方案论证(1) 、方案一:此方案是采用传统的模拟控制方法(方案框图如图 2-1-1) ,选用模拟

15、电路,用电位器设定给定值,反馈的温度值与给定的温度值比较后,决定加热或者不加热。器特点是电路简单,易于实现,但是系统所得结果的精度不高并且调节动作频繁,系统静差大,不稳定。系统受环境的影响大,不能实现复杂的控制算法,而且不易实现对系统的控制及对温度的显示,人机交换性能差。温度预置信号放大单片机lcd显示控制开关图 2-1-2 模拟控制框图(2)方案二:采用单片机 89c52 为核心。采用了温度传感器 ds18b20 采集温度变化信号,数字采样芯片 ds18b20 将数字信号并通过单片机处理后去控制温度,使其达到稳定。使用单片机具有编程灵活,控制简单的优点,使系统能简单的实现温度的控制及显示,并

16、且通过软件编程能实现各种控制算法使系统还具有控制精度高的特点。该水温控制系统是一个典型的检测、控制型应用系统,它要求系统完成从水温检测、信号处理、输入、运算到输出控制电炉加热功率以实现水温控制的全过程。以单片微型计算机为核心组成一个专用计算机应用系统,以满足检测、控制应用类型的功能要求。另外,单片机的使用也为实现水温的智能化控制以及提供完善的人机交互界面及多机通讯接口提供了可能,而这些功能在常规数字逻辑道路中往往是难以实现或无法实现的。所以,本例采用以单片机为核心的直接数字控制系统。比较两种方案,方案二明显的改善了方案一的不足及缺点,并具有控制简单、控制温度精度高的特点。因此本设计电路采用方案

17、二。2.2 模块方案论证本电路以单片机为基础核心,系统由前向通道模块、后向控制模块、系统主模块及键盘显示摸块等四大模块组成。现将各部分主要元件及电路做以下的论证:数据采集2.2.1 控制方法论证由于水温控制系统的控制对象具有热存储能力大,惯性也较大的特点。水在容器内的流动或热量传递都存在一定的阻力,因而可以归于具有纯滞后的一阶大惯性环节。一般来说,热过程大多具有较大的滞后,它对任何信号的响应都会推迟一段时间,使输出与输入之间产生相移。对于这样一些存在大的滞后特性的过渡过程控制,一般来说可以采用以下几种控制方案:(1)输出开关量控制对于惯性较大的过程可以简单地采用输出开关量控制的方法。这种方法通

18、过比较给定值与被控参数的偏差来控制输出的状态:开关或者通断,因此控制过程十分简单,也容易实现。但由于输出控制量只有两种状态,使被控参数在两个方向上变化的速率均为最大,因此容易硬气反馈回路产生振荡,对自动控制系统会产生十分不利的影响,甚至会因为输出开关的频繁动作而不能满足系统对控制精度的要求。因此,这种控制方案一般在大惯性系统对控制精度和动态特性要求不高的情况下采用。(2)比例控制(p 控制)比例控制的特点是控制器的输出与偏差成比例,输出量的大小与偏差之间有对应关系。当负荷变化时,抗干扰能力强,过渡时间短,但过程终了存在余差。因此它适用于控制通道滞后较小、负荷变化不大、允许被控量在一定范围内变化

19、的系统。使用时还应注意经过一段时间后需将累积误差消除。(3)比例积分控制(pi 控制)由于比例积分控制的特点是控制器的输出与偏差的积分成比例,积分的作用使得过渡过程结束时无余差,但系统的稳定性降低。虽然加大比例度可以使稳定性提高,但又使过渡时间加长。因此,pi 控制适用于滞后较小、负荷变化不大、被控量不允许有余差的控制系统,它是工程上使用最多、应用最广的一种控制方法。(4)比例积分加微分控制(pid 控制)比例积分加微分控制的特点是微分的作用使控制器的输出与偏差变化的速度成正比例,它对克服对象的容量滞后有显著的效果。在比例基础上加上微分作用,使稳定性提高,再加上积分作用,可以消除余差。因此,p

20、id 控制适用于负荷变化大、容量滞后较大、控制品质要求又很高的控制系统。 结合本例题设计任务与要求,由于水温系统的传递函数事先难以精确获得,因而很难判断哪一种控制方法能够满足系统对控制品质的要求。但从以上对控制方法的分析来看,pid 控制方法最适合本例采用。另一方面,由于可以采用单片机实现控制过程,无论采用上述哪一种控制方法都不会增加系统硬件成本,而只需对软件作相应改变即可实现不同的控制方案。因此本系统可以采用 pid 的控制方式,以最大限度地满足系统对诸如控制精度、调节时间和超调量等控制品质的要求。2.2.2 系统组成论证就控制器本身而言,控制电路可以采用急经典控制理论和常规模拟控制系统实现

21、水温的自动团结。但随着计算机与超大规模集成电路的迅速发展,以现代控制理论和计算机为基础,采用数字控制、显示、遥控技术,配额后执行器与控制阀构成的计算机控制系统,在过程控制过程中得到越来越广泛的应用。由于本例是一个典型的检测、控制型应用系统,它要求系统完成从水温检测、信号处理、输入、运算到输出控制电炉加热功率以实现水温控制的全过程。因此,应以单片微型计算机为核心组成一个专用计算机应用系统,以满足检测、控制应用类型的功能要求。另外,单片机的使用也为实现水温的智能化控制以及提供完善的人机交互界面及多机通讯接口提供了可能,而这些功能在常规数字逻辑道路中往往是难以实现或无法实现的。所以,本例采用以单片机

22、为核心的直接数字控制系统(ddc) 。2.2.3 单片机系统选择at89c52 单片机是最常用的单片机,是一种低损耗、高性能、cmos 八位微处理器。at89c52 与 mcs-51 系列的单片机在指令系统和引脚上完全兼容,而且能使系统具有许多 mcs-51 系列产品没有的功能,功能强、灵活性高而且价格低廉。at89c52 可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低了系统成本。只要程序长度小于 8k,四个 i/o 口全部提供给拥护。系统运行中需要存放的中间变量较少,可不必再扩充外部 ram。2.2.4 温度控制方案论证方案一:用热敏电阻:通过电阻的变化来获得电压的变化

23、,起价格虽然便宜但是精度不是很高。对于一个精度要求高的系统不宜采用方案二:用 ds18b20:遥控输入一个需要控制的温度,把数据传送到at89c52,at89c52 通过数据比较,pid 分析,t0,t1 产生 pwm 波来控制电炉是否继续加热还是停止加热。通过 ds18b20 温度传感器采集温度,由于ds18b20 是数字温度传感器,直接诶输出数字信号。经比较,我们选择方案二(1)传感器的选取目前市场上温度传感器繁多就此我们提出了以下两重选取方案:方案一:选用铂电阻温度传感器,此类温度传感器在各方面特性都比较优秀,但其成本较高。方案二:采用热敏电阻,选用此类元器件有价格便宜的优点,但由于热敏

24、电阻的非线性特性会影响系统的精度。方案三:选用美国达拉斯公司生产的数字温度传感器 ds18b20,此器件具有体积小、质量轻、线形度好、性能稳定等优点。其测量范围在-50-+150,满刻度范围误差为0.3,当电源电压在 510v 之间,稳定度为1时,误差只有0.01,其各方面特性都满足此系统的设计要求。比较以上三种方案,方案三具有明显的优点,因此此次设计选用方案三。(2)cpu 模块的选择 方案一:采用 8031 芯片,其内部没有程序存储器,需要进行外部扩展,这给电路增加了复杂度。方案二:本方案的 cpu 模块采用 2051 芯片,其内部有 2kb 单元的程序存储器,不需外部扩展程序存储器。但由

25、于系统用到较多的 i/o 口,因此此芯片资源不够用。方案三:采用 89c52 单片机,其内部有 8kb 单元的程序存储器。而且具有三个定时器,正好满足系统多机通信时所用。比较以上三种方案,综合考虑单片机的各部分资源,因此此次设计选用方案三。2.2.5 lcd1602 显示电路论证控制与显示电路是反映电路性能、外观的最直观部分,所以此部分电路设计的好坏直接影响到电路的好坏。方案一:采用可编程控制器 8279 与数码管及地址译码器 74ls138 组成,可编程/显示器件 8279 实现对按键的扫描、消除抖动、提供 led 的显示信号,并对 led 显示控制。用 8279 和键盘组成的人机控制平台,

26、能够方便的进行控制单片机的输出。方案二:采用单片机 at89c52 组成控制和扫描系统,这种方案既能很好的控制及显示又为主单片机大大的减少了程序的复杂性,而且具有体积小,价格便宜的特点。方案一虽然也能很好的实现电路的要求,但考虑到电路设计的成本和电路整体的性能,我们采用方案二。2.3 本章小结本章首先对系统的总体方案给予论证,抛弃传统温控办法,选择基于单片机的温控方案。接着对各个模块进行了论证,温控算法(pid) ,单片机选型,键盘人机交互等等进行了一系列的论证,更加进一步的细化了每一个功能模块,有助于系统的进一步开发设计工作。第三章 总体设计3.1 总体设计系统图本设计以 89c52 单片机

27、为核心,采用了温度传感器 ds18b20,可控硅bt138-600e 及 pid 算法对温度进行控制。该水温控制系统是一个典型的检测、控制型应用系统,它要求系统完成从水温检测、信号处理、输入、运算到输出控制电炉加热功率以实现水温控制的全过程。本设计实现了水温的智能化控制以及提供完善的人机交互界面及多机通讯接口,系统由前向通道模块(即温度采样模块) 、后向控制模块、系统主模块及 lcd1602 显示摸块等四大模块组成。本系统的特点在于采用 pc 机及遥控实现了多机通信。系统框图如图 3-1温 度传感器功率放大电路开关控制电路电炉lcd 显示电路遥控控制系统89c52 控制系统图 3-1 系统框图

28、3.2 pid 控制的原理和特点在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称 pid 控制,又称 pid 调节。pid 控制器问世至今已有近 70 年历史,它 以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的 其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用 pid 控制技术最为方便。即当我们不完全了解一个系统和被控对象,或 不能通过有效的测量手段来获得系统参数时,最适合用 pid 控制技术。pid 控制,实际中也有 pi 和 pd 控制。p

29、id 控制器就是根据系统的误差,利用比例、 积分、微分计算出控制量进行控制的。(1)比例(p)控制 比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(steady-state error) 。(2)积分(i)控制 在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的 或简称有差系统(system with steady-state error) 。为了消除稳态误差,在控制器中必须引入“积分项” 。积分项对误差取决于时间的积分,随着时间的增加,积分项会

30、增大。这样,即便误差很小,积 分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(pi)控制器,可以使系统在进入稳态后无稳 态误差。(3)微分(d)控制 在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。 自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用, 其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前” ,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入 “比例”项往往是不够的,

31、比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项” ,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能 够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(pd)控制器能改善系统在 调节过程中的动态特性。3.3 ds18b20 温度传感器ds18b20 是 dallas 公司的 1-wire(单总线)数字温度计芯片,温度测量范围从-55至+125。ds18b20 使用方便,单片机和 ds18b20 仅需连接一条数据线,在寄生供电方式下可以不接电源线,ds18b20 工作所需的电源可以从数据线获得。与传统的温

32、度测量方式不同,ds18b20 的温度转换结果可直接从数据线读出,在-10至+85测量精度可达 0.5。鉴于以上优点 ds18b20 自问世以来就广泛的应用于恒温控制系统,消费类产品,电子温度计以及数字环境监测系统。ds18b20 是 dallas 公司生产的 1-wire 数字温度传感器,具有 3 引脚to92 小体积封装形式,如图 3-3-1 所示,dq 为数字信号输入输出端;gnd 为电源地;vdd 为外接供电电源输入端,在寄生电源方式时 vdd 接地;温度测量范围为55125,可编程为 9 位12 位 a/d 转换精度,分辨率可达 0.0625,温度测量结果以 16 位数字量方式串行输

33、出;其工作电源既可在远端引入,也可从数据口线“窃取”;多个 ds18b20 可以并联到同一数据线上,cpu 只需一根端口线就能与多个 s18b20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使 ds18b20 非常适用于远距离多点温度检测系统。图 3-3-1 ds18b20 外观图图 3-3-2 ds18b20 内部结构图ds18b20内部结构如图3-3-2所示,主要由五部分组成:电源控制单元,若 vdd接地 ds18b20工作在寄生供电方式;1-wire 接口单元,包括1-wire 接口电路和64位序列号,这64位序列号是生产的时候光刻在 ds18b20的 rom中,

34、并且唯一不重复,在有多个 ds18b20共用同一条数据线的系统中 cpu 就是通过这个64位的序列号来选择需要访问的芯片;暂存器单元,几乎ds18b20所有的操作都和暂存器有关,包括测量到的温度值,用于报警的温度上限、下限以及温度测量的精度等,后面会对暂存器做详细的说明;eeprom 单元,包括温度转换精度配置字、报警温度上限和报警温度下限;温度传感器单元,温度测量完成后会把结果存到暂存器。如图 3-3-3 所示,ds18b20 存储空间由 eeprom 和暂存器两部分构成。eeprom 大小为 3 个字节,分别存放报警温度上限、报警温度下限以及配置字这 3 个参数。在不需要温度超限报警的应用

35、中,eeprom 的报警温度上限、下限这两个字节可以根据需要自定义使用。图 3-3-3 ds18b20 暂存器结构暂存器的 byte0 和 byte1 两字节用于存放温度测量结果,byte0 存放低 8位,byte1 存放高 8 位,上电后缺省值为 0 x0550(85) ,这 2 个字节只能进行读操作。暂存器的 byte2、byte3、byte4 与 eeprom 的三个字节一一对应,每次上电后 ds18b20 会自动从 eeprom 中读出这 3 个参数,并写入暂存器的 byte2、byte3、byte4,因此没必要每次上电后都对 ds18b20 进行配置操作。byte5、byte6、by

36、te7 未用。byte8 作为 crc 校验寄存器,可以用于查验总线读写正确与否。ds18b20 的命令序列及操作时序1.命令序列典型的单总线命令序列如下:第一步:初始化;第二步:rom 命令;第三步:功能命令。每次访问单总线器件,必须严格遵守这个命令序列,如果出现序列混乱,则单总线器件不会响应主机。但是,这个准则对于搜索 rom 命令和报警搜索命令列外,在执行两者中任何一条命令之后,主机不能执行其后的功能命令,必须返回至第一步。(1)初始化基于单总线上的所有传输过程都是以初始化开始的,初始化过程中由主机发出的复位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道,总线上有从机设备,且准备就绪。

37、复位和应答脉冲详见单总线时序部分。(2)rom 命令rom 命令与各个从机设备的唯一 64 位 rom 代码相关,在多从机系统中可指定操作某个从机设备,可以检测和识别单总线上从机设备的数量和类型。在有多个从机设备的系统中 64 位 rom 代码非常重要。搜索 rom0xf0该命令可以找出总线上所有从机设备,获得所有从设备的 64 位 rom 代码。单总线的搜索命令时序非常复杂,限于篇幅读者可以查阅相关资料。读 rom0x33如果总线上只有一个从机设备,主机可以通过指令读出从机的 64 位 rom代码,而无须执行搜索 rom 命令;如果在多从机系统中使用该指令,总线上会出现数据冲突。匹配 rom

38、0x55匹配 rom 命令跟随 64 位 rom 代码,从而允许主机访问多从机系统中某个指定的从机设备。仅当从机完全匹配 64 位 rom 代码时,才会响应主机随后发出的功能命令;其它设备将处于等待复位脉冲状态。忽略 rom0xcc主机能够使用该指令同时访问总线上所有从机设备,无须发出任何 rom 代码信息。例如总线挂机多个 ds18b20 时,该指令后跟随温度转换命令就可以让所有的 ds18b20 开始转换温度,这样大大节省了主机时间,需要注意该指令后如果跟随其他功能命令,总线上会发生数据冲突。如果总线上只有一个从设备时,该指令使用不受限制。报警搜索0xec仅有少数 1-wire 支持该指令

39、,报警搜索命令类似搜索 rom 命令,只有设置了报警标志的从器件才会响应该报警搜索命令。(3)功能命令主机发出 rom 指令以访问某个指定 ds18b20,接着就可以发送 ds18b20 支持的某功能命令。这些命令允许主机写入或读出 ds18b20 暂存器、启动温度转换以及判断从机的供电方式,ds18b20 的功能命令如下。转换温度0x44发送完 rom 命令后,ds18b20 接收到主机发出的该命令就开始温度转换,转换需要的时间和设置有关。读暂存器0xbe该指令用于读全部暂存器内容,包括 crc 字节,该命令发送完成后,ds18b20 将传输包含温度转换结果的 9 个字节到主机。写暂存器0x

40、4e主机写入该命令后,紧接着写入温度上限、温度下限和配置字这 3 个字节给 ds18b20。复制暂存器0x48该命令将 ds18b20 暂存器中的温度上限、温度下限和配置字复制到eeprom 中。回读 eeprom0xb8将温度上限、温度下限和配置字从 eeprom 读出至暂存器中,通常上电后执行该命令。2.读写时序(1)初始化时序主机通过拉低 1-wire 总线至少 480us,以产生复位脉冲。接着,主机释放总线,等待从机返回应答脉冲。当总线被释放后,上拉电阻会把 1-wire 总线拉高。从机检测到总线的上升沿后,延时 15-60us,接着通过拉低总线 60-240us,以产生应答脉冲。主机

41、检测到总线拉低,初始化完成。图 3-3-4 初始化时序(2)读/写时隙写时隙1-wire 总线的写时隙至少需要 60us,两次独立的写时隙之间至少需要1us 的恢复时间。写 1 时主机通过拉低总线开始一个写时隙,总线拉低后主机必须在 15us 内释放总线,由上拉电阻将总线拉至高电平;写 0 时主机拉低总线,并保持 60us。从机在写时隙开始后 15-60us 期间采样总线电平状态。采样为高电平则 1 被写入器件;如果为低电平则 0 被写入器件。读时隙1-wire 器件仅在主机发出读时隙时才向主机传输数据,所以在主机发出读数据命令后必须马上产生读时隙。所有的读时隙至少需要 60us,且两次独立的

42、读时隙之间至少需要 1us 的恢复时间。主机拉低总线至少 1us 后释放总线,读时隙开始。从机在检测到读时隙开始后才向总线发送 0 和 1,若发送 1,从机置总线为高电平,保持 15us;若发送 0,则拉低总线,保持 15us。主机在读时隙开始后应在 15us 内采样总线状态。图 3-3-5 ds18b20 读写时序3.4 lcm1602 液晶(1)lcm1602 外观及功能lcm1602 是最常见的点阵字符型液晶显示模块,由液晶板、控制器hd44780、驱动器 hd44100 及若干电阻电容组成。其液晶板上分 2 行,每行排列着 16 个 57 的点阵,专门用于显示字母、数字以及符号。它可与

43、 8 位或4 位微处理器连接;内建 cgrom 可提供 160 种工业标准字符,包括全部大小写字母、阿拉伯数字、日文假名以及 32 个特殊字符或符号的显示;内建 cgram可根据用户需要,由用户自行设计定义 8 个字符或符号;+5v 单电源供电,无需外接复位电路。图 3-4-1 lcm1602图 3-4-1 是带背光的 lcm1602 的实物图,左起为 1 脚,各引脚功能如下:1 脚:vss 为模块电源地,接地;2 脚:vdd 为模块电源正,接+5v;3 脚:vee 为对比度调节引脚,接电源正时对比度最差,接电源地时对比度最高,通常接一个 10k 电位器到地调节显示对比度;4 脚:rs 为寄存

44、器选择位,输入脚, “1”数据寄存器, “0”命令寄存器;5 脚:rw 为读写操作选择位,输入脚, “1”读操作, “0”写操作;6 脚:e 为使能信号,输入脚,读操作时上升沿有效,写操作时下降沿有效;714 脚:db0db7 双向数据线,db7 还做忙闲标志位使用,4 线工作方式下仅 db4db7 有效;15 脚:bl1 背光电源正,接+5v;16 脚:bl2 背光电源地,接地。lcm1602 读写操作要正确操作 lcm1602,就必须满足它的时序要求,内嵌 hd44780 控制器的液晶显示模块的读、写操作时序如图 3-4-2 所示,图中各时间值见表 12-1。图 3-4-2 读、写操作时序

45、图表 3- 4序号描述最小值最大值单位t1地址建立时间140nst2使能信号上升/下降时间25nst3使能信号周期1000nst4有效数据延迟时间320nst5使能信号高电平宽度450nst6数据保持时间10ns从时序图中可以获得丰富的信息,依据这些信息可以画出读、写操作的流程图从而编写程序代码。在读图的过程中要注意以下几个关键要素:一是判断各个信号对于单片机而言是输出还是输入;二是读图的时候从左往右,遇见有信号发生变化就作为一段;三是要找到信号发生变化的原因或功能。图 3-4-2 底部标出了读写时序图中信号发生变化时的节点,下面以读时序为例归纳出读操作的流程:节点 1:rs、rw 变化,输出

46、信号,读操作开始;节点 2:e 变化,输出信号,读操作使能信号,通知 lcm1602 按要求输出;节点 3:db0-db7 变化,输入信号,节点 2 中 e 的上升沿引起的变化,两节点时间间隔为 t4,此时单片机可以从 db0-db7 读回“有效数据” ;节点 4:e 变化,输出信号,单片机读完“有效数据”后通知 lcm1602“有效数据”已读取;节点 5:对于读操作该节点有可能不存在;节点 6:db0-db7 变化,输入信号,节点 4 中 e 的下降沿引起的变化;节点 7:下一次读写操作。读操作流程图如图 12-8 所示,写操作流程就不再赘述。流程图(2)lcm1602 指令表 12-2 所

47、示为 lcm1602 的指令集,其实该指令集适合于所有内含hd44780 的液晶显示模块。表 12- 1 lcm1602 指令集控制信号指令代码rsrwd7d6d5d4d3d2d1d0功能0000000001清屏000000001*软复位00000001i/ds内部方式设置0000001dcb显示开关控制000001s/cr/l*位移控制00001dlnf*系统方式设置0001acgcgram 地址设置001add显示地址设置01bfac忙状态检查10写数据mcu-lcd11读数据lcd-mcu在介绍 lcm1602 的指令之前需要先了解以下几个概念:cgrom、cgram、ddram 和 a

48、c。cgrom 是只读字符发生器,存放 192 个字符的点阵数据,每个字符都有一个唯一的代码,在 0 x200 x7f 区间代码值就是该字符的 ascii 码,图 12-9 为 lcm1602 的内置字符集。cgram 是自定义字符发生器,可用于存放用户自定义字符的点阵,只有 64 个字节最多能定义 8 个字符,这8 个字符也有对应的代码,0 x00 对应第一个自定义字符,0 x07 对应最后一个自定义字符,0 x080 x0f 与 0 x000 x07 指向相同的字符。ddram 是显示存储器,有 80 个字节,内部存放的是显示内容的代码。ac 是 ddram 和 cgram 共用的地址指针

49、计数器,另外 ac 也作为光标和闪烁位置指针。图图 12-912-9 lcm1602lcm1602 内置字符集内置字符集各指令功能介绍如下:清屏指令清屏指令使 ddram 的内容全部清除,光标回到左上角的原点,地址计数器 ac=0。软复位指令本指令使光标和光标所在的字符回到原点,但 ddram 单元的内容不变。设置输入输出模式指令其中 i/d 位是控制当数据写入 ddram(cgram)或从 ddram(cgram)读出数据时,ac 自动加 1 或自动减 1。i/d=1 时,自动加 1;i/d=0 时,自动减1。s 位控制显示内容左移或右移,当 s=1 且数据写入 ddram 时,显示将全部左

50、移(i/d=1)或右移(i/d=0) ,此时光标看上去不动,仅仅显示内容移动;但读出数据时不会动。当 s=0 时,显示不动,光标左移或右移。i/d=1,s=0 和 i/d=1,s=1 是比较常用的设置,前者类似打字机后者类似计算器;显示开关控制指令其中 d 位是显示控制位。d=1 时,开显示;d=0 时,关显示,仅仅是不输出 ddram 的内容不变。c 位是光标控制位。c=1 时,开光标显示;c=0 时,关光标显示。b 位是闪烁控制位。b=1 时,光标和光标指向的字符闪烁;b=0 时,光标不闪烁。位移控制指令该指令控制光标或者显示内容在没有对 ddram 进行读、写操作时被左移或右移。s/c=

51、0、r/l=0 时,光标左移;s/c=0、r/l=1 时,光标右移;s/c=1、r/l=0 时,画面左移;s/c=1、r/l=1 时,画面右移;系统工作方式设置指令dl 位是总线宽度选择位。dl=1 时,8 位数据总线,使用 db0-db7;dl=0时,4 位数据总线,使用 db4-db7,此方式下数据操作需要 2 次。n 位用于设置显示行数。n=1 时,2 行显示;n=0 时,1 行显示。f=0 时,57 点阵;f=1时,510 点阵。cgram 地址设置指令设置 cgram 地址指针,地址码范围 063。ddram 地址指针设置设置 ddram 地址指针,地址码范围 0127。忙状态检查指

52、令bf 位是忙标志位。bf=1 时,忙状态,此时 lcm1602 不能接收命令或数据;bf=0 时,空闲状态,可接收命令或数据。写数据指令向 gcram 或 ddram 写数据,写入地址由 ac 控制。读数据指令从 gcram 或 ddram 读数据,读出地址由 ac 控制。3.5 at89c52 单片机at89c52 是美国 atmel 公司生产的低电压、高性能 cmos 8 位单片机,片内含 8kb 的可反复檫写的程序存储器和 12b 的随机存取数据存储器(ram) ,器件采用 atmel 公司的高密度、非易失性存储技术生产,兼容标准 mcs-51 指令系统,片内配置通用 8 位中央处理器

53、(cpu)和 flash 存储单元,功能强大的 at89c52 单片机可灵活应用于各种控制领域。at89c52 单片机属于 at89c51单片机的增强型,与 intel 公司的 80c52 在引脚排列、硬件组成、工作特点和指令系统等方面兼容。(1)其主要工作特性是:片内程序存储器内含 8kb 的 flash 程序存储器,可擦写寿命为 1000 次;片内数据存储器内含 256 字节的 ram;具有 32 根可编程 i/o 口线;具有 3 个可编程定时器;中断系统是具有 8 个中断源、6 个中断矢量、2 个级优先权的中断结构;串行口是具有一个全双工的可编程串行通信口;具有一个数据指针 dptr;低

54、功耗工作模式有空闲模式和掉电模式;具有可编程的 3 级程序锁定位;at89c52 工作电源电压为 5(1+0.2)v,且典型值为 5v;at89c52 最高工作频率为 24mhz。单片机正常工作时,都需要有一个时钟电路和一个复位电路。本设计中选择了内部时钟方式和按键电平复位电路,来构成单片机的最小电路。如图 3.1所示。(2)功能特性描述 at89s52 是一种低功耗、高性能 cmos8 位微控制器,具有 8k 在系统可编程 flash 存储器。使用 atmel 公司高密度非易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。片上 flash 允许程序存储器在系统可编程,亦适于常规

55、编程器。 在单芯片上,拥有灵巧的 8 位 cpu 和在系统可编程 flash,使得at89s52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。at89s52 具有以下标准功能: 8k 字节 flash,256 字节 ram,32 位 i/o 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。at89c52 是一个低电压,高性能 cmos 8 位单片机,片内含 8k bytes 的可反复擦写的 flash 只读程序存储器和 256 bytes 的随机存取数据存储器(ram) ,器件采用 atmel 公司的

56、高密度、非易失性存储技术生产,兼容标准mcs-51 指令系统,片内置通用 8 位中央处理器和 flash 存储单元,功能强大的 at89c52 单片机可为您提供许多较复杂系统控制应用场合。at89c52 有 40 个引脚,32 个外部双向输入/输出(i/o)端口,同时内含2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,at89c52 可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和 flash 存储器结合在一起,特别是可反复擦写的 flash 存储器可有效地降低开发成本。概述:at89c52p 为 40 脚双列直插封装的 8 位通用微处理

57、器,采用工业标准的 c51 内核,在内部功能及管脚排布上与通用的 8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主 ic 内部寄存器、数据 ram 及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号 ir 的接收解码及与主板 cpu 通信等。主要管脚有:xtal1(19 脚)和xtal2(18 脚)为振荡器输入输出端口,外接 12mhz 晶振。rst/vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。vcc(40 脚)和 vss(20 脚)为供电端口,分别接+5v 电源的正负端。p0p3 为可编程通用 i/o 脚,其功能用途由软件定义,在本设计

58、中,p0 端口(3239 脚)被定义为 n1 功能控制端口,分别与 n1 的相应功能管脚相连接,13 脚定义为 ir 输入端,10 脚和 11 脚定义为 i2c 总线控制端口,分别连接 n1 的 sdas(18 脚)和scls(19 脚)端口,12 脚、27 脚及 28 脚定义为握手信号功能端口,连接主板 cpu 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。rst:复位输入。当振荡器工作时,rst 引脚出现两个机器周期以上高电平将使单片机复位。ale/prog: 当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。一般情况下,ale

59、 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ale 脉冲。对 flash 存储器编程期间,该引脚还用于输入编程脉冲(prog) 。如有必要,可通过对特殊功能寄存器(sfr)区中的 8eh 单元的 d0 位置位,可禁止 ale 操作。该位置位后,只有一条 movx 和 movc 指令才能将 ale 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ale 禁止位无效。psen:程序储存允许(psen)输出是外部程序存储器的读选通信号,当 at89c52 由外部程序存储器取指令(或数据)时,每个机

60、器周期两次 psen 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次psen 信号。ea/vpp:外部访问允许。欲使 cpu 仅访问外部程序存储器(地址为0000hffffh) ,ea 端必须保持低电平(接地) 。需注意的是:如果加密位lb1 被编程,复位时内部会锁存 ea 端状态。如 ea 端为高电平(接 vcc 端) ,cpu 则执行内部程序存储器中的指令。flash 存储器编程时,该引脚加上+12v 的编程允许电源 vpp,当然这必须是该器件是使用 12v 编程电压 vpp。at89c52 除了与 at89c51 所有的定时/计数器 0 和定时/计数器 1 外,还增加了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论