太阳能热水器控制器设计毕业论文

上传人:沈*** 文档编号:149268402 上传时间:2022-09-06 格式:DOC 页数:54 大小:544.52KB
收藏 版权申诉 举报 下载
太阳能热水器控制器设计毕业论文_第1页
第1页 / 共54页
太阳能热水器控制器设计毕业论文_第2页
第2页 / 共54页
太阳能热水器控制器设计毕业论文_第3页
第3页 / 共54页
资源描述:

《太阳能热水器控制器设计毕业论文》由会员分享,可在线阅读,更多相关《太阳能热水器控制器设计毕业论文(54页珍藏版)》请在装配图网上搜索。

1、摘要该设计以单片机 AT89C52 为核心,结合单线数字温度传感器 DS18B20 与液晶显示器1602,设计一种数字化的太阳能热水器控制系统。该系统由主控芯片模块、DS18B20 温度检测模块、LCD 显示模块、水位检测模块、键盘控制模块、报警模块和电磁阀控制模块组成。给出了各个模块结构及其工作原理、系统硬件原理图、程序流程图和部分源程序。此系统解除了热水器上水时需人工守候和过量溢水的问题,达到了省时、环保、节水的目的。该系统与传统的机械式控制系统相比较,具有结构简单,使用方便等特点。 关键词:单片机AT89C52; 温度传感器 DS18B20; 太阳能热水器 AbstractThis de

2、sign takes monolithic integrated circuit AT89C52 as the core, combining the single digital temperature sensor DS18B20 and LCD 1602, to design a kind of digital control system of solar energy water heater. The system consists of main chip module, DS18B20 temperature detection module, LCD display modu

3、le, the water level detection module, keyboard control module, alarm module and solenoid valve control module. given to the structure of each module and its working principle, system hardware, schematics, process flow charts, and some source code, and theoretical design of physical production. The s

4、ystem needs to lift the water heater in sheung Shui and excessive artificial overflow problem waiting to reach a time-saving, environmental protection, water conservation purposes. The system with the traditional mechanical control systems compared to simple structure, easy to use and so on. Keyword

5、s:Microcontroller AT89C52; Transducer DS18B20; Solar water heater 1绪论1.1 太阳能热水器的发展概况及市场竞争分析在全球能源形势紧张、气候变暖严重威胁经济发展和人们生活健康的今天,世界各国都在寻求新的能源替代战略,以求得可持续发展和在日后的发展中获取优势地位。太阳能以其清洁、源源不断、安全等显著优势,成为关注重点。在太阳能产业的发展中,太阳能热水器的热利用转换技术无疑是最为成熟的,其产业化进程也较光伏电池、太阳能发电等产业领先一步。太阳能热水器已成为我国第一个实现商业化的可再生能源产业。自1998年起,中国就成为太能能热水器第

6、一大制造和消费的市场,现已经发展成为一个重要的产业。目前,太阳能热水器与电、燃气热水器三分热水器市场,是可再生能源产业领域的第一个商业化的产品。2007年,我国太阳能热水器年产量达2340万平方米,比2006年同期增长30%;总保有量达10800万平方米,比2006年同期增长20%。市场销售额约为320亿元人民币。但是与之相配套的太阳能热水器控制系统却一直处在研究与开发阶段。市面上绝大多数的控制器结构简单,功能单一,智能化程度低下,用户界面不人性化,只具有液位显示功能,不具有温度显示功能。并且当水位加到一定的程度的时候也没有什么措施,只能通过手动的方法来控制水位的高度。因此根据以上要求为核心,

7、开发出一种太阳能热水器智能控制系统,解决了目前市面上太阳能热水器控制系统存在的问题。1.1.1太阳能热水器的应用及意义太阳能热水器应用较好的国家有西班牙、以色列、意大利、希腊、德国、荷兰、澳大利亚、日本、美国等国家。一些国家利用太阳能热水器除了提供家庭热水外,还用于采暖、空调及泳池加热等领域,其中美国的太阳能热利用主要用于泳池加热。目前太阳能热水器已在我国城乡开始推广使用,主要供应生活和洗浴热水,我国已成为世界上最大的太阳能热水器生产国和应用国。太阳能热水器节能减排,实现能源替代,效果显著。经过两年多的实践,人们认识到太阳能热利用是投资少、见效快、经济实用、节能减排,实现我国能源替代的一个好产

