基于单片机的热水器控制板的设计

更新时间:2024-05-18 04:22:01 阅读量: 综合文库 文档下载

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

本科毕业设计(论文)

题 目: 基于单片机的热水器 控制板的设计 学 院: 机械工程学院 专 业: 机械设计制造及其自动化 姓 名:

学 号: 121401402039 指导教师:

教师职称: 副教授

填写日期:2016年5月22日

贵阳学院毕业设计(论文)

目 录

摘 要 .................................................. III Abstract ................................................. IV 第1章 绪论 ............................................... 1

? 1.1 课题研究背景 ......................................... 1 ? 1.2 各类家用热水器的特点 ................................. 1

1.2.1 储水式家用电热水器 ......................................... 1

1.2.2 即热式家用电热水器 ......................................... 2 1.2.3 燃气式家用热水器 ........................................... 2 1.2.4 太阳能家用热水器 ........................................... 3

? 1.3 课题研究的意义 ....................................... 3

第2章 系统总体结构及方案设计 ............................. 4

? 2.1 硬件的选用 ........................................... 4

2.1.1 单片机的选择 ............................................... 4 2.1.2 传感器的选择 ............................................... 5

? 2.2 系统硬件连接 ......................................... 7 ? 2.3 系统主控制程序设计 ................................... 8

第3章 系统硬件电路设计 ................................... 9

? 3.1 时钟电路设计 ......................................... 9 ? 3.2 复位电路 ............................................. 9 ? 3.3 检测电路 ............................................ 10 ? 3.4 输出控制电路 ........................................ 10 ? 3.5 温度设置电路 ........................................ 13 ? 3.6 显示电路 ............................................ 13 ? 3.7 硬件电路总图 ........................................ 15

第4章 系统软件设计 ...................................... 16

? 4.1 单片机用C语言编程的特点 ............................ 16 ? 4.2 温度检测程序流程图 .................................. 17 ? 4.3 继电器控制程序流程图 ................................ 18 ? 4.4 LCD显示程序流程图 .................................. 19 ? 4.5定时器中断程序流程图 ................................ 20

第5章 基于Proteus与Keil的联合仿真 ...................... 21

? 5.1 Proteus仿真简介 .................................... 21 ? 5.2 Keil 使用简介 ....................................... 21 ? 5.3 联合仿真 ............................................ 21

总 结 ................................................... 24 参考文献 ................................................. 25

I

贵阳学院毕业设计(论文)

致 谢 ................................................... 26 附录: ................................................... 27

II

贵阳学院毕业设计(论文)

基于单片机的热水器控制板的设计

摘 要

本文系统地介绍了基于AT89S52的家用电热水器温度检测控制系统的组成、设计方案、电路原理、程序设计以及系统仿真过程。该系统使用DS18B20进行温度检测,利用AT89S52单片机作为控制核心,运用C语言编程实现系统对温度的控制。该系统由单片机最小系统、传感器电路、LCD显示电路、控制电路、温度设置输入电路六大部分组成。借助PROTEUS软件,实现系统的电路设计和仿真。

该智能电热水器温度控制系统设计完善,实现方案简单易行。采用C语言编程进行控制,可以实现智能水温检测及显示,智能加热,并具有极高的整机稳定性及准确性。

关键词:单片机,温度控制,C语言编程,DS18B20

III

贵阳学院毕业设计(论文)

Design of electric water heater control panel based on single

chip microcomputer

Abstract

The composition, design scheme, circuit principle, program design and system simulation process of the temperature measurement and control system of domestic electric water heater based on DS18B20 are introduced in this paper. This system uses DS18B20 to carry on the temperature detection, uses the AT89S52 monolithic computer as the control core, uses the C language programming to realize the system to the temperature control. The system consists of six parts: the smallest single-chip system, sensor circuit, alarm circuit, LCD display circuit, control circuit, temperature setting input circuit. With the aid of PROTEUS software, the circuit design and Simulation of the system are realized.

The intelligent electric water heater temperature control system is perfect, the realization of the program is simple and easy to implement. Using the software design to control, it can realize the intelligent detection of water temperature and water pressure, intelligent heating, and has a high stability and accuracy of the whole machine.

Key Words: Single Chip Microcomputer, Temperature Control, C Language Programming,

DS18B20

IV

贵阳学院毕业设计(论文)

第1章 绪论

1.1课题研究背景

热水器是一种常用家用电器,广泛应用于洗手间、厨房、浴室使用,为人们的生活提供了很大的便捷。常用家用热水器的设计需要考虑使用是否方便、有无污染、是否安全、保温节能的效果如何等特点。随着人民生活水平的不断提升和电力技术的不断发展和普及,其中电热水器以其优秀的使用体验,得到了广大人群的青睐。设计制造更实用、更节能、更安全、更方便的智能家用电热水器是设计工程师和生产企业不断追求的目标。

随着家用热水器的不断普及,市面上出现了各具特色的热水器,目前市场上流行的家用热水器主要有储水式家用电热水器、即热式家用电热水器、太阳能家用热水器、燃气式加热热水器,其中储水式家用电热水器和即热式家用电热水器由于电力工程的覆盖面较广,备受消费者的追捧;各类热水器各自存在着本身的优缺点,往往适合各种不同的场合,但作为一款智能化的家用电热水器,其温度检测与控制系统的设计将直接影响使用性能;因此,一套合理的温度检测和控制系统的设计会给用户更好的使用体验,同时也将影响产品在市场的占有额。

1.2各类家用热水器的特点

根据市场调研反馈的信息,目前的家用热水器的市场基本由储水式家用电热水器、即热式家用电热水器、燃气式家用热水器、太阳能家用热水器占有,下面分别对上述四款热水器的优缺点进行分析介绍。 1.2.1 储水式家用电热水器 优点:

1. 储水式家用电热水器在使用前对内胆内的储水进行提前加热,在使用过程中对电热

管进行断电处理,无需加热,杜绝了触电事故的发生,使用起来较为安全。 2. 在对内胆内的水进行加热时,电热管产生的功率较小(一般不会超过2.5kW),不

会给家用电路造成过大的负担,因此也无需为其提前预设或改装电路。 缺点:

1. 由于储水式家用电热水器采取提前预热的方式对内胆内的水进行加热,使用过程中

采取了断电处理,因此出水量受内胆容积和预加热温度的影响,无法实现持续出水。 2. 需要内胆进行储水,因此热水器整体体积较大,在安装过程中存在不便。

第 1 页 共 41 页

