基于单片机的温度控制系统设计报告

合集下载

基于单片机的温度控制系统课设报告

基于单片机的温度控制系统课设报告

基于单片机的温度控制系统摘要:该实验设计基于飞思卡尔MC9S12DG128开发板平台,根据实验任务要求,完成了水温自动控制系统的设计,该系统的温度给定值可由人工通过键盘进行设定,测量温度经过A/D转换由数码管显示,通过PID控制算法对温度进行调节,使温度输出值在给定值上下波动,控制该系统的静态误差为1℃,用LED灯模拟加热强度,并用串口将输出的水温随时间的变化数值发到PC机上。

关键字:飞思卡尔单片机水温控制MC9S12DG1281、设计题目与设计任务σ≤;3.温度误要求:1温度连续可调范围是30-150摄氏度;2 超调量20%<±;4尝试使用能预估大滞后的方法,如史密斯预估,或大林算法;也可差0.5用PID及改进算法。

内容:1.根据题目的技术要求,画出系统组成的原理框图;2. 给出系统硬件电路图;3.确定温度控制方案;4. 给出控制方法及控制程序;5.整理设计数据资料,课程设计总结,撰写设计计算说明书。

2、前言:随着电子技术和计算机的迅速发展,计算机测量控制技术拥有操作简单、控制灵活、使用便捷以及性价比较高的优点,从而得到了广泛的应用。

单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可以实现对数字信息的处理和控制,因此,单片机广泛应用于现代工业控制中。

利用单片机对温度测量控制会大大提高系统的可靠性和准确性。

该设计实验是在实验室完成,实验任务是设计制作一个水温自动控制系统,控制对象为1L净水,容器为搪瓷器皿。

水温由人工通过4*4的键盘设定,并能在环境温度改变时实现对水温的自动控制,采用PWM技术控制电阻丝的加热,加热强度由8个LED小灯模拟,以保持设定的温度基本不变,测量温度经过A/D转换在4位数码管上显示(保留一位小数),并将温度每秒钟向计算机发送一次。

一、系统设计的功能该系统的闭环控制系统框图如图1.1所示。

图1.1 水温控制系统结构框图单片机对温度的测量控制是基于传感器、A/D转换器以及扩展接口和执行机构来进行的。

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

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

基于STM32单片机的温度控制系统设计一、本文概述本文旨在探讨基于STM32单片机的温度控制系统的设计。

我们将从系统需求分析、硬件设计、软件编程以及系统测试等多个方面进行全面而详细的介绍。

STM32单片机作为一款高性能、低功耗的微控制器,广泛应用于各类嵌入式系统中。

通过STM32单片机实现温度控制,不仅可以精确控制目标温度,而且能够实现系统的智能化和自动化。

本文将介绍如何通过STM32单片机,结合传感器、执行器等硬件设备,构建一套高效、稳定的温度控制系统,以满足不同应用场景的需求。

在本文中,我们将首先分析温度控制系统的基本需求,包括温度范围、精度、稳定性等关键指标。

随后,我们将详细介绍系统的硬件设计,包括STM32单片机的选型、传感器和执行器的选择、电路设计等。

在软件编程方面,我们将介绍如何使用STM32的开发环境进行程序编写,包括温度数据的采集、处理、显示以及控制策略的实现等。

我们将对系统进行测试,以验证其性能和稳定性。

通过本文的阐述,读者可以深入了解基于STM32单片机的温度控制系统的设计过程,掌握相关硬件和软件技术,为实际应用提供有力支持。

本文也为从事嵌入式系统设计和开发的工程师提供了一定的参考和借鉴。

二、系统总体设计基于STM32单片机的温度控制系统设计,主要围绕实现精确的温度监测与控制展开。

系统的总体设计目标是构建一个稳定、可靠且高效的环境温度控制平台,能够实时采集环境温度,并根据预设的温度阈值进行智能调节,以实现对环境温度的精确控制。

在系统总体设计中,我们采用了模块化设计的思想,将整个系统划分为多个功能模块,包括温度采集模块、控制算法模块、执行机构模块以及人机交互模块等。

这样的设计方式不仅提高了系统的可维护性和可扩展性,同时也便于后续的调试与优化。

温度采集模块是系统的感知层,负责实时采集环境温度数据。