8、业,国家也正大力扶持和支持,学校、宾馆、饭店、洗浴中心纷纷建设太阳能洗浴系统,太阳能热水器的市场存在扩大空间。新农村建设与建筑节能也为太阳能热水器的应用推广带来机遇。1.1.2设计背景目前,中国已成为世界上最大的太阳能热水器生产国,年产量约为世界各国之和,已有一百多家太阳能热水器生产厂。但是与之配套的太阳能热水器控制器却一直处在研究与开发阶段,当由于天气原因而光强不足时,就会给热水器用户带来不便;即使热水器具有辅助加热功能,由于加热时间不能控制而产生过烧,从而浪费大量的电能。温度控制采用模糊控制,控制器可以根据天气情况利用辅助加热装置使蓄水箱内的水温在设定时间达到预先设定的温度,从而达到24小

9、时供应热水的目的。太阳能热水器是太阳能利用中最常见的一种装置,经济效益明显,正在迅速的推广应用,太阳能热水器能够将太阳辐射能转换热能,供生产和生活使用。他主要由平板集热器、蓄水器和连接管道等部件组成,可分循环式、直流式和闷晒式。太阳能热水器是环保、无污染,人们用着安全放心。利用太阳的能源,大量节约现有的能源,是以后能源发展的趋势。原有的燃气热水器和电热水器虽然加热速度比较快,但是所用的煤和气都会对环境造成一定的污染,而且会使室内的空气变得不清新,电热水器的功率较大,对长期使用的一般家庭来说必定会带来一定的经济困难,是一笔相当大的开销14。太阳能热水器安全、环保、经济,带有辅助加热功能的热水器可

10、在全年的任何时候使用,设计一个控制器来帮助人们了解水的温度和热水器中水位的高低,使人们清楚的使用。先前国内外大多数家庭使用的太阳能热水器只是纯粹的太阳能加热问题,还没有其他的智能控制方面,在没有太阳的天气中没有足够的能源使水箱中的水加到最热。其次对太阳能热水器中的水位没有记录,使人们不能及时知道水箱中的水量,以便补充,缺乏自动性。如今大多数的家庭太阳能都装有水位监测和水温测量、显示的功能,使用更加方便。今年来,利用太阳能和其它能源的结合,使得太阳能热水器更加的完善,在任何天气情况下都能使用到热水。此款热水器包括主、从两大系统:主系统的特点是在晴好的天气利用太阳光能为热水器加热;从系统相当于电热

11、水器,它在无光照的情况下利用电辅助加热。它充分利用太阳能的丰富的免费的资源的优势,同时考虑到在阴天及夜间无法利用太阳能的缺点,充分发挥太阳能热水器和电热水器的各自优势,这是世面上大部分热水器所不能比拟的。当今社会发展日新月异,人们衣食住行也在不断的提高。现有电热型热水器费用昂贵及燃气型的不安全性,且排放二氧化碳污染大气,北方用煤气取暖造成城市空气环境污染,这些都是太阳能热水器良好的外部生存环境。太阳能热水器克服了上述缺点,他是绿色环保产品。它使用简单、方便。太阳能热水器顺着时代发展的要求,满足人们对环保绿色产品的需求。在人类文明程度日益提高的今天,它是现代文明社会的最佳选择。应该注意到,集体单

12、位对太阳能热水器的用量很大。众所周知,太阳能是取之不尽,用之不竭,没有污染的巨大能源。随着世界上煤、石油、天然气的存储量日益减少,能源危机已日益增长,环境污染的危机已威胁着生态平衡,太阳能开发利用的课题已提到人类的面前。有人预测:二十一世纪太阳能将由辅助能源上升为主要能源。但由于太阳能的分散性、季节性和地区性又给太阳能利用带来重重困难,有些技术难点尚未突破,产品造价偏高,因而尚未被人们大规模使用。在太阳能热利用技术中,太阳能热水器是技术上比较成熟、造价比较低廉的产品,同时给人民提供低耗能源、保护环境、绝对安全的热水而受到人们的欢迎。世界各国的太阳能热水器生产发展也很快。例如:澳大利亚政府规定,

