最新毕业设计(论文)-基于单片机的大棚温湿度检测报警系统1.doc

上传人:可****阿 文档编号:48855440 上传时间:2022-10-07 格式:DOC 页数:30 大小:584.04KB
返回 下载 相关 举报
最新毕业设计(论文)-基于单片机的大棚温湿度检测报警系统1.doc_第1页
第1页 / 共30页
最新毕业设计(论文)-基于单片机的大棚温湿度检测报警系统1.doc_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《最新毕业设计(论文)-基于单片机的大棚温湿度检测报警系统1.doc》由会员分享,可在线阅读,更多相关《最新毕业设计(论文)-基于单片机的大棚温湿度检测报警系统1.doc(30页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 摘 要系统是一个专门为温室大棚温湿度控制而设计的智能系统。通过对系统的硬件部分和软件部分设计来达到监控要求。硬件部分实现了对温湿度传感器模块、A/D转换模块、显示模块、控制模块的设计;软件部分主要根据系统的设计思想设计出了主程序和子程序流程图,并通过汇编语言和C语言实现。通过实践证明,系统具有性能好、操作方便等优点,实现了对温湿度的显示、调节、自动控制和手动控制。关键词: A/D转换;传感器;LED ABSTRACTTheworkofthisdissertationisabout an intelligent system designed for controlling the tempe

2、rature and humidity of a greenhouse. It can meet the demand of monitoring through the design of hardware and that of software in details, The former is more important in this dissertation, including the introduction of sensor of measuring temperature and humidity, changing of A/D, demonstrating mode

3、 of data, the mode of control and the connecting part of the changing column. And according to the design thoughts the latter shows the flow chart of the main program and the subprogram, realized by assembly language and C language. The system adopts quite a new integrated circuit, which makes it fu

4、nction better and run more conveniently when put into practice. Furthermore, not only can it achieve the goals of manifesting and regulating the temperature. But also itcanbe controlled automatically and manually.Key words: changing of A/D ; sensor ; LED目 录1 绪论11.1课题背景11.2预期目标12 系统总体设计方案及工作原理22.1系统总

5、体设计方案简述22.1.1基本功能22.1.2主要技术参数22.2系统的工作原理23 系统的硬件设计43.1 单片机的确定43.2传感器的确定73.2.1温度传感器73.2.2湿度传感器83.3采集电路的设计93.3.1温度采集电路93.3.2湿度采集电路93.4 A/D转换113.4.1 模数转换器的确定113.4.2 ADC0809与8031的连接123.5键盘与显示133.5.1键盘部分133.5.2显示部分143.6报警电路设计153.7单片机与PC机的通信接口163.8系统总体电路174 软件设计194.1 设计思想194.2 初始化程序及主程序框图204.3 子程序框图214.4系

6、统的主要程序22总 结27参考文献28致 谢291 绪论1.1课题背景 温湿度是衡量温室大棚的重要指标,它直接影响到栽培作物的的生长和产量,为了能给作物提供一个合适的生长环境,首要问题是加强温室内的温湿度的检测, 但传统的方法是用与湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。因此我们需要一种造价低廉、使用方便且测量准确的温湿度测量仪。该设计即是针对这一问题,设计出了能够实现温湿度自动检测,显示,上下限报警等多功能的温湿度监测控制系统。1.2

7、预期目标系统完成后可以通过温度传感器DS18B20和湿度传感器HS1101对大棚温室内的温湿度进行测量,通过单片机AT89C51对采集到的数据进行处理,用LED显示出当前环境的温湿度状况,其中温度可以有操作人员根据不同作物所需的最适宜温度进行调节,当环境温度和设置的最适宜温度之差大于4时,报警装置即会启动。2 系统总体设计方案及工作原理2.1系统总体设计方案简述该温湿度测控系统是由数据采集和处理系统和报警系统组成,由温度、湿度传感器,模拟量输入通道、A/D转换、显示器与报警电路等组成。通过对信号的采集、分析、处理,然后输出信号来使执行部件进行动作,使温室大棚达到所要求指标。2.1.1基本功能1

8、 检测温度,湿度2 显示温度,湿度3 过限报警2.1.2主要技术参数温度检测范围:0-50测量精度:0.5湿度检测范围:0%-100%RH检测精度:2.5% RH控制方式:手动/自动可切换参数调整:手动设定/程序控制2.2系统的工作原理温湿度监控系统能完成数据采集和处理、显示、串行通信、输出控制信号等多种功能。由数据采集、数据调理、单片机、控制等4个大的部分组成。该测控系统具有实时采集(检测温室大棚内的温湿度)、实时处理(对监测到的温湿度值进行比较分析,决定下一步控制进程)、实时控制(根据处理的结果发出控制指令,指挥被控对象动作)的功能。主要硬件包括温度传感器,湿度传感器,AT89C51单片机

9、、数据采集电路、LED显示器、A/D转换器等。其原理结构图如下图2-1所示。首先充分考虑气候、环境因素对植物的影响,并根据温室大棚内植物保持正常状态所需的温度和湿度,设计出温湿度参考值预先存储于单片机中。系统的数据采集部分是将温湿度传感器置于温室内部,测出室内的温湿度值,经过放大、A/D转换为数字量之后送入AT89C51单片机中,然后LED显示出温湿度测量值。单片机将预设的参考值与测量值进行比较,根据比较结果做出判断。图2-1 原理结构图当温湿度值超过允许的误差范围,系统将发出报警,如果有必要,工作人员还可以根据实际的情况通过键盘或按钮来人工修改片内存储的预设值。通过对整个系统的核心单片机部分

10、的设计,达到优化控制温湿度的目标。3 系统的硬件设计3.1 单片机的确定单片机的全称是单片微型计算机(Single Chip Microcomputer)。为了使用方便,它把组成计算机的主要功能部件:中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM、EPROM、E2PROM或FLASH)、定时/计数器和各种输入/输出接口电路等都集成在一块半导体芯片上,构成了一个完整的计算机系统。与通用的计算机不同,单片机的指令功能是按照工业控制的要求设计,因此它又被称为微控制器(Microcontroller)。8031片内不带程序存储器ROM,使用时用户需外接程序存储器和一片逻辑电路373,外

