单片机热水器的设计

更新时间:2024-07-02 20:18:02 阅读量: 综合文库 文档下载

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

西北师范大学知行学院单片机课程设计

单片机课程设计

设计题目:热水器温度控制器的设计

学 校:西北师大知行学院

姓 名: 李天琦 学 号: 201392170XXX 系 别: 电信系 班 级: 13电本 指导老师: 胡亚琦

1

西北师范大学知行学院单片机课程设计

摘 要

随着科学技术和生产的快速发展,在生活中,温度成为了频繁出现的词汇。温度测量与控制也成为了生活生产中重要的一部分。在化工、石油、冶金等生产领域的物理过程和化学反应中,温度往往是一个很重要的量,需要准确地加以控制。除了这些部门之外,温度控制系统还广泛应用于其他领域,是用途很广的一类工业控制系统。

本文所设计的电热水器温度控制系统就采用AT89C51单片机为控制核心,利用AT89C51现有的接口来连接外围硬件模块,并通过DS18B20温度传感器准确的检测出当前的温度、DS1302实时时钟芯片实现显示时间的功能,并将所测到的温度数据传送给单片机进行分析处理。并由LCD1602液晶屏显示温度值及实时时间。其中,系统软件设计中,分别预先设计好所需温度的上下限数值,并通过该上下限控制蜂鸣器的报警,再通过继电器的通断来决定电热丝是否加热,实现对温度的简单控制,达到预先设置范围内。

关键词:AT89C51单片机,温度控制

2

西北师范大学知行学院单片机课程设计

Abstract

With the rapid development of science and technology and production, andin life, the temperature has become a frequently occurring words. Temperature measurement and control of production has also become an important part of life. Physical processes and chemical reactions in the chemical, petroleum, metallurgy and other production areas, the temperature is often a very important quantity that needs to be controlled accurately. In addition to these sectors, the temperature control system is also widely used in other areas, is a very versatile class of industrial control systems.

In this paper, the design of the electric water heater temperature control system using AT89C51 microcontroller core, use AT89C51 existing interfaces to connect peripheral hardware module, and through DS18B20 temperature sensor accurately detects the current temperature, DS1302 real-time clock chip display function, and the measured temperature data to the microcontroller for analysis. By LCD1602 display and real-time temperature. Among them, the system software design, pre-designed upper and lower limit values were good the desired temperature, and through the upper and lower control buzzer alarm, and then through the relay off to determine whether the heating wire heating, simple control of the temperature reach the pre-set range.

Keywords: AT89C51 microcontroller, temperature control

3

西北师范大学知行学院单片机课程设计

目 录

第一章 绪 论 .................................................... 6

1.1引言 ............................................................................ 错误!未定义书签。 1.2研究的背景及意义 ...................................................................................... 6 1.3本文的主要研究内容和研究对象 .............................................................. 6 第二章 基于单片机的电热水器温度控制系统设计 ....................... 8

2.1电热水器控制系统功能说明 ...................................................................... 8 2.2整体设计方案 .............................................................................................. 8 第三章 系统硬件结构设计 .......................................... 9

3.1系统整体设计线路图 .................................................................................. 9 3.2最小系统介绍 ............................................................................................. 9 3.3温度采集电路方案 ................................................................................... 12 3.4继电器控制电路 ........................................................................................ 16 3.5键盘电路 .................................................................................................... 16 3.6实时时钟电路 ............................................................................................ 17 3.7显示电路 .................................................................................................... 19 3.8 温度报警电路 ........................................................................................... 25 第四章 系统软件设计 ............................................. 26

4.1 编程软件及编程语言的介绍 ................................................................... 26 4.2主程序工作流程图 .................................................................................... 26 4.3 各模块子程序流程图 ............................................................................... 28 第五章 系统的仿真 ............................................... 29

5.1 仿真软件 ................................................................... 错误!未定义书签。 5.2 系统的仿真运行与分析 .......................................................................... 29 第六章 总结与展望 ................................................ 31 参考文献 ......................................... 错误!未定义书签。 致 谢 ........................................... 错误!未定义书签。

4

西北师范大学知行学院单片机课程设计

