自动温度控制系统的设计

合集下载

基于PID控制器的温度控制系统设计

基于PID控制器的温度控制系统设计

基于PID控制器的温度控制系统设计随着现代工业的快速发展,各种自动控制系统也得到了广泛应用。

其中,基于PID控制器的温度控制系统设计广泛应用于化工、制药、冶金等行业。

本文将从基本原理入手,详细论述基于PID控制器的温度控制系统设计。

一、PID控制器的原理PID控制器是一种经典的控制器,它采用比例、积分、微分三个控制量的组合,通过对控制量不同比例的组合,实现对被控对象的精确控制。

具体来说,PID控制器将被控对象的当前状态与期望的目标状态进行比较,计算出误差值,然后对误差值进行P、I、D三个控制量的加权计算,得到控制输出值,通过执行控制动作,使被控对象达到期望的目标状态。

其中,比例控制P以被控对象的当前状态与期望目标状态之间的误差值为输入,按比例放大输出控制信号,其控制效果主要针对误差量的大小。

积分控制I主要是针对误差值的积累程度,在误差值持续存在的情况下逐渐加大控制输出的幅度,使被控对象逐渐趋近期望的目标状态。

微分控制D主要是针对误差值的变化速度,当偏差值增加或减小的速率较快时,将适当增大或减小控制输出量的幅度,以加快误差的消除速度。

综上所述,PID控制器的优点在于能够快速消除误差,避免超调和欠调,稳定性强,且对于被控对象的性质要求不高。

因此,PID控制器成为了温度控制系统设计的主要控制器之一。

二、温度传感器的选取温度控制系统的核心是温度控制器,其中最关键的部分是温度传感器。

良好的温度传感器应具有温度响应时间短、测量范围广、精度高等特点。

其中最常用的温度传感器是热电偶和热电阻。

热电偶是一种基于热电效应的温度测量传感器,它是利用不同材料所产生的热电动势的差别测量温度。

热电偶具有灵敏度高、阻抗小、动态响应快等特点,但受到热电对、交流电干扰等因素影响较大,测量过程中容易出现漂移现象。

热电阻是一种利用金属或半导体的电阻随温度变化的特性测量温度的传感器。

热电阻具有较高的精度、长期稳定性好的特点,但响应迟缓,对于超出其量程的高温不可用。

智能温控系统设计

智能温控系统设计

智能温控系统设计1.传感器部分:智能温控系统需要使用温度传感器实时监测室内和室外的温度变化,可以选择具有高精度和高稳定性的传感器,如PTC传感器或热电偶传感器。

2.控制器部分:智能温控系统需要使用微处理器或嵌入式系统来处理传感器数据,并根据预设的算法来决定供暖或制冷设备的开关状态。

控制器应具备高性能和低功耗,以确保系统的稳定性和可靠性。

此外,还应该考虑控制器的各种接口,以便与其他设备进行通信。

3.用户界面部分:智能温控系统通常需要一个用户界面,以便用户可以方便地调节温度和设置温度范围。

用户界面可以使用触摸屏、按钮或遥控器等多种形式。

此外,还可以考虑将系统与智能手机等移动设备连接,以实现远程控制和监控。

4. 通信部分:智能温控系统可以通过有线或无线方式与其他设备通信,以获取室内和室外的温度数据、控制设备运行等。

有线通信可以选择以太网或RS485等标准接口,无线通信可以选择Wi-Fi、蓝牙、Zigbee等技术。

5.算法部分:智能温控系统的核心部分是算法,通过有效的温度控制算法,智能地调节供暖或制冷设备的运行。

常见的算法有PID控制算法和模糊控制算法等,可以根据实际需求选择适合的算法。

6.能源管理部分:智能温控系统应该考虑能源的合理利用,通过运用能源管理算法,调整供暖或制冷设备的工作时间和功率,以降低能源消耗。

例如,可以根据室内外温度差异的变化调整供暖设备的工作时间。

