资源描述
目 录 1 引言111 研究背景及意义11.2 国内外的研究现状和发展趋势213 研究内容及要求22 系统总体设计32.1 系统功能设计32.2 系统设计原则32.2.1 可靠性32.2.2 操作维护方便32.2.3 性价比32.3 系统的组成和工作原理42.3.1 系统的组成42.3.2 系统的工作原理43 硬件系统设计53.1 单片机系统设计53.1.1 AT89C51单片机53.1.2 复位电路63.2 温度传感器部分的设计73.2.1 传感器的基本特性73.2.2 AD590温度传感器73.2.3 ADC0809模数转换器93.3 显示部分的设计123.31 LED七段数码管介绍及应用123.32 显示部分驱动芯片7047介绍143.41 键盘的设计153.42 单片机接口的扩展193.5 温度控制部分的设计243.51 电压跟随电路和比例放大电路243.52 继电器控制电阻丝部分253.6 电源的设计263.61 78系列介绍263.62 LTC3260介绍284 软件设计324.1 主程序的流程图324.2 显示程序流程图324.3 键盘扫描子程序流程图335 结论34附录 源代码、总原理图、PCB图35参 考 文 献42致 谢441 引言11 研究背景及意义在人类的生活环境中,温度扮演着及其重要的角色。自18世纪工业革命以来,工业发展与是否能掌握温度控制有着密切的联系。在冶金、钢铁、石化、水泥、玻璃、医药等行业,可以说几乎80%的工业部门都得考虑着温度的因素1。温度控制是无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,如电热水器、自动饮水机等,都要用到水温控制系统。高校的发展同样要求用现代化手段提升现有的实验设备,为学生提供更多更好更现代化的实验条件。因此我们应该应用电子专业知识,实现温度控制的自动化,提高工业企业自动化水平。目前的水温控制系统大多采用由模拟温度传感器、多路模拟开关、A/D转换器及单片机组成的传输系统2。这种系统需要布置大量的测温电缆,才能把现场传感器的信号送到采集卡上,安装和拆卸复杂,成本也高。同时线路上传送的是模拟信号,易受干扰和损耗,测量误差也比较大,不利于控制者根据温度变化及时做出决定。在这样的形式下,开发一种实时性高、精度高,能够综合处理多点温度信息的系统就很有必要。近年来,单片机以其功能强、体积小、使用方便、性能价格比较高等优点,在实时控制、自动测试、智能仪表、计算机终端、遥测通讯、家用电器等许多方面得到了广泛的应用3。用单片机对温度进行实时检测和控制来解决工业及日常生活中对温度的及时自动控制,是现代温控系统发展的趋势4。人们对电子产品的小型化和智能化要求越来越高,作为高新技术之一的单片机以其体积小、价格低、可靠性高、适用范围大、本身的指令系统等诸多优势,在各个领域、各个行业都得到了广泛应用。该课题的研究适应了社会对于水温控制的发展趋势,将单片机应用于水温控制系统中,将单片机控制方式成功地引入了水温控制领域,丰富了水温控制技术, 该系统可用作工厂、学校等场所的温度检测设施,由人工设定温度,有很好的实用价值,控制系统不仅可用于控制水温,还可应用到对温度有一定要求的其它领域5。也为今后水温控制技术的发展探索了一条行之有效的道路,具有广阔的发展空间。水温控制在生产中及生活中都发挥着重要的作用,如一些现代化车间里,生产特殊要求产品加工需要在一定的温度下才能进行,水产养殖中,也要对水的温度进行严格的控制,才能确保达到最好的效果,在家居生活中,我们同样离不开水温的控制,如电热水器,自动饮水机等,都要用到水温控制系统。实现水温控制的方法有很多种方法,如单片机控制,PLC控制,模糊控制等,而其中用单片机实现的水温控制系统,具有可靠性高,价格低廉,简单易实现等众多优点6。1.2 国内外的研究现状和发展趋势目前国内外的温湿度检测使用的温湿度检测元件种类繁多、应用范围也较广泛加之单片机和大规模集成电路技术的不断提高,出现了高性能、高可靠性的单片数据采集系统7。基于单机片的温湿度监测控制系统的设计研究较少。随着经济和社会的不断发展,人们对自己的生活环境越来越严格。在温室大棚中、在家里,对温湿度也有了一定要求。基于单片机的温湿度监测控制统设计,将对环境的温湿度监测控制系统做详细的设计与实现。采用高性能的控制芯片,高精度数字温湿度传感器AM2301。向模块化、高速化、智能化的单片机数据采集系统靠近。将此系统应用到温室大棚中、家里无疑为人们的生活提供了更加适宜的环境,符合现代人越来越高的要求,具有良好的发展前景8。13 研究内容及要求 本文所要研究的课题是基于单片机控制的水温控制系统的设计,主要是介绍了对水温的显示、控制,实现了温度的实时显示及控制。水温控制部分,提出了用AD590温度传感器、ADC0809模数转换器、AT89C51单片机及LED的硬件电路完成对水温的实时检测及显示,利用运算放大电路、继电器与单片机连接由软件与硬件电路配合来实现对加热电阻丝的实时控制。2 系统总体设计2.1 系统功能设计 系统要完成的设计功能是:1 实现对水杯里水温、室内湿度参数的实时采集,测量温度和湿度,由单片机对采集的温湿度值进行循环检测、数据处理、显示,实现温湿度的智能检测。2 实现对水温的实时控制。4 利用键盘输入期望的温度值。5 现场检测设备应具有较高的灵敏度、可靠性、抗干扰能力。要求达到的技术指标: 测温范围: 45。C -90。C 测温精度:+5。C 测湿精度:+5RH2.2 系统设计原则要求单片机系统应具有可靠性高、操作维护方便、性价比高等特点。2.2.1 可靠性高可靠性是单片机系统应用的前提,在系统设计的每一个环节,都应该将可靠性作为首要的设计准则9。提高系统的可靠性通常从以下几个方面考虑:使用可靠性高的元器件;设计电路板时布线和接地要合理;对供电电源采用抗干扰措施;输入输出通道抗干扰措施;进行软硬件滤波;系统自诊判断功能等10。2.2.2 操作维护方便在系统的软硬件设计时,应从操作者的角度考虑操作和维护方便,尽量减少对操作人员专用知识的要求,以利于系统的推广11。因此在设计时,要尽可能减少人机交换接口,多采用操作内置或简化的方法。同时系统应配有现场故障自动诊断程序,一旦发生故障能保证有效地对故障进行定位,以便进行维修。2.2.3 性价比单片机除体积小、功耗低等特点外,最大的优势在于高性能价格比。一个单片机应用系统能否被广泛使用,性价比是其中一个关键因素12。因此,再设计时,除了保持高性能外,尽可能降低成本,如简化外围硬件电路,在系统性能和速度允许的情况下尽可能使用软件功能取代硬件功能等13。2.3 系统的组成和工作原理2.3.1 系统的组成以单片机为控制核心,采用温湿度测量,数模转换,控制技术等技术,以温湿度传感器作为测量元件,构成智能温湿度测量控制系统。可分为温度、湿度测量电路,显示电路,声光报警电路,温湿度控制电路,见图2.1选用的主要器件有:AT89C52,温度传感器AD590,LED显示模块,升温装置加热器等。 图2.1 系统工作原理框图2.3.2 系统的工作原理本系统以单片机89C51为核心,键盘输入、数据采集、传输、显示要通过单片机。数据采集通过温度传感器AD590完成;通过单片机把采集的数据显示在LED上;当采集的数据超出给定范围时,进行相应的控制处理。单片机采用C语言编程。 温度控制系统是以89C51单片机作为中央控制装置,加热设备 89C51作为中央控制装置,负责中心运算和控制,协调系统各个模块的工作。 加热设备:负责系统的加热工作。3 硬件系统设计3.1 单片机系统设计经过上面的总体方案和实施措施的讨论后可以开始着手硬件系统的设计,硬件系统是应用系统的基础、软件系统设计的依据根据总体功能和性价比及其运行速度等因素的考虑,选用MCS-51系列的89C51为主机,满足上面的要求而且设计方便,不需要再存储扩展。3.1.1 AT89C51单片机MCS-51系列单片机主要包括基本型产品8031/8051/8751(对应的低功耗型80C31/80C51/87C51和增强型产品8032/8052/8752。虽然他们是8位的单片机,但是具有品种全、兼容性强性能价格比高等特点且软硬件应用设计资料丰富齐全,已为我国广大工程技术人员所熟悉和掌握。在20世纪80年代和90年代,MCS-51系列单片机是在我国应用最为广泛的单片机机型之一14。中央微处理器 AT89C51: AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器15。此外,AT89C51设计和配置了振荡频率,并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式。AT89S51单片机综合了微型处理器的基本功能。按照实际需要,同时也考虑到设计成本与整个系统的精巧性,所以在本系统中就选用价格较低、工作稳定的AT89C51单片机作为整个系统的控制器。 图3.1 单片机实物图及其接口图 图3.2 单片机内部结构图3.1.2 复位电路复位是单片机的初始化操作,只需给AT89C51的复位引脚RST加上2个机器周期(即24个时钟震荡周期)的高电平就可使AT89C51复位。复位电路通常采用上自动复位和按钮复位两种方式。上电复位是通过外部复位电路给电容C充电加至RST引脚一个短的高电平信号,次信号随着VCC对电容C的充电过程而逐渐回落,即RST引脚上的高电平持续时间取决于电容C的充电时间。因此为保证系统能可靠地复位,EST引脚上的高电平必须维持足够长的时间。按键手动复位有电平和脉冲两种形式。 图3.3 复位电路图3.2 温度传感器部分的设计3.2.1 传感器的基本特性传感器的静态特性是指对静态的输入信号,传感器的输出量与输入量之间所具有相互关系。不含时间变量的代数方程,或以输入量作横坐标,把与其对应的输出量作纵坐标而画出的特性曲线来描述17。表征传感器静态特性的主要参数有:线性度、灵敏度、分辨力和迟滞等18。传感器的动态特性: 所谓动态特性,是指传感器在输入变化时,它的输出的特性。在实际工作中,传感器的动态特性常用它对某些标准输入信号的响应来表示。这是因为传感器对标准输入信号的响应容易用实验方法求得,并且它对标准输入信号的响应与它对任意输入信号的响应之间存在一定的关系,往往知道了前者就能推定后者。最常用的标准输入信号有阶跃信号和正弦信号两种,所以传感器的动态特性也常用阶跃响应和频率响应来表示19。3.2.2 AD590温度传感器 AD590工作原理及特性:1 其输出电流是以绝对温度零度(-273)为基准,每增加1,它会增加1A输出电流,因此在室温25时,其输出电流Io=(273+25)=298A。2 可测量范围-55至150。3供电电压范围+4V至+30V。精度高。4 AD590 共有I、J、K、L、M 五档,其中M 档精度最高,在-55+150范围内,非线性误差为0.3。本次选用AD590JH,其非线形度+-1.5度测量范围-55+15。5 AD590封装及典型电路 图3.4 AD590封装及典型电路图由于AD590输出为电流量单片机不能直接读取,因此需要通过串联电阻将电流量转换为电压量,再由模数转换芯片ADC0809将电压量转换为其对应的数字量,然后通过软件将采集到的电压量转化为温度进行显示。利用AD590将电流转换为电压的各部分定性及定量说明。电路原理图如下: 图3.5 温度测量及转换部分电路图电路分析 AD590的输出电流I=(273+T)A(T为摄氏温度),因此量测的电压V=(273+T)A 10K= (2.73+T/100)V。为了将电压量测出来又需使输出电流I不分流出来,我们使用电压追随器其输出电压V2等于输入电压V。 利用可变电阻分压,其输出电压V1需调整至2.73V。 接下来我们使用差动放大器其输出Vo为(100K/20K)(V2-V1)=T/20V。如果现在为摄氏56度,输出电压为2.8V。3.2.3 ADC0809模数转换器ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 1 ADC0809的内部逻辑结构 由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 图3.6 ADC0809内部结构图2 ADC0809引脚结构 ADC0809各脚功能如下:D7-D0:8位数字量输出引脚。IN0-IN7:8位模拟量输入引脚。VCC:+5V工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。(以上两种信号用于启动A/D转换).EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。A/B/C:地址输入线 图3.7 ADC0809实物图及接口图ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进入转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择表如下表所示。 表3.1 ADC0809的通道选择方式 数字量输出及控制线:11条 ,ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ。VREF(),VREF()为参考电压输入。 利用ADC0809将模拟信号转化为数字信号的电路原理图如下: 图3.8 温度测量部分电路图3.3 显示部分的设计3.31 LED七段数码管介绍及应用 LED 数码管在电子仪器中常用来显示数字,符号,显示清晰,亮度高,价格便宜,广泛低应用在各种控制系统中。 1 LED 数码管结构 LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。如:显示一个数字“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。显示一个字母A 字,a,b,c,e,f,g 段亮,d,dp不亮。 图3.9 七段码LED接口图 LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。2 驱动方式(1) 静态显示驱动: 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O脚进行驱动,或者使用如BCD码二-十进位*器*进行驱动20。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O脚多,如驱动5个数码管静态显示则需要58=40根I/O脚来驱动,故实际应用时必须增加驱动器进行驱动,增加了硬体电路的复杂性。 (2) 动态显示驱动: 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮21。 透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。3 数码管与单片机动态扫描显示接口图 图3.10 显示部分电路图4 限流电阻的选择LED 数码管的工作电流为310mA,当超过30mA 时会将数码管烧毁。因此需要在数码管的每一段串入一个电阻进行限流。电阻的选择范围为470欧到1K。 如电源电压5V,1k限流电阻,一个二极管的结压降为1.8v,电流为5v-1.8v/1k=3.2mA。采用1K限流电阻时流过数码管每段的电流为3.2mA。3.32 显示部分驱动芯片7047介绍由于单片机的驱动能力有限,这里需要另加驱动芯片来增强驱动能力以驱动四个七段LED数码管,这里选用7047。5 4/7407 为集电极开路输出的六组驱动器。逻辑图如下 图3.11 7407逻辑图3.4 输入部分的设计3.41 键盘的设计 在单片机应用中,人机交互对话最通用的方法就是通过键盘进行的。操作者通过键盘向系统发送各种指令或置入必要的数据信息。因此键盘模块设计的好坏,直接关系到系统的可靠性和稳定性。目前少见专门针对单片机按键设计的文档资料,因此本文结合工作 实际,系统地介绍了单片机应用中比较有价值的按键设计方法。1 常用按键接口常用的按键接口一般分为“独立式 按键接口设计”、专用芯片式设计”和“矩阵式接口设计”几种。具体采用哪种方式 ,应该根据所设计系统的实际情况而定。下面分别介绍不同接口方式的优缺点及适用场合。(1) 独立式按键接口设计独立式按键接口设计优点是电路配置灵活 ,软件实现简单,但缺点也很明显,每个按键需要占用一根口线,若按键数量较多,资源浪费将比较严重,电路结构也变得复杂。因此本方法主要用于按键较少或对操作速度要求较高的合。软件实现时 ,可以采用中断方式,也可以采用查询方式,示意图如图所示。 图3.12 查询方式及中断方式键盘设计图(2) 专用芯片式设计 专用键盘处理芯片一般功能比较完善,芯片本身能完成对按键的编码、扫描、消抖和重键等问题的处理,甚至象8279还集成了显示接口功能。专用键盘处理芯片的优点很明显,可靠性高,接口简单,使用方便,适合处理按键较多的情况。但在很多应用场合,考虑成本因素,可能并不是最佳选择。(3) 矩阵式接口设计 矩阵式按键设计适应于按键数量较多,又不想使用专用键盘芯片的场合这种方式 的按键接口由行线和列线组成 ,按键位于行、列的交叉点上。这种方式的优点就 是相对于独立接口方式可以节省很多I/ O资源,相对于专用芯片式可以节省成本,且更为灵活。缺点就是需要用软件处理消抖、重键等问题。接口示意图如图所示。矩阵式按键接口根据采用的按键识别方法不同基本有两种接法 :线反转法和扫描法。其中扫描法的列线始终为输入,行线始终为输出;线反转法则需要改变列线和行线的方向。 图3.13 扫描及反转法原理图2 按键编码方式 按键接口方式确定后,需要对按键进行编码。按键编码没有特殊约定,只要有利按键处理即可,同时应根据情况确定是否对按键进行缓冲。但对于矩阵式按键接口一般是先获得按键的扫描码,然后将其转换为事先约定的按键编码。3 按键识别方法不同的按键接口方式对应不同的按键识别方法,但无论哪种接口方式,按键的闭合与否都反映在电压的高低上,因此系统可以通过检测不同的电平状态来识别按键是否按下。实际设计时可以根据需要设定键闭合或断开的电平状态。例如,我们利用低电平表示键按下,高电平表示键释放。对应上述三种按键接口方法,独立式按键识别方法很简单,只需要检测相应口线的电平即可,没有键按下时为高电平,有键按下时为低电平;而专用芯片则直接完成了该项工作,因此下面主要讲述矩阵式按键接口方式对应的按键识别方法。(1) 按键识别原理 如图2 所示,按键设置在行、列的交点上,行列线分别连接到按键开关的两端 ,行线或列线通过上拉电阻接到+ 5V上。平时无按键动作时,处于高电平状态,而当有键按下时,电平状态将发生改变。这一点是按键识别的关键所在。由于矩阵键盘中行线和线为多键共用,各按键均影响该键所在的行和列的电平,即各键相互间有影响,必须协调处理。(2) 扫描法识别按键扫描法识别按键分两步进行:第一步,识别有无按键按下;第二步,若有键按下,识别出该键。具体方法如下:识别键盘有无按键按下方法:让所有列线均为0电平,检查各行线是否有变化,如果有变化,则说明有键被按下,如果没有变化,则说明无键被按下。识别具体按键的方法:逐列置零电平,其余各列置为高电平,检查各行线电平的变化,如果 某行电平由高电平变为低电平,则可确定此行此列交叉点处的按键被按下。(3) 线反转法识别按键扫描法要逐列扫描查询,若被按下的键处于最后一列时,要经过多次扫描才能最后按键的行列值。而线反转法则很简练,无论被按键处于第一列或是最后一列,均只需两步便能获得按键的行列值。 第一步 :将行线编程为输入线,列线编程为输出线,并使输出线输出为全零电平,则行线中电平由高到低所在行为按键所在行。 第二步 :同第一步相反,将行线编程为输出线,列线编程为输入线,并使输出线输全零电平,则列线中电平由高到低所在行为按键所在列。 综合一、二两步的结果 ,可确定按键所在行和列,从而识别所按的键。该方法的优点是:非常简单适用。 该系统中键盘的原理图如下: 图3.14 本系统键盘设计图3.42 单片机接口的扩展 由于单片机接口有限,而键盘的设计又占用了不少接口,应该考虑到扩展此系统的I/O接口。8255A是一种可编程的I/O接口芯片,通过锁存器74LS373可以与MCS-51系统单片机以及外设直接相连,广泛用作外部并行I/O扩展接口。1 8255A的内部结构8255A内部由PA、PB、PC三个8位可编程双向I/O口,A组控制器和B组控制器,数据缓冲器及读写控制逻辑四部分电路组成。 8255A结构框图和引脚图如下: 图3.15 8255A结构图及引脚图2 8255A的引脚功能 数据总线(8条):D0D7,用于传送CPU和8255A间的数据、命令和状态字。 控制总线(6条): RESET:复位线,高电平有效。 /CS:片选线,低电平有效。 /RD、/WR:/RD为读命令线,/WR为写命令线,皆为低电平有效。 A0、A1:地址输入线:用于选中PA、PB、PC口和控制寄存器中哪一个工作。 并行I/O总线(24条) :用于和外设相连,共分三组。 3 8255A控制字和状态字方式控制字:方式控制字用于设定8255A三个端口工作于什么方式,是输入还是输出方式。8255A有两个控制字:方式控制字和C口置位/复位控制字。用户通过程序可以把这两个控制字送到8255A的控制寄存器,以设定8255A的工作方式和C口各位状态。 C口置位/复位控制字:本控制字可以使C口各位单独置位或复位,以实现某些控制功能。 图3.16 8255A方式控制字及C口置位/复位字4 74LS373介绍 单片机系统中常用的地址锁存器芯片74LS373以及coms的74hc373,是带三态缓冲输出的8D触发器,其引脚图与结构原理图、电路连接图如下: 图3.17 锁存器引脚图 74ls373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片,74ls373内部结构图和引脚图如下: 图3-18 锁存器内部结构图 1脚是输出使能(OE),是低电平有效,当1脚是高电平时,不管输入3、4、7、8、13、14、17、18如何,也不管11脚(锁存控制端,G)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空状态);当1脚是低电平时,只要11脚(锁存控制端,G)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈现输入脚3、4、7、8、13、14、17、18的状态。 锁存端LE 由高变低时,输出端8 位信息被锁存,直到LE 端再次有效。当三态门使能信号OE为低电平时,三态门导通,允许Q0Q7输出,OE为高电平时,输出悬空。当74LS373用作地址锁存器时,应使OE为低电平,此时锁存使能端C为高电平时,输出Q0Q7 状态与输入端D1D7状态相同;当C发生负的跳变时,输入端D0D7 数据锁入Q0Q7。51单片机的ALE信号可以直接与74LS373的C连接。 74ls373与单片机接口: 图3.19 74LS373接口电路 1D8D为8个输入端。 1Q8Q为8个输出端。G是数据锁存控制端;当G=1时,锁存器输出端同输入端;当G由“1”变为“0”时,数据输入锁存器中。OE为输出允许端;当OE=“0”时,三态门打开;当OE=“1”时,三态门关闭,输出呈高阻状态。3.5 温度控制部分的设计由于本系统对温度控制的精度要求不高,所以可以直接用单片机I/O口控制继电器间接来控制加热部分,而不必考虑加热部分的功率控制。由于单片机I/O输出电压较低且输出能力有限,所以考虑加一个电压跟随电路和一个电压放大电路以提高其驱动能力和输出电压以便能确保控制继电器。3.51 电压跟随电路和比例放大电路 电压跟随器,顾名思义,就是输出电压与输入电压是相同的,就是说,电压跟随器的电压放大倍数恒小于且接近1。 电压跟随器的显著特点就是,输入阻抗高,而输出阻抗低,一般来说,输入阻抗要达到几兆欧姆是很容易做到的。输出阻抗低,通常可以到几欧姆,甚至更低,所以驱动能力强。 同相输入放大电路如图所示,信号电压通过电阻RS加到运放的同相输入端,输出电压Vo通过电阻R1和Rf反馈到运放的反相输入端,构成电压串联负反馈放大电路。根据虚短、虚断的概念有VN= VP= VS,i1= if (3-1)于是求得 (3-2)所以该电路实现同相比例运算。 图3.20 同相放大电路图此系统中的跟随和放大电路如下: 图3.21 系统中驱动放大电路图3.52 继电器控制电阻丝部分 选用继电器ADG1401,ADG1401/ADG1402内置一个单刀单掷(SPST)开关。当逻辑输入为1时,ADG1401开关闭合,ADG1402开关则断开。当接通时,各开关在两个方向的导电性能相同,输入信号范围可扩展至电源电压范围,在断开条件下,等于电源电压的信号电平被阻止。其功能框图如下: 图3.22 继电器结构图相关数据特点如下: 导通电阻:1 导通电阻平坦度:0.2 连续电流最高达435 mA 额定电源电压:+12 V、15 V、5 V 无需VL电源 3 V逻辑兼容输入 轨到轨工作 8引脚MSOP和8引脚、3 mm 2 mm LFCSP封装系统中应用电路图如下: 图3.23 继电器部分电路图3.6 电源的设计由于此系统中主要用了+/-5V、+12、+15V的电压,所以做了三个电源,其中由于+15V电压要给加热电阻丝供电,功率要求较高,故选用两个78稳压电源并联的方式,另外的选用LTC3260。3.61 78系列介绍 三端固定输出稳压器是将功率调整管、误差放大器、取样电路、保护电路等元器件做在一块芯片内,构成一个由不稳定输入端、稳定输出端和公共接地端的三脚集成电路,由于这种稳压集成电路(以下简称稳压IC)只有三个引脚,使用安装方便,保护功能完善,现市场价格十分低廉,在电子制作、物理实验、家用电器中,可以代替早期的分立元件稳压电路,制作实用电源和维修替换各类常用的稳压电源,应用相当广泛23。1 主要参数:三端固定稳压IC有正输出和负输出两种类型,正输出稳压IC有W78xx系列,W78Mxx系列,W78Lxx系列,负输出稳压IC有W79xx系列、W79Mxx系列、W79Lxx系列,最常用的是正输出大电流的W78xx系列。xx表示稳压值,例如:W7806表示稳定输出电压为6V,W7812表示稳定输出电压为12V。它们的主要参数如附表所示。表3.2 78、79系列稳压IC主要参数参数类型型号最大输出电流峰值输出电流固定输出电压最高输入电压最低输入电压备注78系列正输出W78xx1.5A3.5A5v.6v8v.9v12v.15v18v.24v35VU0+2V(U015V时)功耗超过1W需加散热片,随功耗的增加,散热片的面积、厚度相应增大W78Mxx0.5A1.5AW78Lxx0.1A0.2A79系列负输出W79xx1.5A3.5A5v. 6v8v. 9v12v.15v18v.24v35VU0+(2V)(|U0|15V时)W79Mxx0.5A1.5AW79Lxx0.1A0.2A2 工作原理: 以78xx系列稳压IC为例(其他稳压IC原理大同小异)简述其工作原理。它是一种串联调整式稳压器,它与一般分立元件组成的稳压器的电路结构、工作原理是十分相似的,不同的是增加了启动电路,恒流源以及各种保护电路(相同部分本文不再叙述)。下面简述增加部分的原理、作用。电源接通后,启动电路工作,为恒流源、基准电压、比较放大电路建立工作点(当正常工作后启动电路不起作用)。恒流源的设置,为基准电压和比较放大电路提供了稳定的工作条件,使其不受输入电压的影响,保证稳压IC能在较大的电压变化范围内正常工作。短路、过流保护电路是由RA与内电路组成、当输出电流超过额定值时,流过RA的电流所产生的压降将超过0.6 V,内部相关电路导通工作,使调整管基极电流减小,从而使输出电流减小。过热保护电路是由芯片内具有正温度系数的扩散电阻和具有负温度系数的PN结构成,当温度较低时不影响调整管工作,当芯片温度超过临界值时,相关电路工作,控制调整管基极,使输出电流减小,芯片功耗降低,温度降低,达到过热保护之目的。安全工作区保护电路是把调整管的c.e极管压降设置在7V左右,当输入电压高于输出电压过多时,相关电路工作从而限制调整管的工作电流,保证它处于安全工作区。RB的设置是使稳压IC有合适的静态电流,保证各功能电路在输出空载时也能正常工作24。 图3.24 78电源模块 3.62 LTC3260介绍LTC3260是一款低噪声、双极性输出电源,包括一个兼具正和负LDO稳压器的负输出充电泵。充电泵在一个4.5V至32V的宽输入范围内运作,并能够输送高达100mA的输出电流。每个LDO稳压器可提供高达50mA的输出电流。负 LDO后置稳压器采用充电泵输出来供电。LDO输出电压可使用外部电阻分压器进行调节。LTC3260非常适用于用高压输入产生的低噪声双极性/负输出电源、工业/仪表用低噪声偏置电压发生器、便携式医疗设备和汽车信息娱乐系统。LTC3260采用扁平3mm4mm,14引脚的DFN封装和16引脚的MSOP封装,两种封装均有地面导热衬垫。工作结温为-40至125。 图3.25 LTC3260内部结构图LTC3260的设计具备提供低噪声性能的固有特性,该器件的高工作频率实现了低输出纹波。如图所示,LTC3260的LDO进一步抑制了这种纹波,可提供非常低噪声的输出,因而极其适合于诸如运算放大器和ADC驱动器等噪声敏感型应用。 图3.26 LTC3260输出电压LTC3260具有内置的短路电流限制和过热保护功能。在短路情况下,该器件自动将其输出电流限制在160mA左右。加入结温超过约175,则热停机电路将禁止向输出提供电流。当结温回落至大约165时,将恢复向输出提供电流。当热保护电路处于运行状态时,表明结温超出了规定的操作范围。热保护功能针对的是超出正常操作范围的短暂过载条件。在高于规定的最大工作结温条件下连续运作有可能损害期间的可靠性。LTC3260的内部充电泵可以可工作于低静态电流的突发模式(Burst Mode)或低噪声的恒定频率模式(效率高达88%)。以突发模式工作时,充电泵输出调节至-0.94VIN。另外,在突发模式操作中,如果两个LDO都启用,那么LTC3260只吸收100uA。恒定频率工作可提供低输入和输出纹波,在这种模式中,充电泵产生等于-VIN的输出,并以固定的500KHz频率或用一个外部电阻器设定在50KHz至500KHz的频率范围内工作。其他的IC特点包括很少的外部组件、采用陶瓷电容器可保持稳定、用于在启动时防止产生过大电流的软启动电路、以及短路和过热保护25。LTC3260的两个LDO(从Vin供电的正LDO稳压器以及从Vout供电的负LDO稳压器)都支持50mA负载。每个LDO具有300mV的压差以及一个50mA输出和一个调节引脚,允许利用一个简单的电阻分压器来设定输出电压。LDO稳压器可单独地使能。EN-引脚负责时能负输出充电泵和LDO-。当两个稳压器均停用时,器件将停机,此时的静态电流仅为2uA。可通过在每个旁路引脚上增设一个电容器来对LDO基准进行滤波,以进一步降低LDO稳压器输出端上的噪声。电压从LDO+、LDO-上面输出,通过改变外接电阻值,能够调节输出电压的大小,应用电路如下: 图3.27 LTC3260变压原理图 (3-3) 同理: (3-4)通过改变外界电阻,得到不同的输出电压。由于设计中所用芯片的工作电压有6V和5V两种,所以需要两个电源供电电路,阻值计算如下: (3-5)=5V (3-6)计算可得 =4 (3-7)取 (3-8)则 =316 (3-9) 5V电源模块的外围接线图如下: 图3-28 LTC3260电源模块4 软件设计4.1 主程序的流程图 图4.1 主程序流程图4.2 显示程序流程图 图4.2 显示子程序流程图4.3 键盘扫描子程序流程图 图4.3 键盘扫描子程序流程图5 结论设计的首要之处是选型。本系统单片机芯片采用AT89C51,该芯片可靠性好、性能稳定、对于该系统其存储空间足够,且易于用C语言编程。温度传感器采用AD590,为电流型传感器,在其基本应用电路中便于的得到所需电压,精度高,器件稳定。A/D转换时采用ADC0809,至多可以实现八路温度的转换,同样该器件精度高,性能稳定。而选型后的软件程序设计和硬件参数设置也是必不可少的,正确的设置参数及编程,才能使该系统正常运行。同样本系统的显示部分也可以用上位机来实现,这样涉及到了串行口的通信问题,由于此与显示部分模块相差无意,故此省略。随着时代的发展,温控系统的应用会愈加普及,前景十分广阔,本设计在小型环境中比如蔬菜大棚、物资仓库等可得到应用,在大型环境中要用到上位机的控制,其设计模式并无异样,因此本设计的实用价值还是很高的。但是,智者千虑,必有一失。由于本人专业知识的局限性和篇幅所限,很难保证本人的设计没有丝毫遗漏,还望指正。附录 源代码、总原理图、PCB图 #include “reg51.h”#include “intrins.h”#include “absacc.h”/定义绝对地址访问#define Disdata P1/段码输出口#define uchar unsigned char#define unit unsigned int#define IN3 XBYTE0x0Csbit DIN=P17;/LED小数点控制uchar code dis_712=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF;/共阳LED段码表uchar data display6=0x00,0x00,0x00,0x00,0x00,0x00;/显示单元数据uchar data temp_data=0x00;/温度暂存uchar data *p;uchar xdata *ad_adr;uchar KeyNo=;uchar YQ1=0;YQ2=0;uchar YQ=50;/默认温度要求是50度uint h;void delay(unit t)/延时函数 For(;t0;t-)scan()/显示扫描函数 char k; for(k=0;k3;k+)/三位LED扫描 Disdata=dis_7displayk;/段码 if(k=1) Din=0; /小数点 swtich (k)/位选 case1:p30=1;p31=0;p33=1;break; case2:p30=0;p31=1;p33=1;break; default:p30=1;p31=1;p33=0; delay(90); AD590_read()/温度读取 p=0x30;/p指向DATA存储器0x30 ITO=1;/外部中断0脉冲触发 EX0=1;/外部中断0允许 ET0=1;/TO中断允许 EA=1;/总中断允许 TRO=1;/TO启动 ad_adr=&IN0;/指针指向通道0 *ad_adr=1;/启动转换 void int_adc(void) interrupt 0 /中断函数 *p=*ad_ad;/接受ADC0809转换结果 temp_data=*p;/温度存储 *ad_adr=1;/启动转换 AD590_worktemp()/温度数据处理 display4=temp_data*100/256; display5=temp_data*1000/256; display2=display5%10;/小数位 display1=display4%10;/个位 display0=display4/10;/十位 void key_scan()/键盘矩阵扫描函数 P34=0;/8255A选通 uchar tmp; XBYTE(0x03)=0x84;8255A/方式选择 XBYTE(0X02)=0X00;/键盘行置0 delay(90); XBYTE(0X03)=0x41;/8255A方式选择 Tmp=XBYTE(0x01);/读数据 Tmp=Tmp0x07;/保留低三位 swtich(Tmp)/判断按在哪一列 case1:KeyNo=0;break; case2:KeyNo=1;break; c
展开阅读全文