毕业设计小结 ..................................................... 32 附 录 ........................................................... 33 附录一:电热水器温度控制系统电路图............................... 33 附录二:系统软件编程............................................. 33

5

西北师范大学知行学院单片机课程设计

第一章 绪 论

1.1课程设计的的背景及意义

由于消费水平的提高和人们对生活品质要求的提高,热水器已由一个高档的奢侈品成为一种必备的家庭用具,受到越来越多人的青睐。而电热水器已经成为今后热水器市场的发展方向。因为气价涨了,而电价却降了;电热水器使用安全、卫生、又无污染。今后几年我国电热水器市场将呈现强劲增长势头,其产品质量、技术水平、服务规范将不断提升,价格也会下降。我国过去的热水器市场一直以燃气热水器为主,近年来电热水器逐渐占据了部分市场成为主导,并且代表了未来的发展趋势。

随着电子技术以及应用需求的发展,单片机技术得到了迅速的发展,在高集成度,高速度,低功耗以及高性能方面取得了很大的进展。伴随着科学技术的发展,电子技术有了更高的飞跃,我们现在完全可以运用单片机和电子温度传感器对某处进行温度检测,而且我们可以很容易地做到多点的温度检测,如果对其原理稍加改进,我们还可以进行不同地点的实时温度检测和控制。在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。

1.2本文的主要研究内容和研究对象

当今,单片机的技术已经非常成熟了,它集成度高、功能强、存储量大、速度快、抗干扰性强和指令丰富等的优点,使它的应用遍及各个领域。

6

西北师范大学知行学院单片机课程设计

本系统设计一个基于用AT89C51的水温控制系统,能在一定的范围内采集监控水温,控制精度有所提升,同时具有较好的快速性,报警,显示等功能且价格低廉,具有很高的工程应用价值和现实意义。

整体设计思路:采用单片机AT89C51为核心。用温度传感器DS18B20采集温度变化信号,通过单片机处理后监控温度,并完成液晶显示、报警等操作;其中传感器用于检测实时水温,LCD显示屏用于显示采集的温度数值,当水温超过设定值时,报警装置进行报警,加热器停止加热;当水温低于设定值时,加热开关断开,温度回落。

7

西北师范大学知行学院单片机课程设计

第二章 基于单片机的电热水器温度控制系统设计

2.1电热水器控制系统功能说明

本课题采用单片机为主控芯片来设计电热水器温度控制系统,主要功能如下:

1.测量并采集热水器内的温度,并通过显示器实时显示水温,显示范围为0℃~90℃;

2.正常状态下实时显示时钟;

3.在温度未达到或超过设定值时报警系统作用;

4.当温度低于设定值时,电热丝进行加热;当温度超过设定值时,加热开关停止加热,温度下降。

2.2整体设计方案

采用单片机AT89C51为核心。用温度传感器DS18B20采集温度变化信号,通过单片机处理后监控温度,并完成液晶显示、报警等操作;其中传感器用于检测实时水温,LCD显示屏用于显示采集的温度数值,当温度低于设定值时,电热丝进行加热;当水温高于设定值时,加热停止,温度回落。

图2-1 系统硬件方案

实时时钟 加热开关 键盘电路 AT89C51 复位电路 报警电路 水温采集装置 微控制器模块 LCD显示电路

8

西北师范大学知行学院单片机课程设计

第三章 系统硬件结构设计

3.1系统整体设计线路图

图3-1系统整体电路图

3.2最小系统介绍

单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成。最小系统原理图如图3-2所示。

9

西北师范大学知行学院单片机课程设计

图3-2最小系统电路图

3.2.1复位电路

复位电路是一种用来使电路恢复到起始状态的电路设备,它的操作原理与计算机有着异曲同工之妙,只是启动原理和手段有所不同。单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。

1、手动按钮复位

手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。

10

西北师范大学知行学院单片机课程设计

2、上电复位

AT89C51的上电复位电路即只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1uF。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。 3.2.2 振荡电路

图3-3振荡电路图

单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。

在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器

11

西北师范大学知行学院单片机课程设计