1.系统的稳定性和可靠性:智能温控系统需要具备良好的稳定性和可靠性,能够准确地根据温度变化和用户需求进行控制。

因此,在硬件选择和软件设计上应该注重品质和稳定性。

2.用户体验:智能温控系统应该简洁、易操作,用户可以按照自己的需求随时调整温度和设置时间表。

同时,用户界面的设计也要符合用户的使用习惯。

3.系统的扩展性:智能温控系统应该具备良好的扩展性,可以与其他智能家居设备集成,如智能灯光、智能窗帘等。

同时还应该考虑系统的升级和扩展,以适应未来的需求变化。

基于单片机的温度控制系统设计原理

基于单片机的温度控制系统设计原理

基于单片机的温度控制系统设计原理基于单片机的温度控制系统设计概述•温度控制系统是在现代生活中广泛应用的一种自动控制系统。

它通过测量环境温度并对温度进行调节,以维持设定的温度范围内的稳定状态。

本文将介绍基于单片机的温度控制系统的设计原理。

单片机简介•单片机是一种集成电路芯片,具有强大的计算能力和丰富的输入输出接口。

它可以作为温度控制系统的核心控制器,通过编程实现温度的测量和调节功能。

温度传感器•温度传感器是温度控制系统中重要的部件,用于测量环境温度。

常见的温度传感器有热敏电阻、热电偶和数字温度传感器等。

在设计中,需要选择适合的温度传感器,并通过单片机的模拟输入接口对其进行连接。

温度测量与显示•单片机可以通过模拟输入接口读取温度传感器的信号,并进行数字化处理。

通过数值转换算法,可以将传感器输出的模拟信号转换为温度数值,并在显示器上进行显示。

常见的温度显示方式有数码管和LCD等。

温度控制算法•温度控制系统通常采用PID(比例-积分-微分)控制算法。

这种算法通过比较实际温度和设定温度,计算出调节量,并通过输出接口控制执行机构,实现温度的调节。

在单片机程序中,需要编写PID控制算法,并根据具体系统进行参数调优。

执行机构•执行机构是温度控制系统中的关键部件,用于实际调节环境温度。

常见的执行机构有加热器和制冷器。

通过单片机的输出接口,可以控制执行机构的开关状态,从而实现温度的调节。

界面与交互•温度控制系统还可以配备界面与交互功能,用于设定目标温度、显示当前温度和执行机构状态等信息。

在单片机程序中,可以通过按键、液晶显示屏和蜂鸣器等外设实现界面与交互功能的设计。

总结•基于单片机的温度控制系统设计涉及到温度传感器、温度测量与显示、温度控制算法、执行机构以及界面与交互等多个方面。

通过合理的设计和编程实现,可以实现对环境温度的自动调节,提高生活和工作的舒适性和效率。

以上是对基于单片机的温度控制系统设计原理的简要介绍。

基于PLC的温度控制系统的设计

基于PLC的温度控制系统的设计

1 引言1.1 设计目的温度的测量和控制对人类平常生活、工业生产、气象预报、物资仓储等都起着极其重要的作用。

在许多场合,及时准确获得目的的温度、湿度信息是十分重要的。

近年来,温湿度测控领域发展迅速,并且随着数字技术的发展,温湿度的测控芯片也相应的登上历史的舞台,可以在工业、农业等各领域中广泛使用。

1.2 设计内容重要是运用PLC S7-200作为可编程控制器,系统采用PID控制算法,手动整定或自整定PID参数,实时计算控制量,控制加热装置,使加热炉温度为为一定值,并能实现手动启动和停止,运营指示灯监控实时控制系统的运营,实时显示当前温度值。

1.3 设计目的通过对温度控制的设计,提高在电子工程设计和实际操作方面的综合能力,初步培养在完毕工程项目中所应具有的基本素质和规定。

培养团队精神,科学的、实事求是的工作方法,提高查阅资料、语言表达和理论联系实际的技能。

