您的当前位置:首页正文

锅炉温度控制系统设计设计

来源:小奈知识网


锅炉温度控制系统设计设计

安徽建筑大学

毕 业 设 计(论 文)

专 业 : 测控技术与仪器 班 级 : 二班 **** : ** 学 号 : ***********

课 题 : 锅炉温度控制系统设计 **** : ***

2013 年 06 月 14 日

安徽建筑大学 毕业设计(论文)

摘 要

在调查对当前采暖需求情况的基础上,根据小型家用燃气锅炉的工作特点,再结合工程实际需要,研究了基于MCS-51单片机的家用燃气锅炉温度控制系统,旨在解决使用燃煤锅炉集中采暖时所遇到的锅炉温度不易控制的问题,改进家庭采暖的控制方式,提高采暖的经济性。利用 Protel99se软件设计电路,对智能控制器的电源电路、报警电路、时钟电路、复位电路、LCD液晶显示电路以及控制器的核心—温度采集电路进行了设计。电源采用三端集成稳压器W7800 (W7900)系列元件7805,交流220 v电压转换为单片机所需要的5V电压;利用AT89S51作为控制器的核心器件;利用集成电路温度传感器DS18B20测量锅炉水温;并将测量的水温与设定值比较,另外系统使用LCD液晶显示器显示当前水位、水位的上下限值、当前采集的温度值和预先设定的温度报警值。当温度超过所设定的报警温度值,系统将发出报警声音,同时关闭锅炉燃烧器。等待温度降到下限值,这时就可以重新锅炉燃烧器通电,继续加温,如此反复监控温度。这样就可以提高能源的使用率,节约能源。针对系统的特点和要求,在上述硬件电路及实现方法的基础上,利用汇编语言,设计了基于单片机的锅炉温度控制系统。控制软件主要包括温度和温度采集子程序、水位控制程序、LCD液晶显示子程序等。

关键词:单片机;温度控制;DS18B20;燃气锅炉;LCD;

安徽建筑大学 毕业设计(论文)

ABSTRACT

According to the market demand and the characteristics of domestic heating, this paper develops MCU intelligence controller for the minor gas-fired boiler which is domestic heating equipment on the basis of investigation of heating demand widely. The research purpose is to change the inconvenience of temperature control bring by using coal fired boiler for centralized heating, to increase economics of heating.The software called Protel99se for circuit designed is used to develop the hardware of the controller. The hardware includes the power supply circuit, the reset circuit,the clock circuit, the alarm circuit, the LCD display circuit, and the temperature collection which is the core of this controller. The three-pin integrated-circuit voltage regulator W7800 (7900) series component 7805 is used for the power supply. The Atmel AT89S51 chip is the core chip of the controller. The integrated temperature sensor DS18B20 is used to measure water temperature in boiler. The key circuit is used to set the alerm temperature and analog water in or out. In addition, LCD is used to display water level bound, current water level, temperature alerm value by presupposition and current temperature. When water level beyond its bound or when current temperature beyond its alerm value, the system gives an alerm and makes boiler burner off. When water temperature is down, the system releases alerm and makes boiler burener on. The system does it again and again.So the system can save energy and improve energy utilization rate. Aim at the demand and characteristic of the system, on the basis of these hardware and implement method, using assemble language, system designs boiler temperature control system design based on singlechip. This software includes temperature and water level monitor main program, temperature collection subprogram, analoy water in and out subprogram, keyboard scan subprogram, LCD display subprogram etc.

安徽建筑大学 毕业设计(论文)

Keywords:

MCU;

Temperature control; DS18B20;Gasboiler;Liquid

CrystalDisplay;

目 录

1 绪论 ....................................................................... 0

1.1 课题背景 ......................... 0 1.2课题研究的目的及意义 .............. 1 1.3系统的总体设计思想 ................ 1 2 系统方案选择及工作原理 ..................................... 3

2.1 系统设计方案 ..................... 3 2.2 系统结构框图 ..................... 4

2.2.1主要器件的选择 .............. 6 2.2.2 辅助器件选择 ................ 6

3 硬件电路设计 ......................................................... 7

3.1 主控单片机AT89S51芯片介绍 ........ 7

3.1.1 主要性能特点 ................ 8 3.1.2 AT89S51管脚说明 ............ 8 3.2 单片机最小系统 .................. 10

图3.2 最小单片机系统 ............ 11 3.2.1时钟电路 ................... 11 3.2.2 复位电路 .................. 11 3.3 温度控制电路设计 ................. 12

安徽建筑大学 毕业设计(论文)

3.4按键电路设计 ..................... 12 3.5 水位检测电路设计 ................. 13 3.6 稳压电源电路设计 ................. 14 3.7温度传感器选择及温度采集电路 ..... 16

3.7.1 DS18B20简介 ............... 16 3.7.2温度采集电路 ............... 17 3.8输出模块 ......................... 18

3.8.1 固态继电器SSR ............. 18 3.8.2报警电路设计 ............... 19 3.8.3液晶显示电路设计 ........... 20

4 系统软件的设计 ................................................... 23

4.1 系统主程序 ...................... 23 4.2 子模块软件设计 ... 错误!未定义书签。

4.2.1 A/D转换环节子程序设计 ..... 25 4.2.2 DS18B20温度采集子程序设计 . 25 4.2.3 LCD液晶显示子程序设计 ..... 27 4.2.4 按键子程序设计 ............. 27

总结 ........................................................................... 29 参考文献 ................................................................... 30 致 谢 ......................................................................... 32 附录一 ....................................................................... 33 附录二 ....................................................................... 42

安徽建筑大学 毕业设计(论文)

1 绪 论

1.1 课题背景

由于工业过程控制的需要,特别是在计算机技术和微电子技术的迅猛发展以及自动控制理论和设计方法发展的推动下,国内外温度控制系统的发展迅速,并在智能化,自适应、参数整定等方面,以美国、德国、日本、瑞典等国家技术领先,都生产出了一批性能优异的、商品化的温度控制器及仪表,并在各行得到广泛的应用。

电加热锅炉采用全新加热方式,它具有许多优点,使其比其他形式的锅炉更具有吸引力:

1)能量转化效率高。加热元件直接与水接触,能量转换效率很高,可达95%以上。

2)无污染。不会排放出有害气体、飞尘、灰渣,完全符合环保方面的要求。 3)结构简单、体积小、重量轻,占地面积小。

4)锅炉本体结构简单,安全性好。不需要布管路,没有燃烧室、烟道,不会出现燃煤、燃油、燃气的泄漏和爆炸危险。

5)可采用计算机监控,完全实现自动化。其温度的控制都能通过微控制芯片完成,使锅炉的运行完全实现自动化,最大程度地将控制器应用于传统的锅炉行业。

6)启动、停止速度快,运行负荷调节范围大,调节速度快,操作简单。由于加热元件工作由外部电气开关控制,所以启停速度快。

由于目前人们的环保意识的提高,人们对电热锅炉越来越重视,在工业生产和民用生活用水中应用越来越普及。电热锅炉目前主要用于供暖和提供生活用水。主要是控制水的温度,保证恒温供水。随着计算机和信息技术的高速发展,单片机广泛的应用于工业控制中。工业控制也越来越多的采用计算机控制,在这里我们采用51系列单片机来做控制器。

由于电加热锅炉是一个具有非线性、大滞后、大惯性、时变性、升温单向性等特点的控制对象,很难用数学方法建立精确的数学模型,因此用传统的控制理论和

0

安徽建筑大学 毕业设计(论文)

方法很难达到很好的控制效果。而这下符合PID控制使用的条件,因而PID控制被广泛地用于电热锅炉的控制中,用来代替传统的控制方法,并获得良好的控制效果。 1.2课题研究的目的及意义

目前市场上家用燃气锅炉大部分为进口,价格较高,售后服务也不够完善,不利于燃气锅炉的推广与使用,研制燃气锅炉的企业与公司也相对较少。因此,研制开发小型家用燃气锅炉就具有客观的市场价值与现实的意义。

本设计将结合中、小型家用燃气锅炉的实际需要,利用MCS-51系列单片机为核心器件组成温度控制系统,采用温度采集技术,并通过运行和分析研究,以期正确认识和全面理解利用单片机实现温度采集技术在过程控制中的应用。

