收藏 分享(赏)

单片机热水器水温控制系统的设计_2009441654.doc

上传人:yjrm16270 文档编号:7854982 上传时间:2019-05-27 格式:DOC 页数:25 大小:380KB
下载 相关 举报
单片机热水器水温控制系统的设计_2009441654.doc_第1页
第1页 / 共25页
单片机热水器水温控制系统的设计_2009441654.doc_第2页
第2页 / 共25页
单片机热水器水温控制系统的设计_2009441654.doc_第3页
第3页 / 共25页
单片机热水器水温控制系统的设计_2009441654.doc_第4页
第4页 / 共25页
单片机热水器水温控制系统的设计_2009441654.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、科技学院课程设计2009441654键入文字 键入文字 键入文字基于单片机电热水器控制系统设计摘要:21 世纪末,随着计算机科学的发展,计算机已深入地渗透到我们的生活中,要想学好温度测控,只有扎扎实实的把单片机知识学好,因为温度测控是基于单片机知识的。今天,我们的生活环境和工作环境有越来越多称之为单片机的小电脑在为我们服务,单片机在工业控制,尖端武器,通信设备,信息处理,家用电器等各测,控领域的应用中独占鳌头。时下,家用电器和办公设备的智能化,遥控化,模糊控制化已成为世界潮流,而这些高性能无一不是靠单片机来实现的,同时在使用单片机的前提下我们也还要用到 A/D 数模转换,本文介绍了一种基于单片

2、机控制的电热水器控制系统, ,可以设置上加热温度,方便使用。 关键词:单片机,数字控制,温度计, DS18B20,AT89S52科技学院课程设计2009441654键入文字 键入文字 键入文字1 绪论1.1 课题背景和意义:随着人们生活水平的提高,热水器越来越受到人们的青睐。由于燃气热水器易受水压限制,而且安全性较差。每年使用燃气热水器造成的爆炸、中毒等事故也屡有所闻。消费者对燃气热水器怀有一定的惧怕感。而电热水器越来越受到人们的认可。采用 MCS-51 单片机对热水器水温进行控制,具有控制方便、组态简单和灵活性大等优点。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,为自动化和

3、各个测控领域中广泛应用的器件。1.2 国内外研究现状: 电热水器在中国的历史已经有 10 多年了,期间也经历了数次起落的过程,在上个世纪的最后几年,随着国外品牌的进入和国内一些大家电厂的目光转向电热水器,储水式电热水器能适应任何天气变化,普通家庭可直接安装使用,长时间通电可以大流量供热水。使用时不产生废气,既安全又卫生。目前市场上销售的电热水器多数还带有防触电装置。干净卫生,不必分室安装,调温方便。随着技术的成熟,今后将朝着保温层整体发泡技术、温控器置入内胆、加热管下潜式设计、节能免更换几个方面发展。热水器是一种可供浴室,洗手间及厨房使用的家用电器。据国务院发展研究中心市场经济研究所统计数据表

4、明:近年来我国热水器的销量每年以 25%的速度上升,在未来五年内,销售额每年可达近 500 亿以上。众所周知,燃气热水器因其安全隐患及越来越高的使用成本正渐渐淡出热水器市场,而太阳能热水器也因其严格受天气气候及安装条件影响而很难占据更大的市场份额,所以电热水器迅速崛起而不断壮大。为了满足人们对现代电器的智能化的要求,利用目前电子技术的最新成果改善电热水器的性能已经完全可能和必要。本课题将以单片机为控制核心,实现对热水器的自动控制,设计出一款具有自动化、智能化、易于操作、控制精度高、性价比高的电热水器控制系统。科技学院课程设计2009441654键入文字 键入文字 键入文字2 单片机及设计软件介

5、绍2.1 单片机技术介绍由于单片机在整个设计中占据着重要的地方,首先介绍一下单片机的相关知识。单片机AT89S52 具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要。MCS-51 单片机内部结构8051 是 MCS-51 系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。8051 单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位

6、二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)8051 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运算的中间结果或用户定义的字型表。图 2-1 8051 内部结构程序存储器(ROM):8051 共有 4096 个 8 位掩膜 ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):8051 有两个 16 位的可编程定时/计数

7、器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051 共有 4 组 8 位 I/O 口(P0、 P1、P2 或 P3),用于对外部数据的传输。全双工串行口:8051 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有 2 级的优先级别选择。时钟电路:8051 内置最高频率达 12MHz 的时钟电路,用于产生整个单片机运行的脉冲时序,但 8051 单片机需外置振荡电容。单片机的结构有两

