毕业设计

更新时间:2024-05-19 20:50:01 阅读量: 综合文库 文档下载

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

I

本科毕业生论文(设计)

目 录

摘 要 ........................................... 错误!未定义书签。

Abstract ............................................ 错误!未定义书签。

第一章 前言 ......................................................1

1.1 课题研究的背景 ...............................................1

1.2 市场饮水机现状 ..............................................1 1.3 课题研究的目的和意义 ........................................1 1.4 智能饮水机的主体功能 ........................................2 1.5 课题设计的主要内容 ..........................................2

第二章 智能饮水机的硬件结构设计 ...............................4

2.1 智能饮水机的总体设计 ........................................4 2.2 元器件选择 ..................................................4 2.3 AT89S52的主要性能 ...........................................5

2.3.1 AT89S52功能特性描述 ...................................5 2.3.2 AT89S52晶振电路的设计 .................................5 2.4 测温电路的设计 ..............................................6

2.4.1 DS18B20的引脚图及方框图 ...............................6 2.4.2 DS18B20主要性能 .......................................6 2.4.3 DS18B20功能特性描述 ...................................7 2.4.4 DS18B20供电方式 .......................................8 2.5 主控系统 ....................................................9 2.6 输入控制 ...................................................10 2.7 显示部分 ...................................................10 2.8 其他功能部分 ...............................................12

第三章 智能饮水机的软件设计 ...................................13

3.1 系统分配方式 ...............................................13

3.2 主程序设计 .................................................13 3.3 各模块程序设计 .............................................14

3.3.1 温度检测程序设计 ......................................14 3.3.2 显示程序设计 ..........................................15 3.3.3 键盘扫描程序 ..........................................15

第四章 调试及性能分析 ..........................................17

4.1 软件调试 ...................................................17 4.2 硬件调试 ...................................................17

4.2.1 电源电路的仿真 ........................................17 4.2.2 出水电路模块的仿真 ....................................17 4.2.3 加热模块电路的仿真 ....................................18

II

本科毕业生论文(设计)

4.2.4 显示模块电路的仿真 ....................................18 4.2.5 报警电路的仿真 ........................................18 4.3 性能分析 ...................................................19

结 论 ............................................................20 参考文献 .........................................................21 致 谢 .............................................................22 附录A 电路原理图 .............................................. 23 附录B 元件明细表 ..............................................24 附录C 主程序 ...................................................25

III

湖南涉外经济学院本科毕业生论文(设计)

第一章 前言

1.1 课题研究的背景

从饮水机问世以来,在中国的发展趋势逐年增加。饮水机的使用量逐年增长,随着人们生活水平的提高,人们对其功能的要求也越来越高,所以,对智能饮水机的需求就逐渐显现了出来。

饮水机是采用瓶装水或者自来水经净水器净化作为水源,利用电能对其进行加热,一年四季提供常温水或热水的饮水电器。饮水机基本能满足人们日常的饮水、泡茶、冲咖啡、即食食品以及调制冷饮的各种需要。饮水机具有饮水时尚、结构简单、操作方便、清洁卫生、价廉物美等优点。

在饮水机进入高潮的今天,市场十分活跃,然而,消费者对饮水机的选择不是停留在过去的眼光,而是高标准,不仅实用而且要求外形脱俗,跟上时代潮流步伐,尤其在其功能方面要有更高的要求。

当前绝大多数厂家生产的饮水机都采用智能化控制。因此,智能饮水机已是饮水机发展的必然趋势。

1.2 市场饮水机现状

可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤设备,五花八门,无所不在。饮水机也不例外。

单片机按其应用范围可分为通用型和专用型两类。家用电器多采用专用型单片机,如日本NEC公司开发的7500系列和75X00系列4位单片机、美国国家半导体公司的COP400系列4位单片机,以及日本松下公司的MN1400系列、美国Zilog公司的Z8系列以及日本富士通公司的MB88系列等专用型单片机。家用电器所采用的通用型单片机,主要是Intel公司的MCS系列产品。

目前饮水机基本上都采用单片机控制,但各厂家生产的饮水机单片机控制所达到的功能各不相同。智能化,多功能必定是发展趋势。