贵阳学院毕业设计(论文)

3. 加热功率小,使用超过额定容量时需要等待较长的时间。 4. 使用后没用完的热水会慢慢冷却,造成浪费。 5. 易结垢,污垢清理麻烦。

6. 内胆如果采用带压工作方式,则对内胆的制造工艺较高,成本大幅上升。 1.2.2 即热式家用电热水器 优点:

1. 即热式家用电热水器使用的电热管功率较大,可实现快速加热,无需等待。 2. 即热即用,大幅减小了因热传导照成的电能浪费。 3. 能实现持续出水,出水量不受其他条件限制。 4. 去除了内胆储水的结构,体积较小,安装方便。

5. 由于不像储水式电热水器内胆那样需要较高的制造工艺,所以整体成本较低。 缺点:

1. 由于采用即热式加热方式,所以需要电热管的加热功率较大,(6.5kW以上)给家

庭电路造成不小的负担,安装时需要提前预设或改装电路。

2. 水的温升在流量和加热功率恒定的情况下是恒定的,所以在冬天水的初始温度较低

的情况时,即热式家用电热水器实现的温升往往不能满足使用要求。 1.2.2 燃气式家用热水器 优点:

1. 燃气式家用热水器采用天然气进行加热,加热快。 2. 体积小,安装方便。

3. 与即热式家用电热水器相比,不受加热功率的限制,能实现较大的温升。 4. 同即热式家用电热水器一样,采用即热即用的加热方式,能实现持续出水,而且不

会由于热传导损失过多的热量。 缺点:

1. 目前天然气管道铺设的普及面还不够全面,使用罐装天然气更换比较麻烦。 2. 使用过程中由于天然气燃烧不充分容易产生一氧化碳等气体,在通风条件不好的情

况下易出现一氧化碳中毒的事故。

第 2 页 共 41 页

贵阳学院毕业设计(论文)

1.2.3 太阳能家用热水器 优点:

1. 太阳能家用热水器使用太阳能加热,能减少电能的使用或不使用电能,能最大化地

节约电能,利用绿色能源。

2. 使用时的水温基本恒定,不会出现较大的温差变化。 缺点:

1. 太阳能热水器的体积较大。

2. 出水量受热水器容积的影响,容器里的水用完了之后不能即刻加热。 3. 安装的位置要求光照条件充足,受地理位置和天气的影响较大。 4. 安装需要铺设较长的管路,还需要注意保温,造成安装不便。

1.3课题研究的意义

本次设计以弥补上述两种电热水器的不足为目的,将即热式和储水式热水器的优点进行结合,在使用前只对小部分水进行预热,在使用过程中通过电热管和储存的热水对使用的水同时进行加热,达到将水温提升到使用要求温度的同时不过大地增加使用过程中消耗的功率,在持续使用过程中也避免等待时间过长的情况出现。

家用电热水器控制板硬件包括中央处理器、温度检测传感器、压力传感器、加热控制驱动电路、停水报警电路、电源电路、输入键盘、显示模块,因此在设计过程中应依次对硬件的选择进行方案论证,合理地选用硬件有利于实现系统的功能、性能及节约成本。

设计以实现温度的检测、控制、显示的自动化,编写合理的控制程序,使其控制系统智能化,让使用更加人性化,自动实现最大化的节能。

第 3 页 共 41 页

贵阳学院毕业设计(论文)

第2章 系统总体结构及方案设计

2.1硬件的选用

2.1.1单片机的选择 单片机的定义

单片微型计算机是计算机技术和集成电路制造技术发展后的产物。随着计算机技术和集成电路制造技术的发展,将中央处理器(CPU)、时钟电路、定时/计数器、中断系统、串行端口、并行端口、程序存储单元(ROM)、数据存储单元(RAM)和系统总线等庞大电路集中在一块IC芯片上,使其具有逻辑运算、检测输出的 功能,具有一台计算机的基本属性,简称单片机,又称单片微控制器;在单片机外围设计检测、输入、控制电路,广泛应用于智能仪表、工控设备、家用电器、通讯设备、导航系统等,具有很广泛的应用领域。

随着半导体技术的发展,单片机的性能得到不断的更新,其运算速度、运行稳定性、数据存储空间得到了很大的提升,解决了单片机阶段CPU处理数据功能弱、数据存储空间小、I/O接口少等难点,而且在其制造成本、运行功耗和体积大小上也得到了很大的完善,为单片机应用于更复杂的场合提供了很大的空间。

中央处理器的选择直接决定控制系统运行的稳定性和扩展功能,在满足功能的同时,为适应市场竞争的选择,还需考虑其成本的计算,保持较高的性价比;因此控制系统核心的选用需要综合设计的需要及市场的竞争力,下面列举几种目前市场上常用的几种中央处理器的相关性能指标。 AT89C2051

占用空间小、功耗小等特点;

含有中断、定时/计数器;但IO口和存储空间较小,不利于系统功能的扩展。 AT89C51

低损耗、高性能,具有AT89C2051的所有功能;

32个IO口,128字节内部RAM,4K字节Flash闪速存储器; 两个16位定时/计数器,能实现基本功能的扩展,价格比较便宜。 AT89S52

具有AT89C2051和AT89C51的所有功能,32个IO口,8K字节在系统可编程Flash

第 4 页 共 41 页

贵阳学院毕业设计(论文)

存储器,三个16位定时器/计数器,由于AT89S52的生产改进了工艺,其成本与AT89C51不相上下,有的甚至比AT89C51更低。

通过对上述三种单片机的综合比较,本设计选用AT89S52作为控制系统的中央处理器,经过比较我们可以得出AT89S52在满足设计需求的同时,具有更多的IO接口、RAM及定时计数功能,有利于系统的功能扩展;由于采用了更先进的制造工艺,在制造成本上具有很大的优势,能保持较高的市场竞争力。 2.1.2传感器的选择 传感器的定义

传感器(transducer/sensor)是能够一定的规定信号并按照一定规律转变成控制器可以利用信号的元件或装置,一般由转换元件和敏感元件共同组成,其中敏感元件可直接测量被测量的变化值,转换元件是指将敏感元件检测的变化量转换为可用于传输和转换的电信号部分,用于控制器的数据输入,进行逻辑运算使用。