11、接的程序存储器多为EPROM的2764系列。用户若想对写入到EPROM中的程序进行修改,必须先用一种特殊的紫外线灯将其照射擦除,之后再可写入。写入到外接程序存储器的程序代码没有什么保密性可言。8051片内有4K的ROM,无须外接外存储器和373,更能体现“单片”的简练。但是你编的程序你无法烧写到其ROM中,只有将程序交芯片厂代你烧写,并是一次性的,今后你和芯片厂都不能改写其内容。8751与8051基本一样,但8751片内有4k的EPROM,用户可以将自己编写的程序写入单片机的EPROM中进行现场实验与应用,EPROM的改写同样需要用紫外线灯照射一定时间擦除后再烧写。由于上述类型的单片机应用的早

12、,影响很大,已成为事实上的工业标准。后来很多芯片厂商以各种方式与Intel公司合作,也推出了同类型的单片机,如同一种单片机的多个版本一样,虽都在不断的改变制造工艺,但内核却一样,也就是说这类单片机指令系统完全兼容,绝大多数管脚也兼容;在使用上基本可以直接互换。我们统称这些与8051内核相同的单片机为“51系列单片机”。 在众多的51系列单片机中,要算 ATMEL 公司的AT89C51更实用,因他不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写,一般专为 ATMEL AT89Cx 做的编程器均带有这些功能。显而易见,

13、这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果。重要的一点AT89C51目前的售价比8031还低,市场供应也很充足。AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机。片内含4K bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51 指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领

14、域。AT89C51的管脚图如图3-1下:图3-1 AT89C51管脚图各引脚功能简单介绍如下:VCC:供电电压;GND:接地;P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。当P1口的管脚写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高;P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将

15、输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收;P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号;P3口:P3口管脚

16、是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:复位输入。当振荡器

17、复位器件时,要保持RST脚两个机器周期的高平时间;ALE / PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效;PSEN:外部程序存储器的选通信号。在由外部程

18、序存储器取址期间,每个机器周期PSEN两次有效。但在访问内部部数据存储器时,这两次有效的PSEN信号将不出现;EA/VPP:当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP);XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入;XTAL2:来自反向振荡器的输出。3.2传感器的确定3.2.1温度传感器常用的温度传感器有热敏电阻、热电偶、PN结温度传感器、集成温度传感器、热电阻等。对于温室内部温度的检测,温度传感器选择DALLAS公司生产的一线制数字温度传感器D

