智能温室控制系统_第1页
智能温室控制系统_第2页
智能温室控制系统_第3页
智能温室控制系统_第4页
智能温室控制系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要随着电子技术的飞速开展,单片机在国民经济生产各行业发挥了重要的作用。它因为集成度高、体积小、运行可靠、应用灵活、价格低、面向控制等特点得到了广阔工程技术人员和客户的好评。在温度控制方面,单片机能够代替常规的模拟调节器。本文主要设计了单片机温室控制系统硬件电路和软件程序。系统具工作可靠、实时性强等特点,满足控制精度的要求。本着在满足系统性能要求的前提下,尽可能的减少硬件本钱。本文主要涉及到控制系统的硬件设计和单片机的控制软件编程。本系统选用AD590对室温进行检测,并且选用OP07低漂移高精度前置放大器,对信号进行放大。在ADC0809完成数模转换之后,8051单片机对数据进行处理。人机接口电路局部能实现温度设定、温度显示、超温报警等功能。本文介绍硬件的选取与接口电路的设计以及相应算法的软件程序编程。目录……………..3第一章绪论…………………4第二章硬件系统……………42.1.1总体方案设计……………………42.1.2方案设计框图……………………52.28051单片机………………52.3温度传感器AD590与运算放大器……………………102.4ADC0809…………112.5键盘与LED显示………112.6蜂鸣器…………………13第三章软件的设计及算法…………133.1程序流程…………133.2局部软件设计…………………133.2.1………163.4显示电路的框图……………………173.5CPU处理的框图……………………173.6系统软件局部设计…………………193.7主控中心软件功能…………………21总结…………………22参考文献………第一章绪论1.1引言随着社会的进步和工农业生产技术的开展,许多产品对生产和使用环境的要求越来越严,人们对温度、湿度、光强、二氧化碳浓度、灰尘等环境因素的影响越来越重视了。为此,本文以农业技术开展为目的开发了一种智能控制系统。众所周知,光、温度、湿度是农业生产不可缺少的因素,所以本设计将其作为重点数据来处理,而目前市场上普遍存在的温度检测仪器大都是单点测量,而且温度信息传递不及时,精度达不到要求,不利于农业控制者根据温度变化及时做出决定。而湿度传感器价格昂贵,大多使用进口元件,但事实上,农用精度要求并不高,现在国产湿度传感器完全可以适用。为此,本设计开发了一种能够同时测量多点,并实时性高、精度高,能够综合处理多点温度信息,并能进行光控和湿度控制的测控系统就。本设计以AT89C51单片机为核心来对多点温度进行实时巡检。各检测单元(从机)能独立完成各自功能,同时能根据主控机的指令对温度进行定时采集。测量结果不仅能在本地显示,而且可以利用单片机的串行口和RS-485总线通信协议将采集的数据传送到主控机,以进行进一步的存档、处理。主控机负责控制指令的发送,以控制各个从机的温度采集,收集测量数据,并对测量结果(包括历史数据)进行整理、显示和存储。主控机与各从机之间也能够相互联系、相互协调,从而到达系统整体统一、和谐的效果。第二章硬件系2.1总体方案设计这次课程设计题目为智能温室控制系统。设计要求为:1.具有温度自动调节功能;2.具有温度显示和报警功能。方案的系统框图如下列图:单片机单片机传感器运算放大电路模样数转换电路键盘输入显示电路报警电路该局部温度检测局部检测局部采用热电偶,它需要冷端补偿电路与其配套,并且热电偶输出电压只有几毫负,必须经过放大处理才能A/D转换和D/A转换器接口,假设采用8位A/D转换器,ADC0809那么输人端需采用仪用放大器,把几毫伏的电压信号放大到5伏左右。这种系统具有测量温度范围可以从零下一百度到早上千摄氏度,而且有很多热电偶精度非常高这是这种测量系统的优点。2.1.2单片机的介绍单片机控制系统由单片机系统和工业对象组成,如图2-1所示。单片机系统由硬件和软件两局部组成。硬件是指单片机本身及外围设备实体,软件是指管理单片机的程序以及过程控制的应用程序。工业对象包括被控对象、测量变送、执行机构和电器开关等装置。图2-1单片机控制系统图本设计采用MCS-51单片机8051片内除具有CPU〔包括控制器与运算器〕外,还包括ROM,RAM,4×8位的并行口,串行口和2×16位定时器/计数器。它是一个功能很强的单片微型计算机2.单片机内部结构图2-38051单片机内部结构图一个完整的计算机应该由运算器、控制器、存储器〔ROM及RAM〕和I/O接口组成。一般微处理器〔如Z80〕只包括运算器和控制器两局部。和一般为处理器相比,8051增加了四个8位I/O口、一个串行口、4KBROM、128BRAM、很多工作存放器及特殊功能存放器〔SFR〕。各局部的功能简述如下。①中央处理单元〔CPU〕CPU是单片机的核心,是计算机的控制和指挥中心,由运算器和控制器等部件组成。a)运算器:包括一个可进行8位算术运算和逻辑运算的单元ALU,8位的暂存器1、暂存器2,8位的累加器ACC,存放器B和程序状态存放器PSW等。ALU:可对4位〔半字节〕、8位〔一字节〕和16位〔双字节〕数据进行操作。能做加减、乘、除、加1、减1、BCD数十进制调整及比拟等算术运算和与、或、异或、求补及循环移位等逻辑操作。ACC:累加器ACC经常作为一个运算数经暂存器2进入ALU的输入端,与另一个来自暂存器1的运算数进行运算,运算结果又送回ACC。除此之外,ACC在8051内部经常作为数据传送的中转站。在指令中用助记符A来表示。PSW:程序状态字存放器,8位,用于指示指令执行后的状态信息,相当于一般微处理器的标志存放器。PSW中各位状态供程序查询和判别用。B:8位存放器,在乘、除运算时,B存放器用来存放一个操作数,也用来存放运算后的一局部结果;假设不做乘、除运算时,那么可作为通用存放器使用。另外,8051片内还有一个布尔处理器,它以PSW中的进位标志位CY为其累加器〔在布尔处理器及其指令中以C代替CY〕,专门用于处理位操作。b)控制器:包括程序计算器PC、指令存放器IR、指令译码器ID、振荡器及定时电路等。程序计数器PC:有两个8位的计数器PCH及PCL组成,共16位。PC实际上是程序的字节地址计数器,PC中的内容是将要执行的下一条指令的地址。改变PC的内容就可改变程序执行的方向。PC可对64KB的ROM(程序存储器)直接寻址,也可对8051片外RAM〔数据存储器〕寻址。指令存放器IR及指令译码器ID:由PC中的内容指定ROM地址,取出来的指令经指令存放器IR送至指令译码器ID,由ID对指令译码并送PLA产生一定序列的控制信号,以执行指令所规定的操作。振荡器及定时电路:8051单片机片内有振荡电路,只需外接石英晶体和频率微调电容〔2个30pF左右〕,其频率范围为1.2MHz-12MHz。该脉冲信号就作为8051工作的根本节拍,即时间的最小单位。②存储器8051片内有ROM〔程序存储器,只能读〕和RAM〔数据存储器,可读可写〕两类,它们有各自独立的存储地址空间,与一般微机的存储器配置方式很不相同。a)程序存储器(ROM):8051及8751的片内程序存储器容量为4KB,地址从0000H开始,用于存放程序和表格常数。b)数据存储器(RAM):8051/8751/8031片内数据存储器均为128B,地址为00H—7FH,用于存放运算的中间结果、数据暂存以及数据缓冲等。在这128B的RAM中,有32个字节单元可指定为工作存放器,这同一般微处理器不同。8051的片内RAM和工作存放器排在一个队列里统一编址。由图4.4可见,8051单片机内部还有SP,DPTR,PCON,…,IE,IP等特殊功能存放器,它们也同128字节RAM在一个队列里编址,地址为80H—FFH。在这128字节RAM单元中有21个特殊功能存放器〔SFR〕,这些特殊功能存放器还包括P0-P3口锁存器。③I/O接口8051有四个8位并行接口,即P0-P3。它们都是双向端口,每个端口各有8条I/O线,均可输入/输出。P0-P3口四个锁存器同RAM统一编址,可以把I/O口当作一般特殊功能存放器来寻址。2.1.3MCS-51单片机引脚51系列单片机引脚分配如图4-5所示。图4-4mcs-51单片机引脚图这40脚大致可分为:电源〔VCC、VSS、VDD、VPD〕,时钟〔XTAL1、XTAL2〕,I/O〔P0—P3〕,地址总线〔P0、P2〕,数据总线〔BUS〕和控制总线〔ALE、RST、、、〕6大局部。它们的功能简述如下:⑴电源线VSS:引脚号20,电源地线。VCC:引脚号40,芯片的主电源,接+5V。控制总线ALE/:引脚号30,地址锁存有效信号,在它的下降沿用于外部程序存储器的低8位地址锁存,使BUS〔P0〕分时用作地址总线低8位和数据总线。此信号每机器周期出现2次,只在访问外部数据存储器期间才不输出ALE。所以在任何不使用外部数据存储器的系统中,ALE以1/6振荡频率的固定速率输出,因而它能用作外部时钟或定时器。在8751片内EPROM编程时,此段输入编程脉冲信号〔〕。:引脚号29,外部程序存储器选择信号,并在外部程序存储器读取指令时产生,指令内容读到数据总线上。此信号在每个机器周期产生2次有效,在执行内部程序存储器取指时无效。RST/VPD:引脚号9,复位输入信号。在振荡器工作时,该引脚上2个机器周期的高电平可实现复位操作。在掉电情况下〔VCC降到操作允许限度以下〕,VPD将为芯片内的RAM提供备用电源。/VDD:引脚号31,访问外部程序存储器控制信号输入端。当为低电平时,单片机都到外部程序存储器取指。当为高电平且PC值小于0FFFH时,CPU执行内部程序存储器程序。在8751片内EPROM编程时,此端为21V编程电源〔VDD〕输入端。I/O线P0〔BUS〕:引脚号32—39,单片机的双向数据总线和低8位地址总线。在分时操作时,先用作地址总线,在ALE信号的下降沿,地址被锁存,然后作为数据总线;也可以作为双向并行I/O口。在程序校验期间,它用于数据输出。P1:引脚号1—8,准双向I/O口。在编程校验期间,用于输入低8位地址。P2:引脚号21—28,准双向I/O口。在访问外部存储器时,用作高8位地址总线;在作编程校验时,用于输入高8位地址和控制信息。P3:引脚号10—17,准双向I/O口。P3的每一根线还有特殊的第二功能,如表4-2示。表4-2P3口的第二功能引脚第二功能标记第二功能P3.0RXD串行输入口P3.1TXD串行输出口P3.2外部中断0输入P3.3外部中断1输入P3.4T0定时/计数器0外部输入P3.5T1定时/计数器1外部输入P3.6外部数据存储器写选通P3.7外部数据存储器读选通⑷振荡器和时钟电路XTAL1:引脚号19,内部振荡器外接晶振的一个输入端。在使用外部振荡源时,此端必须接地。XTAL2:引脚号18,内部振荡器外接晶振的另一个输入端。在使用外部振荡源时,此端用于输入外部振荡信号。XTAL2也是内部时钟发生器的输入端。当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。如果单片机是EPROM,在编程其间,将用于输入编程脉冲。当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器那么把指令数据放到P0口上,由CPU读入并执行。EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址那么读取外部指令数据。如EA为低电平,那么不管地址大小,一律读取外部程序存储器指令。图4-5时钟电路接线图2.2复位及其复位电路2.2.1复位操作复位是单片机的初始化操作,其主要功能是将程序计数器PC初始化为0000H,使单片机从0000H单元开始执行程序。在运行中,外界干扰等因素可使单片机的程序陷入死循环状态或跑飞。为摆脱困境,可将单片机复位,以重新启动。复位也使单片机退出低功耗工作方式而进入正常工作状态。复位不影响片内RAM的内容,但对SFR中的一些存放器有影响,2.2.2复位电路RST引脚是复位信号的输入端,高电平有效。其有效时间应持续24个振荡周期〔即两个机器周期〕以上。RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。8051的复位方式可以是自动复位,也可以是手动复位,见下列图。此外,RESET/Vpd还是一复用脚,Vcc掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丧失。复位操作有上电自动复位和手动按键复位两种方式。图2-4为具有两种复位方式的电路。只要电源的上升时间不超过1ms,就可以完成自动上电复位,即接通电源时就完成了复位操作。按动键S,可实现手动复位。复位电路如图4-6所示:图4-6复位电路接线图2.2.3温度传感器集成温度传感器实质上是一种半导体集成电路,它是利用晶体管的b-e结压降的不饱和值VBE与热力学温度T和通过发射极电流I的下述关系实现对温度的检测,集成温度传感器具有线性好、精度适中、灵敏度高、体积小、使用方便等优点,得到广泛应用。集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为10mV/K,温度0℃时输出为0,温度25℃时输出2.982V。电流输出型的灵敏度一般为1mA/K。AD590是美国模拟器件公司生产的单片集成两端感温电流源。它的主要特性如下:流过器件的电流〔mA〕等于器件所处环境的热力学温度,AD590的测温范围为-55℃到+150℃。AD590的电源电压范围为4V-30V。电源电压可在4V-6V范围变化,电流变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。输出电阻为710MW。精度高共有I、J、K、L、M五档,其中M档精度最高,在-55℃到+150℃范围内,非线性误差为±0.3℃。AD590的输出电流I=〔273+T〕μA〔T为摄氏温度〕,因此测量的电压V为〔273+T〕μA×10K=〔2.73+T/100〕V。为了将电压测量出来又务须使输出电流I不分流出来,我们使用电压跟随器其输出电压V2等于输入电压V。由于一般电源供给教多器件之后,电源是带杂波的,因此我们使用齐纳二极管作为稳压元件,再利用可变电阻分压,其输出电压V1需调整至2.73V接下来我们使用差动放大器其输出Vo为〔100K/10K〕×〔V2-V1〕=T/10,如果现在为摄氏28℃,输出电压为2.8V,输出电压接AD转换器,那么AD转换输出的数字量就和摄氏温度成线形比例关系。2.2.4运算放大电路电路需要两路运算放大电路,所以选择双路运算放大器,一路作跟随器另一路作差分放大器,LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。LM358的封装形式有塑封8引线双列直插式和贴片式,本实训用8引线双列直插式DIP8。特性(Features):

