-基于单片机的数字显示温度湿度测量仪_第1页
-基于单片机的数字显示温度湿度测量仪_第2页
-基于单片机的数字显示温度湿度测量仪_第3页
-基于单片机的数字显示温度湿度测量仪_第4页
-基于单片机的数字显示温度湿度测量仪_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、滨江学院毕业论文(设计) 题 目 院 系 电子工程系 专 业 电子信息工程 学生姓名 学 号 指导教师 职 称 二一三年 十一月 二十日目 录1绪论11.1 选题背景及意义11.2本次设计的主要内容及参数要求11.2.1 基本功能21.2.2 主要技术参数22 系统设计23硬件设计33.1 温度测量电路的实现33.1.1 DS18B20介绍33.1.2 温度测量电路43.2 湿度测量电路的实现53.2.1 HS1101介绍53.2.2 NE555振荡器63.2.3 湿度测量电路63.3 输入电路73.4 A/D 转换电路73.4.1 A/D转换器的特点83.4.2 7135的应用83.5单片机

2、部分103.6液晶显示部分113.6.1 1601使用说明113.6.2 液晶显示部分与89S52的接口133.7 通讯模块144的软件设系统计144.1主程序设计144.2系统软件流程图154.3通讯模块程序设计195 结束语206致谢20参考文献21基于单片机的数字显示温度湿度测量仪XXX南京信息工程大学滨江学院电子信息工程,南京210044摘要:本文介绍一种基于AT89s52单片机的一种温度湿度测量仪,该电路采用DS18B20作为温度监测元件,测量温度范围为-30-+100,HS1101作为湿度检测元件,湿度测量范围为1%-100%RH。使用4位LED模块显示。正文着重给出了软硬件系统的

3、各部分电路,介绍了集成温度传感器DS18B20和湿度传感器HS1101的原理,AT89s52单片机功能和应用。该电路设计新颖、功能强大、结构简单。关键词:传感器,数字电压表,A/D转换器1绪论 数字显示温度湿度计,它是采用数字化测量技术,把连续的温度湿度值转换成不连续、离散的数字形式并加以显示的仪表。传统的温度湿度计功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字温度湿度计,由于精度高、抗干扰能力强,可扩展性强、集成方便得到了广泛的应用。温度和湿度是许多监控系统中的重要参数。DS18B20和HS1101分别把温度湿度信息转换成相应的数字信号。数据采集、处理模块主要由AT89s52单

4、片机构成,完成温度湿度数据的读取和显示。1.1 选题背景及意义准确的温湿度测温度和湿度的测量和控制是许多行业的重要工作目标之一,不论是粮食仓库、中药材仓库,还是图书保存,都需要有规定的温度和湿度,然而温度和湿度却是最不易保障的指标,针对这一情况,研制可靠且实用的温度和湿度检测与控制系统就显得非常重要。随着工业的发展,需要对温湿度控制的场合越来越多。对粮仓而言,温湿度的高低对粮食的质量影响很大,温湿度过高会使粮食变质,湿度过大会使霉菌和害虫滋生。由于温湿度的检测控制不当,可能使我们导致无法估计的经济损失。为保证日常工作的顺利进行,首要问题是加强粮仓内温度与湿度的监测工作,但传统的方法是用湿度表、

5、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。因此我们需要一种造价低廉、使用方便且测量准确的仪表。1.2本次设计的主要内容及参数要求1.2.1 基本功能主要实现对温度、湿度的检测,将温度湿度信号通过传感器进行信号的采集并转换成电信号,再运用单片机进行数据的分析和处理。为显示和报警电路提供信号。1.2.2 主要技术参数 温度检测范围 : -30-+100 测量精度 : 0.5 湿度检测范围 : 1%-100%RH 检测精度 : 1%RH2 系统设计本设