我们选用高精度温度传感器作为采集元件,将其与STM32单片机相连,通过ADC(模数转换器)将模拟信号转换为数字信号,供后续处理使用。

《2024年基于51单片机的温度控制系统设计与实现》范文

《2024年基于51单片机的温度控制系统设计与实现》范文

《基于51单片机的温度控制系统设计与实现》篇一一、引言在现代工业控制领域,温度控制系统的设计与实现至关重要。

为了满足不同场景下对温度精确控制的需求,本文提出了一种基于51单片机的温度控制系统设计与实现方案。

该系统通过51单片机作为核心控制器,结合温度传感器与执行机构,实现了对环境温度的实时监测与精确控制。

二、系统设计1. 硬件设计本系统以51单片机为核心控制器,其具备成本低、开发简单、性能稳定等优点。

硬件部分主要包括51单片机、温度传感器、执行机构(如加热器、制冷器等)、电源模块等。

其中,温度传感器负责实时监测环境温度,将温度信号转换为电信号;执行机构根据控制器的指令进行工作,以实现对环境温度的调节;电源模块为整个系统提供稳定的供电。

2. 软件设计软件部分主要包括单片机程序与上位机监控软件。

单片机程序负责实时采集温度传感器的数据,根据设定的温度阈值,输出控制信号给执行机构,以实现对环境温度的精确控制。

上位机监控软件则负责与单片机进行通信,实时显示环境温度及控制状态,方便用户进行监控与操作。

三、系统实现1. 硬件连接将温度传感器、执行机构等硬件设备与51单片机进行连接。

具体连接方式根据硬件设备的接口类型而定,一般采用串口、并口或GPIO口进行连接。

连接完成后,需进行硬件设备的调试与测试,确保各部分正常工作。

2. 软件编程编写51单片机的程序,实现温度的实时采集、数据处理、控制输出等功能。

程序采用C语言编写,易于阅读与维护。

同时,需编写上位机监控软件,实现与单片机的通信、数据展示、控制指令发送等功能。

3. 系统调试在完成硬件连接与软件编程后,需对整个系统进行调试。

首先,对单片机程序进行调试,确保其能够正确采集温度数据、输出控制信号。

其次,对上位机监控软件进行调试,确保其能够与单片机正常通信、实时显示环境温度及控制状态。

最后,对整个系统进行联调,测试其在实际应用中的性能表现。

四、实验结果与分析通过实验测试,本系统能够实现对环境温度的实时监测与精确控制。

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

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

基于单片机的温度控制系统设计1. 简介温度控制系统是指通过控制设备来维持特定环境或设备的温度在预设范围内的系统。

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

2. 系统设计原理该系统的设计原理是通过感应温度传感器获取环境的温度信息,然后将温度信息输入到单片机中进行处理,最后由单片机控制执行器或调节器,如加热电阻或风扇等,来维持环境温度在预设范围内。

3. 硬件设计首先,我们需要选择合适的单片机来实现系统的功能。

基于具体要求,如采集速度、内存和GPIO的需求等,选择适合的单片机芯片。

在电路设计方面,需要连接温度传感器与单片机,可以选择常用的数字温度传感器,例如DS18B20等。

同时,还需根据要求选择适当的执行器或调节器,如继电器、加热电阻或风扇等,并将其与单片机相连。

4. 软件设计系统的软件设计包括两个主要部分:温度采集和控制算法。

- 温度采集:通过编程将温度传感器与单片机相连,并实现数据采集功能。

单片机读取传感器的输出信号,并将其转换为数字信号进行处理。

可以使用模拟转数字转换技术(ADC)将模拟信号转换为数字信号。

- 控制算法:根据采集到的温度数据,设计合理的控制算法来控制执行器或调节器的工作。

可以使用PID控制算法,通过不断地调整执行器或调节器的输出,实现温度的稳定控制。

5. 系统功能实现系统的功能实现主要包括以下几个方面:- 温度采集与显示:通过程序实现温度传感器的读取和温度数值的显示,可以通过数码管、LCD显示屏或者串口通信方式显示温度数值。

- 温度控制:通过在程序中实现控制算法,将温度保持在设定的范围内。

根据采集到的温度数值,判断当前环境的温度状态,根据算法计算出执行器或调节器的合适输出,并控制其工作。

