温度控制系统

更新时间:2024-05-08 23:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

唐 山 学 院

毕 业 设 计

设计题目:基于单片机的锅炉温度控制系统的设计与实现

系 别: 信息工程系 班 级: 12电气工程及其自动化(2)班 姓 名: 周雄 指 导 教 师: 廉文利

2016年

6月

1 日

唐山学院毕业设计

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

摘 要

根据对当前采暖需求情况广泛调查,目前的广大用户的采暖方式为燃煤锅炉的一次集中供暖,就能源方面的而言,集中燃煤供暖对能源的利用率相对比较低,消耗大,就实际供暖效果而言,燃煤供暖对有的用户供暖过热的时候,而有的用户却没有达到理想的供暖效果。结合工程实际需要,针对燃气锅炉的特点,研制开发了基于MCS-51单片机的小型家用燃气锅炉蒸汽温度控制系统,其目的在于改善燃煤锅炉集中采暖时所遇到的锅炉温度不易控制,改进采暖的控制方式,提高采暖的经济性、实用性。这种采暖方式的目的是将每一位需要供暖的用户都看成一个独立的个体,针对性的供暖。本设计主要利用 Protues电路设计软件,对智能控制器的电源电路、复位电路、时钟电路、报警电路、LCD液晶显示电路,以及控制器温度采集电路进行了设计。电源采用三端集成稳压器W7800或者W7900系列元件7805,交流220 V电压转换成为MCS-51单片机所需要的5V电压;将AT89S51作为控制器的核心器件;利用集成电路温度传感器DS18B20测量锅炉水温;将测量的水温与预先设定的设定值进行比较,单片机另外使用LCD液晶显示器显示水位的上下限值、当前水位、预先设定的温度报警值、当前采集的温度值。当测量的温度超过设定的报警温度值时,系统会发出报警声音,同时关闭锅炉燃烧器。然后等待温度降到下限值,这时就可以重新对锅炉燃烧器进行通电,继续加温,如此反复监控温度。这样就可以节约能源,提高能源的使用率。针对该系统的要求和特点,在上述硬件电路及实现方法的基础上,利用汇编语言,设计了基于单片机的锅炉蒸汽温度控制系统。控制软件主要包括温度和温度采集子程序、键盘扫描子程序和LCD液晶显示子程序等。通过对温度的测试,可以发现所设计的控制系统能够满足设计要求,并达到理想的效果。

关键词:单片机;LCD;燃气锅炉;温度控制;DS18B20

唐山学院毕业设计

Microcontroller-based design of the boiler

temperature control system

ABSTRACT

According to the current heating demand extensive investigation, current users of heating coal-fired boiler central heating, energy, coal-fired heating energy utilization rate is relatively low, consumption, the actual heating effects, coal-fired heating for some users heating overheating, and some users has not reached the ideal heating effect. Combined with the actual needs of the project, according to the characteristics of gas boiler and developed based on MCS-51 single chip microcomputer small household gas boiler steam temperature control system, its purpose lies in encountered improve coal-fired boiler central heating boiler temperature is not easy to control, improved the control mode of heating and improve the heating is economic and practical. The purpose of this kind of heating way is to be regarded as an independent individual, for the purpose of heating. This design mainly uses Protues circuit design software, the intelligent controller power supply circuit, reset circuit, clock circuit, alarm circuit, LCD display circuit, and a controller temperature acquisition circuit is designed. Power supply using three terminal voltage regulator integrated w7800 or W7900 series element 7805, AC 220 V voltage into a MCS-51 microcontroller need 5V voltage; the AT89S51 as the core chip of the controller; the use of integrated circuit temperature sensor DS18B20 measuring boiler water temperature; will measure the temperature of the water with preset setting values were compared, MCU and LCD display to display the water level of upper and lower limit value, the current level and preset temperature alarm value, the collection of temperature value. When the measured temperature exceeds the set alarm temperature value, the system will send out alarm sound, and close the boiler burner. And then wait for the temperature to drop to the lower limit, then you can re boiler burner for electricity, continue to heat, so repeated monitoring temperature. This can save energy, improve energy efficiency. According to the requirements and characteristics of this system, the boiler steam temperature control system based on single chip microcomputer is designed, which is based on the hardware circuit and the realization method. Control software mainly includes temperature and temperature acquisition subroutine, keyboard scanning subroutine and LCD liquid crystal display subroutine, etc.. Through the test of temperature, it can be

唐山学院毕业设计

found that the designed control system can meet the design requirements, and achieve the desired results

Keywords:MCU; Liquid Crystal Display; Gas boiler; Temperature control;DS18B20

唐山学院毕业设计

目录

1 引言 ................................................................................................................................... 1