19、S18B20,它具有3引脚TO92小体积封装形式;温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。DS18B20有三个引脚,GND接地;DQ数字信号的输出/输入;Vdd为外接电源输入端。 图3-2 DS18B20的引脚图3.2.2湿度传感器本系统需要检测温室大棚内的湿度,目前已有许多湿敏器件,按感湿材料来分,大致有四类:电解质,半导体陶瓷,高分子和其它型式。温室内的相对湿度大,变化速度慢,不需要高的响应时间,但是对线性度和稳定性要求高,所以经过选择采用电容式集成湿度传感器HS1101来检测温室大棚内部的湿度。

20、湿度传感器HS1101是法国Humirel生产的电容式湿度传感器。HS1101是一种在高分子薄膜上形成的电容。高分子薄膜上的电极是很薄的金属微孔蒸发膜,水分子可通过两端的电极被高分子薄膜吸附或释放,随着这种水分子的吸附或释放,高分子的介电系数将发生相应的变化。由于介电系数随空气的相对湿度变化而变化,所以只要测定电容C值就可得到相对湿度。HS1101是基于独特工艺设计的固态聚合物结构,在电路中等效于一个电容器,其电容随所测空气的相对湿度增大而增大。HS1101具有极好的线性输出,在相对湿度为0100RH的范围内,电容的容量由163 pF变化到202 pF,其误差不大于2RH;湿度量程为199RH

21、,工作温度范围为-40100;湿度输出受温度影响极小(温度系数仅为0.04 pF);常温下使用无需温度补偿,无需校准。该器件具有不需校准的完全互换性、高度可靠性、长期稳定性、快速响应的固态聚合物结构,适用于线性电压输出和频率输出两种电路。 图3-3 湿敏电容工作的湿、温度范围 图3-4 电容湿度响应曲线 图3-3为湿敏电容工作的温、湿度范围。图3-4为湿度-电容响应曲线。相对湿度在1%-100%RH范围内;电容量由16pF变到200pF,其误差不大于2%RH;响应时间小于5S;温度系数为0.04 pF/。可见精度是较高的。3.3采集电路的设计3.3.1温度采集电路 图3-5 温度检测电路由于D

22、S18B20只有一个串行通信接口,与单片机的连接电路非常简单,只需和单片机的一个I/O端口连接即可,本系统选择了接口接的是P2.0端口,其连接电路图如图3-5所示。DS18B20的I/O口属于漏极开路输出,外接上拉电阻后常态下呈高电平。该器件内含寄生电源,其供电方式可以选择寄生电源方式,也可以选用外部电源。为方便起见,采用外部电源供电。3.3.2湿度采集电路HS1101电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。如何将电容的变化量准确地转变为计算机易于接受的信号,常有两种方法:一是将该湿敏电容置于运放与阻容组成的桥式振荡电路中,所产生的正弦波电压信号经整流

23、、直流放大、再A/D转换为数字信号;另一种是将该湿敏电容置于555振荡电路中,将电容值的变化转为与之成反比的电压频率信号,可直接被计算机所采集本系统采用的是将HS1101接入555定时器组成的震荡电路中,输出一定频率的方波信号,这种方法结构简单,使用方便,因此被广泛采用,具体电路图如3-6下:图3-6 HS1101和NE556构成的湿度采集电路集成定时器NE555一方面可以形成单稳态电路,另一方面可以形成多谐振荡电路,本系统选用的是NE556,它内部含有两个NE555定时器,其中R1,R2,C1,C2和NE556构成多谐振荡器,外接电阻R1,R2和湿敏电容C1构成了对湿敏电容C1的充电回路,7

24、端通过芯片内部的晶体管对地短路又构成了对C1的放电回路,并将2,6端相连引入到片内比较器。该振荡电路的两个暂稳态过程交替如下:首先是电源Ucc通过R1,R2向C2充电,经T1充电时后,Uc2充至内比较器的高触发电平,约2/3Ucc,此时输入引脚3端由高电平突降为低电平,然后通过R2放电,经T2放电时间后,Uc2下降到比较器的低触发电平,约1/3Ucc,此时输入引脚3端又由低电平跃升为高电平,如此反复,形成方波输出,其中充放电时间为:T1=C1(R1+R2)ln2T2=C1R2ln2因而输出的方波频率为:f=1/(t1+t2)=1/C1(R1+2R2)ln2=50HZ只要改变定时元件R1和R2就