在有些领域,也将传感器成为检测器、变换器及探测器等。按照输出信号进行分类,可将传感器分为模拟传感器、数字传感器、膺数字传感器和开关传感器;模拟传感器可将被检测的非电学量信号直接转换为电阻、电压或电流等模拟电信号;数字传感器可将非电学量信号通过敏感元件检测后,经过转换元件转换为可供逻辑运算的数字信号;膺数字传感器可将被检测非电学量信号转换为频率信号或者周期信号输出,开关传感器可将非电学量信号转换为当达到一定阈值后输出一个设定的高电平信号或低电平信号。在传感器的选择中可根据其对检测信号需要的输出方式(例如开关信号、数字信号、模拟信号、脉冲信号等)进行选择。 Pt100/Cu50

温度是表征物体冷热的物理量,它可以通过物体随温度变化的某些特征(如电阻、电压变化等特征)来间接测量,金属铂(Pt)和金属铜(Cu)的电阻值随温度变化而变化,并且具有良好的重现性和温度性,由此可以利用铂和铜的此种物理特性制成温度传感器,用于测量-200℃~300℃范围内的温度,热电阻将温度造成传感器敏感元件的变化量转换成电阻变换量输出,电阻与温度的关系由各类热电阻传感器的分度特性决定。

传感器将由温度造成的电阻变化量通过辅助测量电路的配合转换为电压信号或电流信号,同时设计滤波电路去除其中的干扰信号,保证检测信号的精确性。由于在转换过程中模拟信号的变化量是按照一定的比例转换成可用信号的,所以为了保证温度测量

第 5 页 共 41 页

贵阳学院毕业设计(论文)

结果的精确性,在设计测量电路时要求保证被测量信号在转换时尽量满足线性化,并能满足一定的稳定性,防止由于测量电路带来其他附加误差,影响测量结果。 DS18B20

DS18B20数字温度传感器可以提供9、10、11、12位摄氏温度测量,分别的测量精度为0.5℃、0.25℃、0.125℃和0.0625℃;在应用于温度测量领域时,只需单线即可完成数据传输,不需要其他外围电路和元件进行辅助;在供电方面可选择外部供电,也可以选择寄生电源供电;由于每片DS18B20传感器上都有一个唯一的序列号,因此可以在一条总线上并联多个DS18B20传感器,应用于多点检测,节省微处理器的IO端口;检测的数据拥有非易失性、上下触门限和可编程报警功能。 主要特点:

1. 通信接口只需要一条线即可和控制器进行双向通讯。 2. 每个器件有一个存储在内置ROM中的唯一64位的串行代码。 3. 多点性能大大的简化了温度测量的配置。 4. 不需要外部器件。 5. 可通过数据线直接供电。

6. 温度检测范围:-55℃~125℃(-67℉~257℉)。 7. 测量精度:±0.5℃(-10℃~85℃)。 8. 温度传感器分辨率9到12位用户可选。 9. 12位温度数字转换时间最长750ms。 10. 用户自定义的非易失存储报警上/下限。

11. 报警搜索命令标识和寻址超出编程设定温度上/下限的器件。 12. 接口程序与DS1822兼容。

经过对比,本设计采用一线数字温度传感器作为控制系统温度检测元件,其主要考虑的因素有以下几个方面:

系统特性:DS18B20的测温范围在-55℃~+125℃之间 ,最低的检测精度为士0.5℃;检测温度精度在9~12位可编程调节,测量的温度能够直接转换为16位的二进制数据的方式输出;0.025℃精度转换的最长时间为750ms;供电方式可以通过数据线直接供电或外部电源方式供电,系统工作的功耗极低。

成本分析:由于半导体技术和计算机技术的高速发展,大型集成电路的功能越来越

第 6 页 共 41 页

贵阳学院毕业设计(论文)

全面,性能越来越稳定,而且体积也在不断地缩小,制造成本也越来越低。DS18B20的体积和普通三极管的大小差距不大,安装及其方便,单价也只有十元左右的成本。

系统复杂性:由于DS18B20采用单总线接口方式与AT89S52连接的方式,因此只需要占用AT89C51的一个I/O端口就可以实现数据的双向传输,而且在一条总线上可以挂载多个DS18B20对温度进行多点检测,无需像模拟传感器那样设计放大电路,滤波电路以及A/D转换电路,大大地减少了系统整体的连线数量,将线路连接的复杂度降到最低,减少由于连线产生的不必要的工作量;同时有利于提高系统运行的稳定性。

安装、调试及维护:由于采用单总线的连接方式,使系统的连线数量和使用元件得到了很大的简化,因此在系统的安装、调试和维护上具有很大的方便。同时由于DS18B20本身是一个全数字元器件,抗干扰的能力较强,出现故障机率也较小,无形中减少的系统的维护工作。

DS18B20传感器拥有三根外部引线:DQ:数据传输总线;VDD:外部供电线;GND:共用接地线;DS18B20可以采用数据线供电和外部供电两种供电方式;采取数据线供电方式时需要将外部供电线接地,然后通过内部电容在系统闲置时向数据线获取电源,用于完成温度的转换,当转换需要的时间较长;采用外部供电时,只需将外部供电线接入+5V电源即可,这种供电方式在温度转换上需要的时间较少。

2.2系统硬件连接

系统设计硬件原理结构如图2.1所示。系统以AT89S52为控制核心,外围电路由复位电路、晶振电路、设置按钮、LCD显示电路、加热控制电路、DS18B20温度检测电路组成。

图2.1 硬件连接原理结构图

第 7 页 共 41 页

贵阳学院毕业设计(论文)

2.3系统主控制程序设计

系统控制程序流程如图2.2所示。系统初始化后会给系统一个初始值,之后LCD显示其当前检测温度和设置温度;如果温度设置按键按下,则可利用加减按键重新设置温度大小,然后判断检测的实际水温是否达到设定温度,若温度设置按键没有按下,则直接将检测的实际水温与初始设定值进行判断;当DS18B20检测的温度低于设定温度时,控制电路吸合继电器接通加热电路,电热管对水进行加热升温,当温度达到设定温度时,AT89S52发出信号将控制电路的继电器断开,加热电路停止工作,进入保温状态,当水温低于设定温度时再次进入加热状态。

开始 初始化 显示温度 N 按键是否启动 Y 设置温度 Y 是否达到设置温度 N 加热 结束

图2.2 控制程序流程图

保温

第 8 页 共 41 页

贵阳学院毕业设计(论文)

第3章 系统硬件电路设计

3.1时钟电路设计

