资源描述
装订线 毕业设计(论文)纸引言 空调器即空气调节器,是一种用于给空间提供处理空气的机组。它的功能是对该房间或封闭空间、区域内空气温、湿度、洁净度和空气流速等参数进行调节,以满足人体舒适或工艺过程的要求。而空调温度控制系统是空调的核心。 目前空调已广泛应用于生产、生活中。而此类家电越来越趋于轻巧型。微型单片机系统一起体积小、性能价格比高,指令丰富、提供多种外围接口部件、控制灵活等优点,广泛应用于各种家电产品和工业控制系统中,在温度控制领域应用也十分广泛。随着能源的日趋减少,大气污染愈加严重,节能意识一个不容忽视的问题。众所周知,空调正朝着节能、舒适、静噪于一体的方向发展。鉴于这些方面综合考虑,设计一种可以实现温度控制的空调机,将会在节能方面有新的突破,也必将会取代传统靠人工实现温度控制的空调机。其应用范围极为广阔,极大方便了人们的生活和工作。 温湿度控制在现实生活应用非常广泛,计算机的出现与飞速发展人们对自动化的需求变得越来越高,而随着人们生活水平的提高,科技的进步,对温湿度控制的需求也越来越高。通过组态软件控制温湿度能够很好地解决传统控制软件存在的种种问题,使用户能根据自己的控制对象和控制目的的任意组态,完成最终的自动化控制工程,组态软件的IT化,大量的最新计算技术、通讯技术、多媒体技术被用来提高其性能,扩充其功能。组态软件控制系统技术的开发和应用有着十分重要的意义。 在二十世纪六,七十年代,美国地区发生罕见的干旱天气,为解决干旱缺水地区的空调冷热源问题,美国率先研制出风冷式冷水机,用空气散热代替冷却塔。在空调历史中,美国已经发展和改进了有风管的中央单元式系统,并得到了正在现场安装和修理有风管的单元式空调系统的空调设备分销商和经销商的强力支持。WRAC是最简单和最便宜的系统,能够很容易的在零售商店中购得,并在持续高温来的时候自己安装。同时,无风管的SRAC和SPAC自70年代起在有别于美国市场的动力下在日本得到发展和改进。之后,设备设计和制造技术在90年代被转让到中国,这是通过与当地公司(包括主要元件如压缩机、热交换器、电动机、精细阀和电子控制器的本地制造商)组成的合资公司进行的。在90年代中国也从其它先进国家吸收了较大型空调设备的先进高新技术,并与多数是美国的大公司组成合资企业。现今中国已是一个顶级国家,她的当地主要工厂和合资企业制造了大量SRAC和SPAC以满足增长的国内市场和出口需要。日本过去几年在把SRAC和SPAC机组出口到中国、欧洲和中东以建立新的市场。但是中国现今已是最大的空调出口国,在2001年出口的WRAC,SRAC和SPAC机组总数达500万台,2002年预计有750或800万台机组出口,而日本正在失去出口的地位。第1章系统总体方案设计1.1 本文要解决的主要内容 本课题在传统温湿度控制基础上,采用AT89C51单片机控制温湿度系统。主要研究内容包括以下几个方面: 1、选用温湿度传感器时,应重点考虑抗干扰能力强,稳定性好,方便调节,信号易于处理、传送,便于多路测量,安装方便,维护简单,环境温度补偿容易的器件。 2、在硬件设计时,结构要尽量简单实用、易于实现,应尽量使用各种总线技术,以节约系统有限的I/0资源,并使系统电路尽量简单。 3、软件设计必须要有完善的思路,要充分考 虑到温度和湿度传感器 ,做到程序简单,调试方便。 4、设计单片机与各传感器及加热、加湿模块的接口电路,可以通过单片机对外界温度、湿度的自动控制。1.4 本文结构及主要研究内容 本文主要是针对空调温度、湿度的控制而设计,采用集成温度。传感器和湿度传感器,利用单片机的控制空调,实现对外界温度、湿度的自动管理与控制,本文主要从以下几个方面进行分析。 1、介绍系统的研究背景、研究动态。 2、介绍系统的功能设计以及总体设计。 3、介绍系统各个部件的选择及功能。 4、介绍系统的硬件结构。 5、介绍系统的软件结构。 6、介绍系统的发展前景及改进方案。 7、总结本文。 第2章系统方案的总体设计 2.1 系统功能设计 主要针对中小型的粮仓设计,具备一般所需要的功能与作用: 1、可以测量空调外界温 度的变化,当温度达到 极限值时,可以做出及 时的响应,即做出报警动作,并自动调节温度。并在LED数码管上显示其温度值。 2、可以测量空调外界湿 度(含水量)的变化, 当湿度达到预设值时, 可以做出及时的响应,即做出报警动作,自动开启除湿系统。在LED数码管上显示其湿度值。 3、有键盘等外部输入 设备,通过键盘的动作 来操作主机的动作,使人们可以通过输入相应温度值,来调节空调外部温度。2.2总体设计框图图2-1第3章系统各部分器件的选择 3.1芯片选择 3.1.1 AT89C51芯片 AT89C51是一种带4K字节的低电压、高性能CMOS 8位微处理器。AT89C2051是一种带2K字节闪存可编程可擦除只读储存器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。 图3-1主要特性: 4K字节可编程FLASH存储器 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。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口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 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)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.1.2 AT89C51单片机的辅助电路复位电路:在满足51最小系统其他工作条件下,让RST管脚保持高电平(通常0.7Vcc以上电压)维持至少两个机器时钟,以引导单片机复位,之后RST管脚恢复为低电平。只要在RST复位输入引脚上接一电容至VCC端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,可将外部电阻去掉,而将外接电容减至1uF。上电复位的过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。 手动复位手动复位需要人为在复位输入端RST上加入高电平。通常采用的办法是在RST端和正电源VCC之间接一个按钮。当人按下按钮时,则VCC的+5V电平就会直接加到RST端。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,保证能满足复位的时间要求。手动复位电路 复位后寄存器的状态当系统复位时,在SFRS中,除了端口锁存器、堆栈指针SP和串行口的SBUF外,其余的寄存器全部清0,端口锁存器的复位值为0FFH,堆栈指针值为07H,SBUF内为不定值。内部RAM的状态不受复位的影响,在系统上电时,RAM的内容是不定的。 措施有: 1、上电复位:加电后给RST一个高电平脉冲。简单的措施是阻容串联,电容接电源、电阻接地、中间节点接RST。加电瞬间,电容两侧电压差为0,两侧均为高,RST脚为高,随后C通过R放电使RST节点到0。取值10uF,8.2K。其他取值也可。 2、复位芯片:电源监控芯片(能完成上电复位、电源异常的复位)。比较可靠。 3、手动复位:按键短接RST和电源。最常用的内部时钟方式是采用外接晶体和电容组成并联谐振回路,不论是HMOS还是CHOMS型单片机,其并联谐振回路及参数相同。C51单片机允许的振荡晶体可在1.224MHz之间选择,一般11.0592MHz。电容C1,C2的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有一定的影响,可在20100pF之间选择,典型值为30pF。 图3-2时钟电路: 最常用的内部时钟方式是采用外接晶体和电容组成并联谐振回路,不论是HMOS还是CHOMS型单片机,其并联谐振回路及参数相同。C51单片机允许的振荡晶体可在1.224MHz之间选择,一般11.0592MHz。电容C1,C2的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有一定的影响,可在20100pF之间选择,典型值为30pF。 XTAL1为反相器的输入,XTAL2为反相器的输出。可以利用它内部的振荡器产生时钟,只要在XTAL1和XTAL2引脚上外接一个晶体及电容组成的并联谐振电路,就可以构成一个完整的振荡信号发生器。 时钟对于时间精度要求不是很高的系统,但是由于图中的C3、C4电容起着系统时钟频率调和稳定的作用,因此,在本系统的实际应用一定要注意选择参数为30pF,并保证电路具有良好的对称性。同时,要保证其温度系数要尽可能的低。实验证明,这两个电容元件对系统的检测误差有较大的关系。 外接晶体及电容C3,C4,并组成并联谐振电路。在电路中,对电容C3和C4的值要求不是很严格,如果用高质量的晶振,不管频率为多少,C3,C4通常都选择30pF。在有些地方,为了降低成本,晶体振荡器可用陶瓷振荡器来代替。如果使用陶瓷振荡器,则电容C3,C4的值取47pF。图3-3 3.1.3 各芯片地址空间分配 硬件电路一旦确定,各芯片的地址范围实际就已经确定,编程时只要给出要选择芯片的地址,就能准确的选中该芯片。结合下图所示的连接,下面给出芯片IC1、IC2、IC3、IC4的地址范围。 程序和数据存储器地址均用16位,P0口确定低8位,P2口确定高8位地址。如P2.7=0时,选中IC2、IC4。地址线A0A15与P0、P2对应关系如下: 高8位P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.00/A15A14A13A12A11A10A9A8低8位P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0/A7A6A5A4A3A2A1A0表3-1 显然除P2.7固定外,其它位均可变,设P2.7=0,其它位全为0,则为最小地址0000H;若“/“位均变为”1“则为最大地址7FFFH,所以IC2、IC4占用地址空间为0000H7FFFH共32KB。同理IC1、IC3地址范围8000HFFFFH,此时P2.7=1,IC2与IC4占用相同的地址空间,由于二者一个为程序存储器,一个为数据存储器,在控制线、或控制下,不同时工作。地址空间重叠也没有关系。 3.1.4控制信号及片选信号 地址线P2.7分别通过一个非门接到IC1(27128)和IC3(62256)的片选CE端,余下的两片芯片IC2和IC4则直接与地址线P2.7相连。当P2.7=1时,通过非门后,变为低电平,选中芯片IC1和IC3,当P2.7=0时,芯片IC2和IC4的片选端是低电平,因此被选中。每次同时选中两个芯片,具体是哪个芯片工作还要通过、和控制线控制。当片外程序存储器读选通信号为低电平时,肯定到ROM中读程序;当读、写通信号或为低电平则到RAM中读数据或向RAM写入数据。、三个信号是在执行指令时产生的,但在任一时刻,只能执行一条指令,所以只能一个信号有效,其它信号不可能同时有效。 3.1.5 集成湿度传感器 IH3605 HONEYWELL公司生产的集成湿度传感器IH3605采用集成电路技术,可在集成电路内部完成对信号的调整。由于其具有精度高、线性好、互换性强等诸多优点,因此得到广泛的应用。 由于IH3605内部的两个热化聚合体层之间形成的平板电容器。所谓电容器就是能够储存电荷的“容器”。只不过这种“容器”是一种特殊的物质电荷,而且其所存储的正负电荷等量地分布于两块不直接导通的导体板上。至此,我们就可以描述电容器的基本结构:两块导体板(通常为金属板)中间隔以电介质,即构成电容器的基本模型。 电容量的大小可随湿度的不同发生变化,从而可完成对湿度信号的采集。热化聚合体层同时具有防御污垢、灰尘、油及其它有害物质的功能。IH3605采用SIP封装形。 图3-42. IH3605的主要技术指标 图3-5 电源是向电子设备提供功率的装置,也称电源供应器,它提供计算机中所有部件所需要的电能。 电压:45.8V;供电电流: 200A湿度范围:0100RH精度:2RH(0100RH、25、V=5VDC);互换性:5RH(060RH);8RH(90RH);线性度:0.5RH(典型);重复性:0.5RH;稳定度:1RH(50RH 、5年内);响应时间:15s(25及空气缓慢流动环境下);工作温度:4085; 图3-63. IH3605的电压输出特性: IH3605的输出电压是供电电压、湿度及温度的函数。电源电压升高,输出电压将成比例升高,在实际应用中,通过以下两个步骤可计算出实际的相对湿度值。 (1)首先根据下述计算公式,计算出25温度条件下相对湿度值RH0。 VOUT=VDC(0.0062RH00.16)其中VOUT为IH3605的电压输出值,VDC为IH3605的供电电压值,RH0为25时的相对湿度值。 (2) 进行温度补偿,计算出当前温度下的实际相对湿度值RH。 RH=RH0/(1.05460.00216t) 其中RH为实际的相对湿度值,t为当前的温度值,单位为4. 典型应用 由于IH3605的输出电压较高且线性较好,因此电路无需进行信号放大及信号调整。可以将IH3605的输出信号直接接到A/D转换器。转换器:转换器从原理上可分为协议转换器、接口转换器两大类。从应用上又可以分光纤转换器、光电转换器、视频转换器等等。例如视频转换器就是一种连接电脑和电视的设备,它可以把电脑上的内容转换并显示在电视机上,让人们可以在电视上学电脑,上网,玩游戏,做商业演示,看股票等等。 IH3605的输出信号范围为0.83.9V(25时),所以在选择A/D转换器时应选择具有设定最小值和最大值功能的A/D转换器。 3.1.6 温度传感器 AD590 AD590的测温范围为- 55+150;电源电压范围为430 V,可以承受44 V正向电压和20 V反向电压,因而器件即使反接也不会被损坏;输出电阻为710 m;精度高,在- 55+-150范围内,非线性误差仅为0.3。 AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。精度高。AD590共有I、J、K、L、M五档,其中M档精度最高。温度与AD590的输出电流关系:摄氏温度AD590电流/uA10K电压/V摄氏温度AD590电流/uA10K电压/V0273.22.73240313.23.31210283.22.83250323.23.23220293.22.93260273.23.73230303.23.032100373.23.732 因此,输出电流的微安数就代表着被测量温度的热力学温度值。热力学温标(K)与摄氏温标()的换算关系如下所示: T()=T(K)-273.15 测温电路不需要电桥,不需要低电平测量设备和线性化电路,因为AD590输出的是电流又易于远距离传送,不会因线路压降或感应噪声电压产生大的温差,又因为它是高阻抗电流源,对激励电压也是不太敏感的,为了减少自身发热的影响,采用的低激励电压为+5V。AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。应用举例: 以某节能型药材仓库温、湿度控制系统为例,若要求库房温度低于T,相对湿度低于A1B1%RH。 则采取的两种控制模式如下: 控制模式一:当库内相对湿度高于A1B1%RH且库外温度低于T时,进行库内外通风。这种方式是利用库内外湿度差进行空气的交换,以达到库内除湿的要求,其优点是高效、节能、节省资金。但这种方式受到严格的控制。首先,库外的相对湿度要低于库内的,它们之间的差要大于A2B2%RH,这样才能有效保证及时地进行库内的除湿。其次,库内库外的温度差要小于T,这是因为,如果在库外温度远高于库内温度时进行通风,热空气进入库区后遇上冷空气就会造成药品、器材表面结露的现象,进而影响药品和器材的质量。反之,如果在库内温度远高于库外温度时进行通风,冷空气进入库内后也会在药品器材表面结露。另外,库外温度不能接近T。这是因为,如果库外温度接近T时进行通风,很可能使密闭的库温升高,从而超过温度上限T。 控制模式二:当温度高于T或湿度高于A1B1%RH但不满足第一种情况时,开启冷冻空调机组进行库内降温除湿。 为避免因库内外温差过大通风时药品、器材表面结露的现象,必须严格控制系统温差值的精度。传统的测温差方法是对两点温度分别进行处理(调理电路、A/D、运算处理)后求差值,此方法所得温差精度低。库内外温差测量可采用图3所示电路,利用温差值直接与设定值相比较,既能保证较高的精度,又简化了系统的软件设计,提高了系统可靠性。 图3-73.1.7 ADC0809转换器 利用传感器输出都是模拟量,然而以单片机为核心的数据采集装置及检测系统只能接收数字量,因此,在传感器和单片机之间要通过模/数转换器,将传感器输出的模拟信号转化为二进制的数字信号。 ADC0 8 0 9是一种 8路模拟输入逐次比较型 A/D转换器 ,由于价格适中 ,与单片机的接口、软件操作均比较简单 ,目前在 8位单片机系统中有着广泛的使用。ADC0 809由8路模拟开头、地址锁存与译码器、8位 A/D转换器和三态输出锁存缓冲器组成。其主要性能指标有: 1、分辨率 分辨率表示转换器对微小输入量变化的敏感程度,通常用转换器输出数字量的位数来表示。n位转换器,其数字量变化范围为02n-1,当输入电压满该度为XV时,则转换电路对输入模拟电压的分辨能力为X/2n-1。如果是8位的转换器,5V满量程输入电压时,则分辨率为5/28-1=1.22mV。 2、精度 精度通常有最小有效位的LSB的分数值表示。目前常用的A/D转换集成芯片精度为1/42LSB。 3、转换时间 4、温度系数和增益系数 5、对电源电压变化的抑制比内部结构: ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图1322所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。 外部特性: ADC0809芯片有28条引脚,采用双列直插式封装。下面说明各引脚功能: IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。 ALE:地址锁存允许信号,输入,高电平有效。 START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 VDD:电源,单一+5V。 GND:地。ADC0809的工作过程: 首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。 (1)定时传送方式 对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 (2)查询方式 A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。 (3)中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。 图3-83.2模块设计3.2.1显示模块LED数码管: LED数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等.,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图片 图3-9 这是一个7段两位带小数点 10引脚的LED数码管 图3-10 引脚定义:每一笔划都是对应一个字母表示,DP是小数点.。LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。 A、静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二-十进位*器*进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要58=40根I/O埠来驱动,要知道一个89S51单片机可用的I/O埠才32个呢。故实际应用时必须增加*驱动器进行驱动,增加了硬体电路的复杂性。 B、动态显示驱动:数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。 透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。设计用管: 本系统显示采用动态8位LED共阳极数码管,其中四位用于显示温度数,四位用于显示湿度数,其目的是为了简化显示电路的设计和实现亮度可调的要求,该显示电路采用了与一般的电阻限流方式不同的实现方式,由此减少了4*8=32个限流电阻,简化了硬件系统。 发光二极管LED(Light Emitting Doide)是智能化测量仪器中简单而常用的输出设备,通常用来指示机器的状态或其他信息。它的优点是价格低、寿命长,对电压电流的要求低及容易实现多路显示等,因此在智能测量仪中获得了广泛的应用。多个LED可接成共阳极或共阴极形式,通过驱动器接到系统的并行输出口上,由CPU输出适当的代码来点亮或熄灭相应的LED。 如下表所示本系统中用到得共阳数码管显示器的基本参数表,由表可知:LED是近似于恒压的元件,导电时(发光)的正向压降一般约为1.6V或2.4V左右,反向击穿电压一般大于等于5V。工作电流通常在1020mA左右,故电路中需串联适当的限流电阻。发光强度基本上与正向电流成正比。发光 频率和颜色取决于制造的材料,一般常用红色,偶尔也用绿色或黄色。 表3-2四位共阳数码管发光颜色:红型号:2481AS亮度:高亮引脚数:12(6*2)工作电流:20mA 图3-11 74LS47是BCD-7段译码器/驱动器,是数字集成电路,用于将BCD码转化成数码块中的数字,然后我们就能看到从0-9的数字。 译码器原理(74LS47)译码为编码的逆过程。它将编码时赋予代码的含义“翻译”过来。实现译码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用。 输 入 输 出 显示数字符号 LT() RBI(-) A3 A2 A1 A0 BI()/RBO() a() b() c() d() e() f() g() 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 X 0 0 0 1 1 1 0 0 1 1 1 1 1 1 X 0 0 1 0 1 0 0 1 0 0 1 0 2 1 X 0 0 1 1 1 0 0 0 0 1 1 0 3 1 X 0 1 0 0 1 1 0 0 1 1 0 0 4 1 X 0 1 0 1 1 0 1 0 0 1 0 0 5 1 X 0 1 1 0 1 1 1 0 0 0 0 0 6 1 X 0 1 1 1 1 0 0 0 1 1 1 1 7 1 X 1 0 0 0 1 0 0 0 0 0 0 0 8 1 X 1 0 0 1 1 0 0 0 1 1 0 0 9 X X X X X X 0 1 1 1 1 1 1 1 熄灭 1 0 0 0 0 0 0 1 1 1 1 1 1 1 熄灭 0 X X X X X 1 0 0 0 0 0 0 0 8 (1)LT():试灯输入,是为了检查数码管各段是否能正常发光而设置的。当LT()=0时,无论输入A3 ,A2 ,A1 ,A0为何种状态,译码器输出均为低电平,若驱动的数码管正常,是显示8。 (2)BI():灭灯输入,是为控制多位数码显示的灭灯所设置的。BI()=0时。不论LT()和输入A3 ,A2 ,A1,A0为何种状态,译码器输出均为高电平,使共阳极数码管熄灭。 (3)RBI(-):灭零输入,它是为使不希望显示的0熄灭而设定的。当对每一位A3= A2 =A1 =A0=0时,本应显示0,但是在RBI(-)=0作用下,使译码器输出全为高电平。其结果和加入灭灯信号的结果一样,将0熄灭。 (4)RBO():灭零输出,它和灭灯输入BI()共用一端,两者配合使用,可以实现多位数码显示的灭零控制。 3.2.2电源模块 三端稳压集成电路lm7805。电子产品中,常见的三端稳压集成电路有正电压输出的lm78 系列和负电压输出的lm79系列。顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。它的样子象是普通的三极管,TO- 220 的标准封装,也有lm9013样子的TO-92封装。 用lm78/lm79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。 电源电路是给电子设备提供必要的电源能力的电路,就输入和输出而言,在集成电路中的主要采用的是交流220V,50Hz的市电转换为直流电。该部分电路由降压、整流、滤波、稳压四部分组成。应当说明的是,尽管有很多型号的7805三端稳压集成芯片,其标称最大输出电流均为1.5A,但是在实际应用中,该最大输出电流值往往取决于两个方面:(1)足够的散热面积;(2)不同的生产厂家。按照许多开发者的经验,ST公司的7805三端稳压块能接近标准称值。在设计中,必须保证7805的输入电压和输出电压的压差大于2.5V。否则会失去稳压能力。同时考虑到功耗,增加芯片的温升,不利于安全。因此,选用9V。当交流电源失电或撤消试销时,电压为6V的直流电源通过二极管投入作用,硅二极管的导通电压降约为0.2V,因此满足系统电源要求。图3-12 3.2.3键盘电路 按键与按钮电路的设计见系统原理图中S1。按键与按钮电路设计中关键要考虑的就是按键去抖动问题(简称“去抖”)。一般有硬件去抖和软件去抖两种方式。过去硬件去抖电路通常采用分立元件或触发器实现,目前时常上已有硬件去抖专用接口芯片,例如:MAXIM公司MAS68151818,均为单电源供电,电压为2.75.5V,分别为单输入、双输入等形式,输出端具有欠压锁定功能。这里考虑到系统的硬件简化和成本,没有采用硬件去抖,而采用软件去抖。图3-13第4章 软件系统设计4.1软件设计原理及介绍该系统主要实现功能是将温度、湿度、气敏传感器所测量出的值经过一系列的转换、放大、滤波再A/D转换为单片机能识别的数字信号,由单片机对这些信号进行处理,使他们能显示在显示器上和控制继电器对室内温度和湿度进行调控。首先由单片机来识别当前的室内温度和湿度。当温度低于设定值时启动加热设备,当湿度低于设定值时,则启动加湿设备,当温度和湿度都高于设定值时,则启动排气风扇,进行降温除湿,这样就完成了设计的调控部分。4.2流程图 4.2.1主流程图 图4-1 4.2.2报警流程图 图4-2 所示为报警流程图,在系统初始化后,即系统正常工作情况下,分别读取温度子程序和频率计子程序,在液晶显示屏相应的位置上分别显示温度值与湿度值,其中当温度值大于设定值时,发出红灯报警信号,如果小于设定值,则继续读取温度值;当湿度值大于设定值时,发出绿灯报警信号,如果小于设定值,则继续读取湿度值。该部分的主要作用是用来提醒工作人员及时的查看粮情,并做出相应的保护措施,以保证粮仓内粮食的正常保存。 4.3模块软件设计 4.3.1AT89C51单片机在程序运行时的主要程序语言:初始化程序清单:ORG0000HAJMPSTARTORG0003HAJMPSAMPLE;转采样中断程序ORG000BHAJMPORG0013HAJMPSTART:MOVTMOD,#01H;置定时器0为工作方式1MOVTH0,#3CH数据8次采样程序清单:SAMPLE:SETB00H;设置标志位MOVDPTR,#0F00H;设置通道初值 MOVR6,#02H;设置通道数为2MOVR7,#08H;设置采样次数为8MOV R0,#40H;设置数据区首址 TRAN_S:MOVXDPTR,A;启动A/D转换程序流程图WAIT:JB00H,WAIT;标志位为1等待A/D转换完成中断 SETB00H;置标志位INCDPTR;通道号加1INCR0INCR0;42H为下一通道采样数据存放首址DJNZR6,#TRAN_S;2个通道采样未完,继续采样MOVDPTR,#0F00H;2个通道采样结束,重置通道初值INCR0;修改采样数据存放地址DJNZR7,TRAN_S;未完成8次采样,继续MOV A,R3;数据处理程序 4.3.2 89C51与ADC0809汇编程序ALE BIT P1.1ST BIT P1.2OE BIT P1.3EOC BIT P1.4ORG 0000hLJMP STARTSTART: MOV P1,#0FFH ;设置p1口为输入SETB ALECLR STCLR OESETB STCLR STLOOP:MOV C,EOCJC LOOP1 ;如果装换完成标记置一则转到LOOP1SETB STCLR STSJMP LOOPLOOP1:SETB OEMOV A,P0 ;将p0口和0809的各个数据口连接MOV R3,A ;将转换后的数据存入R3中CLR OESJMP LOOPEND 4.3.3 显示模块 该显示电路采用了与一般的电阻限流方式不同的实现方式,由此减少了4*4=16个限流电阻,简化了硬件系统。每笔画段二极管正常发光时的电流一般为10mA左右(当然,电流大小取决于选用数码管是普亮、高亮还是超高亮类型的不同),其两端压降约为2.0V,也就是说只要数码管的公共端加上+2.0V以上的电压,即可满足每笔画段发光二极管的发光要求,而且适当调节此电压值即可改变发光二极管的电流。 为了节省CPU的端口数,显示电路采用了串行通信口的串行显示接口方式,利用串口0工作方式, 在发送TXD端口(P3.1)的时钟信号的作用下,通过接收RXD端口(P3.0)将显示段码串行数据送入8位并行输出移位寄存器74LS164,控制响应的数码管。端口P3.2的作用是通过LM317控制数码管显示的开启与关闭,当P3.2为低电平时,Q1关断,LM317的输出电压低于1.5V,不足以发光,避免了在显示数据刷新时显示的抖动现象。程序运行时的主要程序语言: MOV B,#100 DIV AB ;商是BCD编码的百位,余数是BCD编码的十位和个位MOV R2,A ;保存BCD码的百位。MOV A,B ;余数送A。MOV B,#10DIV AB ;商是BCD码的十位,余数是BCD的个位。SWAP A ;A中高低4位字节翻转ORL A,BMOV R3,A ;保存转换的结果。 RETI ;中断返回MOV TL0,#0B0H;记数器初值设定 MOV30H,#08H;置计数初值SETBIT0;中断请求信号为脉冲方式 SETBEX0;外部中断0中断允许SETBET0;定时器0中断允许 SETBEA;开中断SETBTR0;启动定时器HERE:AJMPHERE;等待中断ATC0809A/D转换程序清单: ORG0000HAJMPSTARTORG0003HAJMPSAMPLE;转至数据采样程序START:MOVDPTR,#0000H;建立C0809的地址MOVR0,#40H;设置数据存储初址SETBEX0;允许外部中断0SETBIT0;设置外部中断0请求信号方式为脉冲方式SETBEA;中断允许MOVXDPTR,A;启动A/D转换HERE:AJMPHERE;等待中断中断服务程序清单:SAMPLE CLR EA;关中断MOV DPTR,#0002H MOVXA, DPTR;读A/D转换数据的高8位MOV, R0,A;保存数据INCR0INCDPTR MOVX A, DPTR;读A/D转换数据的低4位SETB EA;开中断RETI 4.3.4键输入程序KEYI: ACALL KSI ;调用判有无键闭合子程序 JNZ LKINI: ACALL DIR ;调用显示子程序,延迟6ms AJMP KEYILK1: ACALL DIR ;延迟12ms ACALL DDR ACALL KS1 ;调用判有无键闭合子程序 JNZ LK2 ACALL DIR ;调用显示子程序延迟6ms AJMP KEYILK2: MOV R2,#0FEH ;扫描模式R2 MOV R4,#00HLK4: MOV DPTR,#FF7DH ;扫描模式8255A的PA口 MOV A,R2 MOV DPTR,A MOVX DPTR,A INC DPTR ;数据指针增2,指向PC口 INC DPTR MOVX A,DPTR ;读8255APC口的行线状态 JB ACC.0,LONE ;转判1行 MOV A,#00H ;0行有键闭合,首键号0A AJMP LKP ;跳键号计算子程序LONE: JB ACC.1,LTW0 ;转判2行 MOV A,#08H ;1行有键闭合,首键号8A AJMP LKP ;跳键号计算子程序LTW0 JB ACC.2,LTHR ;转判3行 MOV A,#10H ;21行有键闭合,首键号10HA AJMP LKP ;跳键号计算子程序LTHR: JB ACC.3,NEXT ;转判下一行 MOV A,#18H ;3行有键闭合,首键号18HALKP: ADD A,R4 ;行首键号+列号=按下的键号 PUSH A ;键号进栈保护LK3: ACALL DIR ;调用显示子程序,延时6ms ACALL KS1 JNZ LK3 ;判键释放否 POP A ;键号出栈A RETNEXT: INC R4 ;列计数器加1 MOV A,R2 ;判是否已扫到最右边一列 JNB ACC.7,KND ;有无键入 RL A ;扫描模式左移一位 MOV R2,A AJMP LK4KND: AJMP KEYIKS1: MOV DPTR,#FF7DH ;判有无键闭合子程序,全“0”PA口,即列线全为低电平 MOV A,#00H MOVX DPTR,A INC DPTR ;DPTR增2,指向PC口 INC DPTR MOVX A,DPTR ;读行线的状态 CPL A ;按位取反,如有键按下,则A中内容非零,无键按下A为零 ANL A,#0FH ;屏蔽无用的高4位,行线的状态在A中 RET4.3.5定时子程序 由于参数的变化是缓慢的,设计通过利用单片机的内部时钟,采用定时/计数器来产生60s的定时,每隔60s采
展开阅读全文