1.3 课题研究的目的和意义

单片机在电子产品中的应用已经越来越广泛, 在很多电子产品中也用到了温度检测和温度控制。

目前广泛使用的饮水机,具有价格低廉,制造简便等优点。但是随着用户长时间使用,这些饮水机功能单一、能耗较大、长时间饮用饮水机的水对健康不利等缺点逐渐暴

1

湖南涉外经济学院本科毕业生论文(设计)

露出来。

传统的饮水机的局限性一般体现在以下几个方面:第一,功能相对简单。只有简单的温度控制,而且用户还不能自己根据自己的喜好设定温控参数。第二,能耗较大。在没有人使用的时候饮水机也处在开机状态无疑会造成能源的大量浪费,在能源紧缺的今天这个方面亟待解决。第三, 长期饮用饮水机里的水会对健康不利。由于广泛使用的饮水机烧水不能完全沸腾,长期饮用这种水会对身体造成较大的伤害。

本次设计的基于AT89S52的多功能饮水机, 采用DS18B20实现温度采集,经过LED显示, 读数直观、准确。并且程序存储器E2PROM可以很容易的实现软件升级, 从软件方面提高仪器精度。同时可以对加热温度进行控制,从而防止了每次加热都使水沸腾,既节能又能更好的满足人们的需求。

1.4 智能饮水机的主体功能

(1)智能饮水机的主体功能:

本课题设计的智能饮水机具有过热保护防干烧、加热至沸腾、设置温度加热、超温报警提示、安全锁定、电动机出水功能等。

(2)智能饮水机的按键功能:

①出水键:控制饮水机出水和停止出水;②加热键:负责控制开始加热和停止加热;③锁定键:按下锁定键,其他按键无效;④切换健:按下后开始设定用户想要的温度;⑤温度设定键:按一下温度增加5℃,温度可在0℃到100℃之间循环。

(3)智能饮水机的显示功能:

①电源灯(绿色):接通电源,电源灯点亮;②加热指示灯(黄色):按下加热键,加热指示灯点亮,表示烧水开始工作。再次按下加热键,指示灯熄灭,表示烧水停止;③锁定键指示灯(蓝色):锁定其他按键功能,灯亮表示其他按键均不可用;④超温报警灯(红色):灯点亮表示水已经达到设定的加热温度或已沸腾并停止加热;⑤数码管:显示当前水温或用户设定的温度。⑥蜂鸣器:响起后说明水以沸腾并停止加热。

1.5 课题设计的主要内容

该设计的主要内容主要包括设计方向的选择、设计题目的确定、设计方法的研究与比较,选择最优方案后开始进行硬件设计和软件设计以及最终的仿真调试。其中硬件设计包括器件的选定,各模块功能的设计与实现,以及最终各功能模块与单片机的连接构成一个整体系统并能满足设计要求;软件设计主要是通过编写C语言程序对单片机进行控制使其按照程序运行从而实现各模块的功能满足设计的要求;最终通过Keil uVision2

2

湖南涉外经济学院本科毕业生论文(设计)

编译软件将写好的程序编译成为16进制文件,使之能够在proteus仿真软件中和硬件电路一起进行仿真调试,从而确保设计的正确性。

3

湖南涉外经济学院本科毕业生论文(设计)

第二章 智能饮水机的硬件结构设计

2.1 智能饮水机的总体设计

整个硬件系统由主控制系统、输入输出模块、传感器、其他功能电路和电源部分组成。主控系统使用单片机控制,包括对键盘的信息的接收和控制,对其他功能电路的控制等,通过软件编程实现预定功能;传感器部分即检测子系统,主要是进行饮水机中水的温度检测和控制,采用智能温度传感器DS18B20;其他功能电路部分包括恒温,防干烧,出水等电路,达到功能多样化;电源部分为智能饮水机提供必要的电能,保证饮水机能够正常的工作。整体框图如图2.1所示。以下详细讨论每个功能模块的设计思想和硬件电路的实现。

晶振电路 温度检测电路 键盘 电源电路 单片机 数码显示 功能显示 AT89S52 其他功能电路 复位电路 图2.1 智能饮水机电路框图 报警电路 2.2 元器件选择