时钟电路类似于人的心脏,没有时钟电路,单片机就无法完成驱动,也不能运行其内部的程序,单片机内所有的逻辑运算和数据处理,都是通过时钟信号按照一定的节拍运行;时钟信号为单片机提供一定的时间基准,单片机所作的每一个动作和数据处理,都对应着相应的时钟周期,单片机时钟信号的周期越短,其运行频率就越高,对应完成动作或者处理数据的速度就越快;所以,时钟信号影响着单片机运行代码的效率,同时也直接影响着单片机运行的稳定性。单片机使用的时钟电路主要有内部时钟电路和外部时钟电路两种方式;内部时钟通过外部连接的石英晶体和电容构成自激振荡器在单片机内部时钟电路产生一定频率的时钟信号,用于驱动单片机的运行;外部时钟通过外部时钟电路产生时钟信号直接通过单片机引脚输入到单片机内部供单片机运行使用。

为时系统的运行稳定性和硬件电路精简度,本次设计采用内部时钟作为单片机的时间基准。电路连接如图3.1所示。

图3.1 时钟电路

3.2 复位电路

复位操作是单片机需要的一个重要功能,通过复位操作使单片机内部的SFR和一些总要的寄存器处于一个确定的初始状态,只要给RST引脚加上两个时钟周期以上的高电平信号,就可以使单片机完成初始化进行复位。在单片机运行过程中,或许会出现一些干扰信号时程序进入无序运行状态或者发出错误指令,执行错误操作,通过复位操作,可以使单片机重新运行程序,进入初始化状态,使其进入正常工作状态。由此可见单片

第 9 页 共 41 页

贵阳学院毕业设计(论文)

机的复位电路具有较为重要的作用,任何一个系统都需要复位电路进行中断程序的运行。

典型的复位电路如图3.2所示,图中电阻选择8.2kΩ,电容选用10μF便可以可靠复位。

除了上述电复位外,又是还需要按键手动复位,按键手动电平复位电路如图3.3所示。

图3.2上电复位电路 图3.3按键手动复位电路

本次设计采用按键手动复位电路。

3.3检测电路

检测元件使用一线数字温度传感器DS18B20,无需A/D转换模块,直接将DQ端接入单片机端口即可,提高了系统的运行稳定性。硬件连接电路如图3.4所示。

图3.4 温度检测电路

3.4输出控制电路

DS18B20将检测的温度送入单片机与设定温度进行比较,经过比较后通过P3.7端口输出开关量,在控制电路输出通道中,为了防止其他电路的电磁干扰或后级电路中的电流通过控制电路反向传输到单片机系统,强大的电压会使单片机系统遭到严重的损坏,所以在控制电路中需用利用光耦将后级电路的电流进行光电隔离。由于光信号的传输不

第 10 页 共 41 页

贵阳学院毕业设计(论文)

受电磁、电场等因素的影响,所以可以将控制电路的后级干扰进行有效的隔离。光耦的引脚图如图3.5所示。

光电耦合器的隔离原理:

如图3.5所示,当光耦的左边的1、2引脚通过电流时,光耦内的发光二极管会被点亮,二极管发出的光照到光敏三极管时,会被光敏三极管接收,同时会将光耦的4,5引脚导通;而当该驱动电流消失后,发光二极管失去电流熄灭,光敏三极管的4,5引脚重新进入截止状态。利用光耦的这种特性就可以在进行光电隔离的同时达到开关控制的目的。

利用光耦在控制电路中实现光电隔离时,进行隔离的两侧电路需要使用独立的电源进行供电。因此光耦隔离的两侧电路不能有任何的导线连接,否者就失去了光电隔离的意义,否者后级电路的电信号或者电流会通过连接的导线传递到隔离的另一侧造成干扰。

所谓使用独立的电源进行单独的供电,既可以使用两个完全独立的电源,也可以使用DC/DC的方法转换出另一个与输入端没有导线连接的电源。

图3.5 三极管光电耦合器引脚图

由于电热管的功率比较大,所以在控制过程中不能使用光电耦合器输出的开关量直接去控制电热管的通断,而是使用光电耦合器输出的开关量去驱动继电器工作,从而达到控制电热管状态的功能。如图3.6所示。

第 11 页 共 41 页

贵阳学院毕业设计(论文)

图3.6 控制电路设计

继电器输出接口设计:

使用继电器控制的方式来控制开关量的输出,是目前在控制系统中经常使用的一种控制方式,通常单片机系统的输出信号不能直接驱动机电设备,往往需要通过单片机I/O口的输出信号放大后去控制电磁继电器励磁电流的通断来实现继电器接点的状态控制,然后再通过继电器的输出接点去控制机电设备的电源通断,实现用小电流控制大电流的作用。虽然继电器的输入回路和输出回路之间不存在电气连接,但是由于输入回路通过电流时,在继电器输出回路机械接点吸合或者断开的瞬间,输出回路的机械接点很容易产生火花造成干扰,所以,在单片机系统和继电器控制电路之间仍然需要采用光耦元件进行光电隔离。同时,由于继电器输入回路的线圈在继电器断开时由于电磁感应会产生较强的反向电压,为了使继电器输入回路的驱动元件不受反向电压的损坏,常常在继电器输入回路的励磁线圈的两端并联一个续流二极管对励磁线圈由于电磁感应产生的电压进行放电。

不同类型的继电器,需要的驱动电流大小也不相同,在控制电路的设计时应依照选用的继电器设计继电器驱动电路,达到合适的驱动电流。

继电器的选择:

在选择使用继电器时,一般应该注意以下因素:

(1) 继电器额定励磁工作电压的选择:其值应等于继电器线圈控制电路的电压。在使用继电器控制开关量时,还需要考虑继电器的额定工作电流是否在驱动电路输出电流的范围之类,若驱动电路的输出电流无法直接驱动继电器正常工作,可在驱动电路的

第 12 页 共 41 页

贵阳学院毕业设计(论文)

输出电流和继电器之间增加一级中间继电器或者驱动,使最终的驱动电流满足控制继电器的额定工作电流。

(2) 选择继电器控制机电设备时,需要计算其机电设备的总功率功率大小,然后根据功率的大小选择适合的继电器进行控制,选择的继电器能够承受的负载过小,在运行过程中继电器非常容易被损毁;选择负载过大的继电器,容易造成成本上的浪费,因此需要根据机电设备的实际要求选择合适规格的继电器。

(3) 接线端口的数量及类型:同一系列的继电器接点数量及接点类型各有不同,例如有单刀双掷、双刀双掷、三刀双掷等。在选用时应充分考虑实际的需求,将各个接点充分利用,简化控制线路,缩小安装体积的要求。