8、种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯科技学院课程设计2009441654键入文字 键入文字 键入文字顿(Princeton)结构。INTEL 的 MCS-51 系列单片机采用的是哈佛结构的形式,而后续产品 16位的 MCS-96 系列单片机则采用普林斯顿结构。下图是 MCS-51 系列单片机的内部结构示意图 2-3图 2-2MCS-51 结构框图MCS-51 的引脚说明:MCS-51 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP

9、 结构,右图是它们的引脚配置,40 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口线与 P3 口线复用。现在我们对这些引脚的功能加以说明:MCS-51 的引脚说明:MCS-51 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构,右图是它们的引脚配置,40 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口线与 P3 口线复用。现在我们对这些引脚的功能加以说明:科技学院课程设计2009441654键入文字 键入文字 键入文字图 2-3 51

10、 单片机引脚图Pin9:RESET/Vpd 复位信号复用脚,当 8051 通电,时钟电路开始工作,在 RESET 引脚上出现 24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器 PC 指向 0000H,P0-P3 输出口全部为高电平,堆栈指针写入 07H,其它专用寄存器被清“0” 。RESET 由高电平下降为低电平后,系统即从 0000H 地址开始执行程序。然而,初始复位不改变 RAM(包括工作寄存器R0-R7)的状态,8051 的初始态。8051 的复位方式可以是自动复位,也可以是手动复位,见下图。此外,RESET/Vpd 还是一复用脚,Vcc 掉电其间,此脚可接上备用电源,以

11、保证单片机内部 RAM 的数据不丢失。图 2-4 复位电路图Pin30:ALE/ 当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE 端将有一个 1/6 时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE 会跳过一个脉冲。如果单片机是 EPROM,在编程其间, 将用于输入编程脉冲。Pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号,PC 的 16 位地址数据将出现在 P0 和 P2 口上,外部程序存储器则把指令数据放到 P0 口上,由 CPU 读入并执行。Pi

12、n31:EA/Vpp 程序存储器的内外部选通线,8051 和 8751 单片机,内置有 4kB 的程序存储器,当 EA 为高电平并且程序地址小于 4kB 时,读取内部程序存储器指令数据,而超过 4kB 地址则读取外部指令数据。如 EA 为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的 8031,EA 端必须接地。2.2 软件介绍2.2.1PROTEL99SE 介绍PROTEL99SE 是一个全 32 位的电路板设计软件,使用该软件可以容易地设计电路原理图、画元件图、设计电路板图、画元件封装图和电路仿真。在这里主要用它来绘制电路原理图和生成印制电路板。原理图的设计

13、步骤如下:编辑和调整。编辑元件的属性。包括元件名、参数、封装图等。调整元件和导线的位置等操作。对电路板的设计主要分为以下几个步骤;人工布线是画电路板的基础,但比较耗时和费力,另外由于自身经验的不足,只得先采用自动布线,在此基础上作了适当的修改。2.2.2 单片机编译软件 Keil 介绍编写完程序后即可使用汇编软件对程序进行编译了,本设计所使用的编译软件是 Keil51,其步骤如下:1 源文件的建立使用菜单“File-New”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编辑窗口,在该窗口中输入要调试的汇编语言源程序,保存该文件,注意必须加上扩展名.c。科技学院课程设计200

14、9441654键入文字 键入文字 键入文字2 建立工程文件点击“Project-New Project ”菜单,在出现一个对话框中,输入一个工程文件名,不需要扩展名。点击“保存”按钮。3 工程的详细设置工程建立好以后,还要对工程进行进一步的设置,以满足要求。首先点击左边 Project 窗口的 Target 1,然后使用菜单“Project-Option for target target1”即出现对工程设置的对话框,对部分内容进行必要的设置改即可,不过大部份设置项都是取默认值。4 编译、连接在设置好工程后,即可进行编译、连接。选择菜单 Project-Build target,对当前工程进行

15、连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码;如果选择 Rebuild All target files 将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而 Translate .项则仅对该文件进行编译,不进行连接。科技学院课程设计2009441654键入文字 键入文字 键入文字3 系统设计3.1系统功能介绍使用高清晰度数码管实时显示水温,范围01O2 ;(2)可用键盘方便地设定水温,并显示设定的温度;(3)按设定温度加热0-102度的水温,并具有保温功能3.2 系统方案论证3.3.1 方案一由于本设计的温度测温电路,可以使用热