6、计是基于单片机对数字信号的高敏感和可控性、温湿度传感器可以产生模拟信号,和A/D模拟数字转换芯片的性能,以单片机为核心的一套检测系统,其中包括A/D转换、单片机、温度检测、湿度检测、显示、系统软件等部分的设计。多路开关A/D转换多路开关湿度检测显示电路报警电路单片机温度检测图1 系统总体框图本设计由信号采集、信号分析和信号处理三个部分组成的。 信号采集 由温度传感器、湿度传感器及多路开关组成; 信号分析 由A/D转换器、单片机基本系统组成; 信号处理 由串行口LED显示器和报警系统等组成。该系统由温度传感器、湿度传感器、8031嵌入式系统、加热设备、加湿设备几部分组成。结构原理框图如图2所示。

7、通过温度传感器和湿度传感器测量温室内的温湿度经过A/D转换送入8031进行处理,测量结果通过显示电路进行显示。 现 场传感器传感器特 定 接 口输 入 / 输 出电 源RAM处理单元键盘显示电路A/D转换 图2 系统结构原理图3硬件设计3.1 温度测量电路的实现测温模块采用数字温度传感器DS18B20,它能代替模拟温度传感器和信号处理电路,直接与单片机沟通,完成温度采集和数据处理。DS18B20与AT89s52结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。3.1.1 DS18B20介绍 DS18B20具有独特的单总线接口方式,仅需使

8、用1个端口就能实现与单片机的双向通讯。全数字温度转换及输出提高了信号抗干扰能力和温度测量精度。它具有多样封装形式,适应不同硬件系统。它的工作电压使用范围宽(3055 V),可以采用外部供电方式,也可以采用寄生电源方式,即当总线DQ为高电平时,窃取信号能量给DS18B20供电。它还有负压特性,电源极性接反时,DS18B20不会因接错线而烧毁,但不能正常工作。可以通过编程实现912位的温度转换精度设置。DS18B20采用3脚TO-92封装,形如三极管,同时也有8脚SOIC封装,还有6脚的TSOC封装,如图所示。 图3 DS18B20的封装图DS18B20的6个功能指令:(1)温度转换指令(44H)

9、。这个命令用于启动温度转换,无实质的数据要求。如果微控制器在该命令之后输出读操作命令,那么DS18B20将使DQ端为低电平,表示DS18B20正忙于温度转换,不能响应该命令。(2)写便笺式存储器(4EH)。写便笺式存储器从TH存储单元开始,三个字节的数据将被定位在2到4号便笺式存储器单元。所有的三个字节必须在复位钳写入便笺式存储器。(3)读便笺式存储器(BEH)。该指令读取便笺式存储器的内容,读出的数据将从Byte 0(存储器的0号单元)开始直到第9字节(CRC校验字)被读走。但如果不想读完所有字节,微控制器可以再任何时候输出复位信号中断其传输。(4)复制便笺式存储器指令(48H)。把2、3、

10、4号存储单元的内容存储到非易失性SRAM中去。复制期间,如果有读指令,DS18B20将把DQ置为低电平,直到转换结束,把DQ置为高电平。(5)回读SRAM(B8H)。将存储在SRAM中的温度报警上下限、分别率配置的内容写回相应的便笺式存储器。(6)读电源配置结构指令(B4H)。主控制设备发出该指令后在输出读时序,器件即会送出所使用的电源信息:0为寄生电源,1为外接电源。DS18B20的ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。在进行DS18B20操作时一般有以下步骤:(1)初始化DS18B20。(2)ROM指令

11、操作。(3)便笺式存储器功能指令操作。(4)处理或数据传送。每一次DS18B20的操作都必须满足以上步骤,若是缺少或顺序混乱,期间将不会返回值。3.1.2 温度测量电路 采用DS18B20数字温度传感器测量温度, DS18B20与单片机是单线双向通信。其连接电路如图所示。 图4 DS18B20数字传感器测量温度图3.2 湿度测量电路的实现 HS1101实际上相当于一个可变电容,它会因外部环境湿度的变化而致使电容值变化,湿度测量模块采用HS1101及NE555一起组成,将该HS1101置于NE555震荡电路中,将电容值的变化转化为与之呈反比的电压频率信号,可直接被计算机采集。3.2.1 HS11