内部频率补偿直流电压增益高(约100dB)单位增益频带宽(约1MHz)电源电压范围宽:单电源(3—30V);双电源(±1.5一±15V)低功耗电流,适合于电池供电,低输入偏流低输入失调电压和失调电流共模输入电压范围宽,包括接地差模输入电压范围宽,等于电源电压范围输出电压摆幅大(0至Vcc-1.5V)为了减少测量电压时对AD590的电流分流所以本实训先用一路放大器作为跟随器,电压跟随器的显著特点就是,输入阻抗高,而输出阻抗低,一般来说,输入阻抗要到达几兆欧姆是很容易做到的。输出阻抗低,通常可以到几欧姆,甚至更低。在电路中,电压跟随器一般做缓冲级及隔离级。因为,电压放大器的输出阻抗一般比拟高,通常在几千欧到几十千欧,如果后级的输入阻抗比拟小,那么信号就会有相当的局部损耗在前级的输出电阻中。在这个时候,就需要电压跟随器来从中进行缓冲。起到承上启下的作用。应用电压跟随器的另外一个好处就是,提高了输入阻抗,这样,输入电容的容量可以大幅度减小,为应用高品质的电容提供了前提保证。AD590是恒流输出,其输出电流刚好是1uA/K。在电路中用10K的电阻跟AD59串连,因此电阻两电压刚好就是0.01V/K。在零摄氏度时电阻两端的电压为2.73V然而模数转换ADC0809的输入电压为0-5V,分辨率为0.19。精度比拟低,如果电压跟随直接与模数转换模块直接相连就会有很大误差。所以还要经过差分放大电路把电压放大10倍。具体是把电压跟随器输出电压与一个标准的2.73V的相减然后再放大10倍。这样做之后温度每改变一摄氏度电压就改变0.1V。这样就可以送入模数转换模块进行转换了。该电路的输入端是两个信号的输入,这两个信号的差值,为电路有效输入信号,电路的输出是对这两个输入信号之差的放大。设想这样一种情景,如果存在干扰信号,会对两个输入信号产生相同的干扰,通过二者之差,干扰信号的有效输入为零,这就到达了抗共模干扰的目的。一种单晶体管电流镜像与适当的负载相接合,其中结合了适当的开关集合,以实现比拟器功能。具体地,差分电路包括单晶体管电流镜像,所述单晶体管电流镜像包括通过开关与晶体管相连的电容器以及通过各自独立的开关与电流镜像相连的两个电流源,与电容器开关一起操作电流源之一的开关,以便充电电容器,并且操作另一个电流源的开关,以便所述电路作为具有电流源负载的源极跟随放大器进行操作。因此,晶体管特性的空间分布不会影响比拟器功能。2.3传感器及放大电路传感器输出电流是以绝对温度零度〔-273℃〕为基准,每增加1℃,它会增加1μA输出电流,因此在室温25℃时,其输出电流Iout=〔273+25〕=298μA。测量Vo时,不可分出任何电流,所以在应用时我们还要通过运算放大器来作相应处理才能到达测量V0时,不分出任何的电流,电路如图3.2所示。图3.2传感器信号放大电路电路分析:AD590的输出电流I=〔273+T〕μA〔T为摄氏温度〕,因此测量的电压为2.V。为了将电压测量出来又务须使输出电流I不分流出来,我们使用电压跟随器其输出电压V2等于输入电压V。由于一般电源供给教多器件之后,电源是带杂波的,因此我们使用齐纳二极管作为稳压元件,再利用可变电阻分压,其输出电压V1需调整至2.73V接下来我们使用差动其输出Vo为〔100K/10K〕×〔V2-V1〕=T/10,如果现在为摄氏28℃,输出电压为2.8V,输出电压接AD转换器,那么AD转换输出的数字量就和摄氏温度成线形比例关系。2.4模数转换传感器输出信号经过电压跟随器和差分放大电路之后,输出的是0-5V的电压信号,为了把这一信号用数码管显示出来,还要经过模数转换器件ADC0809把0-5V的电压转为数字信号0-255。a/d转换器的功能是把模拟量变换成数字量。由于实现这种转换的工作原理和采用工艺技术不同,因此生产出种类繁多的a/d转换芯片。a/d转换器按分辨率分为4位。6位。8位。10位。14位。16位和bcd码的31/2位。51/2位等。按照转换速度可分为超高速(转换时间≤330ns),次超高速,高速,低速(转换时间>330μs)等。a/d转换器按照转换原理可分为直接a/d转换器和间接a/d转换器。所谓直接a/d转换器,是把模拟信号直接转换成数字信号,如逐次逼近型,并联比拟型等。其中逐次逼近型a/d转换器,易于用集成工艺实现,且能到达较高的分辨率和速度,故目前集成化a/d芯片采用逐次逼近型者多;间接a/d转换器是先把模拟量转换成中间量,然后再转换成数字量,如电压/时间转换型(积分型),电压/频率转换型,电压/脉宽转换型等。其中积分型a/d转换器电路简单,抗干扰能力强,切能作到高分辨率,但转换速度较慢。有些转换器还将多路开关。基准电压源。时钟电路。译码器和转换电路集成在一个芯片内,已超出了单纯a/d转换功能,使用十分方便。A/D转换器的主要技术参数1.分辨率:分辨率是指A/D转换器输出数字量的最低位变化一个数码时,对应输入模拟量的变化量.通常以A/D转换器输出数字量的位数表示分辨率的上下,因为位数越多,量化单位就越小,对输入信号的分辨能力也就越高.例如,输入模拟电压满量程为10V,假设用8位A/D转换器转换时,其分辨率为10V/28=39mV,10位的A/D转换器是9.76Mv,而12位的A/D转换器为2.44mV。2.转换误差:转换误差表示A/D转换器实际输出的数字量与理论上的输出数字量之间的差异.通常以输出误差的最大值形式给出.转换误差也叫相对精度或相对误差.转换误差常用最低有效位的倍数表示.例如,某A/D转换的相对精度为±(1/2)LSB,这说明理论上应输出的数字量与实际输出的数字量之间的误差不大于最低位为1的一半。3.转换速度:A/D转换器从接收到转换控制信号开始,到输出端得到稳定的数字量为止所需要的时间,即完成一次A/D转换所需的时间称为转换速度.采用不同的转换电路,其转换速度是不同的,并行型比逐次逼近型要快得多.低速的A/D转换器为1~30ms,中速A/D转换器的时间在50μs左右,高速A/D转换器的时间在50ns左右,ADC809的转换时间在100μs左右。采样频率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。,当数字量变化时,d/a转换器输出的模拟量按比例关系变化的程度。理想的d/a转换器是线性的,但是实际上是有误差的,模拟输出偏离理想输出的最大值称为线性误差。8路8位A/D转换器,即分辨率8位。具有转换起停控制端。转换时间为100μs单个+5V电源供电模拟输入电压范围0~+5V,不需零点和满刻度校准。工作温度范围为-40~+85摄氏度低功耗,约15mW。内部结构ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比拟器、8位开关树型D/A转换器、逐次逼近外部特性〔引脚功能〕ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。下面说明各引脚功能。IN0~IN7:8路模拟量输入端。2-1~2-8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路ALE:地址锁存允许信号,输入,高电平有效。START:A/D转换启动信号,输入,高电平有效。EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平。OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能翻开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。REF〔+〕、REF〔-〕:基准电压。Vcc:电源,单一+5V。GND:地。ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比拟器。START上升沿将逐次逼近存放器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门翻开,转换结果的数字量输出到数据总线上本次实训只用到一路模拟信号,所以ADC0809的地址选择端A、B、C直接与地相边,默认选择IN0输入通道。ALE与START端直接相连再边到单片机的P2口,ADC0890必须由外部提供时钟信号,其时钟信号频率范围是:10-1248kHZ,所以时钟信号可以由单片机提供,单片机ALE端输出频率是晶振频率的六分之一。所以单片机的晶振应选6MHz这样ALE端输出1000kHz的频率就可以供给ADC0809使用2.5显示元器件动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制翻开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。采用动态显示方式,由于端口的问题以及动态显示方式的优越性,在此设计的连接方式上采用共阴级接法。显示器LED有段选和位选两个端口,首先说段选端,它由LED八个端口构成,通过对这八个端口输入的不同的二进制数据使得它的时间显示也不同,从而可以得到我们所要的时间显示和温度。2.6故障报警接口设计当温度高于上限温度时,报警系统报警。显示局部可实时显示电炉的炉温值。多功能控制按键,通过软件控制实现按键的多功能操作,可以完成设定温度基准值和报警取消等功能。⑴蜂鸣器的介绍①蜂鸣器的作用

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、机、定时器等电子产品中作发声器件。②蜂鸣器的分类

蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

③蜂鸣器的电路图形符号

蜂鸣器在电路中用字母“H”或“HA”〔旧标准用“FM”、“LB”、“JD”等〕表示。⑵蜂鸣器的结构原理压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。2.7软件设计硬件制作完毕之后,接下来就是程序设计,本设计采用C语言,在主程序中,主要实现初始化,模数转换,按键处理,温度采用动态显示方式。当有键按下时,进入按键处理程序,程序流程图如图6.1所示。显示温度数据处理启动模数转换开始显示温度数据处理启动模数转换开始按键处理报警程序第三章软件的设计3.1程序流程本系统软件主要由主控机程序和从机程序两局部构成。主程序主要实现系统的初始化、数据显示、从机相关信息设定及通信的处理。系统的初始化包括存放器的初始化(控制存放器、堆栈、中断存放器等),通信初始化(串口的初始化,MAX485的初始化,通信缓冲区的初始化),数码管初始化,输出端口的初始化,以及采集、累计数据的初始化。数据显示那么包括各类参数、测量数据等的读取和显示屏的刷新。通信的处理主要是针对主空机与从机的信息交换与处理。从机程序主要由温/湿度信号采集程序、光控指示程序、报警程序、温度存储程序和响应主机命令程序组成,该从机采样流程图如图11所示。从机响应主机的程序实际上是一个中断处理程序。从机在工作过程中,当检测到主机发送来的命令时,它将停止温度信号采集程序,转而去响应主机的请求。主机命令或请求有以下四种:报警查询、设置从机时间、设置报警阈值和巡检温度。3.2DS18B20的一线工作协议流程初始化—ROM操作——存储器操作指令——数据传输。每进行一次操作都要遵守这一协议流程。这一过程可以从GETWD字程序的框图来表达。该图中每一个具体操作除初始化外都是通过命令的方式实现的。如下表1所示。读BEH从RAM到单片机写4EH从单片机到DS18B20拷贝48H从DS18B20到内部RAM到内部ERAMSikpROMCCH跳到ROM区直接操作存储器启动转换44H启动DS18B20开始转换温度表1初始化子程序框图如下列图所示。它的过程可具体描述为主机的总线低电平持续时间480至900微秒然后释放总线,等60微秒后读总线是否为低,为低电平表示器件DS18B20反应存在信号等待主机的下一步操作。读操作子程序是主机先发出低电平维持等待6ns释放总线,再等待8ns读入数据。在写操作子程序那么为使总线常产生一个由高到低的阶段,保持低电平16ns方式向总线写数据等待40ns以保持写过程持续60ns,然后重复以上操作。以上的单位机向DS18B20操作的过程。在这个过程中要严格地保证时序要求因此,在执行以上程序不允许产生中断,而且要用4.7千欧以上的电阻连接在读总线上,以保证在主机释放总线只能把总线拉回高电平。3.3局部软件设计软件局部实现也是用一个名叫IJBT的子程序实现的,它的末程序框图如下列图所示。由框图可知,首先把测量值取出判定是否大于零摄氏度,小于零摄氏度,那么把测量值和设定值比拟,小于就加热大于就制冷。由于比拟的知识整数局部,因此,其控制精度为正负1摄氏度。当测量值和设定值相等时,把这种状态作为测量温度大雨设定温度值处理。程序的具体操作过程是,首先设置汉字显示状态矩阵为1616的点阵,再通过逻辑与操作,把测量值整数局部与080H相与。筛选出符号位,看温度是否大于零摄氏度,小于零摄氏度那么直接加热,不用比拟。当大于零摄氏度,直接与设定值通过减法指令比拟,用借位标志判断谁大谁小,小于设定值就加热,大于设定值就制冷。由于温度属于缓慢比拟信号,因此,没有制滞环处理。3.4显示电路的框图显示数据刷新子程序主要是显示缓冲中的显示数据进行刷新操作,当最高位为0是将符号显示位移入下一位。3.5CPU处理的框图3.5.1读出温度流程图读出温度子程序的主要功能是读出RAM中的9个字节,在读出是需要进行CRC校验,校验有错时不进行温度数据的改写。程序流程如下图。读出温度流程图3.5.2温度转换命令子程序温度装换命令子程序主要是温度装换开始命令,当采用12位分辨率是装换时间约为750ms,在本程序设计中采用1s显示程序延时法等待装换的完成。温度装换命令子程序流程图如下图。温度装换流程图3.5.3计算温度子程序计算温度子程序将RAM中读取值进行BCD码的运算,并进行温度值正负的判定。如图计算温度流程图3.6系统软件局部设计3.6.2上位机软件局部设计本系统的软件局部包括上位机软件局部和下位机软件局部,其中上位机主程序的编制是在WIN98操作系统下,采用面向对象的可视化工具VB6开发完成的。采用了模块化结构,整个软件由四大主要模块及其它辅助模块组成。四个主要模块即通讯模块、数据库管理模块、参数设置模块、实时监测模块,每个大模块又由多个小模块组成,具体结构框图如下图。上位机软件结构框图