(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。

单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。

晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。

STC89C51使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。

3.3温度采集电路方案

本部分电路主要通过传感器来实现对温度的测量,本系统选用的是DS18B20传感器,DS18B20是美国DALLAS公司继DS1820之后推出的增强型单总线数字温度传感器。它在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。 3.3.1 DS18B20的介绍

1.DS18B20的结构

DS18B20主要由寄生电源、温度传感器、64位串行ROM单线接口、存储中间数据的高速暂存器(内含便笺式RAM)、用于存储用户设定的温度上下限值的TH和TL触发器存储与控制逻辑、8位循环冗余检验码(CRC)发生器部分。

DS18B20管脚排列如图3-4所示:

图3-4 DS18B20的引脚图

12

西北师范大学知行学院单片机课程设计

本设计使用的是三引脚的产品。其中,1号引脚接地,2号引脚接数据端,3号引脚接电源。

2.DS18B20的主要特点

数字型智能温度传感器有以下主要特点:

(1) 适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电。

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

(3) DS18B20 支持多点组网功能,多个 DS18B20 可以并联在唯一的单总线上,实现组网多点测温 。

(4) DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内 。

(5) 测温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃ 。 (6) 温度分辨力可编程。DS18B20的数字温度输出可进行9~12位编程。 在实际应用时,需要在分辨力与转换时间两者之间权衡考虑。当DS18B20工作在12位分辨力时,温度与数字输出的对应关系见表3-1:

表3-1 DS18B20输出数据与温度的对应关系

温度/℃ +125 +85 +25.0625 +10.125 +0.5 0 -10.125 -25.0625 -55

数字输出(二进制) 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0001 0000 0001 1010 0010 0000 0001 1010 1000 0000 0000 0000 0000 1111 1111 0101 1110 1111 1110 0101 1111 1111 1100 1001 0000 数字输出(十六进制) 07D0H 0550H 0191H 00A2H 0008H 0000H FF5EH FE6FH FC90H 13

西北师范大学知行学院单片机课程设计

(7) 测量结果直接输出数字温度信号,以“一线总线”串行传送给 CPU,同时可传送 CRC 校验码,具有极强的抗干扰纠错能力 。

3.DS18B20测温原理

用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55℃的一个值。如果计数器在门周期结束前达到0,则温度寄存器(同样被预置到-55℃)的值增加,表明所测量的温度大于-55℃。

同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到0,如果门周期仍未结束,将重复这一过程。

斜坡式累加器用来补偿感温振荡器的非线性,以期待在测温时获得比较高的分辨力。这是通过改变计数器对温度每增加一度所需计数的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。温度测量电路的方框图如图3-5所示:

图3-5 DS18B20测温原理图

3.3.2 测温电路

14

西北师范大学知行学院单片机课程设计

本文中测温电路主要使用DS18B20传感器,通过P3.7口与单片机相连,实现数据的传递。

其具体硬件原理图如图3-6所示:

图3-6 测温电路原理图

DS18B20芯片有两种供电方式:寄生电源供电方式和外部电源供电方式。本文采用的是外部电源供电方式。

在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在理论上总线上可以挂接任意多个DS18B20传感器,组成多点测温系统。注意:在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85℃。外部电源供电方式是DS18B20的最佳工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统,在外接电源方式下,可以充分发挥DS18B20宽电源电压范围的优点,即使电源电压VCC降到3V,依然能够保证温度量精度。

在实际应用中还需要注意的是,连接DS18B20的总线电缆是有长度限制的,试验中,当采用普通信号电缆传输长度超过50m时,读取的温度数据将发生错误,当将总线电缆改为双绞线带屏蔽电缆时,正常通信距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通信距离进一步加长,这种情况主要是由总线分布电容使信号波形发生畸形造成的,因此,在用DS18B20进行长距离测温系统设计时,要充分考虑总线分布电容和阻抗匹配问题。

15

西北师范大学知行学院单片机课程设计

3.4继电器控制电路

图3-7继电器控制电路设计图

该部分通过单片机的P口输出的高低电平来控制固态继电器的通断,从而决定电热丝是否加热,当P口输出低电平时,加热电阻通电,周围的温度缓慢升高,DS18B20测得的温度值也升高;当P口输出高电平时,加热电路断开,温度回落。

3.5键盘电路

键盘是单片机系统设计中必不可少的组成部分,是系统与用户之间信息交流的途径之一。键盘是一组按键的集合,它是最常用的单片机输入设备。键盘,通常包括有数字键(0~9)、字母键(A~Z)以及一些功能键。操作人员可以通过键盘向单片机输入数据、地址、指令或其他控制命令,实现人机对话。通过键盘输入数据,用户可以将控制指令传递给系统,并对系统的运行状态进行设置,使得系统能够按照用户的要求工作。

16

西北师范大学知行学院单片机课程设计

根据需要的键盘数量的分为独立式键盘和矩阵式键盘。本次设计采用独立式键盘,就是各按键相互独立,每个按键各接一根输入线。独立式键盘电路配置灵活,软件结构简单、方便。

图3-8键盘电路

3.6实时时钟电路

实时时钟的缩写是RTC(Real-Time Clock)。RTC是集成电路,通常称为时钟芯片。本设计采用串行实时时钟芯片DS1302。DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。它经过一个简单的串行接口与微处理器通信。实时时钟/日历提供秒、分、日、周、月和年等信息。DS1302的性能特征如下:

●31*8位暂存数据存储RAM; ●串行I/O口方式使得引脚数目最少;

●2.5~5.5V满度工作范围(还有2.0~5.5V满度工作范围可供选择); ●2.5V时耗电小于300nA;

●用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送; ●8引脚DIP或可选的用于表面安装的8引脚SOIC封装; ●可选的工业温度范围-40~+85℃。 3.6.1 DS1302管脚图和管脚说明

17

西北师范大学知行学院单片机课程设计

(1)DS1302为8管脚芯片,其管脚排列如图3-9所示:

图3-9 DS1302管脚排列图

(2)DS1302的管脚功能说明: ●Vcc 主电源 ●X1,X2 振荡源 ●GND 地线 ●/RST 复位/片选线

●I/O 串行数据输入/输出端(双向) ●SCLK 串行数据输入端 ●Vcc1 后备电源

DS1302连接原理图如图3-10所示:

图3-10实时时钟电路

18

西北师范大学知行学院单片机课程设计

3.7显示电路

我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单,在前面章节已经介绍过,在此不作介绍,本章重点介绍字符型液晶显示器的应用。

在单片机系统中应用晶液显示器作为输出器件有以下几个优点: (1)显示质量高

由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。

(2)数字式接口

液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。

(3)体积小、重量轻

液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。

(4)功耗低

相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。

1.液晶显示简介: (1)液晶显示原理

液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。

(2)液晶显示器的分类

19

西北师范大学知行学院单片机课程设计

液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。

2. 液晶显示器各种图形的显示原理: (1)线段的显示

点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。

(2)字符的显示

用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。

(3)汉字的显示

汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字。

20

西北师范大学知行学院单片机课程设计

3.1602字符型LCD简介:

字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。

(1)1602LCD的基本参数及引脚功能

1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下所示:

(2)1602LCD主要技术参数:

表3-2 1602LCD主要技术参数 显示容量 芯片工作电压 工作电流 模块最佳工作电压 字符尺寸

(3)引脚功能说明:

16×2个字符 4.5—5.5V 2.0mA(5.0V) 5.0V 2.95×4.35(W×H)mm 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3-3所示:

表3-3引脚接口说明表

编号 1 2 3 4 5 6 7 8 符号 VSS VDD VL RS R/W E D0 D1 引脚说明 电源地 电源正极 液晶显示偏压 数据、命令选择 读/写选择 使能信号 数据 数据 21

编号 9 10 11 12 13 14 15 16 符号 D2 D3 D4 D5 D6 D7 BLA BLK 引脚说明 数据 数据 数据 数据 数据 数据 背光源正极 背光源负极

西北师范大学知行学院单片机课程设计

第1脚:VSS为地电源。 第2脚:VDD接5V正电源。

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。

(4)1602LCD的指令说明及时序

1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)