16、敏电阻 Pt100 其感温效应,Pt100 温度传感器为正温度系数热敏电阻传感器,主要技术参数如下: 1、测量范围:-200+850; 2 、允许偏差值:A 级(0.150.002t) , B 级(0.300.005t) ; 3 、热响应时间 9999)ucNum = 9999;if (ucNum 3)ucPoint = 0;if (ucWidth 4)ucWidth = 4;/取正负号if (ucNum 0) /-ucNegative = 1;ucNum *= (-1);else /+ucNegative = 0;ucLedBuffer3 = GetLedMold(0 + (ucNum /

17、1000); /千位ucNum %= 1000;ucLedBuffer2 = GetLedMold(0 + (ucNum / 100); /百位ucNum %= 100;ucLedBuffer1 = GetLedMold(0 + (ucNum / 10); /十位ucNum %= 10;ucLedBuffer0 = GetLedMold(0 + (ucNum); /个位/隐藏不显示位 ,当要显示的数据超过宽度时,应显示 9999。if (ucWidth 4)if(ucLedBuffer3!= GetLedMold(0)ucLedBuffer2 = GetLedMold(9);ucLedBuff

18、er1 = GetLedMold(9);ucLedBuffer0 = GetLedMold(9);ucLedBuffer3 = 0x00;if (ucWidth 3)科技学院课程设计2009441654键入文字 键入文字 键入文字if(ucLedBuffer2 != GetLedMold(0)ucLedBuffer1 = GetLedMold(9);ucLedBuffer0 = GetLedMold(9);ucLedBuffer2 = 0x00;if (ucWidth 2)if(ucLedBuffer1 != GetLedMold(0)ucLedBuffer0 = GetLedMold(9);

19、ucLedBuffer1 = 0x00;if (ucPoint != 0)ucLedBufferucPoint |= 0x01; /小数点位if (ucNegative != 0)ucLedBuffer0 |= 0x01; /负号位/LED 数据更新SetLed(3, ucLedBuffer3);SetLed(2, ucLedBuffer2);SetLed(1, ucLedBuffer1);SetLed(0, ucLedBuffer0);return;/*函数名:CloseAllFlash参 数:*str = 要显示的字符串,长度最大为 4。返回值:描 述:在 0-3 的 LED 上显示一个字

20、符串*/void CloseAllFlash(void)int i = 0;for(i = 0;i4;i+)SetLedFlash(i,0);科技学院课程设计2009441654键入文字 键入文字 键入文字/*函数名:SetAllFlash参 数:*str = 要显示的字符串,长度最大为 4。返回值:描 述:在 0-3 的 LED 上显示一个字符串*/void SetAllFlash(void)int i = 0;for(i = 0;i4;i+)SetLedFlash(i,0xff);/* 函数名:SetFlash* 参 数:ucLocate = LED 闪烁位,04,其他值则关闭所有闪烁 L

21、ED* 返回值:* 描 述:控制 LED 闪烁位*/void SetFlash(unsigned char ucLocate)SetLedFlash(0, 0x00);SetLedFlash(1, 0x00);SetLedFlash(2, 0x00);SetLedFlash(3, 0x00);switch (ucLocate)case 0: SetLedFlash(0, 0xff); break; /LED0case 1: SetLedFlash(1, 0xff); break; /LED1case 2: SetLedFlash(2, 0xff); break; /LED2case 3: Se

22、tLedFlash(3, 0xff); break; /LED3case 4: SetLedFlash(0, GetLedFlash(0) | 0x01); break; /负号default: break;return;科技学院课程设计2009441654键入文字 键入文字 键入文字 6、延时程序:/*DELAY *模 块 名:延时描 述:采用软件延时的方法。供其他模块掉用。/*/#include “Delay.h“/*函数名 :Delay参 数 :uiTimes = ms 个数返回值 :描 述 :延时, 最大 65536 ,最小 0*/void Delay(INT16U uiTimes)I

23、NT8U data i = 0;for (; uiTimes!=0; uiTimes-)for (i=200; i!=0; i-) /* delay 0.5ms (6CLK) */_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();return;7、主程序:#include “includes.h“科技学院课程设计2009441654键入文字 键入文字 键入文字int main()INT8U ucKeyValue = 0;INT8U ucADValue = 1;BellOff();LedInit();DS18B20Init();RelayUpdate();while(1)SetLedInt(5678);Delay(10);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报