本控制器主要是针对现代工业自动化生产过程中锅炉温度控制装置而设计的,用PID控制代替传统的控制方法,以获得良好的控制效果。 1.3系统的总体设计思想

目前,专门用于工业控制的单片机系列产品广泛出现于世界计算机市场上,单片机以其重量轻、体积小、功耗低、功能强、价格便宜的特点,在工业控制的实践中得到越来越广泛的应用。单片机不仅仅可以实现各种常规的控制,而且还可以根据被控对象的特性,充分利用控制理论的最新研究成果,采用更完善的控制方式,以获得更好的控制效果。当前,由于家用锅炉处于批量生产中,并且每台锅炉需要一套完整的控制系统,根据这些特点,特别是从产品成本角度出发,以MCS-51为核心器件的控制系统是比较理想的选择。此外,MCS-51系列单片机完备的控制功能、运算能力、加上完善的外部接口电路,完全可以胜任对中小型锅炉的控制。系统在外围芯片选取时,尽量选取典型的、易于扩展和替换的芯片和电路,还需本着节约成本的思想。选用LCD液晶显示器和基于单总线的数字温度传感器DS18B20。LCD液晶显示器为平面超薄的显示设备,它由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。液晶显示器功耗很低,因此倍受工程师青睐,适用于使用电池的电子设备。它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面;DS18B20温度传感器采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有体积小,使用方便,耐磨耐碰,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。它们二者与单片机的接口比较简

1

安徽建筑大学 毕业设计(论文)

单,而且编程难度不大,既缩短了系统的开发周期,又保证了系统的稳定性,节约了开发成本。

本系统的电源采用市场上常见的W7800(7800)系列7805电源稳压芯片,数字信号和模拟信号分别采用单独的供电回路,以避免电源的干扰。利用继电器控制燃烧器和给水泵的加热和给水。当锅炉内的水的实际水温超过报警温度值,系统会发出报警声音,这时接在单片机一端的继电器动作,燃烧器断电。此时温度传感器实时对锅炉温度检测,当温度降到设定值的下限时,继电器重新通电。燃烧器电源重新接通,锅炉继续加热。如此反复监控温度。这样对锅炉温度控制不仅可以节约能源,提高能源的使用率。使用LCD液晶显示器显示水位的上下限值、预先设定的温度报警值和当前采集的温度值;利用温度传感器DS18B20采集测量锅炉水温。此外,为防止锅炉干烧和锅炉水溢出,本系统对锅炉的水位进行实时监控,避免造成能源浪费以及水溢出引起的锅炉爆炸等严重后果。

2

安徽建筑大学 毕业设计(论文)

2 系统方案选择及工作原理

实现本系统设计要求的方案有多种,以下介绍两种控制方法: (1)用PLC为控制器,热电阻/热电偶作为测温器件,实现闭环控制。

(2)用单片机结合温度传感器和加热执行机构对温度进行控制,键盘修改温度参数、显示。

每一种方案都有其各自的优点。本章详细列举、说明了两种不同的设计方案的优缺点进行对比,选出了最佳控制方案。 2.1 系统设计方案

方案一:采用PLC为控制器

此方案用PLC作为主要控制器的核心,利用热电偶作为测温器件,然后通过一个变送器将温度转换成电压信号,送入到A/D转换器进行模拟到数字量的转换,转换结果转送入PLC,由PLC根据给定值与测量值的大小作比较得到一个偏差,再由D/A将偏差数字量转换成模拟量来调节加热丝的工作时间或者通过调节不同电压来调节加热丝的加热功率,最终达到锅炉恒温控制的目的。系统原理框图如下图2.1所示:

实际温度

给A/D变PLC控热

D/A加 图2.1 方案一的

3

安徽建筑大学 毕业设计(论文)

原理框图

方案二:采用51单片机为主控芯片

采用AT89S51单片机、温度传感器DS18B20、7805电源稳压芯片、液晶显示器LCD1602等核心部件。该方案采用液晶显示器来显示当前采集的温度值、当前水位、水位的上下限值、预先设定的温度报警值,接口简单、直观而且编程强度不大。用不锈钢管制作成的装置放于水位上下限。这样就可以缩短系统的开发周期,减少系统成本开销。另外,温度传感器DS18B20的温度测量范围、响应时间、稳定性、精度都要比热敏电阻好。当系统采集到温度信号后与设定温度进行比较得到一个偏差,然后通过PID运算,从单片机P1.0输出一个PWM波形来控制固态继电器的导通与关闭,从而控制锅炉的加热丝在一个固定周期中通电加热时间的长短来达到恒温控制的目的。

从组成结构上来看,以PLC为控制器的方案安装接线比较繁琐,而实际显示需要单独的显示屏,调节温度时不太方便,若要改变给定值,需要添加专门的输入模块或者需要重新下载控制程序。而51单片机控制系统,整个控制系统可以规划到一块PCB电路板上,从而安装起来更加方便,而且其功能比较齐全,显示模块简单,调节温度可通过键盘来设置,使用很方便。

从成本上来看。以PLC为控制器的方案比较昂贵,51单片机控制系统更加经济。考虑到用户的心里接受倾向,51单片机控制系统更有市场推广价值。

通过以上分析和比较从而得出:锅炉温度控制系统采用单片机作为控制器的系统比PLC控制系统成本更低,使用更加方便快捷。基于上述原因,最终确定采用方案

2.2 系统结构框图

锅炉温度控制系统的主控部分由单片机构成。通过按键电路进行温度报警值的设定,并对锅炉的水温进行采集及处理,然后与报警值重新启动进行加热处理。以此重复对锅炉温度控制。同时为结合实际需要,本系统亦比较,当温度值大于温度上限值(报警值)时就报警,停止加热。当温度少于温度下限值时,对锅炉水位进行控

4

安徽建筑大学 毕业设计(论文)

制。液晶显示,显示水位上限值,水位下限值以及温度报警值和实际温度值。图2.2所示是其系统结构框图。

在工业生产中,锅炉是一种重要的动力系统。其中锅炉的温度过程控制,又是一个重要环节。本系统过程控制系统主要应用于燃气锅炉的水温控制系统。在燃气锅炉里面,天然气液化石油气作为燃料,锅炉中的水作为加热对象。温度传感器的输出信号经调理电路处理后作为单片机系统的输入信号。本系统要采样的是锅炉的水温和锅炉的水位控制信号。

继电器

给 燃

按键温度 AT89S51 稳压 液晶 复 报

5

安徽建筑大学 毕业设计(论文)

图2.2 系统的原理框图

温度控制系统的控制信号通过继电器控制燃烧器内进出气,由三个进气阀实现控制。燃烧器的作用是:继电器接通燃烧器电源后,燃烧器通过其内部的光电检测管检测锅炉内有无火光,若有火光则表示点火成功,不需启动点火变压器,否则启动点火变压器进行点火,同时电磁阀打开进气,这时光电管检测到火焰,关闭点火变压器,系统点火成功。该中小型燃气锅炉所需要温度的热水是根据用户需要调节的。控制系统根据温度传感器检测到的温度与温度设定值比较,给出控制信号.若实际温度大于报警值时,单片机实行对继电器的电源关断,这时燃烧器断电,锅炉不进行加热处理。温度传感器一直检测锅炉内部的水温。当温度传感器检测的温度小于用户设定值的时候,单片机根据温度的比较信号,重新对继电器进行通电,锅炉重新加热。

2.2.1主要器件的选择

1.选用Atmel公司单片机AT89S51。 2.固态继电器SSR

3.选用Dallas半导体公司温度传感器DS18B20 4.液晶显示器LCD1602 5.蜂鸣器

6.三端稳压器7805 2.2.2 辅助器件选择 1.奥林燃烧器

型号:GP-300T

功率(kg):700-4000

6

安徽建筑大学 毕业设计(论文)

伺服马达型号:SQM 火焰探 测器型号:QRA-2 重量(kg):320

燃烧器控制:外置

2.CHL系列立式不锈钢多级泵 流 量:最大22m3/h 环境温度:最高+160℃ 液体温度:-50℃~120℃ 工作电压:220V/380V 工作压力:1.6MPa/2.5MPa 3.不锈钢管

3 硬件电路设计

3.1 主控单片机AT89S51芯片介绍

AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。AT89S51单片机引脚图如图3.1所示。