25、可以改变脉冲的频率,从多谐振荡器出来的信号又接入到单稳态触发器,单稳态触发器它有两个触发状态,一个稳定状态,一个暂稳定状态,在外来触发脉冲作用下,能够由稳定状态翻转到暂稳定状态,而暂稳定状态维持一段时间后,再自动的返回到稳定状态,且暂稳定状态持续时间长短取决与电路本身参数,图中,R3,C3和传感器HS1101是外接地定时元件,触发脉冲Ui由5端输出,由8端输入,下降沿有效,从9端输出一个幅度,宽度都一定的矩形波信号,输出的脉冲宽度Tp为:Tp=R3(C2+Cx)ln3。3.4 A/D转换模数转换器(ADC),简称AD,是实现模拟量向数字量的转变的设备。3.4.1 模数转换器的确定 A/D转换器

26、位数的确定和系统所需测量控制的范围、精度有关。其一:实际选取的位数与其它环节所能获得的精度相适应,只要不低于它们就可以,不必太高。其二:如果微处理机是51系列单片机,采用8位以下的A/D转换器时,接口电路最简单。其三:由于温室大棚湿度变化相对于控制运行的速度来说是缓慢的,因此,在A/D转换的时候,也不要求有很快的转换速率。ADC0809是采样分辨率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。 主要特性1)8路输入通道,8位A/D转换器,即分辨率为8位; 2)具有转换起停控制端;3)转换时

27、间为100s;4)单个5V电源供电;5)模拟输入电压范围05V,不需零点和满刻度校准; 6)工作温度范围为-4085摄氏度;7)低功耗,约15mW。内部结构ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近。 外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装:IN0IN7:8路模拟量输入端;2-12-8:8位数字量输出端;ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路; ALE:地址锁存允许信号,输入高电平有效;START: A/D转换启动脉冲输入端,输入一个正脉

28、冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换);EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平);OE:数据输出允许信号,输入高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量; CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ; REF(+)、REF(-):基准电压;Vcc:电源,单一5V;GND:地。首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC

29、输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。3.4.2 ADC0809与8031的连接单片机控制ADC可采用查询法和中断控制法。本系统采用中断方式,中断控制是指启动信号送到ADC后,单片机执行别的程序。当ADC转换完成时向单片机发出中断请求信号,单片机响应中断请求,读出转换数据,然后返回源程序。ADC0809与单片机的接口如图3-10所示。图3-7 ADC0809与单片机的接口将A/D0809作为一的外扩展的并行I/O口,直接由单片

30、机的P2.0和脉冲进行启动。模拟量输入通道选择端A、B、C分与单片机的P0.0、P0.1、P0.2直接相连,数据由A/D0809转换器的2-1 2-8输出。为了提高系统的效率,A/D转换器D采用中断的方法,将ADC0809的转换信号EOC经反相器连接到单片机的INT1。当A/D转换结束,向单片机申请中断,单片机响应后,即可读出A/D转换的结果数据。ADC0809的时钟信号由单片机的ALE提供(为1MHZ),转换器的启动信号START和8位模拟量输入地址锁存允许信号ALE由单片机的WR和P2.0口来控制。转换的输出允许信号OE由单片机的RD和P2.0口控制。3.5键盘与显示3.5.1键盘部分根据

31、该系统的实际情况,我选用了独立式键盘。独立式键盘是个按键相互独立地连通一条输入数据线如图3-8所示。这种键盘结构的优点是电路简单,缺点是当键的数量较多时占用的I/O线的数量较多。图3-8 键盘连接利用P1口实现,当开关全部打开时,均为高电平,经过与门仍为高电平,因此不会产生中断。当其中一键被按下时,端变为低点平,向CPU申请中断,CPU响应后,用查询方法找到申请中断的功能键,并按程序设定执行相应的功能。3.5.2显示部分本系统的显示部分我选用了带有高速串行接口的8位LED控制驱动器MAX7219芯片,本设计采用1片MAX7219,在每轮温湿度检测完成以后,显示新值。MAX7219是MAXIM公