12、01介绍HS1101是法国HUMIREL公司生产的基于独特工艺设计的电容式湿度传感器。采用具有专利权的固态聚合物结构。特点:全互换性,在标准情况下不需校正;长时间饱和下快速脱湿;可以自动化焊接,包括波峰焊或水浸;高可靠性与长时间稳定性;可用于线性电压或频率输出回炉;快速反应时间。HS1101是经过独特工艺设计的可变电容元件,这种想对湿度传感器可以大批量生产。可以应用于办公自动化,车厢内空气质量控制,家电,工业控制系统等在需要湿度补偿的场合它也可以得到很大的应用。HS1101如图所示。 图5 HS1101的等效电路及其外观图 3.2.2 NE555振荡器 NE555是属于555系列的计时IC的其

13、中的一种型号,555系列IC的接脚功能及运用都是相容的,只是型号不同的因其价格不同其稳定度、省电、可产生的振荡频率也不大相同;而555是一个用途很广且相当普遍的计时IC,只需少数的电阻和电容,便可产生数位电路所需的各种不同频率之脉冲信号。其引脚位功能配置如图所示。 图6 NE555引脚图3.2.3 湿度测量电路采用HS1101及NE555实现对湿度进行测量,其电路连接如图3-7所示(NE555的3引脚通过k电阻接51的P2.6)。图图7 HS1101和NE555的测湿度电路图此电路位典型的555非稳态电路,555芯片外接电阻R4,R5与HS1101,构成对HS1101的充电回路。7端通过555

14、芯片内部的晶体管对地短路实现对HS1101的放电回路,并将引脚2,6端相连引入到片内比较器,构成一个多谐波振荡器,其中,R4相对于R5必须非常的小,但决不能低于一个最小值。R3是防止短路的保护电阻。555电路的非平衡电阻R6作为内部温度补偿用,目的是为了引入温度效应,使它与HS1101的温度效应相匹配。其工作循环可以描述如下:Thigh=C%RH*(R4+R5)*2Tlow=C%RH*R5*2F=1/( Thigh+Tlow)=1/(C%RH*(2*R5+R4)*2)式中:Thigh 表示一次循环输出高电平时间,单位(s)Tlow 表示一次循环输出低电平时间,单位(s)C%RH表示相对湿度下H

15、S1101的容值,单位(F)F表示输出频率值,单位(HZ)电路工作原理:HS1101作为一个变化的电容器,当电源VCC接通时,HS1101两端的电压Vc=0,定时电路处于置位状态由VCC通过R4与R5对变量电容HS1101充电,当Vc达到门限电压(2/3VCC)时,定时电路翻转为复位状态,HS1101通过R5向555内部的晶体管放电,当Vc降到触发电平(1/3VCC)时,定时电路又翻转为置位状态,HS1101又开始充电,这样周而复始,形成震荡。3.3 输入电路输入电路的作用是把不同量程的被测的电压规范到A/D转换器所要求的电压值。智能化数字温度计所采用的单片双积分型ADC芯片ICL7135,它

16、要求输入电压0-±2V。本仪表设计是0-1000V电压,灵敏度高所以可以不加前置放大器,只需衰减器,如图3所示9M、900K、90K、和10K电阻构成1/10、1/100、1/1000的衰减器。衰减输入电路可由开关来选择不同的衰减率,从而切换档位。为了能让CPU自动识别档位,还要有硬件连接。3.4 A/D 转换电路A/D 转换器的转换精度对测量电路极其重要,它的参数关系到测量电路性能。本设计采用双积A/D 转换器,它的性能比较稳定,转换精度高,具有很高的抗干扰能力,电路结构简单,其缺点是工作速度较低。在对转换精度要求较高,而对转换速度要求不高的场合如电压测量有广泛的应用。3.4.1

