基于单片机技术的太阳能热水器控制系统的设计与实现.docx
- 文档编号:30023626
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:32
- 大小:207.01KB
基于单片机技术的太阳能热水器控制系统的设计与实现.docx
《基于单片机技术的太阳能热水器控制系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于单片机技术的太阳能热水器控制系统的设计与实现.docx(32页珍藏版)》请在冰豆网上搜索。
基于单片机技术的太阳能热水器控制系统的设计与实现
基于单片机技术的太阳能热水器控制系统的设计与实现
系部:
电子工程系
班级:
电信09C2
姓名:
王凯凯
学号:
092221216
指导教师:
刘训菲
2012年1月1日
摘要
能源是现代社会存在和发展的基石。
随着全球工业革命的快速推进,能源危机在上世纪被正式提出和普遍认可。
而太阳能作为一种新型的绿色能源逐渐走进人们的事业。
太阳是人们取之不尽用之不竭的可再生能源,具有充分的纯洁性,绝对的安全性和相对的广泛性。
鉴于此,太阳能热水器这一顺应时代发展需要的绿色产品被创造发明出来并且走进了千家万户。
而本论文要论述的就是如何对太阳能热水器进行更人文化控制,使得人们使用起来更为方便。
本设计采用MSC-51系列单片机AT89S52作为中央处理器,采用DS1302实时时钟,12864点阵式液晶显示屏等模块,完成时间温度水位的显示,以及时间和温度的设定等功能。
关键词:
太阳能热水器;单片机;实时时钟;液晶显示屏
目录
摘要··································································2
1前言··································································4
2太阳能热水器控制系统整体架构
2·1太阳能热水器控制系统结构示意图····································6
2·2结构示意图科学分析··············································7
2·2·1单片机···················································7
2·2·2信号处理·················································8
2·2·3传感器···················································8
2·2·4显示接口和显示器·········································9
2·2·5键盘输入··················································10
2·3时钟电路模块
2·3·1实时时钟简介··············································11
2·3·2实时时钟模块电路········································12
3太阳能热水器控制系统Proteus仿真······································13
4太阳能热水器控制系统软件设计
4·1太阳能热水器控制系统软件设计流程图······························15
4·2太阳能热水器控制系统软件功能的实施
4·2·1初始化程序···············································17
4·2·2按键检测及处理程序·······································18
4·2·3读取温度的程序···········································19
5结论································································20
参考文献···························································21
致谢······························································22
附录
1.前言
资源是社会经济发展的物质基础,经济愈发展,对资源的依赖性愈强。
许多资源(如煤、石油、天然气等)是不可再生的,而且在利用过程中给人类生存环境带来极大污染,人类繁衍生息的物质和环境基础受到严峻挑战。
加强清洁、可再生资源的开发利用,已引起全世界的普遍重视。
太阳能作为一种取之不尽、用之不竭的可再生资源,有节能、环保、安全和永续利用等优点,理应成为开发利用的首选。
其中太阳能热水器作为家庭生活用品,其开发利用在我国已走过了二十多年的历程,生产技术成熟,具有明显优点:
(一)从节能环保的角度讲,使用太阳能热水器不会对环境造成污染,同时为国家节约了大量能源,社会效益明显,是国家重点推广项目,使用前景广阔。
(二)太阳能热水器的使用寿命较长,使用太阳能热水器经济实惠。
若使用合理,其寿命可达15年甚至更长。
据测算,使用1平方米太阳能热水器,相当于每年节约310度电。
太阳能热水器的费用只有燃气热水器的七分之一,电热水器的六分之一。
购置太阳能热水器一次性投资3000元左右,使用5至6年就可实现与其热水器的支出对比平衡。
按照装置寿命15年计算,其经济效益是十分明显的。
(三)太阳能热水器集热效果好,集热时间更长。
只要阳光能照射到的地方,就可以使用太阳能热水器,即使在高寒地区一年四季也可以正常使用。
在我国浙江、江苏、山东等地,太阳能热水器的研发和生产已形成规模,应用太阳能热水器的场所也由家居使用扩展到医院、学校、宾馆、饭店、游泳池、洗浴场所等。
2.太阳能热水器控制系统整体架构
2·1结构示意图
2·2结构示意图分析(系统原理框图如图1所示)
2·2·1单片机系统介绍
本系统采用AT89S52为ATMEL所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。
(一)、AT89S52主要功能列举如下:
1、拥有灵巧的8位CPU和在系统可编程Flash
2、晶片内部具时钟振荡器(传统最高工作频率可至12MHz)
3、内部程序存储器(ROM)为8KB
4、内部数据存储器(RAM)为256字节
5、32个可编程I/O口线
6、8个中断向量源
7、三个16位定时器/计数器
8、三级加密程序存储器
9、全双工UART串行通道
(二)、AT89S52各引脚功能介绍:
VCC:
AT89S52电源正端输入,接+5V。
VSS:
电源地端。
XTAL1:
单芯片系统时钟的反相放大器输入端。
XTAL2:
系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。
RESET:
AT89S52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
EA/Vpp:
"EA"为英文"ExternalAccess"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。
因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。
如果是使用8751内部程序空间时,此引脚要接成高电平。
此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。
ALE/PROG:
ALE是英文"AddressLatchEnable"的缩写,表示地址锁存器启用信号。
AT89S52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为AT89S52是以多工的方式送出地址及数据。
平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。
此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。
PSEN:
此为"ProgramStoreEnable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。
AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。
PORT0(P0.0~P0.7):
端口0是一个8位宽的开路汲极(OpenDrain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。
其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。
如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。
设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。
PORT2(P2.0~P2.7):
端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。
P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。
PORT1(P1.0~P1.7):
端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LSTTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。
如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。
PORT3(P3.0~P3.7):
端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。
其引脚分配如下:
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,外部数据存储器的读取信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
2·2·2信号处理电路
信号处理电路主要有模拟信号处理电路和数字电路处理组成。
首先模拟信号处理电路接受传感器的信号经过处理变化成可取的数字信号,在经过数字电路的处理传送给单片机。
2·2·3传感器
该传感器采用的是热电偶温度传感器。
其工作原理是:
将两种不同材料的导体或半导体A和B焊接起来,构成一个闭合回路,当导体A和B的两个执着点之间存在温差时,两者之间便产生电动势,因而在回路中形成一个大小的电流,这种现象称为热电效应。
温度传感器热电偶就是利用这一效应来工作的
2·2·4显示接口电路与显示器
以上为显示电路。
显示器本系统采用2864,2864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。
该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字。
可完成图形显示。
电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块[9]。
图2.6LCD结构尺寸
基本特性:
低电源电压(VDD:
+3.0--+5.5V)
显示分辨率:
128×64点
内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)
内置128个16×8点阵字符
2MHZ时钟频率
显示方式:
STN、半透、正显
驱动方式:
1/32DUTY,1/5BIAS
视角方向:
6点
背光方式:
侧部高亮白色LED,功耗仅为普通LED的1/5—1/10
通讯方式:
串行、并口可选
内置DC-DC转换电路,无需外加负压
无需片选信号,简化软件设计
工作温度:
0℃-+55℃,存储温度:
-20℃-+60℃
2·2·5键盘输入
一般具有人机对话的单片机系统少不了会有键盘。
本设计采用三个按键,最佳的接口方案是独立式接法,即每一个I/O口上只接一个按键,按键的另一端接地。
独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。
我们将按键的一端接地,另一端接一个I/O口,程序开始时将此I/O口置于高电平,平时无按键按下时I/O口保护高电平。
当有键按下时,此I/O口与地短路迫使I/O口为低电平。
按键释放后,与单片机连接的上拉电阻使I/O口仍然保持高电平。
我们所要做的就是在程序中查询此I/O口的电平状态就可以了解我们是否有按键动作了。
值得注意的是,我们在用单片机对键盘处理的时候涉及到了一个重要的过程,那就是键盘的去抖动。
这里说的抖动是机械的抖动,是当键盘在未按到按下的临界区产生的电平不稳定正常现象,并不是我们在按键时通过注意可以避免的。
这种抖动一般在10~200毫秒之间,这种不稳定电平的抖动时间对于人来说太快了,而对于时钟是微秒级的单片机而言则是漫长的。
为了提高系统的稳定性,我们必须去除或避开它。
此处我采用软件去抖动,实现方法是先查询按键当有低电平出现时立即延时10~200毫秒以避开抖动,延时结束再读一次I/O口的值。
按键分工,从左至右依次为1、2、3号按键,一号键模式键,二号三号键为加减键。
图2.7键盘接口电路
2.3实时时钟模块
2.3.1实时时钟模块电路
从古代的滴漏更鼓到近代的机械钟,从电子表到目前的数字时钟,为了准确的测量和记录时间,人们一直在努力改进计时工具。
钟表的数字化,大力推动了计时的精确性和可靠性。
在单片机构成的装置中,实时时钟是必不可少的部件。
目前常用的实时时钟,很多采用单片机的中断服务来实现,这种方式一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许;有的则使用并行接口的时钟芯片,如MC146818、DS12887等,它们虽然能满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂,占用地址、数据总线多,芯片体积大,占用空间多,给其它设计带来诸多不便。
本设计选取串行接口时钟芯片DS1302与单片机同步通信构成数字时钟电路,如图2.3。
其简单的三线接口能为单片机节省大量资源,DS1302的后背电源及对后背电源进行涓细电流充电的能力保证电路断电后仍能保存时间和数据信息等。
这些优点解决了目前常用的实时时钟所无法解决的问题。
该时钟电路强大的功能和优越的性能,在很多领域的应用中,尤其是某些自动化控制、长时间无人看守的测控系统等对时钟精确性和可靠性有较高要求的场合,具有很高的使用价值。
图2.3DS1302与单片机接口电路
2.3.2实时时钟简介
DS1302[4]是美国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个寄存器[5],其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。
其日历、时间寄存器及其控制字见表2.3。
表2.3DS1302的日历、时钟寄存器及其控制字
寄存器名
命令字
取值范围
各位内容
写操作
读操作
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
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器的内容。
DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H--FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
3太阳能热水器控制系统Proteus仿真
Proteus仿真图
本系统的硬件设计首先是在Proteus软件环境中仿真实现的。
Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的。
针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试。
如果有显示及输出,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,还能看到运行后输入输出的效果。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。
Proteus[13]建立了完备的电子设计开发环境,尤其重要的是ProteusLite可以完全免费,也可以花微不足道的费用注册达到更好的效果。
Proteus7.1是目前最好的模拟单片机外围器件的工具。
可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件,...)。
其实Proteus与multisim比较类似,只不过它可以仿真MCU!
当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,可是初学者拥有它们的可能性比较小。
使用51系列单片机,不管是用汇编语言还是用C语言编程都要用到keil软件。
使用keilc51v7.50+proteus7.1可以像使用仿真器一样调试程序,一般而言,微机实验中用万能仿真器+电工系自己做的实验板的实验都可以做得到。
当然,硬件实践还是必不可少的。
在没有硬件的情况下,Proteus能像pspice仿真模拟/数字电路那样仿真MCU及外围电路。
另外,即使有硬件,在程序编写早期用软件仿真一下也是很有必要的[14]。
Proteus软件主要具有以下几个方面的特点:
(1)实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
(2)支持主流单片机系统的仿真。
目前支持的单片机类型有:
ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 技术 太阳能热水器 控制系统 设计 实现