13、在北部地区新建房屋一定要设置太阳能热水器,已经有25的新住宅安装了太阳能热水器。日本现在每年安装太阳能热水器近50万台,计划今后普及率更高。有些国家法令规定所有新建筑物必须配备太阳能热水器。太阳能热水器的推广应用及经济效益据不完全统计,迄今全国太阳能热水器累计安装使用总量已达到300万平方米以上。所以该控制器具有使用方便、性价比高、工作可靠、精度高等特点,为太阳能热水器的进一步推广具有积极的推动作用。1.2系统设计要求和方案论证1.2.1系统设计要求此太阳能热水器控制器用数字方式显示水温、水位;当水位低于规定值报警并自动上水,上水到规定水位时自动停止上水(水位的上限可由用户自行设定。设定参数具

14、有断电保护,重新上电不需要用户再设定);水位界于高低水位之间时,用户可以通过触摸键手动上水、停水;当水压不足时,自动控制增压泵投入工作,避免因水压不足导致上水失败;禁止高温空晒后进水,可以防止真空管因突然注入冷水而爆裂.1.2.2设计方案比较方案一:采用半导体逻辑器件构成的控制器,主要应用定时器构成。在此控制方案里,定时器和加减计数器共同构成水位显示器。由于水温的变化具有未知性,在水温检测电路里,利用热敏电阻测量的水温信号是模拟量,需要经过模/数转换成半导体逻辑器件能够识别的数字信号。这类控制电路过于庞大复杂,操作也不方便,成本也较高。 方案二:采用可编程逻辑器件。结果简单的PLC控制成为首选

15、。由于控制电路简单,检测电路要求也不高,所以必然造成接口资源和内部资源的浪费,显然不够经济。 方案三:采用单片机为核心控制器的电路。单片机电路结构简单、成本低廉,可靠性高,便于实现各个控制功能。水位由设置在水箱内的四个逻辑探针获得的电信号检测,通过单片机处理送达显示电路显示当前水位。水温检测由单片机根据温度传感器(DS18B20)的操作指令和时序,读取温度,并送达显示电路显示当前水温。本设计用三个按键来控制上停水、水位上线设置和淋浴状态的切换。 从结构、经济、可操作性等方面来看,方案三都是最佳选择。方案三以单片机AT89C52核心控制器件,结合单线数字温度传感器DS18B20与液晶显示器160

16、2等芯片,设计一种太阳能热水器控制系统。该系统原理框图如图1所示:图1.2.1 系统原理图用户在使用热水器后,当水箱中水位下降到一定刻度值时,可通过人工使用按键的方法来控制电磁阀立即上水,水位的最高限也可以由按键进行自行设定。当水位下降到最低水位刻度值时,单片机接受此信号开始执行指令,报警器开始自动报警,同时进行自动上水。当水位达到最高限时便给单片机发出中断请求,此时电磁阀关闭,停止工作。若用户在热水不多的情况或阴天等时候进行淋浴时,则可以通过按键选择“淋浴”模式,在此模式下,当水位下降到25%时,单片机接受此信号,进行自动上水和自动加热功能,直到水位达到75%,停止自动上水,当水温达到50摄

17、氏度时,加热器也停止工作。当系统检测到上水指令执行后,在三分钟之内水位无明显变化时,自行启动电磁阀,进行上水操作,以免上水失败。在上水过程中,显示器既可以显示当前水位,又可以显示当期的水温,不仅只管方便,而且精确度高,实用性强,此系统解决了热水器上水需人守候和过量溢水的不足点,达到了省时、环保和节水的目的,以及独特的功能切换,从而使整个热水器更加的数字化人性化。统由主控芯片模块AT89C52,温度检测模块、水位检测模块、键盘模块、显示模块、自动上水等模块组成,下面对本次设计的控制器做一个详细的介绍。2太阳能热水器控制器系统硬件设计在设计太阳能热水器的控制系统之前,首先了解一下太阳能热水器的组成

18、与工作原理,了解一下太阳能热水器的基本构架和工作过程。 2.1 太阳能热水器的组成与工作原理图2.1 热水器装置简图1- 集热器 2-下降水管3-循环水管4-补给水箱5-上升水管6-自来水管7-热水出水管热水器主要由集热器、循环管道和水箱等组成,图中为典型的热水器装置图。图中集热器1按最佳倾角放置,下降水管2的一端与循环水箱3的下部相连,另一端与集热器1的下集管接通。上升水管5与循环水箱3上部相连,另一端与集热器1的上集管相接。补给水箱4供给循环水箱3所需的冷水。集热器吸收太阳辐射后,集热器内温度上升,水温也随之升高。水温升高后,水的比重减轻,便经上升水管进入循环水箱上部。而循环水箱下部的冷水