1602液晶模块内部的控制器共有11条控制指令: 指令1:清显示,指令码01H,光标复位到地址00H位置。 指令2:光标复位,光标返回到地址00H。

指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。

指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。

指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。

22

西北师范大学知行学院单片机课程设计

指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。

指令7:字符发生器RAM地址设置。 指令8:DDRAM地址设置。

指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:写数据。 指令11:读数据。

表3-4 1602液晶模块内部的控制器控制指令

序号 1 2 3 4 5 6 7 指令 清显示 光标返回 置输入模式 RS 0 0 0 R/W 0 0 0 0 0 0 0 D7 0 0 0 0 0 0 0 D6 0 0 0 0 0 0 D5 0 0 0 0 0 1 D4 0 0 0 0 1 DL D3 0 0 0 1 S/C N D2 0 0 1 D R/L F D1 0 1 I/D C * * D0 1 * S B * * 显示开、关控制 0 光标或字符移位 0 置功能 置字符发生存储器地址 0 0 字符发生存储器地址 8 置数据存储器地址 0 0 1 显示数据存储器地址 9 10 读忙标志或地址 0 写数CGRAM或DDRAM) 1 1 0 BF 计数器地址 要写的数据内容 11 从CGRAM或DDRAM读数 1 1 读出的数据内容