- 报警功能:当温度超出预设范围时,系统可以通过声音报警、闪烁等方式进行警示,提醒操作人员或者自动采取控制措施。

6. 系统可扩展性和应用领域基于单片机的温度控制系统具有良好的可扩展性,可以根据实际需求增加其他传感器、执行器或调节器等模块,以满足特定的应用场景需求。

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

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

基于51单片机的温度控制系统设计引言:随着科技的不断进步,温度控制系统在我们的生活中扮演着越来越重要的角色。

特别是在一些需要精确控制温度的场合,如实验室、医疗设备和工业生产等领域,温度控制系统的设计和应用具有重要意义。

本文将以基于51单片机的温度控制系统设计为主题,探讨其原理、设计要点和实现方法。

一、温度控制系统的原理温度控制系统的基本原理是通过传感器感知环境温度,然后将温度值与设定值进行比较,根据比较结果控制执行器实现温度的调节。

基于51单片机的温度控制系统可以分为三个主要模块:温度传感器模块、控制模块和执行器模块。

1. 温度传感器模块温度传感器模块主要用于感知环境的温度,并将温度值转换成电信号。

常用的温度传感器有热敏电阻、热敏电偶和数字温度传感器等,其中热敏电阻是最常用的一种。

2. 控制模块控制模块是整个温度控制系统的核心,它负责接收传感器传来的温度信号,并与设定值进行比较。

根据比较结果,控制模块会输出相应的控制信号,控制执行器的工作状态。

51单片机作为一种常用的嵌入式控制器,可以实现控制模块的功能。

3. 执行器模块执行器模块根据控制模块输出的控制信号,控制相关设备的工作状态,以实现对温度的调节。

常用的执行器有继电器、电磁阀和电动机等。

二、温度控制系统的设计要点在设计基于51单片机的温度控制系统时,需要考虑以下几个要点:1. 温度传感器的选择根据具体的应用场景和要求,选择合适的温度传感器。

考虑传感器的测量范围、精度、响应时间等因素,并确保传感器与控制模块的兼容性。

2. 控制算法的设计根据温度控制系统的具体要求,设计合适的控制算法。

常用的控制算法有比例控制、比例积分控制和模糊控制等,可以根据实际情况选择适合的算法。

3. 控制信号的输出根据控制算法的结果,设计合适的控制信号输出电路。

控制信号的输出电路需要考虑到执行器的工作电压、电流等参数,确保信号能够正常控制执行器的工作状态。

4. 系统的稳定性和鲁棒性在设计过程中,需要考虑系统的稳定性和鲁棒性。

《2024年基于8051单片机的温度控制系统》范文

《2024年基于8051单片机的温度控制系统》范文

《基于8051单片机的温度控制系统》篇一一、引言随着科技的飞速发展,人们对各类生产与生活设备的智能性和精度要求不断提高。

其中,温度控制系统作为一种关键的工业和家庭自动化技术,已成为当今科学研究与技术应用的重点。

在众多的单片机技术中,基于8051单片机的温度控制系统因其实时性强、性价比高以及适应性强等优点而得到了广泛的应用。

本文旨在深入探讨基于8051单片机的温度控制系统的设计与实现过程。

二、系统概述基于8051单片机的温度控制系统是一种典型的自动化控制系统,该系统采用高精度的温度传感器进行实时检测,并将数据通过A/D转换器传输至8051单片机。

单片机根据预设的算法对数据进行处理,然后通过PWM(脉宽调制)或开关控制等方式对执行器进行控制,以达到调节温度的目的。

三、硬件设计1. 单片机选择:选用8051系列单片机作为核心控制单元,因其性能稳定、成本低、资源丰富等优点而成为行业内的主流选择。

2. 温度传感器:选择高精度的温度传感器进行实时检测,如DS18B20等。

3. A/D转换器:将传感器输出的模拟信号转换为单片机可以处理的数字信号。

4. 执行器:根据需要选择合适的执行器,如加热器、制冷器等。

四、软件设计软件设计是整个系统的核心部分,主要涉及单片机的编程和控制算法的实现。

1. 编程语言:采用C语言进行编程,因其具有代码可读性强、可移植性好等优点。

2. 控制算法:根据实际需求选择合适的控制算法,如PID (比例-积分-微分)控制算法等。