(4) 不同继电器的体积大小、封装方式、绝缘能力大小、工作环境要求和控制延时长短都处在不同的差异,在选择使用的继电器时,也应充分考虑环境因素及控制要求等方面的因素进行选择。在满足控制要求的同时,可选择性价比较高的产品。

3.5温度设置电路

如图3.6所示,根据设计要求,通过按钮来设置控制温度的大小,在设置过程的需要进行切换、加减、确定等功能,只需四个按键即可实现,功能实现稳定性高。如图3.7所示,按钮依次接入P1.0、P1.1、P1.2、P1.3端口,各自的功能分别为切换、加、减、确定功能,当按下按钮时接入低电平,单片机将数据写入系统。

图3.7 温度设置按钮

3.6显示电路

本次设计采用LCD(液晶显示器)进行设置温度和检测温度的显示。

LCD液晶显示屏具有体积小、材质轻、消耗功率低、显示内容丰富等特点,应用的领域非常广泛,如电话机、电子表、门禁系统、传真机、打印机等,都使用了LCD进行信息的显示。从显示内容的不同对液晶显示屏来进行分类,可以将其分为字符型LCD(代

第 13 页 共 41 页

贵阳学院毕业设计(论文)

表产品1602LCD)和点阵型LCD(代表产品12864LCD)两种类型。字符型LCD主要以显示字符为主,不可以显示汉字和图形;点阵型LCD不仅可以显示字符,而且可以显示汉字、图形等内容。基于本次设计显示的信息较为简单,为节约成本,提高产品的市场竞争力,本次实际采用字符型LCD进行温度的显示。硬件连接如图3.8所示。

图3.8 显示电路设计

第 14 页 共 41 页

贵阳学院毕业设计(论文)

3.7硬件电路总图

图3.9 仿真电路总图

第 15 页 共 41 页

贵阳学院毕业设计(论文)

第4章 系统软件设计

4.1单片机用C语言编程的特点

尽管汇编语言在控制底层硬件方面有着良好的性能并且有着高效的执行效率,但汇编语言本身属于一种低级语言,编程的效率比较低,而且可移植性接及可读性较差,在维护方面也比较不方便,从而导致整个系统软件运行的可靠性较低。然而采用C语言编程的程序具有结构化等特点,能够产生高效的程序代码,极大地方便了开发人员的编程工作,成为了编程人员选择编程语言时的最佳之选,得到了广泛的应用和普及。因此C语言具有汇编语言不可比拟的以下特点。

1. 可以有效地加快编程的进度,尤其针对一些比较复杂的系统,程序的代码数量越大,编程时使用C语言的优势就越明显。

2. 可以实现软件的结构化编程,使用C语言编写代码可以使软件的逻辑结构清晰、有条理,便于分工合作。

3. 省去了人工进行单片机资源(寄存器、RAM等)的分配工作。使用汇编语言编程时需要对每一个子程序分配单片机资源,在这复杂、乏味的工作中极易出现差错。使用C语言编程时,只需要在代码中对变量的类型进行一下定义,编译器就会自动分配相关的资源,不需要人工进行干预,有效的避免了由于人工分配资源时出现的错误。

4. 当编写好一个函数(在汇编语言里称为算法),移植到不同种类的MCU上时,由于C语言的编程符合ANSIC标准,基本不需要多大的修改,只需修改与硬件相关的代码后就可以成功地进行移植;而汇编语言进行的编程进行移植时只有重新编写代码,可移植性极差。

5. C语言提供数据类型和运算符非常丰富,其中包含34种运算符,数据类型包括整型、浮点型、字符型、数组类型、结构体、共用体和指针类型等,在很大程度上在使用方便了编程的使用和多样化,实现复杂的数据结构的运算。同时提供的储存器类型有data、bdata、idata、pdata、xdata和code等,并且在调入单片机后会自动为数据变量分配单片机的程序存储空间、内部存储空间和外部存储空间,极大地提高了程序运行的灵活性和数据处理能力。C语言编译器可以自动实现中断服务程序的现场保护和恢复功能,而且可以提供常用的标准函数供用户编程调用,节省了反复编码的花费时间,而且编译器可以自动生成硬件的一些初始程序代码。

第 16 页 共 41 页

贵阳学院毕业设计(论文)

尽管使用C语言编写出来的程序会比使用汇编语言的程序占用的程序存储空间大5%~20%,但是目前半导体技术的高速发展,单片机的内存和处理数据的速度都有了很大的提升,程序占用空间的大小已不是编程时需要考虑的主要因素,而是主要考虑软件是否具有长期运行的稳定性和编程的便捷性。因此,本设计采用C语言进行编程。

4.2温度检测程序流程图

开始 复位 N检测传感器是否存在 Y 跳过ROM匹配 温度转换 延时 复位 跳过ROM匹配 读取温度 保存温度数据 返回

图4.1温度检测流程图

第 17 页 共 41 页

贵阳学院毕业设计(论文)

如图4.1所示,在进行温度检测时,AT89S52先进行复位操作,之后检测DS18B20是否连接,由于本次设计中只采用了一只DS18B20对温度进行检测,所以可以直接跳过DS18B20的ROM匹配工作。在进行温度转换时,AT89S52首先需要通过数据线对DS18B20发出480μs以上的复位脉冲信号对DS18B20进行复位操作,然后等待DS18B20返回的脉冲信号;当复位操作完成时,AT89S52发出跳过ROM匹配的命令,之后执行温度检测和温度转换的指令,当DS18B20完成温度转换的工作时,AT89S52可以通过数据总线直接从高速暂存寄存器器的0到1字节读取检测的温度值(二进制补码形式);读取时采用高位在后,低位在前的原则。在读取数据完毕时,需要对温度进行计算;当符号位S等于0时,二进制数据将直接转换成十进制数,当符号位S等于1时,则需要先将二进制补码转换成原码,之后再转换成十进制数据。

4.3 继电器控制程序流程图

开始 检测当前温度 Y 判断温度是否达到设定值 N P3.7置高电平 P3.7置低电平 返回

图4.2继电器控制流程图

当系统开始运行时,单片机首先会从DS18B20读取当前的实际水温,然后与系统的设置温度进行对比,如果实际温度大于设置温度,则单片机使P3.7端口置低电平,进而设加热继电器断开,停止加热状态;若实际温度小于设置温度,则在P3.7端口输出高电平信号,使继电器吸合进入加热状态,流程图如图4.2所示。

第 18 页 共 41 页

贵阳学院毕业设计(论文)

4.4 LCD显示程序流程图