主机单元由AT89S52单片机和相关的存储器组成,是仪表的核心。关键部分期间名称及其在电路中的主要功能如下:

(1)AT89S52:完成监控系统数据采集过程、采集方式和报警过程的控制。是整个系统的核心处理器,单片机首先把通过传感器测到的现场温度与预先设置的温度进行比较,如果大于或小于预先设置值,就输出信号去控制加热器的工作,从而实现温度控制。

(2)数码管:用于显示当前水温及设定的水温。

(3)DS18B20:单线数字温度传感器,可直接将被测温度转化为串行数字信号,以供

4

湖南涉外经济学院本科毕业生论文(设计)

单片机处理。

(4)各色LED及蜂鸣器:用于提示用户饮水机的各种状态。 (5)按键:输入模块,用于控制单片机完成各项功能。

2.3 AT89S52的主要性能

AT89S52具有8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作指导下一个硬件复位。 2.3.1 AT89S52功能特性描述

(1)AT89S52是一种低功耗,高性能CMOS工艺的8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统提供高灵活,超有效的解决方案。

(2)AT89S52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0KHZ静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机停止工作,直到一个中断或硬件复位为止。

(3)AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含8个中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线。AT89S52可以按照常规方法进行编程,也可以在线编程。其通用的微处理器和Flash存储器结合在一起,可反复擦写的Flash存储器可有效地降低开发成本。 2.3.2 AT89S52晶振电路的设计

每个单片机系统里都有晶振,全称是叫晶体震荡器,在单片机系统里晶振的作用非常大,它结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十,高级的精度更高。

5

湖南涉外经济学院本科毕业生论文(设计)

晶振电路中的两个电容叫做负载电容。一般单片机的晶振工作于并联谐振状态,也可以理解为谐振电容的一部分。它是根据晶振厂家提供的晶振要求负载电容选值的,换句话说,晶振的频率就是在它提供的负载电容下测得的,能最大限度的保证频率值的误差。也能保证温漂等误差。两个电容的取值都是相同的,或者说相差不大,如果相差太大,容易造成谐振的不平衡,容易造成停振或者干脆不起振。

在本设计中XTAL1和XTAL2端外接石英晶体作为定时元件,内部反向放大器自激振荡,产生时钟。所用石英晶体的振荡频率为12MHZ,电容C1,C2常为20pF~40pF内,如图2.2所示。

图2.2 晶振电路

2.4 测温电路的设计

2.4.1 DS18B20的引脚图及方框图

DS18B20的外形及管脚排列图如下图2.3所示。 (1)GND 地信号

(2)DQ 数据输入/输出引脚。用在寄生电源下,可以向器件提供电源。 (3)VDD 可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 2.4.2 DS18B20主要性能

(1)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;

(2)测温范围 -55℃~+125℃,固有测温分辨率0.5℃;

(3)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定,实现多点测温

(4)工作电源: 直流3~5V; (5)在使用中不需要任何外围元件;

6

湖南涉外经济学院本科毕业生论文(设计)

(6)测量结果以9~12位数字量方式串行传送; (7)不锈钢保护管直径 Φ6 ;

图2.3 DS18B20外形及引脚排列

(8)适用于DN15~25, DN40~DN250各种介质工业管道和狭小空间设备测温; (9)标准安装螺纹 M10X1, M12X1.5, G1/2”任选;

(10)PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。 2.4.3 DS18B20功能特性描述

DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为9字节的存储器,结构如表2.1所示。前两个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。第5字节为配置寄存器,见表2.3,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如表2.3所示。低5位都为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS--18B20出厂时该位被设置为0,用户可改动,R1和R0决定温度转换的精度位数,来设置分辨率。

表2.1 高速暂存RAM

字节数 存储信息 1 LSB 2 MSB 3 TH 1 4 5 6 保留 7 8 9 TL 2 配置寄存器 保留 保留 CRC 7

湖南涉外经济学院本科毕业生论文(设计)

表2.2 DS18B20 温度转换时间表