19、比重较大,就由水箱下流到集热器下方,在集热器内受热后又上升。这样不断对流循环,水温逐渐提高,直到集热器吸收的热量与散失的热量相平衡时,水温不再升高。这种热水利用循环加热的原理,因此又称循环热水器。集热器是一种利用温室效应,将太阳能辐射转换为热能的装置,该装置与一般热水交换器不一样,热交换器通常只是液体到液体,或是液体到气体的热交换过程,而平板集热器直接将太阳辐射传给液体或气体,是一个复杂的传热过程。平板型集热器结构形式很多,世界上已实用的集热器就有直管式、瓦楞式、扁管式、铝翼式等二十多种。2.2主控芯片模块电路设计单片机系统由AT89C52和一定功能的外围电路组成,包括为单片机提供复位电压的复

20、位电路,提供系统频率的晶振。这部分电路主要负责程序的存储和运行。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、谐振器的稳定性、起振的快速性和温度的稳定性。晶体可在1.2MHz12MHz之间任选,电容C1和C2的典型值在20pF100pF之间选择,但在60pF70pF时振荡器具有较高的频率稳定性。典型值通常选择为30pF左右,但本电路采用30pF。AT89C51的复位是由外部的复位电路来实现的。复位电路通常采用上电自动复位和按钮复位两种方式。本设计中所用到的是上电按钮复位,如下图所示。图2.2 主控芯片模块电路2.2.1主控芯片简介AT89C52是51系列单片机的一个型号

21、,它是ATMEL公司生产的AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线

22、编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 兼容MCS51指令系统8k可反复擦写(1000次)Flash ROM 32个双向I/O口256x8bit内部RAM 3个16位可编程定时/计数器中断时钟频率0-24MHz 2个串行中断可编程UART串行通道 2个外部中断源共6个中断源 2个读写中断口线3级加密位 低功耗空闲和掉电模式软件设置睡眠和唤醒功能 AT89C52P为40脚双列直插封装的8位通用微处理器,采用工业标准的的C51内核,在内部功能及管脚排布上与通用8xc52相同,其主要用于会聚调整时的功能

23、控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚

24、定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。图2.2.1 C52引脚图P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,有上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口P1是一个带内部上拉电阻的8位双向I/O口

25、,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入P1.1/T2EXFlash 编程和程序校验期间,P1 接收低8 位地址。表.P1.0和P1.1的第二功能引脚号功能特性P1.0T2,时钟输出P1.1T2EX(定时/计数器2)P2 是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个

26、TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX RI指令)时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输

27、入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RS 引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉

28、冲(PROG)。如有必要,可通过对特殊功能寄存器 (SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOV和MOVC 指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000HFFFFH),EA 端必须保持低电平(接地)。需注意的

29、是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。XTAL1振荡器反相放大器的及内部时钟发生器的输入端。XTAL2振荡器反相放大器的输出端。特殊功能寄存器在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器(SFE),SFR的地址空间映象如表2 所示。并非所有的地址都被定义,从80HFFH 共128 个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的,读

30、出的数值将不确定,而写入的数据也将丢失。不应将数据“1” 写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。AT89C52除了AT89C51所有的定时/计数器0和定时/计数器1外,还增加了一个定时/计数器2。定时/计数器2的控制和状态位位于T2MOD,寄存器对(RCAO2H、RCAP2L)是定时器2 在16位捕获方式或16 位自动重装载方式下的捕获/自动重装载寄存器。数据存储器AT89C52 有256 个字节的内部RAM,80H-FFH 高128 个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM 和特殊功能寄存器的

31、地址是相同的,但物理上它们是分开的。当一条指令访问7FH 以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128 字节RAM还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器。下面的直接寻址指令访问特殊功能寄存器0A0H (即P2口)地址单元。间接寻址指令访问高128 字节RAM,例如,下面的间接寻址指令中,R0的内容为0A0H,则访问数据字节地址为0A0H,而不是P2口(0A0H)堆栈操作也是间接寻址方式,所以,高128位数据RAM 亦可作为堆栈区使用。定时器0和定时器1:AT89C52的定时器0和定时器1 的工作方式与AT89C51 相同。定时

32、器2定时器2是一个16位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器 T2CON 的C/T2位选择。定时器2 有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON的控制位来选择。定时器2 由两个8 位寄存器TH2 和TL2 组成,在定时器工作方式中,每个机器周期TL2 寄存器的值加1,由于一个机器周期由12个振荡时钟构成,因此,计数速率为振荡频率的1/12。在计数工作方式时,当 T2引脚上外部输入信号产生由 1至0的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5SP2期间,对外部输入进行采样