开始 延时 设置显示模式 开显示 延时 延时 关显示 设第一行显示位置 延时 显示第一行内容 设第二行显示位置 清屏 显示第二行内容

图4.3 LCD显示流程图

如图4.3的LCD显示流程图所示,当系统启动后,需要对LCD液晶显示屏设置显示模式,是指完成后关闭显示屏,之后进行清屏操作,然后从新打开显示屏,设置一定的延时后,确定第一行时间显示的位置后,读取单片机内的数据进行显示,然后确定第二温度显示的位置,读取单片机内检测温度和设置温度的数据进行显示。

第 19 页 共 41 页

贵阳学院毕业设计(论文)

4.5定时器中断程序流程图

开始 设置计数值 置T0中断工作方式 允许中断 设置定时常数 输出状态位 设置初始状态 等待中断

图4.4定时器中断流程图

单片机的内部定时器主要用来实现定时和计数的功能,其主要相关的寄存器有TMOD(工作方式寄存器)和TCON(控制寄存器),TMOD寄存器主要用于确定其工作方式,可以分别选择定时功能和计数功能,定时功能主要用于确定每个执行程序对应的时序,使程序有序地执行,计数功能主要用来对脉冲信号或其他控制按键的操作进行计数;TCON控制寄存器主要用于控制其定时器的运行和停止,主要通过设置标志位来实现。如图4.4所示,首先需要选择中断的工作方式,然后设置定时常数,设置其初始状态模式,之后设置计数值,但计数或者计时满时产生允许中断信号,最后输出状态位等待中断操作。

第 20 页 共 41 页

贵阳学院毕业设计(论文)

第5章 基于Proteus与Keil的联合仿真

5.1 Proteus仿真简介

Proteus是由英国Labcenter Electronics公司在1989年推出的一款电子自动化设计软件。该软件能够进行电路原理布图、印刷电路板设计、自动化布线、电路仿真和分析等操作,Proteus内部丰富的元件库可以提供对基于微控制器的设计和所有的周围电子元件的硬件连接,并且可以调入程序进行模拟仿真。在其ISIS软件内,设计人员可利用Proteus丰富的电子元件库、仿真仪器/仪表、各种励磁源信号等完成一按键电路的设计,并进行仿真和调试;并且可以利用数码管、液晶显示屏、指示灯、独立按键、行列式键盘、传感器等动态外设模型进行人机交互式仿真,仿真效果极其直观,可供设计者分析系统运行状态。Proteus拥有三十多个元器件库,数千种元器件及仿真模型,十余种励磁源信号,十余种的虚拟仪器仪表。Proteus由ISIS和ARES两部分组成,其中ISIS可以完成电子系统仿真,ARES软件可以完成布线编辑功能。

5.2 Keil 使用简介

由于单片机不能识别由C语言直接编写的程序,因此,在完成软件编程后,要将C语言源程序进行编译转换成单片机的可执行文件(.hex文件)。Keil可完成源程序代码的编写、调试和编译的工作,在调试过程中可以自动检测程序代码的错误,便于开发人员进行修改,具有极高的编程效率,在生成HEX文件时,选择对应的单片机型号即可。本次设计采用Keil uVision5进行编程。具体流程如下。 1. 打开Keil uVision5软件。

2. 新建工程。输入文件名,选择文件保存位置,确定后选择单片机类型为AT89S52。 3. 新建源程序。选择新建文档,选择保存位置,本次设计采用C语言编程,因此设计

中扩展名为“.c”。点击保存后进行源代码编写。 4. 添加源代码到工程。 5. 生成HEX文件。

5.3 联合仿真

第 21 页 共 41 页

贵阳学院毕业设计(论文)

硬件电路和软件设计完成后,需要将源程序生成的HEX为文件调入Proteus仿真平台的硬件电路中进行模拟仿真测试,对设计的总体进行全方面、直观的测试,以验证设计是否成功。

1. 打开硬件电路设计,添加HEX文件,为控制系统调入C语言编译生成的可执行文件。

图5.1 初始化状态

2. 启动仿真,设置温度61℃。

图5.3 保温状态

通过实验仿真,本次设计基本实现了对电热水器水温的智能控制;当检测水温为62℃时,检测温度高于设置温度61℃时,系统进入保温状态,如图5.3所示。

第 22 页 共 41 页

贵阳学院毕业设计(论文)

图5.4 加热状态

当系统检测水温为49℃时,实际水温低于设置温度,系统进入加热状态,如图5.4所示。

第 23 页 共 41 页

贵阳学院毕业设计(论文)

总 结

本次设计采用AT89S52单片机作为控制核心,采用DS18B20一线式温度传感进行温度检测,并配以外围时钟电路、复位电路、按键输入电路、继电器控制输出电路、LCD液晶屏显示电路等,在实现温度检测精度和控制要求的同时,最大限度地降低了硬件电路的复杂程度,有利于提高控制系统运行的稳定性及操作便捷性,同时具有较高的性价比。例如在初定方案时选择的单片机为AT89C51,但在后面的了解中,发现AT89S52有着远高于AT89C51的性能,如内存大,IO接口多,可扩展性强等,同时由于采用了新的加工工艺,在有着优秀性能的基础上成本比AT89C51还要低,所以也是采用AT89S52作为本次设计的控制核心的重要因素;同样,在温度传感器的选择上,若采用热电阻作为温度检测的元件,则需要给其配备复杂的辅助电路和A/D转换电路,大大增加了硬件连接的复杂程度,不利于系统运行的稳定性,其成本更胜于采用DS18B20传感器的方案。

此次设计中还存在较多的不足,有很多有待优化的地方,其中在控制方面加上水压传感器进行水压检测,保证正常工作时水压满足要求;在加热过程中也可以根据进水的初始温度或箱内水温的情况进行分级加热,以保证在不同的初始状态下自动采用不同的加热功率进行加热,保证家庭电路不长时间地承担过大的负载;也可以利用系统自动采集用户的使用数据,自动分析用户习惯,智能化安排预热功能,最大化地实现节能;在这次设计中,认识到自己的编程基础较为薄弱,需要加强C语言编程的学习和扩展。

第 24 页 共 41 页

贵阳学院毕业设计(论文)

参考文献

[1]谢龙汉 莫衍.Proteus电子电路设计及仿真 [M].北京:电子工业出版社,2012.1:5-9. [2]丁元杰.单片微机原理及应用 [M]. 北京:机械工业出版社,2010.10:23-24.