7

安徽建筑大学 毕业设计(论文)

引脚图

3.1.1 主要性能特点

(1) AT89S51主要功能如下:

1.为一般控制应用的8位单芯片。 2.内部程式存储器(ROM为4KB)。 2.内部数据存储器(RAM为128B)。

4.晶片内部具有时钟振荡器(传统最高工作频率可至12MHz)。 5.32条双向输入输出线,且每条均可以单独做 I/O的控制。 6.2组独立的16位定时器。 7.5个中断向量源。

8.单芯片提供位逻辑运算指令。

3.1.2 AT89S51管脚说明

VCC:供电电压。 GND:接地。

图3.1 AT89S51

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,

8

安徽建筑大学 毕业设计(论文)

它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口除了作为普通I/O口,还有第二功能:

P3.0 /RXD(串行输入口) P3.1 /TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 /T0(记时器0外部输入) P3.5 /T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总

9

安徽建筑大学 毕业设计(论文)

线。89C51的P0、P1、P2、P3口作为输入时都是准双向口。除了P1口外P0、P2、P3口都还有其他的功能。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位

字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。

3.2 单片机最小系统

单片机最小系统指的是由最基本的电路元件组成的,外接部分简单的电路就能独立成一定的工作任务的单片机系统。51单片机的最小系统由单片机芯片、电源、时钟电路、和复位电路组成,如图3.2所示。

10

安徽建筑大学 毕业设计(论文)

3.2.1时钟电路

AT89S51的时钟可由内部产生也可以由外部产生。在这个设计中只是用了内部产生。利用芯片内部振荡电路,在XTAL1,XTAL2(18,19脚)的引脚上外接定时元件,内部振荡器便能产生自激振荡,用示波器便可观察到XTAL2输出的正弦波,定时元件可以采用石英晶体和电容组成的并联谐振电路,它与单片机的接法的如图3-2所示。晶体可以在1.2MHz~12MHz之间所选,电容可以在20~60pF之间所选,通常选择33pF左右,电容C6,C7的大小对振荡频率有微小的影响,可起频率微调作用。在设计印制板时,晶体和电容应尽可能与单片机芯片靠近,以减少寄生电容,保证振荡器可靠工作,一般采用瓷片电容。 3.2.2 复位电路

单片机上电后,在其9脚(RESET)出现24个振荡周期以上的高电平后,单片机内部初始复位。为了确保单片机正常复位,必需使其第9脚上出现的高电平保持2μs以上。复位电路与单片机接法如图 3.2所示。

图3.2 最小单片机系统

11

安徽建筑大学 毕业设计(论文)

系统的复位电路是由RC电路组成,外加一个手动复位按钮。刚上电时或者

触动按钮后C5两端的电压为0,这时RST为高电平,而其高电平保持时间是由R和C的时间常数决定,由公式(3-1)可知,C充电的时间常数τ等于0.082ms,远远大于2μs,即使RST高电平的时间保持2μs以上,确保了单片机正常复位。

τ=R*C

(3-1)

3.3 温度控制电路设计

本系统采用继电器进行对燃烧器工作方式控制,从而锅炉控制温度。当P口输出高电平时,经反相驱动器7406变为低电平,使发光二极管发光,从而使光敏三极管导通,进而使Q3导通,因而继电器的线圈通电,接通锅炉燃烧器。本部分电路与单片机的接口如图3.3所示。

1.当P1.7输出低电平时,燃烧器断电,不进行加热处理。 2.当P1.7输出高电平时,燃烧器通电,进行加热处理。

3.4按键电路设计

图3.3 温度控制电路

为符合本系统的实际要求,进入系统之前首先对温度报警值的设置。本系统有三个按键分别为K1,K2,K3. 如图3.4所示。

12

安徽建筑大学 毕业设计(论文)

(1) K1设置锅炉温度报警值的温度值增加按键。K1每按下一次,温度报警值显示比上一次值增加一度。

(2) K2设置锅炉温度报警值的温度值减少按键。K2每按下一次,温度报警值显示比上一次值减少一度。

(3) K3温度报警值确定值。

图3.4按键电路设计

3.5 水位检测电路设计

锅炉在正常加温工作情况下,同时对锅炉液位检测。当锅炉的水位满足条件时开

始工作。

本系统设计利用普通水的导电性质,采用不绣钢管作为测量液位的器件,放于锅炉上下限的金属棒是否正在导电的情况判断锅炉的水位是不是在上下限范围之间,单片机通过采集的水位变化的信号,发出对给水泵控制的命令,控制锅炉内水位符合条件。

如图3.5水位检测电路所示,金属棒1放于水位上限位置,金属棒2放于水位下限位置,金属棒3放于水位以下比较远点的位置。其中金属棒1和金属棒2用限流电阻分别与单片机相连接,金属棒3接+5v的电源。单片机不断的检测单片机端口p1.2和p1.3的电平情况。

13

安徽建筑大学 毕业设计(论文)

图3.5水位检测电路

(1)当P1.2=高电平和P1.3=高电平时,即实际水位在水位上限以上的位置,这时系统发出报警命令,系统停止工作。

(2)当P1.2=低电平和P1.3=低电平时,即实际水位在下限以下的位置,这时系统控制给水泵工作,锅炉开始加水,并报警。

(3)当P1.2=高电平和P1.3=低电平时,即实际水位在水位上限和水位下限之间的位置,单片机不进行处理,即保持给水泵的状态不变。

3.6 稳压电源电路设计

集成稳压电源又称三端集成稳压器,它是指将功率调整管、取样电阻、基准电压、误差放大、启动及保护电路等全部集成在一块芯片上,具有特定输出电压的稳压集成电路。三端是指电压输入端、电压输出端和公共接地端。三端IC稳压器按性能与用途可分为固定输出正稳压器、固定输出负稳压器、可调输出正稳压器、可调输出负稳压器4类。

这类稳压器的输出为固定电压。国内外厂家均将此系列稳压器命名为78××系列,如7805、7812等。其中“78”后面的数字代表该稳压器输出的正电压数值,以

14

安徽建筑大学 毕业设计(论文)

伏特为单位。例如7805即表示稳压输出为5V,7812表示稳压输出为12V等。有时会发现型号78××前面和后面还有一个或几个英文字母,如W78××、AN78××、L78××CV等。前面的字母称“前缀”,一般是各生产厂(公司)的代号;后面的字母称“后缀”用以表示输出电压容差和封装外壳的类型。

78××系列稳压器按输出电压共分为9种。分别为7805、7806、7809、7810、7812、7815、7818、7824。按其最大输出电流又可分为78L××、78M××和78××3个分系列。78L××系列最大输出电流为100mA,78M××系列最大输出电流为500mA ,78××系列最大输出电流为1.5A。由于单片机工作电压为+5V,在此选用7805。

图3.6 三端集成稳压器

图3.6所示为三端集成稳压器7805,78系列三端稳压器是最长见的集成稳压器件。具有过热,过流,调整管安全工作区保护功能。性能优良,可靠性高。同时又由于器件只有三个引脚,所以使用简单方便,价格低廉,应用广泛。

15

安徽建筑大学 毕业设计(论文)

图3.7 稳压电源电路

稳压电源电路如图 3.7所示,从J1输入9~12V的直流电,打上开关,经C1和C2滤波后,加到7805稳压块的输入端,再从其输出端输出稳定的+5V的电压。因为在本设计中,电路中均采用低功耗的器件,所以稳压块并不需要加散热片。此外,由电阻R2和发光二极管D4组成电源指示电路具有上电指示作用。 3.7温度传感器选择及温度采集电路 3.7.1 DS18B20简介

Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

脚排列图

图3.8 DS18B20引

DS18B20可以程序设定9-12位的分辨率,精度为0.5摄氏度。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。如图3.8所示DS18B20引脚排列图

(A)DS18B20特性:

1.简单的多点分布应用。

16

安徽建筑大学 毕业设计(论文)

2.独特的单线接口仅需一个端口引脚进行通讯。 3.无需外部器件。 4.无需外部应用。 5.零待机功耗。 6.可通过数据线供电。

7.测温范围-55~+125℃,以0.5℃递增。 8.温度数字量转换时间200ms(典型值)。 9.温度以8位数字量读出。

10.报警搜索命令识别并标志超过程序限定温度的器件。 11.用户可定义的非易失性温度报警设置。