通过编程实现对温度的精确控制。

3. 人机交互:通过LCD显示屏等人机交互设备,实现对系统的实时监控和操作。

五、系统实现系统实现包括硬件连接、程序编写、调试与优化等步骤。

首先将硬件设备按照电路图进行连接,然后编写程序实现单片机的控制功能。

在调试过程中,需要不断优化控制算法和程序代码,以达到最佳的温控效果。

六、系统性能分析基于8051单片机的温度控制系统具有以下优点:1. 实时性强:能够实时检测温度并快速作出反应。

基于单片机的温度控制系统设计报告

基于单片机的温度控制系统设计报告

智能仪器仪表综合实训题目基于单片机的温度控制系统设计学院专业电子信息工程班级 (仪器仪表) 学生姓名学号指导教师完成时间:目录一、系统设计---------------------------------------------------------第 1 页(一)系统总体设计方案----------------------------------------------第1 页(二)温度信号采集电路选择和数据处理--------------------------------第3 页(三)软件设计------------------------------------------------------第3 页二、单元电路设计-----------------------------------------------------第 5 页(一)温度信号采集电路----------------------------------------------第5 页(二)步进电机电路------------------------------------------------- 第5 页(三)液晶显示模块---------------------------------------------------------- 第6 页(四)晶振复位电路--------------------------------------------------第7 页三、总结体会--------------------------------------------------------------------------------------第7 页四、参考文献-------------------------------------------第8 页附录:程序清单------------------------------------------第8 页一、系统设计(一) 系统总体设计方案设计框图如下所示:图1 系统总体设计框图总电路图如下:图2 系统总电路图简单功能说明:一个显示实时温度的小系统,可以自行设定高温报警和低温报警值,实现温度控制电机带动外围器件功能。

《2024年基于单片机的温度控制系统的研究》范文

《2024年基于单片机的温度控制系统的研究》范文

《基于单片机的温度控制系统的研究》篇一一、引言随着现代科技的快速发展,对温度控制的精度和稳定性的要求也在逐渐提高。

为了满足这一需求,我们提出了一种基于单片机的温度控制系统。

该系统利用单片机的高效处理能力和精确控制能力,实现对温度的实时监测和精确控制。

本文将对该系统的设计、实现及性能进行详细的研究和讨论。

二、系统设计1. 硬件设计本系统主要由单片机、温度传感器、执行器(如加热器或制冷器)以及电源等部分组成。

其中,单片机作为系统的核心,负责接收温度传感器的数据,根据设定的温度值与实际温度值的差值,控制执行器的工作状态,以达到控制温度的目的。

温度传感器选用高精度的数字温度传感器,能够实时监测环境温度,并将数据传输给单片机。

执行器则根据单片机的指令,进行加热或制冷操作。

2. 软件设计软件部分主要包括单片机的程序设计和人机交互界面设计。

单片机程序采用C语言编写,实现温度的实时监测、数据处理、控制算法等功能。

人机交互界面则用于设定目标温度、显示当前温度等信息。

三、系统实现1. 温度采集与处理单片机通过与温度传感器通信,实时获取环境温度数据。

然后,通过A/D转换器将温度数据转换为数字信号,进行数据处理和分析。

2. 控制算法本系统采用PID(比例-积分-微分)控制算法。

PID控制器根据设定温度与实际温度的差值,计算输出控制量,控制执行器的工作状态,从而达到控制温度的目的。

3. 人机交互界面人机交互界面采用LCD显示屏和按键实现。

用户可以通过按键设定目标温度,LCD显示屏实时显示当前温度和设定温度。

四、性能分析1. 精度与稳定性本系统采用高精度的温度传感器和PID控制算法,能够实现较高的温度控制精度和稳定性。

经过实际测试,系统的温度控制精度可达±0.5℃,稳定性良好。

2. 响应速度本系统的响应速度较快,当环境温度发生变化时,单片机能够迅速采集到数据,并通过PID控制算法计算出相应的控制量,控制执行器进行加热或制冷操作,使环境温度尽快达到设定值。

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

