




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科毕业论文本科毕业论文( (设计设计) ) 基于基于 5151 单片机的家用电热水器设计单片机的家用电热水器设计 基于基于 5151 单片机的家用电热水器设计单片机的家用电热水器设计 摘要摘要 市场上传统的机械式热水器控制精度低、可性靠差。随着社会的发展,人市场上传统的机械式热水器控制精度低、可性靠差。随着社会的发展,人 们对电热水器的要求越来越趋向于智能化和数字化,而智能化家用电热水器正们对电热水器的要求越来越趋向于智能化和数字化,而智能化家用电热水器正 是适应现代化智能家用电器趋势而出现。是适应现代化智能家用电器趋势而出现。 本文主要设计了一种基于单片机的家用电热水器控制系统,它以本文主
2、要设计了一种基于单片机的家用电热水器控制系统,它以 at89c51at89c51 单片机为核心控制器,单片机为核心控制器,使用阵型键盘输入温度,并使用使用阵型键盘输入温度,并使用 ledled 灯显示,能够精确灯显示,能够精确 提供用户所需温度的温水。同时采用提供用户所需温度的温水。同时采用 ds18b20ds18b20 进行温度采集,当所需温度高于进行温度采集,当所需温度高于 当前采集的水温时,使用当前采集的水温时,使用 moc3041moc3041 芯片触发加热,当所需温度低于当前采集的芯片触发加热,当所需温度低于当前采集的 水温时,则停水温时,则停止加热。该设计简单易行,成本低,而且安全
3、,具有推广价值。止加热。该设计简单易行,成本低,而且安全,具有推广价值。 关键字:关键字:at89c51at89c51 单片机,温度控制,传感器单片机,温度控制,传感器 design of household electric water heater based on the 51-series single-chip abstract the market upload mechanical water heaters power system is of low control precision, poor reliability. with the development of th
4、e society, peoples demand for electric water heater is more and more tend to be intelligent and digital. while the intelligent home electric water heater is to adapt to the modern trend of intelligent household appliances. designed in this paper is a smart home electric water heater, which at89c51 a
5、s a controller, use array form keyboard input temperature, and use led light display it, so it can accurately provide to the warm water of temperature that user needs. the system adopt ds18b20 to collect temperature, when the temperature needed higher than to collect water temperature at present, it
6、 use the moc3041 chip lead to heating , when the temperature needed is lower than the collect water temperature at present, it stop heating.the smart electric water heater designed to achieve the program is simple,low cost, safe,and it has practical value. key-words:at89c51 single chip microcomputer
7、, temperature control, temperature sensor. 目录目录 1 引言.1 1.1 智能热水器的历史与发展.1 1.2 本设计主要研究内容.1 2 系统总体设计.1 2.1 单片机引脚功能说明.2 2.2 ds18b20 介绍.4 2.2.1 ds18b20 引脚说明.5 2.2.2 工作原理.5 2.3 moc3041 介绍.6 2.4 矩阵键盘的工作原理.6 2.5 led 数码显示管介绍.7 3 系统硬件模块介绍.8 3.1 单片机最小系统.8 3.2 温度传感器模块.8 3.3 加热控制器 moc3041.9 3.4 键盘控制电路.10 3.5 led
8、 数码显示管.10 3.5.1 多位数码管的显示控制.11 3.5.2 锁存器与数码管显示方法.11 4 系统软件设计.12 4.1 主程序分析.12 4.1.1 主程序流图.12 4.1.2 主函数分析.13 4.2 中断加热模块分析.13 4.3 键盘输入设计.14 4.3.1 键盘输入方法.14 4.3.2 键盘输入的抖动与去抖动方法.15 结论.16 参考文献.17 附录一.18 附录二.19 附录三.20 附录四.25 致谢.26 1 引言引言 1.1 智能热水器的历史与发展智能热水器的历史与发展 我们的生活电热水器是一种可供浴室、洗手间及厨房使用,按照人们的需 要的温度,提供温水的
9、家用电器。市场上传统的机械式电热水器控制精度低、 可靠性差,甚至存在一定的危险隐患。随着社会的发展、人们生活质量的提高, 人们对电热水器的要求越来越趋向于智能化和数字化,这种老式而简单的电热 水器已经不能够满足人们的需要了。而智能化家用电热水器正是适应现代化智 能家用电器趋势而出现。它能提供用户方便快捷的数字化输入方式,并且能精 确的采集和控制环境中的水温,将其提供给用户,因此备受人们的关注。 家用热水器在国外使用相当广泛,尤其在欧美和东南亚地区。目前市场上 的电热水器分连续水流式和贮水式。前者虽具有加热速度快和体积小的优点, 但需要的功率大,大多数家庭供电线路难以承受。而市场上传统的机械式电
10、热 水器控制功能不完善,而且精度低、可靠性差。生活质量的提高使得消费者对 电热水器功能提出延伸至全新的概念层面。此外,随着无线通信技术的发展, 无线远程控制也将是新一代电热水器的发展方向,用户可以通过任何一部双音 频固定电话或手机遥控热水器的开/关、温度设定等,并可查询热水器的工作状 态。现在市场上较为先进的储水式电热水器能实现上述等功能,但仍难以满足 人们对现代化家电的使用要求。在现如今众多的控制手段中,要满足低价格、 高性能、尤其是智能化的要求,采用典型的嵌入式控制系统单片机为核心 的控制器应为首选。 1.2 本设计主要研究内容本设计主要研究内容 智能热水器具有以下功能:(1)使用高清晰度
11、数码管显示水温,范围 0102(2)使用键盘方便的设定水温,并显示设定的温度;(3)按照设定 的温度加热到相应水温。 硬件设计主要有:单片机最小系统电路设计、温度传感器设计、水温加热 电路设计、键盘控制电路设计、led数码管显示电路设计。软件设计主要有:主 程序模块、定时器中断程序模块、键盘扫描处理子程序模块、led数码显示子 程序模块和延时子程序等模块。 2 系统总体设计系统总体设计 系统利用 ds18b20 将采集到的温度信号送到 at89c51 单片机中,单片机 将采集到的温度值与通过键盘设定的温度进行比较,根据比较结果,控制加热 器的开关,同时将温度值实时显示在 led 显示器上。 硬
12、件系统组成部分主要有电源电路、单片机控制器、温度采集电路、按键 输入电路、led 数码管显示电路、加热控制电路、moc3041 双向可控硅驱动 电路。 at89c51 单片机 键盘设定温度电路 加热控制电路 电源时钟复位电路 数字温度显示电路 温度采集电路 图图 2-1 系统硬件组成系统硬件组成 2.1 单片机引脚功能说明单片机引脚功能说明 图 2-2 为 dip40 单片机电路符号的引脚分布,40 个引脚按功能分为 4 个部 分,即电源引脚(vcc 和 vss) 、时钟引脚(xtal1 和 xtal2) 、控制信号引脚 (rst、和 ale)以及 i/o 口引脚(p0p3) 。eapsen
13、xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15
14、28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u1 at89c51 图图 2-2 单片机引脚分布单片机引脚分布 40 脚 vcc 为单片机电源正极引脚,20 脚 vss 为单片机的接地引脚。在正 常工作情况下,vcc 接5v 电源,为了保证单片机运行的可靠性和稳定性,电 源电压误差不超过 0.5v。 9 脚 rst/vpd 为复位/备用电源引脚。此引脚上外加两个机器周期的高电 平就使单片机复位(reset) 。单片机正常工作时,此引脚应为低电平。在单片 机掉电期间,此引脚
15、可接备用电源(5v) 。在系统工作的过程中,如果 vcc 低于规定的电压值,vpd 就向片内 ram 提供电源,以保持 ram 内的信息不 丢失。 30 脚为锁存信号输出/编程引脚,在扩展了外部存储器的单片progale/ 机系统中,单片机访问外部存储器时,ale 用于锁存低 8 位的地址信号。如果 系统没有扩展外部存储器,ale 端输出周期性的脉冲信号,频率为时钟振荡频 率的 1/6,可用于对外输出的时钟。对于 eprom 型单片机,此引脚用于输入编 程脉冲。 29 脚脚为输出访问片外程序存储器的读选通信号引脚。在 cpu 从外psen 部程序存储器取指令期间,该信号每个机器周期两次有效。在
16、访问片外数据存 储器期间,这两次信号将不出现。psen 31 脚用于区分片内外低 4kb 范围存储器空间。该引脚接高电平时, pp v/ea cpu 访问片内程序存储器 4kb 的地址范围。若 pc 值超过 4kb 的地址范围, cpu 将自动转向访问片外程序存储器;当此引脚接低电平时,则只访问片外程 序存储器,忽略片内程序存储器。 单片机的 i/o 口是用来输入和控制输出的端口,dip40 封装的 51 单片机共 有 p0、p1、p2、p3 四组端口,分别与单片机内部 p0、p1、p2、p3 四个寄存器 对应,每组端口有 8 位,因此 dip40 封装的 51 单片机共有 32 个 i/o
17、端口。 p0 口分别占用 3239 脚,依次命名为 p0.0p0.7。与其他 i/o 口不同,p0 口是漏极开路型双向 i/o 口。在访问片外存储器时,p0 口分时作为低 8 位地址 线和 8 位双向数据总线用,此时不需外接上拉电阻。如果将 p0 口作为通用的 i/o 口使用,则要求外接上拉电阻或排阻,每位以吸收电流的方式驱动 8 个 lsttl 门电路或其他负载。 p1 口占用 18 脚,分别是 p1.0p1.7,p1 口是一个带内部上拉电阻的 8 位双向 i/o 口,每位能驱动 4 个 lsttl 门负载。这种接口没有高阻状态,输入 不能锁存,因而不是真正的双向 i/o 口。 p2 口的
18、8 个引脚占用 2128 脚,分别是 p2.0p2.7。p2 口也是一个带内 部上拉电阻的 8 位双向 i/o 口。在访问外部存储器时,p2 口输出高 8 位地址, 每位也可以驱动 4 个 lsttl 负载。 p3 口的 8 个引脚占用 1017 脚,分别是 p3.0p3.7。p3 是双功能端口, 作为普通 i/o 口使用时,同 p1、p2 口一样,作为第二功能使用时,引脚定义见 表 2-1。p3 口引脚具有的第二功能,能使硬件资源得到充分利用。 表表 2-1 p3 口的第二功能口的第二功能 i/o 口线第二功能定义功能说明 p3.0rxd串行输入口 p3.1txd串行输出口 p3.2/int
19、0外部中断 0 输入端 p3.3/int1外部中断 1 输入端 p3.4t0t0 外部计数脉冲输入端 p3.5t1t1 外部计数脉冲输入端 p3.6/wr外部 ram 写选通脉冲输出端 p3.7/rd外部 ram 读选通脉冲输出端 单片机有两个时钟引脚,分别是 19 脚 xtal1 和 18 脚 xtal2,用于提供 单片机的工作时钟信号。单片机是一个复杂的数字系统,内部 cpu 以及时序逻 辑电路都需要时钟脉冲,所以单片机需要有精确的时钟信号。 单片机内部含有振荡电路,19脚和18脚用来外接石英晶体和微调电容。在 使用外部时钟时,xtal2则用来输入时钟脉冲。见图2-3所示,其中图2-3(a
20、) 为晶体振荡电路,图2-3(b)为外部时钟输入电路。利用外部时钟输入时,要 根据单片机型号xtal1接地或悬空,并考虑时钟电平的兼容性。 +5v cp输入 xtal2 xtal1 单片机 gnd xtal2 xtal1 gnd 单片机 c1 30p c2 30p cy 12mhz 1k 图图 2-3(a) 图图 2-3(b) 晶体振荡电路晶体振荡电路 外部时钟输入电路外部时钟输入电路 2.2 ds18b20 介绍介绍 温度采集电路中使用 ds18b20 芯片来完成温度采集。它是美国 dallas 半导体公司推出的第一片支持“一线总线”接口的温度传感器,具有微型化、低 功耗、高性能、抗干扰能力
21、强、易配微处理器等优点,可直接将温度转化成串 行数字信号供单片机处理,可实现温度的精度测量与控制。ds18b20 性能特点 见表 2-2 所示。 表表 2-2 ds18b20 性能指标性能指标 性能参数备注 电源电压范围在 3.05.5v,在寄生电源方式下可由数据线供 电 测温范围 -55+125,在-10+85时精度为0.5 分辨率912 位,分别有 0.5,0.25,0.125和 0.0625编程控制 转换速度在 9 位时,小于 93.75ms; 12 位分辨率时, 小于 750ms 总线连接点理论 248,实际视延时、距离和干扰限制,最多几十个 2.2.1 ds18b20 引脚说明 27
22、.0 dq 2 vcc 3 gnd 1 u2 ds18b20 图图 2-4 ds18b20 引脚引脚 表 2-3 给出了各引脚功能,其中 dq 引脚是该传感器的数据输入/输出端 (i/o),该引脚为漏极开路输出,常态下呈高电平。dq 引脚是该器件与单片 机连接进行数据传输单一总线,单总线技术是 ds18b20 的一个特点。 表表 2-3 ds18b20 引脚功能描述引脚功能描述 引脚序号名称描述 1gnd地信号 2dq数据输入输出(i/o)引脚 3vdd电源输入引脚,当工作于寄生电源模式时,此引脚 必须接地 2.2.2 工作原理 ds18b20 的内部主要包括寄生电源、温度传感器、64 位激光
23、 rom 单线接 口、存放中间数据的高速贮存器、用于存储用户设定的温度上下限值、触发器 存储与控制逻辑、8 位循环冗余校验码发生器等 7 部分。 高速寄存器 ram 由 9 个字节的存储器组成。见表 2-4 所示。其中,第 0、1 字节是温度转换有效位,第 0 字节的低 3 位存放了温度的高位,高 5 位存 放温度的正负值;第 1 字节的高 4 位存放温度的低位,后 4 位存放温度的小数 部分;第 2 和第 3 个字节是 ds18b20 的与内部 e2prom 的有关的 th 和 tl, 用来存储温度上限和下限,可以通过程序设计把温度的上下限从单片机中读到 th 和 tl 中,并通过程序再复制
24、到 ds18b20 内部 e2prom 中,同时 th 和 tl 在器件加电后复制 e2prom 的内容;第 4 个字节是配置寄存器,第 4 个字节的 数字也可以更新;第 5,6,7 三个字节是保留的。 表表 2-4 高速寄存器高速寄存器 ram 字节地址编号寄存器内容功能 0 温度值低位(lsb)高 5 位是温度的正正负号,低 3 位为温度的高位 1 温度值高位(msb)高 4 位为温度的低位,低 4 位为温度小数部分 2 高温度值(th)设置温度上限 3 低温度值(tl)设置温度下限 4 配置寄存器 5 保留 6 保留 7 保留 8 crc 校验值 2.3 moc3041 介绍介绍 moc
25、3041 芯片是一种集成的带有光耦合的双向可控硅驱动电路,它有输入 和输出两部分组成。内部集成了发光二极管、双向可控硅和过零触发器等器件。 其内部结构和外部引脚如图 2-5 所示 654 321 moc3041 图图 2-5 moc3041 内部结构和外部引脚图内部结构和外部引脚图 其中: (1)此脚为阳极,输入 vcc (2)此脚为阴极 (3)nc (4)主终端 (5)子端口,此脚不接 (6)主终端 2.4 矩阵键盘的工作原理矩阵键盘的工作原理 矩阵键盘又称为行列式键盘,它是用 4 条 i/o 线作为行线,4 条 i/o 线作为 列线组成的键盘,行线和列线的每一个交叉点上设置一个按键,这样键
26、盘中的 按键个数是 4*4 个。这种行列式键盘结构能够有效地提高单片机系统中 i/o 的 利用率。 图 2-6 为键盘按钮电路图 p3.3 p3.2 p3.1 p3.0 p3.4p3.5p3.6p3.7 图图 2-6 矩阵键盘按钮电路图矩阵键盘按钮电路图 其中,行连接线为 p3.0p3.3,列连接线为 p3.4p3.7。 2.5 led 数码显示管介绍数码显示管介绍 数字系统中使用数码管能够使得显示结果更为直观,所以本设计采用多位 的 led 数码管来实时的来显示温度。单片机系统常用的数码管有共阳型和共阴 型两种类型,它是单片机常用的外围显示器件。两种类型的数码管外形和结构 类似,只是数码管内
27、部组成数码段和标点的 led 接法有区别,共阳型数码管的 内部所有 led 的正极接在一起为公共极引脚,负极分别引出,依次命名为 a、b、c、d、e、f、g、dot,使用时共阳型数码管的公共极接正极,其他引脚分 别接驱动电路,数码管显示时低电平有效。同理对于共阴型数码,由于共阴型 数码管内部所有 led 的负极接在一起,所以数码管显示时驱动数据高电平有效。 各发光二极管的排列顺序为 g、f、e、d、b、c、a,与显示的各位一一对应。 7 段数码管的段位顺序如图 2-7 所示 a bf c g d e dpy 1 2 3 4 5 6 7 a b c d e f g 8 dp dp gnd 9 d
28、s1 dpy _9 图图 2-7 7 段数码管的段位顺序段数码管的段位顺序 3 系统硬件模块介绍系统硬件模块介绍 3.1 单片机最小系统单片机最小系统 如图 3-1 所示,图中单片机型号采用 stc8951rc,电路包括电源、振荡电 路、复位电路,单片机内部有 512b 的 ram 和 4kb rom 以及输入输出接口等。 vcc xtal1 xtal2 reset psen ale ea p1.0 p1.1 p1.2 p1.3 p1.4 p1.5 p1.6 p1.7 p0.0/ad0 p0.1/ad1 p0.2/ad2 p0.3/ad3 p0.4/ad4 p0.5/ad5 p0.6/ad6
29、p0.7/ad7 p2.0/a8 p2.1/a9 p2.2/a10 p2.3/a11 p2.4/a12 p2.5/a13 p2.6/a14 p2.7/a15 p3.0/rxd p3.1/txd p3.2/int0 p3.3/int1 p3.4/t0 p3.5/t1 p3.6/wr p3.7/rd 18 19 9 29 30 31 1 2 3 4 5 6 7 8 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 c1 30p c2 30p cy 12mhz r1 1k c3 10 图图 3-1 单片机最
30、小系统单片机最小系统 单片机复位能使 cpu 和系统中的其他功能部件都处在一个确定的初始状态, 并从这个状态开始工作。复位后 pc=0000h,单片机从第一个单元取指令。在 单片机的 rst 引脚上有持续两个机器周期(即 24 个振荡周期)的高电平即可 让单片机进行复位操作,完成对 cpu 的初始化处理。如果单片机的时钟频率为 12 mhz,每机器周期为 1s,则只需让 rst 引脚保持 2s 以上高电平的就能 复位。复位操作是单片机系统正常运行前必须进行的一个环节。但如果 rst 持 续为高电平,单片机就处于循环复位状态,无法执行用户的控制程序。 复位操作通常有上电自动复位、手动复位和看门狗
31、复位三种方式。在这里 使用的是上电自动复位方式。 3.2 温度传感器模块温度传感器模块 ds18b20 是单片机外设,单片机为主器件,ds18b20 为从器件。图 3-2 的接法是单片机与一个 ds18b20 通信,单片机只需要一个 i/o 口就可以控制 ds18b20,为了增加单片机 i/o 口驱动的可靠性,总线上接有上拉电阻。对如 果要控制多个 ds18b20 进行温度采集,只要将所有 ds18b20 的 dq 全部连接 到总线上就可以了,在操作时,通过读取每个 ds18b20 内部芯片的序列号来识 别。 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst
32、 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/
33、a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u1 at89c51 27.0 dq 2 vcc 3 gnd 1 u4 ds18b20 r1 4k7 图图 3-2 单片机与一个单片机与一个 ds18b20 通信通信 3.3 加热控制器加热控制器 moc3041 加热控制原理如下图 220v 0.01 uf 330 39 360 moc3041 单片机 r1 rg rp cp r p2.2 图图 3-3 加热控制电路加热控制电路 其中: r1,限流电阻,控制 led 的触发电流; rg,门极电阻,提高控制极的抗干扰能力; r,控制回路限流电阻,保护 3041
34、 中的双向可控硅; cp,构成吸收回路,承受反向电压 该部分的工作过程是其工作过程是:当单片机的 p2.2 口输出低电平的时候, moc3041 输入部分的发光二极管导通,发出足够强度的红外光去触发输出部分, 即可控硅的导通,从而打开加热器;同理,当 p2.2 口输出为高电平时, moc3041 输入部分的发光二极管截止,可控硅断开,关闭加热器。 3.4 键盘控制电路键盘控制电路 系统中键盘的主要功能用于用户输入和修改设定的温度。键盘设计的 16 个按键,其中 12 个键有定义,其余 4 个按键无定义。其中 09 数字用于温度的 输入和修改。功能键一个(*号键) ,具有双重功能,第一次按为“设
35、定”温度, 用于进入设定温度模式,第二次按为“确认”设定温度,用于设定温度输入后 的确认。#号键未定义,可用于其它扩展。其中 12 个键有定义,其余 4 个按键 无定义。 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/
36、txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u1 at89c51 图图 3-4 键盘接口电路键盘接口电路 3.5 led 数码显示管数码显示管 3.5.1 多位数码管的显示控制 多位数码管的显示控制有两种方式,即静态显示方式和动态显示方式。本 设计中采用数码管的动态显示方式。一般情况下把多位数码管的位
37、段选线连接 在一起,用单片机的一个 pi/o 口来进行控制,再用另外一个 pi/o 口的数据线 作为选通信号,去分别选通 led 显示器,采用分时方式,按顺序一一让 led 显示,这样才两个 pi/o 口.它就是靠高速的扫描来保证显示。利用的是人眼的 暂留效应。 3.5.2 锁存器与数码管显示方法 在这里先介绍 74hc573 芯片,它一个锁存器芯片,连接方法见图 3-5 所示, p27、p26 分别控制位选和段选的 l 端,例如:当 p27(程序中的全局变量 wei)赋高电平时,74hc573 输入端口的值将直接输送给 74hc573 芯片的输出 端,当输入端变化时,输出端也变化。p27 赋
38、低电平时, 74hc573 芯片将记住 最近一次 l 端口是高电平时芯片输入端的 8 位,并将其输出,当输入端变化时, 输出端不变化。在这里就可以利用锁存器的特性使 p27 起到控制那个数码管亮 的作用,使 p26 控制数码管亮什么样的数字作用。 图图 3-5 74hc573 芯片的连接芯片的连接 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0 1 p1
39、.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u1 at89c51 d0 2 d1 3 d2 4 d3 5 d4 6 d5 7 d6 8 d7 9 q0 19 q1 18 q2
40、 17 q3 16 q4 15 q5 14 q6 13 q7 12 le 11 oe 1 u2 74hc573 d0 2 d1 3 d2 4 d3 5 d4 6 d5 7 d6 8 d7 9 q0 19 q1 18 q2 17 q3 16 q4 15 q5 14 q6 13 q7 12 le 11 oe 1 u3 74hc573 图图 3-6 温度显示电路温度显示电路 4 系统软件设计系统软件设计 系统的软件设计主要包括有主程序分析、中断加热子函数分析、键盘输入 程序分析、led 数码显示函数分析等模块。 4.1 主程序分析主程序分析 4.1.1 主程序流图 首先系统进行初始化,清温度缓存区中
41、的数据,然后启动 ds18b20 温度传 感器输入电信号,同时还要检测此时有无按键按下设定温度,如果有那么跳转 到键盘扫描处理子程序,如果没有那么将 ds18b20 结果读入累加器中,最后十 进制数据转换调整,输出到温度显示电路。主程序流图如图 4-1 开始 有键按下? 十进制转换调整 输出显示温度 键盘扫描处理 启动ds18b20 初始化 清温度缓存区 y n 图图 4-1 主程序流图主程序流图 4.1.2 主函数分析 void main() tmod=0 x01; th0=(65536-30000)/256; tl0=(65536-30000)%256; ea=1; et0=1; tr0=
42、1; zd=0; num=16;aaa=0;bbb=0; num1=16;num2=16;num3=16; while(1) uint a; uchar b; changetemp(); a=gettemp(); b=scanff(); numy=gettemp(); display(a,b); 这里的 aaa 用于控制是否确定输入的一个数字是需要的数字,bbb 用于标记 已经输入到了三个数字的第几个数字。 主函数首先将所用到的全局变量赋值,然后进入大循环首先进入温度转换 函数,使 ds18b20 启动温度转换,然后获取温度将两个字节的数值赋给 a,而 将输入的温度赋予 b ,再由 displ
43、ay(a,b)子函数输出所有的值。 4.2 中断加热模块分析中断加热模块分析 采用定时器 t0,定时器设定每 30ms 中断一次,判断输入的数值与采集的 数值之间的大小,如果前者较大就使 p3.1 变为低电平,从而使 moc3041 启动 并引起加热。如果后者大于前者,则 p3.1 还是高电平并不引起加热。这样就达 到了控温的目的。程序流图如图 4-2 入口 保护现场 重设定时时间 当前温度小于设定温度 加热器工作 加热器停止 加热状态灯灭加热状态灯亮 恢复现场 返回 n y 图图 4-2 中断加热程序流图中断加热程序流图 中断加热程序见附录 4.3 键盘输入设计键盘输入设计 4.3.1 键盘
44、输入方法 键盘的引脚由上至下分别是 p30 到 p37,第一行暂时不用,从第二行开 始使用,每一行如 p31 都与 p34、 p35、 p36 、p37,他们是线与的关系。 因此可以如此操作,对图中第二行、第三行、第四行诸行进行扫描。扫描第一 行时 p3 口赋值为 0 xfd,即为 p31 口赋“0”,p3 的其他口赋“1”,当第二行没有 按键按下时 p34、 p35、 p36 、p37 将都是高电平“1”,一旦有按键按下时, 由于线与关系,p34、 p35、 p36 、p37 必定有一个为“0”,它们之中那一 个为“0”依次代表哪个键被按下。依次循环扫描三行即可时时检测是否有键按下。 4.3
45、.2 键盘输入的抖动与去抖动方法 按键按下都会发出一声响,虽然有的按键声音很轻微,但这都是金属导体 碰撞产生的震动,这种现象称为键盘抖动。如果不对键盘的抖动进行处理,按 键会对系统电路或程序产生意外的干扰。 在本设计中采用软件去抖的方法,原理是检测两次,第一次检测到低电平 时延时一段时间,再检测一次,如果还能检测到低电平,则说明确实有键按下。 具体程序如下: while(temp!=0 xf0) delay(5); p3=0 xfd; temp=p3; temp=temp while(temp!=0 xf0) 上述程序是两个 while 循环之间的嵌套,第一个 while()语句判断有键按 下
46、后,延时一段时间再进行判断,如果第二次判断也认为有键按下,则可以确 认的确有键盘操作,并不是抖动。具体按下后的操作可以在后一个 while 循环 中书写。 结论结论 本文对使用at89c51单片机完成家用电热水器控制系统的设计进行完整阐 述。完成的功能主要有智能热水器具有以下几点:(1)使用高清晰度数码管显 示水温,范围0102。(2)使用键盘方便的设定水温,以及通过软件方法来 消除键盘抖动造成的误差。(3)按照设定的温度加热到相应水温,还有在测温 环节如何消除微小干扰的措施,如利用运算放大器接成电压跟随器的方式来稳 定有温度转换而来的电压信号。 同时,本文也有缺点。由于热水器工作环境潮湿,因
47、此应特别注意用电安 全,所以可设计一个漏电报警电路来保证使用者的安全。可以用一个磁环检测 感应电流的模块,当出现漏电情况时,电流通过磁环的电流不平衡,于是检测 出漏电信号,经集成电路放大、三极管倒相以后输至单片机,进而停止加热, 及时切断电源。 参考文献参考文献 1杨文龙.单片机原理及应用m.西安电子科技大学出版社.2000 2王守中.51 单片机开发入门与典型实例m.人民邮电出版社.2007 3孙余凯.传感器应用电路 300 例m.电子工业出版社.2008 4赵负图.传感器集成电路手册m.北京化工出版社.2002 5郇玉龙,赵宁,卢洪武.用 at89c51 单片机设计智能家用电热水器j.实用
48、电 子 制作.2007.第 10 期 6孙振伟,唐媛红.基于单片机的电热水器模糊控制j.中国科技信息.2000.第 18 期 7周鲜成.单片机在电热水器中的应用j.常德师范学院学报(自然科学版). 2000.第 12 卷第 4 期 8刘海英,胡卫兵,魏军丞.基于单片机的电热水器定时控制器设计j.电子 元器件应用.2007.第 9 卷.第 8 期 9jansen tj. solar engineering technology, chap. 7. new jersey: prentice-hall,inc, 2005 10雷建龙.基于单片机模糊控制的电热水器水温自动调节器j.电气自动化. 200
49、4.第 26 卷.第 2 期 11吴永桥,施光林,金康进.新型恒温即热式电热水器控制系统的研究与开 发j.传感技术学报.2004.第 4 期 12刘亦萍.即热式电热水器控制电路的设计与应用j.机电一体化.2003.第 3 期 13 季晓芳,张春来.家用电热水器控制系统的实验研究j.电子测试.2009.第 10 期 附录一附录一 中断加热程序分析中断加热程序分析 void timer0() interrupt 1 int a; th0=(65536-30000)/256; tl0=(65536-30000)%256; zd+; if(zd=6) zd=0; a=num1*100+num2*10+
50、num3; if(a=numy p3=0 xfd; jiar=0; else jiar=1; p3=0 xff; jiar=0; 附录二附录二 键盘输入程序键盘输入程序 while(temp!=0 xf0) delay(5); p2=0 xfd; temp=p2; temp=temp while(temp!=0 xf0) temp=p2; switch(temp) case 0 xed:num=0; break; case 0 xdd:num=1; break; case 0 xbd:num=2; break; case 0 x7d:num=3; break; while(temp!=0 xf
51、0) temp=p2; temp=temp/*0000 在这里使用了_crol_函数,所以头文件中要增加#include,这里包 括去抖和松手检测。经过检测以后通过不同的 temp 值,使 num 被赋予相应的 数值,这样 num 就是要输入的一个数字。 附录三附录三 led 数码显示模块数码显示模块 void display(uint a,uchar b) uchar i,temp,srtemp,dis4; uint dda; dda=abs(a); numx=dda/1000; num4=dda%1000/100; num5=dda%100/10; num6=dda%10; dis0=nu
52、mx; dis1=num4; dis2=num5; dis3=num6; dis2+=10;/num5 小数点 if(dis0=0)/如果百位和十位都为 0 不显示 if(a0)/负值 后面加个小数点 dis3+=10; else if(dis0!=0)/超过 100 前面加小数点 dis1=dis1+10; temp=0 xfb; for(i=1;i4;i+) p0=0 xff; wei=1; temp=_crol_(temp,1); p0=temp; wei=0; p0=0; duan=1; p0=tabledisi; duan=0; delay(3); duan=1; p0=0 x00;
53、 duan=0; if(aaa=1 switch(bbb) case 0: dis1=b; num1=b; dis2=num2; dis3=num3; if(dis2=21) dis2+; else dis2+=10; srtemp=0 xfe; for(i=1;i4;i+) p0=0 xff; wei=1; p0=srtemp;/wein 打开后 是低电平亮 wei=0;/ srtemp=_crol_(srtemp,1); p0=0 x00; duan=1; p0=tabledisi; duan=0; delay(1); duan=1; p0=0 x00; duan=0; break; case 1: dis1=num1; dis2=b; num2=b; dis3=num3; if(dis2=21) dis2+; else dis2+=10; srtemp=0 xfe; for(i=1;i4;i+) p0=0 xff; wei=1; p0=srtemp;/wein 打开后 是低电平亮 wei=0;/ srtemp=_crol_(srtemp,1); p0=0 x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工礼仪行为规范培训
- 医疗器械设计和开发培训
- 强国有我主题教育读书活动
- 商标代理推广佣金合同(2篇)
- 商品推广责任协议
- 厨房消防安全培训
- 感染科讲课课件
- 建材采购清单协议
- 辛集中学高三下学期模拟巩固训练(6)历史试题
- 阿克苏工业职业技术学院《药用高分子材料学》2023-2024学年第一学期期末试卷
- (统)人教部编版六年级下册道德与法治8.科技发展 造福人类
- 2024儿童青少年抑郁治疗与康复痛点调研报告
- 河南省2024年英语中考热点备考重难专题:一材多题型精讲(语篇填空第一节、完形填空、作文)【课件】
- 2024至2030年中国金融数据终端行业市场全景分析及投资前景展望报告
- 苏科版八年级数学上册讲练专题训练勾股定理30道经典压轴题型(原卷版+解析)
- AQ/T 2055-2016 金属非金属矿山在用空气压缩机安全检验规范 第1部分:固定式空气压缩机(正式版)
- 瑞幸加盟合同范本
- 第一课 中望3D-界面环境讲解
- 小学数学人教版五年级下册 3长方体和正方体应用题20道
- 上海市崇明县乡镇地图矢量可编辑课件行政区划边界高清(上海市)
- (正式版)JBT 14932-2024 机械式停车设备 停放客车通-用技术规范
评论
0/150
提交评论