12.应用包括温度控制,工业系统,消费品,温度计或任何热感测系统 (B)DS18B20管脚功能:

1.GND 接地

2. DQ 数据输入/输出脚 3. VDD 接V5电源 3.7.2温度采集电路

温度采集电路只有一个DS18B20温度传感器,它与单片机的接口比较简单,如图3.9所示。只要给传感器5V的供电并把它的单总线接到单片机的P口就可以了。

图3.9温度采集电路

17

安徽建筑大学 毕业设计(论文)

3.8输出模块

本控制系统的输出单元主要有三个:(1) 继电器输出控制加热执行机构和水位控制机构的开与关。(2)当水温、水位高于上限和低于下限时,系统进行报警。(3)液晶显示水位的上下限值、当前水位、预先设定的温度报警值和当前采集的温度值。 3.8.1 固态继电器SSR

由于本系统加热执行机构的开与关状态交替比较频繁,一般的机械式继电器在这种工作模式下使用寿命大大降低,所以难以满足这一要求,在此应该选用固态继电器SSR,如图3.10所示为固态继电器SSR,它是由微电子电路,分立电子器件,电力电子功率器件组成的无触点开关。用隔离器件实现了控制端与负载端的隔离。固态继电器的输入端用微小的控制信号,达到直接驱动大电流负载。

图3.10 固态继电器SSR

其作用有:

固态继电器是具有隔离功能的无触点电子开关,在开关过程中无机械接触部件,因此固态继电器除具有与电磁继电器一样的功能外,还具有逻辑电路兼容,耐振耐机械冲击,安装位置无限制,具有良好的防潮防霉防腐蚀性能,在防爆和防止臭氧污染方面的性能也极佳,输入功率小,灵敏度高,控制功率小,电磁兼容性好,噪声低和工作频率高等特点。目前已广泛应用于计算机外围接口设备,调温、调速、调光、电机控制、电炉加温控制、电力石化、医疗器械、金融设备、煤炭、仪器仪

18

安徽建筑大学 毕业设计(论文)

表、交通信号等领域。 其优点是:

(1)高寿命,高可靠:固态继电器没有机械零部件,有固体器件完成触点功能,由于没有运动的零部件,因此能在高冲击,振动的环境下工作,由于组成固态继电器的元器件的固有特性,决定了固态继电器的寿命长,可靠性高。

(2)灵敏度高,控制功率小,电磁兼容性好:固态继电器的输入电压范围较宽,驱动功率低,可与大多数逻辑集成电路兼容不需加缓冲器或驱动器。

(3)快速转换:固态继电器因为采用固体器件,所以切换速度可从几毫秒至几微妙。 (4)电磁干扰小:固态继电器没有输入“线圈”,没有触点燃弧和回跳,因而减少了电磁干扰。大多数交流输出固态继电器是一个零电压开关,在零电压处导通,零电流处关断,减少了电流波形的突然中断,从而减少了开关瞬态效应。

固态继电器注意事项:

(1)在PCB上使用固态继电器时,焊接时应在温度小于250℃。

(2)被控负载在接通瞬间会产生很大的浪涌电流,所以用户在选用继电器时应对被控负载的浪涌特性进行分析,然后再选择继电器。

(3)在继电器使用时,因过流和负载短路会造成SSR固态继电器内部输出可控硅永久损坏 ,应该考虑过流、过压保护措施。 3.8.2报警电路设计

本系统采用蜂鸣器进行报警,并用两个LED指示灯表示工作状态,红灯亮绿灯灭表示报警;红灯灭绿灯亮表示正常工作。该部分电路与单片机的接口如图3.11所示。

19

安徽建筑大学 毕业设计(论文)

图3.11 报警电路

电路由限流电阻R1、三极管Q1、两个二极管和蜂鸣器组成。这个电路并不是一般的放大电路,三极管不是工作在放大状态,而是工作在饱和状态和截止状态。当基极为低电平时,晶体管处于饱和状态,饱和电压为UCES=0. 3V,此时,蜂鸣器鸣叫。当基极为高电平时,晶体管截止,相当于开路,输出为高电平,蜂鸣器停止鸣叫。 3.8.3 液晶显示电路设计

图3.12为LCD1602引脚分配图。其引脚说明见表3.1。

3.12 LCD1602引脚图

20

安徽建筑大学 毕业设计(论文)

表3.1 LCD1602引脚说明

引脚号 符号 引脚说明 VSS 地电源 1 VDD 接5V正电源 2 3 4 5 6 7~14 15 16

VL VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 RS RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存。 R/W E D7~D14R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。 读操作时,高电平有效;写操作时,下降沿有效; 8位双向数据线 BLA BLK背光源正极 背光源负极21

安徽建筑大学 毕业设计(论文)

LCD1602是具有4位/8位并口可选接口方式的液晶显示模块,它能同时显示两行字符,每行有16个字符。字符以5*7点阵形式显示。其字符中共有160种字符。人选指令有11条(清屏、返回、输入方式设置、显示开关控制、移位、功能设置、CGRAM地址设置、DDRAM地址设置、读忙信号及地址高数器、写数据、读数据),内部有80字节的RAM,8位数据接口,另外三根控制总线用于完成对写和读数据或指令时序控制。由该模块构成的液晶显示方案与LED点阵液晶显示模块相比,1602是字符型液晶,显示字母和数字比较方便,控制简单,成本较低,不论硬件电路结构或显示程序都要简洁得多。

本系统采用LCD1602作为显示模块,它可以方便的和单片机接口,其主要功

能是显示水位的上下限值、当前水位、预先设定的温度报警值和当前采集的温度值。其中VDD接5V电源用于显示LCD液晶显示芯片的工作,VL串接阻值1.8K欧姆为了调节LCD液晶显示芯片字符的亮度,当阻值越大时,LCD液晶显示越模糊。用滑动变阻器能更好的调节LCD液晶字符显示的亮度,合适于锅炉的水位于水温的观察。BL+接5V电源是调节显示显示LCD液晶显示芯片是显示背光的亮度。LCD液晶显示电路如图3.13所示。

示电路

图3.13 LCD液晶显

22

安徽建筑大学 毕业设计(论文)

4 系统软件的设计

4.1 系统主程序

锅炉温度控制系统的单片机程序设计主流程图如图4.1所示。

本系统进入执行时先对锅炉水位进行与设定的水位上下限进行判断,然后按条件不同处理结果。当锅炉水位满足条件的时候再对锅炉的水温采样监控,并进行相应的处理。

开始 中断 水位检测

N 水位大于 上限 N Y 水位小于 Y 下限 关闭给水泵 检测温度 Y

温度大于上限 23

安徽建筑大学 毕业设计(论文)

给水泵工作 报警 N Y 温度小于 报警 停止加热 下限

Y 报警 加热

图 4.1 软件主流程图

4.2 子模块软件设计

系统的子模块软件包括A/D转换模块、按键检测与处理模块、LCD液晶显示模块、加热执行模块和PID控制算法模块,具体结构如下图所示。

程序 温度采集,

PIDLCD晶显示

液与按处键理检测报越警限

行加机构热执

24

安徽建筑大学 毕业设计(论文)

图4-2 程序结构图

4.2.1 A/D转换环节子程序设计

开始 发送AD启动信号

转换是否完成 N

输入数据 结束

图4.3 A/D图

4.2.2 DS18B20温度采集子程序设计

Y 转换程序操作流程

25

安徽建筑大学 毕业设计(论文)

DS18B20有严格的协议来确保其数据的完整性。协议包括几种单线信号类型:

复位脉冲,存在脉冲,写0、写1、读0、读1。所有这些信号类型除存在脉冲外,其它的信号均由总线主机产生。开始与SD18B20进行任何通信。都要对其进行初始化,在接收到复位脉冲后,再对SD18B20进行正确的ROM命令和存贮器操作命令。在总线主机初始化过程,主机通过拉高单总线,以产生复位脉冲。接着,在主机释放总线,并进入接收模式。当总线被释放后,上拉电阻将总线拉高。在单总线器件检测到上升沿后,接着产生延时,接着通过拉低总线,以产生存在脉冲。DS18B20温度采集子程序流程图如图4.4所示。

开始

检测DS18B20是否存在 Y N 跳过 匹配 EOM