1.1 课题背景及研究意义 ............................................................................................. 1 1.2 系统的总体设计思想 ............................................................................................. 2 2 系统方案论证及工作原理 ............................................................................................... 3

2.1 设计方案论证 ......................................................................................................... 3 2.2 系统结构框图 ......................................................................................................... 3 2.2.1主要器件的选择 ................................................................................................... 5 2.2.2 锅炉辅助器件选择 .............................................................................................. 5 3 硬件电路设计 ................................................................................................................... 6

3.1 主电路 ..................................................................................................................... 6 3.2单片机选择设计 ...................................................................................................... 7 3.3 单片机最小系统 ..................................................................................................... 9

3.3.1时钟电路设计 ................................................................................................ 9 3.3.2 复位电路 ....................................................................................................... 9 3.4温度检测电路设计及温度传感器选择 ................................................................ 10

3.4.1 DS18B20简介 ............................................................. 错误!未定义书签。 3.4.2温度采集电路 .............................................................................................. 11 3.5 温度控制电路设计 ............................................................................................... 12 3.6 水位控制电路 ....................................................................................................... 12 3.6 显示电路设计 ....................................................................................................... 13 3.7 报警电路设计 ....................................................................................................... 16 3.8 稳压电源电路设计 ............................................................................................... 17 3.9按键电路的设计 .................................................................................................... 17 4 系统软件设计 ................................................................................................................. 19

4.1主流程图设计 ........................................................................................................ 19 4.2中断程序程序 ........................................................................................................ 21 4.3 DS18B20温度采集子程序设计 ........................................................................... 21 4.4 LCD液晶显示子程序设计 ................................................................................... 23 总 结 ................................................................................................................................... 24 致谢 ..................................................................................................................................... 25 参考文献 ............................................................................................................................. 27

附录:总程序 .............................................................................................................. 28

唐山学院毕业设计

1 引言

1.1 课题背景及研究意义

锅炉是一种热能转换设备,由锅和炉两大主体组成主要保证其安全经济持续续运行的附件,仪表附属设备,自控和保护系统组成,水在锅筒中不断被炉里的燃料燃烧所释放出的能量加热,使其温度升高并产生带压蒸汽。由于压力随着温度的升高而增加,水的沸点也随之升高,然而锅是密封的,这样就使得水蒸气在锅筒里面的膨胀受到限随之产生压力进一步形成热动力(严格的说锅炉的水蒸气是水在锅筒中定压加热至饱和水再汽化形成的)作为一种能源普遍使用。锅炉,广泛用于生产和生活之中。就以中小型锅炉为例,中小型锅炉作为供暖设备用于提供热水和取暖,并在取暖方面得到了普遍应用。从对能源的利用方面来讲,集中供暖一次性投资相对过大,运行费用过高,无论是否需要,暖气始终全天供热,因楼层不同,而造成供暖的温度无法均匀。若遇到供暖偏热,居民只有开窗降温,使宝贵的能源白白浪费,降低了能源使用率;若遇到供暖不够,不能满足居民的供暖热度,使用户不能得到完美的供暖服务。 这种供暖方式从原理上而言,效率较低。而且集中供暖的锅炉大多数是燃媒锅炉,燃烧时污染大,已经带来了严重的环境污染问题。由于这些用户采用集中取暖,给个别用户带来很多不便。所以对锅炉温度控制系统方面的研究非常的有价值。

基于这种情况,近年来采用以天然气、液化石油气为燃料的中小型燃气锅炉具有高效、环境污染小、发热量大、供暖到位、污染小等特点,受到广大用户的欢迎。尤其在国外,燃气锅炉目前已得到了广泛应用。其中套管式燃气锅炉、板换式燃气锅炉、冷凝式燃气锅炉是比较常见的几种燃气锅炉。随着科技的发展,和各方面的客观条件的满足。生活中采暖,用燃气锅炉的应用也必将成为必然趋势,也有非常好的发展前景和市场。而且随着燃料不断补给,燃料充足,城市输送燃气管网十分完善,燃气使用率也会非常高。这样就会使广大采暖用户放弃集中供热的方式,采用分散采暖的方式,让每个采暖用户都得到很好的供暖保障。而燃气锅炉。作为分散供暖的一个非常好的取暖方式,它必将被越来越多的需求者关注并使用,成为广大用户青睐的采暖方式。

目前市场上家用燃气锅炉大多来源于进口,价格高,售后服务并不完善,这对燃气锅炉的推广使用造成了诸多不便。因此,制开发小型家用燃气锅炉,非常有意义,以满足广大的市场需求。

本设计,将结合上述中小型燃气锅炉在实际取暖中的需要,利用以MCS-51为单片机核心的器件,组成锅炉温度控制系统。并采用温度采集技术,通过对整

1

唐山学院毕业设计