32、司生产的一种串行接口方式7段共阴极LED显示驱动器,其片内包含有一个BCD码到B码的译码器、多路复用扫描电路、字段和字位驱动器以及存储每个数字的88 RAM,每位数字都可以被寻址和更新,允许对每一位数字选择B码译码或不译码。采用三线串行方式与单片机接口,电路十分简单,只需要一个10k左右的外接电阻来设置所有LED的段电流MAX7219为24引脚芯片,引脚排列如3-8图所示,各引脚功能如下:DIN:串行数据输入端;DIG0DIG7:LED位线;LOAD:数据转载信号输入端;SEGASEGG,SEGDp:段码输出端; ISET:硬件亮度调节端;DOUT:串行数据输出端;CLK:移位脉冲输入端;V+

33、:正电源;GND:地。 图3-9 MAX7219引脚图 图3-10 显示连接图MAX7219采用串行数据传输方式,由16位数据包发送到DIN引脚的串行数据在每个CLK的上升沿被移入到内部16位移位寄存器中,然后在LOAD的上升沿将数据锁存到数字或控制寄存器中。LOAD信号必须在第16个时钟上升沿同时或之后,但在下一个时钟上升沿之前变高,否则将会丢失数据。DIN端的数据通过移位寄存器传送,并在16.5个时钟周期后出现在DOUT端。DOUT端的数据在CLK的下降沿输出。串行数据以16位为一帧,其中D15D12可以任意,D11D8为内部寄存器地址,D7D0为寄存器数据,工作时序如下:图3-11工作时

34、序图3.6报警电路设计在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据或记过计算机进行数据处理、数字滤波,标度变换之后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值,进行显示和控制。本设计采用峰鸣音报警电路。峰鸣音报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过AT89C51的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。在图

35、中,当输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当输出低电平“0”时,三极管截止,蜂鸣器停止发声。 图3-12是一个简单的使用三极管驱动的峰鸣音报警电路 图3-12 三极管驱动的峰鸣音报警电路3.7单片机与PC机的通信接口利用AT89C51单片机的标准串行接口,通过简单的外围接口电路,可以方便地实现单片机与PC机之间的数据通讯。本文对数据通讯无特殊要求,因此选择RS-232串行通讯。在接口电路和计算机接口芯片中大都为TTL或CMOS电平,所以在通信时,必须进行电平转换,以便与RS-232C标准的电平匹配 MAX232芯片可以完成电平转换这一工作。MAX232芯片是M

36、AXIN公司生产的低功耗、单电源双RS232发送/接收器 适用于各种EIA-232E和V.28/V.24的通信接口MAX232芯片内部有一个电源电压变换器,可以把输入的+5V电源变换成RS-232C输出电平所需10V电压,所以采用此芯片接口的串行通信系统只要单一的+5V电源就可以 。MAX232的管脚说明:C1+,C1-,C2+,C2-:外接电容端;R1IN,R2IN:2路RS-232电平信号接收输入端;R1OUT,R2OUT:2路转换后的TTL电平接收信号输出端,送单片机的RXD接收端;T1IN,T2IN:2路TTL电平发送输入端,接单片机的TXD发送端;T1OUT,T2OUT:2路转换后的

37、发送RS-232电平信号输出端,接传输线;V+:经电容接+5V电源;V-:经电容接地。MAX232的芯片引脚如3-13图所示。接线图如3-14所示 图3-13 MAX232引脚图 图3-14 接线图3.8系统总体电路系统的总体电路如图3-15所示,由DS18B20温度传感器和HS1101湿度传感器采集信号并处理,传输给ADC0809进行模数转换,然后传输给AT89C51单片机,在LED显示器上显示数值,如果超过所设定温度湿度,蜂鸣报警器将工作。系统再由RS-232进行串口通信。图3-15 系统总电路图4 软件设计4.1 设计思想根据实际需要,单片机软件主程序由若干模块组成:初始化模块、LED显