跳过ROM匹配 发出温度转化命令

保存采集的温度 发出温度读取命

结束

图4.4 DS18B20温度采集子程序流程

26

安徽建筑大学 毕业设计(论文)

4.2.3 LCD液晶显示子程序设计

本系统采用是16*2的LCD1602,单片机对其初始化,然后将需要显示的字符在LCD存储的地址和要求在LCD显示的地址送出,再检测LCD是否处在忙碌不能接收命令或数据的状态,检测到LCD空闲时就可以写数据显示了。LCD液晶显示子流程图如图4.5所示,具体实现过程请查阅附录LCD液晶显示子程序。

子流程图

4.2.4 按键子程序设计

开始 LCD液晶显示模块初始化 将需要的显示信息和LCD的地址送出 Y 检测LCD是否忙碌 N 写数据显示 结束 图4.5 LCD液晶显示

27

安徽建筑大学 毕业设计(论文)

中断服务程序

K1是否按下 N

N

加 1并显示

K2是否按下 Y 减1并显示 K3 是否按下 返回

Y

图4.6 按键检测与处理流程

28

安徽建筑大学 毕业设计(论文)

总 结

本文课题可以采用二种设计方案,一种是用单片机设计的温度控制系统,第二种是用工业控制计算机来实现对锅炉进行恒温控制。在通过对二种方案进行对比之后,我选择用单片机设计的温度系统。因为用单片机来实现锅炉的温度控制有以下几点优点:(1)控制电路简单易懂;(2)智能化设计,能够对温度进行较准确地控制;(3)附加其它功能简单、方便;(4)经济。

本设计通过单片机的控制,实现了锅炉温度控制的基本功能,利用继电器控制燃烧器的工作,并且对锅炉水位进行控制,并通过显示屏显示出水温水位的状态信息,确保了能够在正常范围下工作。系统中以AT89S51芯片作为控制芯片,采用一线总线的温度传感器DS18B20,用LCD1602液晶显示模块显示水温水位的状态信息,这些都得使硬件电路变得简单,性能得到提高。而且有蜂鸣器进行报警,使得本设计在应用上更加安全。

本文设计的锅炉温度控制系统可以实现如下功能:

29

安徽建筑大学 毕业设计(论文)

(1)利用功能按键分别实现对温度的设定,包括设定满足工艺要求的特定温度值、锅炉正常工作所能承受的最高和最低温度值等;

(2)利用LCD1602液晶显示当前锅炉内温度、水位上下限和所设定的上下限温度;

(3)当锅炉内实际温度达到所设定的下限值时,系统会进行报警,并启动固态继电器,对锅炉内进行加热。当锅炉内实际温度达到所设定的上限值时,系统也会进行报警。

(4)系统采用PID控制算法,能非常准确地对锅炉内的温度进行实时控制,而且控制的精度很高;

由于水平有限,而且时间比较紧迫,所以在设计锅炉温度控制系统时难免会有很多漏洞和不足之处,同时也有部分功能模块不够完善。

参考文献

[1] 胡汉才编著 单片机原理及系统设计[M] 北京:清华大学出版社,2001

[2] 锅炉的单片机控制系统[D] 张向丰 山东大学硕士论文,2006

[3]陈杰,黄鸿.传感器与检测技术[M].北京:高等教育出版社.

[4] 高才苹.新型供热锅炉手册[M].上海:上海交通大学出版社,2002.

30

安徽建筑大学 毕业设计(论文)

[5] 何立民.单片机应用技术选编[M].北京:北京航空航大大学出版社,2000.

[6] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,1996.

[7]蔡美琴等,MCS-51系列单片机系统及其应用,机械工业出版社,1994

[8] 王琦 新型PID恒温控制器的研制[D] 哈尔滨工业大学 硕士论文,2006

[9] 刘震 远程温度测控系统研究[D] 国防科技大学硕士论文,2002

[10] 曾屹.单片机原理与应用 中南大学出版社,2010

