基于单片机的太阳能热水器控制系统设计文档格式.docx
《基于单片机的太阳能热水器控制系统设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的太阳能热水器控制系统设计文档格式.docx(45页珍藏版)》请在冰豆网上搜索。
当今社会资源日益紧张,环境污染愈加严重,太阳能热水器与传统的燃气热水器和电热水器相比有一定的优越性。
目前,中国已成世界上最大的太阳能热水器生产国,但市场上太阳能热水器的控制系统大多存在功能单一、操作复杂、控制不方便等问题。
该课题采用单片机控制技术实现太阳能热水器水温、水位的自动检测与控制,漏电检测与报警,做到既能手动操作,又能智能控制,从而很好的解决太阳能热水器使用过程中易受季节、气候影响、浪费水资源等缺点。
课题涉及到的内容测控系的学生都学过,完成毕业设计,有利于巩固所学单片机、C语言等方面的知识,增强理论联系实际的能力。
同时,选题贴近日常生活,具有一定的应用价值[3]。
本课题构思设计的太阳能热水器控制系统是以51系列单片机中的AT89S52为检测控制的中心处理单元,采用DS1302时钟,不仅实现了时间,日历的显示,还能够储存自动开关机的定时时间,设计了键盘,还能够进行时间设定,控制功能,添加了DS18B20温度传感器,能够实时监测温度,还添加了12864液晶显示器,方便了人机交互功能。
控制系统可以根据天气的情况以及人工控制定时的时间利用加热装置(电加热器)使蓄水箱里面的水温达到预先设定的温度,从而就能达到了24小时供应热水的目的。
1.3论文的实际应用前景分析
目前,中国已成世界上最大的太阳能热水器生产国,年产量约为世界各国总和。
但是与之相配套的控制系统却还是一直处于研究和开发阶段。
没法做到智能化的处理,目前市场上太阳能热水器的控制系统大多存在功能单一、操作复杂、控制不方便等问题,很多控制器只具有温度和水位显示功能,不具有温度控制功能即使热水器具有辅助加热功能,也可能由于加热时间不能控制而产生过烧,从而浪费电能[4]。
2系统基本方案选择和论证
2.1单片机芯片的选择方案和论证
方案一:
采用89C51芯片作为硬件核心,89C51是一种带4K字节闪烁可编程可擦除只读存储器,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,89C51很多嵌入式控制系统提供了一种灵活性高且价廉的方案但是运用于电路设计中时由于不具备在线编程(ISP)技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插可能对芯片造成一定的损坏,目前该型号芯片已经停产[5]。
方案二:
采用AT89S52单片机,AT89S52单片机是ATMEL生产的单片机,是新一代8051单片机,指令代码完全兼容传统8051。
内部集成看门狗电路。
AT89S52单片机内部有8KB的程序Flash存储器。
由于我们设计的烧写文件大概在7KB左右,而AT89S52单片机的程序Flash为8KB,不用再外接程序存储器了[6]。
经过综合比较最终选择方案二,即选择AT89S52作为主控制器。
2.2显示模块的选择方案和论证
LCD12864液晶是一种具有8位并行接口方式的点阵图形液晶显示模块,可以显示16×
16点阵的汉字,系统要求显示年月日、时分秒、星期、和农历。
LCD12864液晶可以完成设计的要求。
12864是具有4位或者8位并行或者使用2线或着3线串行的一种多种接口方式的液晶显示器。
12864液晶显示器内部含有简体中文字库的点阵图形其显示分辨率为128×
64,也就是128×
64个点,内置8192个16*16点汉字,和128个16*8点ASCII字符集.基本特性:
工作温度:
0℃-+55℃,存储温度:
-20℃-+60℃
系统采用LED显示。
LED应用可分为两大类:
一是LED单管应用,包括红外线LED等;
另外就是LED显示屏,LED显示屏是由一些发光二极管排列组合而成成的显示器件。
它采用的是低电压扫描驱动,采用LED数码管动态扫描.价格上比较经济实惠,但不能显示文字,性价比不是很高,操作起来比较液晶显示来说略显繁琐,所以也不用此种作为显示。
经过综合比较最终选择方案一,即选择LCD12864液晶显示屏。
2.3时钟芯片的选择方案和论证
采用单片机定时。
单片机有很多优点,直接采用单片机定时计数器提供秒信号,计数的脉冲由外部提供,定时的脉冲由外部晶振提供,定时加1的周期为一个机器周期;
定时时间与初值和晶振频率有关。
使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案减少芯片的使用,节约成本,但程序复杂度较高。
采用DS1302时钟芯片。
DS1302它可以对年、月、日、星期、时、分、秒进行计时,采用的是两种电源的供电方式(主要电源和备用电源),DS1302可以进行数据记录,采用DS1302只需要写出驱动程序,调用程序读出寄存器内数据经过简单的变换就可以输出时间的数据[7]。
经过综合比较最终选择方案二,即采用DS1302时钟芯片。
2.4温度传感器的选择方案和论证
采用热敏电阻作为温度传感器。
使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化,当采集两个电阻中间分压变化的值时,通过AD转换进行模数转换。
此设计方案需用额外的A/D转换电路,增加硬件成本而且热敏电阻会产生较大的测量误差。
采用DS18B20温度传感器。
DS18B20是由DALLAS(达拉斯)公司生产的。
体积较小,是一线总线接口的温度传感器。
信息经过单线接口送入DS18B20或从DS18B20送出,因此从单片机到DS18B20仅需一条线连接即可。
它可在1秒钟(典型值)内把温度变换成数字
经过综合比较最终选择方案二,即采用采用DS18B20温度传感器。
2.5电路设计最终方案确定
单片机AT89S52作为主控制器;
选择LCD12864型液晶作为显示模块,此模块可以显示字母、数字符号、中文字型及图形,具有绘图及文字画面混合显示功能;
选择采用DS1302时钟芯片,使程序实现年、月、日、星期、时、分、秒,即农历阳历时间的显示。
采用DS18B20温度传感器,可以对温度做出比较精确的测量,而且和单片机通讯只要一个IO,连接方便。
利用继电器控制加热设备。
3系统硬件电路设计
3.1系统功能模块划分
根据系统功能要求,可大致画出系统所需硬件结构框图如图3-1所示:
图3-1系统原理框图
主控模块采用性价比较高的AT89S52单片机芯片,在其内部烧写好程序,可通过程序的运行控制测温模块进行测温;
测温模块主要是由DS18B20构成,将其与所测对象进行接触即可获取被测对象的温度数据,而所测得的温度和时钟芯片测得的实时日历将通过显示模块的液晶显示器以数字形式显示;
单片机调用程序,读取DS1302内寄存器,可以得到我们系统的时间数据,经过程序处理就可以输出在LCD上;
键盘电路可对时间,日历进行调整;
蜂鸣器可以在开启定时加热中,作为声音提醒。
3.2时钟模块
DS1302为美国DALLAS公司的一种实时时钟芯片,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。
采用32.768Hz晶振。
它可以对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿等多种功能。
DS1302可以用于数据记录,掉电不丢失。
在本设计中,它的实际电路图如图3-2所示:
图3-2DS1302与单片机的连接
DS1302需要外接32.768K的晶振,1号引脚接主电源VCC(5V)电源,8号引脚接备用电池(3V),当主电源掉电后,备用电源为DS1302提供电源,维持DS1302内数据不丢失,这正是时钟芯片所必须的特性。
3.3温度模块
传统的温度检测系统大多数都是采用模拟采集,A/D转换,转换后的数字信号送入计算机处理,处理电路相对比较复杂、可靠性也相对较差,占用MCU的资源比较多,本设计测温模块采用一线制总线数字温度传感器DS18B20,可将温度的模拟信号直接转换成温度的数字信号送给微处理器,电路简单,其电路原理图如图3-3所示:
图3-3DS18B20温度模块
从图中可看出,将温度传感器的一线制总线通过端口2与本设计主控芯片AT89S52的端口标号为DS18B20的相连即可实现相互之间的通信。
设计中的测温元件采用的是DS18B20测温元件,DS18B20是由DALLAS(达拉斯)公司生产的一种温度传感器。
超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20很受欢迎。
这是世界上第一片支持“一线总线”接口的温度传感器。
DS18B20温度传感器提供了9位的(二进制)温度读数。
它可在1秒钟(典型值)内把温度变换成数字。
3.3.1DS18B20的主要特征
1.DS18B20的主要特征:
从转换开始到结束全部都是数字温度的转换和输出;
是单总线数据的通信方式;
最高可以支持12位的分辨率,精度可以达到土0.5℃;
最大分辩率的最大工作周期仅仅为750毫秒;
检测温度范围为–55℃——+125℃;
内置EEPROM,可以做上下限温报警功能;
内置产品序列号,方便多机单总线挂接。
2.DS18B20芯片其封装结构如下:
图3-4DS18B20芯片封装图
由其引脚可看出,其3个引脚:
GND为电压地直接接地;
DQ为单数据总线用来与单片机相连接,本系统中DS与单片机P2.6接口连接,仅此一个连接就能保证DS18B20与单片机之间的数据交换;
VDD引脚接电源电压。
3.3.2DS18B20的工作原理
DS18B20共有三种形态的存储器资源,分别是:
ROM只读存储器,用于存放DS18B20ID编码,它的前8位数据是单线系列的编码(DS18B20的编码是19H),后面的48位是芯片唯一的序列号,最后8位是以上56位的CRC码(冗余校验)。
数据在出产时设置不由用户更改。
DS18B20共64位ROM,RAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。
第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。
在上电复位时其值将被刷新。
第5个字节则是用户第3个EEPROM的镜像。
第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。
第9个字节为前8个字节的CRC码。
EEPROM非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。
我们在每一次读温度之前都必须进行复杂的且精准时序的处理,因为DS18B20的硬件简单结果就会导致软件的巨大开消。
3.4显示模块
本设计显示模块主要采用LCD12864液晶显示器,其电路原理图如下:
图3-5LCD12864模块
LCD12864液晶显示器通过数据端口也即端口7~14与主控芯片AT89S52的I/O端口P3相连接实现数据与指令的传输,再通过控制端口RS、RW、EN也即端口4~6与主控芯片P1.5,P1.6,P1.7端口相接实现对数据和指令传输的控制。
显示模块采用12864液晶显示器可实现对温度和时间的直接显示,清晰明了。
3.2.3.1LCD12864的特征
显示器部分是由KS0108液晶显示控制驱动器和12864液晶显示器组成的,下面我们对其分别进行介绍。
3.4.1液晶显示控制驱动器KS0108的特点
KS0108液晶显示控制驱动器是一种带有驱动输出的图形液晶显示控制器,它可直接与8位微处理器相连,它可与KS0107配合对液晶屏进行行、列驱动。
KS0108是一种带有列驱动输出的液晶显示控制器,它可与行驱动器KS0107配合使用,组成液晶显示驱动控制系统。
1.内藏64×
64=4096位显示RAM,RAM中每位数据对应LCD屏上一个点的亮、暗状态;
2.KS0108是列驱动器,具有64路列驱动输出;
3.KS0108读、写操作时序与68系列微处理器相符,因此它可直接与68系列微处理器接口相连;
4.KS0108的占空比为1/32~1/64。
3.4.2液晶显示控制驱动器KS0108的引脚功能
引脚CS1,CS2,为芯片的片选端;
引脚E为读写使能信号,它是在下降沿时数据被锁存入KS0108的;
在E高电平期间,数据被读出;
R/W为读写选择信号,当它为一时为读选通,为零时为写选通;
DB0-DB7为数据总线RST为复位信号复位信号有效时,关闭液晶显示,使显示起始行为0,RST可跟MCU相连,由MCU控制;
也可直接接VDD,使之不起作用。
KS0108的引脚功能如下表3-1所示:
表3-1KS0108的引脚功能
引脚符号
状态
引脚名称
功能
CS1,CS2
输入
芯片片选端
CS1和CS2低电平选通。
E
读写使能信号
在E下降沿,数据被锁存(写)入KS0108;
在E高电平期间,数据被读出
R/W
读写选择信号
R/W=1为读选通,R/W=0为写选通
RS
数据、指令
RS=1为数据操作
RS=0为写指令或读状态
DB0-DB7
三态
数据总线
RST
复位信号
复位信号有效时,关闭液晶显示,使显示起始行为0,RST可跟MCU相连,由MCU控制;
3.4.3液晶显示控制驱动器KS0108的指令系统
KS0108的指令系统比较简单,总共只有七种。
常用的有3种现分别介绍如下:
1.显示开/关指令
当DBO=1时,LCD显示RAM中的内容;
DBO=0时,关闭显示。
该指令用来查询KS0108的状态,各参量含义如下:
BUSY:
1-内部在工作0-正常状态
ON/OFF:
1-显示关闭0-显示打开
REST:
1-复位状态0-正常状态
在BUSY和REST状态时,除读状态指令外,其它指令均不对KS0108产生作用。
在对KS0108操作之前要查询BUSY状态,以确定是否可以对KS0108进行操作。
2.写数据指令
读、写数据指令每执行完一次读、写操作,列地址就自动增一,必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。
3.读数据指令
3.4.4KS0108的软件设计
点阵字模文件的建立:
由于MGLS12864液晶显示器没有字库,需要使用点阵字模库建立独立的字库包括以下几个方面:
建立8×
16点阵常用字符、数字、符号字模库。
采用字模软件提取字模。
图3-68×
16点阵常用字符、数字、符号字模库
建立所用到的16×
16点阵字模库。
采用字模软件直接提取了“冬腊月初”这几个字。
图3-7提取字模
大字体数字显示的取模,采用了宽x高=16x32点阵方式,这样时间很清晰,如图3-8
图3-816x32点阵方式取模
根据以上电路原理图中液晶的各引脚与单片机的接法,可得本设计的液晶模块电路:
S接地;
数字电源VDD接+5V;
数据、指令选择信号RS接单片机P1.5口;
读写选择信号R/W接单片机P1.6口;
使能信号接P1.7,DB0~DB7分别接单片机的P3.0~P3.7口;
芯片1、芯片2的片选分别接单片机的P1.2、P1.3口;
复位端RST接P1.4、背光正电源LEDA接+5V;
液晶自带对比度调节。
3.5独立键盘模块
键盘是人与系统实现信息交互的接口,本设计中,我们采用3个独立键盘,电路原理如下图3-9:
图3-9独立键盘
当按键按下,与主控芯片连接的端口被降为低电平,按键松开则也升为高电平。
按键采用的是TackSwitch按钮开关,它具有自动恢复(弹回)的功能。
当我们按下按钮时,其中的接点接通(或切断),放开按钮后,接点恢复为切断(或接通)。
按照尺寸区分,电子电路或微型计算机所使用的TackSwith可分为8mm、10mm、12mm等。
虽然TackSwitch有4个引脚,但实际上,其内部只有一对a接点,即其中两个引脚是内部相连通的,而另外两个引脚内部也是相连通的。
7个按键实现了开机模式选择,日期调节等功能,独立按键的引入使得体现了本设计的人性化,智能化,功能的强大。
3.6蜂鸣器模块
蜂鸣器模块是本设计中体现人机交互的又一大设计亮点,其电路原理图:
图3-10蜂鸣器模块
1.蜂鸣器的介绍
(1)蜂鸣器的作用:
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
(2)蜂鸣器的分类:
蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两类。
(3)蜂鸣器的电路图形符号:
蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。
本设计里,我们采用有源蜂鸣器,由于蜂鸣器的工作电流一般比较大,以至于单片机的I/O口是无法直接驱动的,所以要利用放大电路来驱动,我们使用三极管来放大电流,驱动蜂鸣器,此模块只要通过BELL(连接到到单片机P2.7)输入的PWM波既可以使蜂鸣器分出声音,我们的设计可以在闹钟定时中作为声音提醒信号。
3.7单片机模块
3.7.1AT89S52型单片机简介
AT89S52是一种带8KB字节的可编程可擦出只读存储器(FPEROM-FlashProgrammableandErasableReadOnlyMemory)的低电压,低功耗,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL公司高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
3.7.2AT89S52引脚功能介绍
AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。
如图3-11所示。
图3-11AT89S52的管脚图
①主电源引脚(2根)
VCC:
电源输入,接+5V电源
GND:
接地线
②外接晶振引脚(2根)
XTAL1:
振荡电路的输入端
XTAL2:
振荡电路的输出端
③控制引脚(4根)
RST/VPP(Pin9):
复位引脚,当引脚上出现了2个的机器周期以上高电平将就会使单片机复位。
④IO口(32根)
AT89S52单片机有4组8位的I/O口,共32根。
PO口(Pin39~Pin32):
8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):
8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):
8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):
8位准双向I/O口线,名称为P3.0~P3.7
3.7.3系统的引脚接线
根据其系统工作原理设计出如图3-12所示的引脚接线:
图3-12单片机最小系统电路
3.8电路原理图的绘制和电路的焊接
在硬件的设计前期,根据框图对电路中可能出现的电路,进行了模拟实验,并根据实验结果对后期的硬件设计进行了合理化的修改完善。
在前面已分析了系统并绘制了框图,并根据框图分别设计了各部分电路。
由于温度传感器与时钟芯片集成度较高,所以在硬件电路设计时不需要太多其他元件即可实现预期功能。
因此在PROTEL上对原理图进行了绘制,从而得出了最终的完整电路原理图[附录1]。
3.8.1PCB制作
图3-13PCB图