[3]彭伟.单片机C语言程序设计实训100例:基于8051+Proteus仿真 [M].北京:电子工业出版

社,2009:56-79.

[4]刘琨 孙春亮.单片机C语言入门 [M].北京:人民邮电出版社,2010:45-70.

[5]晁阳.单片机MCS-51原理及应用开发教程 [M].北京:清华大学出版社,2007:66-71. [6]于忠得.单片机原理于系统设计[M].北京:国防工业出版社,2013.11:12-15.

[7]蒋辉平,周国雄.基于Proteus的单片机系统设计与仿真实例[M].北京:机械工业出版社,2009.4:170-188.

[8]刘建清等.轻松玩转AVR单片机C语言[M].北京:北京航空航天大学出版社,2011.3:12-34. [9]朱清慧 陈绍东.Proteus实例教程[M].北京:清华大学出版社,2013.10:56-60. [10]别传爽.单片机原理与应用[M].北京:北京理工大学出版社,2012.12:60-67.

[11]陈继文.单片机机械控制设计及典型应用[M].北京:化学工业出版社,2013.2:70-83. [12]陈杰,黄鸿.传感器与检测技术[M].北京:高等教育出版社,2010.8:1-15

[13]韩婷婷.基于单片机和PID控制的即热式热水器的研制[J].工业控制计算机,2010,23(6) [14]孟伟 方世巍.基于单片机的智能家用热水控制系统的设计[J].微型机与应用,2011,30(21) [15]李美凤 贾伟伟.基于单片机的热水器智能控制系统设计[J].电子质量,2012,(4) [16]谭浩强.C程序设计[M].北京:清华大学出版社,2010.6:3-5.

[17]于忠得.单片机原理与系统设计[M].北京:国防工业出版社,2013.11:1-4 197-206. [18]张毅刚.基于Proteus的单片机课程的基础实验与课程设计[M].北京:人民邮电出版社,2012.4:1-60. [19]刘畅生,宣宗强,雷振亚,张昌民.传感器简明手册及应用电路-温度传感器分册(上册)[M].西

安:西安电子科技大学出版社,2005.11:74-76.

[20]朱清慧,陈绍东.Proteus实例教程[M].北京:清华大学出版社,2013.10:1-16.

[21]周淇,周旭欣.单片机原理及应用[M].北京:北京航空航天大学出版社,2014.1:1-34. [22]赵建领.51系列单片机开发宝典[M].北京:电子工业出版社,2012.2:390-412. [23]王守中.一读就通51单片机开发[M].北京:电子工业出版社,2.11.2:153-169.

第 25 页 共 41 页

贵阳学院毕业设计(论文)

致 谢

在本次设计的整个过程中,得到了指导老师和同学的大力帮助,借此机会向他们表示诚挚的感谢。

在本次设计中舒老师提供了许多方面的帮助,还有同学的意见,有他们的帮助,才能让我基本完成设计的基本要求,在论文完成之际,谨向付出了巨大心血和辛劳的老师和同学致以崇高的敬意和衷心的感谢。

最后深深地感谢在百忙之中对我的论文进行评审并提出宝贵意见的老师们。

第 26 页 共 41 页

贵阳学院毕业设计(论文)

附录:

/基于单片机的热水器控制板设计/ #include #include #include #define uchar unsigned char #define uint unsigned int

#define BUSY 0x80 //LCD检忙

#define DATAPORT P0 //定义P0口为LCD通讯端口 #define PLAYE_ADDR XBYTE[0XBFFF] sbit RED_ALARM=P1^0; sbit GREEN_ALARM=P1^2; sbit P1_4=P1^4; sbit P1_5=P1^5; sbit P1_6=P1^6; sbit DQ = P1^7; sbit LCM_RS=P2^0; sbit LCM_RW=P2^1;

//红色指示灯 //绿色指示灯

//时钟调整

//时钟加 //时钟减

//定义ds18b20通信端口

//数据/命令端 //读/写选择端

//LCD使能信号 //adc中断方式接口 //ISD1420放音结束查询标志

sbit LCM_EN=P2^2; sbit ad_busy=P3^2; sbit RECLED_EOC=P3^5; sbit OUT=P3^7;

uchar ad_data; uchar seconde=0; uchar minite=0; uchar hour=12; uchar mstcnt=0;

uchar temp,temp1,temp2; uchar s,set;

//ad采样值存储

//定义并初始化时钟变量

//显示温度变量

第 27 页 共 41 页

贵阳学院毕业设计(论文)

uchar K; bit ON_OFF=0; bit outflag;