2 系统总体方案设计2.1 系统硬件配置及组成原理2.1.1 PLC型号的选择本温度控制系统采用德国西门子S7-200 PLC。

S7-200 是一种小型的可编程序控制器,合用于各行各业,各种场合中的检测、监测及控制的自动化。

S7-200系列的强大功能使其无论在独立运营中,或相连成网络皆能实现复杂控制功能。

因此S7-200系列具有极高的性能/价格比。

2.1.2 PLC CPU的选择S7-200 系列的PLC有CPU221、CPU222、CPU224、CPU226等类型。

S7-200PLC 硬件系统的组成采用整体式加积木式,即主机中涉及定数量的I/O端口,同时还可以扩展各种功能模块。

S7-200PLC由基本单元(S7-200 CPU模块)、扩展单元、个人计算机(PC)或编程器,STEP 7-Micro/WIN编程软件及通信电缆等组成。

表2.1 S7-200系列PLC中CPU22X的基本单元本设计采用的是CUP226。

它具有24输入/16输出共40个数字量I/O点。

温度控制系统的设计与实现

温度控制系统的设计与实现

温度控制系统的设计与实现汇报人:2023-12-26•引言•温度控制系统基础知识•温度控制系统设计目录•温度控制系统实现•温度控制系统应用与优化01引言目的和背景研究温度控制系统的设计和实现方法,以满足特定应用场景的需求。

随着工业自动化和智能制造的快速发展,温度控制系统的性能和稳定性对于产品质量、生产效率和能源消耗等方面具有重要影响。

03高效、节能的温度控制系统有助于降低生产成本、减少能源浪费,并提高企业的竞争力。

01温度是工业生产过程中最常见的参数之一,对产品的质量和性能具有关键作用。

02温度控制系统的稳定性、准确性和可靠性直接关系到生产过程的稳定性和产品质量。

温度控制系统的重要性02温度控制系统基础知识温度控制系统的性能指标包括控制精度、响应速度、稳定性和可靠性等,这些指标直接影响着系统的性能和效果。

温度控制原理是利用温度传感器检测当前温度,并将该信号传输到控制器。

控制器根据预设的温度值与实际温度值的差异,通过调节加热元件的功率来控制温度。

温度控制系统通常由温度传感器、控制器和加热元件组成,其中温度传感器负责检测温度,控制器负责控制加热元件的开关和功率,加热元件则是实现温度升高的设备。

温度控制原理温度传感器是温度控制系统中非常重要的组成部分,其工作原理是将温度信号转换为电信号或数字信号,以便控制器能够接收和处理。

常见的温度传感器有热敏电阻、热电偶、集成温度传感器等,它们具有不同的特点和适用范围。

选择合适的温度传感器对于温度控制系统的性能和稳定性至关重要。

温度传感器的工作原理加热元件的工作原理加热元件是温度控制系统中实现温度升高的设备,其工作原理是通过电流或电阻加热产生热量,从而升高环境温度。

常见的加热元件有电热丝、红外线灯等,它们具有不同的特点和适用范围。

选择合适的加热元件对于温度控制系统的性能和安全性至关重要。

控制算法是温度控制系统的核心部分,其作用是根据预设的温度值和实际温度值的差异,计算出加热元件的功率调节量,以实现温度的精确控制。

单片机温度控制系统设计及实现

单片机温度控制系统设计及实现

单片机温度控制系统设计及实现温度控制是很多自动化系统中的重要部分,可以应用于许多场景,如家用空调系统、工业加热系统等。

本文将介绍如何利用单片机设计和实现一个简单的温度控制系统。

一、系统设计1. 硬件设计首先,我们需要选择合适的硬件来搭建我们的温度控制系统。

一个基本的温度控制系统由以下几个组件组成:- 传感器:用于检测环境的温度。

常见的温度传感器有热敏电阻和温度传感器。

- 控制器:我们选择的是单片机,可以根据传感器的读数进行逻辑判断,并控制输出的信号。