个系统的运行和研究分析,达到对利用单片机实现温度采集技术在过程中的应用的全面认识和理解。

1.2 系统的总体设计思想

目前,市场上出现了专门以单片机作为工业控制的系列产品。单片机凭借其体积小、重量轻、功耗低、价格便宜、功能强等特点,在工业控制的实践中,单片机的使用也越来越广泛,单片机不仅可以实现各种常规的应用控制,还能根据所需求的对象的特性进行控制。对被控对象采用更完善的控制方式,达到更完善的控制效果。目前,对于家用取暖锅炉而言,每一套都需要一套独立完整的控制系统,而且批量生产的话,所需的控制系统的量会非常的大,对于这些特点,从生产的成本和消费水平出发,以MCS-51为核心的控制系统是非常理想的选择,并且能充分利用该核心器件的种种特点,可谓非常适合现实的需求。比如:MCS-51系列的单片机的运算能力、完备的控制功能、加上完善的外部借口电路等都会对锅炉控制系统带来非常理想的效果。就外围芯片而言,尽量选取典型的、有利于扩展和替换的芯片和电路,为了尽量降低和节约生产成本,选用基于单总线的数字温度传感器DS18B20和LCD液晶显示器。DS18B20温度传感器具有耐磨耐碰、体积小、使用方便、封装形式多样等特点,适用于很多狭小空间的数字测温和控制。LCD液晶显示器本身作为一种超薄显示设备,显示器功耗很低,适用于使用各种电池的电子设备,非常方便。他们两者和单片机的家口比较容易,而且编程的强度不大,既缩短了系统的开发周期,又保证了系统的稳定运行,而却节省了开发成本。

该系统在软件上采用模块化的程序结构。控制程序为主程序,为整个系统软件的主线,其他功能模块采用子程序调用、查询等方式为调试和扩充提供方便。

该设计是采用单回路控制系统对锅炉的过热蒸汽温度进行控制,将AT89S51单片机作为核心,并包括温度的采集、显示、控制输出、执行机构和通信等模块组成。被控对象的关键在于对温度的测量和控制两个方面,测量温度是控制温度的基础,测温方面的技术相对成熟。但是由于被控对象越来越复杂,在控制温度方面存在很多问题。本论文采用PID算法对锅炉温度控制徐彤的设计,并利用仿真软件Matlabd对控制算法进行了仿真,最终实现对锅炉的温度控制系统的控制和实现。

2

唐山学院毕业设计

2 系统方案论证及工作原理

2.1 设计方案论证

该设计采用AT89S51单片机、7805电源稳压芯片、温度传感器DS18B20、液晶显示器LCD1602等核心软件。采用LCD液晶显示器来显示水位的上下限、当前水位、预先设定的温度警报值、当前采集的温度值,直观、缄口简单、变成强度不大、简单。这样就可以缩短系统的开发周期,减少系统的成本开销。另外在温度测量范围、精度、响应时间、稳定性方面DS18B20都要比热敏电阻好。境来开发本系统主控单片机的全部程序都是用汇编语言来编写的,采用Keilu集成开发环单片机的应用程序。

2.2 系统结构框图

锅炉温度控制系统的主控部分,由单片机构成。通过对案件电路进行温度报警值的设定之外,还采集温度和处理温度。然后和设定的警报值比较,如果测量值大雨上限值时就报警,加热停止。当测量值小于下限值时,重新启动加热装置,进行加热处理。以此反复处理便能达到对锅炉温度的控制。同时结合实际需求,本系统也对锅炉水位进行控制,液晶显示,显示水位上限值、水位下限值、温度报警值和实际温度值。图2.1为系统结构框图。

3

唐山学院毕业设计

报警 按键设定 液晶显示 稳压电源 AT89S51 复位 温度采集 给水泵 继电器 图2.1 系统结构框图

燃烧器

在工业生产中,锅炉是一种非常重要的动力系统。其中对锅炉温度的控制,是一个非常重要的环节。本系统的过程控制系统,主要用于燃气锅炉的水温控制系统。在燃气锅炉里,天然气、液化石油气作为燃料,锅炉中的水作为加热的对象,温度传感器传出的信号经过设定的电路的处理后,作为单片机系统的输入信号。本系统将对锅炉的水温和水位控制信号进行采样。

该系统的控制信号,通过继电器控制燃烧器内进出气,由三个进气阀实现对进出气的控制。燃烧器的作用:继电器接通燃烧器电源,之后燃烧器通过对其内部的光电检测管进行检测。如果有火光则便是点火成功,不需要气功点火变压器;如果没有火光,则启动点火变压器进行点火,同时电磁阀打开进气,这是电光管检测到有火焰,测关闭点火变压器,系统点火成功。该燃气锅炉根据用户的需要调节所需温度的热水,控制系统将温度传感器检测到的检测温度和温度的设定值进行比较,给出控制信号。如果检测温度大雨警报值时,单片机实行对继电器的