3.6.2下位机软件局部设计由于系统的控制功能主要是下位机完成的,因此下位机的软件编程是系统软件编程的主要局部,本控制系统是采用MCS-51汇编语言进行编程的,使用汇编语言具有编译效率高、执行速度快、根本不占用用户资源的优点。由于程序较大,在具体程序编写中,我们是采用模块化结构,通过子程序调用,分层进行的。

下位机主程序由四大模块组成,即:初始化模块、LCD显示模块、中断模块、控制模块;每个模块是由相应的子模块组成(即第二层),子模块又可以进行继续细分。下位机软件结构图如下图,其中只列出局部第二层、第三层模块。下位机软件结构框图附录二程序流程图主机总体流程图从机采样主流程DS18B20根本工作流程显示数据刷新流程图附录三控制程序#include<ren51.h>Unsignedcharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};SbitDQ=P3^3;//数据传输线接单片机的相应的引脚UnsignedchartempL=0;//临时变量低位UnsignedchartempH=0;//临时变量高位Floattemperature;//温度值Voiddelay〔unsignedintk〕{Unsignedintn;n=0;while〔n<k〕{n++;}Return;}Voiddelay1〔void〕{Intk;For〔k=0;k<400;K++〕;}Voiddisplay〔intk〕{P2=0xfe;P0=tab[k/1000];Delay1〔〕;P2=0xfd;P0=[k%1000/100];Delay1();P2=0xfb;P0=tab[k%100/10];Delay1〔〕;P2=0xf7;P0=tab[k%10];Delay1〔〕;P2=0xff;}Init_DS18B20〔void〕{Unsignedcharx=0;DQ=1;//DQ先置高Delay〔8〕;//延时DQ=0;//发送复位脉冲Delay(85);//延时〔>480ms〕DQ=1;//拉高数据线Delay(14);//等待〔15~60ms〕}Readonechar〔void〕{Unsign

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论