33、。若在第一个机器周期中采到的值为 1,而在下一个机器周期中采到的值为0,则在紧跟着的下一个周期的S3P1期间寄存器加1。由于识别1至0 的跳变需要2 个机器周期(24 个振荡周期),因此,最高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输信号至少被采样一次。捕获方式在捕获方式下,通过T2CON控制位EXEN2来选择两种方式。如果 EXEN2=0,定时器 2是一个 16位定时器或计数器,计数溢出时,对 T2CON的溢出标志TF2 置位,同时激活中断。如果 EXEN2=1,定时器 2完成相同的操作,而当T2EX 引脚外部输入信号发生1至

34、0 负跳变时,也出现TH2 和TL2 中的值分别被捕获到RCAP2H 和RCAP2L 中。另外,T2EX 引脚信号的跳变使得T2CON 中的EXF2 置位,与TF2 相仿,EXF2也会激活中断。自动重装载(向上或向下计数器方式当定时器 2工作于 16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON的DCEN 位(允许向下计数)来选择的。复位时,DCEN 位置“0”,定时器2 默认设置为向上计数。当DCEN置位时,定时器 2 既可向上计数也可向下计数,这取决于T2EX引脚的值,当DCEN=0时,定时器 2自动设置为向上计数,在这种方式下,T2CON 中的

35、EXEN2 控制位有两种选择,若EXEN2=0,定时器2 为向上计数至0FFFFH 溢出,置位TF2 激活中断,同时把16 位计数寄存器RCAP2H 和RCAP2L重装载,RCAP2H 和RCAP2L 的值可由软件预置。若EXEN2=1,定时器2 的16 位重装载由溢出或外部输入端T2EX 从1 至0 的下降沿触发。这个脉冲使EXF2 置位,如果中断允许,同样产生中断。定时器2 的中断入口地址是:002BH 0032H 。当DCEN=1时,允许定时器2 向上或向下计数,如图6 所示。这种方式下,T2EX 引脚控制计数器方向。T2EX 引脚为逻辑 “1”时,定时器向上计数,当计数0FFFFH向上

36、溢出时,置位TF2,同时把16位计数寄存器RCAP2H 和RCAP2L重装载到TH2和TL2中。T2EX引脚为逻辑“0”时,定时器2向下计数,当 TH2和TL2中的数值等于 RCAP2H和 RCAP2L中的值时,计数溢出,置位TF2,同时将0FFFFH 数值重新装入定时寄存器中。当定时/计数器2 向上溢出或向下溢出时,置位EXF2 位。波特率发生器:当T2CON中的TCLK和RCLK置位时,定时/计数器2 作为波特率发生器使用。如果定时/计数器 2 作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器1用于其它功能。若 RCLK 和 TCLK置位,则定时器2工作于波特率发生器方式。波特

37、率发生器的方式与自动重装载方式相仿,在此方式下,TH2 翻转使定时器2 的寄存器用RCAP2H 和RCAP2L 中的16位数值重新装载,该数值由软件设置。在方式1和方式3中,波特率由定时器2 的溢出速率根据下式确定,方式1和3的波特率=定时器的溢出率/16定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/T2=0)。定时器2 作为波特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期(1/12振荡频率)寄存器的值加1,而作为波特率发生器使用时,在每个状态时间(1/2 振荡频率)寄存器的值加1。波特率的计算公式如下:方式1和3的波特率=振荡

38、频率/32*65536-(RCP2H,RCP2L)式中(RCAP2H,RCAP2L)是RCAP2H 和RCAP2L中的16 位无符号数。定时器2作为波特率发生器使用的电路如图所示。T2CON中的RCLK 或TCLK=1 时,波特率工作方式才有效。在波特率发生器工作方式中,TH2 翻转不能使TF2置位,故而不产生中断。但若EXEN2置位,且T2EX端产生由1至0的负跳变,则会使EXF2置位,此时并不能将(RCAP2H,RCAP2L) 的内容重新装入TH2 和TL2 中。所以,当定时器2 作为波特率发生器使用时,T2EX 可作为附加的外部中断源来使用。需要注意的是,当定时器 2工作于波特率器时,作