与HD44780相兼容的芯片时序表如下:

23

西北师范大学知行学院单片机课程设计

读状态 写指令 输入 输入 表3-5基本操作时序表 RS=L,R/W=H,E=H RS=L,R/W=L,D0-D7=指令码,E=高脉冲 读数据 写数据 输入 输入 RS=H,R/W=H,E=H RS=H,R/W=L,D0-D7=数据,E=高脉冲 输出 输出 D0-D7=数据 无 输出 输出 D0-D7=状态字 无

(5)读写操作时序如图所示:

图3-11 读操作时序

图3-12 写操作时序

1602LCD的RAM地址映射及标准字库表

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图3-13是1602的内部显示地址:

24

西北师范大学知行学院单片机课程设计

图3-13 1602LCD内部显示地址

例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是:

01000000B(40H)+10000000B(80H)=11000000B(C0H)。

在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”

3.8 温度报警电路

当环境温度不在设置温度范围内,需要发出警报,报警电路由三极管和蜂鸣器。电路中刚才用PNP三极管,选用低功率三极管,当P1.0低电平,三极管集电极正偏,发射级反偏,三极管导通,驱动蜂鸣器报警。

图3-14报警电路

25

西北师范大学知行学院单片机课程设计

第四章 系统软件设计

4.1 编程软件及编程语言的介绍

本电热水器温度控制系统程序由MCS-51单片机C语言编写,该软件主要由以下几个子模块组成:主程序模块,按键模块温度采集和控制模块,温度显示模块等,程序源代码见附录2。

应用C51语言编写程序具有以下特点:

(1)不要求了解处理器的指令集,也不必了解存储器的结构。

(2)寄存器分配和寻址方式由编译器管理,编程时不必考虑存储器的寻址等。

(3)可使用与人的思维更接近的关键字和操作函数。 (4)可使用C51语言中库文件的许多标准函数。

(5)通过C语言的模块化编程技术,可以将已编制好的程序加入到新的程序中。

(6)C51语言编译器几乎适用于所有的目标系统,已完成的软件项目可以很容易的转移到其他微处理器和环境中。

4.2主程序工作流程图

在主程序中,主要完成的任务系统的开机自检、加热系统。

26

西北师范大学知行学院单片机课程设计

开 始 初始化设定温度上、下限 显示当前温度 判断当前温度值 超过设定 是 红灯亮 温度上限 否 低于设定 温度下限 是 绿灯亮 否 加热开关断开 启动电热丝升高温度 结束 图4-1 主程序工作流程图

27

西北师范大学知行学院单片机课程设计

4.3 各模块子程序流程图

开 始 初始化 DS18B20是否存在 是 ROM操作指令 否 存储操作指令 读取温度值 返回

图4-2 测温程序流程图

开始 接收数据 判断数据为“K”还是“G” “G” “K” P0.1=0 加热丝工作 P0.1=1 加热丝停止工作

图4-3 控制部分流程图

28

西北师范大学知行学院单片机课程设计

第五章 系统的仿真

5.1 系统的仿真运行与分析

本次仿真主要对单片机的温度控制系统的硬件和软件进行了联合仿真,在仿真过程中灵活运用Proteus软件和Keil软件的特点,实现了实时时钟和温度的显示,并能对温度进行控制,当温度低于设定值时,加热开关启动电热丝进行加热,当实时温度低于设定值时,加热开关断开,温度回落。