- 执行器:用于根据控制器的指令执行具体的动作,例如开启或关闭空调。

2. 软件设计温度控制系统的软件部分主要包括,传感器读取、温度控制逻辑和执行器控制。

我们可以使用C语言来编写单片机的软件。

- 传感器读取:通过串口或者模拟输入端口来读取传感器的数据,可以利用类似的库函数或者自己编写读取传感器数据的函数。

- 温度控制逻辑:根据读取到的温度值,判断当前环境是否需要进行温度调节,并生成相应的控制信号。

- 执行器控制:将控制信号发送到执行器上,实现对温度的调节。

二、系统实施1. 硬件连接首先,将传感器连接到单片机的输入端口,这样单片机就可以读取传感器的数据。

然后,将执行器连接到单片机的输出端口,单片机可以通过控制输出端口的电平来控制执行器的开关。

2. 软件实现编写单片机的软件程序,根据前面设计的软件逻辑,实现温度的读取和控制。

首先,读取传感器的数据,可以定义一个函数来读取传感器的数据并返回温度值。

其次,根据读取到的温度值,编写逻辑判断代码,判断当前环境是否需要进行温度调节。

如果需要进行温度调节,可以根据温度的高低来控制执行器的开关。

最后,循环执行上述代码,实现实时的温度检测和控制。

三、系统测试和优化完成软硬件的实施之后,需要对温度控制系统进行测试和优化。

1. 测试通过模拟不同的温度情况,并观察控制器的输出是否能够正确地控制执行器的开关。

可以使用温度模拟器或者改变环境温度来进行测试。

智能温控系统的设计和实现

智能温控系统的设计和实现

智能温控系统的设计和实现随着科技的不断发展,智能温控系统已经成为了现代生活中不可或缺的一部分。

它能够为我们提供舒适的室内环境,同时也能够帮助我们节约能源。

在本篇文章中,我们将会讨论智能温控系统的设计和实现,并介绍一些相关的技术。

一、智能温控系统的概念智能温控系统是一种基于计算机技术的、能够自动控制室内温度的系统。

它通常由传感器、控制器、执行机构和交互界面等组成。

通过不断地监测室内温度和湿度,系统可以根据设定的温度范围来自动调节制冷或制热设备的运行,从而实现室内温度的自动控制。

智能温控系统除了能够提供舒适的室内环境外,还有以下几个优点:1. 节约能源: 智能温控系统能够根据室内温度自动调节制冷或制热设备的运行,从而避免了过度消耗能源。

2. 提高效率: 智能温控系统可以实现自动控制,减少了人工干预的需要,提高了工作效率。

3. 节省费用: 智能温控系统可以自动根据室内温度和湿度调节制冷或制热设备的运行,可以避免不必要的能源浪费,从而节省了费用。

二、智能温控系统的设计思路在设计智能温控系统时,需要考虑以下几个方面:1. 确定控制策略: 在确定控制策略时,需要考虑到室内和室外的温度变化,还需要考虑到时间因素。

同时,系统还需要根据不同的使用场合进行相应的调整。

2. 选择传感器和执行机构: 传感器是用来检测室内温度和湿度等变量的装置,而执行机构则是用来控制制冷或制热设备的装置。

在选择传感器和执行机构时,需要考虑到其精度、响应速度、稳定性以及价格等因素。

3. 确定交互界面: 交互界面是智能温控系统与用户之间进行交互的途径。

在确定交互界面时,需要考虑到操作简便性、直观性和友好性等因素。

三、智能温控系统的实现在实现智能温控系统时,需要进行以下几个步骤:1. 硬件设计: 首先,需要设计硬件电路,包括传感器电路、控制器电路和执行机构电路等。

这些电路需要根据不同的需求进行相应的调整。

2. 软件编程: 在设计好硬件电路后,需要进行软件编程。

plc温度控制系统设计

plc温度控制系统设计

plc温度控制系统设计一、引言随着现代工业的快速发展,温度控制系统在各个领域得到了广泛的应用。

