1、目录目录11前言11.1设计的目的及意义11.2国内外发展现状及研究概况11.3 设计的主要技术指标与参数21.4 设计的主要内容22总体方案设计32.1方案比较32.2方案论证42.3方案选择43单元模块电路设计53.1电路组成及工作原理53.2模块电路的设计63.2.1信号采集及放大模块设计63.2.2 单片机最小系统73.2.3模数转换电路设计83.2.4人机交互界面设计93.2.4水位探测系统的设计103.2.5加热控制系统的设计113.2.6电源电路的设计123.3电路参数的计算及元器件的选择133.4特殊器件的介绍143.4.1 STC89C52单片机的介绍143.4.2 ICL7
2、135模数转换器的介绍163.4.3 LCD1602液晶显示屏的介绍183.4.4 TL084运算放大器介绍194系统软件设计214.1 系统主程序设计214.2 按键处理子程序设计224.3温度检测子程序设计235系统调试245.1硬件调试245.2软件调试246系统功能和指标参数256.1系统能实现的功能256.2系统指标参数测试257结论268总结与体会279参考文献28附录一 相关设计图29A 饮水机温控系统电路图29B 饮水机温控系统PCB图301前言1.1设计的目的及意义随着电子技术的发展,特别是大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科
3、学研究得到了质的飞跃,那么单片机技术的出现则是给现代工业控制领域带来了一次新的革命。单片机的应用领域也越来越广泛,特别是在工业控制和仪器仪表智能化中扮演着极其重要的角色。过去经常采用模拟电路、数字电路实现的电路系统,现在相当大一部分可以用单片机予以实现,传统的电路设计方法已演变成为软件和硬件相结合的设计方法。在实际应用中,单片机经常要与各种传感器相结合组成一定的应用系统,以实现系统的自动检测与控制。单片机在电子产品中的应用已经越来越广泛,在很多电子产品中也用到了温度检测和温度控制。目前广泛使用的饮水机,具有价格低廉,制造简便等优点。但是随着用户长时间使用,这些饮水机功能单一、能耗较大、长时间饮
4、用饮水机的水对健康不利等缺点逐渐暴露出来。此次设计是基于单片机的温度控制系统。整个设计过程将使我巩固所学的本专业基础理论、专业知识和基本技能,增强综合运用所学知识与技术独立分析问题解决问题的能力;对饮水机的工作原理、元器件选择及电子仪器的常用设计方法等有比较深入的了解;进而掌握应用单片机进行电子线路设计的基本思想和方法。本设计完全面向实际的思想可以使我全面的了解电子设计的基本过程和基本工艺,并且对饮水健康的考虑也使得此次设计变的更加有意义。1.2国内外发展现状及研究概况当今社会,随着科技的进步,电子技术得到了飞速的发展与应用,数字系统的设计也有了很大的进步,如今运行速度快、在功能更加强大的基础
5、上更加便于使用携带也成了发展的方向。60 年代以来,在半导体器件和计算机技术发展的基础上,智能控制变的越来越简单,70 年代单片机产生使世界进入高智能,高效率,以及高可靠性的电子时代。目前饮水机的控制方式可分为普通控制型、智能感应型和微电脑控制型三类。普通控制型饮水机其加热和制冷均自动恒温控制,是目前用户使用最多的机型,并且其价位适中一般为首选。因而,本文在此基础上,做了一些改造使其更为人性化,比如说加热温度设置使能够满足用户的各种温度需求,还有防干烧措施和实时显示温度等现如今单片机的发展日新月异,各种新功能,新器件,新思想不断涌现。在国内外依旧以做嵌入式控制内核为主,而本文也是采用这样的一种
6、智能控制思想来实现饮水机的智能控制的,从而实现饮水机温度可控,节能,可视化等设计指标。1.3 设计的主要技术指标与参数1. 能检测饮水机加热体中的水量和水温并能用 LCD液晶显示屏实时显示水温。2. 水量低于设定值时禁止加热,防止干烧。3. 能够通过键盘任意设定饮水机的加热温度,同时设定两个快捷加热键,温水键可以把水加热到 60 度,开水键可以把水加热到 100 度并实时显示水温。4. 系统自动比较水温和系统设定温度,当水温低于设定温度10摄氏度时,加热器开始加热,当水温达到设定温度时,加热器停止工作。但当用户重新设定了饮水机的加热温度后无论水温是否低于设定温度10摄氏度饮水机都将水温加热到设
7、定值。1.4 设计的主要内容1. 方案比较及论证,查阅相关资料,找到设计电路的基本思路。2. 掌握基本测量原理。3. 根据需求和系统的功能,逐级划分模块,明确各模块之间的数据流传递关系。理解工作原理,绘制原理框图及单元电路设计。4. 确定软件开发环境,选择设计语言,完成模块功能设计,并分别调试通过。5. 软硬件联调,将各模块有机的结合起来,组成一个完善的系统。6. 绘电路原理图、PCB图,列元件明细表,整理及分析有关数据。2总体方案设计通过查阅大量相关技术资料,并结合自己的实际知识,我主要提出了两种技术方案来实现系统功能。下面我将首先对这两种方案的组成框图和实现原理分别进行说明,并分析比较它们
8、的特点,然后阐述我最终选择方案的原因。2.1方案比较方案一是使用简易的温控系统,这也是现在绝大多数低端饮水机采用的温度控制系统,它一般使用像“纽扣”大小的“温度继电器”,内部是由双金属片制成的温度敏感“开关”,温度到达一定值时会断开电路,饮水机停止加热。当温度降低的时候双金属片闭合,电路接通,饮水机开始加热,元件一般装在金属“水胆”外壁上。另外还设有一个100摄氏度的温度继电器 ,断电后需要手动开启,此温度继电器主要用来防止加热体干烧。 方案二是经过对设计要求的分析我们可以基本确定下设计方案的雏形,即以单片机为核心,外围围绕温度传感器,调理电路,AD转换器,水位探测器,加热控制器,键盘电路和显
9、示电路等。通过软件编程实现对各硬件的控制和通信,进而实现对加热器的控制,实现设计要求。在此我们可以选用高性价比的STC89C52单片机,完全可以满足设计要求并能节省设计成本。我们选用防水型的温度传感器LM35DZ,首先此款传感器的温度怒测试范围是0100摄氏度,对于测试水温来说刚好能满足要求,这也提高了温度的测量精度。再次,LM35DZ 具有非常高的市场普及率,有各种各样的封装形式所以适合我们的选用。水位监测由于这里只需要定性的测量不需要定量测量,所以我们直接采用一根金属棒接于单片机的的一个引脚来判断饮水机是否有足够的水位。图2.1 方案二的原理框图2.2方案论证首先两种方案都是可行的,且都有
10、各自的优缺点,下面就分别介绍:第一种方案采用温度继电器,温度继电器成本低廉,易更换,且完全实现了硬件控制无需软件设计,简化了设计流程。由于纯硬件的设计必然缺乏智能性,不能设定加热水温,人机交互方面欠缺。另一方面控制精度差,一般有上下 23 度的误差。另外饮水机一般都是有两个温度继电器,一个是控制热水温度的,大概在 90 左右度,是自动断电自动复位的,另一个是极限温度控制器,大概在 100 左右度,断电后是手动复位的,此温度继电器主要用来防止加热体干烧。这种控制方式简单,温度继电器可以直接参与加热控制。但此方法智能控制水平较低不能体现出设计的核心思想方案二的优点是实现了高精度,温度显示,使用了L
11、CD1602低功率液晶显示,并带有键盘控制,防干烧处理,人机交互方面做得比较好。另一方面,目前单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入单片机,由单片机对测量信号进行处理并根据相应的数据关系显示温度和控制饮水机的加热方式 。单片机控制适合于功能比较简单的控制系统,而且其具有成本低,功耗低,体积小算术运算功能强,技术成熟等优点。但其缺点是外围电路比较复杂,编程复杂。使用这种方案会给系统设计带来一定的难度。2.3方案选择基于实现了高精度,加热温度设定,温度显示,低功率,防干烧处理,综合以上二种方案,最终选择了方案二。3单元模块电路设计本节主要介绍系统各单元模块的具体功能、电路结构
12、、工作原理、以及各个单元模块之间的连接关系;同时本节也会对相关电路中的参数计算、元器件选择、以及核心器件进行必要说明。3.1电路组成及工作原理家用饮水机温度控制系统由温度采集电路,模数转换器,水位探测器,LCD 显示电路,键盘电路,加热控制器等组成。单片机:完成监控系统数据采集过程、采集方式的控制。是整个系统的核心处理器,单片机首先把通过传感器测到的现场温度与预先设置的温度进行比较,如果大于或小于预先设置值,就输出信号去控制加热器的工作,从而实现温度控制与此同时将温度数据传输给 LCD 显示器,并对水位探测器的反馈信号进行处理从而实现防止干烧的发生。温度传感器:温度传感器将加热体中的温度采集,
13、经过模数转换变换成数字数据供单片机使用,在设计过程中尽量采用集成模数转换功能的传感器,这样一来可以极大的减少设计工作量,并且可靠性也将会有比较大的提高,这种传感器在实际生产中有这很广泛的应用。水位探测器:水位探测器主要是用来防止加热体干烧,在设计过程中可以根据需求将其简化成能定性测量水位是否足够即可,在这里我们要尽量的简化设计。键盘电路:键盘电路用来设置加热温度,与单片机通信,加热模式控制信号传送给单片机供其与温度传感器所提供的数据进行比较决定是否继续或停止加热。显示电路:实时显示加热体内水温和设定温度,指示灯显示饮水机的工作状态,当发生干烧的时候LCD显示警告,指示灯全亮,提醒用户饮水机需要
14、加水了。 加热控制器:弱电低压信号驱动强电 220V 电流对加热体内水进行加热控制,是整个设计的与加热体相结合的重要模块,设计方案要遵循安全可靠的要求。电路系统框图如下。单 片 机数据采集电路ADC4*4键盘电路水位探测电路LCD显示电路加热控制器 图3.1系统框图从图3.1的系统框图可以看的出温度传感器信号,键盘电路信号,水深探测器信号均为饮水机温控系统的输入信号而显示电路信号,加热控制信号则为饮水机温控系统的输出信号。系统框图也充分的体现出了单片机作为整个系统的核心部件的这一理念。所有的外围的设备围绕单片机作为单片机的功能模块与单片机进行信息交换和通信。核心部件单片机对所有的外围设备数字温
15、度传感器、键盘电路、水位探测器等器件反馈的信息在软件的设定下进行综合分析,发出指令信号控制加热控制器和 LCD 显示器的工作状态。设计框图作为整个设计方案的灵魂将自始至终的指导设计的全过程,在以后的设计中将完全按照框图所列的模块进行分模块设计。这样一来使整个设计简化为六部分,各部分又可以单独的进行设计,这样一来通过对各个模块的多种方案进行分析比较确定最佳选择并将其作为最终选择,最后将各模块的最佳方案进行组合得到我们的最终设计方案。3.2模块电路的设计本系统主要分为6个单元模块,它们分别是:信号采集及放大模块、单片机最小系统、模数转换模块、人机交互界面模块、水位探测模块、加热控制模块。各单元模块
16、功能及相关电路的具体说明如下。3.2.1信号采集及放大模块设计从以下几方面进行说明:1、该模块的具体功能是将温度信号转变为电信号并将电信号进行处理。2、该模块的组成:防水型LM35DZ温度传感器、TL084组成的仪用放大器、低通滤波器。3、工作原理:LM35DZ温度传感器的输出电压会随温度的变化而变化从而能将温度信号转换为电信号,再通过仪用放大器对采集到的电信号进行放大,最后通过低通滤波器对信号进行滤波处理。4、模块的结构框图仪用放大器饮水机加热箱温度信号温度传感器图3.2 信号采集及放大模块结构框图5、模块的具体电路图3.1.2 信号采集及处理模块电路图3.2.2 单片机最小系统主控制电路是
17、以单片机为核心的控制电路。我们在这里选用 STC89C52 单片机。单片机芯片工作时,必需加一个最小系统。最小系统中主要包括复位电路和时钟电路两大部分。单片机最小系统的电路图如下。图3.3 单片机最小系统1、复位电路单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。常用的复位电路有四种方式:(1)上电复位电路(2)按键复位电路(3)脉冲复位电路(4)兼有上电复位与按键复位的电路。由于考虑到结构和成本等原因,决定选用兼有上电复位与按键复位的
18、电路。该复位电路工作原理为:在通电瞬间,在RC电路充电过程中,RST端出现正脉冲,保证RST引脚出现10 ms以上稳定的高电平,从而使单片机复位。在电路图中,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。也就是说在电脑启动的0.1S内,电容两端的电压时在03.5V增加。这个时候10K电阻两端的电压为从51.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V1.5V。在5V正常工作的51单片机中小于1.5V的电压信
19、号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位。2、时钟电路时钟电路用于产生单片机工作时所必需的时钟信号。在MCS51单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方式。本设计为了简化电路,使用内部方式,须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF,晶振的频率取值在1.2MHz12MHz之间。对于外接时钟电路,要求
20、XTAL1接地,XTAL2脚接外部时钟,对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于12MHz即可3.2.3模数转换电路设计从以下几方面进行说明:1、该模块的具体功能是当有信号输入的时候将模拟信号转换为数字信号,再将数字信号送给单片机,单片机对数据进行处理产生显示电路的驱动信号,并接受键盘的输入信号进行相应的控制。2、该模块的组成:ICL7135转换电路、74HC74组成的时钟分频电路。3、工作原理: STC89C52的端口P3.2、P3.4、P3.5、ALE控制ICL7135的模数转换并将转换后的数据通过串行输入到单片机。单片机对被测量信号进行处理并根据相应的数据和控制
21、信号关系译码显示出水温。ICL7135为AD转换芯片,将输入模拟信号转化为数字信号。单片机的ALE引脚经分频电路四分频后给ICL7135正常工作提供时钟信号。4、模块的结构框图经放大处理的信号A/D转换器STC89C52图3.4 模数转换电路结构方框图5、模块由AD转换电路和时钟分频电路两部分组成,如下图。图3.5 AD转换电路图图3.6 时钟分频电路图3.2.4人机交互界面设计该模块的具体功能:实现键盘控制和温度显示,利用键盘给STC89C52提供控制信号,让单片机执行相应的数据处理和输出,以驱动LCD液晶显示屏显示、加热器的工作方式和指示灯的亮灭。当键盘有输入信号时,单片机根据不同的信号执
22、行不同的操作包括显示加热温度、开启加热、关闭加热和指示灯的亮灭。LCD液晶显示屏收到单片机的驱动信号后进行显示相应的数据。模块的具体电路图如下,其中J4为4*4矩阵键盘的接口,J3为LCD1602的接口。D7D10分别为开水加热指示灯、温水加热指示灯、停止加热指示灯和模拟加热控制器工作状态的指示灯。图3.7人机交互界面模块电路图3.2.4水位探测系统的设计在饮水机加热体中无水或水量极少的情况下继续对其加热将会产生干烧这种现象。饮水的干烧是非常危险的。根据用户的反馈,饮水机干烧轻则产生异味影响饮水机的正常使用,严重甚至可能损坏电线的外层塑胶皮引发短路进而可能引起火灾。所以在设计过程中防干烧系统显
23、得尤为重要。下面我们来讨论使用较多的几种防干烧设计方案。第一种方案:饮水机加热体可以设计为排水口的位置高于发热管,就算怎么烧也无所谓,因为里面的液体始终没排完(排水口的位置始终高于发热管),而且内胆是密封的,水蒸汽无处排,再且,当加热到一定温度时,电路会自动停止加热,所以相当一段时间内不会烧干。这种方法设计简单可行,但如果出现这种情况会反复加热浪费能源。第二种方案:如果不考虑成本的话可以采用“液位开关”来检测水位,“液压开关”就是用来控制液位的开关。从形式上主要分为接触式和非接触式。非接触式的如电容式液位开关;接触式的例如:浮球式液位开关;电极式液位开关,电子式液位开关电容式液位开关也可以采用
24、接触式方法实现。工业市场上有很多饮水机专用的“液压开关”,所以如果选用“液压开关”也是一种不错的选择。第三种方案:另外一些低端的饮水机一般会采用“突跳式温控器”,该种温控器是双金属片温控器的新型产品,主要作为各种电热产品具过热保护时,通常与热熔断器串接使用,突跳式温控器作为一级保护。热熔断器则在突跳式温控器失效导致电热元件超温时,作为二级保护,有效地防止烧坏电热元件以及由此而引起的火灾事故。所以将突跳式温控器运用到饮水机中可以简单的实现防止干烧的目的。以上我们介绍了多种在实际中使用较多的防干烧方案,它们在现实工业设计中均有广泛的使用,在本次设计中我们考虑到我们定性测量要求以及方便与单片机相连接
25、以及水的导电性等各种因素,我们将采用另外的一种方法来实现对加热体内水位的定性检测。系统采用一根不锈钢水位探测棒作为探测器,探测棒一端与单片机的 P0.7口相连,另一端浸入饮水机的加热体中。当加热体中水量达到系统设定值时,探测棒浸入水中,由于水具有导电性,且加热体接地,从而使输入到单片机 P0.7口的信号为低电平;当加热体中水量不足时,探测棒悬空,使输入到单片机 P0.7口的信号为高电平。单片机根据水位探测器的输入信号执行相应操作,可有效地防止饮水机“干烧”。这种设计与单片机的连接及其的简单并且可以将加热体中缺水的信号通过单片机显示到 LCD 显示模块和指示灯上,方便用户及时发现缺水信息并及时解
26、决。下图为模拟水位探测系统电路图。此时开关断开,P0.7为高电平,探测棒悬空饮水机处于干烧状态。当开关按下的时候P0.7为低电平,探测棒浸入水中,饮水机恢复正常工作状态。图3.8 模拟水位探测系统电路图3.2.5加热控制系统的设计本次设计的中连接加热器体的加热控制器将采用固态继电器,选用了 9012 三极管和固态继电器实现了弱电对强电的控制。9012PNP 型三极管应用广泛,在收音机等常用家电中可以经常看见它的身影。9012 三极管在此作为开关量环节,起到了放大电流的作用,与固态继电器结合,从而实现了开关的作用。与此对应所选用的固态继电器是百特公司的产品,该型号的固态继电器是直流输入控制,交流
27、过零导通,过零关断输出型无触点继电器。它常用与控制电路的导通和断开,是控制一般家用电器,如电动机、加热器、白炽灯的首选器件。加热控制系统的具体电路图如下。其中三极管的导通关闭由单片机的P0.3引脚控制图 3.9 加热控制系统电路图3.2.6电源电路的设计电源是整个系统的能量来源,它直接关系到系统能否正常运行。由于ICL7135的供电电源为5V,其它都为+5V供电,因此电路中选用LM7805和LM7809两种稳压芯片,LM7805和LM7809是普遍运用的稳压芯片。下图为电源电路的电路图,该电路具有结构简单、调节方便、输出电压稳定性强、波纹小和输出电流大的特点。图3.10 电源电路电路图3.3电
28、路参数的计算及元器件的选择由于本设计中用到的芯片和元件较多,不可能一一介绍,下面仅对温度传感器、主控芯片和控制继电器的选择做介绍。其他器件完全按照设计要求选取。1、温度传感器的选择由于饮水机水温的温度范围一般都在0100摄氏度之间,所以温度传感器选择防水型的LM35DZ。LM35 是由National Semiconductor 所生产的温度传感器,其输出电压与摄氏温标呈线性关系,0摄氏度时输出为0V,每升高1,输出电压增加10mV。LM35有多种不同封装型式,本设计中选用防水型的探头封装。在常温下,LM35不需要额外的校准,就可以直接与AD转换器相连测量温度。2、主控芯片的选择在本设计中,单
29、片机只需要键盘扫描、对AD转换器的时钟计数和一些简单的判断控制。对单片机的性能要求并不高,所以我们选择高性价比的STC89C52就已经能满足设计的需要了。3、加热控制器的选择考虑到控制系统的供电电压为+5V的直流电源,加热器为市电 220V,50Hz 交流电源供电。所以我们选用百特公司的P系列直流控制交流随机固态继电器 P0342-14B。P0342-14B的输入控制电压为直流电压314V,额定通断电压为28420V的交流电压。完全能够满足系统的要求。P0342-14B的输入控制参数如下表。表3.1 P0342-14B的输入控制参数输入控制电压(Vdc)输入控制电流(mA)可靠接通控制电压(V
30、dc)可靠关断控制电压(Vdc)3146-443.01.0P0342-14B的输出控制参数如下表。表3.2 P0342-14B的输出控制参数额定通断电压(Vac)额定通断电流(Aac)开通时间(ms)关断时间(ms)通态压降(Vac)断态漏电流(mA)瞬态电压(Vac)28-42030.011000次) Flash ROM32个双向I/O口4.5-5.5V工作电压3个16位可编程定时/计数器时钟频率0-24MHz可编程串行通道512x8bit内部RAM2个外部中断源3个内部中断源低功耗空闲和省电模式数据保留时间:10年灵活的ISP字节和分页编程双数据寄存器指针片内振荡器和时钟电路三级程序存储器
31、锁定3、引脚功能说明图3.11中单片机各引脚功能如下:VCC/GND:电源/接地引脚。Port 0:P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端;P0还可以用作总线方式下的地址数据复用管脚,用来操作外部存储器。在这种工作模式下,P0口具有内部上拉作用。对内部Flash程序存储器编程时,接收指令字节、校验程序、输出指令字节时,要求外接上拉电阻。Port 1:P1是一个带有内部上拉电阻的8位双向I/0端口,输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用; 另外,P1.0、P1.1可以分别被用作定时器/计数器2的外部计数输入(P1.0/T
32、2)和触发输入(P1.1/T2EX);对内部Flash程序存储器编程时,接收低8位地址信息。Port 2:P2是一个带有内部上拉电阻的8位双向I/0端口;输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用; P2口在存取外部存储器时,可作为高位地址输出;内部Flash程序存储器编程时,接收高8位地址和控制信息。 Port 3: P3是一个带有内部上拉电阻的8位双向I/0端口,输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。P3引脚功能复用如表3.5所示。 表3.5 P3引脚功能复用表P3.0 串行通讯输入(RXD) P3.1串行通讯输出(TX
33、D) P3.2外部中断0( INT0) P3.3外部中断1(INT1) P3.4 定时器0输入(T0) P3.5定时器1输入(T1)P3.6 外部数据存储器写选通WR P3.7外部数据存储器写选通RD RST:在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此管脚时,将使单片机复位。只要这个管脚保持高电平,51芯片便循环复位。复位后P0P3口均置1,管脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序;XTAL1、XTAL2 :XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器
34、时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz至24MHz内选择,电容取22PF左右。ALE/PROG:访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节,即使不访问外部存储器,ALE端仍以不变的频率输出脉冲信号(此频率是振荡器频率的1/6),在访问外部数据存储器时,出现一个ALE脉冲; PSEN:该引脚是外部程序存储器的选通信号输出端。当STC89C52由外部程序存储器取指令或常数时,每个机器周期输出2个脉冲,即两次有效。但访问外部数据存储器时,将不会有脉冲输
35、出;EA/Vpp:外部访问允许端。当该引脚访问外部程序存储器时,应输入低电平。要使STC89C52只访问外部程序存储器(地址为0000H-FFFFH),这时该引脚必须保持低电平;3.4.2 ICL7135模数转换器的介绍1、ICL7135概述ICI7135是4位双积分A/D转换芯片,可以转换输出20000个数字量,有STB选通控制的BCD码输出,与微机接口十分方便.ICL7135具有精度高(相当于14位A/D转换),价格低的优点.其转换速度与时钟频率相关,每个转换周期均有:自校准(调零),正向积分(被测模拟电压积分),反向积分(基准电压积分)和过零检测四个阶段组成,其中自校准时间为10001个
36、脉冲,正向积分时间为10000个脉冲,反向积分直至电压到零为止(最大不超过20001个脉冲).故设计者可以采用从正向积分开始计数脉冲个数,到反向积分为零时停止计数.将计数的脉冲个数减10000,即得到对应的模拟量.图3.13给出了ICL7135时序,由图可见,当BUSY变高时开始正向积分,反向积分到零时BUSY变低,所以BUSY可以用于控制计数器的启动/停止.图3.13 ICL7135工作时序图2、芯片接口说明集成电路的引脚图如下。图3.14 ICL7135 引脚图ICL7135的各引脚的功能见下表。表3.6 ICL7135引脚功能表V+、V-电源输入端,双电源供电,典型值5V,极限值9V A
37、C 、DGND模拟地与数字地,典型应用中两点相连接地REF参考电压输入,REF的地为AGND引脚,典型值1VINHI、INLO模拟输入正负,当模拟信号输入为单端对地时,模拟输入负 INLO直接与AC相连 CLKIN时钟信号输入REFC+、REFC-外接参考电容正负,典型值1FBUFFO缓冲放大器输出端,典型外接积分电阻INTO积分器输出端,典型外接积分电容AZIN自校零端LOW欠量程信号输出端,当输入信号小于量程的10%时,输出高电平HIGH过量程信号输出端,当输入信号超过量程时,输出高电平STOR数据输出选通信号(负脉冲),宽度为时钟脉冲宽度的一半,每次A/D转换结束时,该端输出5个负脉冲,
38、分别选通由高到低的BCD码数据,该端用于将转换结果打到并行I/O接口R/H自动转换/停顿控制输入POL极性信号输出,高电平表示极性为正BUSY忙信号输出,高电平有效.正向积分开始时自动变高,反向积分结束时自动变低B8B1BCD码输出.B8为高位,对应BCD码D5D1万、千、百、十、个位选通3.4.3 LCD1602液晶显示屏的介绍1、LCD1602液晶显示屏概述LCD1602液晶也叫LCD1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字
39、符间距和行间距的作用,正因为如此所以它不能很好地显示图形。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。低电压低功耗是其显著特点。由该模块构成的液晶显示方案与同类型的图形点阵
40、液晶 显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。2、LCD1602液晶显示屏并行接口工作读写时序图 图3.15 LCD1602液晶显示屏读操作时序图 图3.16 LCD1602液晶显示屏写操作时序图3.4.4 TL084运算放大器介绍TL084是一种常用的JFET的四输入运算放大器,高电压的JFET和双极晶体电路在一个单片tegrated回路范围,这种器件具有高转化率,低输入偏置和偏置电流,低失调电压温度系数,并具有输出短路保护,内部频率补偿,锁存的自由操作等功能。 图3.17 TL084的内部结构图4系统软件设计硬件与软件是单片机应用
41、开发系统的两个重要组成部分,本设计为了充分体现装置的智能化以及减小硬件电路的体积,软件部分设计的重要性就显得尤为突出了,所以软件设计工作在整个设计中是非常重要的、其工作量也是比较大的。单片机在推广应用的初期,主要使用汇编语言,这是因为当时的开发工具只能支持汇编语言。随着硬件技术的发展,单片机开发工具的功能也有很大的提高,对于51 单片机,有四种语言支持,即汇编语言、PL/M 语言、C 语言和 BASIC 语言。C 语言是一种通用的程序设计语言,其代码效率高、数据类型及运算符丰富,并具有良好的程序结构,适用兼容于各种应用程序的设计和调试。在拟订软件总体设计方案时,由于实际单片机控制系统的功能复杂
42、、信息量大和程序较长,这就需要选择合理的切合实际的程序结构设计方法。常用的设计方法有三种:1、模块化的程序设计;2、自顶向下逐步求精程序设计;3、结构化程序设计。在本设计中采用第一种方法,既模块化程序设计,它的设计思路是把一个复杂应用程序整体功能规划成若干相对独立的程序模块,各模块可以单独设计、编程、调试,然后把功能相关的模块通过连接程序连在一起调试,最后各模块在主程序控制下进行总体调试,最成为可完成设计要求,具有使用价值的程序。绘制流程图是单片机程序编写前最重要的工作,流程图就是用各种符号图形箭头把程序的流向及过程用图形表示出来。通常我们的程序就是根据流程图的指向采用适当的指令来编写的。下面
43、几节就是本次设计中的软件流程图。绘制流程图时首先画出简单的功能流程图粗框图再对功能流程图进行扩充和具体化即对存储器标志位等单元做具体的分配和说明把功能图上的每一个粗框图转化为具体的存储器或地址单元从而绘制出详细的程序流程图即细框图。在本次的设计中系统软件主要包括主程序、按键处理子程序和温度检测子程序。4.1 系统主程序设计系统上电复位后首先进行初始化处理,包括显示初始化,变量初始化赋值,中断的设置和开启。初始化完毕后进入循环检测程序,依次进行按键检测、判断是否应该加热、水量检测、获取温度数据并显示。主程序的流程图如下。开始系统初始化按键检测判断是否应该加热是否有足够水量停止加热NY获取温度数据并显示图 4.1 主程序流程图4.2 按键处理子程序设计当主程序检测到有键按下时,首先判断哪一个键按下,也即获取键值,获取键值之后,就转到按