39、为定时器运行(TR2=1)时,并不能访问TH2和TL2。因为此时每个状态时间定时器都会加1,对其读写将得到一个不确定的数值。然而,对RCAP2 则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和/或重装载出错。在访问定时器 2或 RCAP2寄存器之前,应将定时器关闭(清除TR2)。可编程时钟输出定时器2 可通过编程从P1.0 输出一个占空比为50%的时钟信号。P1.0引脚除了是一个标准的I/O 口外,还可以通过编程使其作为定时/计数器2的外部时钟输入和输出占空比50%的时钟脉冲。当时钟振荡频率为16MHz时,输出时钟频率范围为61Hz4MHz。当设置定时/计数器2 为时钟发生器时,

40、C/T2(T2CON .1)=0, T2OE (T2MOD.1) =1,必须由TR2(T2CON.2)启动或停止定时器。时钟输出频率取决于振荡频率和定时器2 捕获寄存器(RCAP2H,RCAP2L)的重新装载值,公式如下:输出时钟频率=振荡器频率/4*65536-(RCP2H,RCP2L)在时钟输出方式下,定时器2 的翻转不会产生中断,这个特性与作为波特率发生器使用时相仿。定时器2 作为波特率发生器使用时,还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用RCAP2L和RCAP2L。UART AT89C52的UART 工作方式与AT89C51 工作方式相

41、同。中断 AT89C52共有6个中断向量:两个外中断(INT0 和 INT1),3个定时器中断(定时器0、1、2)和串行口中断。所有这些中断源如图所示。这些中断源可通过分别设置专用寄存器IE 的置位或清0 来控制每一个中断的允许或禁止。IE 也有一个总禁止位EA,它能控制所有中断的允许或禁止。注意表中IE.6为保留位,在AT89C51中IE.5也是保留位。程序员不应将“1”写入这些位,它们是将来AT89系列产品作为扩展用的。定时器2的中断是由T2CON中的TF2和EXF2逻辑或产生的,当转向中断服务程序时, 这些标志位不能被硬件清除,事实上,服务程序需确定是TF2 或EXF2 产生中断,而由软

42、件清除中断标志位。定时器0和定时器1的标志位TF0和TF1 在定时器溢出那个机器周期的S5P2状态置位,而会在下一个机器周期才查询到该中断标志。然而,定时器2 的标志位TF2 在定时器溢出的那个机器周期的S2P2 状态置位,并在同一个机器周期内查询到该标志。时钟振荡器AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图。外接石英晶体(或陶瓷谐振器)及电容C1、C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容 C1、C2 虽然没有十分严

43、格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF10pF,而如使用陶瓷谐振器建议选择 40pF10F。用户也可以采用外部时钟。采用外部时钟的电路所示。这种情况下,外部时钟脉冲接到XTAL1 端,即内部时钟发生器的输入端,XTAL2 则悬空。由于外部时钟信号是通过一个2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。空闲节电模式在空闲工作模式状态,CPU 自身处于睡眠状态而所有片内的外设仍保持激活状态,这种方式

44、由软件产生。此时,同时将片内RAM 和所有特殊功能寄存器的内容冻结。空闲模式可由任何允许的中断请求或硬件复位终止。由硬件复位终止空闲状态只需两个机器周期有效复位信号,在此状态下,片内硬件禁止访问内部 RAM,但可以访问端口引脚,当用复位终止空闲方式时,为避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。掉电模式在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM 和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器,但不改变RAM中的内容,在Vcc恢复到

45、正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。程序存储器的加密AT89C52有3个程序加密位,可对芯片上的3 个加密位LB1、LB2、LB3 进行编程(P)或不编程(U)来得到。当加密位LB1被编程时,在复位期间,EA端的逻辑电平被采样并锁存,如果单片机上电后一直没有复位,则锁存起的初始值是一个随机数,且这个随机数会一直保存到真正复位为止。为使单片机能正常工作,被锁存的EA电平值必须与该引脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法清除。Flash存储器的编程AT89C52单片机内部有8k字节的Flash PEROM,这个Flash 存储阵列出厂时已处于