38、示模块、数据发送/接受中断服务程序模块、数据采集模块、数据处理模块。其中有些模块还包含有子模块,使用时下一级模块被高一级模块调用,各部分既相互独立又相互联系。中断允许寄存器IE中的ES位置1,采用串口中断来进行中断请求,然后通过对串行口控制寄存器SCON的设置来确定串行口的接收方式,确定中断服务程序入口地址,最后用EA命令开放中断系统,等待串口中断的到来。当中断到来之后,即进入下面的接收中断服务程序模块。本系统的程序按其功能可以分为三部分:主程序MIAN程序,INT1中断程序(采集程序),INT0中断(输入键值)程序3部分组成。MIAN程序进行必须的初始化操作;INT1响应中断后,会进行模拟量

39、的采集,并进行一系列的处理操作,包括:采集,转换,执行相应的操作等;INT0中断为按键程序,以中断的方式对按键做出反映。AT89C51片内RAM资源地址分配:00H07H: 主程序中工作寄存器R0R7;08H0FH:外部中断0服务程序中工作寄存器R0R7;10H1FH:定时中断T0服务程序中工作寄存器R0R7;20H2FH:位寻址区;30H:存放设定温度值;31H: 存放设定湿值;32H:存放温度允许偏差;33H:存放湿度允许偏差;34H:存放温度A/D转换结果;35H:存放湿度A/D转换结果;36H43H:存放计算比较数据区;46H4FH:显示缓冲区。4.2 初始化程序及主程序框图(1) 初

40、始化程序:ORG 0100H MOV TMOD,#20H ;T1位方式2MOV TH1,#0FAH ;波特率为4800MOV TL1,#0FAHMOV PCON,#80HMOV SCON,#0F0H ;串口方式为3SETB TR1 ;启动T1SETB PS ;串口中断优先级位高级SETB EA ;开所有中断SETB ES ;开串口中断SETB IT0 ;INT0为边沿触发SETB EXO ;开INT0(2) 主程序框图 (图4-1) 图4-1 主程序框图4.3 子程序框图(1) 串口中断 (2) 数据采集 图4-2 串口中断 图4-3数据采集4.4系统的主要程序1温度采集程序#include#

41、include#include#define uchar unsigned char#define uint unsigned intsbit DQ=P13; /ds18b20 端口uchar Temp_Integer=0;uchar Temp_Decimal=0;uchar fg=0;void delay2(uint us)while(us-);uchar Init_DS18B20(void) uchar x=0;DQ = 1; /DQ复位delay2(8); /稍做延时DQ = 0; /单片机将DQ拉低delay2(80); /精确延时 大于480usDQ = 1; /拉高总线delay2

42、(10);x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay2(5);return x;uchar ReadOneChar(void) /读一个字节,LSB uchar i=0; uchar dat = 0; for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; delay2(5); return(dat);void WriteOneChar(unsigned char dat) /写一个字节 uchar i=0; for (i=8; i0; i-) DQ = 0; DQ =

43、 dat&0x01; delay2(5); DQ = 1; dat=1; delay2(5);/*DS18b20读取主函数,整个流程5ms左右*/uchar ReadTemperature(void) /读取温度 uchar L_18B20=0; uchar H_18B20=0; Init_DS18B20(); WriteOneChar(0xCC); / skip:跳过读序号列号的操作 WriteOneChar(0x44); / convert:启动温度转换 delay2(200); Init_DS18B20(); WriteOneChar(0xCC); /skip:跳过读序号列号的操作 Wr

44、iteOneChar(0xBE); /read:读取温度寄存器,前两个就是温度 L_18B20=ReadOneChar(); /读取温度低八位数据 H_18B20=ReadOneChar(); /读取温度高八位数据 if(H_18B200x7f) /最高位为1时温度是负 L_18B20=L_18B20+1; /补码转换,取反加一 H_18B20=H_18B20; fg=1; /读取温度为负时fg=1 Temp_Decimal=L_18B20&0x0f; /取温度小数部分二进制 L_18B20=L_18B204; /取温度整数部分二进制 H_18B20=H_18B204; Temp_Integer=H_18B20|L_18B20;2湿度采集SAMPLE: SETB 00H ;设置标志位 MOV DPTR,#0F00H ;设置通道初值 MOV R6,#02H ;设置通道数为2 MOV R7,#08H ;设置采样次数为8MOV R0,#40H ;设置数据区首

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com