17、A/D转换器的特点为了把温度、湿度检测电路测出的模拟信号转换成数字量送到CPU处理,本系统选用了双积分A/D转换器ICL7135。它精度高,分辨率达高、价格低廉、抗干扰能力强等优点。由于双积分方法二次积分时间比较长,所以A/D转换速度慢,但精度可以做得比较高;对周期信号变化的干扰信号积分为零,抗干扰性 图8 ICL7135引脚图能也比较好。对输入模拟电压和基准电压进行两次积分,先对输入模拟在对电压进行积分,将其变换成与输入模拟电压成正比的时间间隔 T1,再利用计数器测出此时间间隔,则计数器所计的数字量就正比于输入的模拟电压;接着对基准电压进行同样的处理。在常用的A/D转换芯片(如ADC -08

18、09、ICL7135、ICL7109等)中,ICL7135与其余几种有所不同,它是一种四位半的双积分。本文介绍用单片机并行方式采集ICL7135的数据以实现单片机温度计和小型智能仪表的设计方案。3.4.2 7135的应用7135是采用CMOS工艺制作的单片4位半A/D转换器,其所转换的数字值以多工扫描的方式输出,只要附加译码器,数码显示器,驱动器及电阻电容等元件,就可组成一个满量程为2V的数字温度计。1 7135主要特点如下: 双积型A/D转换器,转换速度慢。 在每次A/D转换前,内部电路都自动进行调零操作,可保证零点在常温下的长期稳定。在20000字(2V满量程)范围内,保证转换精度1字相当

19、于14bitA/D转换器。   具有自动极性转换功能。能在但极性参考电压下对双极性模拟输入电压进行A/D转换,模拟电压的范围为0±1.9999V。   模拟出入可以是差动信号,输入电阻极高,输入电流典型值1PA。所有输出端和TTL电路相容。   有过量程(OR)和欠量程(UR)标志信号输出,可用作自动量程转换的控制信号。   输出为动态扫描BCD码。   对外提供六个输入,输出控制信号(R/H,BUSH,ST,POL,OR,UR),因此除用于数字温度计外,还能与异步接收 /发送器,微处

20、理器或其它控制电路连接使用。   采用28外引线双列直插式封装,外引线功能端排列如图所示。   7135数字部分数字部分主要由计数器、锁存器、多路开关及控制逻辑电路等组成。7135一次A/D转换周期分为四个阶段:1、自动调零(AZ);2、被测电压积分(INT);3、基准电压反积分(DE);4、积分回零(ZI)。具体内部转换过程这里不做想详细介绍,主要介绍引脚的使用。R/H(25脚)当R/H=“1”(该端悬空时为“1”)时,7135处于连续转换状态,每40002个时钟周期完成一次A/D转换。若R/H由“1”变“0”,则7135在完成本次A/D转换后进入保持

21、状态,此时输出为最后一次转换结果,不受输入电压变化的影响。因此利用R/H端的功能可以使数据有保持功能。若把R/H端用作启动功能时,只要在该端输入一个正脉冲(宽度300ns),转换器就从AZ阶段开始进行A/D转换。注意:第一次转换周期中的AZ阶段时间为9001-10001个时钟脉冲,这是由于启动脉冲和内部计数器状态不同步造成的。/ST(26脚)每次A/D转换周期结束后,ST端都输出5个负脉冲,其输出时间对应在每个周期开始时的5个位选信号正脉冲的中间,ST负脉冲宽度等于1/2时钟周期。第一个ST负脉冲在上次转换周期结束后101个时钟周期产生。因为每个选信号(D5-D1)的正脉冲宽度为200个时钟周

22、期(只有AZ和DE阶段开始时的第一个D5的脉冲宽度为201个CLK 周期),所以ST负脉冲之间相隔也是200个时钟周期。需要注意的是,若上一周期为保持状态(R/H=“0”)则ST无脉冲信号输出。ST信号主要用来控制将转换结果向外部锁存器、UARTs或微处理器进行传送。 BUSY(21脚)在双积分阶段(INT+DE),BUSY为高电平,其余时为低电平。因此利用BUSY功能,可以实现A/D转换结果的远距离双线传送,其还原方法是将BUSY和CLK“与”后来计数器,再减去10001就可得到原来的转换结果。OR(27脚)当输入电压超出量程范围(20000),OR将会变高。该信号在BUSY信号结束时变高。