4

唐山学院毕业设计

电源关断处理,这是燃烧器断电,锅炉则不进行加热。温度传感器一直检测锅炉内部的水温;如果温度传感器检测的温度小于设定值时,单片机根据检测温度的比较信号,重新对继电器进行通电处理,锅炉则会重新加热。

本系统的燃烧调节系统采用有差调节系统。有差调节时,系统调节过程中,被调参数值的设定在参数范围内变动。在供热锅炉中,常采用的有差调节就能达到需求,所以该系统将采用有差调节,并采用双位控制。如图2.2所示。

双位控制 位式控制 有差调节系统 燃烧控制(调节)系统 无差调节系统 比例控制 比例积分调节(PI) 三位控制 比例积分微分调节(PID) 图2.2 燃烧调节系统

2.2.1主要器件的选择

1.选用Atmel公司的片机AT89S51。

2.选用Dallas半导体公司的度传感器DS18B20。 3.液晶显示器LCD1602。

2.2.2 锅炉辅助器件选择

1.奥林燃烧器:

型号:GP-300T

功率(kg):700-4000 火焰探 测器型号:QRA-2 伺服马达型号:SQM

气阀密封检漏器型号:VDK200/VPS504/DK2F 燃烧器控制:外置。

重量(kg):320

5

唐山学院毕业设计

4.2中断程序程序

中断服务程序K1是否按下 否 是 加1并示 否 K2是否按下 是 减1并显示 否 K3是否按下 是 返回

图4.2 中断服务程序

4.3 DS18B20温度采集子程序设计

DS18B20有严格的协议用来确保其数据的完整性。协议包括几种单线信号类型:复位脉冲,存在脉冲,写0、写1、读0、读1。所有这些信号类型,如果不存在脉冲,则其他的信号均由总线主机产生。开始和DS18B20进行任何通信,都要对其初始化,在接收到复位脉冲后,再对DS18B20进行正确的存储器和ROM命令的操作命令。在总线主机初始化的过程中,主机通过拉高单总线,以产生复位脉冲;接着,在主机释放总线,并进入模式,当释放总线后,总线被上位电阻

21

唐山学院毕业设计

拉高。当单总线器件检测到上升沿后,随后产生延时,在通过拉低总线产生存在脉冲。DS18B20温度采集的子程序流程图如图4.3所示。

开始 检测DS18B02 是否存在 是 跳过EOM匹配 否 发出温度转换 命令 跳过ROM匹配 发出温度读取 命令 保存采集的温度 结束

图4.3 DS18B20温度采集子程序流程图

22

唐山学院毕业设计

4.4 LCD液晶显示子程序设计

本系统采用16*2的LCD1602。单片机首先要对其初始化,然后将需要显示的字符促在LCD的存储地址和要求的显示地址送出。再检测LCD是否处于不能接受命令和数据的忙碌状态,若检测到LCD空闲,就可以写数据进行显示了。LCD液晶显示子流程图如图4.4所示。

开始 LCD液晶显示 模块初始化 将需要的显示信息和LCD的地址送出 是 检测LCD是否忙碌 否 写数据显示 结束

图4.4 LCD液晶显示子流程图

23

唐山学院毕业设计

总 结

本设计通过对单片机的控制,以实现锅炉温度控制的基本功能,主要利用继 电器对燃烧器的工作进行控制,并对锅炉的水位和温度进行检测、反馈,通过显示屏显示出水温和水位的状态信息,对其进行控制,以确保该系统能够在正常的范围下工作。

系统采用AT89S51芯片作为控制芯片,采用一线总线的温度传感器DS18B20,用LCD1602液晶显示模块显示水温和水位的状态信息。用这些简单的硬件设备使得硬件电路变得更加简单,而且性能更是得到了提高。再加上蜂鸣器的报警,让该系统在实际应用中更加的安全。无论从成本、能源使用率、操作难易程度、实用性、发展空间等发面,本系统的设计都能达到一个让人满意的效果。

本次毕业设计对于即将毕业走向工作岗位的我,是一次历练又是一次挑战,学习了很多以前未了解的知识,了解了如何实现一个设计的构建与完成。从刚开始设计方案的确立,各个硬件模块元器件的选型到电路的焊接直到最后的调试以及各个问题的解决,不断完善所遇到的问题。从这一整套设计做下来,整个设计方案成功的运行。带来的不仅是成功的成就感与愉悦感同时是自己能力认证的自豪感。在今后面对一个全新的事物知道如何确立解决方案,如何实现自己设立的目标这对以后人生的价值实现具有重大意义。在拿到自己不再熟悉的问题时首先查找资料确立一些基本的解决方案同时一步一步的推敲,一步步的解决遇到的问题。只有在解决问题是才能真正考验我们的能力。

