蔬菜大棚的温度自动测控系统.doc_第1页
蔬菜大棚的温度自动测控系统.doc_第2页
蔬菜大棚的温度自动测控系统.doc_第3页
蔬菜大棚的温度自动测控系统.doc_第4页
蔬菜大棚的温度自动测控系统.doc_第5页
免费预览已结束,剩余50页可下载查看

下载本文档

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

文档简介

蔬菜大棚温度自动测试系统的设计摘 要本设计是以单片机为核心的蔬菜大棚温度自动控制系统。从硬件和软件两方面介绍了单片机温度控制系统的设计思想,对硬件原理图和程序流程图进行了系统的描述。系统具有键盘输入温度给定值、LED数码管显示当前温度值和设定的温度值、温度越限报警以及超限作出相应反映的功能,实现了温度的自动测量和自动控制,可将大棚内的温度始终控制在适合蔬菜生长的温度范围内。关键词 单片机 蔬菜大棚 越限报警 自动测控AbstractDesigned the temperature control system based on single chip computer in vegetable shedIt introduced the single chip computer temperature control system design mentality from two aspects that the hardware and the software,having made the system description Oil the hardware schematic diagram and software diagramAnd the system has the key board entry temperature given valueLED display temperature value,surmounting boundary of the temperature reports outside.It realizes temperatures detect and control automatically,kept the temperature which Suit for vegetable growthKey words single chip computer vegetable shed control automatically521 绪 论随着生活条件的不断改善,人们更关注自身的健康,绿色蔬菜尤其受到重视。大棚种植充分满足了人们的需要,对于大棚种植而言,良好的物种、本地适合种植的物种及土地酸碱度都是可以通过管理者长期的种植经验获得的。但温度是管理者不能轻易解决的问题,而且温度的变化幅度大,不易受人工控制,对于管理者来说时刻关注作物的生长温度是个庞大的工作量。应用于大棚种植的温度控制系统解决了长期以来困扰农民的问题,它的制作成本低廉,应用范围广,对管理者自身的素质要求不高,便于操作。更重要的是,它不仅帮助管理者节约了大量的时间,还无形中提高了作物的产量,增加了收入,满足了人们对大棚蔬菜的要求。基于单片机的大棚温度自动控制系统是个小型的软硬件结合的产品,它针对个体管理者的需要设计,适合中小面积的大棚种植。1.1 系统概述大棚蔬菜满足了人们能一年四季吃到新鲜蔬菜的愿望,为提供更多量,更有营养价值的蔬菜,智能的大棚温度控制系统已经成为农民的迫切需要。以AT89C51单片机为主的温度自动控制系统可对大棚内部的温度进行模拟和蔬菜成长所需的正常温度进行比较,以人性化的方式向大棚的管理员提供温度调节的信息,帮助农民提高农作物的产量,减少农民的工作量。温度自动控制系统采用AT89C51单片机为核心。大棚温度采用连续可变的电压信号进行模拟,采集到的模拟信号经ADC0809模数转换芯片转换成数字信号送到单片机,单片机根据输入的温度得出结果,通过数码管来显示结果,蜂鸣器报警提醒管理者,作出适当的温度调节。该系统成本低,操作方便,设计人性化,具有良好的推广价值。1.2 方案组成蔬菜的生长与温度息息相关,对于蔬菜大棚来说,最重要的一个管理因素是温度控制。温度太低,蔬菜就会被冻死或则停止生长,所以要将温度始终控制在适合蔬菜 生长的范围内。如果仅靠人工控制既耗人力,又容易发生差错。为此,在现代化的蔬菜大棚管理中通常有温度自动控制系统,以控制蔬菜大棚温度,适应生产需要,并以监控采大棚内各个角落的温度变化情况,一旦出现异常现象就能报警,并能及时处理。温度自动控制系统电路要以单片机为控制核心来进行整体设计的。整个系统的硬件部分包括温度采样放大电路、模数转换电路、按键电路、显示电路、声光报警电路等。本设计的基本框图如图 所示。蔬菜大棚温度控制系统的基本功能: 1 系统能对大棚环境温度进行采集和放大;2 通过键盘来设定蔬菜的生长期适宜温度范围;3 当大棚的环境温度出现异常,通过声光控来进行报警,并能及时进行处理。当温度参数超过设定的下限值时,控制电热棒加热;当温度参数超过设定的上限时,则控制风扇工作降温。4 蔬菜大棚管理人员可以随时查询采集过来的温度历史记录。2 硬件电路设计本设计的温度自动控制系统电路以AT89C51单片机为控制核心来进行整体设计的。整个系统的硬件部分包括AD590的温度采样放大电路、ADC0809的模数转换电路、按键电路、驱动电路、LED显示电路、声光报警电路、电源转换电路等。再配上C语言的程序使软件得以实现,进而实现温度自动控制的基本功能。本控制电路有成本低廉,功能实用,操作简单等优点。通过温度传感器对大棚中空气进行温度采集,将采集的温度信号经放大滤波处理后,送给ADC0809进行转换,在传输给单片机,由单片机控制数码管显示器,并比较采集的温度与设定的温度范围是否一致,如果超出设定的温度范围,进行声光报警,再驱动继电器对大棚进行加热或降温处理。2.1 AT89C51单片机芯片介绍2.1.1 AT89C51单片机的内部结构AT89C51单片机内部包括一个8位的CPU,片内振荡器和时钟电路,由4K字节的闪存组成的程序存储器,128KB的数字存储器,四个8位并行的I/O口,一个全双工串行口,两个16位的定时/计数器,5个中断源,提供两个中断优先级,21个特殊功能寄存器,可寻址各64KB的外部程序存储器和数据存储器,有位寻址功能和较强的布尔数据处理能力,有两种软件可选的低功耗运行方式(空闲和掉电方式)。它的内部框图如图 所示。图 AT89C51的内部结构图2.1.2 AT89C51单片机的引脚外形及引脚排列如图 所示。图 AT98C51的引脚排列图AT89C51的引脚除了VCC和GND之外,按功能可分以下三类:(1) 时钟电路引脚:XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。(2) I/O端口引脚:P0口:8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 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口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如表 所示:表 P3口的第二功能管脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)(3)控制类引脚: RST:复位引脚。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:片外存储器地址锁存允许/编程脉冲输入端。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器 (0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 2.1.3 AT89C51单片机的最小系统1 复位电路复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位,其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。因此,复位是一个很重要的操作方式。但单片机本身不能自动复位的,必须配合相应的外部复位电路才能实现的。当89C51通电,时钟电路开始工作,在单片机的RST引脚加上大于24个时钟周期以上的正脉冲,系统即初始复位。初始化后,程序计数器PC指向0000H,P0P3输出口全部为高电平,堆栈指针写入07H,其他专用寄存器被清0。RST由高电平降为低电平后,系统从0000H地址开始执行程序。单片机的外部复位电路有上电复位和按键手动复位两种。上电复位利用电容器的充电来实现。如图 所示,是单片机的上电复位电路。上电瞬间,由于电容两端电压不能突变,RST引脚为高电平出现正脉冲其持续时间取决于RC电路的时间常数。RST引脚要有足够长的时间才能保证单片机有效的复位。按键手动复位电路,如图 所示,复位按键按下后,复位端通过R10这个小电阻,与VCC电源接通,迅速放电,使RST引脚为高电平,复位按键弹起后,电源VCC通过R14的电阻对电容C1重新充电,RST引脚出现复位正脉冲,其持续时间取决于RC电路的时间常数。2 时钟电路单片机的各个功能部件的运行都是以时钟控制信号为基准,有条不紊的一拍一拍的工作。因此,时钟频率直接影响到单片机的速度。常用的时钟电路设计有两种方式,一种是内部时钟方式,另一种是外部时钟方式。单片机接上时钟电路和复位电路,就构成了最小系统,因此,最小系统如图 所示。图 AT98C51的最小系统2.2 温度采样的放大电路温度检测电路由温度传感器、LM324 型运算放大器等构成。温度传感器将温度变成电信号,通过放大器使得信号在A/D转换器的量程范围内放大,在单片机的控制下,A/D 转换器完成信号的A/D 转换,然后将转换后的数字信号送入单片机进行数据分析与处理。传统的模拟式温度传感器,如热电阻、热敏电阻,在一些温度范围内线性不好,需要经行冷端补偿或引线补偿;集成模拟温度传感器与之相比,具有灵敏度高、线性度好、响应速度快等优点,而且它还将驱动电路、信号处理电路以及需要的逻辑控制电路集成在单片IC上,有尺寸小,使用方便等优点。常见的模拟温度传感器有LM3911、LM335、LM45、AD22103电压输出型、AD590电流输出型。经比较,本设计的温度传感器选用AD590。AD590是电流输出型的集成温度传感器,具有测温误差小、动态阻抗高、响应速度快、传输距离远、体积小、微功耗等优点,适合远距离测温、控温,不需要进行非线性校准。其工作电压范围较宽(430 V),测温范围为55150 ,输出电阻较大,长导线上的压降一般不影响测量精度,因此不需要专门的温度补偿电路。流过AD590 的电流等于所处环境的热力学温度系数。2.2.1 AD590温度传感器AD590温度传感器输出电流与温度成线性关系。 AD590是美国哈里斯公司的单片集成两端感温电流源,是电流型温度传感器,通过对电流的测量可得到所需的温度值。在被测温度一定时,AD590相当于一个恒流源,AD590的温度测量器是一种已经IC化的温度传感器,它会将温度转换为电流,由于此信号为模拟信号,因此,要进行进一步的控制及数码显示,还需要将此信号转换成数字信号。它的主要特性如下:(1) 流过器件的电流() 等于器件所处环境的热力学温度(开尔文) 度数: 即: (1) 式中,流过器件(AD590) 的电流,单位为;热力学温度,单位为; (2) AD590的测温范围为- 55+150; (3) AD590的电源电压范围为430V,可以承受44V正向电压和20V反向电压,因而器件即使反接也不会被损坏; (4) 输出电阻为710m; (5) 精度高,AD590在- 55+-150范围内,非线性误差仅为0.3。AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。表 与表 分别表示温度与电压电流之间的关系。表 AD590温度与电流的关系摄氏温度AD590电流经10K电压摄氏温度AD590电流经10K电压0273.22.73240313.23.13210283.22.83250323.23.23220293.22.93260333.23.33225298.22.98290363.23.63230303.23.302100373.23.7322.2.2 温度采样工作原理因为AD590是将温度转换为电流,而单片机对电压信号更好测量,所以要将电流转换为电压,同时对电压信号进行放大,之后输入给A/D转换器ADC0809的VI-端口。电流转化为电压的表达式如下: (2)由反向比例运算放大电路,根据“虚断”,“虚短”,集成运放净输入电压为零,净输入电流为零,净输入电流为零等推算出表达式为: (3)最后由(1)、(2)、(3)得到: (4)图 为温度采样的电路图。 功能说明 用AD590以及接口电路把温度转换成模拟电压,经ADC0809转换成数字信号,然后送8751处理。若ADC0809所得到的值比设定的温度范围低,则令加热器加热,否则打开降温系统,使温度能保持在设定的范围内。 第一个步骤:先调可变电阻VR2,如以0为参考点,则应使其电压输出为2.73V;如以25为参考值,则应使其电压输出为2.98V。第二个步骤:调节可变电阻 ,使0时OPA2的输出为2.73-2.73=0V;而25时OPA2的输出为2.73-2.98=-0.25V(反相)(零为调整)。第三个步骤:调节VR3使OPA3放大五倍,如OPA3的输入为-0.25V,则OPA3的输出为1.25V。 各个OPA的功能如下:OPA1:阻抗匹配;OPA2:减2.73V,(经VR2)并反相;OPA3:放大五倍并反相。各温度与3个OPA及ADC0809的输入和输出的关系如表 所示。表 温度与3个OPA及ADC0809的输入和输出的关系表温度值OPA1OPA2OPA3ADC输入ADC输出02.732V0V0V0V00H102.832V-0.1V0.5V0.5V19H202.932V-0.2V1V1V32H303.032V-0.3V1.5V1.5V4BH403.132V-0.4V2V2V64H503.232V-0.5V2.5V2.5V7DH603.332V-0.6V3V3V96H703.432V-0.7V3.5V3.5VAFH803.532V-0.8V4V4VC8H903.632V-0.9V4.5V4.5VE1H1003.732V-1.0V5V5VFAH2.2.3 无限增益低通滤波电路由于温度传感器采集到的信号中能夹有高频的噪声信号和干扰信号,在经过放大后,这样的信号会对采集的结果和转换的结果产生很大的误差和不良的后果。无限增益低通滤波器既可以将高频信号除去,也可以起到放大的作用。 其电路图为 所示,低通的频率为100Hz放大倍数 Kp=-R3/R1频率 W0=1/(C1*C2*R2*R3)0.52.3 A/D转换电路由于温度是一种模拟信号,则由信号采集电路采集的信号是一种模拟信号,而且频率很低,但是单片机所识别的是具有高低电位的数字信号,这就要求在信号处理中必须把模拟信号转换成数字信号从而输出给单片机处理。2.3.1 A/D转换器的基本原理与分类A/D转换器是把模拟量转换成数字量的器件,简写为ADC。ADC的品种繁多,按工作原理,ADC分为以下几类。(1) 并行式和并/串式ADC 并行式ADC速度最高,但电路复杂,一般是8位以下,除要求转换速度特别高的场合外,一般较少使用。并/串式ADC是并行与串行相结合的ADC,它的速度也很高,但比并行式ADC慢一些,电路也相对简单一些,价格也低一些,是速度与电路复杂程度一个较好的折衷,用的比较多。(2) 逐次逼近式ADC这种ADC转换速度中等,精度高,但抗干扰能力不强,价格不高,是工业控制中用的最多的一种。(3) 双积分式ADC 这种ADC转换速度慢,精度高,而且抗干扰能力强,价格低,适用于要求抗干扰能力强,但对速度要求不高的场合,如数字电压表或参数变化缓慢的控制系统和参数。(4) 计算比较式ADC这种ADC也称为反馈比较式、跟踪比较式、随动系统式或计算式ADC。这种ADC电路简单,价格低廉,但它的速度慢,精度不高,抗干扰能力差,因此不常用。因此,本设计将采用逐次逼近式ADC。这里选用8 路8 位逐位比较式A/D 转换器ADC0809,实现模拟量向数字量的转换。2.3.1 ADC0809芯片介绍ADC0809是采样分辨率为8位的、以逐次逼近原理进行的A/D转换器件。内有一个8通道多路开关以及微处理机兼容的控制逻辑的CMOS组件。它由比较器、逐次逼近器、D/A转换器及控制和定时5部分组成,输出具有TTL三态锁存缓冲器,可以直接连到单片机数据总线上。 1 ADC0809的内部逻辑结构 由图 可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。图 ADC0809的内部结构8路模拟开关用于输入IN0IN7上的8路模拟电压。地址锁存和译码器在ALE信号控制下可以锁存ADDA、ADDB、ADDC上的地址信号,经译码后控制IN0IN7上哪一路模拟电压送入比较器。例如,当ADDA、ADDB、ADDC上均为低电平0且ALE为高电平时,地址锁存和译码器输出,使IN0上模拟电压送到比较器输入端。逐次逼近寄存器和比较器SAR在A/D转换过程中存放暂态数字量,在A/D转换完成后存放数字量,并可送到三态输出锁存器锁存。三态输出锁存器和控制电路用于锁存A/D转换完成后的数字量。CPU使OE引脚变成高电平就可以从三态输出锁存器取走A/D转换后的数字量。控制电路用于控制ADC0809的操作过程。2 ADC0809引脚结构 ADC0809引脚图如图 所示。由引脚图可见,ADC0809共有28个引脚,采用双列直插式封装。各引脚功能如下: D7D0:8位数字量输出引脚。为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高位。IN7IN0(8条):8位模拟电压输入线,用于输入被转换的模拟电压。ALE:地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。START:A/D转换启动信号输入端。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。有时简写为ST.(以上两种信号用于启动A/D转换)。A、B、C:地址线。通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。其地址状态与通道对应关系见表 。CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7CLK:时钟信号输入端。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号。EOC:转换结束信号输出引脚。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。OE:输出允许控制端。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。VCC:+5V工作电压。GND:地。Vref:参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V, Vref(-)=-5V)。ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。 3 ADC0809应用说明 (1) ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。 (2) 初始化时,使ST和OE信号全为低电平。 (3) 送要转换的哪一通道的地址到A,B,C端口上。 (4) 在ST端给出一个至少有100ns宽的正脉冲信号。 (5) 是否转换完毕,我们根据EOC信号来判断。 (6) 当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。START信号有高到抵,在脉冲的下降沿ADC0809开始转换,同时状态管脚EOC自动变低,表示转换正在进行,每个时钟CLK的脉冲转换一位。转换完成后,EOC自动变高。ADC0809的数据输出公式为:Dout=Vin*255/5=Vin*51,其中Vin为输入模拟电压,Vout为输出数据。当输入电压为5V时,读得的数据为255在乘以2,得510.我们用510*98%=499,再将百位数码管的小数点点亮,显示为4.99V,显示值与输入值基本吻合。2.3.2 ADC0809与单片机的接口方式有上面的简述,可以看出,用单片机控制ADC时,可采用查询和中断控制两种方式。 查询方式是在单片机把启动信号送到ADC之后,执行别的程序,同时对0809的EOC引脚的状况经行查询,以检查ADC转换是否已经结束,如查询到变换已经结束,则读入转换完毕的数据。中断控制方式是在启动信号送到ADC之后,单片机执行别的程序。0809转换结束并向单片机发出中断请求信号时,单片机响应此中断请求,进入中断服务程序,读入转换数据。中断控制方式效率高所以特别适合于转换时间较长的ADC。因此在本设计中,采用中断控制方式使ADC0809与单片机相接。ADC0809与单片机的连接电路如图 所示。2.3.3 A/D转换电路的工作原理由图 可知。ADC0809的A/D转换结果输出端out8-out1与单片机的P0口相连,EOC与P3.3口相连,EOC端用于给出A/D转换完成信号,当转换结束时,EOC发出一个脉冲向单片机提出中断申请,单片机响应中断请求。单片机的WR接ADC0809的START,来操作ADC0809的转换开始,当转换结束后EOC变低电位。 在此次的设计中由于有8路信号输入,所以在通道选择有A、B、C三引脚来选择。其多路开关的作用主要是用于信号切换, 如在某一时刻接通某一路检测信号, 而此刻其他路断开, 从而达到信号转换的目的。由于ADC0809的CLK的时钟频率经常用的是500KHz,所以在必须从单片机的时钟脉冲进行分频后才行,在分频中,如果单片机的晶振是6MHz,那么就用D触发器进行二分频即可。2.4 按键电路设计按键是一组按压式开关集合,是微机系统不可缺少的输入设备,用于输入数据和命令。键盘的每一个按键都被赋予一个代码,称为键码。键盘系统的主要工作包括及时发现有案件闭合,求闭合键的键码。根据这一过程的不同,键盘可以分为两种,即编码键盘和非编码键盘。编码键盘是通过一个编码电路来识别闭合键的键码,非编码键盘是通过软件来识别键码。由于非编码键盘的硬件电路简单,用户可以方便的增减键的数量,因此在单片机中应用广泛。这里主要介绍非编码键盘的接口电路。2.4.1 按键电路和消除抖动键盘中按键的开关状态,通过一定的电路转化为高、低电平状态,如图 所示。按键闭合过程在相应的I/O口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的长短与开关的机械特征有关,一般在5ms10ms之间。为避免CPU多次处理按键的一次闭合,应采用措施消除抖动。消除抖动的方法有两种,一种是采用硬件电路来实现,如用滤波电路和双稳态电路等;另一种实用软件来实现,即当发现有按键按下时,延时10ms20ms,再查询是否有按键按下,若没有按键按下,说明上次查询结果为干扰或者抖动;若仍有按键按下,则说明闭合键已稳定,即可判断其键码。2.4.2 非编码键盘的结构非编码键盘可以分为两种结构形式:独立式按键和行列式按键。独立式按键:是指直接用I/O口线构成单个按键电路,每一个按键占用一条I/O口线,每个按键的工作状态不会产生相互影响。图 所示为一种独立式按键电路,当图中的某一个按键闭合时,相应的I/O口线就变成低电平。当程序查询到为低电平的I/O口线时,就可以确定处于闭合状态的键。独立式按键的电路的结构和处理程序简单,扩展方便,但占用的I/O口线相对较多,不适合在按键数量较多的场合下采用。行列式键盘:将I/O口线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上,这就构成了行列式键盘。本设计有三个按键,共需要三个I/O口线,占用的口线不多,因此可以采用独立式按键。非编码键盘的工作方式在单片机应用系统中,非编码键盘由CPU通过键盘处理程序完成整个工作过程。相对CPU来说,按键闭合是随机发生的,按键处理程序能够及时捕捉倒闭合的建,并求出其键码。按照这一过程的不同,非编码键盘的工作方式可以分为程序扫描方式和中断扫描方式。程序扫描方式:在一般情况下,在单片机应用系统中,按键处理只是CPU工作的一部分。为了能及时发现有按键按下,CPU必须不断调用键盘处理程序,对键盘进行扫描,因此称为程序扫描方式。中断扫描方式:在程序扫描工作方式中,为了能及时响应键盘输入,需要不停的对键盘进行扫描,即使没有键操作时,也要不停的对其进行扫描,这就浪费了大量CPU宝贵的时间,为了提高CPU的效率,在电路中增加适当的电路,当有键闭合时,产生中断请求信号。在中断服务子程序中进行去抖动、求键码和处理重建等工作。图 所示为中断扫描方式的接口电路。键盘电路的行线与单片机的P2.4、P2.5、P2.6直接相连,列线与一个与门的三输入端相连,与门的输出端与单片机的/INT0相连接。当P2.4、P2.5、P2.6 全为0时,若无键闭合,/INT0保持高电平;若有键闭合时,/INT0变成低电平,CPU开中断,进而相应中断,转向中断服务程序。S2按键是温度设定模式,S3按键是温度的加一模式,S4按键是温度的减一模式。 2.5 温度显示电路 为了方便管理者能明确的观察到某一路的温度,这里要有显示电路,共有七个数码管,两位是用来显示设定的最高温度,两位用来显示设定的最低温度,两位是用来显示当前某一路的温度,一位是用来显示当前的路数。3.5.1 LED数码管LED数码管是由发光二极管构成的数码显示器,内部用7个发光二极管组成字符的七段,每段用小写英文字母表示,主要用来显示09这10个数字,也可以某段英文字母或符号。图 是数码管段位结构和引脚结构。按照一定的组合方式使有关的段发光,就可以显示字符,故称为七段数码管。如果该位数字后面有小数点则七段就不够用了,所以又增加了一个发光二极管,用来显示小数点,用字母dp表示。 按内部发光二极管的接法的不同,将LED数码管分为共阳型和共阴型两类。共阳型数码管内部的8个发光二极管的阳极均连在一起,共阴型的则是阴极全部连在一起,如图 所示。对于共阳型数码管来说,在使用时要将它们的公共阳极引脚通过一个限流电阻与电源的正极相连,然后然后是某些段二极管的阴极接低电平,这样,数码管就会显示某一个数字,也就是说,共阳型数码管的段码值为0时,该段发光。对于共阴型数码管来说,正好与共阳型数码管相反。为了保证发光二极管经久耐用而不被烧毁,需要外接限流电阻。取值一般是流经的电流在1020mA,由于高亮度数码管的使用,电流还可以取得小一些。发光二极管开启电压,红色在1.61.8V之间, 绿色约为2.0V。设导通电压为1.6V,正向电流为520mA ,限流电阻R取值在170 680。 LED数码管中各段发光二极管的伏安特性和普通二极管类似,只是正向压降较大,正向电阻也较大。在一定范围内,其正向电流与发光亮度成正比。由于常规的数码管起辉电流只有12mA,最大极限电流也只有1030mA,所以它的输入端在5V电源或高于TTL高电平(3.5V)的电路信号相接时,一定要串加限流电阻,以免损坏器件。(1)静态显示技术 静态显示技术就是当数码管显示某一字符时,相应的发光二极管连续恒定地处于点亮或熄灭状态,直到更换显示内容为止。采用这种显示方式占用的硬件资源多,以七段LED显示器为例,如果用软件进行字段译码,每显示一个字符就需要一个锁存器,如果用硬件进行字段译码,每显示一个字符就需要一个锁存译码器。静态显示的数码管由于连续地工作,因此功耗大,但程序简单,亮度高。随着高度数码管的出现,动态显示同样可以达到很好的显示效果,所以在多数应用情况,不会采用静态显示方式,而采取动态显示方式。(2)动态显示技术 在多位LED显示时,为了降低成本和功耗,将所有位的段选线并联起来,由一个8位口控制,由另一个端口进行显示位的控制。但是,由于段选是公用的,要让各位数码管显示不同的字符,就必须采用扫描方式,即动态扫描显示方式。首先从段选线上送出字段码,再控制位选线,字符就显示在指定位置上,持续15ms时间,然后关闭所有显示;接下来又送出新的字段码,按照上述过程又显示在新的位置上,直到每一位数码管都扫描完为止,即为一个扫描周期。由于人的视觉停留效应,因此当扫描周期小到一定程度时,人就感觉不出字符的移动或闪烁,觉得每位数码管到一直在显示,达到一种稳定的视觉效果。动态扫描显示的扫描方式有程序控制和定时中断扫描两种。程序控制扫描方式要占用许多CPU时间,在计算机的任务较重时,难以得到好的效果,所以在实际中常采用定时中断扫描方式,这种方式是每隔一定时间(如1ms)显示一位数码管,假设有8位数码管,显示扫描周期为8ms,显示效果十分良好。本次设计采用这种方法。2.5.2 LED驱动电路7447是一块BCD码转换成7段LED数码管的译码驱动IC。7447的主要功能是输出低电平驱动显示码,用以推动共阳极的7段LED数码管显示相应的数字,相应引脚的功能如下:(1) QAQG:7段LED数码管的输出引脚(2) A、B、C、D:输入引脚(3) RBO、BT、LI:高电平输出有效把7447的QAQG引脚与数码管的ag连接,用来控制数码管的段码,用74HC138来控制数码管的位码。温度显示电路如图 所示图 显示电路2.6 其他电路2.6.1 电源转化电路在实际的应用中,单片机的电压5V和运放的12V电压都需要从外部的220V交流电源来提供。这就需要把220V的交流电转换成5V和12V的直流电。在这个设计中,采用了简单的实用的变压器,根据理想变压器原副边匝数比公式N=(L1/L2)0.5则可通过计算来调节参数达到转换为低电压所谓目的。低压的交流信号在通过整流稳压等操作实现了交流向直流转换的要求了。其电路图如图 所示。2.6.2 报警电路在单片机检测系统检测到当前温度超出设定的温度范围时,单片机就会控制P3.7引脚的电平,进而来控制蜂鸣器,提醒管理者注意报警信号,常见的报警信号可分为闪光报警、鸣音报警和音乐报警,这里主要用的是鸣音报警电路。当P3.7引脚输出高电平时,晶体管导通,压电蜂鸣器两端获得约5V的电压而鸣叫;当P3.输出低电平时,晶体管截至,蜂鸣器停止发音。2.7 串口显示电路74HC164是高速硅门CMOS 器件,与低功耗肖特基型 TTL器件的引脚兼容。它是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。 时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0,Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。 主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。功能表工作模式输入输出/M/RCPDSADSBQ0Q1Q7复位(清除)LLXXL:L至L移位H11L:q0至q6H1hLq0至q6HhLLq0至q6HhhHq0至q6说明:H:高电平;h:先于低至高时钟跃变一个建立时间的高电平;L:低电平; l:先于低至高时钟跃变一个建立时间的低电平; q:小写字母代表先于低-至-高时钟跃变一个建立时间的参考输入的状态;:低至高时钟跃变。 其电路如图 所示,使用74HC164的并行输出引脚接8个发光二极管,利用它的串入并出功能把发光二极管从轮流点亮,并反复循环。Q0Q7代表18路的温度是否在设定的温度范围内,如果第i(i的范围从0到7)个发光二极管亮,证明第(i+1)路的温度超出设定的温度范围。3 软件系统设计软件采用模块化设计。系统软件主要包括主程序和按键处理、中断、显示和报警等子程序。主程序完成器件的初始化,并判断有无按键按下、有无中断请求,然后根据判断结果调用相应的子程。3.1 软件设计思路与程序流程图主程序主要是对采集数据的处理、显示以及与设定的数据进行比较,为是否报警、是否开继电器做准备;A/D转换子程序主要完成的是对信号的采样和A/D转换,并将转换的数据放到A寄存器中,为后面的调用做准备;监控程序就是对按键中断,A/D转换中断进行监控,如果按键有中断,就调用A/D转换程序,如果A/D中断,就调用A/D转换程序。(1)主程序流程图开始系统初始化Xms定时是否到?数据处理温度显示是否超过设定温度范围?是报警否返回(2)中断服务程序流程图中断发生保护现场读数,存数否通道加18通道完?是恢复现场,中断返回中断发生(3)按键控制流程图有键闭合?否是延时去抖有键闭合?是否调用W0功能P2.0=0?是否调用W1功能P2.1=0?是否调用W2功能P2.2=0?是否中断返回(4)显示流程图清零,即关所有位显示取段码数据否取位选通信号延时位选通信号移位指向下一个段码显示数据6位显示完?是返回3.3 程序编写(1)A/D转换的程序首先用指令选择0809的一个模拟输入通道,当执行开启A/D转换指令时,单片机的/WR信号有效,从而产生一个启动信号,给0809的START引脚送入脉冲,开始对选通信号进行转换。当转换结束后,0809发出转换结束EOC(高电平)信号,该信号可作为向单片机发出中断请求信号,当执行A/D转换指令时,单片机发出读控制/RD信号,OE端有高电平,且把经过0809转换完毕的数字量读到A累加器中。#include #define uchar unsigned char #define uint unsigned intsbit a=P34;sbit b=P35;sbit c=P36;sbit CLK=P30;sbit OE=P27;sbit EOC=P33;sbit ST=P23;uchar i;uchar ad_data8=0;/*延时函数约300us*/void delay(uint a)uint b;for(;a0;a-)for(b=150;b0;b-)/*通道选择*/void select(uchar chnnel)switch(channel)case 0:a=0;b=0;c=0;break;case 1:a=1;b=0;c=0;break;case 2:a=0;b=1;c=0;break;case 3:a=1;b=1;c=0;break;case 4:a=0;b=0;c=1;break;case 5:a=1;b=0;c=1;break;case 6:a=0;b=1;c=1;break;case 7:a=1;b=1;c=1;break;default:break;/*初始化0809,并开定时器,开中断*/void initdac0809()TMOD=0x02;/*定时器0产生500KHZ的时钟信号*/TH0=253/*约1.085Us*2中断一次,周期略小于500KHz*/TL0=253;TR0=1;ET0=1;EA=1;/*开总的中断*/*开始转换ADC0809*/void startadc()if(i=8)i=0;else select(i);/*选择通道i*/ST=0;ALE=0;ST=1;ALE=1;delay(1);ALE=0;ST=0;/*地址锁存,并开始转换*/i+;void main()initdac0809();startadc();while(1)while(EOC=0)/*ADC0809正常转换*/OE=1;/*转换完毕,打开输出*/ ad_data-i=

温馨提示

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

评论

0/150

提交评论