23、在DE阶段开始时变低。 UR(28脚)当输入电压等于或低于满量程的9%(读数为1800),则一当BUST信号结束,UR将会变高。该信号在INT阶段开始时变低。POL(23脚)该信号用来指示输入电压的极性。当输入电压为正,则POL等于“1”,反之则等于“0”。该信号DE阶段开始时变化,并维持一个A/D转换调期。 位驱动信号D5、D4、D3、D2、D1(12、17、18、19、20脚)每一位驱动信号分别输出一个正脉冲信号,脉冲宽度为200个时钟周期,其中D5对应万位选通,以下依次为千、百、十、个位。在正常输入情况 下, D5-D1输出连续脉冲。当输入电压过量程时,D5-D1在AZ阶段开始时只分别输

24、出一个脉冲,然后都处于低电平,直至DE阶段开始时才输出连续脉冲。利用这个特性,可使得显示器件在过程时产生一亮一暗的直观现象。 B8、B4、B2、B1(16、15、14、13脚)该四端为转换结果BCD码输出,采用动态扫描输出方式,即当位选信号D5=“1”时,该四端的信号为万位数的内容,D4=“1”时为千位数内容,其余依次类推。在个、十、百、千四位数的内容输出时,BCD码范围为0000-1001,对于万位数只有0和1两种状态,所以其输出的BCD码为“0000”和“0001”。当输入电压过量程时,各位数输出全部为零,这一点在使用时应注意。   最后还要说明一点,由于数字部分以DG

25、NG端作为接地端,所以所有输出端输出电平以DGNG作为相对参考点。基准电压,基准电压的输入必须对于模拟公共端COM是正电压。  (三)与单片机系统的串行连接在ICL7135与单片机系统进行连接时,使用并行采集方式,要连接BCD码数据输出线,可以将ICL7135的/STB信号接至AT89C52的P3.2(INT0)。 ICL7135需要外部的时钟信号,本设计采用CD4060来对4M信号进行32分频得到125KHz的时钟信号。CD4060计数为14级2进制计数器,在数字集成电路中可实现的分频次数最高,而且CD4060还包含振荡电路所需的非门,使用更为方便。 图9 ICL7135与系统的连

26、接图 图10 CD4060时钟发生电路图3.5单片机部分单片机选用的是ATMEL公司新推出的AT89S52,如图11所示。该芯片具有低功耗、高性能的特点,是采用CMOS工艺的8位单片机,与AT89C51完全兼容。 图 11 89S52引脚图AT89S52还有以下主要特点: 采用了ATMEL公司的高密度、非易失性存储器(NV-SRAM)技术; 其片内具有256字节RAM,8KB的可在线编程(ISP)FLASH存储器; 有2种低功耗节电工作方式:空闲模式和掉电模式 片内含有一个看门狗定时器(WDT),WDT包含一个14位计数器和看门狗定时器复位寄存器(WDTRST),只要对WDTRST按顺序先写入

27、01EH,后写入0E1H,WDT便启动,当CPU由于扰动而使程序陷入死循环或“跑飞”状态时,WDT即可有效地使系统复位,提高了系统的抗干扰性能。3.6液晶显示部分显示接口用来显示系统的状态,命令或采集的电压数据。本系统显示部分用的是LCD液晶模块,采用一个16×1的字符型液晶显示模块, 点阵图形式液晶由 M 行×N 列个显示单元组成,假设 LCD 显示屏有64行,每行有 128列,每 8列对应 1 个字节的 8 个位,即每行由 16 字节,共 16×8=128个点组成,屏上 64×16 个显示单元和显示 RAM 区 1024 个字节相对应,每一字节的内容

28、和屏上相应位置的亮暗对应。一个字符由 6×8 或 8×8点阵组成,即要找到和屏上某几个位置对应的显示 RAM区的 8 个字节,并且要使每个字节的不同的位为“1”,其它的为“0”,为“1”的点亮,为“0”的点暗,这样一来就组成某个字符。但对于内带字符发生器的控制器来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在LCD 上开始显示的行列号及每行的列数找出显示 RAM对应的地址,设立光标,在此送上该字符对应的代码即可。3.6.1 1601使用说明图12 1601引脚图表1 LCD1601液晶模块的引脚引脚符号功能说明1GND接地2VCC5V3VL驱动LCD,一般将此脚