图5-1系统运行仿真

1.打开已经设计好的电路图文件,运行仿真。首先,LCD显示实际水温. 2.设置设定温度。系统中有四个为设定温度数值的按键,前两个为温度上限的加减键,下两个为温度下限的加减键。

3.模拟加热。系统采用一个绿灯来模拟加热装置,当绿灯亮则表示开启加热装置,系统处于加热状态;绿灯灭则表示关闭加热装置,系统处于停止加热状态。当设定水温高于实际水温时,系统自动启动加热装置;当设定水温低于实际水温

29

西北师范大学知行学院单片机课程设计

时,系统自动关闭加热装置。

30

西北师范大学知行学院单片机课程设计

第六章 课程设计总结

本文在经过详细的查阅国内外各种文献、资料的过程后,将单片机与各大模块电路相结合,研制出了具有使用价值的热水器温度控制系统。本文详细阐述了基于AT89C51单片机的温度控制系统的设计,从硬件选型、硬件电路设计,到软件设计和系统仿真。硬件件设计方面,按照模块化的设计思想实现了系统总体结构设计,软件设计方面,按照不同功能需求通过C语言编程实现了系统的仿真运行。

本设计的突出特点和研究结论是:

1. 本设计中采用了先进的温度传感器DS18B20,它在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。

2. 本设计采用串行实时时钟芯片DS1302。它经过一个简单的串行接口与微处理器通信。实现了秒、分、日、周、月和年等信息的显示。

3. 本文采用液晶显示屏进行内容的显示,LCD显示屏连线简单,显示的内容清晰明了,大大的节省了线路空间及成本。

31

西北师范大学知行学院单片机课程设计

课程设计小结

在本次课程设计的过程中,从最开始的课题思路的考虑到最后的着手,我查阅了很多国内外各种资料,本文所设计的电热水器温度控制系统就采用AT89C51单片机为控制核心,利用AT89C51现有的接口组织外围硬件模块。然后分硬件和软件两部分进行研究。硬件是指以温度控制器为核心,由外接温度测量电路、报警电路、实时时钟电路、键盘、复位电路、热水器加热开关、LCD显示电路组成。而软件部分则主要是为系统功能的实现而进行的C言编程和结果的仿真。

本次课程设计历时近2个多月,从最初的课题思路到最后的仿真运行,我学到了很多,各元器件的选择,各模块的设计以及最后总电路图的连接,都对我的理论知识和动手能力有了很大的提高,当然,在画原理图、模块设计和电路连接过程中不可避免地遇到了各种各样的问题,在处理问题的过程中必须保持冷静清晰的头脑,结合理论和实际情况来解决问题。

我结合自己这几年的理论知识在老师们的帮助下,态度认真的完成了这次课程设计。

32

西北师范大学知行学院单片机课程设计

附 录

附录一:电热水器温度控制系统电路图

附录二:系统软件编程

#include #include #define uchar unsigned char #define uint unsigned int uchar code table[]=\

uchar sec,sec1,sec2,min,min1,min2;hour,hour1,hour2;

33

西北师范大学知行学院单片机课程设计

//shijian

uchar day,day1,day2;mon,mon1,mon2,year,year1,year2,week,week1;

//riqi

uchar bai,shi,ge,dec,dec1,dec2; float realtemp; //wendu uchar temp_l,temp_h; uchar flag;

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

sbit rw=P2^5; sbit rs=P2^6; sbit en=P2^7;

sbit io=P3^4; sbit rst=P3^5; sbit sclk=P3^6;

sbit DQ=P3^7; sbit beep=P1^0;

sbit ACC0=ACC^0; sbit ACC7=ACC^7;

void delay(int ms)

34

西北师范大学知行学院单片机课程设计

{ // 延时子程序 int i; while(ms--) {

for(i = 0; i< 250; i++) { _nop_(); _nop_(); _nop_(); _nop_(); } } } void di() {

beep=0; delay(10); beep=1;

//蜂鸣器“滴”

}

/***********lcd1602***********/

void delay2(uchar t) { }

35

uchar x,y; for(x=0;x

for(y=0;y<11;y++);

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

Top