目录摘要 (I)ABSTRACT (II)第1章引言 (1)第2章系统功能需求分析与设计方案选择 (3)2.1 系统功能需求分析 (3)2.2 方案选择 (3)2.3 本章小结 (6)第3章硬件系统设计 (7)3.1 电源电路 (7)3.2 单片机最小系统说明 (8)3.3 温度检测电路 (9)3.4 人机交互电路 (10)3.4.1 键盘接口电路 (10)3.4.2 显示电路 (10)3.5 红外一体接收模块 (13)3.6 报警电路 (13)3.7本章小结 (13)第4章软件系统设计 (15)4.1 主程序流程图 (15)4.2 液晶显示程序设计 (15)4.2.1写操作时序图 (15)4.2.2 初始化程序 (16)4.2.3 向LCD1602发送数据程序设计 (17)4.3按键扫描程序设计 (17)4.4温度控制程序设计 (18)4.4.1初始化DS18B20 (18)4.4.2读取DS18B20当前温度 (19)4.5控制程序策略设计 (19)4.6本章小结 (21)第5章仿真与调试 (23)第6章总结 (27)致谢 (29)参考文献 (31)附录 (1)摘要本设计完成了基于单片机控制的家用电热水器控制系统的设计。
系统选STC89C51单片机作为控制器,利用DS18B20数字温度传感器实时检测当前水温,以串行通行的方式反馈给单片机搭建了硬件平台;利用C语言完成温度控制系统软件开发;借助protuse平台进行了模拟仿真,仿真结果表明:该系统实行方案简单易行,可以实现检测水温、加热、红外遥控等功能。
关键词:STC89C51,DS18B20,红外遥控ABSTRACTThis design finishes designing of the household electric water heater control system based on the control of single-chip microcomputer. In this system, STC89C51 single-chip microcomputer is used as controller and DS18B20 digital temperature sensor is used to conduct field test of current water temperature. It also uses the way of serial and passage to give feedback to single-chip microcomputer to set up hardware platform. Besides, C Programming Language is used to develop temperature control system software. It also uses the protuse platform to conduct simulation. The simulation result shows that this system is simple and feasible of this execution program and it also achieves the function of detecting water temperature, heating and infrared remote control and so on.Keywords: STC89C51, DS18B20, infrared remote control第1章引言随着科学技术的发展,城镇居民家庭多数以更加安全方便的电热水器代替了燃气热水器;从前风光无限的燃气热水器因污染原因和安全问题逐渐退出了我们的视线;新兴的太阳能热水器虽然受到安装条件和天气原因的限制,但其安全、节约、环保的特性广受消费者青睐,发展态势迅猛。
电热水器相较于燃气热水器和太阳能热水器的优点:便于安装,不受外部天气的影响,不受楼层和供水管道的限制,加热速度快也更加有安全保障,正是因为这些优点大部分家庭选择电热水器。
由于技术在不断的发展,对各种嵌入式设备的要求也越来越高了,与此同时热水器的智能化发展也非常迅速。
人们已经不能满足传统热水器非智能的操作方式,再这样的背景下,本次设计将要设计一款智能化的热水器设备。
通过热水器智能的调控可以完成自动断电的安全功能,同时设置的有红外遥控的功能,可以满足用户的遥感的要求。
快捷方便,使人们洗浴时能放心享受,安全便捷,其性能满足人们对现代生活快节奏的需求。
STC89C51的内部资源非常丰富,而且功能强大。
STC89C51集成以下功能STC89C52最后一个字符“1”代表了该存储芯片的Flash容量大小为4k字节。
同时它内部集成256字节片内RAM,RAM主要用于程序变量的存储,256字节可以适用于小型的程序运行。
32个数据I/O 接口,这些接口在用于普通功能时用来完成数据通信。
这些I/O口有的还有复用功能,这在后面会介绍到。
1个看门狗定时器,起到监测程序运行状况的作用。
2 个数据指针,一个堆栈指针,一个程序PC指针。
三个16位定时器,大部分要配合中断来实现定时功能,主要作用是计时的。
三个16位计数器,用于监测脉冲跳变次数或者其他计数。
6个中断源,中断在单片机的内部资源中占有很重要的部分,有了中断程序可以高效率的执行。
全双工串行口,通过串口来和其他主机通信,起到通讯作用。
[1]借助于STC89C51单片机的强大功能,来控制真个系统的协调运行,STC89C51单片机作为此次系统的控制芯片,通过围连接显示模块以、数据输入模块,红外线传输模块以及报警电路完成此次的系统设计。
本设计第一章主要描述了加热电热水器控制系统的应用背景、目的和意义;第二章是控制系统的需求分析和设计方案的选择,主要包括控制器方面的选择;第三章介绍了控制系统硬件电路的设计;第四章主介绍了控制系统软件方面的设计;第五章进行了控制系统的仿真和测试;第六章主要是对该系统存在的问题以及解决的方案进行总结。
第2章系统功能需求分析与控制方案选择根据预想所要达到的控制要求有:(1)用LCD1602液晶显示水温、设置上下限和定时时间。
(2)水温检测显示范围为00~99℃,精度为±1℃。
(3)温度设置区间为0度到99度,系统不断检测当前水温,如果水温高于用户设定的数值,则系统自动断电,不在加热。
如果水温低于用户设定的数值,则系统不会断电,继续加热。
(4)设置4个程序按键。
分别为设置按键、加键、减键、确定键。
(5)可以红外遥控,通过红外一体接收探头接收遥控器信号,执行与主板按键同等功能。
由此可以确定两种方案进行比较选择。
2.1 系统功能需求分析在此次的系统设计中主要是通过温度传感器测得的数据,通过和单片机的连接引脚完成数据的传输。
单片机通过采集到数据进行温度值的判断,来控制加热器的运行状态。
系统中的数据显示使用的是LCD1602液晶显示屏,来显示实时温度的数值。
报警指示灯(黄):当热水器出现异常情况时,该指示灯被点亮。
系统在通电之后,单片机内部的PC指针指向程序运行的区域,首先开始的是温度传感器的初始化,在完成温度初始化任务之后,系统就处于检测判断状态。
检测按键的发生以及温度是否超出设定区域。
首先进行温度数值的判断,接着继续检测温度按键,若无按键,则接着上一步的执行(以新的设定值开始工作)。
若有按键,则重新设定温度范围,如此循环。
2.2 方案选择方案一:以STC89C51单片机为控制中心的智能电热水器。
主控模块在整个系统中是最中心的部分,承担着统筹的作用,需要检测键盘等各种参数,以及驱动数码管的显示。
[2]在本次设计中我选用了51系列单片机中的STC89C51单片机作为系统的主控芯片。
因为单片机功能强大,应用广,从小的电子产品到大的工业控制都有很广泛的应用。
STC89C系列单片机兼容性很好。
除了单片机内部扩展资源不同之外,其余资源都相同。
比如说52类型的单片机比51类型的单片机E2PROM扩大了2倍,以及内部随机数存储器RAM增大些之外,其余功能全部一样。
也就是说STC89S系列单片机基础功能都具备,并且引脚位置,中断地址,以及定时器方式都是一样的,唯一不同的是扩展的功能。
由于单片机在不同场合控制的复杂度不一样,所以对单片机内部资源配置也不同。
以便于适应于多种场合使用,而且选择合适的单片机型号,可以节约成本。
当然,资源丰富的单片机价格也要稍贵一些。
此类单片机以EEPROM电可檫除和Flash技术为主导的存储器单片机以FLASH作为存储器的好处很明显,Flash可擦出次数多,一般很少因为擦除程序超出擦除Flash次数而损害单片机的。
单片机的存储器除了可以存储程序,还可以运行程序,但是不能存储程序中的某些变量。
这样可以加快程序的执行速度,提高单片机的效率。
STC89系列的单片机具有以下特性:(1)单片机引出的多个I/O口,使数据交换更加方便。
(2)采用静态时钟模式。
单片机外部连接晶振电路,通过晶振里面的震荡电路给单片机提供时钟脉冲。
时钟脉冲为单片机的程序执行提供了时钟节拍,在一个时钟节拍下,单片机的PC指针取一个指令执行,从而完成程序的顺序执行。
(3)可以应用于较小系统设计,或者定制用于专用的系统控制器,对需要控制的系统提供一种便捷的处理方法。
(4)通过定时器和计数器,可以设置时间间隔和记录电压变化次数。
(5)可以使用汇编语言设计的程序,其执行的效率更加高效。
以达到节约单片机内部宝贵的资源为目的。
(6)单片机的品种多,可以选用不同内部资源部处理器,达到节约成本的目的。
下面具体介绍STC89C51芯片的参数:STC89C51是一个8位微控制器,芯片内部已经集成4K字节存储区域的Flash,可以直接运行程序。
STC89S51采用的是51系列的内核它与工业80C51产品指令和引脚完全兼容。
单片机的P0口。
如果要改变P0口的输出电平值时,要在在单片机的相应寄存器里写入数据1时,单片机就会把相对应的端口输出高电平。
如果在相应的寄存器里面写入0,单片机就会在相对应的端口输出定电平。
比如在P0的寄存器地址上写入P0=0x01,则P0.1口位置就会输出高电平;如果P0=0x00,则P0口位置就会输出低电平。
同理,外部线路提供低电压则可以通过该引脚读出低电压,单片机内部对该位的寄存器就会被写入0。
由于P0口输出电流较小,所以需要上拉电阻来提供驱动电流。
单片机的P1口。
P1口外部不用设置上拉电阻,P1口的能够提供20MA的驱动电流,所以可以直接对P1口的寄存器写值。
P1口一般没有复用接口,在STC其他的单片机中有P1口的复用引脚,用来设置定时器PWM波的输出,或者单片机内部AD电压值的采集端口。