可编程逻辑控制器(PLC)作为一种工业控制设备,具有较高的可靠性、稳定性和灵活性。

本文将介绍如何设计一套基于PLC的温度控制系统,以满足现代工业生产中对温度控制的需求。

二、PLC温度控制系统原理PLC温度控制系统主要通过传感器采集温度信号,将信号转换为电信号后,输入到PLC进行处理。

根据预设的温度控制策略,PLC输出相应的控制信号,驱动执行器(如加热器、制冷装置等)进行加热或降温,从而实现对温度的精确控制。

三、设计步骤与方法1.确定控制目标:明确温度控制系统的控制范围、精度要求、响应速度等指标。

2.选择合适的PLC型号:根据控制需求,选择具有足够输入/输出点、运算速度和存储容量的PLC。

3.设计硬件系统:包括传感器、执行器、通信模块等硬件设备的选型和连接。

4.设计软件系统:编写温度控制程序,包括输入数据处理、控制算法、输出控制等功能。

5.系统调试与优化:对系统进行调试,确保温度控制精度和稳定性,并根据实际运行情况进行优化。

四、系统硬件设计1.选择合适的传感器:根据控制范围和精度要求,选择合适的温度传感器,如热电偶、热敏电阻等。

2.选择合适的执行器:根据控制需求,选择合适的执行器,如伺服电机、电磁阀等。

3.通信模块:根据现场通信需求,选择合适的通信模块,如以太网、串口等。

五、系统软件设计1.编写程序:采用相应的编程语言(如梯形图、功能块图等)编写温度控制程序。

2.输入数据处理:对传感器采集的温度信号进行滤波、标定等处理,确保数据准确性。

3.控制算法:根据预设的控制策略,编写控制算法,如PID控制、模糊控制等。

4.输出控制:根据控制算法输出相应的控制信号,驱动执行器进行加热或降温。

六、系统调试与优化1.调试:对系统进行调试,确保各设备正常运行,控制算法有效。

2.优化:根据实际运行情况,对控制参数、控制策略等进行优化,提高系统性能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上海电力学院电子系统设计实验报告题目:自动温度控制系统的设计院系:电子与信息工程学院专业:电子科学与技术班级:2013142班学号:20132481姓名:当当当自动温度控制系统的设计1、任务要求以单片机为核心控制器件,通过温度传感器进行温度测量,设置温度的上下限。

当温度超出正常范围,则由指示灯和蜂鸣器报警提示。

当温度低于下限值时,要求通风电机停转,当温度高于上限值时,通风电机转动。

2、设计方案本设计是对温度进行实时监测与控制,设计的温度控制系统实现了基本的温度控制功能:设定需求的温度为30~60摄氏度,当温度低于设定温度下限30摄氏度时,指示灯和蜂鸣器报警提示并且通风电机停转,使温度上升。

当温度高于设定温度上限60摄氏度时,指示灯和蜂鸣器报警提示且通风电机转动,使温度下降。

当温度达到设定温度界限时,通风机停止工作。

为了实现以上功能首先完成了系统的整体设计,硬件以及软件的设计。

在硬件上采用了由DS18B20温度传感器采集温度,送入单片机与设定温度进行对比处理,再通过显示器进行显示使其很直观的了解当前的状态。

在软件设计上完成了系统的各个功能程序以及流程图包括系统程序主要包括主程序,读出温度子程序,复位应答子程序,写入子程序等,并且采用与C51系列单片机相对应的51汇编语言和结构化程序设计方法进行软件编程。

总体设计框图3.硬件电路设计 3.1最小系统按键设置单 片 机降热温度采集显示加热3.1.1 AT89C51的单片机采用STC89C51芯片作为硬件核心。

STC89C51内部具有8KB ROM 存储空间,512字节数据存储空间,带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,STC89C51可以通过串口下载。

引脚介绍①主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线②外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端③控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。

ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。

④可编程输入/输出引脚(32根)STC89C51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。