R1 0 0 1 1 R0 0 1 0 1 分辨率/位 9 10 11 12 温度最大转换时间/ms 93.75 187.5 375 750 表2.3配置寄存器

TM R1 R0 1 1 1 1 1 由表2.2可见,DS18B20分辨率越高,所需要的温度数据转换时间越长。当DS18B20接收到温度转换命令后,开始启动转换。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。DS18B20中的温度传感器可完成对温度的测量,以12位转化为例。其中S为符号位。DS18B20的温度值格式如表2.4所示。

表2.4 DS18B20温度值格式表

LSByte MSByte Bit7 2 3Bit6 2 2Bit5 2 1Bit4 2 0Bit3 2?1Bit2 2?2Bit1 2?3Bit0 2?4 Bit15 S Bit14 S Bit13 S Bit12 S Bit11 S Bit10 2 6Bit9 2 5Bit8 2 4当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值。表2.5是部分温度值对应的二进制度数据。

表2.5 部分温度对应值表 温度℃ +125 +85 +25.0625 +10.125 +0.5 0 -0.5 -10.125 -25.025 二进制表示 0000011111010000 0000010101010000 0000000110010000 0000000010100001 0000000000000010 0000000000001000 1111111111110000 1111111101011110 1111111001101111 十六进制表示 07D0H 0550H 0191H 00A2H 0008H 0000H FFF8H FF5EH FE6FH 2.4.4 DS18B20供电方式

(1)DS18B20寄生电源供电方式电路

DS18B20采用寄生电源供电时,要想使DS18B20进行精确的温度转换,I/O线必须

8

湖南涉外经济学院本科毕业生论文(设计)

保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,靠上拉电阻是无法提供足够的能量,会造成无法转换温度或温度误差极大。因此,只适用于单一温度传感器测温,也不宜采用电池供电系统,并且电源电压必须保证是5V。当电源电压下降时,会使测量的误差变大。

(2)DS18B20的外部电源供电方式

DS18B20采用外部供电时,I/O线不需要强上拉电压,同时在总线上可以挂接多个DS18B20传感器,组成多点测温系统。但要注意在外部供电的方式下,DS18B20的GND引脚不能悬空,否则读取的温度总是85℃。但在proteus仿真中VCC和GND均悬空,否则仿真错误。

比较上述两种供电方式后认为外部电源供电方式对电源要求比电源供电方式优越些且稳定性好,故在此设计中采用外部电源供电方式供电电路。

仿真电路如下图2.4:

图2.4 采用外部供电的测温电路

2.5 主控系统

主控系统采用单片机控制。

单片机的晶振与复位电路如图2.5所示,单片机选用的是ATMEL公司的AT89S52的8 位单片机,晶体振荡器选12MHZ,C5,C6为22pF石英电容,与晶体振荡器构成时钟电路。电容C7,电阻R7、R8和按键S1构成上电复位和手动复位电路。

AT89S52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4KB的可反复擦写的只读程序存储器(PEROM)和128B的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89S52单片机可为您提供许多高性价

9

湖南涉外经济学院本科毕业生论文(设计)

比的应用场合,可灵活应用于各种控制领域。

图2.5 晶振与复位电路

2.6 输入控制

输入控制如图2.6所示,采用的按键控制,这样不仅减少的制作成本而且便于做。通过74LS373的通断进行按键信号的传输,当74LS373被锁定时,按键信号不能传入单片机,从而达到按键的锁定作用。

图2.6 输入电路

2.7 显示部分

LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a、b、c、d、e、f、g、p来表示。当数码管特定的段加上电压后,这些特

10

湖南涉外经济学院本科毕业生论文(设计)

定的段就会发亮,以形成我们眼睛看到的字样了。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮p不亮。LED数码管有微亮亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸数码管是由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极称为共阳极数码管,发光二极管的阴极连接到一起连接到电源负极称为共阴极数码管。

常用LED数码管所显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 显示电路见图2.7:

图2.7 显示电路

LED数码管引脚共阴和共阳两种方式:

电源VCC通过1个1K的排阻与LED相连,VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的,找到一个就够了,然后GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴。相反用VCC不动,GND逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阳。也可以直接用数字万用表,将档位拨到二极管通断性测试档,这时红表笔代表电源的正极,黑表笔代表电源的负极,然后在引脚上进行逐个测试,以确定是共阳还是共阴。一般十个引脚分别为7个段加2个公共加一个小数点。公共端一般在中间或在两边,两排,一排一个对称。至于其他引脚的排序你可以自己量出来。

先假设是共阴极或共阳极,假设中间那个就是公共端,用数字万用表逐个判断即可,如果判断错误不亮,就更改假设,继续判断。直到假设正确,也就是说判断正确,那么引脚的顺序和位置就出来。

数码管所使用的电流与电压

(1)电流:静态时,推荐使用10-15mA;动态时,16/1动态扫描时,平均电流为4-5mA,峰值电流50-60mA。

(2)电压:查引脚排布图,看一下每段的芯片数量是多少?当红色时,使用1.9V乘

11

湖南涉外经济学院本科毕业生论文(设计)

以每段的芯片串联的个数;当绿色时,使用2.1V乘以每段的芯片串联的个数。

2.8 其他功能部分

(1)出水控制

当MOT输出低电平时,三极管处于截至区,集电极和发射极导通,接触器常开触点闭合,出水管道导通。如图2.8所示。

图2.8 出水控制

(2)加热控制

当HOT输出低电平时,三极管处于截至区,集电极和发射极导通,接触器常开触点闭合,线圈通电加热。见图2.9。

图2.9 加热控制

12

湖南涉外经济学院本科毕业生论文(设计)

第三章 智能饮水机的软件设计

3.1 系统分配方式

在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件更为重要。

在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以控制其工作。

为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。

模块程序设计法的主要优点是:

(1)单个模块比起一个完整的程序易编写及调试;

(2)模块可以共存,一个模块可以被多个任务在不同条件下调用; (3)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。

本系统软件采用模块化结构,由主程序、温度检测程序、显示子程序、延时程序和其他相关程序等组成。

3.2 主程序设计

程序的初始化主要包括三个环节:

(1)实现各种设置堆栈指针、定时器/计数器0初始化、以及开中断、定时器/计数器启动;

(2)实现LED显示当前水温并能显示预设的水温;

(3)不断的进行按键扫描,判断是否有按键按下,如没有按键按下,则返回显示;如有按键按下,则根据所按键实现相应的操作。

人机按键功能键设置如下:

(1)“出水”键:控制其出水和停止出水; (2)“加热”键:控制其加热和停止加热; (3)“锁定”键:用于锁定其他所有按键;

(4)“切换”键:用于将显示器切换至温度设定界面并开始设定温度; (5)“设置温度”键:以5℃为间隔在0℃至100℃之间以递增方式设定水温。

13

湖南涉外经济学院本科毕业生论文(设计)

主程序程序框图如图3.1所示: 图3.1 主程序框图

按键扫描,判断是否有键按下 N Y 按“出水”键,电机转动 按“加热”键,加热 按“锁定”键,其他键无效 按“切换”键,切换至调温 按“设置温度”键,进行温度设置 延时 Y Y 显示 变量定义 芯片初始化 开始 按键扫描,判断是否有键按下 N 3.3 各模块程序设计

3.3.1 温度检测程序设计

14

湖南涉外经济学院本科毕业生论文(设计)

温度检测运用DS18B20芯片,因为其功能全面且精度高,完全可以满足设计要求,它将检测到的水温送给单片机,再由单片机输出给显示电路将实时水温显示出来。其程序流程图如下:

开始 DS18B20初始化 读一个字节 写一个字节 读取温度 显示温度

图3.2 温度检测程序流程图

3.3.2 显示程序设计

显示程序是负责点亮4支数码管,并根据单片机送出的数据及时更新显示的数据,其程序流程图如下:

开始 送段选信号 循送位选信号 环四次 延时

图3.3 显示程序流程图

3.3.3 键盘扫描程序

键盘扫描程序的任务是在程序运行过程中始终不停的检测是否有按键被按下,如果

15

湖南涉外经济学院本科毕业生论文(设计)