46、擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压( Vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM 编程器兼容。AT89C52 单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用户可从芯片上的型号和读取芯片内的签名字节获得该信息。AT89C52 的程序存储器阵列是采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的PEROM 程序存储器写入一个非空字节,必须使用片擦除的方式将整个存储器的内容清除。编程方法编程前,须设置好地址、数据及控制信号, AT89C52 编程方法

47、如下:1 在地址线上加上要编程单元的地址信号。2 在数据线上加上要写入的数据字节。3 激活相应的控制信号。4 在高电压编程方式时,将EA/Vpp 端加上+12V 编程电压。5 每对Flash 存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG 编程脉冲。每个字节写入周期是自身定时的,通常约为1.5ms。重复15 步骤,改变编程单元的地址和写入的数据,直到全部文件编程结束。数据查询AT89C52 单片机用Data Palling 表示一个写周期结束为特征,在一个写周期中,如需读取最后写入的一个字节,则出的数据的最高位(P0.7)是原来写入字节最高位的反码。写周期完成后,所输出的

48、数据是有效的数据,即可进入下一个字节的写周期,写周期开始后,Data Palling 可能随时有效。程序校验:如果加密位LB1、LB2没有进行编程,则代码数据可通过地址和数据线读回原编写的数据,采用的电路。加密位不可直接校验,加密位的校验可通过对存储器的校验和写入状态来验证。芯片擦除:利用控制信号的正确组合并保持ALE/PROG 引脚10mS 的低电平脉冲宽度即可将PEROM 阵列(4k字节)和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“1”,这步骤需再编程之前进行。读片内签名字节:AT89C52 单片机内有3 个签名字节,地址为030H、031H 和032H。用于声明该器件

49、的厂商、型号和编程电压。读AT89C52 签名字节需将P3.6 和P3.7 置逻辑低电平,读签名字节的过程和单元030H、031H 及032H 的正常校验相仿,只返回值意义如下:(030H)=1EH 声明产品由ATMEL公司制造。(031H)=52H 声明为AT89C52 单片机。(032H)=FFH 声明为12V 编程电压。(032H)=05H 声明为5V 编程电压。2.3水位监测模块设计 该模块采用分段式水位传感器,可以检测到水箱里四个不同的水位, 在进行水位检测时,本设计用四个探针,用来显示连接位置的逻辑状态,亦即探针所在位置的电平状态,本设计采用四个逻辑探针来检测水位,2、4、6、8端

50、口所在的探针分别检测,所表示的水位依次为25%、50%、75%和100%,当水位上升到探针所在位置时,探针端的逻辑电平为逻辑“0”,当探针所在位置没有水时,探针端的逻辑电平为逻辑“1”。单片机通过读取所对应的端口的逻辑电平,以及访问存储器的控制程序,在液晶显示屏上显示相应的水位情况,通过上述的检测,就可以及时的检测到水箱中的水位情况,并在液晶显示屏上清楚地显示出水箱中的水位情况,下图为水位检测电路设计图:图2.3 水位检测模块电路2. 4水温检测模块电路设计基于DS18B20多点温度测量系统以AT89C52为中心器件,以PROTEUS作为仿真软件设计而成的。DS18B20是智能温度传感器,它的

51、输入/输出采用数字量,以单总线技术,接收主机发送的命令,根据DS18B20内部的协议进行相应的处理,将转换的温度以串口发送给主机。主机按照通信协议用一个IO口模拟DS18B20的时序,发送命令(初始化命令、ROM命令、功能命令)给DS18B20,并读取温度值,在内部进行相应的数值处理,用图形液晶模块显示各点的温度。在系统启动之时,可以通过44键盘设置各点温度的上限值,当某点温度超过设置值时,报警器开始报警,从而实现了对各点温度的实时监控。每个DS18B20有自己的序列号,因此可以在一根总线上挂接了4个DS18B20,通过CRC校验,对各个DS18B20的ROM进行寻址,地址符合的DS18B20

52、才作出响应,接收主机的命令,向主机发送转换的温度。采用这种DS18B20寻址技术,使系统硬件电路更加简单,如下图所示。图2.4 DS18B20与单片机的连接电路2.4.1温度传感器简介DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20产品的特点6:只要求一个端口即可实现通信。在DS18B20中的每个器件上都有独一无二的序列号。实际应用中不需要外部任何元器件即可实现测温。测量温度范围在55.C到125.C之间。数字温度计的分辨率用户可以从

53、9位到12位选择。DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源3VDD可选择的VDD引脚,当工作于寄生电源时,该引脚必须接地64位ROM存储器件独一无二的序列号。暂存器包含两字节(0和1字节)的温度寄存器,用于存储温度传感器的数字输出。暂存器还提供一字节的上线警报触发(TH)和下线警报触发(TL)寄存器(2和3字节),和一字节的配置寄存器(4字节),使用者可以通过配置寄存器来设置温度转换的精度。暂存器的5、6和7字节器件内部保留使用。第八字节含有循环冗余码(CRC )。DS18B20加电后,处在空

54、闲状态。要启动温度测量和模拟到数字的转换,处理器须向其发出Convert T 44h 命令;转换完后,DS18B20回到空闲状态。温度数据是以带符号位的16-bit补码存储在温度寄存器中的7。符号位说明温度是正值还是负值,正值时S=0,负值时S=1。访问DS18B20必须严格遵守这一命令序列,如果丢失任何一步或序列混乱,DS18B20都不会响应主机(除了Search ROM 和Alarm Search这两个命令,在这两个命令后,主机都必须返回到第一步)。a初始化:DS18B20所有的数据交换都由一个初始化序列开始。由主机发出的复位脉冲和跟在其后的由DS18B20发出的应答脉冲构成。当DS18B

55、20发出响应主机的应答脉冲时,即向主机表明它已处在总线上并且准备工作。b. ROM命令8:ROM命令通过每个器件64-bit的ROM码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信。DS18B20的ROM如表2.5所示,每个ROM命令都是8 bit长。表2.5 ROM命令指令协议功能读ROM33H读DS18B20中的编码(即64位地址)符合ROM55H发出此命令后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20,使之作出响应,为下一步对该DS18B20的读写作准备搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作

56、各器件作好准备跳过ROM0CCH忽略64位ROM地址,直接向DS18B20V 温度转换命令,适用于单个DS18B20工作告警搜索命令0ECH执行后,只有温度超过庙宇值上限或下限的片子才做出响应温度转换44H启动DS18B20进行温度转换,转换时间最长为500ms(典型为200ms),结果丰入内部9字节RAM中读暂存器BEH读内部RAM中9字节的内容写暂存器4EH发出向内部RAM的第3、4字节写上、下温度数据命令,紧该温度命令之后,传达两字节的数据复制暂存器48H将RAM中第3、4字内容复制到E2PROM中重调E2PROM0B8H将E2PROM中内容恢复到RAM中的第3、4字节读供电方式0B4H

57、读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外部供电时DS18B20发送“1”2.5自动上水模块设计 在设计自动上水模块时,因为其自动上水的启动是与水位直接相关的,所以,本设计的设计理念是:在水位下降到25%以下时,就进行自动上水操作,当单片机读取到PO.O口所在逻辑电平为逻辑“1”时,单片机通过内部程序操作,使PO.4驱动外围的一个电磁阀,开始上水操作,在进行上水操作的过程中,也可以人为的通过键盘操作,使其操作停止,若在此过程中,主程序没有扫描到有按键操作时,就一直进行上水操作,当水位上升到100%时,因单片机读取到PO.3口的逻辑电平为逻辑“0”时,再通过主程序操作,使

58、PO.4口停止驱动外围的电磁阀,使其停止工作,从而完成了自动上水与水满后自动停止上水的操作,下图为自动上水模块电路的设计图:图2.5 自动上水模块电路图2.6报警模块设计 本模块的设计思路是:当水箱中的水位低于25%时,单片机通过读取P0.0端口的数据,启动报警程序,P2.0口来驱动报警器进行报警,并且开始自动上水的操作,当水位高于25%后,进行一个中断操作,使报警器停止报警,但此时,自动上水依旧进行,当水位达到规定上限或人为停止上水操作后,自动上水停止。此模块的作用在于当人在淋浴或是一直用水时,可以及时的提醒用户水箱中的水位情况,以免造成不必要的麻烦,此模块的电路图如下所示2.6 报警模块电

59、路图2.7水位与水温显示模块设计在本模块设计时,显示屏选择了1602液晶显示屏,水位与水温数据分别通过逻辑探针和DS18B20来进行采集,通过微控制器的分析与相应的程序来通过液晶显示屏进行显示,具体的水位与水温显示电路如下图所示:图2.7 显示模块电路图2.7.1 1602简介1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3-1所示:表3-1:引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D

60、0数据15BLA背光源正极8D1数据16BLK背光源负极第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端由高电平跳变成低电平时,液晶模

61、块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。表3-2:控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液

62、晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6

63、:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。1602LCD的RAM地址映射及标准字库表液晶显示模块是一个慢显示器件,所以在执行每条指令前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2.7.1是1602的内部显示地

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!