在本次设计中,通过对大量资料的查阅和学习,更是让我体会到了课堂中所学习的知识应用于实际中这个过程中的难度,但是也是通过本次设计不仅让我了解了大量在课堂中学不到的东西,更是对课堂基础知识的巩固,并且锻炼了自激的实际动手操作能力,为以后的工作打下了坚实的基础。但该次设计并没有制作实物进行模拟操作,如果应用与实际中肯定有或多或少的缺陷,如果以后能做出实物进行模式操作,则会让本次设计更加完美,更有说服力。

24

唐山学院毕业设计

致谢

丰富多彩的四年大学生活即将落入尾声,回顾匆匆而过的大学生活,收获颇丰,感慨也颇多。作为唐山学院的一名学子,首先要感谢的就是培养教育了我的学校,为我们大家的学习和生活创造了一个积极健康,欢乐向上的环境。其次是要感谢教书育人的老师们,在我们刚刚从满付着高考的压力升学上来的时候,大学里的一切对于我们来说都是新鲜而又充满着好奇的,所以我们的身心充满着贪玩的欲望,而老师则一直在教育鼓励着我们认真学习,规划好自己的生活。教书、育人,传道、授业、解惑是我们老师的代名词。大学四年的学习生活,老师不仅教会了我们专业知识,更加教会了我们在书本里学不到的譬如发现问题和解决问题的能力,与人沟通的能力以及待人接物等等,这些是我人生中得到的一笔宝贵的财富。 在这次毕业设计的过程中,我从对毕业设计无从下手,一无所知的情况,直到将毕业设计制作完成的期间,我的指导老师杨老师给予了我很多帮助,给我提供了很多相关的资料,为我解答了很多专业问题上的疑惑。在器件的选择,电路的焊接,程序的下载以及系统的调试上,都得到了指导老师的帮助。

通过本次毕业设计的制作,我得到了许多得到感悟。首先对于分散的知识进行系统的,有条理的整合,可以使我们能够抓住关键事物的主体脉络,从而不至于走题。也可以为系统各个模块的有序规划和制作打下良好的基础。正所谓先主体后部分,自己在思维和思路上也得到了进步。

结束了毕业设计,使我对事物有了一个更新,更深,更全面的一个认识。也为我四年的大学生活画上了一个圆满句号。

在此,我再次感谢培育我的唐山学院还有教书教人,为学生孜孜不倦的可爱的老师们以及指导、帮助我完成毕业设计的指导老师杨老师表示感谢。

丰富多彩的四年大学生活即将落入尾声,回顾匆匆而过的大学生活,收获颇丰,感慨也颇多。作为唐山学院的一名学子,首先要感谢的就是培养教育了我的学校,为我们大家的学习和生活创造了一个积极健康,欢乐向上的环境。其次是要感谢教书育人的老师们,在我们刚刚从满付着高考的压力升学上来的时候,大学里的一切对于我们来说都是新鲜而又充满着好奇的,所以我们的身心充满着贪玩的欲望,而老师则一直在教育鼓励着我们认真学习,规划好自己的生活。教书、育人,传道、授业、解惑是我们老师的代名词。大学四年的学习生活,老师不仅教会了我们专业知识,更加教会了我们在书本里学不到的譬如发现问题和解决问题的能力,与人沟通的能力以及待人接物等等,这些是我人生中得到的一笔宝贵的财富。

在这次毕业设计的过程中,我从对毕业设计无从下手,一无所知的情况,直到将毕业设计制作完成的期间,我的指导老师杨老师给予了我很多帮助,给我提

25

唐山学院毕业设计

供了很多相关的资料,为我解答了很多专业问题上的疑惑。在器件的选择,电路的焊接,程序的下载以及系统的调试上,都得到了指导老师的帮助。

通过本次毕业设计的制作,我得到了许多得到感悟。首先对于分散的知识进行系统的,有条理的整合,可以使我们能够抓住关键事物的主体脉络,从而不至于走题。也可以为系统各个模块的有序规划和制作打下良好的基础。正所谓先主体后部分,自己在思维和思路上也得到了进步。

结束了毕业设计,使我对事物有了一个更新,更深,更全面的一个认识。也为我四年的大学生活画上了一个圆满句号。

在此,我再次感谢培育我的唐山学院还有教书教人,为学生孜孜不倦的可爱的老师们以及指导、帮助我完成毕业设计的指导老师杨老师表示感谢。

26

唐山学院毕业设计

参考文献

[1] 潘永雄,张晓蓟.新编单片机原理与应用[M].西安:西安电子科技大学出版社,2002.