检测到有按键被按下,则进入与该按键对应的程序运行;若该按键没有被按下,则继续检测下一个按键,如此循环,从而完成每一个按键所对应的功能。该设计中第四个按键为锁定键,当检测到锁定键被按下时,其他按键均无效,只有当检测到锁定键再次被按下,其他按键的功能才恢复正常。其程序流程图如下:

开始 按键1按下? Y延时2ms 确定按键1按下? Y N 执行按键1对应程序 继续检测下一按键 循环 图3.4 键盘扫描程序流程图

16

N

湖南涉外经济学院本科毕业生论文(设计)

第四章 调试及性能分析

4.1 软件调试

软件调试用Keil uVision2软件,将写好的程序编译成16进制文件,然后才可以在proteus中将编译好的程序放入单片机进行仿真。

4.2 硬件调试

使用proteus仿真软件对硬件电路进行仿真,将编译好的程序放入单片机中开始运行程序。并通过按键检验各个功能的实现,从而完成设计中所有要求的仿真。 4.2.1 电源电路的仿真

当饮水机通电后,电源指示灯亮,此时各模块均通电,才能保证饮水机的正常工作。如图4.5所示。

图4.5电源电路的仿真

4.2.2 出水电路模块的仿真

在通电状态下按下出水键,电动机开始转动,表示饮水机开始出水,如图4.6所示。

图4.6 出水模块的仿真

17

湖南涉外经济学院本科毕业生论文(设计)

4.2.3 加热模块电路的仿真

在通电状态下按下加热键,饮水开始加热,加热指示灯(黄色)亮,再次按下加热键则停止加热,指示灯灭,如图4.7所示。

图4.7 加热模块的仿真

4.2.4 显示模块电路的仿真

本设计采用4个LED来显示当前的水温或设定的水温,当前水温由DS18B20检测到的温度决定,如图4.8所示。此时显示温度为55℃。

图4.8 显示电路的仿真

4.2.5 报警电路的仿真

(1)当水加热至沸腾后,饮水机报警电路工作,使其自动停止加热并蜂鸣器响起、红灯亮表示报警,如图4.9;

(2)当水加热至设定温度时,报警电路工作,使其自动停止加热并红灯亮报警,如图4.10。此时设定温度为35℃。

18

湖南涉外经济学院本科毕业生论文(设计)

图4.9 水沸腾时报警

图4.10 水加热至设定温度时报警(35℃)

4.3 性能分析

DS18B20的测温精度为0.5℃,其精度完全能满足饮水机的测温需求,其测温范围是-55℃~+125℃,但在此次设计中只要求显示的水温范围是0℃~100℃,因为水温达到100℃时沸腾自动停止加热。

通过软件和硬件的仿真,各部分电路均能按照设计要求运行,实现了设计的所有要求,说明本设计完全符合设计要求,实现了预期的目的,设计成功。

19

湖南涉外经济学院本科毕业生论文(设计)

结 论

本次智能饮水机的控制系统改良设计,主要是针对目前市面上饮水机某些方面的不足进行改良设计。本文主要是针对目前绝大多数饮水机只具有一般的加热、保温功能,已经很难满足消费者不断提高的要求,所以我们有必要对其进行改良设计,使他能够满足人们生活水平不断提高的要求。

本文主要介绍了按键控制饮水机的总体设计、硬件系统设计、软件系统设计以及调试方法。通过不断的设计调试及改良,选出最优方案,所选方案具有功能强、精度高、可靠性好、稳定性高、抗干扰性强等特点。设计的饮水机除按键控制之外,还具有防干烧、设定温度、故障报警等功能。

在这次毕业设计的过程中,我发现自己许多不足的地方。不过通过边学习边做毕业设计使我掌握了单片机的软、硬件基础知识,全面的提高了使用proteus软件进行硬件仿真的能力以及使用Keil uVision2软件进行程序编译的能力。在不断提高我的自学能力,分析问题、解决问题的能力的同时也考验了我们借助互联网络搜集、查阅相关书籍资料,和组织材料的综合能力;在学习新知识时,从基础学起。在这次设计的学习、设计、制作与调试过程中,遇到了不少麻烦和困难,通过不断的查阅资料分析解决,另外自己解决不了的问题向指导老师请教, 使我能顺利完成这次毕业设计!