P0口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.73.1.2 复位电路当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作,按键手动复位有电平方式和脉冲方式两种。

其中电平复位是通过RST端经过电阻与电源VCC接通而实现的。

3.1.3振荡电路本次温度控制报警器设计所选用的晶体振荡器频率为12Mhz,所选用电容大小为22pF。

通过计算可得单片机的工作周期为:(1÷12M)×12=1us。

3.2 DS18B20传感器介绍3.2.1 DS18B20特点1)采用DALLAS公司独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;(2)在使用中不需要任何外围元件;(3)可用数据线供电,供电电压范围:+3.0V~+5.5V;(4)测温范围:-55~+125℃。

固有测温分辨率为0.5℃。

当在-10℃~+85℃范围内,可确保测量误差不超过0.5℃,在-55~+125℃范围内,测量误差也不超过2℃;(5)通过编程可实现9~12位的数字读数方式;(6)用户可自设定非易失性的报警上下限值;(7)支持多点的组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测温;(8)负压特性,即具有电源反接保护电路。

当电源电压的极性反接时,能保护DS18B20不会因发热而烧毁,但此时芯片无法正常工作;(9)DS18B20的转换速率比较高,进行9位的温度值转换只需93.75ms;(10)适配各种单片机或系统;(11)内含64位激光修正的只读存储ROM,扣除8位产品系列号和8位循环冗余校验码(CRC)之后,产品序号占48位。

出厂前产品序号存入其ROM中。

在构成大型温控系统时,允许在单线总线上挂接多片DS18B20。

3.2.2 温度采集电路传感器数据采集电路主要是DS18B20温度传感器与单片机的接口电路。

DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。

另一种是寄生电源供电方式考虑到实际应用中寄生电源供电方式适应能力差且易损坏,此处采用电源供电方式,I/O口接单片机的P2.7口。

3.2.3 DS18B20控制方法DS18B20有六条控制命令:温度转换44H 启动DS18B20进行温度转换读暂存器BEH 读暂存器9个字节内容写暂存器4EH 将数据写入暂存器的TH、TL字节复制暂存器48H 把暂存器的TH、TL字节写到E2RAM中重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式B4H 启动DS18B20发送电源供电方式的信号给主CPU3.3 蜂鸣器、发光二极管报警电路利用有源蜂鸣器实施报警输出,运用直流供电。

当所测温度超过或者低于预期所设计的温度时,数据口相应提高高电平,报警输出。

而另一端则直接和单片机的P2.7端口相连,报警的同时发光二极管亮。

3.4按键电路按键电路的一端接地,一端和AT89C51的P3.1、P3.2和P3.3相应端口相连。

三个按键的功能分别能进行加减和移位的功能,进行温度上下限的设置64 位 ROM 和 单 线 接 口存储器与控制逻辑高速缓存温度传感器 8位CRC 发生器 配置寄存器 高温触发器 低温触发器3.5显示模块液晶显示器件(LCD)独具的低压、微功耗特性使他在单片机系统中特得到了广泛的应用,常用的液晶显示模块分为数显液晶模块、点阵字符液晶模块和点阵图形液晶模块,其中图形液晶模块在我国应用较为广泛,因为汉字不能像西文字符那样用字符模块即可显示,要想显示汉字必须用图形模块。

本课设所选择的LCD是AMPIRE128×64的汉字图形型液晶显示模块,可显示汉字及图形,图形液晶显示显示器接口如图所示。

整个屏幕分左、右两个屏,每个半屏右8页,每页有8行,注意数据是竖行排列。

显示一个字要16*16点,全屏有128*64个点,故可显示32个中文汉字。

每两页显示一行汉字,可显示4行汉字,每行8个汉字,共32个汉字。

而显示数据需要16*8个点,可显示数据是汉字的两陪。

屏幕是通过CS1、CS2两信号来控制的,不同的组合方式所选的屏幕是不同的,对应关系如下。