uchar code str0[]={%uchar code str1[]={\void delay_LCM(uint); void initLCM( void); void lcd_wait(void);

//LCD延时

//LCD初始化

//液晶屏检忙

void WriteCommandLCM(uchar WCLCM,uchar BusyC); //写指令 void WriteDataLCM(uchar WDLCM); //写数据到 void DisplayOneChar(uchar X,uchar Y,uchar DData); //显示 void DisplayListChar(uchar X,uchar Y,uchar code Yata); //显示 void init_timer0(void); void displayfun1(void); void displayfun2(void); void displayfun3(void); void displayfun4(void);

void keyscan(void ); void set_adj(void); void inc_key(void); void dec_key(void);

void delay_18B20(unsigned int i); void Init_DS18B20(void) ; uchar ReadOneChar(void);

void WriteOneChar(unsigned char dat); void ReadTemperature(void); void ad0809(void); void playalarm(void); /延时K%1ms,12.000mhz/

//定时器初始化

//按键扫描

第 28 页 共 41 页

贵阳学院毕业设计(论文)

void delay_LCM(uint k) {

uint i,j; for(i=0;i

for(j=0;j<60;j++) {;} } }

/%%%%%%%%%%写指令子函数%%%%%%%%%%%%/

void WriteCommandLCM(uchar WCLCM,uchar BusyC) {

if(BusyC)lcd_wait();

DATAPORT=WCLCM;

LCM_RS=0; // 选中指令寄存器 LCM_RW=0; LCM_EN=1;

_nop_(); _nop_(); _nop_();

// 写模式

LCM_EN=0; }

/%%%%%%%%%%写指令%%%%%%%%%%%%/ void WriteDataLCM(uchar WDLCM) {

lcd_wait( ); //忙信号检测

DATAPORT=WDLCM;

LCM_RS=1; // 选中数据寄存器 LCM_RW=0; // 写模式

第 29 页 共 41 页

贵阳学院毕业设计(论文)

LCM_EN=1; _nop_();

_nop_(); _nop_();

LCM_EN=0; }

/%%%%%%%%%%%lcm内部等待函数%%%%%%%%%%%%%/ void lcd_wait(void) {

DATAPORT=0xff;

LCM_EN=1;

LCM_RS=0; LCM_RW=1; _nop_();

while(DATAPORT&BUSY)

{ LCM_EN=0; _nop_(); _nop_(); LCM_EN=1; _nop_(); _nop_(); }

LCM_EN=0; }

/%%%%%%%%%%LCM初始化子函数%%%%%%%%%%%/ void initLCM( ) {

DATAPORT=0;

delay_LCM(15);

第 30 页 共 41 页

贵阳学院毕业设计(论文)

WriteCommandLCM(0x38,0); /设置显示模式,跳过忙信号检测

Delay LCM(5);

WriteCommandLCM(0x38,0); delay_LCM(5);

WriteCommandLCM(0x38,0); delay_LCM(5);

WriteCommandLCM(0x38,1); /传送8位数据,显示两行,5%7字型,忙信号检测 WriteCommandLCM(0x08,1); /关闭LCD,忙信号检测 WriteCommandLCM(0x01,1); /LCD清屏,忙信号检测 WriteCommandLCM(0x06,1); //设置光标右移,忙信号检测

WriteCommandLCM(0x0c,1); //打开LCD显示屏,关闭光标显示,忙信号检测 }

/%%%%%%%%%%%%%%%%显示一个字符指定坐标的子函数%%%%%%%%%%%%%/ void DisplayOneChar(uchar X,uchar Y,uchar DData) { Y&=1; X&=15;

if(Y)X|=0x40; //当y为1时,液晶屏显示第二行 X|=0x80; //设置指令码为地址码 WriteCommandLCM(X,0); WriteDataLCM(DData); }

/%%%%%%%%显示一串字符指定坐标的子函数%%%%%%%/

void DisplayListChar(uchar X,uchar Y,uchar code Yata) {

uchar ListLength=0; Y&=0x01; X&=0x0f; while(X<16)

第 31 页 共 41 页

贵阳学院毕业设计(论文)

{

DisplayOneChar(X,Y,DData[ListLength]); ListLength++; X++; } }

/%%%%%%%%%%%ds18b20延迟子函数(晶振12MHz )%%%%%%%/ void delay_18B20(unsigned int i) { }

/%%%%%%%%%%ds18b20初始化函数%%%%%%%%%%%%%%%%%%%%%%/ void Init_DS18B20(void) { }

/%%%%%%%%%%%ds18b20读一个字节%%%%%%%%%%%%%%/ unsigned char ReadOneChar(void) { uchar i=0;

while(i--);

unsigned char x=0; DQ = 1; //DQ复位 delay_18B20(8); //稍做延时 DQ = 0; //单片机将DQ拉低 delay_18B20(80); //精确延时 大于 480us DQ = 1; //拉高总线 delay_18B20(14);

x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay_18B20(20);

uchar dat = 0; for (i=8;i>0;i--)

第 32 页 共 41 页

贵阳学院毕业设计(论文)

{ }

DQ = 0; // 给脉冲信号 dat>>=1;

DQ = 1; // 给脉冲信号 if(DQ) dat|=0x80; delay_18B20(4);

return(dat); }

/%%%%%%%%%%%%%ds18b20写一个字节%%%%%%%%%%%%%%%%/ void WriteOneChar(uchar dat) {

unsigned char i=0; for (i=8; i>0; i--) { } }

/%%%%%%%%%%%%%%读取ds18b20当前温度%%%%%%%%%%%%/ void ReadTemperature(void) {

DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat>>=1;

unsigned char a=0; unsigned char b=0; unsigned char t=0;

第 33 页 共 41 页

贵阳学院毕业设计(论文)

Init_DS18B20();

WriteOneChar(0xCC); // 跳过读序号列号的操作 WriteOneChar(0x44); // 启动温度转换

delay_18B20(100); // this message is wery important Init_DS18B20();

WriteOneChar(0xCC); //跳过读序号列号的操作

WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温

delay_18B20(100);

a=ReadOneChar(); //读取温度值低位 b=ReadOneChar(); temp1=b<<4;

temp1+=(a&0xf0)>>4; temp2=a&0x0f;

//读取温度值高位

temp=((b%6+a)>>4); //当前采集温度值除16得实际温度值 }

/%%%%%%%%%%%%%%%LCD显示子函数(1),正常显示%%%%%%%%%%%%%%%%%/ void displayfun1(void) {

WriteCommandLCM(0x0c,1); //打开LCD显示屏,不显示光标,忙信号检测 DisplayListChar(0,0,str0); DisplayListChar(0,1,str1);

DisplayOneChar(3,0,hour/10+0x30); DisplayOneChar(4,0,hour+0x30); DisplayOneChar(6,0,minite/10+0x30); DisplayOneChar(7,0,minite+0x30);

//LCD小时显示

//LCD分钟显示

DisplayOneChar(9,0,seconde/10+0x30); //LCD秒显示 DisplayOneChar(10,0,seconde+0x30); DisplayOneChar(4,1,K/10+0x30);

//LCD显示设置温度

第 34 页 共 41 页

贵阳学院毕业设计(论文)

DisplayOneChar(5,1,K+0x30);

DisplayOneChar(11,1,temp1/10+0x30); //LCD显示检测温度 }

/%%%%%%%%%%%%LCD显示子函数(2)%%%%%/ void displayfun2(void) {

DisplayOneChar(12,1,temp1+0x30); DisplayOneChar(14,1,temp2/10+0x30); if(ON_OFF==0) { } else {

DisplayOneChar(14,0,0x4f); DisplayOneChar(15,0,0x4e); if(outflag==1)

DisplayOneChar(0,0,0x7c);

// LCD显示控制温度标志

DisplayOneChar(14,0,0x4f); DisplayOneChar(15,0,0x46);

// LCD显示不控制温度

//若温控开关接入低电平

else }

DisplayOneChar(0,0,0xef);

WriteCommandLCM(0x0c,1); //LCD打开,不显示光标,忙信号检测 DisplayListChar(0,0,str0); DisplayListChar(0,1,str1); DisplayOneChar(6,0,minite/10+0x30); DisplayOneChar(7,0,minite+0x30); DisplayOneChar(9,0,seconde/10+0x30); DisplayOneChar(10,0,seconde+0x30);

第 35 页 共 41 页

本文来源:https://www.bwwdw.com/article/5ue7.html

Top