




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
前 言目前,单片机的发展非常迅速,应用也极为广泛,特别是C51系列的单片机,它由于体积小、功能强、性能稳定、价格低廉等优点,使其在工业控制系统诸多领域得到了极为广泛的应用。在此基础上发展起来的智能仪器无论是在测量的准确度、灵敏度、可靠性、自动化程度、应用功能等方面或在解决测试技术问题的深度及广度方面都有了巨大的发展,以一种崭新的面貌展现在人们的面前。随着大规模集成电路及计算机技术的迅速发展,以及人工智能在测试技术方面的广泛运用,智能仪器有了更大的发展。测试仪器的智能化已是现代仪器仪表发展的主流方向。近年来,温度控制系统不仅在工业设计、工程建设中应用广泛,而且在人们的日常生活中也常常需要用到温度控制。大到大型钢铁厂、化工厂等,小到酒店、温室、家电等。温度控制的应用随处可见,随着人们生活质量的提高及温度控制技术的成熟,温度控制将更好的服务于社会。本设计介绍了以AT89C51单片机为控制核心,以传感器AD590采集温度信号,放大后经ADC0809将模拟信号转换为数字信号,送入单片机AT89C51,通过软件编程AT89C51可以驱动各个管脚连接的功能模块实现各个功能,如温度采集、温度设定、显示、示警等。文章着重的介绍了系统的硬件及软件设计。该系统的特点是电路结构简单、程序简短、系统的可靠性高。实验测试结果表明,该系统能够实时显示温度值,温度检测范围095,温度精度为1,利用按键能修改设定的温度值,温度过高或过低时,输出报警信号。第1章 方案论证1.1 概述1.1.1 题目来源随着电子技术的发展,特别是大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么单片机技术的出现则是给现代工业控制测控领域带来了一次新的革命。目前,单片机在工业控制系统诸多领域得到了极为广泛的应用。特别是其中的C51系列单片机的出现,由于它具有极好的稳定性,更快和更准确的运算精度。因此,它的出现不但推动了工业的生产,也影响着人们的工作和学习。温度控制系统在现代工业设计、工程建设及日常生活中的应用越来越广泛,早期的温度控制主要应用于工厂中,例如钢铁的水溶温度控制,不同等级的钢铁要通过不同温度的铁水来实现,这样就可能有效的利用温度控制来掌握所需要的产品了。在日常人们的生活中,温度控制系统的应用和作用也体现到了各个方面,随着人们生活质量的提高,酒店厂房及家庭生活中都会见到温度控制的影子,温度控制将更好的服务于社会。1.1.2 题目任务设计一个基于单片机的饮水机的温度控制系统,该系统可以实时检测饮水机水箱的水温,并且可以通过数码管显示饮水机水箱水温度数,可以通过键盘或开关选择制冷或加热,可以人为设置水的温度的上下限,如加热,当温度在设定的范围内时正常工作,当低于水温下限时控制加热器加热;如制冷,当温度高于水温上限时控制压缩机制冷,温度检测范围095,精度1,当温度超过设定值时具有示警功能。1.1.3 设计分析该设计要完成饮水机水箱的水温度控制系统的设计。要达到题目设计的要求,设计时需要解决以下几个方面的问题:一、如何实现095的温度检测范围和精度为1的温度测量;二、如何将水箱水的温度控制在设定的范围内;三、如何选择器件及设计电路使整个系统稳定、有效地工作。1.2 方案论证方案一:传统的一位式模拟控制方案,方案原理框图如图1.1所示。其选用的是模拟电路,用电位器设定给定值,和反馈的温度值比较后,决定加热或不加热。其特点是电路简单,易于实现,但是系统所测得的结果精度不高,并且调节动作频繁,系统误差大,不稳定。系统受环境的影响大,不能实现繁杂的控制算法,不能用数码管显示,不能用键盘设定。传感器信号放大温度设置比较器信号放大固态继电器负载 图1.1 方案一原理框图方案二:传统的二位式模拟控制方案,方案原理框图如图1.2所示。其基本思想与方案一相同,但是由于采用上下限比较电路,所以控制精度有所提高,这种方法还是模拟控制方式,因此也不能实现复杂的控制算法,而且仍不能用数码管显示和键盘设定。传感器负载固态继电器与设置的温度上限比较信号处理信号放大与设置的温度下限比较图1.2 方案二原理框图方案三:以单片机系统为核心的控制方案,其原理框图如图1.3所示。本方案通过温度传感器将温度信号转换为电流信号,信号放大后,经A/D转换器,A/D转换器将进来的模拟信号转换成数字信号,然后送到单片机处理,并将采集的温度值与键盘设定的温度值进行比较,根据比较的结果,单片机输出相应的信号来控制外部设施,达到控制加热器加热或压缩机制冷的目的。还具有显示、报警等功能。受控对象传感器显示继电器单片机信号放大加热或制冷 A/D转换示警键盘负载图1.3 方案三原理框图方案一和方案二是传统的模拟控制方式,而模拟控制系统是难以实现复杂的控制规律,控制方案的修改也较麻烦。而方案三是采用以单片机为核心的控制系统,尤其对温度控制,它可达到模拟控制所达不到的控制效果,并且可实现显示,键盘设定,报警等功能,大大提高了系统的智能化,也使得系统的测量结果精度大大提高。同时,以单片机为核心的控制系统,它的软件编程比较灵活,易于实现。根据本设计的要求,经过对三种方案的比较分析,本设计采用方案三。第2章 硬件电路设计2.1 单片机最小系统设计本设计单片机最小系统如图2.1所示,由主控器AT89C51、时钟电路和复位电路三部分组成。单片机AT89C51作为核心控制器控制着整个系统的工作,而时钟电路负责产生单片机工作所必需的时钟信号,复位电路使得单片机能够正常、有序、稳定地工作。图2.1 单片机最小系统2.1.1 单片机选择AT89C51单片机是ATMEL公司的AT89系列单片机的其中一种,该系列是当今世界上最新型的电擦写八位单片机之一,和51系列完全兼容,低电压、低电流、低功耗,价格低廉,很受用户欢迎。其管脚图如图2.2所示。图2.2 AT89C51管脚图AT89C51的管脚说明: VCC:供电电压。本设计供电电压为+5V。GND:接地。 P0口:P0口为一个8位漏极开路双向I/O口,每个管脚可吸收8个TTL门电流。当P1口的管脚第一次写“1”时,被定义为高阻输入。P0口能够作为外部程序数据存储器,它可以被定义为数据/地址的低八位。在Flash编程时,P0口作为原码输入口,当Flash进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。P1口管脚写入“1”后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。 P2口:P2口为一个带内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被上拉电阻拉高,且作为输入。P2口的管脚被外部下拉为低电平时,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉电阻,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在Flash编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。RST:复位输入端。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE:当访问外部存储器时,地址锁存于锁存地址的低位字节。在FLASH编程期间,该引脚用于输入编程脉冲。在平时,ALE端口以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而,要注意的是:每当其用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出,可将SFR8EH地址置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指令期间,每个机器周期/PSEN两次有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA:/EA功能为内外程序存储器选择控制端。当/EA保持低电平时,单片机访问外部程序存储器。当/EA端保持高电平时,单片机访问内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入端。XTAL2:来自反向振荡器的输出端。鉴于AT89C51单片机所具有的特性及本设计控制的复杂性和兼顾显示、报警、键盘控制等较高要求,本设计选用AT89C51单片机作为中心控制器。2.1.2 时钟电路时钟电路用于产生AT89C51单片机工作时所必需的时钟信号。其电路与AT89C51的连接如图2.1所示。AT89C51单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,AT89C51单片机应在唯一的时钟信号控制下,严格按时序执行指令进行工作,而时序所研究的是指令执行中各个信号的关系。在执行指令时,CPU首先要到指令存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定的操作。CPU发出的时序信号有两种,一是用于片内对各个功能部件的控制。另一种是对片外存储器或I/O口的控制,这种时序对于分析、设计硬件接口电路至关重要。这也是单片机应用设计者最关心的问题。时钟是单片机的心脏,单片机各个功能部件的运行都是以时钟频率为基准,有条不紊地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚X1,输出引脚X2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。虽然AT89C51有内部振荡电路,但要形成时钟,必须外接元件。外接晶体以及X1和X2构成并联谐振电路。电容的大小会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。除使用晶体振荡器外,如对时钟频率要求不高,还可以用陶瓷振荡器来代替。电路中的电容容值通常选择为30PF左右,本电路选择的是20PF,这并不影响系统的工作和控制的结果。晶体的振荡的频率的范围通常是在1.2MH到12MH之间。晶体的频率越高,则系统的时钟频率就越高,单片机的运行速度也就越快。但反过来运行速度越快对存储器的速度要求就越高,对印刷电路板的工艺要求也高。AT89C51单片机常选择振荡频率6MH或12MH的石英晶体,随着集成电路制造工艺技术的发展,单片机的时钟频率也在逐步提高,现在的高速单片机芯片的时钟频率已经达到40MH。考虑到本设计所用的各种器件对时钟频率的要求及整体电路的简洁性,本设计选用的是振荡频率为6MH的石英晶体。2.1.3 复位电路AT89C51的复位是由外部的复位电路来实现的。单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。因此选用一个适合本系统的复位电路极其重要。常用的复位电路有四种方式:(1)上电复位电路(2)按键复位电路(3)脉冲复位电路(4)兼有上电复位与按键复位的电路。由于考虑到结构和成本等原因,在很多设计里面,复位电路通常采用上电复位和按键复位两种。根据本系统的特性,决定选用最简单的上电复位电路。上电复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过10ms,就可以实现自动上电复位。当时钟频率选用6MH,电容C选用22mF,电阻R选用1KW。该复位电路工作原理为:在通电瞬间,在RC电路充电过程中,RST端出现正脉冲,保证RST引脚出现10 ms以上稳定的高电平,从而使单片机复位。2.2 温度采集电路设计根据饮水机的特性及本设计的特点,本设计的温度采集电路分为两路,其中一路是采集一个水箱热水的温度,另一路是采集另一个水箱凉水的温度,因为两路都是对饮水机水箱温度的采集,因此,其元器件及电路连接是一样的。这部分电路主要器件有:温度传感器、电位器、运算放大器、电阻等。它的主要功能是把采集到的温度转换成电压,然后输入到A/D转换器转换。温度传感器选用AD590,运算放大器用LM741,LM741是单片高性能内补偿运算放大器,具有较宽的共模电压范围,在使用中不会出现闩锁现象,可用作积分器、求和放大器及普通反馈放大器。它的特性是:不需外部频率补偿 、具有短路保护 、失调电压到零的能力 、较宽的共模和差模电压范围 、功耗低 、无阻塞现象。而电位器选用阻值分别为2K和50K。其电路图如图2.3所示。图2.3 温度采集电路温度传感器是AD590,它将温度信号转换成电流信号,它检测的范围为-55+150,它具有非常好的线性输出性能,温度每增加1,其电流增加1mA。然后经过3个由LM741、电位器和电阻组成的转换电路OPA1、OPA2、OPA3。OPA1主要是将AD590输出的电流转换为电压。而OPA2是做零位调整,最后OPA3将电压放大。本设计共有两路采集电路,放大后的电压也就是输出电压,它们分别是V01、V02,V01、V02分别作为A/D转换器的两路模拟输入信号。各温度值与3个OPA的输入输出关系如表2.1所示。表2.1 各温度值与3个OPA的输入输出关系温度值OPA1OPA2OPA302.732V0V0V102.832V-0.1V0.5V202.932V-0.2V1V303.032V-0.3V1.5V403.132V-0.4V2V503.232V-0.5V2.5V603.332V-0.6V3V703.432V-0.7V3.5V803.532V-0.8V4V903.632V-0.9V4.5V1003.732V-1V5V2.2.1 温度传感器分析集成温度传感器实质上是一种半导体集成电路,它是利用晶体管的b-e结压降的不饱和值VBE与热力学温度T和通过发射极电流I的下述关系实现对温度的检测:VBE=KIT / q1nI (3.1)式中,K波尔兹常数;q电子电荷绝对值。集成温度传感器具有线性好、精度适中、灵敏度高、体积小、使用方便等优点,得到广泛应用。集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为10mV/K,温度0时输出为0,温度25时输出2.982V。电流输出型的灵敏度一般为1mA/K。 目前,集成温度传感器有很多种,AD590、AD592、LM135等,根据本设计的要求及精度,本系统选用AD590。以下是对AD590的介绍:AD590是美国模拟器件公司生产的单片集成两端感温电流源。其封装形式如图2.4所示。图2.4 AD590的封装形式它的主要特性如下:(1)流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即:IR/T=1mA/K (3.2)式中: IR流过器件(AD590)的电流,单位为mA;T热力学温度,单位为K。(2)AD590的测温范围为-55+150。(3)AD590的电源电压范围为4V30V。电源电压可在4V6V范围变化,电流 IR变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。(4)输出电阻为710MW。(5)精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55+150范围内,非线性误差为0.3。 温度传感器AD590的温度检测范围在-55+150,而且精度很高,非线性误差为0.3。达到本设计温度检测范围为095,精度1的设计要求,而且,AD590还具有线性好、精度适中、灵敏度高、体积小、使用方便等优点,因此,选用AD590作为温度传感器完全能达到设计的要求。2.3 A/D转换电路设计A/D转换部分电路的功能主要是将采集部分采集来的模拟信号转换成数字信号,然后输送到单片机进行数据处理。主要器件有ADC0809、74LS02、74S74等。ADC0809与AT89C51连接电路如图2.5所示。图2.5 A/D转换电路A/D转换器ADC0809共有八路模拟输入端,由于本设计温度采集只有两路,因此只用到两路模拟输入端,其输入通道为IN0、IN1。这两个通道的数据分别是温度采集电路的输出信号V01、V02,也就是转换为电压值的饮水机两个水箱水的温度值。选择这两个通道需要通过设置ADC0809的ADDA、B、C的值,因为它对应的是八路模拟信号,而本系统只有两路模拟信号输入,因此,只需要将低位ADDA连到AT89C51的P2.2口,并根据P2.2口的电压是低电平或高电平来选择要检测哪个通道,当ADDA值为0时选的是IN0通道,当ADDA为1时选的是IN1 通道。而ADDB、ADDC只需接地即可。2.3.1 A/D转换器选择A/D转换器的功能是将连续变化的模拟量转换成一个离散的数字量。每一个数字量都是数字代码的按位组合,每一位数字代码都是一定的“权”,对应一定大小的模拟量。为了将数字量转换成模拟量应该将其每一位都转换成响应的模拟量,然后求和即可得到与数字量成正比的模拟量。目前,市面上有很多类型的A/D转换器,如:ADC0804、ADC0809、AD574等,根据本设计控制的特点,选用ADC0809作为A/D转换器。ADC0809八位逐次逼近式A/D转换器是一种单片CMOS器件,包括8位的模/数转化器,8通道多路转换器和与微处理器兼容的控制逻辑。8通道多路转换器能直接连通8个单端模拟信号中的任何一个。片内带有锁存功能的8路模拟多路开关,可以对8路05V的输入模拟电压信号分时进行转换,片内具有多路开关的地址译码和锁存电路、比较器、256RT型网络、树状电子开关、逐次逼近寄存器SAR、控制与时序电路等。输出具有TTL三态锁存缓冲器,可以直接连接到单片机数据总线上。1. ADC0809功能如下:(1)分辨率为8位。(2)最大不可调误差小于1LSB。(3)单一+5V供电,模拟输入范围05V(4)具有锁存控制的8路模拟开关。(5)可锁存三态输出,输出与TTL兼容。(6)功耗为15mW。(7)不必进行零点和满度调整。(8)转换速度取决于芯片的时钟频率。时钟频率范围:101280KHZ,当CLK=500kHZ时,转换速度为128mS。2. ADC0809管脚及功能A/D转换器ADC0809的引脚图如图2.6所示。 图2.6 ADC0809引脚图IN0IN7:8路输入通道的模拟量输入端口。2-12-8:8位数字量输出端口。START,ALE:START为启动控制输入端口,ALE为锁存控制信号端口。这两个信号端可连接在一起,当通过软件输入一个正脉冲,便立即启动模/数转换。EOC,OE:EOC为转换结束信号脉冲输出端口,OE为输出允许控制端口。这两个信号也可连接在一起表示模/数转换结束。OE端的电平由低变高,打开三态输出锁存器,将转换结果的数字量输出到数据总线上。REF(+),REF(-),Vcc,GND:REF(+)和REF(-)为参考电压输入端,Vcc为主电源输入端,GND为接地端。一般REF(+)与Vcc连接在一起,REF(-)与GND连接在一起。CLK:时钟输入端口。ADDA,B,C:8路模拟开关的三位地址选通输入端,以选择对应的输入通道。其地址码与对应通道关系如表2.2所示。表2.2 地址码与输入通道对应关系表强调说明一点:ADC0809虽然有八路模拟通道可以同时输入八路模拟信号,但每一个瞬间只能转换一路模拟信号,各路之间的切换由软件变换通道地址实现。A/D转换器采用的转换方法主要有逐次逼近型A/D转换、双积分型A/D转换、并行A/D转换、串-并行A/D转换等,其中逐次逼近型A/D转换既照顾了转换的速度,又具有一定的精度,本系统中,传输数据的频率不高,对精度的要求也不是很高,因此,我们选用了常用的逐次逼近型A/D转换ADC0809。2.4 显示电路设计大多数的单片机应用系统,都要配置输入设备和输出设备。本系统的输出设备是显示器,根据本系统的设计特点,采用七段LED数码管作为显示器。而本系统设计要求温度检测范围095,精度1。数码管只需显示两位即可达到要求,因此,显示部分电路采用两个一位的LED数码管来组成显示器,没有要求显示小数点,LED数码管的dp脚悬空。本设计显示电路的应用有两点,一是实时显示引水机水箱的水温值,另一个是显示键盘设定的温度上、下限值。其电路连接如图2.6所示。图2.6 显示部分电路通过一个74LS47连接7个100欧姆的电阻来驱动数码管显示。数码管的VCC脚分别连接到两个三极管的共射极,而三极管的共基极连到一起接到+5V电源上。共集极分别连接两个4.7K的电阻接到单片机AT89C51的P1.4、P1.5管脚。LED显示块是由发光二极管显示字段的显示器件。在单片机应用系统中应用非常普遍,通常使用的是七段LED,这种显示器有共阳极和共阴极两种,本设计选用的是共阳极。共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压5V。当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。使用LED显示器时,为了显示数字或符号,要为LED显示器提供代码,因为这些代码是通过各段亮与灭来为显示不同字型的。7段发光二极管,再加上一个小数点位,共计8段。因此提供给LED显示器的段码正好一个字节。各字节中对应关系如表2.3所示。表2.3 各段与字节中各位的对应关系表代码位D7D6D5D4D3D2D1D0显示段dp Gfedcba将单片机I/O口的8位线与显示块的发光二极管的引出端(adp)相连,共阳极高电平有效,选通有效后8位并行输出口输出不同的数据就点亮相应的发光二极管,获得不同的数字或字符。共阳极7段显示器显示数字对应的段码关系如表2.4所示。表2.4 7段LED数字与段码对应关系表显示数字0123456789共阳极段码C0HF9HA4HB0H99H92H82HF8H80H90H2.5 键盘电路设计键盘在单片机应用系统中能实现向单片机输入数据、传送命令功能,是人工干预单片机的主要手段。键盘实质上是一组按键开关集合。通常键盘所用开关为机械弹性开关,均利用了机械触点的合、断作用。键的闭合与否,反映在输出电压是呈现高电平或低电平,如果高电平表示断开的话,那么低电平则表示键闭合,所以通过对电平高低状态的检测,便可确认按键按下与否。为了确保CPU对一次按键动作只确认一次按键,必须消除抖动的影响,这样才能使键盘在单片机系统中的使用得更加稳定。常用的键盘接口分为独立式按键接口和矩阵式键盘接口。根据本系统的设计特点及要求,键盘的功能主要是用来设置温度上下限,因此本设计采用独立式键盘来完成这一功能要求。其电路连接如图2.7所示。图2.7 独立式键盘与AT89C51连接图1、键盘电路及其说明独立式按键就是各个按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态就可以很容易的判断出是哪一个按键按下了。独立式按键电路配置灵活,软件简单。但每一个按键需占用一根输入口线,在按键数量较多时学要较多的输入口线且电路结构复杂,故此种键盘适用与按键较少或操作速度较高的场合。本设计,采用四按键键盘,所以在四个I/O口上接四个按键组成一个四按键的简易式键盘。各线通过电阻接+5V,当键盘上没有键闭合时,所有的线断开,呈高电平状态。当键盘上某一个键闭合时,该键所对应的线与连接单片机的线短路。例如:当S1号按键闭合时,它所在的线与连接线短路,使P3.2口为低电平,通过软件里对P3口查寻,如果只有P3.2口为低电平,那么就可以确定是S1键按下了,通过在软件里的设定,行使S1键的功能。如果同时有多个P3口为低电平,则报警显示,然后检查是否有多个键按下,直到只有一个P3口为低电平时,停止报警,那个低电平的P3口上连接的按键则为按下的键,在软件里执行他应该达到的功能。2、键盘功能说明S1:模式设置键,按一下进入到加热系统设置状态,再按一下切换到制冷系统设置状态。S2:步进加键,每按一下,要设置的限制值加1。S3:步进减键,每按一下,要设置的限制值减1。S4:确定键,确定前面所设的温度值。当S1键按1下,进入加热或制冷模式后,数码管显示为00,00代表温度设置起点温度。再按下按键S2数码管显示值将逐步从个位数往上加,直到想要设置的温度值,而按键S3是步进减键,按键每下一次,个位数减1。S4键是确定键,通过它来确定前面所设定的数值。3、键盘的机械抖动若Y0为低电平,S1号键闭合一次,图中t1和t3分别为键的闭合和断开过程中的抖动期(呈现一串负脉冲),抖动时间长短和开关的机械特性有关,一般为510ms,t2为稳定的闭合期,其时间由按键动作所确定,一般为十分之几秒到几秒,t0、t4为断开期。为了保证CPU对键盘的闭合仅作一次处理,在软件中必须去除抖动,在第一次检测到有按键下时,执行一段延时10ms的子程序后确认该按键电平是否仍保持闭合状态电平,如果闭合状态电平则确认有按键下,从而消除抖动的影响。键盘的机械抖动示意图如图2.8所示。 图2.8 键盘的机械抖动示意图2.6 报警电路设计报警电路主要是由发光二极管和蜂鸣器组成的,具有声、光报警功能的简单电路,其电路如图2.9所示。当温度超过设置的上、下限时,P2.2口输出高电平,三极管导通,蜂鸣器工作,发出声音。P2.3口输出高电平时,发光二极管正向导通,发光报警。图2.9 报警电路2.7 控制电路设计控制部分电路图如图2.10所示。 图2.10 控制电路该电路是由两个固态继电器作为控制开关,一个继电器控制加热装置,另一个继电器控制制冷装置。固态继电器是一种无触点通断型电子开关,是四端有源器件,其中两个端子为控制输入端,另外两个为输出受控端。为了实现输入与输出的隔离,器件采用了高耐压的光耦合器。当输入信号有效时,电路呈导通状态,反之,呈断开状态,可以实现类似电磁继电器的开关功能。固态继电器将MOSFET、GTR、普通晶闸管等组合在一起与触发电路封装在一个模块中,而且驱动电路与输出电路隔离。固态继电器是可控硅过零触发器,无触点,不用调节,对电网不会产生波形畸变。因此,非常适合本设计。控制电路工作原理:当AT89C51的RXD口输出一个高电平时,三极管开始工作,驱动继电器J1工作,继电器J1呈导通状态,加热装置开始工作。同样,当AT89C51的TXD口输出一个高电平时,三极管开始工作,驱动继电器J2工作,继电器J2开关闭合,制冷装置开始工作。第3章 软件设计系统软件设计也就是程序设计,就是在完成了硬件系统的基础上,再编写相应的程序,下载到芯片里,通过执行程序指令控制硬件,从而实现各种功能。一般来讲,软件的功能可分为两大类。一类是执行软件,它能完成各种实质性的功能,如测量、计算、显示、打印、输出控制等。另一类是监控软件,它专门协调执行模块和操作者的关系,在系统中充当组织协调的角色。软件设计就是用计算机所能接受的形式把解决问题的步骤描述出来。简单的说,软件设计就是编制计算机程序。一个好的程序应该完成规定的任务,而且应该层次清晰、易于阅读,并尽可能少占内存,缩短执行时间,但也不要一味地追求少占内存,缩短执行时间。这样做可能会使程序的可读性变差。随着大规模和超大规模集成电路的发展,芯片的内存容量也在不断的增加,计算机执行指令的时间也大大的缩短。因此,程序的长短和执行时间,不再显得那么重要,而程序的易读性和程序的开发周期,显得越来越重要。另外,在较复杂的程序设计中,必须充分考虑程序的可读性、稳定性、可扩展性、兼容性以及容错性等也是衡量与评价程序的优劣的重要指标。由于用汇编语言编写的程序效率高,占用的内存单元和CPU资源少,执行速度快,还可直接访问存储器、输入/输出接口以及扩展的各种芯片,并可直接处理中断,直接管理和控制硬件设备,适用于实时控制系统,因此,本设计选用汇编语言来编写程序。3.1 主程序流程图及简要说明本设计的软件设计包括主程序、A/D转换子程序、键盘子程序、控制子程序及显示子程序。结合本系统的功能,程序长度不会超过AT89C51内部的程序存储器,所以硬件上不用外扩程序存储器。主程序流程如图3.1所示。本设计主程序工作过程为:首先对系统初始化,由于本系统要实现对饮水机的冷、热两个水箱的检测与控制,因此先要选择控制模式,这主要是经过硬件电路的按键S1来选择的。在确定进入加热或制冷模式后,调用A/D转换子程序对采集到的模拟量进行转换,转换完毕保存数据后,调用键盘子程序,这个子程序主要完成对温度上、下限的设置。完成设置后,调用控制子程序1或子程序2,通过对执行这个程序,实现报警、加热或制冷。最后调用显示子程序来显示温度值。整个系统是一个闭环的,系统工作是循环进行的,这也就实现了实时检测的设计要求。开始调用控制子程序2初始化进入加热模式?NY调用A/D转换子程序调用A/D转换子程序调用键盘子程序调用键盘子程序调用控制子程序1调用显示子程序图3.1 主程序流程图3.2 A/D转换子程序在这一模块的软件设计中,主要完成的是将采集电路采集到的模拟信号转换为数字信号,然后送到单片机进行处理,从而完成A/D转换部分的最后功能,该部分程序流程如3.2所示。根据设计的要求,程序先对端口初始化,根据模式选择的结果,选择其中一路的采集来的数据,然后启动A/D转换功能,在转换一段时间后,判断转换是否结束,如果结束就自动进入下一路的转换,否则继续转换。取数据ADC0809地址加1启动转换A/D转换结束?地址数小于2 ?YNYN开始返回图3.2 A/D转换子程序流程图3.3 键盘子程序这部分设计主要完成温度上、下限的设置。其流程图如图3.3所示。本设计使用4个单键,这使得键值的识别问题也比较简单化。在执行程序的时候只需逐位判断P3.2,P3.3,P3.4,P3.5口是高电平还是低电平,若为高电平,则表示没有按键按下,若为低电平,则表示有按键按下。在程序的设计当中,考虑了键的去抖动问题。因为用手按下一个按键时,往往会出现所按键在闭合位置和断开位置之间跳动几下才稳定到闭合状态的情况。在释放一个键的时候,也会出现类似的情况,抖动的时间是不一致的,通常小于10毫秒,若抖动的问题不解决,就会引起闭合键的多次读入。对于键的抖动处理,一般采用软件延时10毫秒的方法。在发现有按键闭合时,不是立即读入该键值,而是延时一段时间以后,再进行键闭合与否的判断,确认此时是否真的有按键下,有则进行该按键的处理,没有则不进行处理。有按键下?按键处理判别键号延时10msYN开始返回图3.3 键盘子程序流程图3.4 控制子程序本部分主要是实现声光报警和驱动加热或制冷功能。由于本设计的控制对象有两路,一路是控制饮水机的热水水箱,另一路是控制凉水水箱,因此,有两个子程序,它们分别为控制子程序1和控制子程序2。控制程序1流程图如图3.4所示,控制子程序2流程图如图3.5所示。选择控制模式后,先将采集转换后的数据与设定的值进行比较,如果是加热模式,且采集转换的值低于设定值的下限,置RXD为高电平,加热器开始加热;如果是制冷模式,且采集转换的值高于设定值的上限,则置AT89C51的P2.3、P2.4口为高电平,实现声光报警,同时,置TXD为高电平,制冷装置开始工作。开始保存数据低于下限?NNY高于上限?开始加热Y取数据N等于下限?报警、停止加热Y返回图3.4 控制子程序1流程图开始保存数据N高于上限?YN低于下限?开始制冷Y取数据N等于上限?报警、停止制冷Y返回图3.5 控制子程序2流程图3.5 显示子程序此模块采用的是动态扫描的方法,这样各位LED能够显示出与本位相应的显示字符。显示子程序流程图见图3.6所示。在编写程序时,在某一时刻,只让某一位的位选线处于选通状态,而其它各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字符的段码。这样,在同一时刻,两位LED中只显示选通的一位,而另一位是熄灭的。依次循环下去,就可以使各位显示出将要显示的字符,虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于LED显示器的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可造成多位同时亮的假象,达到同时显示的目的。本次设计,显示一位保持1ms时间,共需2ms时间。YN开始延时1ms内存地址加1输出显示取内存数据地址数为2?返回图3.6 显示子程序流程图第4章 系统调试一个单片机系统经过总体设计,完成了硬件设计和软件设计开发。元器件安装后,在系统的程序存储器中下载编好的应用程序,系统即可运行。但是一次性成功几乎是不可能的,多少会出现一些硬件、软件上的错误,这就需要调试来发现错误并加以改正AT89C51单片机虽然功能很强,但只是一个芯片,一个完整的控制系统还包括很多功能模块,因此,进行调试时,需要逐个逐项仔细的进行。 一项设计到实现具体功能与软件和硬件的联合调试密不可分,因为硬件要通过软件来实现,软件要通过硬件来体现。只有从实际的观察效果中分析,配合好软、硬件协调工作,安排好相应的工作时序才能达到理想的效果,实现设计。所以,整体调试是从设计到实现的关键一步。在良好的设计基础之上,调试过程的好坏直接决定了我们的设计成果。在任何一个设计中电路调试这部分内容是最关键,难度最大,最考验人的工作。整个设计的成败全系于此。同时它也能够检验设计的方案的可行性和正确性。在这个过程中可能要遇到在设计中所没有考虑到的地方,通过调试使设计得到更好的补充。 调试工作包括硬件检查,软件调试,软硬件联通调试三部分。硬件检查主要是针对电路板的具体电路连接是否正确,测量各电路的电压、电流等是否达到要求的值等;软件调试主要是针对语法错误,即能否正确编译、单步运行时逻辑上是否正确;软硬联调就是:硬件在软件的“控制”下完成所需要的功能,这一部分是最关键的环节,也是难度最大的部分。4.1 仿真系统简介爱思系列单片机仿真系统是南京爱思电子有限公司开发的一种高性能,低价格的通用单片机开发工具,可用于各种单片机的软硬件开发和调试,它由爱思仿真系统硬件和爱思集成调试软件两部分组成。4.1.1 爱思单片机仿真系统硬件1. 爱思系列单片机仿真系统硬件采用大规模在线编程芯片制造,将整个单片机仿真控制电路集成到一片大规模LPD芯片中,仿真CPU外置在仿真头上,通过更换不同的仿真头,可对各种单片机进行仿真。2. 可仿真8位及16位单片机。3.采用硬件断点技术,不占用单片机任何资源,在用户程序运行中可打入CTRL-C中断用户程序运行,返回监控。4. 串口与计算机通信,波特率自动设置,最高波特率可达38,400。5. 配接爱思逻辑分析仪,实现各种复杂的组合断点和观察各种逻辑波形及分析时序关系。4.1.2 爱思集成调试软件1. 爱思集成调试软件,具有编辑、汇编、编译、调试和软件模拟等功能,具体的操作均可通过窗口和菜单的选择来完成。将软件命令和反映程序的运行的情况集中在同一屏幕上的形式,称为集成环境,集成环境可以减少用户记忆众多命令的负担,方便用户编写和调试软件,直观的反映程序运行的情况,提高软件的开发效率。2. 支持汇编语言、PLM、C高级语言源程序调试。3. 可观察数组、纪录等各种复杂变量。4. 可进行软件模拟,该软件可以用软件模拟的方式来调试用户编写的程序。所谓软件模拟是指用计算机模仿单片机的运行情况,而不需要单片机仿真机硬件支持。当软件模拟单片机的运行情况并成功后,在用仿真器仿真调试。这种软件模拟功能对单片机的学习和开发都是必不可少的。5. 可以与爱思单片机仿真系统配合进行仿真,该软件也可以与爱思仿真器配合对单片机进行仿真,直观的反映CPU内部各部分、外部程序存储器和外部数据存储器的运行情况,为用户调试程序提供准确的调试信息。4.2 硬件电路检查本设计按照其功能模块的不同,其硬件电路的检查包括:温度采集电路、A/D转换电路、显示电路、键盘电路、报警电路、控制电路六部分。4.2.1 温度采集电路检查温度采集部分电路的检查是比较复杂的,原因是这部分电路的器件比较多,而且电位器的调节存在误差,而且放大电路得到的放大倍数往往不能达到所期望的值。由于温度传感器AD590是将温度值转换成电流信号输出,因此,调试时,采用一个电流源来代替,而放大电路是由三级运放构成的,要实现该电路的功能就要进行繁琐的调试。要先调第一级运放使其输入和输出相同,然后调整第二级运放使其差放值是2.73,同时第二级也是一个反相器,这样输出的电压就是2.73减去输入的电压值,最后调第三级运放,使其放大倍数为5倍。4.2.2 A/D转换电路检查这部分电路的检查主要是对器件ADC0809的检查,刚开始检查时,并没有发现问题,通电后用万用表测量其管脚电压时,发现其11、12脚不是5V,而28脚电压是5.0V,后来,经过检查管脚发现,是管脚接错了,把左下管脚14脚接地,右上管脚28脚接电源了,而ADC0809的管脚的接地脚和接电源脚跟其它的芯片不一样,11脚 Vcc和12脚REF(+)应接+5V,而13脚GND和16脚REF(-)接地。这主要是在焊接器件时疏忽大意所致,最后,按要求连接后,问题也就解决了。4.2.3 显示电路检查在通电后,发现右边数码管的对应的B段不亮,经检查,连接B段脚的线断开了,焊接上后显示仍有问题,再仔细检查,发现连接左边数码管Vcc脚的三极管B、E接反了,从新改过后显示正常。为了进一步保证这部分电路的正常,又进行了下一步的检测,先是下载了一个99秒倒记时的程序到AT89C51芯片上,通电后,数码管从99秒逐个减小变化到0秒,然后再反复循环。这说明这部分电路正常。4.2.4 键盘电路检查这部分的设计主要由四个按键跟四个电阻组成。通电后,每个按键下的时候,数码管的显示值没有变化,经检查,四个按键连在一起但没有接地,接地后,S2按下时,对应数码管显示值加一,S2键正常,S3键下时,数值无变化,问题出在软件编程上,经修改程序后,四个按键都正常。5.2.5 报警电路检查这部分主要由蜂鸣器和发光二极管组成。经检查调试,结果没有问题,二极管亮,蜂鸣器有声,虽然蜂鸣器的声音偏小,但不影响报警电路的正常工作。4.2.6 控制电路检查本部分的检查,主要是在通电后,检查固态继电器开关的通与断,通电后发现开关没有动静,检查硬件没有任何问题,判断是器件有问题或程序有问题,经过修改程序,器件工作正常。4.3 软件调试上机调试程序是检验程序正确性的一个重要环节。在调试时,应在单片机开发系统上先对程序进行分块调试,对入口参数和变量预赋初值,观察运行结果。如果执行结果和预想的不一致,可采用设置断点或单步运行的方法,找出错误并修改。该设计是软硬件结合。软件的设计在与硬件联调之前主要是对所编写的程序进行语法错误的查找,然后进行编译,生成可以写入单片机的HEX文件。在WAVE中运行后,通过观察数据窗口,也可以看出一部分结果,但是只有与硬件联调,在硬件上所显示的结果才能最终看出软件的调试成功与否。在软件调试过程中,同样也是按照分步调试的方法进行的。对软件的各个子模块进行调试,在调试过程中遇到了一些困难,例如在进行程序编译后,提示有一多余字符的错误,经仔细检查,存在语法错误,改正后进行编译依然存在这样的未定义字符。后来,拿程序与别的可运行程序进行比较,发现在程序当中由于自己习惯性的动作多键入了空格,遂去掉空格,问题得以解决。4.4 软硬联调显示部分:在经过硬件和软件的单独调试后,下一步需要进行的就是软硬件的联合调试了。在这个过程中,最先调试的部分是显示部分,因为以后的其他部分的调试结果都要通过显示部分来显示结果,所以先做了这一部分的工作。在最开始,将整个程序进行仿真,没有任何结果显示,后经检查在软件编写中把段选地址和位选地址计算错了,将错误改过来以后,显示正常。控制电路和报警电路:在这部分的调试,在软件里置TXD,RXD脚为高电平驱动报警电路,设置INTO脚为低电平驱动调节装置。在这部分电路联调之前已经解决了硬件电路的问题,在联调中顺利通过。键盘部分:首先编写了一个简单的键盘的实验程序。在进行仿真后发现键盘的S1键有一点问题,其机械抖动时间太长,影响了键盘的整体工作。这个问题只要换一个按键就可以解决了。解决这个问题后,键盘部分能顺利工作。采集部分:这部分的联通调试实质上是采集部分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理质量提升与成本控制-洞察及研究
- 基于多任务学习的智能调试器优化研究-洞察及研究
- 疏血通数字健康中的个性化健康管理-洞察及研究
- 2026届重庆育才中学数学九上期末检测模拟试题含解析
- 江苏省盐城市大丰区新丰初级中学2026届八年级数学第一学期期末综合测试模拟试题含解析
- 2026届贵州省兴仁县黔龙学校数学九上期末教学质量检测模拟试题含解析
- 2026届辽宁省大连市新民间联盟数学九年级第一学期期末联考模拟试题含解析
- 安徽省宿州十一中学2026届数学八年级第一学期期末经典模拟试题含解析
- 山西固锈剂施工方案
- 后浇带模板独立支撑工程施工方案
- 大数据驱动下的档案信息管理系统研发与应用
- 雅思小作文教学课件
- 电气柜安装服务合同范本
- 盆腔炎性疾病护理查房
- DB11T 2440-2025 学校食堂病媒生物防制规范
- 高压氧的健康宣教
- 2025至2030中国硅单晶生长炉行业项目调研及市场前景预测评估报告
- 成人床旁心电监护护理规程
- 食用菌种植项目可行性研究报告立项申请报告范文
- 2025版技术服务合同协议
- 焦炉机械伤害事故及其预防
评论
0/150
提交评论