4.软件设计一个应用系统要完成各项功能,首先必须有较完善的硬件作保证,同时还必须得到相应设计合理的软件的支持。

尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。

甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单,如数字滤波,信号处理等。

因此充分利用其内部丰富的硬件资源和软件资源,采用C语言和结构化程序设计方法进行软件编程。

4.1 主程序图4.2 读出温度子程序YYN 初始化中断和定时器开始显示初始化Key 键被按下?从DS18B20读取温度并显示温度极限返回执行报警程序N按键设置void Init_DS18B20(void){unsigned char x=0;DQ = 1; //DQ 复位delay_18B20(8); //稍做延时DQ = 0; //单片机将DQ 拉低delay_18B20(80); //精确延时 大于 480usDQ = 1; //拉高总线delay_18B20(14);x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay_18B20(20);}上述程序中将DQ 拉低,精确延时,再将DQ 拉高,通过判断x 的值来确定是否已经初始化完成。

YN开始初始化DS18B20写DS18B20读取温度指令温度转移成功? 移入温度寄存器单片机读取温度数据结束void ReadTemp(void){unsigned char a=0;unsigned char b=0;unsigned char t=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换delay_18B20(100); // this message is wery importantInit_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度delay_18B20(100);a=ReadOneChar(); //读取温度值低位b=ReadOneChar(); //读取温度值高位temp_value = b*256 + a;DECIMAL=DECP[a&0X0F];SIGN=b/16;if(SIGN){temp_value=~temp_value*0.0625;DECIMAL=DECN[a&0X0F];if(DECIMAL==0)temp_value+=1;}else{temp_value*=0.0625;}temp_value *= 10;temp_value += DECIMAL;}这段程序中,主要作用是在确保了DS18B20的工作状态后,从DS18B20的温度寄存器中提取出温度值的高位和低位,再将两个字节合并为一个字节,经过处理后从输出端输出。

4.3 温度数据显示子程序void DisPlay16(unsigned char line, unsigned char column , unsigned char LorR , unsigned char addr){unsigned char i;unsigned char j;cs1 = 1;cs2 = 1;if(LorR == 0){cs1 = 0;}else{cs2 = 0;}for(i=0; i<2 ;i++){for(j=0; j<16 ;j++){SetLine(line + i);SetColumn(column + j);WriteByte(Hzk[addr*32 + j + 16*i]);}}cs1 = 1;cs2 = 1;}void DisPlay16_not(unsigned char line, unsigned char column , unsigned char LorR , unsigned char addr){unsigned char i;unsigned char j;cs1 = 1;cs2 = 1;if(LorR == 0){cs1 = 0;}else{cs2 = 0;}for(i=0; i<2 ;i++){for(j=0; j<16 ;j++){SetLine(line + i);SetColumn(column + j);WriteByte( ~(Hzk[addr*32 + j + 16*i]) );}}cs1 = 1;cs2 = 1;}void DisPlay8(unsigned char line, unsigned char column , unsigned char LorR , unsigned char addr){unsigned char i;unsigned char j;cs1 = 1;cs2 = 1;if(LorR == 0){cs1 = 0;}else{cs2 = 0;}for(i=0; i<2 ;i++){for(j=0; j<8 ;j++){SetLine(line + i);SetColumn(column + j);WriteByte(Ezk[addr*16 + j + 8*i]);}}cs1 = 1;cs2 = 1;}void DisPlay8_not(unsigned char line, unsigned char column , unsigned char LorR , unsigned char addr){unsigned char i;unsigned char j;cs1 = 1;cs2 = 1;if(LorR == 0){cs1 = 0;}else{cs2 = 0;}for(i=0; i<2 ;i++){for(j=0; j<8 ;j++){SetLine(line + i);SetColumn(column + j);WriteByte( ~(Ezk[addr*16 + j + 8*i]) );}}cs1 = 1;cs2 = 1;}这段程序的作用在于,在接收到温度信息后,通过转化,变成能在LCD上显示的字符。

相关文档
最新文档