1、本系统由键盘显示和温度控制两个模块组成,通过模块间的通信完成温度设定、实温显示、水温升降等功能。具有电路结构简单、程序简短、系统可靠性高、操作简便等特点。关键词:单片机,继电器,DS18B20,按键,数码显示,PID,PWM第1章 引言 在能源日益紧张的今天,电热水器,饮水机,电饭煲之类的家用电器在保温时,由于其简单的温控系统,利用温敏电阻来实现温控,因而会造成很大的能源浪费。但是利用AT89C51单片机为核心,配合温度传感器,信号处理电路,显示电路,输出控制电路,故障报警电路等组成,软件选用汇编语言编程。单片机可将温度传感器检测到的水温模拟量转换成数字量,显示于LED显示器上。该系统灵活性强
2、,易于操作,可靠性高,将会有更广阔的开发前景。1.1 水温控制系统概述能源问题已经是当前最热门的话题,离开能源的日子,世界将失去色彩,人们将寸步难行,虽然本设计是节省电能角度出发,而电能又是可再生能源,但是今天还是有很多的电能是依靠火力,核电等不可再生资源产生,一旦这些自然资源耗尽,我们将面临电能资源的巨大缺口,因此本设计从开源节流的角度出发,节省电能,保护环境。1.2 本设计任务和主要内容设计并制作一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。本设计主要内容如下: (1)温度设定范围为40
3、-90,最小区分度为1,标定温度1。 (2)环境温度降低是温度控制的静态误差1。 (3)用十进制数码管显示水的实际温度。 (4)采用适当的控制方法,当设定温度突变(由40提高到60)时,减小系统的调节时间和超调量。 (5)温度控制的静态误差0.2。第2章 系统硬件电路设计2.1 单片机控制系统原理图2-1 单片机控制系统原理框图2.2 温度采样电路系统的信号采集电路主要由温度传感器(AD590)、基准电压(7812)及A/D转换电路(ADC0804)三部分组成。如图:2-2。图2-2 信号采集电路2.2.1 温度传感器的选取目前市场上温度传感器较多,有一下几种:方案一:选用铂电阻温度传感器,此
4、类温度传感器线性度、稳定性等当面都很好,但其成本较高。方案二:采用热敏电阻,选用此类元器件有价格便宜的优点,但由于热敏电阻的非线性特性会影响系统的精度。方案三:选用美国Analog Devices公司生产的二端集成电流传感器AD590。其测量范围在-50-+150之间,满刻度范围误差为0.3,当电源电压在5-10V之间,稳定度为1%时,误差只有0.01。此器件具有体积小、质量轻、线性度好、性能稳定等优点其各方面特性都满足此系统的要求。比较以上三种方案,方案三具有明显的优点,因此选用方案三。2.2.2 温度传感器AD590测量范围在-50-+50,满刻度范围误差为AD590为电流型传感器温度没变
5、化1其电流变化1uA在35和95时输出电流分别为308.2uA和368.2uA。2.2.3 电路原理及参数计算温度采样电路的基本原理是采用电流型温度传感器AD590将温度的变化量转化为电流量,再将电流量转化为电压量通过A/D转换器ADC0804将其转换成数值量交由单片机处理。2.2.4 ADC0804性能描述ADC0804为8bit的一路A/D转换器,其输入电压范围在0-5V,转换速度小于100us,转换精度0.39%。满足系统的要求。如图2-3A/D转换电路。图2-3 温度转换电路2.3 温度控制电路此部分电路主要由光电耦合器MOC3041和双向可控硅BTA12组成。MOC3041光电耦合器
6、的耐压值为400V,它的输出级由过零触发的双向可控硅构成,它控制着主电路双向可控硅的导通和关闭。100欧电阻和0.01uF电容组成双向可控硅保护电路。控制部分电路图 如图2-4部分控制电路。图2-4 部分控制电路2.4 主机控制部分此部分是电路的核心部分,系统的控制采用了单片机89C52。单片机内部有8K单元的程序存储器及256字节的数据存储器。因此系统不必扩展外部程序存储器和数据存储器这样大大减少了系统的硬件部分。如图 2-5 主机控制部分。图2-5 主机控制部分2.5 键盘及数字显示部分在设计键盘/显示电路时,我们使用单片机2051作为电路控制电路的核心,单片机2051具有一个全双工的串行
7、口,利用此串行口能够方便的实现系统的控制和显示功能。键盘/显示电路如图2-6图 2-6 键盘/显示部分电路如图2-7中单片机2051的P1口接数码管道的8只引脚,这样易于度数码管的译码,使数码管能显示设计者所需的各数值、小数点、符号等等。单片机2051的P3.3、P3.4、P3.5接3-8译码器74L138,译码器的输出端和键盘,键盘扫描和显示器扫描同用端口这样能大大的减少单片机的I/O,减少硬件的花费。图 2-7 单片机2051连接图键盘的接法的差别直接影响到硬件和软件的设计,考虑到单片机2051的端口资源有限,所以我们在设计中将传统的4*4的键盘接成8*2的形式(如图2-8),键盘的扫描除
8、了和显示公用的8个端外,另外的两个端直接和2051的P3.2和P3.7相连。图 2-8 键盘接线如图2-8的接法已经完全用了单片机的15个I/O口,有效的利用了单片机的资源。第3章 系统的软件设计3.1 系统的主程序设计软件设计流程图如下:图3-1 主程序流程图3.2 主程序主程序在附录中。3.3 键盘和显示程序设计键盘和显示程序流程图如下:图3-2 键盘显示程序流程图3.4 键盘和显示程序具体程序在附录中。总 结首先,通过这次课程设计,在很大程度上提高了自己的独立思考能力和单片机的专业知识,熟悉了下载调试等一系列的操作。我设计系统的主要思想符合目前节省能源和国内实际的应用特点和要求,采用计算
9、机控制的形式,实现对水温的自动控制。通过本设计的思考,更加加深了对单片机的认识,熟练了单片机的编程,更对当前的温度传感器有了更深刻的认识和了解,但是由于此系统依赖温度传感器,因而对温度传感器的线性和稳定性等诸多方面有着严格的要求,但是传感器的性能越好,相对而言其价格也就越高,因而在此设计中,温度传感器还是存在遗憾,其次,由于采用了汇编语言,所以其编程过程复杂不易查错。最后,由于时间紧迫,本设计还有诸多地方需要改进。总的来说,收获很大。把书本知识应用到实际中,让我对书本中的理论知识有了更加深刻和立体的认识,同时,让我了解到动手实践的重要性,以后会更加注重理论与实践的结合。参考文献1张毅刚、彭喜元
10、、姜守达、乔立岩新编MCS-51系列单片机应用设计 哈尔滨工业大学出版社,2003.6 2胡汉才.单片机原理及接口技术.清华大学出版社,1996 3沈德金,陈粤初MCS-51系列单片机接口电路与应用程序实例北京航 空航天大学出版社,1990 4李建民.单片机在温度控制系统中的应用.江汉大学学报,1996.6 5何立民MCS-51系列单片机应用系统设计北京航空航天大学出版社, 1990 6李志全等.智能仪表设计原理及应用.国防工业出版社,1998.67杨素行,模拟电子技术基础简明教程,高等教育出版社,1985附 录 汇编程序主程序如下: ORG 0000HAJMP START ;主程序ORG 0
11、00BHAJMP TIMO ;T0中断子程序ORG 0023HAJMP RT ;串口中断接受子程序ORG 0100HSTART: MOV 50H ,#00H ;初始化设定温度 MOV 51H,#00HMOV 52H,#00HMOV 53H,#00HMOV 54H,#0C6H ;发送第五个数码管字形码CMOV TMOD,#01H ;T0工作在MODE1MOV TH0,#0ECH ;晶振12M,50ms中断一次MOV TL0,#78HSETB TR0MOV TOMD,#20H ;T1工作在MODE2MOV TH1,#0E6H ;设波特率MOV TL1,#0E6HSTE TR1MOV SCON,#5
12、0HMOV IE,#92H ;允许T0,R1中断MOV R6,#04H ;初始要接收的数据个数MOV R1,#50H ;初始要接收的其实地址MOV R4,#00H REY:MOV A,53HCJNE A,#00H,YESSJMP REY YES:MOV R3,#00H YES1:CLR P2.0 ;开始A/D转换CLR P3.6SETB P3.6ACALL DELAYJ1:MOVX A,R0 ACALL SJCL ;调用数据处理子程序ACALL DISPDJNZ R3,MMACALL FS ;调用串口发送子程序AJMP YES MM: AJMP YES1SJCL: MOV B,#60HMUL
13、ABMOV 61H,AMOV A,BADD A,#35ACALL L10MOV 60H,R5 ;存十进制高八位(个位和十位)MOV A,61HMOV B,#9MOV 61H,B ;存十进制低八位(小数点)RETL10:CLR C MOV R5,#00H ;初始化十进制转换的地位寄存器 MOV R4,#08H ;调整次数NEXT: RLC A MOV R2,AMOV A,R5ADDC A,R5DA AMOV R5,AMOV A,R2DJNZ R4,NEXTDISP: MOV A,60HANL A,#0F0H ;取D2的显示数据存入70HSWAP AMOV 70H,AMOV A,60H取D1的显示数据存入71HMOV 71H,A MOV 72H,61H ;取D0的显示数据存入72H MOV R0,#70H ;取相应的字形码分别存入55-57HMOV DPTR,#TABMOV A ,R0MOVC A,A+DPTRMOV 55H,AINC R0MOV A,R0MOV 56H,AMOV 57H,AMOV A,56HADD A,#80H ;在D1字形码上加小数点FS: MOV A ,R0PUSH AC