[2]燃油燃气锅炉房设计手册编写组.燃油燃气锅炉房设计手册[M].北京:机械工业出版社,1998.

[3] 张仁青,李彦,朱传堂等,燃油、燃煤气、燃煤锅炉房的对比和展望[J].江苏暖通空调制冷,1998,3:7-11.

[4] YLZK-C42型全自动常压油炉电脑控制器使用说明书[M].南京二南京仁泰锅炉白控设备有限公司.

[5] 陈兆煊,陈伟权.燃油、燃气常压热水炉国内外发展应用概况分析和建议[J].工业锅炉,1998,3:71-74.

[6] 李之光等常压热水锅炉及其供暖系统[M].北京:机械工业出版社,1992. [7] 李晓光,鹿道智,于惠君等.小型然油燃气锅炉[M]大连:大连理工大学出版社,1999.

[8] 何立民.单片机应用技术选编[M].北京:北京航空航大大学出版社,2000.

[9] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,1996. [10] 胡建,刘玉宾,朱焕立.单片机与接口技术[M].北京:机械工业出版社,2004.

[11] 高锋.单片微机应用系统设计及实用技术[M].北京:机械工业出版社,2004.

[12] 肖玲妮,袁增贵,Protel 99 SE印刷电路板设计教程[M].北京:清华大学出版社,2003.

[13]陈杰,黄鸿.传感器与检测技术[M].北京:高等教育出版社. [14] 高才苹.新型供热锅炉手册[M].上海:上海交通大学出版社,2002. [15] 超钦新,惠世恩.燃油 燃气锅炉[M].西安:西安交通大学出版社,1999. [16] Jams M. Sihigtrolh. Understanding Small Microcontroller[M]. PTR Prentice

Hall, 1993,112-123. [17]

Motorola,

Microcontroller

Setectro

Guide.

Quarter[M].2001,4:146-157.

[18]K.J.Astrom. T.Hagglund, The future of PID control,Control Engineering Practice 9 [M](2001)1163-1175

27

唐山学院毕业设计

附录:总程序

TEMP_ZH DATA 24H ;实时温度值存放单元 TEMPL DATA 25H ;温度存放低八位 TEMPH DATA 26H ;温度存放高八位

TEMPHC DATA 29H ;存放百位数和十位数BCD TEMPLC DATA 2AH ;存放个位数和小数BCD

TEMP_AL EQU 21H ;温度报警值存放单元 TEMP_AL1 EQU 31H ;存放报警温度值的个位 TEMP_AL2 EQU 32H ;存放报警温度值的十位 WATER_AL1 EQU 33H ;当前水位的个位数存放单元 WATER_AL2 EQU 34H ;当前水位的十位数存放单元 WATER_LEVEL EQU 22H ;当前水位存放单元 WATER EQU 28H ;当前水位存放单元 SPK EQU P3.7

;蜂鸣器引脚定义

;数据/指令寄存器选择输入端

BOILER_SW EQU P1.2 ;给水泵开关 K1 EQU P24 ;报警温度值温度增加 K3

EQU P2.6;设定报警温度确定键

WATER_SW_H EQU P1.7 ;燃烧器开关 K2 EQU P2.5 ;报警温度值减少

GREEN EQU P1.0 ;绿灯为正常工作指示灯

RED EQU P1.1 ;红灯为报警指示灯

LCD_X EQU 2FH ;LCD 地址变量 LCD_RS EQU P2.0

LCD_RW EQU P2.1 ;读写控制输入端 LCD_EN EQU P2.2 ;使能信号输入端 flag1 equ 2FH.7 ;DS18B20是否存在标记

flag equ 2FH.6 ;报警标记

date_line1 equ p3.3 ;通道1DS18B20数据口

;===================================================== ORG 0000H JMP MAIN

28

;跳到主程序入口

唐山学院毕业设计

MAIN: MOV SP,#60H MOV A,#00H

;设置堆栈

MOV R0,#20H ;将 20H-2FH 单元清零 MOV R1,#10H CLEAR: MOV @R0,A INC R0

DJNZ R1,CLEAR

MOV WATER,#50

;对 LCD 做初始化设置及测试,并写自

MOV TEMP_AL,#23 CALL SET_LCD 定义数据入CGRAM

;SETB SPK ; LCALL DIS_TEMP1 CALL MENU_OK1 MOV A,#0CEH

;SETB SPK

;

;LCD显示温度采集和水位控制信息

LCALL DIS_TEMP1 ;显示已设定的温度报警值

;当前温度摄示度标记的显示位置

CALL TEMP_BJ ;显示当前温度摄示度的标记

CALL TEMP_SET ;显示设定温度报警值的信息 MOV A,#0C9H LCALL DIS_TEMP

MOV 20H,#0

;调用按键扫描程序