29、接地4RS寄存器选择 0:指令寄存器(WRITE)Busy flag,位址计数器(READ) 1:数据寄存器(WRITE,READ)5R/WREAD/WRITE选择 1:READ 0:WTITE6E读写使能(下降沿使能)7DB0低4位三态、双向数据总线续表2 LCD1601液晶模块的引脚8DB19DB210DB311DB4高4位三态、双向数据总线另外DB7也是一个Busy flag12DB513DB614DB7寄存器选择,如表所示:表3 寄存器选择控制线操作RSR/W操作说明00写入指令寄存器(清除屏幕等)01读Busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存

30、器(显示各字型等)11从数据寄存器读取数据Busy flag(DB7):在此位未被清除为“0”时,LCD将无法再处理其他指令要求。(1)显示地址:内部地址计数器的计数地址:SB7=0(DB0DB6)第一行00、01、02 等,第二行40、41、42 等,可配合检测DB7=1 (RS=0,R/W=1)读取目前显示字的地址,判断是否需要换行。表4 LCD1601 16×1 显示字的地址1234567891011121314151600010203040506074041424344454647(2)外部地址:DB7=1,亦即80H内部计数地址,可以用此方式将字显示在某一位置。LCD各地址

31、列举如下表:表5 LCD1601 16×1 显示字的外部地址16×1 16字1行 1601123456789101112131415168081828384858687C0C1C2C3C4C5C6C7表6 LCD1601 的指令组指 令说 明设置码RS R/WD7D6D5D4D3D2D1D0清除显示幕000000000*光标回到原点000000001*进入模式设定00000001I/DS显示幕ON/OFF0000001DCB移位000001S/CR/L*功能设定00001DLNF*字发生器地址设定0001AGC设置显示地址0001ADD忙碌标志位BF001BF显示数据10写

32、入数据读取数据11读取数据I/D I/D=1 表示加1, I/D=0 表示减1S S=1 表示显示幕ON S=0表示OFFD D=1 表示显示屏幕ON D=0表示显示屏幕OFFC C=1 表示光标ON C=0表示光标OFFB B=1 表示闪烁ON B=0表示显示闪烁OFFS/C S/C=1表示显示屏幕移位 S/C=0光标移位R/L R/L=1表示右移 R/L=0表示左移DL DL=1表示8位 DL=0表示4位F F=1表示5×10点矩阵 F=0表示5×7点矩阵N N=1表示2行显示行 N=0表示1行显示行BF BF=1:内部正在动作 BF=0:可接收指令或数据码3.6.2

33、液晶显示部分与89S52的接口 图13 液晶与89S52的接口图如图13所示:用89S52的P2口作为数据线,用P0.1、P0.2、P0.3分别作为LCD的E、R/W、RS。其中E是下降沿触发的片选信号,R/W是读写信号,RS是寄存器选择信号本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为8位,显示行数为1行,字型为5×7点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。向LCD的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示.首先取一个要显示的字符或数据

34、送到LCD的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据3.7 通讯模块89S52内部已集成通信接口URT,只需扩展一片MAX232芯片将输出信号转换成RS-232协议规定的电平标准, MAX232 是 一种双组驱动器/接收器 ,每个接收器将EIA/TIA-232-E电平输入转换为5VTTL/CMOS电平。每个驱动器将TTL/CMOS输入电平转换为EIA/TIA-232-E电平。即EIA接口,把5V转换为-8V到-15V电位0V转换为8V到15V再经RXD输出,接收时由RXD输入,把-8V到-15V电位转换为5V,8V到15V转换为0V。MAX