[11 彭为.单片机典型系统设计实例精讲[M].北

京:电子工业出版社,2001

[12] 何立民.单片机应用系统设计[M].北京:航空航天大学出版社,1996

[13] 康华光.电子技术基础(数字部分),2006 [14]Ljung L, System Identification User's Guide, MadiWorks,Inc[M]. 1997

[15] Motorola, Microcontroller Setectro Guide. Quarter[M].2001,4:146-157.

31

安徽建筑大学 毕业设计(论文)

致 谢

此次毕业设计论文的题目是锅炉温度控制系统的设计,在纪明伟老师的耐心指导下和自己通过在网上和图书馆的认真查阅资料和撰写开题报告不断探索的过程,我顺利地完成了此毕业设计,更重要的是经过这一个学习探索的过程,我对单片机和其自动控制系统有了更进一步的了解和掌握。

回顾四年的学习,我对本专业知识有了一定的了解和认识,在这里我要感谢曾经教育过我、传授知识给我的各位辛勤奉献的老师,因为是他们的泪水和付出才有我知识的积累。而特别要感谢的是我的指导老师纪明伟老师,正是在他的耐心指导和鼓励下,我才得以完成此次设计,在整个过程中,当我遇到了任何困难时,都是在纪老师的指导下加之自己的努力下,终于得到了较好的解决。不仅如此,纪老师耐心的工作态度和真诚的待人风格给我留下了非常深刻的印象,对我以后的工件和生活将影响深远。与此同时要感谢我的父母,是他们的不懈辛劳才换回一个让我安心学习、快乐生活的的美好环境。还有我要感谢在此次设计过程中给我建议和指导的同学,正是我们各抒己见的讨论,使我的论文进度有了提高。

时光荏苒,岁月如梭。大学四年的本科学习,成本与效益是如此的不成比例,令人汗颜。求学之艰,现在终于能告一段落,心生诸多感触,冷暖甜苦自知,但也颇感欣慰。

32

安徽建筑大学 毕业设计(论文)

附录一

总程序:

TEMP_ZH DATA 24H ;实时温度值存放单元

TEMPL DATA 25H ;温度存放低八位 TEMPH DATA 26H ;温度存放高八位

TEMPHC DATA 29H ;存放百位数和十位数BCD TEMPLC DATA 2AH ;存放个位数和小数BCD

BOILER_SW EQU P1.2 ;给水泵开关

WATER_SW_H EQU P1.7 ;燃烧器开关

K1 EQU P24 ;报警温度值温度增加

K2 EQU P2.5 ;报警温度值减少

K3 EQU P2.6 ;设定报警温度确定键

GREEN EQU P1.0 ;绿灯为正常工作指示灯

33

安徽建筑大学 毕业设计(论文)

RED EQU P1.1 ;红灯为报警指示灯

TEMP_AL EQU 21H

;温度报警值存放单元

TEMP_AL1 EQU 31H ;存放报警温度值的个位 TEMP_AL2 EQU 32H ;存放报警温度值的十位 WATER_AL1 EQU 33H ;当前水位的个位数存放单元 WATER_AL2 EQU 34H

;当前水位的十位数存放单元

WATER_LEVEL EQU 22H ;当前水位存放单元 WATER EQU 28H ;当前水位存放单元

SPK EQU P3.7 ;蜂鸣器引脚定义

LCD_X EQU 2FH ;LCD 地址变量 LCD_RS EQU P2.0

;数据/指令寄存器选择输入端

LCD_RW EQU P2.1 ;读写控制输入端 LCD_EN EQU P2.2 ;使能信号输入端 FLAG1 EQU 2FH.7 ;DS18B20是否存在标记

FLAG EQU 2FH.6 ;报警标记

DATE_LINE1 EQU P3.3 ;通道1DS18B20数据口 ===================================================== ORG 0000H JMP MAIN ;跳到主程序入口

MAIN: MOV SP,#60H ;设置堆栈

MOV A,#00H

MOV R0,#20H ;将 20H-2FH 单元清零 MOV R1,#10H CLEAR: MOV @R0,A INC R0

DJNZ R1,CLEAR

MOV WATER,#50

34

安徽建筑大学 毕业设计(论文)

MOV TEMP_AL,#23 CALL SET_LCD

;对 LCD 做初始化设置及测试,并写自定义数据

入CGRAM CALL TEMP_SET ;显示设定温度报警值的信息

MOV A,#0C9H

;设定温度摄示度标记的显示位置

CALL TEMP_BJ ;显示温度摄示度的标记

LCALL DIS_TEMP ;显示初始化的报警温度

MAIN1: MOV 20H,#0

LCALL KEY

;调用按键扫描程序

JNB 20H.0,DEC_TEMP

ADD_TEMP: INC TEMP_AL ;报警湿度值加1

LCALL DIS_TEMP ;显示改变后的报警温度

AJMP MAIN1

DEC_TEMP: JNB 20H.1,CONFIRM DEC TEMP_AL

;报警湿度值减1

LCALL DIS_TEMP ;显示改变后的报警温度

AJMP MAIN1

CONFIRM: JNB 20H.2,MAIN1 ;如果没按任何键就返回MAIN1继续扫描 ;SETB SPK ;

LCALL DIS_TEMP1

CALL MENU_OK1 ;LCD显示温度采集和水位控制信息 LCALL DIS_TEMP1 ;显示已设定的温度报警值 MOV A,#0CEH

;当前温度摄示度标记的显示位置

CALL TEMP_BJ ;显示当前温度摄示度的标记 ;SETB SPK

SETB RED

;CLR GREEN

LJMP START

==================================================

35

安徽建筑大学 毕业设计(论文)

DIS_TEMP: MOV A,TEMP_AL ;显示改变后的报警温度 MOV B,#10 DIV AB

MOV TEMP_AL2,A ;保存温度报警值的十位数

MOV LCD_X,#7 ;设置位置

CALL SHOW_DIG2 ;显示报警温度值的十位 INC LCD_X MOV A,TEMP_AL MOV B,#10

DIV AB

MOV A,B ;个位

MOV TEMP_AL1,A ;保存温度报警值的个位数

CALL SHOW_DIG2 ;显示报警温度值的个位

RET

================================================== DIS_WATER: MOV A,WATER ;显示当前水位的值

MOV B,#10 DIV AB

MOV WATER_AL2,A

;保存温度报警值的十位数

MOV LCD_X,#7 ;设置位置

CALL SHOW_DIG1 ;显示报警温度值的十位 INC LCD_X MOV A,WATER MOV B,#10

DIV AB

MOV A,B ;个位

MOV WATER_AL1,A

;保存温度报警值的个位数

CALL SHOW_DIG1 ;显示报警温度值的个位

RET

36

安徽建筑大学 毕业设计(论文)

================================================== DIS_TEMP1: MOV A,TEMP_AL ;显示已设定的温度报警值

MOV B,#10 DIV AB

MOV TEMP_AL2,A ;保存温度报警值的十位数 MOV LCD_X,#3 ;设置位置

CALL SHOW_DIG2 ;显示报警温度值的十位 INC LCD_X

MOV A,TEMP_AL MOV B,#10 DIV AB

MOV A,B ;个位

MOV TEMP_AL1,A ;保存温度报警值的个位数

CALL SHOW_DIG2 ;显示报警温度值的个位

RET

==================================================

START: CALL RE_18B20_1 ;检测通道1的DS18B20是否存在,并设置12位精确度

CALL RESET1 ;18B20复位子程序,检测18B20是否存在 JNB FLAG1,START11 ;如果DS1820不存在则跳START11 CALL MENU_OK1 ;如果存在则显示OK MOV A,#0CEH

CALL TEMP_BJ ;显示温度摄示度的标记 JMP START21

START11: CALL MENU_ERROR1 ;如果不存在则显示ERROR MOV A,#0CBH

CALL TEMP_BJ ;显示温度摄示度的标记 JMP START

37

安徽建筑大学 毕业设计(论文)

START21: ;检查到有温度传感器后的处理 CALL RESET1

;18B20复位子程序,再次检测18B20是否存在

JNB FLAG1,START11 ;DS1820不存在则转到START11报错 MOV A,#0CCH ; 跳过ROM匹配 CALL WRITE1

MOV A,#44H ; 发出温度转换命令 CALL WRITE1 CALL RESET1

MOV A,#0CCH ; 跳过ROM匹配 CALL WRITE1

MOV A,#0BEH ; 发出读温度命令 CALL WRITE1 CALL READ1

M1: CAll CONVTEMP TEMPHC、TEMPLC CAll DISPBCD

;显示区BCD码温度值刷新子程序,即把BCD转为十六进制 6FH-73H,;其中70H存放小数点,6FH存放十分位数,71H存放个位数,72H存放十位数,73H存入百位数

MOV A,72H ;跳过85.0摄氏度

;读出温度值到TEMPH、TEMPL

LJMP M1 ;跳到温度处理、显示程序

;处理温度BCD码子程序,并将处理结果存放到

CJNE A,#8,DISPLAY MOV A,71H CJNE A,#5,DISPLAY MOV A,6FH CJNE A,#0,DISPLAY LJMP START

38

安徽建筑大学 毕业设计(论文)

DISPLAY: CALL DELAY2

CALL CONV

;将采集到的温度在LCD1602显示出来

;LCALL DIS_TEMP1 ;显示已设定的温度报警值

MOV A,#0C5H

CALL TEMP_BJ ;显示报警温度摄示度的标记 LCALL DIS_WATER ;显示当前水位的值 MOV 20H,#0 LCALL KEY

;调用按键扫描程序

JNB 20H.0,DEC_WATER

ADD_WATER:INC WATER

LCALL DIS_WATER ;显示当前水位的值

AJMP COMPARE1

;当前水位与水位上限值80比较

DEC_WATER:JNB 20H.1,COMPARE1 ;当前水位与水位上限值80比较 DEC WATER

;水位减1

LCALL DIS_WATER ;显示当前水位的值

COMPARE1: CLR C

;当前水位与水位上限值80比较 MOV A,WATER_AL2

;取得当前水位的十位数

CJNE A,#8,NEXT11 ;十位数比较

AJMP LOOP1

;如果十位数相等,则转去比较个位数

NEXT11: JC COMPARE2

;如果十位数小于8,转去比较下限值

CLR SPK

;如果十位数大于8就报警

SETB WATER-SW-H ;关闭给水泵

CLR RED SETB GREEN

AJMP COMPARE3

;转去当前温度与设定的报警温度比较

39

安徽建筑大学 毕业设计(论文)

LOOP1: CLR C

SETB flag

;报警标记置位

;如果个位数大于0就报警

MOV A,WATER_AL1 ;取得当前水位的个位数 JZ COMPARE3

;如果个位数等于0去比较温度

CLR SPK SETB GREEN

CLR RED

SETB WATER-SW-H ;当前水位高于上限值关闭给水泵开关

AJMP COMPARE3 COMPARE2: CLR C

;当前水位与下限比较

MOV A,WATER_AL2 ;取得当前水位的十位数

CJNE A,#2,NEXT12 ;个数比较 AJMP COMPARE3

;如果十位数等于2,则表明水位大于或等于20就转去

比较温度

NEXT12: JNC COMPARE3 ;十位数大于2就转去当前温度与设定的报警温度比较

SETB FLAG

;报警标记置位

;如果十位数小于2就报警

CLR SPK

CLR WATER_SW_H ;如果当前水位低于下限值就打开给水泵开关

CLR BOILER_SW ;当前温度超过温度报警值关闭锅炉燃烧器开关,停止加

CLR RED

SETB GREEN AJMP COMPARE3

;转去当前温度与设定的报警温度比较 ;当前温度与设定的报警温度比较

COMPARE3: CLR C

MOV A,72H

CJNE A,TEMP_AL2,NEXT1 ;实际温度值与报警温度值的十位数比较 AJMP NEXT

;十位数相等时就转去比较个位数

40

安徽建筑大学 毕业设计(论文)

NEXT1:

JC START0

;实际温度值的十位数少时则转START0

;SETB flag CLR SPK

;报警标记置位

;实际温度值的十位数高于报警温度值的十位数就报警

SETB BOILER_SW ;当前温度超过温度报警值关闭锅炉燃烧器开关,

停止加热 SETB RED

CLR GREEN

CLR BOILER_SW ;打开锅炉燃烧器开关,继续加热 LJMP

START

;比较完毕,重新采集温度和水位

NEXT: CLR C

MOV A,71H

CJNE A,TEMP_AL1,NEXT2 ;实际温度值与报警温度值的个位数比较 AJMP NEXT0

;个位数相等时就转去比较十分位数

;实际温度值的个位数少时则转START0

NEXT2: JC START0

;SETB flag

;报警标记置位

CLR SPK ;十位数相等时,实际温度值的个位数高于报警温度值的个位数就报警

SETB BOILER_SW ;如果当前温度超过温度报警值时就关闭锅炉燃

烧器开关,停止加热

NEXT0: MOV A,6FH JZ START0 警

CLR RED SETB GREEN LJMP START

;比较完毕,重新采集温度和水位

;实际温度值的十分位数等于0时则转START0

;SETB flag CLR SPK

;报警标记置位

;十位数和个位数相等时,实际温度值的十分位数大于0就报

41

安徽建筑大学 毕业设计(论文)

SETB BOILER_SW ;如果当前温度超过温度报警值时就关闭锅炉燃烧器开关,停止加热

CLR RED SETB GREEN LJMP

START

;比较完毕,重新采集温度和水位

START0:

JB flag,LOOP4 集温度和水位

SETB SPK 续采集温度和水位

SETB RED CLR GREEN

;如果水位和温度都没有出现报警时就使绿灯亮,然后继

;如果水位出现报警但温度没有出现报警时就继续采

LOOP4: LJMP START

附录二

An Overview of AT89S51

1. About SCM

It can be said across the twentieth century, the three \"electric\" era, that is, electrical era, the electronic age, and has now entered the computer age. However, such a computer, usually refers to the personal computer, referred to as PC. It consists of the host, keyboard, monitor etc.. Another type of computer, most people do not know how. This computer is to smart to give a variety of mechanical microcontroller (also known as micro-controller). As the name suggests, this computer system only used the smallest one IC, you can perform simple operations and control. Because of its small size, usually hidden in a charged mechanical \"stomach\" Lane. It is the entire device, like the human brain plays a role, it goes wrong, the whole device was paralyzed.

42

安徽建筑大学 毕业设计(论文)

Now, this MCU has a very wide field of use, such as smart meters, real-time industrial control, communications equipment, navigation systems, home appliances and so on. Once the microcontroller were using a variety of products, you can serve to upgrade the effectiveness of the product, often in the product name is preceded by the adjective - \"smartechnical personnel of factories or other amateur electronics developers to engage in out of certain products, not the circuit is too complex, that is, functions are too simple and easy to be copied. The reason may be stuck in the product without the use of a microcontroller or other programmable logic device.

SCM basic component is a central processing unit (CPU in the computing device and controller), read-only memory (usually expressed as a ROM), read-write memory (also known as Random Access Memory MRAM is usually expressed as a RAM) , input / output port (also divided into parallel port and serial port, expressed as I / O port), and so composed. In fact there is also a clock circuit microcontroller, so that during operation and control of the microcontroller, can rhythmic manner. In addition, there are so-called \"break system\microcontroller control object parameters that need to be intervention to reach a particular state, can after this \"janitor\" communicated to the CPU, so that CPU priorities of the external events to take appropriate counter-measures.

2. An Overview of AT89S51

The AT89S51 is a low-power, high-performance CMOS 8-bit microcontroller with 4K bytes of In-System Programmable Flash memory. The device is manufactured using Atmel's high-density nonvolatile memory technology and is compatible with the industry-standard 80C51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with In-System Programmable Flash on a monolithic chip, the Atmel AT89S51 is a

43

安徽建筑大学 毕业设计(论文)

powerful microcontroller which provides a highly-flexible and cost-effective solution to many embedded control applications. Features:

Compatible with MCS.-51 Products

4K Bytes of In-System Programmable (ISP) Flash Memory Endurance: 1000 Write/Erase Cycles 4.0V to 5.5V Operating Range Fully Static Operation: 0 Hz to 33 MHz Three-level Program Memory Lock 128 x 8-bit Internal RAM 32 Programmable I/O Lines Two 16-bit Timer/Counters Six Interrupt Sources

Full Duplex UART Serial Channel Low-power Idle and Power-down Modes Interrupt Recovery from Power-down Mode Watchdog Timer Dual Data Pointer Power-off Flag

Fast Programming Time

Flexible ISP Programming (Byte and Page Mode) Green (Pb/Halide-free) Packaging Option

The AT89S51 provides the following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, Watchdog timer, two data pointers, two 16-bit timer/counters, a five-vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator, and clock circuitry. In addition, the AT89S51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The

44

安徽建筑大学 毕业设计(论文)

Power-down mode saves the RAM contents but freezes the oscillator, disabling all other chip functions until the next external interrupt or hardware reset.

VCC:Supply voltage (all packages except 42-PDIP).

GND:Ground (all packages except 42-PDIP; for 42-PDIP GND connects only the logic core and the embedded program memory).

VDD:Supply voltage for the 42-PDIP which connects only the logic core and the embedded program memory.

PWRVDD:Supply voltage for the 42-PDIP which connects only the I/O Pad Drivers. The application board MUST connect both VDD and PWRVDD to the board supply voltage.

PWRGND:Ground for the 42-PDIP which connects only the I/O Pad Drivers. PWRGND and GND are weakly connected through the common silicon substrate, but not through any metal link. The application board MUST connect both GND and PWRGND to the board ground.

Port 0:Port 0 is an 8-bit open drain bi-directional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high-impedance inputs.

Port 0 can also be configured to be the multiplexed low-order address/data bus during accesses to external program and data memory. In this mode, PO has internal pull-ups.

Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification. External pull-ups are required during program verification.

Port 1:Port 1 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (lip) because of the internal pull-ups.

45

安徽建筑大学 毕业设计(论文)

Port 2:Port 2 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 2 output buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (lip) because of the internal pull-ups.

Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX@DPTR). In this application, Port 2 uses strong internal pull-ups when emitting 1s. During accesses to external data memory that use 8-bit addresses (MOVX@RI), Port 2 emits the contents of the P2 Special Function Register.

