基于单片机的太阳能热水器课程设计.docx
《基于单片机的太阳能热水器课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的太阳能热水器课程设计.docx(46页珍藏版)》请在冰豆网上搜索。
基于单片机的太阳能热水器课程设计
摘要
随着人们生活水平的不断提高,全球人口和经济规模的不断增长,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中,能源使用带来的环境问题及其诱因逐渐为人们所认识,“低碳经济”这一概念开始进入人们的视野。
太阳能具有储量的“无限性”、存在的普遍性,并且几乎不产生任何污染。
鉴于此,人们在大力的发展太阳能产业。
太阳能热水器顺应时代发展的要求,满足人们对环保绿色产品的需求。
在人类文明程度日益提高的今天,它是现代文明社会的最佳选择。
本文提出了一种新型的太阳能热水器控制系统设计方案。
本设计采用MSC-51系列单片机AT89S52作为中央处理器,采用DS1302实时时钟,12864点阵式液晶显示屏等模块,完成时间温度水位的显示,以及时间和温度的设定等功能。
关键字:
太阳能热水器;单片机;实时时钟;液晶显示屏
1智能仪器仪表的简介
1.1智能仪器仪表简介
仪器仪表(英文:
instrumentation)仪器仪表是用以检出、测量、观察、计算各种物理量、物质成分、物性参数等的器具或设备。
真空检漏仪、压力表、测长仪、显微镜、乘法器等均属于仪器仪表。
广义来说,仪器仪表也可具有自动控制、报警、信号传递和数据处理等功能,例如用于工业生产过程自动控制中的气动调节仪表,和电动调节仪表,以及集散型仪表控制系统也皆属于仪器仪表。
1.2智能仪器仪表的作用
随着全球人口和经济规模的不断增长,能源使用带来的环境问题及其诱因逐渐为人们所认识,“低碳经济”这一概念开始进入人们的视野。
人们在大力的发展太阳能产业。
能源问题将更为突出:
①从长远来看,全球已探明的石油储量只能用到2020年,天然气也只能延续到2040年左右,即使储量丰富的煤炭资源也只能维持二三百年。
②环境污染③温室效应引起全球气候变化。
因此,人类在解决上述能源问题,实现可持续发展,只能依靠科技进步,大规模地开发利用可再生洁净能源。
太阳能具有:
①储量的“无限性”太阳每秒钟放射的能量大约是1.6×10的23次方kW,一年内到达地球表面的太阳能总量折合标准煤共约1.892×10的13次方千亿t。
②太阳能对于地球上绝大多数地区具有存在的普遍性,可就地取用。
在世界范围内,太阳能热水器技术已很成熟,并已形成行业,正在以优良的性能不断地冲击电热水器市场和燃气热水器市场。
2000年太阳能热水器取代47000套家用电热水器;2000年日本太阳能热水器的拥有量将翻一番;以色列更是明文规定,所有新建房屋必须配备太阳能热水器。
目前,我国是世界上太阳能热水器生产量和销售量最大的国家。
然而,目前市场上太阳能热水器的控制系统大多存在功能单一、操作复杂、控制不方便等问题,很多控制器具有温度和水位显示功能,却不具有温度控制功能,致使热水器阴天的时候不能方便使用。
即使热水器具有辅助加热功能,也可能由于加热时间不能控制而产生过烧,从而浪费电能。
1.3本课题的背景和意义
资源是社会经济发展的物质基础,经济愈发展,对资源的依赖性愈强。
许多资源(如煤、石油、天然气等)是不可再生的,而且在利用过程中给人类生存环境带来极大污染,人类繁衍生息的物质和环境基础受到严峻挑战。
加强清洁、可再生资源的开发利用,已引起全世界的普遍重视。
太阳能作为一种取之不尽、用之不竭的可再生资源,有节能、环保、安全和永续利用等优点,理应成为开发利用的首选。
其中太阳能热水器作为家庭生活用品,其开发利用在我国已走过了二十多年的历程,生产技术成熟,具有明显优点:
(一)从节能环保的角度讲,使用太阳能热水器不会对环境造成污染,同时为国家节约了大量能源,社会效益明显,是国家重点推广项目,使用前景广阔。
(二)太阳能热水器的使用寿命较长,使用太阳能热水器经济实惠。
若使用合理,其寿命可达15年甚至更长。
据测算,使用1平方米太阳能热水器,相当于每年节约310度电。
太阳能热水器的费用只有燃气热水器的七分之一,电热水器的六分之一。
购置太阳能热水器一次性投资3000元左右,使用5至6年就可实现与其热水器的支出对比平衡。
按照装置寿命15年计算,其经济效益是十分明显的。
(三)太阳能热水器集热效果好,集热时间更长。
只要阳光能照射到的地方,就可以使用太阳能热水器,即使在高寒地区一年四季也可以正常使用。
在我国浙江、江苏、山东等地,太阳能热水器的研发和生产已形成规模,应用太阳能热水器的场所也由家居使用扩展到医院、学校、宾馆、饭店、游泳池、洗浴场所等。
2系统设计简介
2.1方案论证
(1)方案一
在单片机学习课程中,就遇到过一种方案,称其为方案一。
它通过三极管的导通截止特性来判断液位的位置,并且可以通过按键切换检测压力。
但是在过程中只能检测三点,虽然可以扩展,但是占了太多的I/O口,容易造成资源的浪费。
而且仅显示单元就占用了12个I/O口,同样属于资源浪费。
在电机电路设计方面,方案一采用的三极管的导通截止来控制点击的正转与反转,虽然设计简单,但是过多的使用三极管以及二极管类的元器件,也会使成本升高。
而且,既然是太阳能热水器的自动控制装置,那么必不可少的就是温度的检测,而方案一中却忽略了这点,造成了最大的残缺。
(2)方案二
方案二主要解决了方案一中资源浪费及过于使用分立元件的缺陷。
在液位检测方面,通过利用两片CD4051芯片,它相当于一个单刀八掷开关,当INH禁止端为低电平即“0”时,开关接通哪一通道由输入的3位地址码ABC来决定。
这样就简单的解决了16个点检测的问题,并且在最大程度上减少了I/O口的使用。
仅使用了8个I/O口即可控制16个点的检测,如果是方案一,则需要使用16个I/O口。
而且在方案二中,使用目前比较流行51系列单片机AT89S52。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中的优势明显。
在方案二中还解决了方案一种不能检测温度缺点,使用了先进的DS18B20芯片,DS18B20数字温度传感器是Dallas公司生产的1-Wire,即单总线器件,具有线路简单、体积小的特点。
因此用他组成一个测温系统,具有线路简单,在1根通信线可以挂很多这样的数字温度传感器,十分方便。
(3)方案选择
通过上述两个方案的比较,便能发现方案二设计的电路比方案一的电路有极大的优势,性能全面,使用方便,而且简单、稳定。
故选择方案二。
2.2总体设计
2.2.1太阳能热水器的组成与工作原理
1-集热器2-下降水管3-循环水管4-补给水箱5-上升水管6-自来水管7-热水出水管
图2.1热水器的组成
热水器主要由集热器、循环管道和水箱等组成,图中为典型的热水器装置图。
图中集热器1按最佳倾角放置,下降水管2的一端与循环水箱3的下部相连,另一端与集热器1的下集管接通。
上升水管5与循环水箱3上部相连,另一端与集热器1的上集管相接。
补给水箱4供给循环水箱3所需的冷水。
集热器吸收太阳辐射后,集热器内温度上升,水温也随之升高。
水温升高后,水的比重减轻,便经上升水管进入循环水箱上部。
而循环水箱下部的冷水比重较大,就由水箱下流到集热器下方,在集热器内受热后又上升。
这样不断对流循环,水温逐渐提高,直到集热器吸收的热量与散失的热量相平衡时,水温不再升高。
这种热水利用循环加热的原理,因此又称循环热水器。
集热器是一种利用温室效应,将太阳能辐射转换为热能的装置,该装置与一般热水交换器不一样,热交换器通常只是液体到液体,或是液体到气体的热交换过程,而平板行集热器时直接将太阳辐射传给液体或气体,是一个复杂的传热过程。
平板型集热器结构形式很多,世界上已实用的集热器就有直管式、瓦楞式、扁管式、铝翼式等二十多种。
2.2.2系统总体流程图
图2.2系统总体流程图
3太阳能热水器控制系统的硬件设计
3.1主控芯片模块
3.1.1主控芯片模块电路
单片机系统由AT89S52和一定功能的外围电路组成,包括为单片机提供复位电压的复位电路,提供系统频率的晶振。
这部分电路主要负责程序的存储和运行。
对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、谐振器的稳定性、起振的快速性和温度的稳定性。
晶体可在1.2MHz~12MHz之间任选,电容C1和C2的典型值在20pF~100pF之间选择,但在60pF~70pF时振荡器具有较高的频率稳定性。
典型值通常选择为30pF左右,但本电路采用30pF。
AT89S52的复位是由外部的复位电路来实现的。
复位电路通常采用上电自动复位和按钮复位两种方式。
本设计中所用到的是上电按钮复位,如图3.1所示。
图3.1单片机系统
3.1.2主控芯片简介
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8位微控制器8K字节在系统可编程FlashAT89S52。
图3.2为AT89S52的引脚图
图3.2AT89S52的引脚图
AT89S52引脚功能说明如下:
VCC:
电源电压
GND:
地
P0口:
P0口是一个8位漏极开路的双向I/O口,也即地址/数据总线复用口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0内部上拉电阻被激活。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动(吸收或输出电流)4个TTL逻辑门电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(TTL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表3-1所示。
在flash编程和校验P1口接收低8位地址字节。
端口引脚
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
表3-1P1口第二功能
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
端口引脚
第二功能
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.4
TO(定时/计数器0)
P3.1
TXD(串行输出口)
P3.5
T1(定时/计数器1)
P3.2
INTO(外中断0)
P3.6
WR(外部数据存储器写选通)
P3.3
INT1(外中断1)
P3.7
RD(外部数据存储器读选通)
表3-2P3口的第二功能
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。
DISRTO位缺省为RESET输出高电平打开状态。
ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将有两次有效的PSEN信号。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:
振荡器反相放大器及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.2实时时钟模块
3.2.1实时时钟模块电路
从古代的滴漏更鼓到近代的机械钟,从电子表到目前的数字时钟,为了准确的测量和记录时间,人们一直在努力改进计时工具。
钟表的数字化,大力推动了计时的精确性和可靠性。
在单片机构成的装置中,实时时钟是必不可少的部件。
目前常用的实时时钟,很多采用单片机的中断服务来实现,这种方式一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许;有的则使用并行接口的时钟芯片,如MC146818、DS12887等,它们虽然能满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂,占用地址、数据总线多,芯片体积大,占用空间多,给其它设计带来诸多不便。
本设计选取串行接口时钟芯片DS1302与单片机同步通信构成数字时钟电路,如图3.3。
其简单的三线接口能为单片机节省大量资源,DS1302的后背电源及对后背电源进行涓细电流充电的能力保证电路断电后仍能保存时间和数据信息等。
这些优点解决了目前常用的实时时钟所无法解决的问题。
该时钟电路强大的功能和优越的性能,在很多领域的应用中,尤其是某些自动化控制、长时间无人看守的测控系统等对时钟精确性和可靠性有较高要求的场合,具有很高的使用价值。
图3.3DS1302与单片机接口电路
3.2.2实时时钟简介
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。
时钟可工作在24小时格式或12小时(AM/PM)格式。
DS1302与单片机的接口使用同步串行通信,仅用3条线与之相连接。
可采用一次传送一个字节或突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行细电流充电的能力。
DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc>2.0V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向),后面有详细说明。
SCLK为时钟输入端。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。
位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
DS1302的复位引脚:
通过把RST输入驱动置高电平来启动所有的数据传送.RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供了终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中置RST为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位至高位7。
DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。
其日历、时间寄存器及其控制字见表3-3。
寄存器名
命令字
取值范围
各位内容
写操作
读操作
7
6
5
4
3
2
1
0
秒寄存器
80H
81H
00--59
CH
10SEC
SEC
分寄存器
82H
83H
00--59
0
10MIN
MIN
时寄存器
84H
85H
01-12或00-23
12/24
0
10
HR
HR
日寄存器
86H
87H
01-28,29,30,31
0
0
10DATE
DATE
月寄存器
88H
89H
01--12
0
0
0
10M
MONTH
周寄存器
8AH
8BH
01--07
0
0
0
0
0
DAY
年寄存器
8CH
8DH
00--99
10YEAR
YEAR
表3-3DS1302的日历、时钟寄存器及其控制字
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器的内容。
DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H--FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
3.3温度传感器模块
3.3.1温度传感器模块电路
基于DS18B20多点温度测量系统以AT89C51为中心器件,以KEIL为系统开发平台,用C语言进行程序设计,以PROTEUS作为仿真软件设计而成的。
DS18B20是智能温度传感器,它的输入/输出采用数字量,以单总线技术,接收主机发送的命令,根据DS18B20内部的协议进行相应的处理,将转换的温度以串口发送给主机。
主机按照通信协议用一个IO口模拟DS18B20的时序,发送命令(初始化命令、ROM命令、功能命令)给DS18B20,并读取温度值,在内部进行相应的数值处理,用图形液晶模块显示各点的温度。
在系统启动之时,可以通过4×4键盘设置各点温度的上限值,当某点温度超过设置值时,报警器开始报警,从而实现了对各点温度的实时监控。
每个DS18B20有自己的序列号,因此本系统可以在一根总线上挂接了4个DS18B20,通过CRC校验,对各个DS18B20的ROM进行寻址,地址符合的DS18B20才作出响应,接收主机的命令,向主机发送转换的温度。
采用这种DS18B20寻址技术,使系统硬件电路更加简单,图3.4所示。
图3.4系统硬件电路
3.3.2温度传感器简介
DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
DS18B20产品的特点:
只要求一个端口即可实现通信。
在DS18B20中的每个器件上都有独一无二的序列号。
实际应用中不需要外部任何元器件即可实现测温。
测量温度范围在-55.C到+125.C之间。
数字温度计的分辨率用户可以从9位到12位选择。
内部有温度上、下限告警设置。
其引脚功能描述见表3-4。
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源
3
VDD
可选择的VDD引脚,当工作于寄生电源时,该引脚必须接地
表3-4DS18B20详细引脚功能描述
64位ROM存储器件独一无二的序列号。
暂存器包含两字节(0和1字节)的温度寄存器,用于存储温度传感器的数字输出。
暂存器还提供一字节的上线警报触发(TH)和下线警报触发(TL)寄存器(2和3字节),和一字节的配置寄存器(4字节),使用者可以通过配置寄存器来设置温度转换的精度。
暂存器的5、6和7字节器件内部保留使用。
第八字节含有循环冗余码(CRC)。
DS18B20加电后,处在空闲状态。
要启动温度测量和模拟到数字的转换,处理器须向其发出ConvertT[44h]命令;转换完后,DS18B20回到空闲状态。
温度数据是以带符号位的16-bit补码存储在温度寄存器中的。
符号位说明温度是正值还是负值,正值时S=0,负值时S=1。
访问DS18B20必须严格遵守这一命令序列,如果丢失任何一步或序列混乱,DS18B20都不会响应主机(除了SearchROM和AlarmSe