;报警湿度值加1

LCALL KEY

;设定温度摄示度标记的显示位置 ;显示初始化的报警温度

CALL TEMP_BJ ;显示温度摄示度的标记 MAIN1:

JNB 20H.0,DEC_TEMP LCALL DIS_TEMP AJMP MAIN1 DEC TEMP_AL LCALL DIS_TEMP AJMP MAIN1

;如果没按任何键就返回MAIN1继续扫

;报警湿度值减1 ;显示改变后的报警温度 ;显示改变后的报警温度

ADD_TEMP: INC TEMP_AL

DEC_TEMP: JNB 20H.1,CONFIRM

CONFIRM: JNB 20H.2,MAIN1

29

唐山学院毕业设计

SETB RED ;CLR GREEN

LJMP START

;================================================== DIS_TEMP: MOV A,TEMP_AL ;显示改变后的报警温度

MOV B,#10 DIV AB

MOV TEMP_AL2,A ;保存温度报警值的十位数 MOV LCD_X,#7 ;设置位置

CALL SHOW_DIG2 ;显示报警温度值的十位 INC LCD_X

MOV A,TEMP_AL MOV B,#10 DIV AB

MOV TEMP_AL1,A ;保存温度报警值的个位数 RET

;显示当前水位的值

MOV A,B ;个位

CALL SHOW_DIG2 ;显示报警温度值的个位 ;================================================== DIS_WATER: MOV A,WATER

MOV B,#10 DIV AB

MOV LCD_X,#7 ;设置位置

MOV WATER_AL2,A ;保存温度报警值的十位数

CALL SHOW_DIG1 ;显示报警温度值的十位 INC LCD_X

MOV A,WATER MOV B,#10 DIV AB

MOV WATER_AL1,A ;保存温度报警值的个位数 RET

MOV A,B ;个位

CALL SHOW_DIG1 ;显示报警温度值的个位 ;==================================================

30

唐山学院毕业设计

;================================================== DIS_TEMP1: MOV A,TEMP_AL ;显示已设定的温度报警值

MOV B,#10 DIV AB

MOV TEMP_AL2,A ;保存温度报警值的十位数 MOV LCD_X,#3 ;设置位置

CALL SHOW_DIG2 ;显示报警温度值的十位 INC LCD_X

MOV A,TEMP_AL MOV B,#10 DIV AB

MOV TEMP_AL1,A ;保存温度报警值的个位数 RET

MOV A,B ;个位

CALL SHOW_DIG2 ;显示报警温度值的个位

START: CALL RE_18B20_1 ;检测通道1的DS18B20是否存在,并设置12位精确度

CALL RESET1 ;18B20复位子程序,检测18B20是否存在

JNB FLAG1,START11 ;如果DS1820不存在则跳START11 ; CALL MENU_OK1 ; MOV A,#0CEH

; CALL TEMP_BJ ;显示温度摄示度的标记 JMP START21

START11: CALL MENU_ERROR1 ;如果不存在则显示ERROR MOV A,#0CBH

CALL TEMP_BJ ;显示温度摄示度的标记 JMP START

START21: ;检查到有温度传感器后的处理 CALL RESET1 否存在

JNB FLAG1,START11 ;DS1820不存在则转到START11报错

;18B20复位子程序,再次检测18B20是;如果存在则显示OK

31

唐山学院毕业设计

MOV A,#0CCH ; 跳过ROM匹配 CALL WRITE1

MOV A,#44H ; 发出温度转换命令 CALL WRITE1 CALL RESET1

MOV A,#0CCH ; 跳过ROM匹配 CALL WRITE1

MOV A,#0BEH ; 发出读温度命令 CALL WRITE1 CALL READ1

M1: CAll CONVTEMP 存放到TEMPHC、TEMPLC

CAll DISPBCD

;显示区BCD码温度值刷新子程序,即把

BCD转为十六进制 6FH-73H,;其中70H存放小数点,6FH存放十分位数,71H存放个位数,72H存放十位数,73H存入百位数

MOV A,72H ;跳过85.0摄氏度

DISPLAY: CALL DELAY2

;读出温度值到TEMPH、TEMPL

LJMP M1 ;跳到温度处理、显示程序

;处理温度BCD码子程序,并将处理结果

CJNE A,#8,DISPLAY MOV A,71H CJNE A,#5,DISPLAY MOV A,6FH CJNE A,#0,DISPLAY LJMP START

CALL CONV MOV A,#0C5H

;将采集到的温度在LCD1602显示出来

;显示已设定的温度报警值

;LCALL DIS_TEMP1

CALL TEMP_BJ ;显示报警温度摄示度的标记

LCALL DIS_WATER ;显示当前水位的值 MOV 20H,#0 LCALL KEY