Port 2 also receives the high-order address bits and some control signals during Flash programming and verification.

Port 3:Port 3 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 3 output buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (lip) because of the pull-ups.

Port 3 receives some control signals for Flash programming and verification. Port 3 also serves the functions of various special features of the AT89S51,as shown in the following table.

P3 port can also be used as a number of special features AT89C51 mouth, the following table:

Pin P3.0 P3.1 P3.2 P3.3 P3.4

Alternative function RXD(Serial input) TXD(Serial output) INT0(External interrupt 0) INT1(External interrupt 1) T0(Timer 0External input)

46

安徽建筑大学 毕业设计(论文)

P3.5 P3.6

T1(Timer 1External input) WR(External data memory write

strobe)

P3.7

RD(External data memory read

strobe)

RST:Reset input. A high on this pin for two machine cycles while the oscillator is running resets the device. This pin drives High for 98 oscillator periods after the Watchdog times out. The DISRTO bit in SFR AUXR (address 8EH) can be used to disable this feature. In the default state of bit DISRTO, the RESET HIGH out feature is enabled.

ALE/PROG:

Address Latch Enable (ALE) is an output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming. In normal operation, ALE is emitted at a constant rate of 1/6 the oscillator frequency and may beused for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external data memory.

If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode.

PSEN:

Program Store Enable (PSEN) is the read strobe to external program memory. When the AT89S51 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory.

EA/VPP:

47

安徽建筑大学 毕业设计(论文)

External Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at OOOOH up to FFFFH. Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset.EA should be strapped to Vcc for internal program executions. This pin also receives the 12-volt programming enable voltage (VPP) during Flash programming.

XTAL1:

Input to the inverting oscillator amplifier and input to the internal clock operating circuit.

XTAL2:

Output from the inverting oscillator amplifier Special Function Registers:

Note that not all of the addresses are occupied, and unoccupied addresses may not be implemented on the chip. Read accesses to these addresses will in general return random data, and write accesses will have an indeterminate effect.

User software should not write 1 s to these unlisted locations, since they may be used in future products to invoke new features. In that case, the reset or inactive values of the new bits will always be 0.

Interrupt Registers:

The individual interrupt enable bits are in the IE register. Two priorities can be set for each of the five interrupt sources in the IP register.

Dual Data Pointer Registers:

To facilitate accessing both internal and external data memory, two banks of 16-bit Data Pointer Registers are provided: DPO at SFR address locations 82H-83H and DP1 at 84H-85H.Bit DPS=0 in SFR AUXR1 selects DPO and DPS=1 selects DP1. The user should ALWAYS initialize the DPS bit to the appropriate value before accessing the respective Data Pointer Register.

Power Off Flag:

48

安徽建筑大学 毕业设计(论文)

The Power Off Flag (POF) is located at bit 4 (PCON.4) in the PCON SFR. POF is set to \"1”during power up. It can be set and rest under software control and is not affected by reset.

Memory Organization:

MCS-51 devices have a separate address space for Program and Data Memory. Up to 64K bytes each of external Program and Data Memory can be addressed.

Program Memory:

If the EA pin is connected to GND, all program fetches are directed to external memory. On the AT89S51,if EA is connected to Vcc, program fetches to addresses OOOOH through FFFH are directed to internal memory and fetches to addresses 1000H through FFFFH are directed to external memory.

Data Memory:

The AT89S51 implements 128 bytes of on-chip RAM. The 128 bytes are accessible via direct and indirect addressing modes. Stack operations are examples of indirect addressing, so the 128 bytes of data RAM are available as stack space.

Watchdog Timer (One-time Enabled with Reset-out):

The WDT is intended as a recovery method in situations where the CPU may be subjected to software upsets. The WDT consists of a 14-bit counter and the Watchdog Timer Reset (WDTRST) SFR. The WDT is defaulted to disable from exiting reset. To enable the WDT, a user must write 01 EH and OE1 H in sequence to the WDTRST register (SFR location OA6H). When the WDT is enabled, it will increment every machine cycle while the oscillator is running. The WDT timeout period is dependent on the external clock frequency. There is no way to disable the WDT except through reset (either hardware reset or WDT overflow reset). When WDT overflows, it will drive an output RESET HIGH pulse at the RST pin.

The use of watchdog (WDT):

WDT to be open to write 01EH and 0E1H in sequence to WDTRST registers (SFR's address 0A6H), when the WDT opened, take some time to 01EH and 0E1H to WDTRST count register in order to avoid WDT overflow. WDT counter 14 count

49

安徽建筑大学 毕业设计(论文)

reached 16383 (3FFFH), WDT will overflow and reset the device. WDT is turned on, it will be with the crystal oscillator in each machine cycle count, which means that users must be less than 16,383 machines each cycle reset WDT, that is to write 01EH and 0E1H to WDTRST register, WDTRST write only register.WDT counter can not be read neither write, when the WDT overflows, it is usually RST pin will reset the output of high pulse. Reset pulse duration for the 98 × Tosc, and Tosc = 1/Fosc (crystal oscillation frequency).

AT89S51单片机概述

1.单片机的简介

可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。

现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。

单片机的基本组成是由中央处理器(即CPU中的运算器和控制器)、只读存贮器(通常表示为ROM)、读写存贮器(又称随机存贮器通常表示为RAM)、输入/输出口(又分为并行口和串行口,表示为I/O口)等等组成。实际上单片机里面还有一个时钟

50

安徽建筑大学 毕业设计(论文)

电路,使单片机在进行运算和控制时,都能有节奏地进行。另外,还有所谓的“中断系统”,这个系统有“传达室”的作用,当单片机控制对象的参数到达某个需要加以干预的状态时,就可经此“传达室”通报给CPU,使CPU根据外部事态的轻重缓急来采取适当的应付措施。

2.AT89S51单片机概述

AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场介,可灵活应用于各种控制领域。

主要性能参数:

·与MCS-51 产品指令系统完全兼容

·4k字节在线系统编程(ISP) Flash闪速存储器 ·1000次擦写周期

·4.0---5.5V的工作电压范围 ·全静态工作模式:0Hz---33MHz ·三级程序加密锁 ·128×8字节内部RAM ·32个可编程I/O口线 ·2个16位定时/计数器 ·6个中断源

·全双工串行UART通道 ·低功耗空闲和掉电模式 ·中断可从空闲模式唤醒系统 ·看门狗(WDT)及双数据指针 ·掉电标识和快速编程特性

·灵活的在线系统编程(ISP一字节或页写模式)

51

安徽建筑大学 毕业设计(论文)

功能特性概述:

AT89S51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM, 32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

引脚功能说明: ·Vcc: 电源电压 ·GND:地

·P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写‘1’可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

·P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写‘1’,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,囚为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(In)。

Flash编程和程序校验期间 P 1接收低8位地址。

·P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写‘1’,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,囚为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(In)。

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX @DPTR指令)时,P2口送出高 8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX

52

安徽建筑大学 毕业设计(论文)

@Ri指令)时,P2口线卜的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。

Flash编程或校验时,P2亦接收高位地址和其它控制信号。

·P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3 口将用上拉电阻输出电流(In)。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。 P3 口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。 P3口也可作为AT89C51的一些特殊功能口,如下表所示:

管脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

备选功能 RXD(串行输入口) TXD(串行输出口) INT0(外部中断0) INT1(外部中断1) T0(记时器0外部输入) T1(记时器1外部输入) WR(外部数据存储器写选通) RD(外部数据存储器读选通)

·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR 的DISRTO位(地址8EH)可打开或关闭该功能。DISRTO位缺省为RESET输出高电平打开状态。

·ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,囚此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

53

安徽建筑大学 毕业设计(论文)

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁正ALE操作。该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。

·PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。

·EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH), EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。 Flash存储器编程时,该引脚加上+12 V的编程电压Vpp。 ·XTAL 1:振荡器反相放大器及内部时钟发生器的输入端。 ·XTAL2:振荡器反相放大器的输出端。 ·特殊功能寄存器:

特殊功能寄存器的于片内的空间分布的这些地址并没有全部占用,没有占用的地址亦不可使用,读这些地址将得到一个随意的数值。而写这些地址单元将不能得到预期的结果。

·中断寄存器:

各中断允许控制位于IE寄存器,5个中断源的中断优先级控制位于IP寄存器。

·双时钟指针寄存器:

为更方便地访问内部和外部数据存储器,提供了两个16位数据指针寄存器:DP0位于SFR(特殊功能寄存器)区块中的地址82H, 83H和DP1位于地址84H, 85H,当SFR中的位DPS=0选择DP0,而DPS=1则选择DP1。用户应在访问相应的数据指针寄存器前初始化DPS位。

·电源空闲标志:

电源空闲标志(POF)在特殊功能寄存器SFR中PCON的第4位(PCON.4},电源打开时POF置‘1’,它可由软件设置睡眠状态并不为复位所影响。

·程序存储器:

如果EA引脚接地(GND),全部程序均执行外部存储器。

54

安徽建筑大学 毕业设计(论文)

在AT89S51,假如EA接至Vcc(电源+),程序首先执行地址从0000H-OFFFH (4KB)内部程序存储器,而执行地址为1000H-FFFFH (60KB)的外部程序存储器。 ·数据存储器:

AT89S51的具有128字节的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间。 ·看门狗定时器(WDT):

WDT是为了解决CPU程序运行时可能进入混乱或死循环而设置,它由一个14bit计数器和看门狗复位SFR (WDTRST)构成。外部复位时,WDT默认为关闭状态,要打开WDT,用户必须按顺序将01EH和0E1H写到WDTRST寄存器(SFR地址为OA6H},当启动了WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT溢出复位外没有其它方法关闭WDT,当WDT溢出,将使RSF引脚输出高电平的复位脉冲。

使用看门狗(WDT):

打开 WDT 需按次序写 01EH 和 0E1H 到 WDTRST 寄存器(SFR 的地址为 0A6H),当 WDT 打开后,需在一定的时候01EH 和 0E1H 到 WDTRST 寄存器以避免 WDT 计数溢出。14 位 WDT 计数器计数达到16383(3FFFH),WDT 将溢出并使器件复位。WDT 打开时,它会随晶体振荡器在每个机器周期计数,这意味着用户必须在小于每个16383机器周期内复位WDT,也即写 01EH 和 0E1H 到 WDTRST 寄存器,WDTRST 为只写寄存器。WDT 计数器既不可读也不可写,当 WDT溢出时,通常将使 RST 引脚输出高电平的复位脉冲。复位脉冲持续时间为 98×Tosc,而 Tosc=1/Fosc(晶体振荡频率)。

55

因篇幅问题不能全部显示,请点此查看更多更全内容