35、232的工作电压只需5V,内部有振荡电路产生正负9V电位。 图14 MAX232引脚功能图4的软件设系统计4.1主程序设计ICL7135A/D与单片机连接电路的软件设计系统的程序流程图如图所示。主程序一开始运行则设置堆栈起始地址为70H,设置中断寄存器,用来对ICL7135的中断进行计数,每5次后清零,完成一次数据采集工作,然后设置ICL7135的STB端的中断的优先级。紧接着LCDM1601B进行一次清屏,使其各个指令、数据寄存器的值进行清空,屏幕不显示任何字符。以前面对1601B的介绍,只要将01H送到数据总线,使RS=0,R/W=0,E有个下降沿的脉冲就可以完成清屏工作。用以下指令实现

36、MOV P2,#01H ;送到数据 DB7-DB0,调用子程序 ENABLE,由于下降沿时内部数据要送到RAM区,所以要有一个延时子程序,使这个下降沿持续2.5毫秒。内部RAM有指令代码后就开始对RAM进行清零,所以屏幕原有的字符将被清除。接着对1601进行功能的设定。MOV P2,#01111000B,设定显示器按2行显示,每行8位,5×7点阵。调用一次子程序ENABLE程序,写入CPU的指令寄存器中。每次向LCDM中写入一个指令,就调用一次ENABLE,然后再对显示器进行闪烁、光标等功能进行设定。显示器的RAM地址按加方法进行读写。再设定第一行字符,也就是Voltage的显示地址

37、80H。字符Voltage的TABLE表地址送到DPTR中,然后调用远程查表命令,依次把数据送到P2口,这时再调用子程序WRITE3,使LCD1601的RS=1,R/W=0使使能端E产生一个下降沿脉冲,将数据送入到数据寄存器中,接下来执行子程序DISPLAY1,它的主要功能是将TABLE表中的字符输出到LCD中去。调定好显示字符数即远程查表的次数,就开始查表了。例如第一个字符“V”的ASCII码是56H,就将这个码送到P2口,再调用使能数据子程序,使RS=1(数据区使能)写入显示数据区,图15 数据地址R/W=0表示写,E=来个下降沿延时2.5毫秒,使数据写入RAM内。完成TABLE表输出以后