智能仪器仪表综合实训题目基于单片机的温度控制系统设计学院专业电子信息工程班级 (仪器仪表) 学生姓名学号指导教师完成时间:目录一、系统设计---------------------------------------------------------第 1 页(一)系统总体设计方案----------------------------------------------第1 页(二)温度信号采集电路选择和数据处理--------------------------------第3 页(三)软件设计------------------------------------------------------第3 页二、单元电路设计-----------------------------------------------------第 5 页(一)温度信号采集电路----------------------------------------------第5 页(二)步进电机电路------------------------------------------------- 第5 页(三)液晶显示模块---------------------------------------------------------- 第6 页(四)晶振复位电路--------------------------------------------------第7 页三、总结体会--------------------------------------------------------------------------------------第7 页四、参考文献-------------------------------------------第8 页附录:程序清单------------------------------------------第8 页一、系统设计(一) 系统总体设计方案设计框图如下所示:图1 系统总体设计框图总电路图如下:图2 系统总电路图简单功能说明:一个显示实时温度的小系统,可以自行设定高温报警和低温报警值,实现温度控制电机带动外围器件功能。

本系统通过温度传感器DS18B20实现对温度数据的采集,数据处理后显示到液晶屏上,通过数据处理,温度值精确度为0.1。

简单操作方法:系统上电后液晶显示实时温度,通过按键可以设定高低温限定值:A.按下K1,显示系统的高低温限定值;B.再按K1,进入设定状态,液晶屏光标闪动提示设定,此时设定高温限值还是低温限值可以在K1键转换;C.进入设定状态后,K2键用于值加1,K3键用于值减1;D.设定完后,按键K4确认后退出,返回显示实时温度!(二) 温度信号采集电路选择和数据处理方案:采用温度传感器DS18B20美国DALLAS公司的产品可编程单总线数字式温度传感器DS18B20可实现室内温度信号的采集,有很多优点:如直接输出数字信号,故省去了后继的信号放大及模数转换部分,外围电路简单,成本低;单总线接口,只有一根信号线作为单总线与MCU连接,且每一只都有自己唯一的64位系列号存储在其内部的ROM存储器中,故在一根信号线上可以挂接多个DS18820,便于多点测量且易于扩展.DS18B20的测温范围较大,集成度较高,故选用此方案。

DS18B20内部1,2位寄存器存放实时温度值,本系统对以上两寄存器数据处理后精度为0.1;DS18B20第3,4位寄存器分别存放高温限值和低温限值,并且DS18B20内部还有EEPROM,因此通过第3,4寄存器与EEPROM的数据交换就能实现对设定后的值进行贮存。

(三) 软件设计本实验中我选用Keil编程平台.主程序流程图:图3 主程序流程图二、单元电路设计(一) 温度信号采集电路图4 温度信号采集电路(二) 步进电机电路图5 步进电机电路(三) 液晶显示模块图6液晶显示模块(四) 晶振复位电路图7 晶振复位电路三、总结体会本次课程设计给我们提供了一个将自己所学的知识应用于实践的良机,通过了两个周的设计我学到了很多非常有价值的东西,懂得了如何将理论知识转化成实际程序的设计;掌握的单片机开发与设计的思路与方案确定;学会了更有效的查找自己所需的资料;同时也意识到了团队协作的重要性;掌握了硬件与程序设计的一般步骤和方法。

这对我们以后的学习和工作的是非常有帮助的。

设计是我们将来必需的技能,这次课程设计刚好给我们提供了一个应用自己所学知识的机会,从到图书馆和网上查找资料到对硬件与程序模块的设计对各模块的调试再到最后整体设计调试,都对我所学的知识进行了检验,增强了自信心。

通过本次课程设计,我进一步温习和巩固了课本的理论知识,对单片机各接口与外部电路之间的连接关系有了更加深刻的理解。

同时掌握了Proteus和keil软件的基本应用。

同时,在课程设计过程中,将理论知识应用于实际应用,增强了理论联系实际的能力。

虽然设计时有时一个问题需要我们花费很长的时间,很烦很累但当我们通过查找资料解决了之后心里很开心很有成就感。

同时也使我明白了要将理论运用于实践还是一种非常重要的能力,要想牢固的掌握所学的知识我们必须将理论与实践结合起来,用理论来指导实践,用实践来验证理论,增强对理论的理解。

不断地充实自己的理论,提高自己的动手能力。