20

湖南涉外经济学院本科毕业生论文(设计)

参考文献

[1] 朱永金,成友才主编.单片机应用技术(c语言)[M].中国劳动社会保障出版社,2007. [2] 郑梦泽主编.Potel DXP2004原理图与电路板设计实用教程[M].电子工业出版社,2010. [3] 白羽主编.c语言实用教程[M].电子工业出版社,2009. [4] 陶玉鸿主编.模拟电子技术[M].冶金工业出版社,2009.

[5] 贾宗璞,许合力主编.C语言程序设计[M].中国矿业大学出版社,2007.2. [6] 求是科技.单片机典型外围器件及应用实例[M].人民邮电出版社,2006. [7] 姜宝港主编.智能家用电器技术[M].机械工业出版社,2008.

[8] 康华光主编.电子技术基础模拟部分[M] (第五版).高等教育出版社,2006.1 [9] 康华光主编.电子技术基础数字部分[M] (第五版).高等教育出版社,2006.1. [10]余锡存.单片机原理及接口技术[M]. 西安:西安电子科技大学出版社,2000.7 [11]周立功.增强型80C51单片机速成与实战[M].北京:北京航空航天大学出版社,2004.5 [12何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社,2004.3 [13]周航慈.单片机应用程序设计技术[M].北京:北京航空航天大学出版社,1991. [14]张志良等.单片机原理与控制技术[M].北京:机械工业出版社,2001.7

[15] .Dallas semiconductor inc, ds18b20 programmable resolution 1—wire digital t[1]. hermometer 2001[Z] .

[16] Behzad Razavi. Design of Analog CMOS Integrated Circuits[M].2001.

21

湖南涉外经济学院本科毕业生论文(设计)

致 谢

时间如梭,转眼毕业在即。四年的读书生活在这个季节即将划上一个句号,而我的人生却只是一个逗号,我将面对又一次征程的开始。回想在大学求学的四年,心中充满无限感激和留恋之情。感谢母校为我们提供的良好学习环境,使我们能够在此专心学习,陶冶情操。

四年的求学生涯在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。在此向我的论文指导老师曹铁军老师致以诚挚的谢意!老师不仅在学业上言传身教,而且以其高尚的品格给我以情操上的熏陶,本文的写作更是直接得益与老师的悉心指导。老师治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论文写作的指导,经由老师悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”。

感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意!

同时也感谢学院为我提供良好的做毕业设计的环境。

最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者,谢谢。

22

湖南涉外经济学院本科毕业生论文(设计)

附录A 电路原理图

23

湖南涉外经济学院本科毕业生论文(设计)

附录B 元件明细表

元件名 电阻 数码管 二极管 稳压器 单片机 按键 蜂鸣器 电容 晶振 继电器 发光二极管(红) 发光二极管(黄) 发光二极管(绿) 发光二极管(蓝) 三极管 电阻排 变压器 导线 电机 型号 7WATT3R9 7SEG-MPX2-CA 1N914 7805 AT89S52 BUTTON BUZZER CAP CRYSTAL RLY-SPNO LED-RED LED-YELLOW LED-GREEN LED-BLUE FZT790A RESPACK-8 TRAN-2P2S 2.5平方厘米 数量 若干 1 6 1 1 5 1 5 1 2 1 1 1 1 3 2 1 若干 1

24

湖南涉外经济学院本科毕业生论文(设计)

附录C 主程序

控制程序: #include

#define uchar unsigned char #define uint unsigned int

sbit key1=P3^0; sbit key2=P3^1; sbit key3=P3^2; sbit key4=P3^3; sbit key5=P3^4;

sbit Out =P1^3; sbit Hot =P1^5; sbit Hot_led =P1^1; sbit Temp_led=P1^2; sbit Beep=P1^4; sbit Lock_led=P1^0;

sbit P20=P2^0; sbit P21=P2^1; sbit P22=P2^2; sbit P23=P2^3; sbit P24=P2^4;

sbit DQ =P1^7;

uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f };

//按键定义 //控制端口定义 //数码管位选定义 //ds18b20 端口定义 25