;调用按键扫描程序

32

唐山学院毕业设计

JNB 20H.0,DEC_WATER

;当前水位与水位上限值80比较

LCALL DIS_WATER ;显示当前水位的值 AJMP COMPARE1 DEC WATER

ADD_WATER:INC WATER

DEC_WATER:JNB 20H.1,COMPARE1 ;当前水位与水位上限值80比较

;水位减1

LCALL DIS_WATER ;显示当前水位的值 COMPARE1: CLR C

;当前水位与水位上限值80比较

MOV A,WATER_AL2 ;取得当前水位的十位数 CJNE A,#8,NEXT11 ;十位数比较 AJMP LOOP1

;如果十位数相等,则转去比较个位数

;如果十位数小于8,转去比较下限值

NEXT11: JC COMPARE2 CLR SPK

;如果十位数大于8就报警

SETB WATER-SW-H ;关闭给水泵 CLR RED

SETB flag CLR SPK

;报警标记置位

;如果个位数大于0就报警

SETB GREEN AJMP COMPARE3

;转去当前温度与设定的报警温度比较

LOOP1: CLR C

MOV A,WATER_AL1 ;取得当前水位的个位数 JZ COMPARE3

;如果个位数等于0去比较温度

SETB GREEN CLR RED

SETB WATER-SW-H ;当前水位高于上限值关闭给水泵开关

;当前水位与下限比较

;取得当前水位的十位数

AJMP COMPARE3 COMPARE2: CLR C

MOV A,WATER_AL2

AJMP COMPARE3

CJNE A,#2,NEXT12 ;个数比较

;如果十位数等于2,则表明水位大于或等于

;十位数大于2就转去当前温度与设定的

20就转去比较温度

NEXT12: JNC COMPARE3

33

唐山学院毕业设计

报警温度比较

SETB FLAG

;报警标记置位

;如果十位数小于2就报警

CLR SPK

CLR WATER_SW_H ;如果当前水位低于下限值就打开给水泵开关 CLR BOILER_SW ;当前温度超过温度报警值关闭锅炉燃烧器开关,停

止加热

CLR RED

SETB GREEN

;转去当前温度与设定的报警温度比较

;当前温度与设定的报警温度比较

AJMP COMPARE3 COMPARE3: CLR C

MOV A,72H

CJNE A,TEMP_AL2,NEXT1 ;实际温度值与报警温度值的十位数比较 AJMP NEXT ;SETB flag CLR SPK

;十位数相等时就转去比较个位数

;实际温度值的十位数少时则转START0 ;报警标记置位

NEXT1: JC START0

;实际温度值的十位数高于报警温度值的十位数就报警

SETB BOILER_SW ;当前温度超过温度报警值关闭锅炉燃烧器开

关,停止加热 SETB RED

;SETB flag

;报警标记置位

CLR SPK ;十位数相等时,实际温度值的个位数高于报警温度值的个位数就报警

SETB BOILER_SW ;如果当前温度超过温度报警值时就关闭锅炉燃烧器开关,停止加热

34

CLR GREEN

CLR BOILER_SW ;打开锅炉燃烧器开关,继续加热 LJMP START MOV A,71H

CJNE A,TEMP_AL1,NEXT2 ;实际温度值与报警温度值的个位数比较 AJMP NEXT0

;个位数相等时就转去比较十分位数

;实际温度值的个位数少时则转START0 ;比较完毕,重新采集温度和水位

NEXT: CLR C

NEXT2: JC START0

唐山学院毕业设计

CLR RED SETB GREEN

LJMP START ;比较完毕,重新采集温度和水位

;实际温度值的十分位数等于0时则转START0

NEXT0: MOV A,6FH JZ START0 警

SETB BOILER_SW ;如果当前温度超过温度报警值时就关闭锅炉 CLR RED SETB GREEN LJMP START

;比较完毕,重新采集温度和水位

;如果水位出现报警但温度没有出现报警时就继

燃烧器开关,停止加热

;SETB flag CLR SPK

;报警标记置位

;十位数和个位数相等时,实际温度值的十分位数大于0就报

START0:

JB flag,LOOP4 续采集温度和水位 SETB SPK 后继续采集温度和水位

SETB RED CLR GREEN

;如果水位和温度都没有出现报警时就使绿灯亮,然

LOOP4: LJMP START

;====================================================================

;==============================================

;================================================ LP:

ORL P1,#03H;逻辑或,检测水位 MOV A,P1;读P1口

JNB ACC.3,LP1, P1.3=0跳转到LP1

JB ACC.4,LP2;当P1.4=0表示实际水位在下限,跳转 BK: MOV A #20 ACALL D2S;调延时2S子程序 AJMP LP

35

本文来源:https://www.bwwdw.com/article/12bg.html

Top