38、,向指令RAM中写入第2行的起始地址为OCH,再调用显示采样数据的子程序。采样数据存放的数据地址安排如下图所示,首先将60H中的数显示在正负号的位置上,按照ASCII码表,正号不显示(#20H),负号显示“”(#2DH)。4.2系统软件流程图温度控制主程序的设计应考虑以下问题:(1)温湿度采样,数字滤波;(2)越限报警和处理;(3)温度标度转换。通常,符合上述功能的温度控制程序由主程序和T0中断服务程序两部分组成。这里所需要注意的是标度变换,下面简单的介绍一下标度变换:目的是要把实际采样的二进制值转换成BCD形式的温度值,对一般线性仪表来说,标度变换公式为: 公式一式中为一次测量仪表的下限;A

39、m为一次测量仪表的上限;AX为实际测量值;为仪表下限所对应的数字量;Nm为仪表上限所对应的数字量;NX为测量所得数字量。主程序流程图开始设堆栈清标志清暂存清显示T0初始化串行口初始化CPU开中断温度采样显示 图16 主程序流程图T0中断流程T0中断保护现场设定1S时间计数是否到1S湿度数据采样标度变换是否超越?显示重装时间常数恢复现场返回报警程序NNYY图17 T0中断流程图采样子程序流程图采样程序送采样数据地址送通道号初值送出通道号启动A/D读A/D数据修改地址及通道号各通道采样一次返回NY图18 采样子程序流程图ICL7135每一分钟完成3次据的采集工作,1/3秒完成后向CPU申请中断,C

40、PU这时暂停工作,为中断服务.中断响应后关中断,将PSW、ACC压栈,判断是否首次中断,如果是首次中断,则将正负号标志位置入60H,再把万位置入61H中,如果不是首次中断,则跳到NEXT处,如果是第二次中断,则将千位数置入62H中,如果是第三次中断,再将百位数置入63H中,第四次中断则将十位数置入64H中,第五次中断则将小数点位置入65H中,同时个位置入66H中。同时清除中断次数寄存器30H中的值,完成中断后将ACC、PSW出栈,开中断。消隐的思想:每次电压采集后,CPU将数据送到LCD显示,将可能出现以下几种需要消隐的情况。例如:2000V档量程:0199.9此时万位的值0不符合人们的视觉习

41、惯,需要把万位的值消隐掉,编程是将#20H送入万位,使其在LCD中不显示任何字符即可。同样的情况如下:需要消隐万位、千位需要消隐万位、千位、百位2000V档量程:0019.90001.9需要消隐万位需要消隐万位、千位200V档量程:019.99001.99需要消隐万位20V档量程:01.999在采集到数据之后,置数之前判断档位,是2V档不消隐,是其他档位时再看要消隐的位之前有几个是零。例如2000V档量程,-0001.9V,在2次中断时判断档位是2000V档,第1位是零,消隐第2位千位。4.3通讯模块程序设计89S52单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两

42、个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在传行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口。89S52的串行口有4种工作方式,1种同步方式,3种异步方式。本方式选方式1,一帧数据有10位,包括起始位0、8位数据位和1位停止位1。串行口电路在发送时能自动加入起始位和停止位。在接收时,停止位进入SCON中的RB8位。方式1的波特率是可变的,由定时器1的溢出率决定。由定时器1最好工作在方式2

43、上(自动重装载模式),这样只需对TH1设置一次即可。数据通过TXD输出,在8个位输出完毕后,SCON寄存器的TI位被设为1,CPU只要判断TI是1,接着发送下一个字节。波特率的设定:定时器T1工作在方式2的初值为: 公式二 为了减小误差,时钟振荡频率采用11.0592MHz,选用定时器T1工作在方式2作波特率发生器,波特率为300,设SMOD为0,依公式三得初值为: 公式三所以TH1 = TL1 = A0HMOV SCON ,#50H ;URAT工作在方式1上MOV TMOD ,#20H ;TIME1工作在方式2上MOV TH1 , #0A0H ;设置波特率为300本设计的中断十分重要,为了减

44、少相互间的干扰,保证可靠性,采用查询方式判断是否发送完毕。 A6: JBC TI , A5 ;如果发送完毕跳,清标志位,跳到A5。 AJMP A6 ;否则跳到A6,等待 A5: INC R0 5 结束语电压测量通过不同的接口电路可实现温度、湿度测量,广泛应用于工业领域。本电路设计别具一格,是一种高精度、低功耗、宽量程、智能化的温度计。可扩展键盘、EEPROM、报警电路,实现电压异常记录、报警。在论文设计中,我锻炼了自己的动手能力,培养了自己独立设计的学习能力,知道如何分析问题和解决问。通过这次的论文设计,使我摆脱了单纯的理论知识,让理论和实际紧紧的联系在一起,锻炼了我综合运用专业的知识解决实际

45、工程的能力,提高了我查阅文献资料,设计手册,设计规范等专业能力。6致谢论文是在我的导师杨玲老师悉心指导下完成的,在这里向老师致以衷心的谢意!从开题到课题论文的完成,杨老师都给了我耐心和细致的指导,杨老师广博的专业知识、严谨认真的科研作风、敏锐的思维、克己待人的处世原则和对工作的热情给我留下了深刻的印象,使我受益终身。从论文的立题到实验的设计以及论文的撰写整个过程无不浸透着老师的心血。导师不但在学习上给予我耐心细致的指导,在生活中也给了我莫大的关怀,这份师恩我将终身难忘。 此外,我还要感谢周欣老师,张银胜老师还有其他为我授课的各位老师,在和他们相处的时间里,让我学到了扎实的专业知识,并从他们身上学到了很多做人做事的道理。值此机会,向老师们表示衷心的感谢。还要感谢帮助我的同学们,没你们的帮助,我是真的寸步难行,真的很感谢你们。 参考文献1 徐爱钧.智能化测量控制仪表原理与设计(第二版)M.北京:北京航空航天大学出版社,2004.2 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用M.北京:清华大学出版社,2002.3 张国勋,缩短ICL7135A/D采样程序时间的一种方法J. 电子技术应用,1993,第一期.4 高峰,单片微型计算机

温馨提示

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

评论

0/150

提交评论