最终完成了整个设计之后,使我更加坚信只要我们努力和采用正确的方法,没有什么事是我们解决不了的。

最后,我在这里衷心地感谢所有教给我知识和在课程设计中给予我帮助的老师们和同学们,是他们给我们的知识才使我们得以顺利完成此次课程设计。

四、参考文献《单片微型计算机原理与应用》,张毅坤、陈善久、裘雪红西安电子科技大学出版社《51单片机应用从零开始》杨欣、王玉凤、李湘黔清华大学出版社《51单片机应用开发范例大全》宋戈、黄鹤松、员玉良人民邮电出版社郭天祥电子工业出版社附录:程序清单;-------------------------------------------------; 简单功能说明:一个显示实时温度的小系统,可以自行设; 定高温报警和低温报警值,实现温度控制电机带动外围器; 件功能。

;;-------------------------------------------------DQ EQU P1.7 ;DS18B20控制口RS EQU P2.4RW EQU P2.5E EQU P2.6LCD EQU P0FLAG EQU 30HGEWEI EQU 29HSHI EQU 28HXIAOSHU EQU 27HTEMP_TL EQU 20H ;低温限值TEMP_TH EQU 21H ;高温限值TEMPH EQU 22H ;温度高字节TEMPL EQU 23H ;温度低字节TEMP EQU 24HK1 EQU P3.0K2 EQU P3.1K3 EQU P3.2K4 EQU P3.3;===============================================MAIN: MOV TEMP_TH,#25MOV TEMP_TL,#01ACALL INIT_LCD ;初始化液晶ACALL WR_THL ;写入高温限值和低温限值寄存器ACALL WR_PROMACALL RE_PROM ;从EEPROM中返回高温限值和低温限值ACALL RESET ;初始化1820JB FLAG,LOOPACALL ERROR ;报错LOOP: ACALL READ_T ;1820读取温度ACALL DISP_TEMP ;液晶显示实时温度ACALL KEYSCAN ;键盘设定高温限值和低温限值ACALL TEMP_COMPJMP LOOP;=============启动1820读取温度====================READ_T: SETB DQACALL RESETJB FLAG,READ_T1RETREAD_T1:MOV A,#0CCHACALL WR_1820MOV A,#44HACALL WR_1820ACALL RESETMOV A,#0CCHACALL WR_1820MOV A,#0BEHACALL WR_1820ACALL READ_1820RET;=========把高温和低温限值写入寄存器=================WR_THL: JB FLAG,WR_HLRETWR_HL: ACALL RESETMOV A,#0CCHACALL WR_1820MOV A,#4EHACALL WR_1820MOV A,TEMP_THACALL WR_1820MOV A,TEMP_TLACALL WR_1820RET;==========把高温和低温限值写入EEPROM=================WR_PROM:ACALL RESETMOV A,#0CCHACALL WR_1820MOV A,#48HACALL WR_1820RET;========把EEPROM的值返回到高温和低温限值寄存器======== RE_PROM:ACALL RESETMOV A,#0CCHACALL WR_1820MOV A,#0B8HACALL WR_1820RET;===========初始化1820==================================RESET: SETB DQNOPCLR DQMOV R5,#250DJNZ R5,$SETB DQNOPMOV R5,#25HRESET1: JNB DQ,FLAG1DJNZ R5,RESET1JMP NDQFLAG1: SETB FLAGMOV R5,#100DJNZ R5,$SETB DQMOV R5,#100DJNZ R5,$JMP RETUNDQ: CLR FLAGACALL ERRORRETU: SETB DQRET;=============1820写字节========================WR_1820:MOV R6,#8CLR CWR1: CLR DQMOV R5,#7DJNZ R5,$RRC AMOV DQ,CMOV R5,#25DJNZ R5,$SETB DQNOPNOPDJNZ R6,WR1SETB DQRET;==============读取1820数据======================READ_1820:MOV R2,#4MOV R1,#TEMPLRE1: MOV R6,#8RE2: SETB DQNOPCLR DQCLR CNOPNOPSETB DQMOV R5,#9DJNZ R5,$MOV C,DQMOV R5,#24DJNZ R5,$RRC ADJNZ R6,RE2MOV @R1,ADEC R1DJNZ R2,RE1RET;===========转换数据=============================TURN: MOV XIAOSHU,TEMPL ;保存TEMPL值,后面用于取低4位转换小数部分MOV A,TEMPLMOV C,16 ;22H的位寻址RRC AMOV C,17RRC AMOV C,18RRC AMOV C,19RRC AMOV TEMP,AMOV A,XIAOSHUANL A,#00001111BMOV XIAOSHU,ARET;========键盘扫描=============================KEYSCAN:JB K1,RETUN ;按下K1,进入键盘扫描ACALL DELAY20JNB K1,$ACALL CLR_LCD ;清屏ACALL DISP_THL ;显示高温限值和低温限值ACALL SET_HL ;设定限值ACALL WR_THL ;把高温限值和低温限值写入RAM//.../ACALL LEDACALL WR_PROM ;限值复制到EEPROM中RETUN: RET;------------设定高低限值----------------------SET_HL: //JNB K4,EXITJB K1,KEY4ACALL DELAY20JNB K1,$CPL 20H.1 ;标志位,标志设定高温限值或低温限值JB 20H.1,SET_HJMP SET_L;-------------调高温限值-------------------------SET_H:ACALL TH_SHAN ;光标闪,进入设定KEY2H: JNB K1,SET_L ;高温限值与低温限值间设定转换JNB K4,EXITJB K2,KEY3H ;按下K2,值加1ACALL DELAY20JNB K2,$INC TEMP_THMOV A,TEMP_THCJNE A,#99,A0MOV TEMP_TH,#00A0: ACALL DISP_THLKEY3H:JB K3,KEY2H ;按下K3,值减1ACALL DELAY20JNB K3,$DEC TEMP_THMOV A,TEMP_THCJNE A,#0,A1MOV TEMP_TH,#99A1: ACALL DISP_THLJMP SET_H;-------------调低温限值------------------------------ SET_L:ACALL TL_SHANKEY2L: JNB K1,SET_H ;高温限值与低温限值间设定转换JNB K4,EXITJB K2,KEY3L ;按下K2,值加1ACALL DELAY20JNB K2,$INC TEMP_TLMOV A,TEMP_TLCJNE A,#99,A2MOV TEMP_TL,#00A2: ACALL DISP_THLKEY3L: JB K3,KEY2L ;按下K3,值减1ACALL DELAY20JNB K3,$DEC TEMP_TLMOV A,TEMP_TLCJNE A,#0,A3MOV TEMP_TL,#99A3: ACALL DISP_THLJMP SET_L;----------------------KEY4: JNB K4,EXIT ;K4用于退出设定JMP SET_HL//JMP SET_HLEXIT: ACALL DELAY20JNB K4,$MOV LCD,#00001100B ;设置液晶光标不显示、不闪烁ACALL WR_COMMACALL CLR_LCDACALL DISP_TEMPRET;==============温度比较======================================TEMP_COMP:MOV A,TEMP_THSUBB A,TEMPACALL DIANJIMOV A,TEMPSUBB A,TEMP_TLACALL DIANJIRET;============================================/*MORE: MOV DPTR,#MORE0MOV LCD,#0CEHACALL WR_COMMACALL DISP0RETMORE0: DB '>H',0H*/;=============启动电机========================;电机接口是P1低4位,因为P1.7是温度传感器的控制口;避免冲突,电机接口按位控制DIANJI: JC DIAN0RETDIAN0: MOV R0,#4//ACALL MOREDIAN1:SETB P1.0CLR P1.1CLR P1.2CLR P1.3ACALL DELAYCLR P1.0SETB P1.1ACALL DELAYCLR P1.1SETB P1.2ACALL DELAYCLR P1.2SETB P1.3ACALL DELAY//RL ADJNZ R0,DIAN1CLR P1.0CLR P1.1CLR P1.2CLR P1.3RETDELAY: MOV R5,#5DLY1: MOV R6,#10DLY2: MOV R7,#50DJNZ R7,$DJNZ R6,DLY2DJNZ R5,DLY1RET;============清屏=============================CLR_LCD:MOV LCD,#80HACALL WR_COMMMOV R0,#16CLR1: MOV LCD,#' 'ACALL WR_DATADJNZ R0,CLR1MOV LCD,#0C0HACALL WR_COMMMOV R0,#16CLR2: MOV LCD,#' 'ACALL WR_DATADJNZ R0,CLR2RET;===============报错============================ERROR: MOV LCD,#80HACALL WR_COMMMOV DPTR,#ERORTABACALL DISP0RETERORTAB:DB 'INIT ERROR!',0H;================温度标志===================DISP_C: MOV LCD,AACALL WR_COMMMOV LCD,#0DFHACALL WR_DATAMOV LCD,#'C'ACALL WR_DATARET;=================数码显示======================SHUMA: MOV DPTR,#SHUTABMOVC A,@A+DPTRMOV LCD,AACALL WR_DATARETSHUTAB: DB 30H,31H,32H,33H,34HDB 35H,36H,37H,38H,39H;===============显示实时温度======================DISP_TEMP:ACALL TURNMOV LCD,#80HACALL WR_COMMMOV DPTR,#CURRENTACALL DISP0MOV LCD,#0CAHACALL WR_COMMMOV LCD,#2EH ;小数点ACALL WR_DATAMOV A,#0CCHACALL DISP_C ;温度标志;------------------------------MOV A,XIAOSHUMOV DPTR,#XIAOMOVC A,@A+DPTRMOV XIAOSHU,AMOV A,TEMPMOV B,#10DIV ABMOV SHI,AMOV GEWEI,BMOV A,XIAOSHUMOV LCD,#0CBHACALL WR_COMMACALL SHUMAMOV A,SHIMOV LCD,#0C8HACALL WR_COMMACALL SHUMAMOV A,GEWEIACALL SHUMA//MOV LCD,#0D0H ;把光标移到别处//ACALL WR_COMMRETCURRENT:DB 'Tempreture Now: ',0HXIAO: DB 00H,00H,01H,01H,02H,03H,03H,04HDB 05H,05H,06H,06H,07H,08H,08H,09H;================字符显示=============================DISP0: MOV R1,#0NEXT: MOV A,R1MOVC A,@A+DPTRJZ RETTMOV LCD,AINC R1ACALL WR_DATAJMP NEXTRETT: RET;==========显示高温限值和低温限值======================DISP_THL:MOV DPTR,#SETTHLMOV LCD,#80HACALL WR_COMMACALL DISP0MOV DPTR,#THLMOV LCD,#0C1HACALL WR_COMMACALL DISP0;--------------------------- F5_THL://ACALL RE_PROMMOV A,TEMP_THMOV B,#10DIV ABMOV SHI,A //SHIMOV GEWEI,B //GEMOV A,SHIMOV LCD,#0C4HACALL WR_COMMACALL SHUMAMOV A,GEWEIACALL SHUMAMOV A,#0C6HACALL DISP_C;----------------MOV A,TEMP_TLMOV B,#10DIV ABMOV SHI,A //SHIMOV GEWEI,B //GEMOV A,SHIMOV LCD,#0CCHACALL WR_COMMACALL SHUMAMOV A,GEWEIACALL SHUMAMOV A,#0CEHACALL DISP_CRETSETTHL:DB 'Set TH/TL:',0HTHL: DB 'TH: TL:',0H;==========液晶初始化================================INIT_LCD:MOV LCD,#00000001BACALL WR_COMMMOV LCD,#00111000BACALL WR_COMMMOV LCD,#00001100BACALL WR_COMMMOV LCD,#00000110BACALL WR_COMMRET;============TH光标闪==============================TH_SHAN:MOV LCD,#00001111BACALL WR_COMMMOV LCD,#0C5HACALL WR_COMMRET;=============TL光标闪=============================TL_SHAN:MOV LCD,#00001111BACALL WR_COMMMOV LCD,#0CDHACALL WR_COMMRET;============液晶写命令============================ WR_COMM:CLR RSCLR RWCLR EACALL CHECK_BFSETB ERET;==============液晶写数据============================== WR_DATA:SETB RSCLR RWCLR EACALL CHECK_BFSETB ERET ;============液晶是否忙碌============================ CHECK_BF:MOV LCD, #0FFHCLR RSSETB RWCLR ENOPSETB EJB LCD.7,CHECK_BFRET;====================================================== DELAY20:MOV R5,#50DLY: MOV R6,#100DJNZ R6,$DJNZ R5,DLYRETEND;==========================================。

相关文档
最新文档