1、太阳能热水器控制电路设计一、系统设计1.设计原理太阳能热水器自动控制电路采用AT89S52单片机作为控制核心,外围加蜂鸣器控制电路、数码显示电路、水位检测电路、电机控制电路、按键电路、温度检测电路等。数码管实时切换显示当前温度与当前液位,当液位过高时,蜂鸣器报警,并且电机反转模拟排水过程;当液位过低时,蜂鸣器报警,并且电机正转模拟进水过程。本系统设计简单,成本低,性能优良,具有一定的稳定性和实用性。 三、硬件电路设计1.基本原理框图图一:原理框图(1)太阳能热水器控制装置主要组成由CPU、显示电路、按键电路、蜂鸣器电路、电机电路、液位检测电路、温度检测电路、电源电路组成,如图一。(2)太阳能热
2、水器控制装置的工作原理接通电源后,显示当前水位,水位被分为16个点。并且显示当前温度。液位显示与温度的显示切换进行。当水位显示低于或等于1时,蜂鸣器报警,并且电机正转,表示进水;当水位显示高于或等于15时,蜂鸣器报警,并且电机反转,表示排水。液位检测利用CD40512.各部分电路原理(1)最小系统最小系统电路如图二所示。图二:最小系统(2)显示电路采用LED数码管显示,该方案具有实现容易、发光亮度大、驱动电路简单等优点,其可靠性也优于LCD的显示。由6个数码管和6个74LS164组成,采用串行静态显示的方法。将数码管的8个输入端与74LS164的输出端Q0Q7相连。P1.0和74LS164的C
3、LK连接,作为时钟;P1.4接74LS164的A端,作为显示数据的输入端。显示电路如图三所示。图三:显示电路但是使用74LS164串显会出现消隐的问题。为了消除消隐,那么就必须在硬件上与软件上结合来消除消隐的问题。消隐电路如图四所示。软件上,在传数据时,先传一个高电平,直到数据传完再传送一个低电平即可。图四:消隐电路(3)按键电路键按下后,进行温度及液位检测的切换,也可不使用。按键电路如图五所示。图五:按键电路(4)蜂鸣器电路以Q51的基极作为蜂鸣器控制信号的输入端与单片机I/O口相连,主要由蜂鸣器、9013与9014两个三极管及5.1K偏置电阻组成。当输入端为高电平时,Q51导通,Q52截止
4、,蜂鸣器回路开路,蜂鸣器不响;当输入端为低电平时,Q51截止,Q52导通,蜂鸣器回路闭合,蜂鸣器发出响声。蜂鸣器电路如图六所示。图六:蜂鸣器电路(5)电机电路控制信号从IN端输入并经前级缓冲后送入片内控制器,然后由控制部分处理并驱动晶体管,最后由OUT端输出方波信号以控制电机的运行。触发使能端口(CE)的作用是分别对两个通道的输出进行控制,当CE端为低电平时,无论有无输入控制信号,输出端OUT始终呈高阻抗状态。因此,要使FAN8200控制器输出工作正常,器件的触发使能端必须为高电平。当CE为高电平时,IN1为1时,电机正转;IN1为0时电机反转。电机电路如图七所示。图七:电机电路(6)液位检测
5、电路液位检测控制电路,由两片CD4051与CD4066构成,但是由于考虑到成本,并且所设计的电路I/O口使用并不是太多,所以,可以将CD4066省略,仅仅用两片CD4051即可实现功能。它是一种单片、COMS、8通道开关。该芯片由DTL/TTL-COMS电平转换器,带有禁止端的8选1译码器输入,分别加上控制的8个COMS模拟开关TG组成。例如当检测到液位在端点4位置时,0、1、2、3、4点被没过,与公共端之间形成水电阻,由于水电阻阻值非常的笑,所以这几点的电平被拉低。此时就可以确定在ABC点读到的数为“100”此时就可以通过单片机计算得出液位的高度。液位检测电路如图八所示。图八:液位检测电路(
6、7)温度检测电路采用DS18B20数字温度传感器。它是DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、搞干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。它具有3引脚TO92小体积封装形式,温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与多个DS1
7、8B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。根据设计要求,DS18B20硬件电路的链接非常简单,仅一根电源线,一根地线和一根数据线即可。温度检测电路如图九所示。图九:温度检测电路(8)电源电路由于电源电压为5V,所以电路中省去了稳压电源部分的电路,直接使用电源电压即可。在电源与地之间加滤波电容,稳定输入到芯片上的电源电压。电源电路如图十所示。图十:电源电路四、软件设计2.I/O口分配I/O口P3.0P3.1P3.3P3.5P1.1分配74LS164数据端74LS164时钟电机转向控制端蜂鸣器控制端4051-AI/O
8、口P1.2P1.3P1.4P1.6P1.7分配4051-B4051-C4051-INHK1K23.软件流程图五、实现功能1.液位检测将水尺放进水中,通电之后,显示当前的水位。最低点水位为1,最高点水位为16。当水位低于点2时,显示H 02的同时蜂鸣器响,电机正转,模拟进水过程;直到水位高于点2后,蜂鸣器停止发声,电机不转。当高于水位点15时,显示H 15的同时蜂鸣器响,电机反转,模拟排水过程;直到水位低于点15后,蜂鸣器停止发生,电机不转。2.温度检测实时监测当前温度,与水位切换显示。例如显示为C 27.6。七、参考文献1 阎石 数字电子技术2 胡汉才.单片机原理及接口技术.清华大学出版社,1
9、9963 童诗白.模拟电子技术基础。高等教育出版社,2001附录一 程序;标志;32H水位标志;BAOZHIBIT 33H;显示标志;33H=0显水位,33H=1显温度;DINGSBIT 34H;34H=0定时,34H=1计数;alarmflagBIT 24H;蜂鸣器报警标志;74164A BIT P3.0;164数据端;CLK BIT P3.1;164时钟;CE BIT P1.5;电机控制端为1;M1 BIT P3.3;P3.3=1电机正转,反之反转。;SPK BIT P3.5;蜂鸣器控制;LA BIT P1.1;4051点A;LB BIT P1.2;4051点B;LC BIT P1.3;4
10、051点C;4051INH BIT P1.4;4051的INH端;K1 BIT P1.6;按键1(水位检测状态);K2 BIT P1.7;按键2(温度检测状态) ORG 0000HLJMPMAINORG 0100HMAIN:MOV SP,#60HCLR P1.5;电机不转MM3:MOV 50H,#20H;水位显示时长MM33:LCALL SWEI;水位检测 DJNZ50H,MM33 LCALL XIANC;显C SJMP MM1 MM1:MOV 50H,#10H;温度显示时长MM2 : LCALL WDCJ;温度检测DJNZ 50H,MM2LCALL XIANH;显HSJMP MAINWDCJ
11、:LCALL GET_TEMP;采集温度值以16进制数,低位放R7,高位放R6CHENGFA: MOV R3,#0AH;0AH乘以温度值R7R6,结果在R2R3R4R5中,R2最高字节 MOV R2,#00H LCALL MULDCHUFA: MOV R6,#00H;被除数在R2R3R4R5中,R2最高字节,除数在R6R7,R6高字节,结果在R2R3。 MOV R7,#10H MOV R2,#00H MOVR3,#00H LCALLDIVD MOV 20H,R3;R3低字节 MOV 21H,R2 ACALL YASO;压缩16进制数变成压缩10进制数 ACALL L11; 压缩-非压缩 ACA
12、LL DAIM; 代码-段码 ACALL XIAN; 显示 LCALL XIANC LCALL XIAOSH LCALL DEL2 RETGET_TEMP:CLR PSW.4 CLR PSW.3;设置工作寄存器当前所在的区域 CLR EA;使用DS1820一定要禁止任何中断产生 LCALL INT ;调用初始化子程序 MOV A,#0CCH LCALL WRITE ;送入跳过ROM命令 MOV A,#44H LCALL WRITE ;送入温度转换命令 LCALL INT ;温度转换完全,再次初始化DS1820 MOV A,#0CCH LCALL WRITE ;送入跳过ROM命令 MOV A,#
13、0BEH LCALL WRITE ;送入读温度暂存器命令 LCALL READ MOV R7,A ;读出温度值低字节存入R7 LCALL READ MOV R6,A ;读出温度值高字节存入R7 SETB EA RETINT: CLR EA ;初始化DS1820L0: CLR P3.4 ;DS1820总线为低复位电平MOV R2,#200L1: CLR P3.4 DJNZ R2,L1 ;总线复位电平保持400USSETB P3.4 ;释放DS1820总线MOV R2,#30HL4: DJNZ R2,L4 ;释放DS1820总线保持60US CLR C;清存在信号 ORL C,P3.4JC L0;
14、存在吗?不存在则重新来。 MOV R6,#80HL5: ORL C,P3.4 JC L3 DJNZ R6,L5 SJMP L0L3: MOV R2,#240L2: DJNZ R2,L2 RETWRITE:CLR EA MOV R3,#8WR1:SETB P3.4 MOV R4,#8 RRC A CLR P3.4WR2:DJNZ R4,WR2 MOV P3.4 ,C MOV R4,#20WR3:DJNZ R4,WR3 DJNZ R3,WR1 SETBP3.4 RETREAD:CLR EA MOV R6,#8;连续读8个BITRE1:CLR P3.4 ;读前总线保持为低 MOV R4,#4 NOP
15、 SETB P3.4 ;开始读,总线释放RE2:DJNZ R4,RE2;持续8US MOV C,P3.4 ;从臘S1820总线读得一个BIT RRC A; MOV R5,#30RE3:DJNZ R5,RE3;持续60US DJNZ R6,RE1;读下一个BIT SETB P3.4 ;重新释放DS1820总线 RETYASO:MOV R0, #20H;压缩16进制数变成压缩10进制数 MOV R7, #02H MOV R1, #28H LCALL LY1 RETLY1:MOV A, R0 MOV R5, A MOV A, R1 MOV R6, A MOV A, R7 INC A MOV R3,
16、A CLR ALY2: MOV R1, A INC R1 DJNZ R3, LY2 MOV A, R7 MOV B, #08H MUL AB MOV R3, ALY3:MOV A, R5 MOV R0, A MOV A, R7 MOV R2, A CLR CLY5:MOV A, R0 RLC A MOV R0, A INC R0 DJNZ R2, LY5 MOV A, R6 MOV R1, A MOV A, R7 MOV R2, A INC R2LY4:MOV A, R1 ADDC A, R1 DA A MOV R1, A INC R1 DJNZ R2, LY4 DJNZ R3, LY3 RE
17、TL11: MOV R1,#10H;压缩10进制数变成非压缩十进制数 MOV R2,#03H MOV R0,#28HL12: MOV A, R0 ANL A, #0FH MOV R1, A INC R1 MOV A, R0 SWAP A ANL A, #0FH MOV R1, A INC R0 INC R1 DJNZ R2, L12 RETDAIM: MOV R2, #05H;代码变段码码 MOV R0, #10H MOV R1, #20HL12F: MOV A, R0 ADD A, #06H MOVC A, A+PC MOV R1, A INC R0 INC R1 DJNZ R2, L12F
18、 RETDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DB 00H,40H,73H,03H,18H,23H,1CH,3DH,76H,0FH,1EH,38HXIAN: CLR P3.2 MOV R0, #20H;显示 MOV R2,#05HLP1: MOV R1,#08H MOV A,R0LP2: RLC A MOV P3.0,C CLR P3.1 SETB P3.1 DJNZ R1,LP2 INC R0 DJNZ R2,LP1SETB P3.2 RETDEL:MOV R5,#14HY3: MOV R6,
19、 #0FFHY2: MOV R7, #0FFHY1: DJNZ R7, Y1DJNZ R6, Y2DJNZ R5,Y3 RETXIAOSH: MOV A, 21H;小数点程序 ORL A, #80H MOV 21H, ALCALLXIAN RETLBB: MOV A, #10H;清显示 MOV R0, #10H MOV R2, #05HLB1: MOV R0, A INC R0 DJNZ R2, LB1 RET BEING: MOV 10H,#10H MOV 11H,#10H MOV 12H,#10H MOV 13H,#10H MOV 14H,#18H ACALL DAIM; 代码-段码 AC
20、ALL XIAN; 显示 RETXIANC: ;MOV 10H,#10H ; MOV 11H,#10H ;MOV 12H,#10H MOV 13H,#10H MOV 14H,#0CH ACALL DAIM; 代码-段码 ACALL XIAN; 显示 RETMULD:MOV A,R3 ;双字节乘法子程 MOV B,R7 MUL AB MOV R4,B MOV R5,A MOV A,R3 MOV B,R6 MUL AB ADD A,R4 MOV R4,A CLR A ADDC A,B MOV R3,A MOV A,R2 MOV B,R7 MUL AB ADD A,R4 MOV R4,A MOV A
21、,R3 ADDC A,B MOV R3,A CLR A RLC A XCH A,R2 MOV B,R6 MUL AB ADD A,R3 MOV R3,A MOV A,R2 ADDC A,B MOV R2,A RETDIVD:CLR C;双字节除法子程 MOV A,R3 SUBB A,R7 MOV A,R2 SUBB A,R6 JC DVD1 SETB OV RETDVD1: MOV B,#10HDVD2:CLR C MOV A,R5 RLC A MOV R5,A MOV A,R4 RLC A MOV R4,A MOV A,R3 RLC A MOV R3,A XCH A,R2 RLC A XCH
22、 A,R2 MOV F0,C CLR C SUBB A,R7 MOV R1,A MOV A,R2 SUBB A,R6 ANL C,/F0 JC DVD3 MOV R2,A MOV A,R1 MOV R3,A INC R5DVD3:DJNZ B,DVD2 MOV A,R4 MOV R2,A MOV A,R5 MOV R3,A CLR OV RETSWEI: MOV 32H,#10H;把16送32HSW1:MOV A,32H ;A=16DEC A;减1 RL A;乘以2 ADD A,#0E1H;保护没有用的位 MOV P1,A;输出扫描值 NOP NOP NOP NOP NOP NOP JNB P
23、1.0,SW11;为0该点在水中应显示,否则点位减1 MOV A,32H CLR C SUBB A,#01H JC SW11 MOV 32H,A SJMP SW1 LCALL DEL RETSW11:LCALL DEL2 MOV 20H,32H;MOV 21H,#00H ACALL YASO;压缩16进制数变成压缩10进制数 ACALL L11; 压缩-非压缩 LCALL DAIM LCALL XIAN LCALL XIANHBJ:CLR P1.5 SETB P3.5 MOV A,32H CLR C SUBB A,#01H JC SWL MOV A,32H CLR C SUBB A,#0FH
24、JNC SWH RETSWL:CLR P3.5;水位低报警 SETB P1.5;电机正转SETB P3.3 LCALL DEL SETB P3.5 CLR P1.5 RETSWH:CLR P3.5;水位低报警 SETB P1.5;电机反转 CLR P3.3 LCALL DEL SETB P3.5 CLR P1.5 RET XIANH:MOV 12H,#10H MOV 13H,#10H MOV 14H,#18H ACALLDAIM; 代码-段码 ACALLXIAN; 显示 RETDEL2: MOV R5,#80HY33: MOV R7, #0FFHY11: DJNZ R7, Y11 DJNZ R5,Y33 RET EN附录一 原理图
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100