版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘摘 要要 热水器控制系统以 AT89C52 单片机为检测控制中心单元,采用 DSl2887 实时时钟,不仅实现了时间、温度和水位三种参数实时显示功能,而且具有时间设定、温度设定与控制功能。控制系统可以根据天气情况利用辅助加热装置(电加热器)使蓄水箱内的水温达到预先设定的温度,从而达到 24 小时供应热水的目的。本设计主要采用了水位传感器、温度传感器和单片机 AT89C52 来实现控制。可以在不同时间进行不同的温度调节,从而实现 24 小时热水的控制。摘摘 要要.11 1 总体方案设计总体方案设计.31.11.1 方案比较方案比较.31.21.2 方案选择方案选择.42 2单元模块设计单元模块
2、设计.42.12.1 各单元模块功能介绍及电路设计各单元模块功能介绍及电路设计.42.1.12.1.1 单片机系统设计单片机系统设计.42.1.22.1.2 控制器实时时钟接口电路控制器实时时钟接口电路.52.1.32.1.3 水位检测和温度检测接口电路水位检测和温度检测接口电路.62.1.42.1.4 DS18B20DS18B20 与单片机接口电路设计与单片机接口电路设计.72.1.42.1.4 键盘和显示接口电路的设计键盘和显示接口电路的设计.92.1.52.1.5 光电隔离与辅助加热电路光电隔离与辅助加热电路.103 3 软件设计软件设计.113.13.1 软件设计原理及设计所用工具软件
3、设计原理及设计所用工具.113.23.2 显示子程序显示子程序.133.33.3 主程序:主程序:.14附录附录 1 1:.191 1 总体方案设计总体方案设计 1.11.1方案比较方案比较方案一设计的太阳能热水器控制系统以 89C52 单片机为检测控制中心单元,采用DSl2887 实时时钟,不仅实现了时间、温度和水位三种参数实时显示功能,而且具有时间设定、温度设定与控制功能。控制系统可以根据天气情况利用辅助加热装置(电加热器)使蓄水箱内的水温达到预先设定的温度,从而达到 24 小时供应热水的目的。实际应用结果表明,该控制器和以往显示仪相比具有性价比高、温度控制与显示精度高、使用方便和性能稳定
4、等优点。AT89C52AT89C52图1-1 系统硬件结构图方案二采用系统的温度采集选用PTl000铂电阻温度传感器,采集到的电压信号经集成运放LM324放大到2.O一5.0伏之间,送入串行加转换器11LCl543N,转换结果由单片机处理,其电路原理如图3所示设计时将加转换器的参考电压设置为vREF+=50V,VREF=1.5VLM324按照同相比例放大电路连接,则Vo=vi*(Rt/R+1)=0.5*(Rt/300+1)Rt值的变化表示了PtlooO温度传感器温度的变化,每个温度值对应一定的转换结果。可以在程序中建立一个查找表,表中每个元素的地址即为转换结果,元素值即为所对应的温度值。图1-
5、2 系统硬件结构图11.21.2方案选择方案选择方案一硬件电路简单,程序设计复杂一些,但是我已经使用开发工具 KEIL 用汇编语言对系统进行了程序设计,用仿真软件 PROTEUS 对系统进行了仿真,达到了预期的结果。由此可见,该方案完成具有可行性,体现了技术的先进性,经济上也没有问题。2 2单元模块设计单元模块设计2.12.1各单元模块功能介绍及电路设计各单元模块功能介绍及电路设计物2.1.12.1.1单片机系统设计单片机系统设计 单片机系统由 AT89C52 和一定功能的外围电路组成,包括为单片机提供复位电压的复位电路,提供系统频率的晶振。这部分电路主要负责程序的存储和运行。上图中 MCS-
6、51 内部时钟方式电路外接晶体以及电容 C5 和 C6 构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、谐振器的稳定性、起振的快速性和温度的稳定性。晶体可在1.2MHz12MHz 之间任选,电容 C5 和 C6 的典型值在 20pF100pF 之间选择,但在60pF70pF 时振荡器具有较高的频率稳定性。典型值通常选择为 30pF 左右,但本电路采用 33pF。在设计印刷电路板时,晶体或陶瓷振荡器和电容应尽可能安装的与单片机芯片靠近,以减少寄生电容,更好的保证振荡器稳定和可靠的工作。为了提高温度稳定性,应采用温度稳定性能好的 NP
7、O 高频电容。AT89C52 的复位是由外部的复位电路来实现的。复位电路通常采用上电自动复位和按钮复位两种方式。本设计中所用到的是上电按钮复位。图 2-2 单片机系统2.1.22.1.2 控制器实时时钟接口电路控制器实时时钟接口电路为实现热水器 24 小时供应热水的目的,控制器必须有一个实时时钟来为系统提供准确的基准时间;在软件设计上则要实时地读出当前时间,同设定时间比较,以决定系统工作状态。本系统采用美国 DALLAS 半导体公司最新推出的时钟芯片 DS12887,该芯片采用 CMOS 技术,把时钟芯片所需的晶振和电池以及相关的电路集成到芯片内部,并与 MC146818 管脚完全兼容。DS1
8、2887 芯片具有微功耗、外围接口简单、精度高,工作稳定可靠等优点。它与 89C52 单片机的接口电路见下图 2-2。图 2-2 DS12887 与单片机接口电路2.1.32.1.3 水位检测和温度检测接口电路水位检测和温度检测接口电路蓄水箱水位和温度检测部分是实现温度智能控制的重要环节,只有准确地检测出水位和温度,才能通过软件计算提前开始辅助加热的预加热时间。要实现辅助加热提前时间的精确计算,最好是采用连续液位传感器,但考虑系统成本,本设计仍采用分段式液位传感器(通过软件来提高精度),在水位显示上也仍采用分段显示。水位检测部分的硬件连接如图 2-3 所示。图 2-3 水位监测及显示接口电路检
9、测原理如下:当水箱中无水时,8 个非门均由 1M 欧姆电阻上拉成高电平, 所以图中各“非”门(CD4069) 输出均为低电平,LED1 LED8 均不亮。当水位高于“非”门 1 的输入探针时,由于水的导电作用,使“非”门 1 的输入变为低电平,所以其输出变为高电平,LED 点亮,依此类推。随着水位的上升,各“非”门输出相继为高电平,LED 依次点亮。这里要注意的是上拉电阻不能选择太小,因为水的电阻在 100k8 左右,所以上拉电阻选择太小的话,将在水位升高时,无法把“非”门输入端拉成低电平。实验表明, 上拉电阻选择在 500k1M 欧姆左右能很好地满足电路的工作要求。为了使 89C52 随时能
10、够读出当前的水位情况,这里选用 74LS244 作为状态输入缓冲器。蓄水箱温度检测电路采用 DS18B20 芯片使其换成脉冲信号,送到 89C52 的 I/O 口(编程为计数器工作模式),通过测量输出脉冲频率的大小来换算成水温高低信号。2.1.42.1.4 DS18B20DS18B20 与单片机接口电路设计与单片机接口电路设计基于 DS18B20 多点温度测量系统以 AT89C51 为中心器件,以 KEIL 为系统开发平台,用 C 语言进行程序设计,以 PROTEUS 作为仿真软件设计而成的。DS18B20 是智能温度传感器,它的输入/输出采用数字量,以单总线技术,接收主机发送的命令,根据 D
11、S18B20 内部的协议进行相应的处理,将转换的温度以串口发送给主机。主机按照通信协议用一个 IO 口模拟 DS18B20 的时序,发送命令(初始化命令、ROM 命令、功能命令)给 DS18B20,并读取温度值,在内部进行相应的数值处理,用图形液晶模块显示各点的温度。在系统启动之时,可以通过 44 键盘设置各点温度的上限值,当某点温度超过设置值时,报警器开始报警,从而实现了对各点温度的实时监控。每个 DS18B20 有自己的序列号,因此本系统可以在一根总线上挂接了 4 个DS18B20,通过 CRC 校验,对各个 DS18B20 的 ROM 进行寻址,地址符合的DS18B20 才作出响应,接收
12、主机的命令,向主机发送转换的温度。采用这种 DS18B20寻址技术,使系统硬件电路更加简单。如图 2-4 图 2-4 DS18B20 与单片机接口电路2.1.42.1.4 键盘和显示接口电路的设计键盘和显示接口电路的设计 下图为 89C52 单片机 P1 口构成的中断方式 4*4 键盘电路。P1.0-P1.3 为行线,P1.4-P1.7 为列线,行线与 4 输入与门 74HC21 的一组输入端相连,输出端与外部中断INT1 相连。16 个键号 Ki(I=0-15)次序如图中标注。图 2-5 89C52 P1 口构成的 4*4 中断方式键盘 行列式键盘处理程序较为复杂,当有键按下时 74HC21
13、 输出端出现低电平请求中断;在中断服务程序中要再次确认是否真有键按下,真有键按下时,再查出是哪个键按下,把该键的键号送入堆栈保护,等待键释放后再将键号弹出 A 中。该键盘输入处理程序的出口状态是键号在 A 中。设计中断程序时,先在主程序中将中断系统初始化,并开中断。在试验演示中通常开中断都设置循环等待。键盘和显示电路是人机交互的重要手段。控制键是用户干预系统运行的唯一接口,也是用户比较关心的问题。为了实现控制器对时间与温度的设定及显示功能,串行显示电路采用串入并出芯片74LS164驱动4位数码管实现时间与温度的静态显示。该电路只使用89C52的3个端口,配接4片串入并出移位寄存器74LS164
14、 与1片三端可调稳压器LM317T。其中74LS164 的引脚Q0Q7为8位并行输出端;引脚A、B 为串行输入端;引脚CL K为时钟脉冲输入端,在CLK 脉冲的上升沿作用下实现移位,在CLK = 0 、清除端MR =1时,74LS164保持原来数据状态;MR =0 时,74LS164输出清零,其显示电路如图3-5。其工作过程如下:89C52的串行口设定在方式0移位寄存器状态下,串行数据由P3.0发送,移位时钟由P3.1 送出。在移位时钟的作用下,串行口发送缓冲器的数据一位一位地移入74LS164中。4片74LS164 串级扩展为4个8 位并行输出口,分别连接到4个LED显示器的段选端作静态显示
15、。需要指出的是,由于74LS164 无并行输出控制端,因而在串行输入过程中,其输出端的状态会不断变化,造成不应显示的字段仍有较暗的亮度,影响了显示的效果。以往的做法是在74LS164 的输出端加接4片锁存器或三态门,使移位寄存器串行输入数据时其输出端的变化不反映到LED上,待串行输入结束后再打开锁存器或三态门,将稳定的显示数据送给LED。 本设计电路的独特之处在于仅采用了1片三端可调稳压器LM317T,317T 的3、2 脚分别是电压输入、输出端,317T 的1脚是电压调整端,脚2输出电压随脚1电压而变化。脚1与接地电阻之间并一个NPN 三极管,它的基极受P1.7 口线控制,串行输入时P1.7
16、 口线为高电平,三极管饱和导通使317T 的脚1约为0.3 V,脚2输出电压随之下降到1.5 V,不足以使共阳极LED发光,故此时串行输入的影响不会反映到LED上;串行输入结束后,使P1.7口线为低电平,三极管截止,脚2输出电压因脚1电压增高便上升到2.0V使LED正常发光。因此,1片三端可调稳压器LM317T起到了4片锁存器的作用使LED 显示不会闪烁。本电路的另一优点是通过可调电位器P1可在线调整脚2的输出电压,使LED的显示亮度均匀可调,而且省掉了大量的LED限流电阻。2.1.52.1.5 光电隔离与辅助加热电路光电隔离与辅助加热电路图 3-5 为太阳能热水器光电隔离与辅助加热电路设计。
17、当室外光强不足(阴天、下雨)时,对水箱的水提前加热是很必要的,这一电路恰好能完成这一功能。工作原理:当单片机 89C52P2.1 口输出高电平时,三极管 T1 导通,致使发光二极管发光,同时光敏三极管 T2 导通,继电器闭合,电阻丝 R1R4 发热,这样就完成了加热任务,此电路虽然简单,但在太阳能热水器中是必不可少的。图 2-7 辅助加热电路图3 3 软件设计软件设计3.13.1 软件设计原理及设计所用工具软件设计原理及设计所用工具热水器不论在什么样的天气里,都能够在设定的时间向用户提供设定温度的热水,从而给用户带来便利。当控制器在设定的时间使水温达到设定温度时,将通过声光报警提醒用户。根据这
18、一要求,控制器软件设计采用模块化结构,包括主程序、键盘中断子程序、DS12887 更新周期结束中断子程序、LED 显示子程序和提前加热时间计算子程序等。系统主程序主要完成温度和水位的检测以及进行辅助加热时间预算和一些初始化功能。在主程序中采用了查表方法进行辅助加热提前量预算。系统主程序流程图如图所示。图 3-1 系统程序流程图对于温度和时间设定, 每次设定结束后, 就将设定值存入 DS12887 的非易失性 RAM中,下次开机时进行读取。这样作至少有两个优点:一是系统在不进行设定时,就认定该设定值和先前一次一样,解决了每次开机总要从头设定的问题,另一个是若系统在运行中间停电而再次来电时,可以不
19、用重新设定, 就能按原设定值对温度进行控制,增强了控制器适应外界变化的能力。对提前加热时间的计算,则是系统能否实现预定功能的重要一环。因为系统采用分段式水位检测,若采用能量守恒的方法对提前加热时间进行预算,也同样得不到精确的结果。为了避开繁琐的计算过程,本系统中采用了模糊控制思想,使用了如下一些控制语句:IF 水位高 AND 温度差大 THEN 加热时间长IF 水位适中 AND 温度差适中 THEN 加热时间适中IF 水位低 AND 温度差低 THEN 加热时间少采用这种思想后,可以用实验方法获得各种情况下需要加热的时间, 编制成表格。使用时,只要查表获得提前加热时间就行了。显然,表格分得越细
20、,控制就越准确。本控制器采用温差每等于 5为一格, 就能满足控制要求了。为了减小误差,试验表明,可以采用如图 的方法。 图 3-2 水位监测处理示意图实验中,用水位达到 B1 时的结果代替水位达到 A1 时的结果,B2 代替 A2,B3 代替A3,B4 代替 A4。这样,CPU 读入的 A1 水位查表后得到的预加热时间是实验中水位在B1 处的时间。经过这种处理,会把由于分段检测而产生的计算误差减小一半,由原来的 h 变成了 h/2(h 为分段水位检测间隙)。如果水箱水深为 40cm,分 8 段检测,此种处理方法的计算将使水位误差由原来的 5cm 变成了 2.5cm。这种误差对于民用的热水器来说
21、,已完全能够满足要求了。3.23.2显示子程序显示子程序分析表明,移位寄存器74LS164仅有串入并出作用没有译码功能。因此,在编写显示驱动程序之前,首先需要计算列写出与本电路对应的LED段选码 ,然后由89C52的P3.0口送入74LS164的串行输入端,再并行输出到LED 的段选端。需要指出的是,上面显示电路采用TOS28106BHK型号的共阳极LED显示器,根据PCB印制线路板的连线方便,其LED的8个段选端与74LS164的并行输出口即8根段选线的连接没有遵照通常的规律,而是如图3-5所示的段排列为7、6、4、2、1、9、10、5,相应的段选码也要重新计算,如显示字符0的段选码为11H
22、。电路中设计了4位LED显示器,其功能为:左首位为百位数或标志位,左二位为十位数,左三位为个位数,左四位为小数点后的十分位数。据此,给出如图所示的显示子程序框图。 图 3-3 显示子程序框图3.33.3 主程序:主程序:ORG 000HJMP STARTSTART: Curtemp EQU 10H ;Curtemp 存储地址 Pretemp EQU 11H ;Pretemp 存储地址MOV TMOD, #53H LCALL InitDS12887 ;初始化 DS12887 时钟芯片 SETB EA ;开 CPU 中断 LCALL ReadTempandTime ;读温度时间设定值 LCALL
23、ReadWaterandPosition;读水位高度 CLR C ;C 清零 SUB Curtemp,pretemp JC OffheatHeatcontinue: LCALL FUZZY ;预算提前加热时间 LCALL DELAY LCALL Heat SJMP $OffHeat:CLR P2.1 RETI Heat: SETB P2.1 LCALL DELAY CLR C LCALL ReadTemp MOV A, Curtemp ADD A, #2H SUB A, Pretemp JNC KeepTemp JMP Heatcontinue LCALL KeeptempCON RETIIn
24、itDS12887: SETB P2。1 MOV DPTR, #0BH ;初始化 DS12887B 寄存器 MOV A, #22H ;置 DS12887 24 小时模式 MOVX DPTR, A ;允许报警中断禁止其它中断 MOV DPTR, #0AH ;初始化 DS12887 A 寄存器 MOVX A, #20H ;时钟频率 52.628KHZ,禁止 SQW MOV DPTR, #00H ;初始化时钟 MOV A, #00H MOVX DPTR, A ;秒 MOV DPTR, #02H ;分 MOV DPTR, A MOV DPTR, #04H ;时 MOV A, #12H MOV DPTR
25、, A RETIReadTempandTime: LCALL ReadTemp LCALL ReadTime RETI ORG 0013H JMP KeyBoardINTKeyBoardINT:LED显示子程序:DISI:SETB P1.7 ;灭显示MOV R0, #SBCDMOV A, R0 ;取出要显示的数ADD A, #2DH ;加上偏移量MOVC A , A+PC ;查表取出段选码MOV SBUF, A ;送出显示DL1:JNB TI, DL1 ;输出完否?CLR TI ;完,清中断标志INC R0MOV A, R0ADD A, #21HMOVC A, A + PCANL A, #OE
26、FH ;个位加小数点MOV SBUF, ADL2: JNB TI, DL2CLR TIINC R0MOV A, R0ADD A, #13HMOVC A, A+PCMOV SBUF, ADL3: JNB TI, DL3CLR TIMOV A, #0FFHMOV SBUF, ADL4: JNB TI, DL4CLR TICLR P1.7 ;亮显示RETSEGTAB:DB 11H,0D7H,32HDB 92H,0D4H,98HDB 18H,0D3H,10H,0D0H键盘输入主程序:MOV P1, #0FH ;键盘初始化,P1.0P1.3 置输入方式,P1.4P1.7 为 0 状态MOV IE, #84H ;开 CPU 中断,开 INT1 中断SJMP $ ;中断等待中断服务程序:ORG 0013 ;INT1 中断入口地址LJMP IO51K16 ;从中断入口转移键盘处理程序 IO51K16IO51K16: CALL D10MS ;延时 10 秒LCALL KEYIN ;调键输入检查子程序JNZ LKOUT ;有键输入,转查键号RETI ;无键输入,中断返回LKOUT: MOV R2, #0EFH ;首列扫描字写如 R2MOV R4, #00H ;首列偏移值如 R4CONU: MOV P1, R2 ;列扫描
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 硫化氢泄漏应急处置方法
- 2026年病案编码考试真题及答案
- 小学水电维修外包合同
- 建筑物下顶管施工专项方案
- 格力售后服务外包合同
- 海绵城市雨水花园施工工艺
- 医院布草洗涤外包合同
- 安宁护理健康知识
- 地下连续墙工程施工档案管理保证措施
- 河北省石家庄市张家口市2025-2026学年高二物理下学期5月期中联考试卷【含答案】
- 2023步长制药环境、社会与公司治理报告:学术机构与企业合作的ESG绩效评估
- 2025年湖北省高考物理真题卷含答案解析
- 化学社团课课件
- 航空运输地面服务员(民航货运员)职业技能鉴定经典试题含答案
- 2025年广东中山大学孙逸仙纪念医院基础与转化医学研究中心实验岗位招聘2人笔试历年专业考点(难、易错点)附带答案详解
- 校长三年任期述职汇报:五维聚力守初心 奋楫笃行育新篇
- DB42T 1713-2021 城市道路路面维修养护技术规程
- 外国公司绩效管理制度
- T/CI 477-2024石油化工企业数字化碳排放管理体系建设指南
- 2025届北京市中学国人民大附属中学数学八下期末质量检测试题含解析
- 25春国家开放大学《园艺植物栽培学总论》形考任务1-3+实验实习参考答案
评论
0/150
提交评论