湖南涉外经济学院本科毕业生论文(设计)

uchar code table1[]={ 0x00,0x01,0x03,0x07,0x0f };

bit Lock,flag,flag1,flag2; uint temp,T;

//***************************延时函数*************************** void delay_us(uchar i) // us延时函数 {

while(i--);

}

void delay_ms(uchar n) //延时10×n毫秒程序 { uint i,j; for(i=0;i

//***************************数码管显示************************* void SEG_display(uchar dat1,uchar dat2) { P23=1;

P0=table[dat1/100]; P20=0; delay_us(80);

P20=1;

P0=table[dat1/10]; P21=0; delay_us(80);

P21=1;

P0=table[dat1]|0x80;

26

湖南涉外经济学院本科毕业生论文(设计)

P22=0; delay_us(80);

P22=1; P0=table[dat2]; P23=0; delay_us(80); }

//***************************18b20测温***********************//

//*********18B20初始化 void init_ds18b20() { uchar x=0;

DQ = 1; //DQ复位 delay_us(10); //稍做延时 DQ = 0; //单片机将DQ拉低 delay_us(100); //精确延时 大于 480us DQ = 1; //拉高总线 delay_us(10);

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

//*********读一个字节 uchar ReadOneChar() { uchar i; uchar dat=0; for (i=8;i>0;i--) {

DQ = 0; dat>>=1;

27

湖南涉外经济学院本科毕业生论文(设计)

DQ = 1;

if(DQ)

dat|=0x80; delay_us(10); }

return(dat); }

//*********写一个字节 void WriteOneChar(uchar dat) { uchar i; for (i=8; i>0; i--) { DQ = 0; DQ = dat&0x01; delay_us(10); DQ = 1; dat>>=1; } }

//*********读取温度 int ReadTem() { int t; uchar a,b; init_ds18b20();

WriteOneChar(0xcc); WriteOneChar(0x44); delay_us(200); init_ds18b20();

WriteOneChar(0xcc); WriteOneChar(0xbe); // 跳过读序号列号的操作 // 启动温度转换 / /跳过读序号列号的操作 //读取温度寄存器等

28

湖南涉外经济学院本科毕业生论文(设计)

a=ReadOneChar(); b=ReadOneChar(); t=b; t<<=8; t=t|a; return t; }

//*********显示温度 void temp_display() {

uint temp_point;

temp=ReadTem()*0.625; //将温度的高位与低位合并 temp_point=temp; //取出小数位 SEG_display(temp/10,temp_point); }

//************************键盘扫描程序************************// void keyscan()

{

if(key1==0) {

delay_ms(2); if(key1==0)

{

flag=~flag;

if(flag==1)

Out=0;

if(flag==0)

Out=1;

}

while(!key1);

}

if(key2==0) {

delay_ms(2);

29

if(key2==0)

{

flag1=~flag1;

if(flag1==1)

{Hot=0;Hot_led=0;}

if(flag1==0)

{Hot=1;Hot_led=1;} }

while(!key2);

} if(key3==0) {

delay_ms(2); if(key3==0)

{

if(flag2==1) T+=5; if(T>=101)T=0; }

while(!key3);

} if(key5==0) {

delay_ms(2); if(key5==0) {

flag2=~flag2; }

while(!key5);

} }

void Lock_key() { if(key4==0) {

delay_ms(2);

湖南涉外经济学院本科毕业生论文(设计)

// 锁定键盘 30

湖南涉外经济学院本科毕业生论文(设计)

if(key4==0) {

Lock=~Lock; if(Lock==1)

Lock_led=0;

if(Lock==0)

Lock_led=1;

}

while(!key4);

} }

//****************************主函数**************************// void main() {

T=100; while(1) { Lock_key(); if(Lock==0) keyscan(); if(flag2==0) temp_display(); if(flag2==1) SEG_display(T,0);

if(temp>=T*10) {Temp_led=0;Hot=1;Hot_led=1;} if(temp< T*10) Temp_led=1;

if(temp>=1000){Beep=0;Hot=1;Hot_led=1;} if(temp<1000) Beep=1; }

}

31

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

Top